From d32c56e101065ac1248930becf7565b7948c3110 Mon Sep 17 00:00:00 2001 From: Maverick Studer Date: Tue, 8 Oct 2024 09:24:18 +0200 Subject: [PATCH] RED-9123: Improve performance of re-analysis (Spike) --- .../redaction-service-api-v1/build.gradle.kts | 2 +- .../build.gradle.kts | 13 +- .../v1/server/RedactionServiceSettings.java | 2 + .../server/model/document/DocumentData.java | 24 +- .../document/nodes/AbstractSemanticNode.java | 2 +- .../server/model/document/nodes/Footer.java | 10 - .../server/model/document/nodes/Header.java | 10 - .../server/model/document/nodes/Headline.java | 10 - .../v1/server/model/document/nodes/Image.java | 6 - .../model/document/nodes/Paragraph.java | 10 - .../server/model/document/nodes/Section.java | 14 -- .../model/document/nodes/SemanticNode.java | 2 +- .../v1/server/model/document/nodes/Table.java | 2 +- .../document/textblock/AtomicTextBlock.java | 20 +- .../service/AnalysisFinalizationService.java | 145 +++++++++++ .../service/AnalysisPreparationService.java | 18 +- .../v1/server/service/AnalyzeService.java | 197 ++++----------- .../service/DictionarySearchService.java | 29 ++- .../server/service/DocumentSearchService.java | 3 +- .../service/EntityChangeLogService.java | 2 + .../service/EntityLogCreatorService.java | 88 +++++-- .../NotFoundImportedEntitiesService.java | 12 +- .../service/document/DocumentGraphMapper.java | 76 +++--- .../service/document/PropertiesMapper.java | 34 +-- .../storage/DocumentDataFallbackService.java | 236 ++++++++++++++++++ .../storage/RedactionStorageService.java | 125 +++++++--- .../resources/drools/all_rules_documine.drl | 2 +- .../v1/server/AnalysisEnd2EndTest.java | 57 ++++- .../MapEntityLogToDocumentDataTest.java | 17 +- .../v1/server/RedactionIntegrationTest.java | 77 +++++- ...cumentIEntityInsertionIntegrationTest.java | 4 +- .../DocumentPerformanceIntegrationTest.java | 2 +- .../UnprocessedChangesServiceTest.java | 10 +- .../resources/drools/acceptance_rules.drl | 2 +- .../drools/all_redact_manager_rules.drl | 2 +- .../test/resources/drools/documine_flora.drl | 2 +- .../resources/drools/efsa_sanitisation.drl | 2 +- .../drools/manual_redaction_rules.drl | 2 +- .../src/test/resources/drools/rules.drl | 2 +- .../src/test/resources/drools/rules_v2.drl | 2 +- .../src/test/resources/drools/table_demo.drl | 2 +- .../src/test/resources/drools/test_rules.drl | 2 +- .../oldDocumentData/old.DOCUMENT_PAGES.json | 56 +++++ .../old.DOCUMENT_POSITION.json | 1 + .../old.DOCUMENT_STRUCTURE.json | 1 + .../oldDocumentData/old.DOCUMENT_TEXT.json | 1 + .../resources/all_redact_manager_rules.drl | 2 +- .../src/main/resources/all_rules_documine.drl | 2 +- 48 files changed, 934 insertions(+), 408 deletions(-) create mode 100644 redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/AnalysisFinalizationService.java create mode 100644 redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/storage/DocumentDataFallbackService.java create mode 100644 redaction-service-v1/redaction-service-server-v1/src/test/resources/files/oldDocumentData/old.DOCUMENT_PAGES.json create mode 100644 redaction-service-v1/redaction-service-server-v1/src/test/resources/files/oldDocumentData/old.DOCUMENT_POSITION.json create mode 100644 redaction-service-v1/redaction-service-server-v1/src/test/resources/files/oldDocumentData/old.DOCUMENT_STRUCTURE.json create mode 100644 redaction-service-v1/redaction-service-server-v1/src/test/resources/files/oldDocumentData/old.DOCUMENT_TEXT.json diff --git a/redaction-service-v1/redaction-service-api-v1/build.gradle.kts b/redaction-service-v1/redaction-service-api-v1/build.gradle.kts index 5e08a2fc..96bccabd 100644 --- a/redaction-service-v1/redaction-service-api-v1/build.gradle.kts +++ b/redaction-service-v1/redaction-service-api-v1/build.gradle.kts @@ -4,7 +4,7 @@ plugins { } description = "redaction-service-api-v1" -val persistenceServiceVersion = "2.580.0" +val persistenceServiceVersion = "2.581.0" dependencies { implementation("org.springframework:spring-web:6.0.12") diff --git a/redaction-service-v1/redaction-service-server-v1/build.gradle.kts b/redaction-service-v1/redaction-service-server-v1/build.gradle.kts index 6a6f38c5..75fef208 100644 --- a/redaction-service-v1/redaction-service-server-v1/build.gradle.kts +++ b/redaction-service-v1/redaction-service-server-v1/build.gradle.kts @@ -12,11 +12,11 @@ plugins { description = "redaction-service-server-v1" -val layoutParserVersion = "0.174.0" +val layoutParserVersion = "0.181.0" val jacksonVersion = "2.15.2" val droolsVersion = "9.44.0.Final" val pdfBoxVersion = "3.0.0" -val persistenceServiceVersion = "2.580.0" +val persistenceServiceVersion = "2.581.0" val llmServiceVersion = "1.11.0" val springBootStarterVersion = "3.1.5" val springCloudVersion = "4.0.4" @@ -31,6 +31,12 @@ configurations { } } +configurations.all { + resolutionStrategy { + force("com.google.protobuf:protobuf-java:4.27.1") + } +} + dependencies { implementation(project(":redaction-service-api-v1")) { exclude(group = "com.iqser.red.service", module = "persistence-service-internal-api-v1") } @@ -45,7 +51,7 @@ dependencies { implementation("com.iqser.red.commons:metric-commons:2.3.0") implementation("com.iqser.red.commons:dictionary-merge-commons:1.5.0") - implementation("com.iqser.red.commons:storage-commons:2.45.0") + implementation("com.iqser.red.commons:storage-commons:2.50.0") implementation("com.knecon.fforesight:tenant-commons:0.30.0") implementation("com.knecon.fforesight:keycloak-commons:0.30.0") { exclude(group = "com.knecon.fforesight", module = "tenant-commons") @@ -61,6 +67,7 @@ dependencies { implementation("org.drools:drools-engine:${droolsVersion}") implementation("org.drools:drools-mvel:${droolsVersion}") implementation("org.kie:kie-spring:7.74.1.Final") + implementation("com.google.protobuf:protobuf-java:4.27.1") implementation("org.locationtech.jts:jts-core:1.19.0") diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/RedactionServiceSettings.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/RedactionServiceSettings.java index 5229dcbf..ebdf6779 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/RedactionServiceSettings.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/RedactionServiceSettings.java @@ -40,6 +40,8 @@ public class RedactionServiceSettings { private boolean droolsDebug; + private boolean protobufJsonFallback = true; + public int getDroolsExecutionTimeoutSecs(int numberOfPages) { diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/model/document/DocumentData.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/model/document/DocumentData.java index 897c5cbe..29899b55 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/model/document/DocumentData.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/model/document/DocumentData.java @@ -1,11 +1,13 @@ package com.iqser.red.service.redaction.v1.server.model.document; +import static com.knecon.fforesight.service.layoutparser.internal.api.data.redaction.DocumentStructureProto.DocumentStructure; + import java.io.Serializable; -import com.knecon.fforesight.service.layoutparser.internal.api.data.redaction.DocumentPage; -import com.knecon.fforesight.service.layoutparser.internal.api.data.redaction.DocumentPositionData; -import com.knecon.fforesight.service.layoutparser.internal.api.data.redaction.DocumentStructure; -import com.knecon.fforesight.service.layoutparser.internal.api.data.redaction.DocumentTextData; +import com.knecon.fforesight.service.layoutparser.internal.api.data.redaction.DocumentPageProto.AllDocumentPages; +import com.knecon.fforesight.service.layoutparser.internal.api.data.redaction.DocumentPositionDataProto.AllDocumentPositionData; +import com.knecon.fforesight.service.layoutparser.internal.api.data.redaction.DocumentStructureWrapper; +import com.knecon.fforesight.service.layoutparser.internal.api.data.redaction.DocumentTextDataProto.AllDocumentTextData; import lombok.AccessLevel; import lombok.AllArgsConstructor; @@ -21,9 +23,15 @@ import lombok.experimental.FieldDefaults; @FieldDefaults(level = AccessLevel.PRIVATE) public class DocumentData implements Serializable { - DocumentPage[] documentPages; - DocumentTextData[] documentTextData; - DocumentPositionData[] documentPositionData; - DocumentStructure documentStructure; + AllDocumentPages documentPages; + AllDocumentTextData documentTextData; + AllDocumentPositionData documentPositionData; + DocumentStructureWrapper documentStructureWrapper; + + + public DocumentStructure getDocumentStructure() { + + return documentStructureWrapper.getDocumentStructure(); + } } diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/model/document/nodes/AbstractSemanticNode.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/model/document/nodes/AbstractSemanticNode.java index e5bba0eb..486bb67d 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/model/document/nodes/AbstractSemanticNode.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/model/document/nodes/AbstractSemanticNode.java @@ -9,7 +9,7 @@ import java.util.Set; import com.iqser.red.service.redaction.v1.server.model.document.DocumentTree; import com.iqser.red.service.redaction.v1.server.model.document.entity.TextEntity; import com.iqser.red.service.redaction.v1.server.model.document.textblock.TextBlock; -import com.knecon.fforesight.service.layoutparser.internal.api.data.redaction.LayoutEngine; +import com.knecon.fforesight.service.layoutparser.internal.api.data.redaction.LayoutEngineProto.LayoutEngine; import lombok.AccessLevel; import lombok.AllArgsConstructor; diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/model/document/nodes/Footer.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/model/document/nodes/Footer.java index 8742706e..cb984c65 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/model/document/nodes/Footer.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/model/document/nodes/Footer.java @@ -1,19 +1,9 @@ package com.iqser.red.service.redaction.v1.server.model.document.nodes; -import java.awt.geom.Rectangle2D; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; - -import com.iqser.red.service.redaction.v1.server.model.document.DocumentTree; -import com.iqser.red.service.redaction.v1.server.model.document.entity.TextEntity; import com.iqser.red.service.redaction.v1.server.model.document.textblock.TextBlock; -import com.knecon.fforesight.service.layoutparser.internal.api.data.redaction.LayoutEngine; import lombok.AccessLevel; import lombok.AllArgsConstructor; -import lombok.Builder; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/model/document/nodes/Header.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/model/document/nodes/Header.java index 29277478..a58066d7 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/model/document/nodes/Header.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/model/document/nodes/Header.java @@ -1,19 +1,9 @@ package com.iqser.red.service.redaction.v1.server.model.document.nodes; -import java.awt.geom.Rectangle2D; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; - -import com.iqser.red.service.redaction.v1.server.model.document.entity.TextEntity; -import com.iqser.red.service.redaction.v1.server.model.document.DocumentTree; import com.iqser.red.service.redaction.v1.server.model.document.textblock.TextBlock; -import com.knecon.fforesight.service.layoutparser.internal.api.data.redaction.LayoutEngine; import lombok.AccessLevel; import lombok.AllArgsConstructor; -import lombok.Builder; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/model/document/nodes/Headline.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/model/document/nodes/Headline.java index 0adf1538..6eb7b58d 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/model/document/nodes/Headline.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/model/document/nodes/Headline.java @@ -1,20 +1,10 @@ package com.iqser.red.service.redaction.v1.server.model.document.nodes; -import java.awt.geom.Rectangle2D; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; - -import com.iqser.red.service.redaction.v1.server.model.document.DocumentTree; -import com.iqser.red.service.redaction.v1.server.model.document.entity.TextEntity; import com.iqser.red.service.redaction.v1.server.model.document.textblock.AtomicTextBlock; import com.iqser.red.service.redaction.v1.server.model.document.textblock.TextBlock; -import com.knecon.fforesight.service.layoutparser.internal.api.data.redaction.LayoutEngine; import lombok.AccessLevel; import lombok.AllArgsConstructor; -import lombok.Builder; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/model/document/nodes/Image.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/model/document/nodes/Image.java index 4f3fdcd5..194a9799 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/model/document/nodes/Image.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/model/document/nodes/Image.java @@ -3,22 +3,16 @@ package com.iqser.red.service.redaction.v1.server.model.document.nodes; import java.awt.geom.Rectangle2D; import java.util.Collections; import java.util.HashMap; -import java.util.HashSet; -import java.util.List; import java.util.Locale; import java.util.Map; import java.util.PriorityQueue; import java.util.Set; -import com.iqser.red.service.redaction.v1.server.model.document.DocumentTree; import com.iqser.red.service.redaction.v1.server.model.document.TextRange; import com.iqser.red.service.redaction.v1.server.model.document.entity.IEntity; import com.iqser.red.service.redaction.v1.server.model.document.entity.ManualChangeOverwrite; import com.iqser.red.service.redaction.v1.server.model.document.entity.MatchedRule; -import com.iqser.red.service.redaction.v1.server.model.document.entity.TextEntity; import com.iqser.red.service.redaction.v1.server.model.document.textblock.TextBlock; -import com.iqser.red.service.redaction.v1.server.model.document.textblock.TextBlockCollector; -import com.knecon.fforesight.service.layoutparser.internal.api.data.redaction.LayoutEngine; import lombok.AccessLevel; import lombok.AllArgsConstructor; diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/model/document/nodes/Paragraph.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/model/document/nodes/Paragraph.java index f68101a3..80d070df 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/model/document/nodes/Paragraph.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/model/document/nodes/Paragraph.java @@ -1,19 +1,9 @@ package com.iqser.red.service.redaction.v1.server.model.document.nodes; -import java.awt.geom.Rectangle2D; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; - -import com.iqser.red.service.redaction.v1.server.model.document.DocumentTree; -import com.iqser.red.service.redaction.v1.server.model.document.entity.TextEntity; import com.iqser.red.service.redaction.v1.server.model.document.textblock.TextBlock; -import com.knecon.fforesight.service.layoutparser.internal.api.data.redaction.LayoutEngine; import lombok.AccessLevel; import lombok.AllArgsConstructor; -import lombok.Builder; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.FieldDefaults; diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/model/document/nodes/Section.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/model/document/nodes/Section.java index 70ef6612..e9342f0c 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/model/document/nodes/Section.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/model/document/nodes/Section.java @@ -1,23 +1,9 @@ package com.iqser.red.service.redaction.v1.server.model.document.nodes; -import java.awt.geom.Rectangle2D; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; - -import com.iqser.red.service.redaction.v1.server.model.document.entity.TextEntity; -import com.iqser.red.service.redaction.v1.server.model.document.DocumentTree; -import com.iqser.red.service.redaction.v1.server.model.document.textblock.TextBlock; -import com.iqser.red.service.redaction.v1.server.model.document.textblock.TextBlockCollector; -import com.knecon.fforesight.service.layoutparser.internal.api.data.redaction.LayoutEngine; - import lombok.AccessLevel; import lombok.AllArgsConstructor; -import lombok.Builder; import lombok.Data; import lombok.EqualsAndHashCode; -import lombok.RequiredArgsConstructor; import lombok.experimental.FieldDefaults; import lombok.experimental.SuperBuilder; import lombok.extern.slf4j.Slf4j; diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/model/document/nodes/SemanticNode.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/model/document/nodes/SemanticNode.java index 5b6aa021..8e24896a 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/model/document/nodes/SemanticNode.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/model/document/nodes/SemanticNode.java @@ -25,7 +25,7 @@ import com.iqser.red.service.redaction.v1.server.model.document.textblock.TextBl import com.iqser.red.service.redaction.v1.server.service.document.NodeVisitor; import com.iqser.red.service.redaction.v1.server.utils.RectangleTransformations; import com.iqser.red.service.redaction.v1.server.utils.RedactionSearchUtility; -import com.knecon.fforesight.service.layoutparser.internal.api.data.redaction.LayoutEngine; +import com.knecon.fforesight.service.layoutparser.internal.api.data.redaction.LayoutEngineProto.LayoutEngine; public interface SemanticNode { diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/model/document/nodes/Table.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/model/document/nodes/Table.java index 55ff987a..6b0ab0cb 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/model/document/nodes/Table.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/model/document/nodes/Table.java @@ -17,7 +17,7 @@ import com.iqser.red.service.redaction.v1.server.model.document.DocumentTree; import com.iqser.red.service.redaction.v1.server.model.document.entity.TextEntity; import com.iqser.red.service.redaction.v1.server.model.document.textblock.TextBlock; import com.iqser.red.service.redaction.v1.server.model.document.textblock.TextBlockCollector; -import com.knecon.fforesight.service.layoutparser.internal.api.data.redaction.LayoutEngine; +import com.knecon.fforesight.service.layoutparser.internal.api.data.redaction.LayoutEngineProto.LayoutEngine; import lombok.AccessLevel; import lombok.AllArgsConstructor; diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/model/document/textblock/AtomicTextBlock.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/model/document/textblock/AtomicTextBlock.java index de1db3d0..8049d0b0 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/model/document/textblock/AtomicTextBlock.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/model/document/textblock/AtomicTextBlock.java @@ -1,12 +1,12 @@ package com.iqser.red.service.redaction.v1.server.model.document.textblock; +import static com.knecon.fforesight.service.layoutparser.internal.api.data.redaction.DocumentPositionDataProto.DocumentPositionData; import static java.lang.String.format; import java.awt.geom.Rectangle2D; import java.lang.ref.SoftReference; import java.text.BreakIterator; import java.util.ArrayList; -import java.util.Arrays; import java.util.Collection; import java.util.Collections; import java.util.HashMap; @@ -20,8 +20,8 @@ import com.iqser.red.service.redaction.v1.server.model.document.TextRange; import com.iqser.red.service.redaction.v1.server.model.document.nodes.Page; import com.iqser.red.service.redaction.v1.server.model.document.nodes.SemanticNode; import com.iqser.red.service.redaction.v1.server.utils.RectangleTransformations; -import com.knecon.fforesight.service.layoutparser.internal.api.data.redaction.DocumentPositionData; -import com.knecon.fforesight.service.layoutparser.internal.api.data.redaction.DocumentTextData; +import com.knecon.fforesight.service.layoutparser.internal.api.data.redaction.DocumentPositionDataProto.DocumentPositionData.Position; +import com.knecon.fforesight.service.layoutparser.internal.api.data.redaction.DocumentTextDataProto.DocumentTextData; import lombok.AccessLevel; import lombok.AllArgsConstructor; @@ -89,20 +89,18 @@ public class AtomicTextBlock implements TextBlock { .page(page) .textRange(new TextRange(atomicTextBlockData.getStart(), atomicTextBlockData.getEnd())) .searchText(atomicTextBlockData.getSearchText()) - .lineBreaks(Arrays.stream(atomicTextBlockData.getLineBreaks()).boxed() - .toList()) - .stringIdxToPositionIdx(Arrays.stream(atomicPositionBlockData.getStringIdxToPositionIdx()).boxed() - .toList()) - .positions(toRectangle2DList(atomicPositionBlockData.getPositions())) + .lineBreaks(atomicTextBlockData.getLineBreaksList()) + .stringIdxToPositionIdx(atomicPositionBlockData.getStringIdxToPositionIdxList()) + .positions(toRectangle2DList(atomicPositionBlockData.getPositionsList())) .parent(parent) .build(); } - private static List toRectangle2DList(float[][] positions) { + private static List toRectangle2DList(List positions) { - return Arrays.stream(positions) - .map(floatArr -> (Rectangle2D) new Rectangle2D.Float(floatArr[0], floatArr[1], floatArr[2], floatArr[3])) + return positions.stream() + .map(pos -> (Rectangle2D) new Rectangle2D.Float(pos.getValue(0), pos.getValue(1), pos.getValue(2), pos.getValue(3))) .toList(); } diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/AnalysisFinalizationService.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/AnalysisFinalizationService.java new file mode 100644 index 00000000..aba284fd --- /dev/null +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/AnalysisFinalizationService.java @@ -0,0 +1,145 @@ +package com.iqser.red.service.redaction.v1.server.service; + +import java.util.List; +import java.util.Optional; +import java.util.Set; +import java.util.concurrent.CompletableFuture; + +import org.springframework.stereotype.Service; + +import com.iqser.gin4.commons.metrics.meters.FunctionTimerValues; +import com.iqser.red.service.persistence.service.v1.api.shared.model.AnalyzeRequest; +import com.iqser.red.service.persistence.service.v1.api.shared.model.AnalyzeResult; +import com.iqser.red.service.persistence.service.v1.api.shared.model.FileAttribute; +import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.componentlog.ComponentLog; +import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.entitylog.EntityLog; +import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.entitylog.EntityLogChanges; +import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.file.FileType; +import com.iqser.red.service.redaction.v1.server.RedactionServiceSettings; +import com.iqser.red.service.redaction.v1.server.logger.Context; +import com.iqser.red.service.redaction.v1.server.model.KieWrapper; +import com.iqser.red.service.redaction.v1.server.model.component.Component; +import com.iqser.red.service.redaction.v1.server.model.document.nodes.Document; +import com.iqser.red.service.redaction.v1.server.service.components.ComponentLogCreatorService; +import com.iqser.red.service.redaction.v1.server.service.drools.ComponentDroolsExecutionService; +import com.iqser.red.service.redaction.v1.server.storage.RedactionStorageService; + +import io.micrometer.core.annotation.Timed; +import io.micrometer.observation.annotation.Observed; +import lombok.AccessLevel; +import lombok.RequiredArgsConstructor; +import lombok.experimental.FieldDefaults; +import lombok.extern.slf4j.Slf4j; + +@Slf4j +@Service +@RequiredArgsConstructor +@FieldDefaults(makeFinal = true, level = AccessLevel.PRIVATE) +public class AnalysisFinalizationService { + + RedactionStorageService redactionStorageService; + FunctionTimerValues redactmanagerAnalyzePagewiseValues; + ComponentLogCreatorService componentLogCreatorService; + RedactionServiceSettings redactionServiceSettings; + ComponentDroolsExecutionService componentDroolsExecutionService; + + + @Timed("redactmanager_finalizeAnalysis") + @Observed(name = "AnalysisFinalizationService", contextualName = "finalize-analysis") + public AnalyzeResult finalizeAnalysis(AnalyzeRequest analyzeRequest, + long startTime, + KieWrapper kieWrapperComponentRules, + EntityLogChanges entityLogChanges, + Document document, + int numberOfPages, + boolean isReanalysis, + Set addedFileAttributes, + Context context) { + + EntityLog entityLog = entityLogChanges.getEntityLog(); + + // as workaround for duplicate key exceptions occurring due to simultaneous analyses and reanalyses save instead of insert is used + // also analysis numbers should be incremented in every follow-up request, so checking if the log exists is not needed + if (!redactionStorageService.entityLogExists(analyzeRequest.getDossierId(), analyzeRequest.getFileId())) { + redactionStorageService.saveEntityLog(analyzeRequest.getDossierId(), analyzeRequest.getFileId(), entityLog); + + } else { + redactionStorageService.updateEntityLogWithoutEntries(analyzeRequest.getDossierId(), analyzeRequest.getFileId(), entityLog); + + if (!entityLogChanges.getNewEntityLogEntries().isEmpty()) { + redactionStorageService.saveEntityLogEntries(analyzeRequest.getDossierId(), analyzeRequest.getFileId(), entityLogChanges.getNewEntityLogEntries()); + } + if (!entityLogChanges.getUpdatedEntityLogEntries().isEmpty()) { + redactionStorageService.updateEntityLogEntries(analyzeRequest.getDossierId(), analyzeRequest.getFileId(), entityLogChanges.getUpdatedEntityLogEntries()); + } + } + + log.info("Created entity log for file {} in dossier {}", analyzeRequest.getFileId(), analyzeRequest.getDossierId()); + + context.setRuleVersion(kieWrapperComponentRules.rulesVersion()); + Optional componentLog = computeComponentsWhenRulesArePresent(analyzeRequest, kieWrapperComponentRules, document, addedFileAttributes, entityLog, context); + + long duration = System.currentTimeMillis() - startTime; + + redactmanagerAnalyzePagewiseValues.increase(numberOfPages, duration); + + return AnalyzeResult.builder() + .dossierId(analyzeRequest.getDossierId()) + .fileId(analyzeRequest.getFileId()) + .duration(duration) + .numberOfPages(numberOfPages) + .hasUpdates(entityLogChanges.hasChanges()) + .analysisVersion(redactionServiceSettings.getAnalysisVersion()) + .analysisNumber(analyzeRequest.getAnalysisNumber()) + .rulesVersion(entityLog.getRulesVersion()) + .componentRulesVersion(kieWrapperComponentRules.rulesVersion()) + .dateFormatsVersion(componentLog.map(ComponentLog::getDateFormatsVersion) + .orElse(-1L)) + .dictionaryVersion(entityLog.getDictionaryVersion()) + .legalBasisVersion(entityLog.getLegalBasisVersion()) + .dossierDictionaryVersion(entityLog.getDossierDictionaryVersion()) + .wasReanalyzed(isReanalysis) + .manualRedactions(analyzeRequest.getManualRedactions()) + .addedFileAttributes(addedFileAttributes) + .usedComponentMappings(analyzeRequest.getComponentMappings()) + .build(); + } + + + private Optional computeComponentsWhenRulesArePresent(AnalyzeRequest analyzeRequest, + KieWrapper kieWrapperComponentRules, + Document document, + Set addedFileAttributes, + EntityLog entityLog, + Context context) { + + if (!kieWrapperComponentRules.isPresent()) { + return Optional.empty(); + } + + // We need the latest EntityLog entries for components rules execution + entityLog.setEntityLogEntry(redactionStorageService.getEntityLog(analyzeRequest.getDossierId(), analyzeRequest.getFileId()).getEntityLogEntry()); + + List components = componentDroolsExecutionService.executeRules(kieWrapperComponentRules.container(), + entityLog, + document, + addedFileAttributes, + analyzeRequest.getComponentMappings(), + context); + + log.info("Finished component rule execution for file {} in dossier {}", analyzeRequest.getFileId(), analyzeRequest.getDossierId()); + + ComponentLog componentLog = componentLogCreatorService.buildComponentLog(analyzeRequest.getAnalysisNumber(), + components, + kieWrapperComponentRules.rulesVersion(), + analyzeRequest.getComponentDefinitions(), + context.getDateFormatsVersion()); + + redactionStorageService.saveComponentLog(analyzeRequest.getDossierId(), analyzeRequest.getFileId(), componentLog); + + log.info("Stored component log for file {} in dossier {}", analyzeRequest.getFileId(), analyzeRequest.getDossierId()); + + return Optional.of(componentLog); + } + +} diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/AnalysisPreparationService.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/AnalysisPreparationService.java index c3bd2b2b..fa736613 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/AnalysisPreparationService.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/AnalysisPreparationService.java @@ -40,6 +40,8 @@ import com.iqser.red.service.redaction.v1.server.service.drools.KieContainerCrea import com.iqser.red.service.redaction.v1.server.storage.ObservedStorageService; import com.iqser.red.service.redaction.v1.server.storage.RedactionStorageService; +import io.micrometer.core.annotation.Timed; +import io.micrometer.observation.annotation.Observed; import lombok.AccessLevel; import lombok.SneakyThrows; import lombok.experimental.FieldDefaults; @@ -84,6 +86,8 @@ public class AnalysisPreparationService { @SneakyThrows + @Timed("redactmanager_getAnalysisData") + @Observed(name = "AnalysisPreparationService", contextualName = "get-analysis-data") public AnalysisData getAnalysisData(AnalyzeRequest analyzeRequest) { CompletableFuture kieWrapperComponentRulesFuture = CompletableFuture.supplyAsync(() -> getKieWrapper(analyzeRequest, RuleFileType.COMPONENT), taskExecutor); @@ -121,6 +125,8 @@ public class AnalysisPreparationService { @SneakyThrows + @Timed("redactmanager_getReanalysisSetupData") + @Observed(name = "AnalysisPreparationService", contextualName = "get-reanalysis-setup-data") public ReanalysisSetupData getReanalysisSetupData(AnalyzeRequest analyzeRequest) { return getReanalysisSetupData(analyzeRequest, () -> getEntityLogWithoutEntries(analyzeRequest)); @@ -147,6 +153,8 @@ public class AnalysisPreparationService { @SneakyThrows + @Timed("redactmanager_getReanalysisInitialProcessingData") + @Observed(name = "AnalysisPreparationService", contextualName = "get-reanalysis-initial-processing-data") public ReanalysisInitialProcessingData getReanalysisInitialProcessingData(AnalyzeRequest analyzeRequest, ReanalysisSetupData reanalysisSetupData) { CompletableFuture importedRedactionsFuture = CompletableFuture.supplyAsync(() -> getImportedRedactions(analyzeRequest), taskExecutor); @@ -173,6 +181,8 @@ public class AnalysisPreparationService { @SneakyThrows + @Timed("redactmanager_getReanalysisFinalProcessingData") + @Observed(name = "AnalysisPreparationService", contextualName = "get-reanalysis-final-processing-data") public ReanalysisFinalProcessingData getReanalysisFinalProcessingData(AnalyzeRequest analyzeRequest, ReanalysisSetupData reanalysisSetupData, ReanalysisInitialProcessingData reanalysisInitialProcessingData) { @@ -209,7 +219,7 @@ public class AnalysisPreparationService { } - public Document getDocument(AnalyzeRequest analyzeRequest) { + private Document getDocument(AnalyzeRequest analyzeRequest) { Document document = DocumentGraphMapper.toDocumentGraph(observedStorageService.getDocumentData(analyzeRequest.getDossierId(), analyzeRequest.getFileId())); log.info("Loaded Document Graph for file {} in dossier {}", analyzeRequest.getFileId(), analyzeRequest.getDossierId()); @@ -217,7 +227,7 @@ public class AnalysisPreparationService { } - public ImportedRedactions getImportedRedactions(AnalyzeRequest analyzeRequest) { + private ImportedRedactions getImportedRedactions(AnalyzeRequest analyzeRequest) { ImportedRedactions importedRedactions = redactionStorageService.getImportedRedactions(analyzeRequest.getDossierId(), analyzeRequest.getFileId()); log.info("Loaded Imported Redactions for file {} in dossier {}", analyzeRequest.getFileId(), analyzeRequest.getDossierId()); @@ -225,7 +235,7 @@ public class AnalysisPreparationService { } - public NerEntities getNerEntities(AnalyzeRequest analyzeRequest, Document document) { + private NerEntities getNerEntities(AnalyzeRequest analyzeRequest, Document document) { NerEntities nerEntities = getEntityRecognitionEntities(analyzeRequest, document); log.info("Loaded Ner Entities for file {} in dossier {}", analyzeRequest.getFileId(), analyzeRequest.getDossierId()); @@ -233,7 +243,7 @@ public class AnalysisPreparationService { } - public NerEntities getNerEntitiesFiltered(AnalyzeRequest analyzeRequest, Document document, Set sectionsToReanalyseIds) { + private NerEntities getNerEntitiesFiltered(AnalyzeRequest analyzeRequest, Document document, Set sectionsToReanalyseIds) { NerEntities nerEntities = getEntityRecognitionEntitiesFilteredBySectionIds(analyzeRequest, document, sectionsToReanalyseIds); log.info("Loaded Ner Entities for file {} in dossier {}", analyzeRequest.getFileId(), analyzeRequest.getDossierId()); diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/AnalyzeService.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/AnalyzeService.java index 261c82e7..6f2eaf06 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/AnalyzeService.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/AnalyzeService.java @@ -6,7 +6,6 @@ import static com.iqser.red.service.redaction.v1.server.service.AnalysisPreparat import java.util.ArrayList; import java.util.Collection; -import java.util.Collections; import java.util.HashSet; import java.util.List; import java.util.Optional; @@ -26,8 +25,6 @@ import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.entitylog.EntityLog; import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.entitylog.EntityLogChanges; import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.entitylog.imported.ImportedLegalBases; -import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.entitylog.imported.ImportedRedactions; -import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.file.FileType; import com.iqser.red.service.persistence.service.v1.api.shared.model.mapper.ImportedLegalBasisMapper; import com.iqser.red.service.persistence.service.v1.api.shared.mongo.service.EntityLogMongoService; import com.iqser.red.service.redaction.v1.server.RedactionServiceSettings; @@ -57,17 +54,14 @@ import lombok.extern.slf4j.Slf4j; public class AnalyzeService { EntityDroolsExecutionService entityDroolsExecutionService; - ComponentDroolsExecutionService componentDroolsExecutionService; DictionarySearchService dictionarySearchService; EntityLogCreatorService entityLogCreatorService; EntityLogMongoService entityLogMongoService; - ComponentLogCreatorService componentLogCreatorService; RedactionStorageService redactionStorageService; - RedactionServiceSettings redactionServiceSettings; NotFoundImportedEntitiesService notFoundImportedEntitiesService; - FunctionTimerValues redactmanagerAnalyzePagewiseValues; - ImportedLegalBasisMapper importedLegalBasisMapper = ImportedLegalBasisMapper.INSTANCE; AnalysisPreparationService analysisPreparationService; + AnalysisFinalizationService analysisFinalizationService; + ImportedLegalBasisMapper importedLegalBasisMapper = ImportedLegalBasisMapper.INSTANCE; @Timed("redactmanager_reanalyze") @@ -100,15 +94,15 @@ public class AnalyzeService { new ArrayList<>(), new ArrayList<>()); - return finalizeAnalysis(analyzeRequest, - startTime, - initialProcessingData.kieWrapperComponentRules(), - entityLogChanges, - setupData.document(), - setupData.document().getNumberOfPages(), - true, - new HashSet<>(), - context); + return analysisFinalizationService.finalizeAnalysis(analyzeRequest, + startTime, + initialProcessingData.kieWrapperComponentRules(), + entityLogChanges, + setupData.document(), + setupData.document().getNumberOfPages(), + true, + new HashSet<>(), + context); } ReanalysisFinalProcessingData finalProcessingData = analysisPreparationService.getReanalysisFinalProcessingData(analyzeRequest, setupData, initialProcessingData); @@ -141,15 +135,15 @@ public class AnalyzeService { notFoundImportedEntitiesService.processEntityLog(entityLogChanges.getEntityLog(), analyzeRequest, finalProcessingData.notFoundImportedEntries()); - return finalizeAnalysis(analyzeRequest, - startTime, - initialProcessingData.kieWrapperComponentRules(), - entityLogChanges, - setupData.document(), - setupData.document().getNumberOfPages(), - true, - new HashSet<>(allFileAttributes), - context); + return analysisFinalizationService.finalizeAnalysis(analyzeRequest, + startTime, + initialProcessingData.kieWrapperComponentRules(), + entityLogChanges, + setupData.document(), + setupData.document().getNumberOfPages(), + true, + new HashSet<>(allFileAttributes), + context); } @@ -184,15 +178,15 @@ public class AnalyzeService { .entityLog(entityLog.get()) .build(); - return finalizeAnalysis(analyzeRequest, - startTime, - kieWrapperComponentRules, - entityLogChanges, - setupData.document(), - setupData.document().getNumberOfPages(), - true, - new HashSet<>(analyzeRequest.getFileAttributes()), - context); + return analysisFinalizationService.finalizeAnalysis(analyzeRequest, + startTime, + kieWrapperComponentRules, + entityLogChanges, + setupData.document(), + setupData.document().getNumberOfPages(), + true, + new HashSet<>(analyzeRequest.getFileAttributes()), + context); } @@ -237,15 +231,15 @@ public class AnalyzeService { notFoundImportedEntitiesService.processEntityLog(entityLogChanges.getEntityLog(), analyzeRequest, analysisData.notFoundImportedEntries()); - return finalizeAnalysis(analyzeRequest, - startTime, - analysisData.kieWrapperComponentRules(), - entityLogChanges, - analysisData.document(), - analysisData.document().getNumberOfPages(), - false, - new HashSet<>(allFileAttributes), - context); + return analysisFinalizationService.finalizeAnalysis(analyzeRequest, + startTime, + analysisData.kieWrapperComponentRules(), + entityLogChanges, + analysisData.document(), + analysisData.document().getNumberOfPages(), + false, + new HashSet<>(allFileAttributes), + context); } @@ -284,112 +278,15 @@ public class AnalyzeService { notFoundImportedEntitiesService.processEntityLog(entityLogChanges.getEntityLog(), analyzeRequest, analysisData.notFoundImportedEntries()); - return finalizeAnalysis(analyzeRequest, - startTime, - analysisData.kieWrapperComponentRules(), - entityLogChanges, - analysisData.document(), - analysisData.document().getNumberOfPages(), - false, - new HashSet<>(), - context); - } - - - private AnalyzeResult finalizeAnalysis(AnalyzeRequest analyzeRequest, - long startTime, - KieWrapper kieWrapperComponentRules, - EntityLogChanges entityLogChanges, - Document document, - int numberOfPages, - boolean isReanalysis, - Set addedFileAttributes, - Context context) { - - EntityLog entityLog = entityLogChanges.getEntityLog(); - - // as workaround for duplicate key exceptions occurring due to simultaneous analyses and reanalyses save instead of insert is used - // also analysis numbers should be incremented in every follow-up request, so checking if the log exists is not needed - if (!redactionStorageService.entityLogExists(analyzeRequest.getDossierId(), analyzeRequest.getFileId())) { - redactionStorageService.saveEntityLog(analyzeRequest.getDossierId(), analyzeRequest.getFileId(), entityLog); - - } else { - redactionStorageService.updateEntityLogWithoutEntries(analyzeRequest.getDossierId(), analyzeRequest.getFileId(), entityLog); - - if (!entityLogChanges.getNewEntityLogEntries().isEmpty()) { - redactionStorageService.saveEntityLogEntries(analyzeRequest.getDossierId(), analyzeRequest.getFileId(), entityLogChanges.getNewEntityLogEntries()); - } - if (!entityLogChanges.getUpdatedEntityLogEntries().isEmpty()) { - redactionStorageService.updateEntityLogEntries(analyzeRequest.getDossierId(), analyzeRequest.getFileId(), entityLogChanges.getUpdatedEntityLogEntries()); - } - } - - log.info("Created entity log for file {} in dossier {}", analyzeRequest.getFileId(), analyzeRequest.getDossierId()); - - context.setRuleVersion(kieWrapperComponentRules.rulesVersion()); - Optional componentLog = computeComponentsWhenRulesArePresent(analyzeRequest, kieWrapperComponentRules, document, addedFileAttributes, entityLog, context); - - long duration = System.currentTimeMillis() - startTime; - - redactmanagerAnalyzePagewiseValues.increase(numberOfPages, duration); - - return AnalyzeResult.builder() - .dossierId(analyzeRequest.getDossierId()) - .fileId(analyzeRequest.getFileId()) - .duration(duration) - .numberOfPages(numberOfPages) - .hasUpdates(entityLogChanges.hasChanges()) - .analysisVersion(redactionServiceSettings.getAnalysisVersion()) - .analysisNumber(analyzeRequest.getAnalysisNumber()) - .rulesVersion(entityLog.getRulesVersion()) - .componentRulesVersion(kieWrapperComponentRules.rulesVersion()) - .dateFormatsVersion(componentLog.map(ComponentLog::getDateFormatsVersion) - .orElse(-1L)) - .dictionaryVersion(entityLog.getDictionaryVersion()) - .legalBasisVersion(entityLog.getLegalBasisVersion()) - .dossierDictionaryVersion(entityLog.getDossierDictionaryVersion()) - .wasReanalyzed(isReanalysis) - .manualRedactions(analyzeRequest.getManualRedactions()) - .addedFileAttributes(addedFileAttributes) - .usedComponentMappings(analyzeRequest.getComponentMappings()) - .build(); - } - - - private Optional computeComponentsWhenRulesArePresent(AnalyzeRequest analyzeRequest, - KieWrapper kieWrapperComponentRules, - Document document, - Set addedFileAttributes, - EntityLog entityLog, - Context context) { - - if (!kieWrapperComponentRules.isPresent()) { - return Optional.empty(); - } - - // We need the latest EntityLog entries for components rules execution - entityLog.setEntityLogEntry(redactionStorageService.getEntityLog(analyzeRequest.getDossierId(), analyzeRequest.getFileId()).getEntityLogEntry()); - - List components = componentDroolsExecutionService.executeRules(kieWrapperComponentRules.container(), - entityLog, - document, - addedFileAttributes, - analyzeRequest.getComponentMappings(), - context); - - log.info("Finished component rule execution for file {} in dossier {}", analyzeRequest.getFileId(), analyzeRequest.getDossierId()); - - ComponentLog componentLog = componentLogCreatorService.buildComponentLog(analyzeRequest.getAnalysisNumber(), - components, - kieWrapperComponentRules.rulesVersion(), - analyzeRequest.getComponentDefinitions(), - context.getDateFormatsVersion()); - - redactionStorageService.saveComponentLog(analyzeRequest.getDossierId(), analyzeRequest.getFileId(), componentLog); - - log.info("Stored component log for file {} in dossier {}", analyzeRequest.getFileId(), analyzeRequest.getDossierId()); - - return Optional.of(componentLog); + return analysisFinalizationService.finalizeAnalysis(analyzeRequest, + startTime, + analysisData.kieWrapperComponentRules(), + entityLogChanges, + analysisData.document(), + analysisData.document().getNumberOfPages(), + false, + new HashSet<>(), + context); } } diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/DictionarySearchService.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/DictionarySearchService.java index fe46e644..e5a2ab17 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/DictionarySearchService.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/DictionarySearchService.java @@ -39,14 +39,27 @@ public class DictionarySearchService { @Observed(name = "DictionarySearchService", contextualName = "add-dictionary-entries") public void addDictionaryEntities(Dictionary dictionary, SemanticNode node) { - for (DictionaryModel model : dictionary.getDictionaryModels()) { - bySearchImplementationAsDictionary(model.getEntriesSearch(), model.getType(), model.isHint() ? EntityType.HINT : EntityType.ENTITY, node, model.isDossierDictionary()); - bySearchImplementationAsDictionary(model.getFalsePositiveSearch(), model.getType(), EntityType.FALSE_POSITIVE, node, model.isDossierDictionary()); - bySearchImplementationAsDictionary(model.getFalseRecommendationsSearch(), model.getType(), EntityType.FALSE_RECOMMENDATION, node, model.isDossierDictionary()); - if (model.isDossierDictionary()) { - bySearchImplementationAsDictionary(model.getDeletionEntriesSearch(), model.getType(), EntityType.DICTIONARY_REMOVAL, node, model.isDossierDictionary()); - } - } + dictionary.getDictionaryModels() + .stream() + .parallel() + .forEach(model -> { + synchronized (node) { + bySearchImplementationAsDictionary(model.getEntriesSearch(), + model.getType(), + model.isHint() ? EntityType.HINT : EntityType.ENTITY, + node, + model.isDossierDictionary()); + bySearchImplementationAsDictionary(model.getFalsePositiveSearch(), model.getType(), EntityType.FALSE_POSITIVE, node, model.isDossierDictionary()); + bySearchImplementationAsDictionary(model.getFalseRecommendationsSearch(), + model.getType(), + EntityType.FALSE_RECOMMENDATION, + node, + model.isDossierDictionary()); + if (model.isDossierDictionary()) { + bySearchImplementationAsDictionary(model.getDeletionEntriesSearch(), model.getType(), EntityType.DICTIONARY_REMOVAL, node, model.isDossierDictionary()); + } + } + }); } diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/DocumentSearchService.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/DocumentSearchService.java index 567d3b4b..88cf2c2d 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/DocumentSearchService.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/DocumentSearchService.java @@ -1,5 +1,6 @@ package com.iqser.red.service.redaction.v1.server.service; +import java.util.Collections; import java.util.List; import java.util.Set; @@ -53,7 +54,7 @@ public class DocumentSearchService { } List foundTerms = possibleEntities.stream() - .flatMap(entity -> entityLogCreatorService.toEntityLogEntries(entity, 0, "", "") + .flatMap(entity -> entityLogCreatorService.toEntityLogEntries(entity, 0, Collections.emptyMap()) .stream()) .map(entityLogEntry -> new FoundTerm(entityLogEntry.getPositions(), entityLogEntry.getValue())) .toList(); diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/EntityChangeLogService.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/EntityChangeLogService.java index e1be0b90..577f4ae2 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/EntityChangeLogService.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/EntityChangeLogService.java @@ -22,6 +22,7 @@ import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations import com.iqser.red.service.redaction.v1.server.utils.EntityLogEntryDiffChecker; import io.micrometer.core.annotation.Timed; +import io.micrometer.observation.annotation.Observed; import lombok.AccessLevel; import lombok.RequiredArgsConstructor; import lombok.experimental.FieldDefaults; @@ -34,6 +35,7 @@ import lombok.extern.slf4j.Slf4j; public class EntityChangeLogService { @Timed("redactmanager_computeChanges") + @Observed(name = "EntityChangeLogService", contextualName = "compute-changes") public EntryChanges computeChanges(List previousEntityLogEntries, List newEntityLogEntries, int analysisNumber) { var now = OffsetDateTime.now(); diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/EntityLogCreatorService.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/EntityLogCreatorService.java index 0a2cf448..3e121a9f 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/EntityLogCreatorService.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/EntityLogCreatorService.java @@ -2,12 +2,16 @@ package com.iqser.red.service.redaction.v1.server.service; import java.util.ArrayList; import java.util.Collections; +import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Locale; +import java.util.Map; import java.util.Optional; import java.util.Set; +import java.util.concurrent.atomic.AtomicReference; import java.util.stream.Collectors; +import java.util.stream.Stream; import org.springframework.stereotype.Service; @@ -43,6 +47,10 @@ import com.iqser.red.service.redaction.v1.server.service.EntityChangeLogService. import com.iqser.red.service.redaction.v1.server.storage.RedactionStorageService; import com.iqser.red.service.redaction.v1.server.utils.ManualChangesUtils; +import io.micrometer.core.annotation.Timed; +import io.micrometer.observation.Observation; +import io.micrometer.observation.ObservationRegistry; +import io.micrometer.observation.annotation.Observed; import lombok.AccessLevel; import lombok.RequiredArgsConstructor; import lombok.experimental.FieldDefaults; @@ -60,6 +68,7 @@ public class EntityLogCreatorService { EntityChangeLogService entityChangeLogService; RedactionStorageService redactionStorageService; EntityLogMongoService entityLogMongoService; + ObservationRegistry observationRegistry; private static boolean notFalsePositiveOrFalseRecommendationOrRemoval(TextEntity textEntity) { @@ -70,6 +79,8 @@ public class EntityLogCreatorService { } + @Timed("redactmanager_createInitialEntityLog") + @Observed(name = "EntityLogCreatorService", contextualName = "create-initial-entity-log") public EntityLogChanges createInitialEntityLog(AnalyzeRequest analyzeRequest, Document document, List notFoundEntities, @@ -109,6 +120,8 @@ public class EntityLogCreatorService { } + @Timed("redactmanager_updateVersionsAndReturnChanges") + @Observed(name = "EntityLogCreatorService", contextualName = "update-versions-and-return-changes") public EntityLogChanges updateVersionsAndReturnChanges(EntityLog entityLog, DictionaryVersion dictionaryVersion, AnalyzeRequest analyzeRequest, @@ -126,6 +139,8 @@ public class EntityLogCreatorService { } + @Timed("redactmanager_updatePreviousEntityLog") + @Observed(name = "EntityLogCreatorService", contextualName = "update-previous-entity-log") public EntityLogChanges updatePreviousEntityLog(AnalyzeRequest analyzeRequest, Document document, EntityLog entityLogWithoutEntries, @@ -133,16 +148,23 @@ public class EntityLogCreatorService { Set sectionsToReanalyseIds, DictionaryVersion dictionaryVersion) { - List newEntityLogEntries = createEntityLogEntries(document, analyzeRequest, notFoundEntries, analyzeRequest.getAnalysisNumber()).stream() - .filter(entry -> entry.getContainingNodeId().isEmpty() || sectionsToReanalyseIds.contains(entry.getContainingNodeId() - .get(0))) - .collect(Collectors.toList()); + AtomicReference> newEntityLogEntriesReference = new AtomicReference<>(); + + Observation.createNotStarted("EntityLogCreatorService", observationRegistry) + .contextualName("create-new-entity-log-entries") + .observe(() -> newEntityLogEntriesReference.set(createEntityLogEntries(document, analyzeRequest, notFoundEntries, analyzeRequest.getAnalysisNumber()).stream() + .filter(entry -> entry.getContainingNodeId().isEmpty() + || sectionsToReanalyseIds.contains(entry.getContainingNodeId() + .get(0))) + .collect(Collectors.toList()))); List previousEntriesFromReAnalyzedSections = redactionStorageService.findEntriesContainedBySectionsOrNotContained(analyzeRequest.getDossierId(), analyzeRequest.getFileId(), sectionsToReanalyseIds); - EntryChanges entryChanges = entityChangeLogService.computeChanges(previousEntriesFromReAnalyzedSections, newEntityLogEntries, analyzeRequest.getAnalysisNumber()); + EntryChanges entryChanges = entityChangeLogService.computeChanges(previousEntriesFromReAnalyzedSections, + newEntityLogEntriesReference.get(), + analyzeRequest.getAnalysisNumber()); return updateVersionsAndReturnChanges(entityLogWithoutEntries, dictionaryVersion, analyzeRequest, entryChanges.inserted(), entryChanges.updated()); } @@ -154,26 +176,47 @@ public class EntityLogCreatorService { List entries = new ArrayList<>(); - document.getEntities() + List textEntities = document.getEntities() .stream() .filter(entity -> !entity.getValue().isEmpty()) .filter(EntityLogCreatorService::notFalsePositiveOrFalseRecommendationOrRemoval) .filter(entity -> !entity.removed()) - .forEach(entityNode -> entries.addAll(toEntityLogEntries(entityNode, analysisNumber, analyzeRequest.getDossierId(), analyzeRequest.getFileId()))); + .toList(); - document.streamAllImages() + List images = document.streamAllImages() .filter(entity -> !entity.removed()) - .forEach(imageNode -> entries.add(createEntityLogEntry(imageNode, dossierTemplateId, analysisNumber, analyzeRequest.getDossierId(), analyzeRequest.getFileId()))); + .toList(); - notFoundPrecursorEntries.stream() + List notFoundPrecursorEntities = notFoundPrecursorEntries.stream() .filter(entity -> !entity.removed()) - .forEach(precursorEntity -> entries.add(createEntityLogEntry(precursorEntity, analysisNumber, analyzeRequest.getDossierId(), analyzeRequest.getFileId()))); + .toList(); + + List allIds = new ArrayList<>(); + allIds.addAll(textEntities.stream() + .flatMap(entity -> entity.getPositionsOnPagePerPage() + .stream() + .map(PositionOnPage::getId)) + .toList()); + allIds.addAll(images.stream() + .map(Image::getId) + .toList()); + allIds.addAll(notFoundPrecursorEntities.stream() + .map(PrecursorEntity::getId) + .toList()); + + Map> manualChangesMap = getManualChangesByEntityLogIds(analyzeRequest.getDossierId(), analyzeRequest.getFileId(), allIds); + + textEntities.forEach(entityNode -> entries.addAll(toEntityLogEntries(entityNode, analysisNumber, manualChangesMap))); + + images.forEach(imageNode -> entries.add(createEntityLogEntry(imageNode, dossierTemplateId, analysisNumber, manualChangesMap.getOrDefault(imageNode.getId(), new ArrayList<>())))); + + notFoundPrecursorEntities.forEach(precursorEntity -> entries.add(createEntityLogEntry(precursorEntity, analysisNumber, manualChangesMap.getOrDefault(precursorEntity.getId(), new ArrayList<>())))); return entries; } - public List toEntityLogEntries(TextEntity textEntity, int analysisNumber, String dossierId, String fileId) { + public List toEntityLogEntries(TextEntity textEntity, int analysisNumber, Map> existingManualChangesMap) { List entityLogEntries = new ArrayList<>(); @@ -185,7 +228,7 @@ public class EntityLogCreatorService { .map(rectangle2D -> new Position(rectangle2D, positionOnPage.getPage().getNumber())) .toList(); - EntityLogEntry entityLogEntry = createEntityLogEntry(textEntity, analysisNumber, positionOnPage.getId(), dossierId, fileId); + EntityLogEntry entityLogEntry = createEntityLogEntry(textEntity, analysisNumber, existingManualChangesMap.getOrDefault(positionOnPage.getId(), new ArrayList<>())); // set the ID from the positions, since it might contain a "-" with the page number if the entity is split across multiple pages entityLogEntry.setId(positionOnPage.getId()); @@ -197,12 +240,11 @@ public class EntityLogCreatorService { } - private EntityLogEntry createEntityLogEntry(Image image, String dossierTemplateId, int analysisNumber, String dossierId, String fileId) { + private EntityLogEntry createEntityLogEntry(Image image, String dossierTemplateId, int analysisNumber, List existingManualChanges) { String imageType = image.getImageType().equals(ImageType.OTHER) ? "image" : image.getImageType().toString().toLowerCase(Locale.ENGLISH); boolean isHint = dictionaryService.isHint(imageType, dossierTemplateId); - List existingManualChanges = getManualChangesByEntityLogId(dossierId, fileId, image.getId()); List allManualChanges = ManualChangeFactory.toLocalManualChangeList(image.getManualOverwrite().getManualChangeLog(), true, analysisNumber); return EntityLogEntry.builder() @@ -230,12 +272,11 @@ public class EntityLogCreatorService { } - private EntityLogEntry createEntityLogEntry(PrecursorEntity precursorEntity, int analysisNumber, String dossierId, String fileId) { + private EntityLogEntry createEntityLogEntry(PrecursorEntity precursorEntity, int analysisNumber, List existingManualChanges) { String type = precursorEntity.getManualOverwrite().getType() .orElse(precursorEntity.getType()); - List existingManualChanges = getManualChangesByEntityLogId(dossierId, fileId, precursorEntity.getId()); List allManualChanges = ManualChangeFactory.toLocalManualChangeList(precursorEntity.getManualOverwrite().getManualChangeLog(), true, analysisNumber); return EntityLogEntry.builder() @@ -273,7 +314,7 @@ public class EntityLogCreatorService { } - private EntityLogEntry createEntityLogEntry(TextEntity entity, int analysisNumber, String id, String dossierId, String fileId) { + private EntityLogEntry createEntityLogEntry(TextEntity entity, int analysisNumber, List existingManualChanges) { Set referenceIds = new HashSet<>(); entity.references() @@ -284,7 +325,6 @@ public class EntityLogCreatorService { EntryType entryType = buildEntryType(entity); - List existingManualChanges = getManualChangesByEntityLogId(dossierId, fileId, id); List allManualChanges = ManualChangeFactory.toLocalManualChangeList(entity.getManualOverwrite().getManualChangeLog(), true, analysisNumber); return EntityLogEntry.builder() @@ -415,16 +455,16 @@ public class EntityLogCreatorService { } - public List getManualChangesByEntityLogId(String dossierId, String fileId, String id) { + public Map> getManualChangesByEntityLogIds(String dossierId, String fileId, List ids) { - List manualChanges = new ArrayList<>(); - List entityLogEntries = entityLogMongoService.findEntityLogEntriesByIds(dossierId, fileId, List.of(id)); + Map> manualChangesMap = new HashMap<>(); + List entityLogEntries = entityLogMongoService.findEntityLogEntriesByIds(dossierId, fileId, ids); for (EntityLogEntry entry : entityLogEntries) { - manualChanges.addAll(entry.getManualChanges()); + manualChangesMap.put(entry.getId(), entry.getManualChanges()); } - return manualChanges; + return manualChangesMap; } } diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/NotFoundImportedEntitiesService.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/NotFoundImportedEntitiesService.java index e4888dc2..2ef3505b 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/NotFoundImportedEntitiesService.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/NotFoundImportedEntitiesService.java @@ -9,8 +9,9 @@ import java.util.Map; import java.util.Set; import java.util.stream.Collectors; +import org.springframework.stereotype.Service; + import com.iqser.red.service.persistence.service.v1.api.shared.model.AnalyzeRequest; -import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.entitylog.Change; import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.entitylog.ChangeType; import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.entitylog.Engine; import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.entitylog.EntityLog; @@ -20,11 +21,9 @@ import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.ChangeFactory; import com.iqser.red.service.redaction.v1.server.model.PrecursorEntity; import com.iqser.red.service.redaction.v1.server.model.RectangleWithPage; -import com.iqser.red.service.redaction.v1.server.storage.RedactionStorageService; - -import org.springframework.stereotype.Service; import io.micrometer.core.annotation.Timed; +import io.micrometer.observation.annotation.Observed; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -37,6 +36,7 @@ public class NotFoundImportedEntitiesService { @Timed("redactmanager_processEntityLog") + @Observed(name = "NotFoundImportedEntitiesService", contextualName = "process-entity-log") public void processEntityLog(EntityLog entityLog, AnalyzeRequest analyzeRequest, List notFoundEntities) { // recreate imported redactions with manual changes if (notFoundEntities == null || notFoundEntities.isEmpty()) { @@ -65,7 +65,7 @@ public class NotFoundImportedEntitiesService { } - public Map> mapImportedRedactionsOnPage(List importedEntities) { + private Map> mapImportedRedactionsOnPage(List importedEntities) { Map> importedRedactionsMap = new HashMap<>(); Set pageNumbers = importedEntities.stream() @@ -82,7 +82,7 @@ public class NotFoundImportedEntitiesService { } - public void addIntersections(EntityLogEntry entityLogEntry, Map> importedEntitiesMap, int analysisNumber) { + private void addIntersections(EntityLogEntry entityLogEntry, Map> importedEntitiesMap, int analysisNumber) { for (Position rectangle : entityLogEntry.getPositions()) { if (importedEntitiesMap.containsKey(rectangle.getPageNumber())) { diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/document/DocumentGraphMapper.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/document/DocumentGraphMapper.java index 9319457a..8198a80f 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/document/DocumentGraphMapper.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/document/DocumentGraphMapper.java @@ -1,8 +1,11 @@ package com.iqser.red.service.redaction.v1.server.service.document; +import static com.knecon.fforesight.service.layoutparser.internal.api.data.redaction.DocumentPageProto.DocumentPage; +import static com.knecon.fforesight.service.layoutparser.internal.api.data.redaction.DocumentPositionDataProto.AllDocumentPositionData; +import static com.knecon.fforesight.service.layoutparser.internal.api.data.redaction.DocumentTextDataProto.AllDocumentTextData; +import static com.knecon.fforesight.service.layoutparser.internal.api.data.redaction.EntryDataProto.EntryData; + import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; import java.util.HashSet; import java.util.LinkedList; import java.util.List; @@ -26,10 +29,6 @@ import com.iqser.red.service.redaction.v1.server.model.document.nodes.TableCell; import com.iqser.red.service.redaction.v1.server.model.document.textblock.AtomicTextBlock; import com.iqser.red.service.redaction.v1.server.model.document.textblock.TextBlock; import com.iqser.red.service.redaction.v1.server.model.document.textblock.TextBlockCollector; -import com.knecon.fforesight.service.layoutparser.internal.api.data.redaction.DocumentPage; -import com.knecon.fforesight.service.layoutparser.internal.api.data.redaction.DocumentPositionData; -import com.knecon.fforesight.service.layoutparser.internal.api.data.redaction.DocumentStructure; -import com.knecon.fforesight.service.layoutparser.internal.api.data.redaction.DocumentTextData; import lombok.experimental.UtilityClass; @@ -42,27 +41,29 @@ public class DocumentGraphMapper { DocumentTree documentTree = new DocumentTree(document); Context context = new Context(documentData, documentTree); - context.pageData.addAll(Arrays.stream(documentData.getDocumentPages()) + context.pageData.addAll(documentData.getDocumentPages().getDocumentPagesList() + .stream() .map(DocumentGraphMapper::buildPage) .toList()); - context.documentTree.getRoot().getChildren().addAll(buildEntries(documentData.getDocumentStructure().getRoot().getChildren(), context)); + context.documentTree.getRoot().getChildren().addAll(buildEntries(documentData.getDocumentStructure().getRoot().getChildrenList(), context)); document.setDocumentTree(context.documentTree); document.setPages(new HashSet<>(context.pageData)); - document.setNumberOfPages(documentData.getDocumentPages().length); + document.setNumberOfPages(documentData.getDocumentPages().getDocumentPagesCount()); document.setTextBlock(document.getTextBlock()); return document; } - private List buildEntries(List entries, Context context) { + private List buildEntries(List entries, Context context) { List newEntries = new ArrayList<>(entries.size()); - for (DocumentStructure.EntryData entryData : entries) { + for (EntryData entryData : entries) { - List pages = Arrays.stream(entryData.getPageNumbers()) + List pages = entryData.getPageNumbersList() + .stream() .map(context::getPage) .toList(); @@ -75,12 +76,12 @@ public class DocumentGraphMapper { case FOOTER -> buildFooter(context); case TABLE -> buildTable(context, entryData.getProperties()); case TABLE_CELL -> buildTableCell(context, entryData.getProperties()); - case IMAGE -> buildImage(context, entryData.getProperties(), entryData.getPageNumbers()); + case IMAGE -> buildImage(context, entryData.getProperties(), entryData.getPageNumbersList()); default -> throw new UnsupportedOperationException("Not yet implemented for type " + entryData.getType()); }; - if (entryData.getAtomicBlockIds().length > 0) { - TextBlock textBlock = toTextBlock(entryData.getAtomicBlockIds(), context, node); + if (entryData.getAtomicBlockIdsCount() > 0) { + TextBlock textBlock = toTextBlock(entryData.getAtomicBlockIdsList(), context, node); node.setLeafTextBlock(textBlock); switch (entryData.getType()) { @@ -92,20 +93,13 @@ public class DocumentGraphMapper { } } - List treeId = Arrays.stream(entryData.getTreeId()).boxed() - .toList(); - if (entryData.getEngines() != null) { - entryData.getEngines() - .forEach(node::addEngine); - } else { - entryData.setEngines(Collections.emptySet()); - } + List treeId = entryData.getTreeIdList(); + entryData.getEnginesList() + .forEach(node::addEngine); node.setTreeId(treeId); - newEntries.add(DocumentTree.Entry.builder().treeId(treeId).children(buildEntries(entryData.getChildren(), context)).node(node).build()); - - } - return newEntries; + newEntries.add(DocumentTree.Entry.builder().treeId(treeId).children(buildEntries(entryData.getChildrenList(), context)).node(node).build()); + } return newEntries; } @@ -115,10 +109,10 @@ public class DocumentGraphMapper { } - private Image buildImage(Context context, Map properties, Long[] pageNumbers) { + private Image buildImage(Context context, Map properties, List pageNumbers) { - assert pageNumbers.length == 1; - Page page = context.getPage(pageNumbers[0]); + assert pageNumbers.size() == 1; + Page page = context.getPage(pageNumbers.get(0)); var builder = Image.builder(); PropertiesMapper.parseImageProperties(properties, builder); return builder.documentTree(context.documentTree).page(page).build(); @@ -171,7 +165,7 @@ public class DocumentGraphMapper { DuplicatedParagraph duplicatedParagraph = DuplicatedParagraph.builder().documentTree(context.documentTree).build(); - Long[] unsortedTextblockIds = PropertiesMapper.getUnsortedTextblockIds(properties); + var unsortedTextblockIds = PropertiesMapper.getUnsortedTextblockIds(properties); duplicatedParagraph.setUnsortedLeafTextBlock(toTextBlock(unsortedTextblockIds, context, duplicatedParagraph)); return duplicatedParagraph; } @@ -180,9 +174,9 @@ public class DocumentGraphMapper { } - private TextBlock toTextBlock(Long[] atomicTextBlockIds, Context context, SemanticNode parent) { + private TextBlock toTextBlock(List atomicTextBlockIds, Context context, SemanticNode parent) { - return Arrays.stream(atomicTextBlockIds) + return atomicTextBlockIds.stream() .map(atomicTextBlockId -> getAtomicTextBlock(context, parent, atomicTextBlockId)) .collect(new TextBlockCollector()); } @@ -190,10 +184,10 @@ public class DocumentGraphMapper { private AtomicTextBlock getAtomicTextBlock(Context context, SemanticNode parent, Long atomicTextBlockId) { - return AtomicTextBlock.fromAtomicTextBlockData(context.documentTextData.get(Math.toIntExact(atomicTextBlockId)), - context.documentPositionData.get(Math.toIntExact(atomicTextBlockId)), + return AtomicTextBlock.fromAtomicTextBlockData(context.documentTextData.getDocumentTextData(Math.toIntExact(atomicTextBlockId)), + context.documentPositionData.getDocumentPositionData(Math.toIntExact(atomicTextBlockId)), parent, - context.getPage(context.documentTextData.get(Math.toIntExact(atomicTextBlockId)).getPage())); + context.getPage(context.documentTextData.getDocumentTextData(Math.toIntExact(atomicTextBlockId)).getPage())); } @@ -207,18 +201,16 @@ public class DocumentGraphMapper { private final DocumentTree documentTree; private final List pageData; - private final List documentTextData; - private final List documentPositionData; + private final AllDocumentTextData documentTextData; + private final AllDocumentPositionData documentPositionData; Context(DocumentData documentData, DocumentTree documentTree) { this.documentTree = documentTree; this.pageData = new ArrayList<>(); - this.documentTextData = Arrays.stream(documentData.getDocumentTextData()) - .toList(); - this.documentPositionData = Arrays.stream(documentData.getDocumentPositionData()) - .toList(); + this.documentTextData = documentData.getDocumentTextData(); + this.documentPositionData = documentData.getDocumentPositionData(); } diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/document/PropertiesMapper.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/document/PropertiesMapper.java index cce935b9..1ddae7a0 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/document/PropertiesMapper.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/document/PropertiesMapper.java @@ -9,7 +9,7 @@ import com.iqser.red.service.redaction.v1.server.model.document.nodes.Image; import com.iqser.red.service.redaction.v1.server.model.document.nodes.ImageType; import com.iqser.red.service.redaction.v1.server.model.document.nodes.Table; import com.iqser.red.service.redaction.v1.server.model.document.nodes.TableCell; -import com.knecon.fforesight.service.layoutparser.internal.api.data.redaction.DocumentStructure; +import com.knecon.fforesight.service.layoutparser.internal.api.data.redaction.DocumentStructureWrapper; import lombok.experimental.UtilityClass; @@ -18,32 +18,32 @@ public class PropertiesMapper { public void parseImageProperties(Map properties, Image.ImageBuilder builder) { - builder.imageType(ImageType.fromString(properties.get(DocumentStructure.ImageProperties.IMAGE_TYPE))); - builder.transparent(Boolean.parseBoolean(properties.get(DocumentStructure.ImageProperties.TRANSPARENT))); - builder.position(parseRectangle2D(properties.get(DocumentStructure.ImageProperties.POSITION))); - builder.id(properties.get(DocumentStructure.ImageProperties.ID)); + builder.imageType(ImageType.fromString(properties.get(DocumentStructureWrapper.ImageProperties.IMAGE_TYPE))); + builder.transparent(Boolean.parseBoolean(properties.get(DocumentStructureWrapper.ImageProperties.TRANSPARENT))); + builder.position(parseRectangle2D(properties.get(DocumentStructureWrapper.ImageProperties.POSITION))); + builder.id(properties.get(DocumentStructureWrapper.ImageProperties.ID)); } public void parseTableCellProperties(Map properties, TableCell.TableCellBuilder builder) { - builder.row(Integer.parseInt(properties.get(DocumentStructure.TableCellProperties.ROW))); - builder.col(Integer.parseInt(properties.get(DocumentStructure.TableCellProperties.COL))); - builder.header(Boolean.parseBoolean(properties.get(DocumentStructure.TableCellProperties.HEADER))); - builder.bBox(parseRectangle2D(properties.get(DocumentStructure.TableCellProperties.B_BOX))); + builder.row(Integer.parseInt(properties.get(DocumentStructureWrapper.TableCellProperties.ROW))); + builder.col(Integer.parseInt(properties.get(DocumentStructureWrapper.TableCellProperties.COL))); + builder.header(Boolean.parseBoolean(properties.get(DocumentStructureWrapper.TableCellProperties.HEADER))); + builder.bBox(parseRectangle2D(properties.get(DocumentStructureWrapper.TableCellProperties.B_BOX))); } public void parseTableProperties(Map properties, Table.TableBuilder builder) { - builder.numberOfRows(Integer.parseInt(properties.get(DocumentStructure.TableProperties.NUMBER_OF_ROWS))); - builder.numberOfCols(Integer.parseInt(properties.get(DocumentStructure.TableProperties.NUMBER_OF_COLS))); + builder.numberOfRows(Integer.parseInt(properties.get(DocumentStructureWrapper.TableProperties.NUMBER_OF_ROWS))); + builder.numberOfCols(Integer.parseInt(properties.get(DocumentStructureWrapper.TableProperties.NUMBER_OF_COLS))); } private Rectangle2D parseRectangle2D(String bBox) { - List floats = Arrays.stream(bBox.split(DocumentStructure.RECTANGLE_DELIMITER)) + List floats = Arrays.stream(bBox.split(DocumentStructureWrapper.RECTANGLE_DELIMITER)) .map(Float::parseFloat) .toList(); return new Rectangle2D.Float(floats.get(0), floats.get(1), floats.get(2), floats.get(3)); @@ -52,19 +52,19 @@ public class PropertiesMapper { public static boolean isDuplicateParagraph(Map properties) { - return properties.containsKey(DocumentStructure.DuplicateParagraphProperties.UNSORTED_TEXTBLOCK_ID); + return properties.containsKey(DocumentStructureWrapper.DuplicateParagraphProperties.UNSORTED_TEXTBLOCK_ID); } - public static Long[] getUnsortedTextblockIds(Map properties) { + public static List getUnsortedTextblockIds(Map properties) { - return toLongArray(properties.get(DocumentStructure.DuplicateParagraphProperties.UNSORTED_TEXTBLOCK_ID)); + return toLongList(properties.get(DocumentStructureWrapper.DuplicateParagraphProperties.UNSORTED_TEXTBLOCK_ID)); } - public static Long[] toLongArray(String ids) { + public static List toLongList(String ids) { - return Arrays.stream(ids.substring(1, ids.length() - 1).trim().split(",")).map(Long::valueOf).toArray(Long[]::new); + return Arrays.stream(ids.substring(1, ids.length() - 1).trim().split(",")).map(Long::valueOf).toList(); } diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/storage/DocumentDataFallbackService.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/storage/DocumentDataFallbackService.java new file mode 100644 index 00000000..c6b2c5d6 --- /dev/null +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/storage/DocumentDataFallbackService.java @@ -0,0 +1,236 @@ +package com.iqser.red.service.redaction.v1.server.storage; + +import java.io.BufferedInputStream; +import java.io.File; +import java.io.IOException; +import java.io.InputStream; +import java.nio.file.Files; +import java.nio.file.Paths; +import java.nio.file.StandardOpenOption; +import java.util.Arrays; +import java.util.stream.Collectors; + +import org.springframework.stereotype.Service; + +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.primitives.Floats; +import com.google.protobuf.Message; +import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.file.FileType; +import com.iqser.red.storage.commons.service.StorageService; +import com.knecon.fforesight.service.layoutparser.internal.api.data.redaction.DocumentPage; +import com.knecon.fforesight.service.layoutparser.internal.api.data.redaction.DocumentPageProto; +import com.knecon.fforesight.service.layoutparser.internal.api.data.redaction.DocumentPositionData; +import com.knecon.fforesight.service.layoutparser.internal.api.data.redaction.DocumentPositionDataProto; +import com.knecon.fforesight.service.layoutparser.internal.api.data.redaction.DocumentStructure; +import com.knecon.fforesight.service.layoutparser.internal.api.data.redaction.DocumentStructureProto; +import com.knecon.fforesight.service.layoutparser.internal.api.data.redaction.DocumentTextData; +import com.knecon.fforesight.service.layoutparser.internal.api.data.redaction.DocumentTextDataProto; +import com.knecon.fforesight.service.layoutparser.internal.api.data.redaction.EntryDataProto; +import com.knecon.fforesight.service.layoutparser.internal.api.data.redaction.NodeTypeProto; +import com.knecon.fforesight.tenantcommons.TenantContext; + +import lombok.RequiredArgsConstructor; +import lombok.SneakyThrows; +import lombok.extern.slf4j.Slf4j; + +@Service +@Slf4j +@RequiredArgsConstructor +public class DocumentDataFallbackService { + + private final ObjectMapper objectMapper; + + private final StorageService storageService; + + + private T getOldData(String dossierId, String fileId, FileType fileType, Class valueType) { + + String oldStorageId = RedactionStorageService.StorageIdUtils.getStorageId(dossierId, fileId, fileType.name(), ".json"); + try (InputStream inputStream = getObject(TenantContext.getTenantId(), oldStorageId)) { + return objectMapper.readValue(inputStream, valueType); + } catch (IOException e) { + log.error("Could not read JSON for " + fileType.name() + ", error was: " + e); + return null; + } + } + + + private void storeNewData(String dossierId, String fileId, FileType fileType, Message protoObject) { + + String newStorageId = RedactionStorageService.StorageIdUtils.getStorageId(dossierId, fileId, fileType); + storageService.storeProtoObject(TenantContext.getTenantId(), newStorageId, protoObject); + } + + + public DocumentStructureProto.DocumentStructure readOldDocumentStructureAndConvert(String dossierId, String fileId) { + + DocumentStructure oldDocumentStructure = getOldData(dossierId, fileId, FileType.DOCUMENT_STRUCTURE, DocumentStructure.class); + if (oldDocumentStructure == null) { + return null; + } + DocumentStructureProto.DocumentStructure documentStructure = convertDocumentStructure(oldDocumentStructure); + //storeNewData(dossierId, fileId, FileType.DOCUMENT_STRUCTURE, documentStructure); + return documentStructure; + } + + + public DocumentPageProto.AllDocumentPages readOldDocumentPagesAndConvert(String dossierId, String fileId) { + + DocumentPage[] oldDocumentPages = getOldData(dossierId, fileId, FileType.DOCUMENT_PAGES, DocumentPage[].class); + if (oldDocumentPages == null) { + return null; + } + DocumentPageProto.AllDocumentPages allDocumentPages = convertAllDocumentPages(oldDocumentPages); + //storeNewData(dossierId, fileId, FileType.DOCUMENT_PAGES, allDocumentPages); + return allDocumentPages; + } + + + public DocumentPositionDataProto.AllDocumentPositionData readOldDocumentPositionDataAndConvert(String dossierId, String fileId) { + + DocumentPositionData[] oldDocumentPositionData = getOldData(dossierId, fileId, FileType.DOCUMENT_POSITION, DocumentPositionData[].class); + if (oldDocumentPositionData == null) { + return null; + } + DocumentPositionDataProto.AllDocumentPositionData allDocumentPositionData = convertAllDocumentPositionData(oldDocumentPositionData); + //storeNewData(dossierId, fileId, FileType.DOCUMENT_POSITION, allDocumentPositionData); + return allDocumentPositionData; + } + + + public DocumentTextDataProto.AllDocumentTextData readOldDocumentTextDataAndConvert(String dossierId, String fileId) { + + DocumentTextData[] oldDocumentTextData = getOldData(dossierId, fileId, FileType.DOCUMENT_TEXT, DocumentTextData[].class); + if (oldDocumentTextData == null) { + return null; + } + DocumentTextDataProto.AllDocumentTextData allDocumentTextData = convertAllDocumentTextData(oldDocumentTextData); + //storeNewData(dossierId, fileId, FileType.DOCUMENT_TEXT, allDocumentTextData); + return allDocumentTextData; + } + + + private static EntryDataProto.EntryData convertEntryData(DocumentStructure.EntryData oldEntryData) { + + EntryDataProto.EntryData.Builder builder = EntryDataProto.EntryData.newBuilder(); + + builder.setType(NodeTypeProto.NodeType.valueOf(oldEntryData.getType().name())); + builder.addAllTreeId(Arrays.stream(oldEntryData.getTreeId()).boxed() + .collect(Collectors.toList())); + builder.addAllAtomicBlockIds(Arrays.asList(oldEntryData.getAtomicBlockIds())); + builder.addAllPageNumbers(Arrays.asList(oldEntryData.getPageNumbers())); + + builder.putAllProperties(oldEntryData.getProperties()); + + if (oldEntryData.getChildren() != null) { + oldEntryData.getChildren() + .forEach(child -> builder.addChildren(convertEntryData(child))); + } + + return builder.build(); + } + + + private static DocumentStructureProto.DocumentStructure convertDocumentStructure(DocumentStructure oldStructure) { + + DocumentStructureProto.DocumentStructure.Builder newBuilder = DocumentStructureProto.DocumentStructure.newBuilder(); + + if (oldStructure.getRoot() != null) { + newBuilder.setRoot(convertEntryData(oldStructure.getRoot())); + } + + return newBuilder.build(); + } + + + private static DocumentPageProto.DocumentPage convertDocumentPage(DocumentPage oldPage) { + + return DocumentPageProto.DocumentPage.newBuilder() + .setNumber(oldPage.getNumber()) + .setHeight(oldPage.getHeight()) + .setWidth(oldPage.getWidth()) + .setRotation(oldPage.getRotation()) + .build(); + } + + + private static DocumentPageProto.AllDocumentPages convertAllDocumentPages(DocumentPage[] oldPages) { + + DocumentPageProto.AllDocumentPages.Builder allPagesBuilder = DocumentPageProto.AllDocumentPages.newBuilder(); + + for (DocumentPage oldPage : oldPages) { + DocumentPageProto.DocumentPage newPage = convertDocumentPage(oldPage); + allPagesBuilder.addDocumentPages(newPage); + } + + return allPagesBuilder.build(); + } + + + private static DocumentPositionDataProto.DocumentPositionData convertDocumentPositionData(DocumentPositionData oldData) { + + DocumentPositionDataProto.DocumentPositionData.Builder builder = DocumentPositionDataProto.DocumentPositionData.newBuilder() + .setId(oldData.getId()) + .addAllStringIdxToPositionIdx(Arrays.stream(oldData.getStringIdxToPositionIdx()).boxed() + .collect(Collectors.toList())); + + for (float[] pos : oldData.getPositions()) { + DocumentPositionDataProto.DocumentPositionData.Position position = DocumentPositionDataProto.DocumentPositionData.Position.newBuilder() + .addAllValue(Floats.asList(pos)) + .build(); + builder.addPositions(position); + } + + return builder.build(); + } + + + private static DocumentPositionDataProto.AllDocumentPositionData convertAllDocumentPositionData(DocumentPositionData[] oldDataList) { + + DocumentPositionDataProto.AllDocumentPositionData.Builder allDataBuilder = DocumentPositionDataProto.AllDocumentPositionData.newBuilder(); + + for (DocumentPositionData oldData : oldDataList) { + allDataBuilder.addDocumentPositionData(convertDocumentPositionData(oldData)); + } + + return allDataBuilder.build(); + } + + + private static DocumentTextDataProto.DocumentTextData convertDocumentTextData(DocumentTextData oldData) { + + DocumentTextDataProto.DocumentTextData.Builder builder = DocumentTextDataProto.DocumentTextData.newBuilder() + .setId(oldData.getId()) + .setPage(oldData.getPage()) + .setSearchText(oldData.getSearchText()) + .setNumberOnPage(oldData.getNumberOnPage()) + .setStart(oldData.getStart()) + .setEnd(oldData.getEnd()) + .addAllLineBreaks(Arrays.stream(oldData.getLineBreaks()).boxed() + .collect(Collectors.toList())); + + return builder.build(); + } + + + private static DocumentTextDataProto.AllDocumentTextData convertAllDocumentTextData(DocumentTextData[] oldDataList) { + + DocumentTextDataProto.AllDocumentTextData.Builder allDataBuilder = DocumentTextDataProto.AllDocumentTextData.newBuilder(); + + for (DocumentTextData oldData : oldDataList) { + allDataBuilder.addDocumentTextData(convertDocumentTextData(oldData)); + } + + return allDataBuilder.build(); + } + + + @SneakyThrows + private InputStream getObject(String tenantId, String storageId) { + + File tempFile = File.createTempFile("temp", ".data"); + storageService.downloadTo(tenantId, storageId, tempFile); + return new BufferedInputStream(Files.newInputStream(Paths.get(tempFile.getPath()), StandardOpenOption.DELETE_ON_CLOSE)); + } + +} diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/storage/RedactionStorageService.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/storage/RedactionStorageService.java index f0ee34e5..7c17a0ee 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/storage/RedactionStorageService.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/storage/RedactionStorageService.java @@ -1,5 +1,6 @@ package com.iqser.red.service.redaction.v1.server.storage; +import static com.knecon.fforesight.service.layoutparser.internal.api.data.redaction.DocumentPositionDataProto.AllDocumentPositionData; import static org.springframework.boot.autoconfigure.task.TaskExecutionAutoConfiguration.APPLICATION_TASK_EXECUTOR_BEAN_NAME; import java.io.File; @@ -26,16 +27,21 @@ import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.file.FileType; import com.iqser.red.service.persistence.service.v1.api.shared.mongo.service.ComponentLogMongoService; import com.iqser.red.service.persistence.service.v1.api.shared.mongo.service.EntityLogMongoService; +import com.iqser.red.service.redaction.v1.server.RedactionServiceSettings; import com.iqser.red.service.redaction.v1.server.client.model.NerEntitiesModel; import com.iqser.red.service.redaction.v1.server.model.document.DocumentData; import com.iqser.red.service.redaction.v1.server.utils.exception.NotFoundException; +import com.iqser.red.storage.commons.exception.StorageException; import com.iqser.red.storage.commons.exception.StorageObjectDoesNotExist; import com.iqser.red.storage.commons.service.StorageService; import com.knecon.fforesight.llm.service.LlmNerEntities; -import com.knecon.fforesight.service.layoutparser.internal.api.data.redaction.DocumentPage; -import com.knecon.fforesight.service.layoutparser.internal.api.data.redaction.DocumentPositionData; -import com.knecon.fforesight.service.layoutparser.internal.api.data.redaction.DocumentStructure; -import com.knecon.fforesight.service.layoutparser.internal.api.data.redaction.DocumentTextData; +import com.knecon.fforesight.service.layoutparser.internal.api.data.redaction.DocumentPageProto; +import com.knecon.fforesight.service.layoutparser.internal.api.data.redaction.DocumentPageProto.AllDocumentPages; +import com.knecon.fforesight.service.layoutparser.internal.api.data.redaction.DocumentPositionDataProto; +import com.knecon.fforesight.service.layoutparser.internal.api.data.redaction.DocumentStructureProto.DocumentStructure; +import com.knecon.fforesight.service.layoutparser.internal.api.data.redaction.DocumentStructureWrapper; +import com.knecon.fforesight.service.layoutparser.internal.api.data.redaction.DocumentTextDataProto; +import com.knecon.fforesight.service.layoutparser.internal.api.data.redaction.DocumentTextDataProto.AllDocumentTextData; import com.knecon.fforesight.tenantcommons.TenantContext; import io.micrometer.core.annotation.Timed; @@ -48,23 +54,29 @@ import lombok.extern.slf4j.Slf4j; @Service public class RedactionStorageService { + private final RedactionServiceSettings settings; private final StorageService storageService; - private final EntityLogMongoService entityLogMongoService; + private final DocumentDataFallbackService documentDataFallbackService; private final ComponentLogMongoService componentLogMongoService; private final TaskExecutor taskExecutor; - public RedactionStorageService(StorageService storageService, + public RedactionStorageService(RedactionServiceSettings settings, + StorageService storageService, EntityLogMongoService entityLogMongoService, ComponentLogMongoService componentLogMongoService, + DocumentDataFallbackService documentDataFallbackService, @Qualifier(APPLICATION_TASK_EXECUTOR_BEAN_NAME) TaskExecutor taskExecutor) { + this.settings = settings; + this.storageService = storageService; this.entityLogMongoService = entityLogMongoService; this.componentLogMongoService = componentLogMongoService; + this.documentDataFallbackService = documentDataFallbackService; this.taskExecutor = taskExecutor; } @@ -257,32 +269,15 @@ public class RedactionStorageService { public DocumentData getDocumentData(String dossierId, String fileId) { try { - Supplier documentStructureSupplier = () -> storageService.readJSONObject(TenantContext.getTenantId(), - StorageIdUtils.getStorageId(dossierId, fileId, FileType.DOCUMENT_STRUCTURE), - DocumentStructure.class); - CompletableFuture documentStructureFuture = CompletableFuture.supplyAsync(documentStructureSupplier, taskExecutor); - - Supplier documentTextDataSupplier = () -> storageService.readJSONObject(TenantContext.getTenantId(), - StorageIdUtils.getStorageId(dossierId, fileId, FileType.DOCUMENT_TEXT), - DocumentTextData[].class); - CompletableFuture documentTextDataFuture = CompletableFuture.supplyAsync(documentTextDataSupplier, taskExecutor); - - Supplier documentPositionDataSupplier = () -> storageService.readJSONObject(TenantContext.getTenantId(), - StorageIdUtils.getStorageId(dossierId, - fileId, - FileType.DOCUMENT_POSITION), - DocumentPositionData[].class); - CompletableFuture documentPositionDataFuture = CompletableFuture.supplyAsync(documentPositionDataSupplier, taskExecutor); - - Supplier documentPageSupplier = () -> storageService.readJSONObject(TenantContext.getTenantId(), - StorageIdUtils.getStorageId(dossierId, fileId, FileType.DOCUMENT_PAGES), - DocumentPage[].class); - CompletableFuture documentPagesFuture = CompletableFuture.supplyAsync(documentPageSupplier, taskExecutor); + CompletableFuture documentStructureFuture = fetchDocumentStructure(dossierId, fileId); + CompletableFuture documentTextDataFuture = fetchDocumentTextData(dossierId, fileId); + CompletableFuture documentPositionDataFuture = fetchDocumentPositionData(dossierId, fileId); + CompletableFuture documentPagesFuture = fetchDocumentPages(dossierId, fileId); CompletableFuture.allOf(documentStructureFuture, documentTextDataFuture, documentPositionDataFuture, documentPagesFuture).join(); return DocumentData.builder() - .documentStructure(documentStructureFuture.get()) + .documentStructureWrapper(new DocumentStructureWrapper(documentStructureFuture.get())) .documentTextData(documentTextDataFuture.get()) .documentPositionData(documentPositionDataFuture.get()) .documentPages(documentPagesFuture.get()) @@ -297,6 +292,74 @@ public class RedactionStorageService { } + private CompletableFuture fetchDocumentStructure(String dossierId, String fileId) { + + Supplier documentStructureSupplier = () -> { + DocumentStructure documentStructure = null; + String storageId = StorageIdUtils.getStorageId(dossierId, fileId, FileType.DOCUMENT_STRUCTURE); + if (storageService.objectExists(TenantContext.getTenantId(), storageId)) { + documentStructure = storageService.readProtoObject(TenantContext.getTenantId(), storageId, DocumentStructure.parser()); + } + if (documentStructure == null && settings.isProtobufJsonFallback()) { + documentStructure = documentDataFallbackService.readOldDocumentStructureAndConvert(dossierId, fileId); + } + return documentStructure; + }; + return CompletableFuture.supplyAsync(documentStructureSupplier, taskExecutor); + } + + + private CompletableFuture fetchDocumentTextData(String dossierId, String fileId) { + + Supplier documentTextDataSupplier = () -> { + DocumentTextDataProto.AllDocumentTextData documentTextData = null; + String storageId = StorageIdUtils.getStorageId(dossierId, fileId, FileType.DOCUMENT_TEXT); + if (storageService.objectExists(TenantContext.getTenantId(), storageId)) { + documentTextData = storageService.readProtoObject(TenantContext.getTenantId(), storageId, DocumentTextDataProto.AllDocumentTextData.parser()); + } + if (documentTextData == null && settings.isProtobufJsonFallback()) { + documentTextData = documentDataFallbackService.readOldDocumentTextDataAndConvert(dossierId, fileId); + } + return documentTextData; + }; + return CompletableFuture.supplyAsync(documentTextDataSupplier, taskExecutor); + } + + + private CompletableFuture fetchDocumentPositionData(String dossierId, String fileId) { + + Supplier documentPositionDataSupplier = () -> { + DocumentPositionDataProto.AllDocumentPositionData documentPositionData = null; + String storageId = StorageIdUtils.getStorageId(dossierId, fileId, FileType.DOCUMENT_POSITION); + if (storageService.objectExists(TenantContext.getTenantId(), storageId)) { + documentPositionData = storageService.readProtoObject(TenantContext.getTenantId(), storageId, DocumentPositionDataProto.AllDocumentPositionData.parser()); + } + if (documentPositionData == null && settings.isProtobufJsonFallback()) { + documentPositionData = documentDataFallbackService.readOldDocumentPositionDataAndConvert(dossierId, fileId); + } + return documentPositionData; + }; + return CompletableFuture.supplyAsync(documentPositionDataSupplier, taskExecutor); + } + + + private CompletableFuture fetchDocumentPages(String dossierId, String fileId) { + + Supplier documentPagesSupplier = () -> { + DocumentPageProto.AllDocumentPages documentPages = null; + String storageId = StorageIdUtils.getStorageId(dossierId, fileId, FileType.DOCUMENT_PAGES); + if (storageService.objectExists(TenantContext.getTenantId(), storageId)) { + documentPages = storageService.readProtoObject(TenantContext.getTenantId(), storageId, AllDocumentPages.parser()); + } + if (documentPages == null && settings.isProtobufJsonFallback()) { + documentPages = documentDataFallbackService.readOldDocumentPagesAndConvert(dossierId, fileId); + } + return documentPages; + }; + return CompletableFuture.supplyAsync(documentPagesSupplier, taskExecutor); + } + + @Timed("redactmanager_getNerEntities") public NerEntitiesModel getNerEntities(String dossierId, String fileId) { @@ -347,6 +410,12 @@ public class RedactionStorageService { return dossierId + "/" + fileId + "." + fileType.name() + fileType.getExtension(); } + + public static String getStorageId(String dossierId, String fileId, String fileName, String fileExtension) { + + return dossierId + "/" + fileId + "." + fileName + fileExtension; + } + } } diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/resources/drools/all_rules_documine.drl b/redaction-service-v1/redaction-service-server-v1/src/main/resources/drools/all_rules_documine.drl index 0498e7b5..871c748a 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/resources/drools/all_rules_documine.drl +++ b/redaction-service-v1/redaction-service-server-v1/src/main/resources/drools/all_rules_documine.drl @@ -47,7 +47,7 @@ import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.entitymapped.ManualRecategorization; import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.entitymapped.ManualLegalBasisChange; -import com.knecon.fforesight.service.layoutparser.internal.api.data.redaction.LayoutEngine; +import com.knecon.fforesight.service.layoutparser.internal.api.data.redaction.LayoutEngineProto.LayoutEngine; global Document document global EntityCreationService entityCreationService diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/AnalysisEnd2EndTest.java b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/AnalysisEnd2EndTest.java index 526ac8d1..f4a3e36b 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/AnalysisEnd2EndTest.java +++ b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/AnalysisEnd2EndTest.java @@ -9,10 +9,14 @@ import static org.mockito.Mockito.when; import java.io.File; import java.io.FileInputStream; +import java.io.FileOutputStream; import java.io.IOException; +import java.io.ObjectInputStream; +import java.io.ObjectOutputStream; import java.nio.file.FileVisitOption; import java.nio.file.Files; import java.nio.file.Path; +import java.time.OffsetDateTime; import java.util.Arrays; import java.util.Collections; import java.util.HashMap; @@ -41,13 +45,17 @@ import org.springframework.core.io.ClassPathResource; import org.springframework.data.redis.listener.RedisMessageListenerContainer; import org.springframework.test.context.junit.jupiter.SpringExtension; +import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import com.google.common.collect.Sets; import com.iqser.red.commons.jackson.ObjectMapperFactory; import com.iqser.red.service.dictionarymerge.commons.DictionaryEntryModel; import com.iqser.red.service.persistence.service.v1.api.shared.model.AnalyzeRequest; import com.iqser.red.service.persistence.service.v1.api.shared.model.RuleFileType; +import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.entitylog.EntityLog; import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.ManualRedactions; +import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.Rectangle; +import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.entitymapped.ManualRedactionEntry; import com.iqser.red.service.persistence.service.v1.api.shared.model.common.JSONPrimitive; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.file.FileType; import com.iqser.red.service.redaction.v1.server.client.DictionaryClient; @@ -105,7 +113,6 @@ import lombok.extern.slf4j.Slf4j; FileType.DOCUMENT_POSITION, FileType.DOCUMENT_STRUCTURE, FileType.DOCUMENT_TEXT); - Path dossierTemplateToUse = Path.of("/home/kschuettler/Downloads/New Folder/DOSSIER_TEMPLATE"); // Add your dossier-template here ObjectMapper mapper = ObjectMapperFactory.create(); final String TENANT_ID = "tenant"; @@ -114,6 +121,8 @@ import lombok.extern.slf4j.Slf4j; @Autowired StorageService storageService; @Autowired + RedactionStorageService redactionStorageService; + @Autowired protected AnalyzeService analyzeService; @Autowired protected MongoTestConfig mongoTestConfig; @@ -171,6 +180,52 @@ import lombok.extern.slf4j.Slf4j; } + private static void addManualRedactionEntryToFile(AnalyzeRequest analyzeRequest) { + + ManualRedactionEntry manualRedactionEntry = new ManualRedactionEntry(); + manualRedactionEntry.setAnnotationId("yourAnnotationId"); + manualRedactionEntry.setFileId("fileId"); + manualRedactionEntry.setType("CBI_author"); + manualRedactionEntry.setValue("7232"); + manualRedactionEntry.setReason( + "(Regulations (EU) 2016/679 and (EU) 2018/1725 shall apply to the processing of personal data carried out pursuant to this Regulation. Any personal data made public pursuant to Article 38 of this Regulation and this Article shall only be used to ensure the transparency of the risk assessment under this Regulation and shall not be further processed in a manner that is incompatible with these purposes, in accordance with point (b) of Article 5(1) of Regulation (EU) 2016/679 and point (b) of Article 4(1) of Regulation (EU) 2018/1725, as the case may be)"); + manualRedactionEntry.setLegalBasis("Article 39(e)(3) of Regulation (EC) No 178/2002"); + manualRedactionEntry.setProcessedDate(OffsetDateTime.now()); + manualRedactionEntry.setRequestDate(OffsetDateTime.now()); + manualRedactionEntry.setPositions(List.of(Rectangle.builder().topLeftX(332.134f).topLeftY(689.72f).width(26.688f).height(13.872f).page(1).build())); + + analyzeRequest.setManualRedactions(ManualRedactions.builder().entriesToAdd(Set.of(manualRedactionEntry)).build()); + } + + + private void restoreEntityLogFromTempFile(ObjectMapper objectMapper, AnalyzeRequest analyzeRequest) throws JsonProcessingException { + //Deserialize entityLog from a file + String entityLogString = null; + try (FileInputStream fileIn = new FileInputStream("/tmp/entityLog.ser"); ObjectInputStream in = new ObjectInputStream(fileIn)) { + entityLogString = (String) in.readObject(); + } catch (IOException | ClassNotFoundException e) { + e.printStackTrace(); + } + var entityLog = objectMapper.readValue(entityLogString, EntityLog.class); + redactionStorageService.saveEntityLog(analyzeRequest.getDossierId(), analyzeRequest.getFileId(), entityLog); + } + + + private void storeEntityLogAsTempFile(AnalyzeRequest analyzeRequest, ObjectMapper objectMapper) throws JsonProcessingException { + + EntityLog entityLog = redactionStorageService.getEntityLog(analyzeRequest.getDossierId(), analyzeRequest.getFileId()); + + // Serialize + String jsonString = objectMapper.writeValueAsString(entityLog); + // Serialize entityLog to a file + try (FileOutputStream fileOut = new FileOutputStream("/tmp/entityLog.ser"); ObjectOutputStream out = new ObjectOutputStream(fileOut)) { + out.writeObject(jsonString); + } catch (IOException e) { + e.printStackTrace(); + } + } + + @BeforeEach public void setup() { diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/MapEntityLogToDocumentDataTest.java b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/MapEntityLogToDocumentDataTest.java index 25129e83..5e8cbd26 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/MapEntityLogToDocumentDataTest.java +++ b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/MapEntityLogToDocumentDataTest.java @@ -56,10 +56,11 @@ import com.iqser.red.service.redaction.v1.server.service.document.EntityFindingU import com.iqser.red.storage.commons.StorageAutoConfiguration; import com.iqser.red.storage.commons.service.StorageService; import com.iqser.red.storage.commons.utils.FileSystemBackedStorageService; -import com.knecon.fforesight.service.layoutparser.internal.api.data.redaction.DocumentPage; -import com.knecon.fforesight.service.layoutparser.internal.api.data.redaction.DocumentPositionData; -import com.knecon.fforesight.service.layoutparser.internal.api.data.redaction.DocumentStructure; -import com.knecon.fforesight.service.layoutparser.internal.api.data.redaction.DocumentTextData; +import com.knecon.fforesight.service.layoutparser.internal.api.data.redaction.DocumentPageProto; +import com.knecon.fforesight.service.layoutparser.internal.api.data.redaction.DocumentPositionDataProto; +import com.knecon.fforesight.service.layoutparser.internal.api.data.redaction.DocumentStructureProto; +import com.knecon.fforesight.service.layoutparser.internal.api.data.redaction.DocumentStructureWrapper; +import com.knecon.fforesight.service.layoutparser.internal.api.data.redaction.DocumentTextDataProto; import com.knecon.fforesight.service.layoutparser.processor.LayoutParsingServiceProcessorConfiguration; import com.knecon.fforesight.tenantcommons.TenantContext; @@ -368,16 +369,16 @@ public class MapEntityLogToDocumentDataTest extends AbstractRedactionIntegration var documentDataBuilder = DocumentData.builder(); try (var in = new FileInputStream(documentStructurePath.toFile())) { - documentDataBuilder.documentStructure(mapper.readValue(in, DocumentStructure.class)); + documentDataBuilder.documentStructureWrapper(new DocumentStructureWrapper(mapper.readValue(in, DocumentStructureProto.DocumentStructure.class))); } try (var in = new FileInputStream(documentTextPath.toFile())) { - documentDataBuilder.documentTextData(mapper.readValue(in, DocumentTextData[].class)); + documentDataBuilder.documentTextData(mapper.readValue(in, DocumentTextDataProto.AllDocumentTextData.class)); } try (var in = new FileInputStream(documentPositionsPath.toFile())) { - documentDataBuilder.documentPositionData(mapper.readValue(in, DocumentPositionData[].class)); + documentDataBuilder.documentPositionData(mapper.readValue(in, DocumentPositionDataProto.AllDocumentPositionData.class)); } try (var in = new FileInputStream(documentPagesPath.toFile())) { - documentDataBuilder.documentPages(mapper.readValue(in, DocumentPage[].class)); + documentDataBuilder.documentPages(mapper.readValue(in, DocumentPageProto.AllDocumentPages.class)); } return DocumentGraphMapper.toDocumentGraph(documentDataBuilder.build()); diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/RedactionIntegrationTest.java b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/RedactionIntegrationTest.java index 87c5f4fa..cde44f7a 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/RedactionIntegrationTest.java +++ b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/RedactionIntegrationTest.java @@ -1,13 +1,18 @@ package com.iqser.red.service.redaction.v1.server; +import static com.iqser.red.service.redaction.v1.server.storage.RedactionStorageService.StorageIdUtils; import static org.assertj.core.api.Assertions.assertThat; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertTrue; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyString; +import static org.mockito.Mockito.times; +import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; +import java.io.BufferedWriter; import java.io.FileOutputStream; +import java.io.FileWriter; import java.io.IOException; import java.net.URI; import java.net.URL; @@ -32,6 +37,7 @@ import org.junit.jupiter.api.Order; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.TestMethodOrder; import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.Mock; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.autoconfigure.amqp.RabbitAutoConfiguration; import org.springframework.boot.test.context.SpringBootTest; @@ -71,17 +77,19 @@ import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemp import com.iqser.red.service.persistence.service.v1.api.shared.model.redactionlog.Point; import com.iqser.red.service.redaction.v1.server.annotate.AnnotateRequest; import com.iqser.red.service.redaction.v1.server.annotate.AnnotateResponse; +import com.iqser.red.service.redaction.v1.server.model.document.DocumentData; import com.iqser.red.service.redaction.v1.server.model.document.TextRange; import com.iqser.red.service.redaction.v1.server.model.document.nodes.Section; import com.iqser.red.service.redaction.v1.server.redaction.utils.OsUtils; import com.iqser.red.service.redaction.v1.server.rules.RulesIntegrationTest; import com.iqser.red.service.redaction.v1.server.service.document.DocumentGraphMapper; -import com.iqser.red.service.redaction.v1.server.storage.RedactionStorageService; +import com.iqser.red.service.redaction.v1.server.storage.DocumentDataFallbackService; import com.iqser.red.storage.commons.StorageAutoConfiguration; import com.iqser.red.storage.commons.service.StorageService; import com.iqser.red.storage.commons.utils.FileSystemBackedStorageService; import com.knecon.fforesight.service.layoutparser.internal.api.queue.LayoutParsingType; import com.knecon.fforesight.service.layoutparser.processor.LayoutParsingServiceProcessorConfiguration; +import com.knecon.fforesight.service.layoutparser.processor.utils.ProtobufUtil; import com.knecon.fforesight.tenantcommons.TenantContext; import lombok.SneakyThrows; @@ -94,6 +102,7 @@ public class RedactionIntegrationTest extends RulesIntegrationTest { private static final String RULES = loadFromClassPath("drools/rules.drl"); + @Configuration @EnableAutoConfiguration(exclude = {RabbitAutoConfiguration.class}) @Import({LayoutParsingServiceProcessorConfiguration.class}) @@ -287,7 +296,7 @@ public class RedactionIntegrationTest extends RulesIntegrationTest { ClassPathResource importedRedactionClasspathResource = new ClassPathResource( "files/ImportedRedactions/18 Chlorothalonil RAR 08 Volume 3CA B 6a Oct 2017.IMPORTED_REDACTIONS.json"); storageService.storeObject(TenantContext.getTenantId(), - RedactionStorageService.StorageIdUtils.getStorageId(TEST_DOSSIER_ID, TEST_FILE_ID, FileType.IMPORTED_REDACTIONS), + StorageIdUtils.getStorageId(TEST_DOSSIER_ID, TEST_FILE_ID, FileType.IMPORTED_REDACTIONS), importedRedactionClasspathResource.getInputStream()); AnalyzeRequest request = uploadFileToStorage("files/syngenta/CustomerFiles/18 Chlorothalonil RAR 08 Volume 3CA B 6a Oct 2017.pdf"); @@ -605,9 +614,7 @@ public class RedactionIntegrationTest extends RulesIntegrationTest { String outputFileName = OsUtils.getTemporaryDirectory() + "/Annotated.pdf"; ClassPathResource responseJson = new ClassPathResource("files/crafted_document.NER_ENTITIES.json"); - storageService.storeObject(TenantContext.getTenantId(), - RedactionStorageService.StorageIdUtils.getStorageId(TEST_DOSSIER_ID, TEST_FILE_ID, FileType.NER_ENTITIES), - responseJson.getInputStream()); + storageService.storeObject(TenantContext.getTenantId(), StorageIdUtils.getStorageId(TEST_DOSSIER_ID, TEST_FILE_ID, FileType.NER_ENTITIES), responseJson.getInputStream()); long start = System.currentTimeMillis(); AnalyzeRequest request = uploadFileToStorage(fileName); @@ -630,8 +637,8 @@ public class RedactionIntegrationTest extends RulesIntegrationTest { System.out.println("first analysis duration: " + (end - start)); - try (FileOutputStream fileOutputStream = new FileOutputStream(OsUtils.getTemporaryDirectory() + "/Test.json")) { - fileOutputStream.write(objectMapper.writeValueAsBytes(redactionStorageService.getDocumentData(TEST_DOSSIER_ID, TEST_FILE_ID))); + try (BufferedWriter writer = new BufferedWriter(new FileWriter(OsUtils.getTemporaryDirectory() + "/Test.json"))) { + writer.write(getDocumentDataString(redactionStorageService.getDocumentData(TEST_DOSSIER_ID, TEST_FILE_ID))); } List valuesInDocument = entityLog.getEntityLogEntry() @@ -710,6 +717,17 @@ public class RedactionIntegrationTest extends RulesIntegrationTest { } + @SneakyThrows + private String getDocumentDataString(DocumentData documentData) { + + String result = ProtobufUtil.toJson(documentData.getDocumentPages()); + result += ",\n" + ProtobufUtil.toJson(documentData.getDocumentTextData()); + result += ",\n" + ProtobufUtil.toJson(documentData.getDocumentPositionData()); + result += ",\n" + ProtobufUtil.toJson(documentData.getDocumentStructure()); + return result; + } + + @Test public void testRemovePublishedInformations() throws IOException { @@ -1186,7 +1204,7 @@ public class RedactionIntegrationTest extends RulesIntegrationTest { AnalyzeRequest request = uploadFileToStorage("files/ImportedRedactions/RotateTestFile_without_highlights.pdf"); storageService.storeObject(TenantContext.getTenantId(), - RedactionStorageService.StorageIdUtils.getStorageId(TEST_DOSSIER_ID, TEST_FILE_ID, FileType.IMPORTED_REDACTIONS), + StorageIdUtils.getStorageId(TEST_DOSSIER_ID, TEST_FILE_ID, FileType.IMPORTED_REDACTIONS), importedRedactions.getInputStream()); analyzeDocumentStructure(LayoutParsingType.REDACT_MANAGER, request); @@ -1258,7 +1276,7 @@ public class RedactionIntegrationTest extends RulesIntegrationTest { ClassPathResource imageServiceResponseFileResource = new ClassPathResource("files/new/SYNGENTA_EFSA_sanitisation_GFL_v1 (1).IMAGE_INFO.json"); storageService.storeObject(TenantContext.getTenantId(), - RedactionStorageService.StorageIdUtils.getStorageId(TEST_DOSSIER_ID, TEST_FILE_ID, FileType.IMAGE_INFO), + StorageIdUtils.getStorageId(TEST_DOSSIER_ID, TEST_FILE_ID, FileType.IMAGE_INFO), imageServiceResponseFileResource.getInputStream()); System.out.println("Start Full integration test"); @@ -1299,7 +1317,7 @@ public class RedactionIntegrationTest extends RulesIntegrationTest { ClassPathResource imageServiceResponseFileResource = new ClassPathResource("files/new/SYNGENTA_EFSA_sanitisation_GFL_v1 (1).IMAGE_INFO.json"); storageService.storeObject(TenantContext.getTenantId(), - RedactionStorageService.StorageIdUtils.getStorageId(TEST_DOSSIER_ID, TEST_FILE_ID, FileType.IMAGE_INFO), + StorageIdUtils.getStorageId(TEST_DOSSIER_ID, TEST_FILE_ID, FileType.IMAGE_INFO), imageServiceResponseFileResource.getInputStream()); System.out.println("Start Full integration test"); @@ -1738,9 +1756,7 @@ public class RedactionIntegrationTest extends RulesIntegrationTest { String fileName = "files/new/crafted document.pdf"; ClassPathResource responseJson = new ClassPathResource("files/crafted_document.NER_ENTITIES.json"); - storageService.storeObject(TenantContext.getTenantId(), - RedactionStorageService.StorageIdUtils.getStorageId(TEST_DOSSIER_ID, TEST_FILE_ID, FileType.NER_ENTITIES), - responseJson.getInputStream()); + storageService.storeObject(TenantContext.getTenantId(), StorageIdUtils.getStorageId(TEST_DOSSIER_ID, TEST_FILE_ID, FileType.NER_ENTITIES), responseJson.getInputStream()); long start = System.currentTimeMillis(); AnalyzeRequest request = uploadFileToStorage(fileName); @@ -2198,6 +2214,41 @@ public class RedactionIntegrationTest extends RulesIntegrationTest { } + @Test + @SneakyThrows + public void testDocumentDataFallback() { + + AnalyzeRequest request = uploadFileToStorage("files/new/crafted document.pdf"); + analyzeDocumentStructure(LayoutParsingType.REDACT_MANAGER, request); + + String oldDocumentStructureStorageId = StorageIdUtils.getStorageId(request.getDossierId(), request.getFileId(), FileType.DOCUMENT_STRUCTURE.name(), ".json"); + String newDocumentStructureStorageId = StorageIdUtils.getStorageId(request.getDossierId(), request.getFileId(), FileType.DOCUMENT_STRUCTURE); + String oldDocumentPagesStorageId = StorageIdUtils.getStorageId(request.getDossierId(), request.getFileId(), FileType.DOCUMENT_PAGES.name(), ".json"); + String newDocumentPagesStorageId = StorageIdUtils.getStorageId(request.getDossierId(), request.getFileId(), FileType.DOCUMENT_PAGES); + String oldDocumentPositionDataStorageId = StorageIdUtils.getStorageId(request.getDossierId(), request.getFileId(), FileType.DOCUMENT_POSITION.name(), ".json"); + String newDocumentPositionDataStorageId = StorageIdUtils.getStorageId(request.getDossierId(), request.getFileId(), FileType.DOCUMENT_POSITION); + String oldDocumentTextDataStorageId = StorageIdUtils.getStorageId(request.getDossierId(), request.getFileId(), FileType.DOCUMENT_TEXT.name(), ".json"); + String newDocumentTextDataStorageId = StorageIdUtils.getStorageId(request.getDossierId(), request.getFileId(), FileType.DOCUMENT_TEXT); + + storageService.deleteObject(TenantContext.getTenantId(), newDocumentStructureStorageId); + storageService.deleteObject(TenantContext.getTenantId(), newDocumentPagesStorageId); + storageService.deleteObject(TenantContext.getTenantId(), newDocumentPositionDataStorageId); + storageService.deleteObject(TenantContext.getTenantId(), newDocumentTextDataStorageId); + + ClassPathResource oldDocumentStructureClassPath = new ClassPathResource("files/oldDocumentData/old.DOCUMENT_STRUCTURE.json"); + storageService.storeObject(TenantContext.getTenantId(), oldDocumentStructureStorageId, oldDocumentStructureClassPath.getInputStream()); + ClassPathResource oldDocumentPagesClassPath = new ClassPathResource("files/oldDocumentData/old.DOCUMENT_PAGES.json"); + storageService.storeObject(TenantContext.getTenantId(), oldDocumentPagesStorageId, oldDocumentPagesClassPath.getInputStream()); + ClassPathResource oldDocumentPositionDataClassPath = new ClassPathResource("files/oldDocumentData/old.DOCUMENT_POSITION.json"); + storageService.storeObject(TenantContext.getTenantId(), oldDocumentPositionDataStorageId, oldDocumentPositionDataClassPath.getInputStream()); + ClassPathResource oldDocumentTextDataClassPath = new ClassPathResource("files/oldDocumentData/old.DOCUMENT_TEXT.json"); + storageService.storeObject(TenantContext.getTenantId(), oldDocumentTextDataStorageId, oldDocumentTextDataClassPath.getInputStream()); + + analyzeService.analyze(request); + + } + + @Test public void testFileWithImagesAndNoText() { diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/document/graph/DocumentIEntityInsertionIntegrationTest.java b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/document/graph/DocumentIEntityInsertionIntegrationTest.java index 8bbb7845..2fcce7ce 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/document/graph/DocumentIEntityInsertionIntegrationTest.java +++ b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/document/graph/DocumentIEntityInsertionIntegrationTest.java @@ -287,7 +287,7 @@ public class DocumentIEntityInsertionIntegrationTest extends BuildDocumentIntegr assertEquals("1 Statement of subject matter and purpose for which this report has been prepared and background information on the application ", textEntity.getDeepestFullyContainingNode().getHeadline().getTextBlock().getSearchText()); assertEquals(searchTerm, textEntity.getValue()); - assertEquals(4, textEntity.getIntersectingNodes().size()); + assertEquals(3, textEntity.getIntersectingNodes().size()); assertEquals(1, textEntity.getDeepestFullyContainingNode().getNumberOnPage()); assertTrue(textEntity.getPages() .stream() @@ -308,7 +308,7 @@ public class DocumentIEntityInsertionIntegrationTest extends BuildDocumentIntegr assertEquals("2-[(2-(1-hydroxy-ethyl)-6methyl-phenyl-amino]propan-1-ol (", textEntity.getTextBefore()); assertEquals(" of metabolite of", textEntity.getTextAfter()); assertEquals(searchTerm, textEntity.getValue()); - assertEquals(8, textEntity.getIntersectingNodes().size()); + assertEquals(7, textEntity.getIntersectingNodes().size()); assertEquals("Table 2.7-1: List of substances and metabolites and related structural formula ", textEntity.getDeepestFullyContainingNode().getHeadline().getTextBlock().getSearchText()); assertTrue(textEntity.getPages() diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/document/graph/DocumentPerformanceIntegrationTest.java b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/document/graph/DocumentPerformanceIntegrationTest.java index de8d388f..bd5a866d 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/document/graph/DocumentPerformanceIntegrationTest.java +++ b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/document/graph/DocumentPerformanceIntegrationTest.java @@ -184,7 +184,7 @@ public class DocumentPerformanceIntegrationTest extends BuildDocumentIntegration durationMillis = ((float) (System.currentTimeMillis() - start)); System.out.printf("%d calls of buildTextBlock() on section took %f s, average is %f ms\n", n, durationMillis / 1000, durationMillis / n); - SemanticNode paragraph = document.getDocumentTree().getEntryById(List.of(3, 2, 4)).getNode(); + SemanticNode paragraph = document.getDocumentTree().getEntryById(List.of(8, 1)).getNode(); start = System.currentTimeMillis(); for (int i = 0; i < n; i++) { paragraph.getTextBlock(); diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/service/document/UnprocessedChangesServiceTest.java b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/service/document/UnprocessedChangesServiceTest.java index 84ffd1f0..35ca1e9a 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/service/document/UnprocessedChangesServiceTest.java +++ b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/service/document/UnprocessedChangesServiceTest.java @@ -158,7 +158,7 @@ public class UnprocessedChangesServiceTest extends AbstractRedactionIntegrationT UnprocessedManualEntity unprocessedManualEntity = optionalUnprocessedManualEntity.get(); assertEquals(unprocessedManualEntity.getTextBefore(), "was above the "); assertEquals(unprocessedManualEntity.getTextAfter(), " without PPE (34%"); - assertEquals(unprocessedManualEntity.getSection(), "[1, 1]: Paragraph: A9396G containing 960 g/L"); + assertEquals(unprocessedManualEntity.getSection(), "[1, 1, 0]: Paragraph: A9396G containing 960 g/L"); assertEquals(unprocessedManualEntity.getPositions() .get(0).x(), 355.53775f); assertEquals(unprocessedManualEntity.getPositions() @@ -205,7 +205,7 @@ public class UnprocessedChangesServiceTest extends AbstractRedactionIntegrationT assertEquals(unprocessedManualEntities.get(0).getAnnotationId(), aoelId); assertEquals(unprocessedManualEntities.get(0).getTextAfter(), " without PPE (34%"); assertEquals(unprocessedManualEntities.get(0).getTextBefore(), "to EFSA guidance "); - assertEquals(unprocessedManualEntities.get(0).getSection(), "[1, 1]: Paragraph: A9396G containing 960 g/L"); + assertEquals(unprocessedManualEntities.get(0).getSection(), "[1, 1, 0]: Paragraph: A9396G containing 960 g/L"); assertEquals(unprocessedManualEntities.get(0).getPositions() .get(0).x(), positions.get(0).getTopLeftX()); assertEquals(unprocessedManualEntities.get(0).getPositions() @@ -288,7 +288,7 @@ public class UnprocessedChangesServiceTest extends AbstractRedactionIntegrationT assertTrue(resizedAoel.isPresent()); assertEquals(resizedAoel.get().getTextAfter(), " (max. 43% of"); assertEquals(resizedAoel.get().getTextBefore(), "is below the "); - assertEquals(resizedAoel.get().getSection(), "[1, 1]: Paragraph: A9396G containing 960 g/L"); + assertEquals(resizedAoel.get().getSection(), "[1, 1, 0]: Paragraph: A9396G containing 960 g/L"); assertEquals(resizedAoel.get().getPositions() .get(0).x(), positions.get(0).getTopLeftX()); assertEquals(resizedAoel.get().getPositions() @@ -320,7 +320,7 @@ public class UnprocessedChangesServiceTest extends AbstractRedactionIntegrationT assertTrue(a9Resized.isPresent()); assertEquals(a9Resized.get().getTextAfter(), " were obtained from"); assertEquals(a9Resized.get().getTextBefore(), "data for S"); - assertEquals(a9Resized.get().getSection(), "[1, 1]: Paragraph: A9396G containing 960 g/L"); + assertEquals(a9Resized.get().getSection(), "[1, 1, 0]: Paragraph: A9396G containing 960 g/L"); assertEquals(a9Resized.get().getPositions() .get(0).x(), positions3.get(0).getTopLeftX()); assertEquals(a9Resized.get().getPositions() @@ -370,7 +370,7 @@ public class UnprocessedChangesServiceTest extends AbstractRedactionIntegrationT assertEquals(unprocessedManualEntities.get(0).getAnnotationId(), aoelId); assertEquals(unprocessedManualEntities.get(0).getTextAfter(), " (max. 43% of"); assertEquals(unprocessedManualEntities.get(0).getTextBefore(), "is below the "); - assertEquals(unprocessedManualEntities.get(0).getSection(), "[1, 1]: Paragraph: A9396G containing 960 g/L"); + assertEquals(unprocessedManualEntities.get(0).getSection(), "[1, 1, 0]: Paragraph: A9396G containing 960 g/L"); assertEquals(unprocessedManualEntities.get(0).getPositions() .get(0).x(), positions.get(0).getTopLeftX()); assertEquals(unprocessedManualEntities.get(0).getPositions() diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/resources/drools/acceptance_rules.drl b/redaction-service-v1/redaction-service-server-v1/src/test/resources/drools/acceptance_rules.drl index 051948f9..a909ab29 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/test/resources/drools/acceptance_rules.drl +++ b/redaction-service-v1/redaction-service-server-v1/src/test/resources/drools/acceptance_rules.drl @@ -55,7 +55,7 @@ import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.entitymapped.ManualRecategorization; import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.entitymapped.ManualLegalBasisChange; -import com.knecon.fforesight.service.layoutparser.internal.api.data.redaction.LayoutEngine; +import com.knecon.fforesight.service.layoutparser.internal.api.data.redaction.LayoutEngineProto.LayoutEngine; global Document document global EntityCreationService entityCreationService diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/resources/drools/all_redact_manager_rules.drl b/redaction-service-v1/redaction-service-server-v1/src/test/resources/drools/all_redact_manager_rules.drl index d97cd465..72f8ecdb 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/test/resources/drools/all_redact_manager_rules.drl +++ b/redaction-service-v1/redaction-service-server-v1/src/test/resources/drools/all_redact_manager_rules.drl @@ -55,7 +55,7 @@ import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.entitymapped.ManualRecategorization; import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.entitymapped.ManualLegalBasisChange; -import com.knecon.fforesight.service.layoutparser.internal.api.data.redaction.LayoutEngine; +import com.knecon.fforesight.service.layoutparser.internal.api.data.redaction.LayoutEngineProto.LayoutEngine; global Document document global EntityCreationService entityCreationService diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/resources/drools/documine_flora.drl b/redaction-service-v1/redaction-service-server-v1/src/test/resources/drools/documine_flora.drl index 72276637..335e791b 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/test/resources/drools/documine_flora.drl +++ b/redaction-service-v1/redaction-service-server-v1/src/test/resources/drools/documine_flora.drl @@ -47,7 +47,7 @@ import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.entitymapped.ManualRecategorization; import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.entitymapped.ManualLegalBasisChange; -import com.knecon.fforesight.service.layoutparser.internal.api.data.redaction.LayoutEngine; +import com.knecon.fforesight.service.layoutparser.internal.api.data.redaction.LayoutEngineProto.LayoutEngine; global Document document global EntityCreationService entityCreationService diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/resources/drools/efsa_sanitisation.drl b/redaction-service-v1/redaction-service-server-v1/src/test/resources/drools/efsa_sanitisation.drl index cb5bb451..1dfcc9c0 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/test/resources/drools/efsa_sanitisation.drl +++ b/redaction-service-v1/redaction-service-server-v1/src/test/resources/drools/efsa_sanitisation.drl @@ -55,7 +55,7 @@ import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.entitymapped.ManualRecategorization; import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.entitymapped.ManualLegalBasisChange; -import com.knecon.fforesight.service.layoutparser.internal.api.data.redaction.LayoutEngine; +import com.knecon.fforesight.service.layoutparser.internal.api.data.redaction.LayoutEngineProto.LayoutEngine; global Document document global EntityCreationService entityCreationService diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/resources/drools/manual_redaction_rules.drl b/redaction-service-v1/redaction-service-server-v1/src/test/resources/drools/manual_redaction_rules.drl index 02166d95..5d626852 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/test/resources/drools/manual_redaction_rules.drl +++ b/redaction-service-v1/redaction-service-server-v1/src/test/resources/drools/manual_redaction_rules.drl @@ -55,7 +55,7 @@ import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.entitymapped.ManualRecategorization; import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.entitymapped.ManualLegalBasisChange; -import com.knecon.fforesight.service.layoutparser.internal.api.data.redaction.LayoutEngine; +import com.knecon.fforesight.service.layoutparser.internal.api.data.redaction.LayoutEngineProto.LayoutEngine; global Document document global EntityCreationService entityCreationService diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/resources/drools/rules.drl b/redaction-service-v1/redaction-service-server-v1/src/test/resources/drools/rules.drl index 0942d7a3..fb754b3c 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/test/resources/drools/rules.drl +++ b/redaction-service-v1/redaction-service-server-v1/src/test/resources/drools/rules.drl @@ -55,7 +55,7 @@ import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.entitymapped.ManualRecategorization; import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.entitymapped.ManualLegalBasisChange; -import com.knecon.fforesight.service.layoutparser.internal.api.data.redaction.LayoutEngine; +import com.knecon.fforesight.service.layoutparser.internal.api.data.redaction.LayoutEngineProto.LayoutEngine; global Document document global EntityCreationService entityCreationService diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/resources/drools/rules_v2.drl b/redaction-service-v1/redaction-service-server-v1/src/test/resources/drools/rules_v2.drl index 663b9b6d..d9bf6a88 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/test/resources/drools/rules_v2.drl +++ b/redaction-service-v1/redaction-service-server-v1/src/test/resources/drools/rules_v2.drl @@ -55,7 +55,7 @@ import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.entitymapped.ManualRecategorization; import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.entitymapped.ManualLegalBasisChange; -import com.knecon.fforesight.service.layoutparser.internal.api.data.redaction.LayoutEngine; +import com.knecon.fforesight.service.layoutparser.internal.api.data.redaction.LayoutEngineProto.LayoutEngine; global Document document global EntityCreationService entityCreationService diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/resources/drools/table_demo.drl b/redaction-service-v1/redaction-service-server-v1/src/test/resources/drools/table_demo.drl index 0f75054e..a0ca7b1f 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/test/resources/drools/table_demo.drl +++ b/redaction-service-v1/redaction-service-server-v1/src/test/resources/drools/table_demo.drl @@ -55,7 +55,7 @@ import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.entitymapped.ManualRecategorization; import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.entitymapped.ManualLegalBasisChange; -import com.knecon.fforesight.service.layoutparser.internal.api.data.redaction.LayoutEngine; +import com.knecon.fforesight.service.layoutparser.internal.api.data.redaction.LayoutEngineProto.LayoutEngine; global Document document global EntityCreationService entityCreationService diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/resources/drools/test_rules.drl b/redaction-service-v1/redaction-service-server-v1/src/test/resources/drools/test_rules.drl index d00f0fdc..7b125c31 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/test/resources/drools/test_rules.drl +++ b/redaction-service-v1/redaction-service-server-v1/src/test/resources/drools/test_rules.drl @@ -55,7 +55,7 @@ import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.entitymapped.ManualRecategorization; import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.entitymapped.ManualLegalBasisChange; -import com.knecon.fforesight.service.layoutparser.internal.api.data.redaction.LayoutEngine; +import com.knecon.fforesight.service.layoutparser.internal.api.data.redaction.LayoutEngineProto.LayoutEngine; global Document document global EntityCreationService entityCreationService diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/resources/files/oldDocumentData/old.DOCUMENT_PAGES.json b/redaction-service-v1/redaction-service-server-v1/src/test/resources/files/oldDocumentData/old.DOCUMENT_PAGES.json new file mode 100644 index 00000000..4d7ef9a5 --- /dev/null +++ b/redaction-service-v1/redaction-service-server-v1/src/test/resources/files/oldDocumentData/old.DOCUMENT_PAGES.json @@ -0,0 +1,56 @@ +[ + { + "number": 1, + "height": 792, + "width": 612, + "rotation": 0 + }, + { + "number": 2, + "height": 792, + "width": 612, + "rotation": 0 + }, + { + "number": 3, + "height": 792, + "width": 612, + "rotation": 0 + }, + { + "number": 4, + "height": 792, + "width": 612, + "rotation": 0 + }, + { + "number": 5, + "height": 792, + "width": 612, + "rotation": 0 + }, + { + "number": 6, + "height": 792, + "width": 612, + "rotation": 0 + }, + { + "number": 7, + "height": 792, + "width": 612, + "rotation": 0 + }, + { + "number": 8, + "height": 792, + "width": 612, + "rotation": 0 + }, + { + "number": 9, + "height": 792, + "width": 612, + "rotation": 0 + } +] \ No newline at end of file diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/resources/files/oldDocumentData/old.DOCUMENT_POSITION.json b/redaction-service-v1/redaction-service-server-v1/src/test/resources/files/oldDocumentData/old.DOCUMENT_POSITION.json new file mode 100644 index 00000000..4a2e0329 --- /dev/null +++ b/redaction-service-v1/redaction-service-server-v1/src/test/resources/files/oldDocumentData/old.DOCUMENT_POSITION.json @@ -0,0 +1 @@ +[{"id":0,"stringIdxToPositionIdx":[0,1,2,3,4,4,5,6,6,7,8,9,10,11,12,12,13,14,15,15,16,17,18,19,20,21,22,22,23,24,25,26,26,27,28,29,30,31,32,33,34,35,35,36,37,38,39,40,41,42,43],"positions":[[56.8,436.7,10.1802025,13.867801],[66.9802,436.7,8.600998,13.867801],[75.5812,436.7,3.9057007,13.867801],[79.4869,436.7,7.8395996,13.867801],[91.274506,436.7,7.8395996,13.867801],[99.07181,436.7,4.6952972,13.867801],[107.672806,436.7,9.390602,13.867801],[117.06341,436.7,7.8395996,13.867801],[124.86071,436.7,8.601006,13.867801],[133.54631,436.7,7.8395996,13.867801],[141.34361,436.7,8.600998,13.867801],[149.94461,436.7,8.600998,13.867801],[162.5359,436.7,10.180206,13.867801],[172.63152,436.7,10.180206,13.867801],[182.81172,436.7,3.9057007,13.867801],[190.11552,436.7,10.180206,13.867801],[200.29573,436.7,8.600998,13.867801],[208.89673,436.7,4.6952972,13.867801],[213.59203,436.7,8.600998,13.867801],[222.19302,436.7,8.600998,13.867801],[230.79402,436.7,5.484894,13.867801],[236.27892,436.7,7.8395996,13.867801],[248.06651,436.7,10.955704,13.867801],[259.0504,436.7,3.9057007,13.867801],[262.95612,436.7,4.6953125,13.867801],[267.65143,436.7,8.601013,13.867801],[280.15814,436.7,4.6953125,13.867801],[284.85345,436.7,3.9057007,13.867801],[288.75916,436.7,5.484894,13.867801],[294.24405,436.7,7.8395996,13.867801],[302.04135,436.7,4.6953125,13.867801],[306.73666,436.7,8.601013,13.867801],[315.33768,436.7,7.8395996,13.867801],[323.21957,436.7,12.534912,13.867801],[335.7263,436.7,7.8395996,13.867801],[347.5139,436.7,3.9057007,13.867801],[351.4196,436.7,8.601013,13.867801],[360.0206,436.7,3.9057007,13.867801],[363.9263,436.7,4.6953125,13.867801],[368.6216,436.7,3.9057007,13.867801],[372.5273,436.7,7.8395996,13.867801],[380.4092,436.7,3.9057007,13.867801],[384.3149,436.7,7.8395996,13.867801]]},{"id":1,"stringIdxToPositionIdx":[0,1,2,2,3,4,5,6,7,8,9,10,11,11,12,13,13,14,15,16,17,17,18,19,19,20,21,22,23,24,25,26,27,28,29,29,30,31,32,33,34,35,36,37,37,38,39,40,40,41,42,43,43,44,45,45,46,47,48,49,50,51,52,53,54,55,55,56,57],"positions":[[56.8,416.5,6.672001,12.642],[62.5,416.5,3.0,12.642],[68.5,416.5,7.3199997,12.642],[75.796,416.5,5.316002,12.642],[81.1,416.5,4.6679993,12.642],[85.792,416.5,3.3239975,12.642],[89.091995,416.5,6.0,12.642],[95.091995,416.5,5.316002,12.642],[100.479996,416.5,9.3239975,12.642],[109.77999,416.5,5.316002,12.642],[115.08399,416.5,3.0,12.642],[121.08399,416.5,4.6679993,12.642],[125.77599,416.5,3.0000076,12.642],[131.776,416.5,8.664001,12.642],[140.464,416.5,6.0,12.642],[146.464,416.5,5.3159943,12.642],[151.768,416.5,3.0,12.642],[157.768,416.5,10.667999,12.642],[168.46,416.5,3.0,12.642],[174.46,416.5,10.667999,12.642],[185.056,416.5,6.0,12.642],[191.056,416.5,4.6679993,12.642],[195.748,416.5,3.3240051,12.642],[199.048,416.5,5.3159943,12.642],[204.352,416.5,3.9960022,12.642],[208.348,416.5,9.324005,12.642],[217.73201,416.5,5.3159943,12.642],[223.03601,416.5,6.0,12.642],[229.03601,416.5,6.0,12.642],[56.8,402.7,7.3200035,12.642],[64.096,402.7,5.316002,12.642],[69.4,402.7,4.6679993,12.642],[74.092,402.7,3.3239975,12.642],[77.392,402.7,6.0,12.642],[83.392,402.7,5.316002,12.642],[88.696,402.7,9.3239975,12.642],[98.079994,402.7,5.316002,12.642],[106.383995,402.7,10.667999,12.642],[117.076,402.7,3.0,12.642],[120.076,402.7,3.0,12.642],[126.076,402.7,8.663994,12.642],[134.76399,402.7,6.0,12.642],[140.76399,402.7,5.3159943,12.642],[149.068,402.7,4.6679993,12.642],[153.66399,402.7,3.0,12.642],[159.66399,402.7,10.667999,12.642],[170.35599,402.7,6.0,12.642],[176.35599,402.7,4.6679993,12.642],[181.04799,402.7,3.3240051,12.642],[184.34799,402.7,5.3159943,12.642],[189.652,402.7,3.9960022,12.642],[193.648,402.7,9.324005,12.642],[202.948,402.7,5.3159943,12.642],[208.252,402.7,6.0,12.642],[214.252,402.7,6.0,12.642],[223.336,402.7,10.667999,12.642],[234.028,402.7,3.0,12.642]]},{"id":2,"stringIdxToPositionIdx":[0,1,2,3,4,4,5,6,7,8,8,9,10,11,12,13,14,14,15,16,17,17,18,19,20,21,22,23,24,24,25,26,27,28,29,29,30,31,31,32,33,34,35],"positions":[[56.8,352.3,10.1802025,13.867801],[66.9802,352.3,8.600998,13.867801],[75.5812,352.3,3.9057007,13.867801],[79.4869,352.3,7.8395996,13.867801],[91.274506,352.3,7.8395996,13.867801],[99.07181,352.3,3.9057007,13.867801],[102.97751,352.3,7.8395996,13.867801],[110.77481,352.3,4.6952972,13.867801],[119.46041,352.3,10.180199,13.867801],[129.64061,352.3,7.8395996,13.867801],[137.43791,352.3,8.600998,13.867801],[146.03891,352.3,7.8395996,13.867801],[153.83621,352.3,7.8395996,13.867801],[161.63351,352.3,4.6952972,13.867801],[170.3191,352.3,10.180206,13.867801],[180.49931,352.3,10.180206,13.867801],[190.67952,352.3,3.9057007,13.867801],[197.98332,352.3,10.180206,13.867801],[208.16353,352.3,8.600998,13.867801],[216.76453,352.3,4.6952972,13.867801],[221.45982,352.3,8.600998,13.867801],[230.06082,352.3,8.600998,13.867801],[238.66182,352.3,5.484894,13.867801],[244.14671,352.3,7.8395996,13.867801],[255.84972,352.3,8.600998,13.867801],[264.4507,352.3,7.8395996,13.867801],[272.3326,352.3,7.8395996,13.867801],[280.1299,352.3,7.8395996,13.867801],[287.92722,352.3,8.601013,13.867801],[300.51852,352.3,8.601013,13.867801],[309.11954,352.3,8.601013,13.867801],[321.71085,352.3,10.180206,13.867801],[331.89105,352.3,3.9057007,13.867801],[335.79675,352.3,7.8395996,13.867801],[343.59406,352.3,4.6953125,13.867801]]},{"id":3,"stringIdxToPositionIdx":[0,1,2,3,4,5,6,6,7,8,9,10,10,11,12,13,14,15,16,17,18,19,20,20,21,22,23,24,25,25,26,27,27,28,29,30,30,31,32,33,34,35,36,36,37,38,39,40,40,41,42,43,44,45,46,47,48,49,50,50,51,52,53,54,55,55,56,57,57,58,59],"positions":[[56.8,334.0,6.1000023,11.535],[62.9,334.0,4.4300003,11.535],[67.3,334.0,5.0,11.535],[72.3,334.0,5.0,11.535],[77.3,334.0,4.4300003,11.535],[81.700005,334.0,2.7699966,11.535],[86.99,334.0,6.659996,11.535],[93.67999,334.0,5.0,11.535],[98.67999,334.0,4.4300003,11.535],[103.079994,334.0,5.0,11.535],[110.66999,334.0,6.0999985,11.535],[115.66999,334.0,4.4300003,11.535],[120.06999,334.0,3.8899994,11.535],[123.95999,334.0,2.7699966,11.535],[126.749985,334.0,4.4299927,11.535],[131.14998,334.0,5.0,11.535],[136.14998,334.0,3.8899994,11.535],[140.03998,334.0,5.0,11.535],[145.03998,334.0,2.7700043,11.535],[147.82999,334.0,4.4299927,11.535],[154.72998,334.0,5.0,11.535],[159.72998,334.0,2.7700043,11.535],[162.51999,334.0,5.0,11.535],[167.51999,334.0,5.0,11.535],[172.51999,334.0,4.4299927,11.535],[179.41998,334.0,2.7700043,11.535],[182.20999,334.0,3.8899994,11.535],[188.59999,334.0,5.5599976,11.535],[193.19998,334.0,4.4299927,11.535],[197.59998,334.0,3.8899994,11.535],[56.8,322.4,6.1000023,11.535],[62.9,322.4,4.4300003,11.535],[67.3,322.4,5.0,11.535],[72.3,322.4,5.0,11.535],[77.3,322.4,4.4300003,11.535],[81.700005,322.4,2.7699966,11.535],[86.99,322.4,6.659996,11.535],[93.67999,322.4,5.0,11.535],[98.67999,322.4,4.4300003,11.535],[103.079994,322.4,5.0,11.535],[110.66999,322.4,6.0999985,11.535],[115.66999,322.4,4.4300003,11.535],[120.06999,322.4,3.8899994,11.535],[123.95999,322.4,2.7699966,11.535],[126.749985,322.4,4.4299927,11.535],[131.14998,322.4,5.0,11.535],[136.14998,322.4,3.8899994,11.535],[140.03998,322.4,5.0,11.535],[145.03998,322.4,2.7700043,11.535],[147.82999,322.4,4.4299927,11.535],[154.72998,322.4,5.0,11.535],[159.72998,322.4,2.7700043,11.535],[162.51999,322.4,5.0,11.535],[167.51999,322.4,5.0,11.535],[172.51999,322.4,4.4299927,11.535],[179.41998,322.4,2.7700043,11.535],[182.20999,322.4,3.8899994,11.535],[188.59999,322.4,6.6600037,11.535],[195.29,322.4,5.0,11.535]]},{"id":4,"stringIdxToPositionIdx":[0,1,2,3,4,5,5,6,7,8,9,10,11,11,12,13,14,14,15,16,17,18,19,20,21,22,23,24,24,25,26,27,28,29,29,30,31,32,33,34,35,36,37,38,38,39,40,41,42,43,44,45,46,47,48,49,49,50,51,52,53,54,55,55,56,57,58,59,60,60,61,62,63,64,65,66,67,67,68,68,69,70,71,72,73,74,74,75,76,77,77,78,79,79,80,81,82,83,84,85,86,87,88,89,89,90,91,92,92,93,94,94,95,96,97,98,99,100,101,102,103,104],"positions":[[56.8,295.2,8.663998,12.642],[65.488,295.2,5.316002,12.642],[70.792,295.2,6.0,12.642],[76.792,295.2,3.3239975,12.642],[80.091995,295.2,6.0,12.642],[89.091995,295.2,8.664001,12.642],[97.78,295.2,4.6679993,12.642],[102.472,295.2,5.316002,12.642],[107.776,295.2,6.0,12.642],[113.776,295.2,3.3239975,12.642],[117.076,295.2,5.316002,12.642],[56.8,281.4,10.668003,12.642],[67.492004,281.4,5.316002,12.642],[72.796005,281.4,6.0,12.642],[81.796005,281.4,10.667999,12.642],[92.392006,281.4,6.0,12.642],[98.392006,281.4,4.6679993,12.642],[103.08401,281.4,3.3239975,12.642],[106.384,281.4,5.316002,12.642],[111.688,281.4,3.9960022,12.642],[115.684006,281.4,9.3239975,12.642],[125.068,281.4,5.316002,12.642],[130.37201,281.4,6.0,12.642],[136.37201,281.4,6.0,12.642],[56.8,267.59998,7.9920006,12.642],[64.792,267.59998,5.316002,12.642],[70.096,267.59998,6.0,12.642],[76.096,267.59998,6.0,12.642],[82.096,267.59998,5.316002,12.642],[90.4,267.59998,7.3199997,12.642],[97.696,267.59998,3.3239975,12.642],[100.995995,267.59998,6.0,12.642],[107.079994,267.59998,5.316002,12.642],[112.383995,267.59998,6.0,12.642],[118.383995,267.59998,6.0,12.642],[124.383995,267.59998,6.0000076,12.642],[130.384,267.59998,6.0,12.642],[136.384,267.59998,9.324005,12.642],[56.8,253.80002,7.9920006,12.642],[64.792,253.80002,6.0,12.642],[70.792,253.80002,5.316002,12.642],[76.096,253.80002,3.9960022,12.642],[80.092,253.80002,5.316002,12.642],[85.396,253.80002,3.3239975,12.642],[88.696,253.80002,5.316002,12.642],[94.084,253.80002,9.3239975,12.642],[103.383995,253.80002,6.0,12.642],[109.383995,253.80002,6.0,12.642],[115.383995,253.80002,4.6679993,12.642],[123.076,253.80002,6.6720047,12.642],[129.76,253.80002,5.3159943,12.642],[135.064,253.80002,6.0,12.642],[141.064,253.80002,5.3159943,12.642],[146.368,253.80002,6.0,12.642],[152.368,253.80002,6.0,12.642],[56.8,240.00003,7.3200035,12.642],[63.304,240.00003,5.316002,12.642],[68.608,240.00003,6.0,12.642],[74.608,240.00003,3.3239975,12.642],[77.908,240.00003,5.316002,12.642],[86.296,240.00003,6.671997,12.642],[92.979996,240.00003,5.316002,12.642],[98.284,240.00003,6.0,12.642],[104.284,240.00003,9.3239975,12.642],[113.58399,240.00003,3.3239975,12.642],[116.88399,240.00003,3.3239975,12.642],[120.18398,240.00003,3.3239975,12.642],[135.56798,240.00003,12.0,12.642],[150.56798,240.00003,4.6679993,12.642],[155.25998,240.00003,6.0,12.642],[161.25998,240.00003,6.0,12.642],[167.25998,240.00003,6.0,12.642],[173.25998,240.00003,3.3240051,12.642],[176.55998,240.00003,6.0,12.642],[185.55998,240.00003,6.0,12.642],[191.55998,240.00003,6.0,12.642],[197.55998,240.00003,3.3240051,12.642],[203.85999,240.00003,6.0,12.642],[209.85999,240.00003,5.3159943,12.642],[218.16399,240.00003,5.3159943,12.642],[223.46799,240.00003,6.0,12.642],[229.46799,240.00003,6.0,12.642],[235.46799,240.00003,6.0,12.642],[241.55199,240.00003,3.3240051,12.642],[244.85199,240.00003,5.3159943,12.642],[250.15599,240.00003,3.3240051,12.642],[253.456,240.00003,5.3160095,12.642],[258.76,240.00003,6.0,12.642],[264.76,240.00003,3.0,12.642],[270.84402,240.00003,6.0,12.642],[276.84402,240.00003,6.0,12.642],[282.84402,240.00003,3.3240051,12.642],[289.14404,240.00003,3.3240051,12.642],[292.44406,240.00003,6.0,12.642],[301.52808,240.00003,8.664001,12.642],[310.21606,240.00003,3.3240051,12.642],[313.51608,240.00003,5.3160095,12.642],[318.8201,240.00003,3.3240051,12.642],[322.12012,240.00003,3.3240051,12.642],[325.42014,240.00003,6.0,12.642],[331.42014,240.00003,6.0,12.642],[337.42014,240.00003,5.3160095,12.642],[342.72415,240.00003,3.9960022,12.642],[346.72015,240.00003,6.0,12.642]]},{"id":5,"stringIdxToPositionIdx":[],"positions":[]},{"id":6,"stringIdxToPositionIdx":[0,1,2,3,4,4,5,6,7,8,8,9,10,11,12,13,14,14,15,16,17,18,19,19,20,21,22,22,23,24,25,26,27,28,29,30,30,31,32,33,34,35,35,36,37,37,38,39,40,41],"positions":[[56.8,692.1,10.1802025,13.867801],[66.9802,692.1,8.600998,13.867801],[75.5812,692.1,3.9057007,13.867801],[79.4869,692.1,7.8395996,13.867801],[91.274506,692.1,7.8395996,13.867801],[99.07181,692.1,3.9057007,13.867801],[102.97751,692.1,7.8395996,13.867801],[110.77481,692.1,4.6952972,13.867801],[119.46041,692.1,10.180199,13.867801],[129.64061,692.1,7.8395996,13.867801],[137.43791,692.1,8.600998,13.867801],[146.03891,692.1,7.8395996,13.867801],[153.83621,692.1,7.8395996,13.867801],[161.63351,692.1,4.6952972,13.867801],[170.3191,692.1,4.6952972,13.867801],[175.0144,692.1,8.600998,13.867801],[183.6154,692.1,8.600998,13.867801],[192.2164,692.1,4.6952972,13.867801],[196.9117,692.1,4.6952972,13.867801],[205.5127,692.1,10.180206,13.867801],[215.6929,692.1,10.180206,13.867801],[225.87311,692.1,3.9057007,13.867801],[233.17691,692.1,10.180206,13.867801],[243.35712,692.1,8.600998,13.867801],[251.95811,692.1,8.600998,13.867801],[260.5591,692.1,3.9057007,13.867801],[264.4648,692.1,5.484894,13.867801],[269.9497,692.1,7.8395996,13.867801],[277.747,692.1,7.8395996,13.867801],[285.6289,692.1,7.8395996,13.867801],[297.4165,692.1,8.601013,13.867801],[306.01752,692.1,7.8395996,13.867801],[313.81482,692.1,7.8395996,13.867801],[321.61212,692.1,7.8395996,13.867801],[329.49402,692.1,8.601013,13.867801],[342.00073,692.1,8.601013,13.867801],[350.60175,692.1,8.601013,13.867801],[363.19305,692.1,10.180206,13.867801],[373.37326,692.1,3.9057007,13.867801],[377.27896,692.1,7.8395996,13.867801],[385.07626,692.1,4.6953125,13.867801]]},{"id":7,"stringIdxToPositionIdx":[0,1,2,3,4,4,5,6,7,8,9,10,10,11,12,13,14,15,15,16,17,17,18,19,20,21,22,23,24,25,25,26,27,28,29,29,30,31,32,33,34,35,36,37,38,39,39,40,41,42,43,44,44,45,46,46,47,48,48,49,50,51,52,53,54,54,55,56,57,58,58,59,60,61,62,63,64,65,66,67,68,68,69,70,71,72,73,73,74,75,75,76,77,78],"positions":[[56.8,673.8,7.2199974,11.535],[63.999996,673.8,5.000004,11.535],[69.0,673.8,5.0,11.535],[74.0,673.8,2.7699966,11.535],[79.28999,673.8,6.0999985,11.535],[85.38999,673.8,4.4300003,11.535],[89.78999,673.8,5.0,11.535],[94.78999,673.8,5.0,11.535],[99.78999,673.8,4.4300003,11.535],[104.189995,673.8,2.7699966,11.535],[109.47999,673.8,3.3300018,11.535],[112.86999,673.8,7.220001,11.535],[120.06999,673.8,5.0,11.535],[125.06999,673.8,3.8899994,11.535],[128.95999,673.8,4.4299927,11.535],[135.85999,673.8,5.0,11.535],[140.85999,673.8,3.8899994,11.535],[147.24998,673.8,3.8899994,11.535],[151.13998,673.8,4.4299927,11.535],[155.53998,673.8,2.7700043,11.535],[158.32999,673.8,5.0,11.535],[163.32999,673.8,5.0,11.535],[168.32999,673.8,4.4299927,11.535],[172.72998,673.8,5.0,11.535],[177.81998,673.8,3.3300018,11.535],[183.61998,673.8,6.6600037,11.535],[190.30998,673.8,5.0,11.535],[195.30998,673.8,4.4299927,11.535],[199.70998,673.8,5.0,11.535],[207.20998,673.8,6.100006,11.535],[212.20998,673.8,4.4299927,11.535],[216.60997,673.8,3.8899994,11.535],[220.49997,673.8,2.7700043,11.535],[223.28998,673.8,4.4299927,11.535],[227.68997,673.8,5.0,11.535],[232.68997,673.8,3.8899994,11.535],[236.57997,673.8,5.0,11.535],[241.57997,673.8,2.7700043,11.535],[244.36998,673.8,4.4299927,11.535],[251.35997,673.8,5.0000153,11.535],[256.36,673.8,2.769989,11.535],[259.14996,673.8,5.0,11.535],[264.14996,673.8,5.0,11.535],[269.14996,673.8,4.4299927,11.535],[276.04996,673.8,2.769989,11.535],[278.83994,673.8,3.8900146,11.535],[285.22995,673.8,6.6600037,11.535],[291.82996,673.8,5.0,11.535],[56.8,662.2,6.1000023,11.535],[62.9,662.2,4.4300003,11.535],[67.3,662.2,5.0,11.535],[72.3,662.2,5.0,11.535],[77.3,662.2,4.4300003,11.535],[81.700005,662.2,2.7699966,11.535],[86.99,662.2,6.659996,11.535],[93.67999,662.2,5.0,11.535],[98.67999,662.2,4.4300003,11.535],[103.079994,662.2,5.0,11.535],[110.66999,662.2,6.0999985,11.535],[115.66999,662.2,4.4300003,11.535],[120.06999,662.2,3.8899994,11.535],[123.95999,662.2,2.7699966,11.535],[126.749985,662.2,4.4299927,11.535],[131.14998,662.2,5.0,11.535],[136.14998,662.2,3.8899994,11.535],[140.03998,662.2,5.0,11.535],[145.03998,662.2,2.7700043,11.535],[147.82999,662.2,4.4299927,11.535],[154.72998,662.2,5.0,11.535],[159.72998,662.2,2.7700043,11.535],[162.51999,662.2,5.0,11.535],[167.51999,662.2,5.0,11.535],[172.51999,662.2,4.4299927,11.535],[179.41998,662.2,2.7700043,11.535],[182.20999,662.2,3.8899994,11.535],[188.59999,662.2,5.5599976,11.535],[193.19998,662.2,4.4299927,11.535],[197.59998,662.2,3.8899994,11.535]]},{"id":8,"stringIdxToPositionIdx":[0,1,2,3,4,5,6,7,8,9,10,10,11,12,13,14,14,15,16,16,17,18,19,20,21,22,23,24,25,26,26,27,28,29,30,31,32,33,34,35,36,37,38,38,39,40,40,41,42,43,44,45,46,47,48,48,49,50,51,52,53,54,55,56,57,58,59,59,60,61,61,62,63,64,64,65,66,67,68,68,69,70,71,72,73,74,75,76,76,77,78,79,80,81,81,82,83,84,85,86,87,88,89,89,90,91,92,93,94,95,96,96,97,98,98,99,100,101,101,102,103,104,105,106,106,107,108,109,109,110,111,112,113,114,115,116,117,118,118,119,120,121,122,123,123,124,125,126,127,128,129,130,131,132,133,134,135,135,136,137,138,139,140,141,142,142,143,144,144,145,146,147,148,149,149,150,151,152,153,154,155,156,157,158,159,160,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,177,178,179,180,181,181,182,183,184,185,186,187,188,189,189,190,191,192,193,194,195,196,197,198,199,200,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,218,219,220,221,222,223,224,225,225,226,227,228,229,230,231,231,232,233,234,235,236,237,238,239,239,240,241,242,243,244,245,246,246,247,248,249,250,251,252,253,253,254,255,256,257,258,259,260,260,261,262,262,263,264,265,266,266,267,268,269,270,271,272,272,273,274,275,276,276,277,278,279,279,280,281,282,283,283,284,285,286,287,288,288,289,290,291,292,293,294,295,295,296,297,298,298,299,299,300,301,302,303,304,305,305,306,307,308,308,309,310,310,311,312,313,314,315,316,317,318,319,320,320,321,322,323,323,324,325,325,326,327,328,329,330,331,332,333,334,335],"positions":[[56.8,635.0,11.315998,12.642],[67.203995,635.0,5.316002,12.642],[72.507996,635.0,3.9960022,12.642],[76.504,635.0,6.0,12.642],[82.408,635.0,4.6679993,12.642],[87.1,635.0,6.0,12.642],[93.1,635.0,5.316002,12.642],[98.404,635.0,3.3239975,12.642],[101.703995,635.0,6.0,12.642],[107.703995,635.0,3.0,12.642],[113.787994,635.0,6.0,12.642],[119.787994,635.0,6.0,12.642],[125.787994,635.0,6.0,12.642],[131.788,635.0,6.0,12.642],[140.788,635.0,7.9920044,12.642],[148.78,635.0,8.664001,12.642],[160.168,635.0,11.315994,12.642],[170.57199,635.0,5.3159943,12.642],[175.87599,635.0,3.9960022,12.642],[179.872,635.0,6.0,12.642],[185.872,635.0,4.6679993,12.642],[190.564,635.0,6.0,12.642],[196.564,635.0,5.3159943,12.642],[201.868,635.0,3.3240051,12.642],[205.168,635.0,6.0,12.642],[211.168,635.0,3.0,12.642],[217.252,635.0,8.664001,12.642],[225.94,635.0,5.3159943,12.642],[231.244,635.0,3.3240051,12.642],[234.544,635.0,6.0,12.642],[240.544,635.0,5.3159943,12.642],[245.848,635.0,3.9960022,12.642],[249.84401,635.0,3.3240051,12.642],[253.14401,635.0,5.3160095,12.642],[258.44803,635.0,6.0,12.642],[264.44803,635.0,6.0,12.642],[270.44803,635.0,4.6679993,12.642],[275.14,635.0,3.0,12.642],[281.14,635.0,8.664001,12.642],[289.828,635.0,7.3200073,12.642],[56.8,621.2,3.9959984,12.642],[60.795998,621.2,6.0,12.642],[66.7,621.2,4.6679993,12.642],[71.392,621.2,3.3239975,12.642],[74.77599,621.2,3.3239975,12.642],[78.07599,621.2,3.3239975,12.642],[81.375984,621.2,6.0,12.642],[87.375984,621.2,3.3239975,12.642],[93.75998,621.2,3.9960022,12.642],[97.75598,621.2,6.0,12.642],[103.75598,621.2,6.0,12.642],[109.75598,621.2,6.0,12.642],[115.65998,621.2,4.6679993,12.642],[120.35198,621.2,3.3239975,12.642],[123.65198,621.2,3.9960022,12.642],[127.74398,621.2,3.3239975,12.642],[131.04398,621.2,5.3159943,12.642],[136.34798,621.2,4.6679993,12.642],[141.03998,621.2,3.0,12.642],[147.03998,621.2,6.0,12.642],[153.03998,621.2,6.0,12.642],[162.03998,621.2,7.9920044,12.642],[170.03198,621.2,6.0,12.642],[176.03198,621.2,5.3159943,12.642],[184.33598,621.2,4.6679993,12.642],[189.02798,621.2,5.3159943,12.642],[194.33199,621.2,5.3159943,12.642],[199.63599,621.2,6.0,12.642],[208.63599,621.2,7.9920044,12.642],[216.62799,621.2,5.3159943,12.642],[221.93199,621.2,3.9960022,12.642],[225.736,621.2,3.9960022,12.642],[229.732,621.2,3.3240051,12.642],[233.116,621.2,5.3159943,12.642],[238.42,621.2,3.9960022,12.642],[241.924,621.2,3.0,12.642],[247.924,621.2,6.0,12.642],[253.924,621.2,6.0000153,12.642],[259.924,621.2,6.0,12.642],[265.924,621.2,6.0,12.642],[271.924,621.2,6.0,12.642],[280.924,621.2,7.9920044,12.642],[288.91602,621.2,6.0,12.642],[294.91602,621.2,6.0,12.642],[300.91602,621.2,3.9960022,12.642],[304.72003,621.2,6.0,12.642],[310.72003,621.2,5.3160095,12.642],[316.02405,621.2,4.6679993,12.642],[320.71603,621.2,3.0,12.642],[326.71603,621.2,6.671997,12.642],[333.40002,621.2,3.9960022,12.642],[337.39603,621.2,5.3160095,12.642],[342.70004,621.2,6.0,12.642],[348.70004,621.2,5.3160095,12.642],[354.00406,621.2,5.3160095,12.642],[359.30807,621.2,3.0,12.642],[365.3921,621.2,6.671997,12.642],[371.9921,621.2,7.9920044,12.642],[56.8,607.4,6.0,12.642],[62.8,607.4,3.9959984,12.642],[66.796,607.4,6.0,12.642],[75.796,607.4,7.991997,12.642],[83.787994,607.4,6.0,12.642],[89.787994,607.4,5.316002,12.642],[95.091995,607.4,9.3239975,12.642],[104.39199,607.4,3.0,12.642],[110.39199,607.4,6.0,12.642],[116.39199,607.4,5.316002,12.642],[121.69599,607.4,4.6679993,12.642],[129.184,607.4,8.664001,12.642],[136.48001,607.4,5.3159943,12.642],[141.78401,607.4,3.9960022,12.642],[145.78001,607.4,5.3159943,12.642],[151.08401,607.4,6.0,12.642],[157.08401,607.4,6.0,12.642],[163.16801,607.4,5.3159943,12.642],[168.47202,607.4,4.6679993,12.642],[173.16402,607.4,3.0,12.642],[179.16402,607.4,6.0,12.642],[185.16402,607.4,6.0,12.642],[191.16402,607.4,6.0,12.642],[197.16402,607.4,6.0,12.642],[203.16402,607.4,6.0,12.642],[212.16402,607.4,6.671997,12.642],[218.848,607.4,5.3159943,12.642],[224.15201,607.4,3.3240051,12.642],[227.45201,607.4,6.0,12.642],[233.45201,607.4,3.3240051,12.642],[236.75201,607.4,3.9960022,12.642],[240.84401,607.4,6.671997,12.642],[247.528,607.4,5.3159943,12.642],[252.832,607.4,3.3240051,12.642],[256.13202,607.4,6.0,12.642],[262.13202,607.4,3.9960022,12.642],[265.63602,607.4,3.0,12.642],[271.63602,607.4,6.671997,12.642],[278.32,607.4,3.9960022,12.642],[282.316,607.4,5.3160095,12.642],[287.62003,607.4,6.0,12.642],[293.62003,607.4,5.3160095,12.642],[298.92404,607.4,5.3160095,12.642],[304.22806,607.4,3.0,12.642],[310.31207,607.4,6.671997,12.642],[316.91208,607.4,7.9920044,12.642],[56.8,593.6,7.3200035,12.642],[64.096,593.6,5.316002,12.642],[69.4,593.6,4.6679993,12.642],[74.092,593.6,6.0,12.642],[80.092,593.6,6.0,12.642],[89.092,593.6,3.9960022,12.642],[93.088005,593.6,6.0,12.642],[99.088005,593.6,6.0,12.642],[105.088005,593.6,6.0,12.642],[111.088005,593.6,4.6679993,12.642],[115.78001,593.6,3.3239975,12.642],[119.08,593.6,3.9960022,12.642],[123.076004,593.6,3.3239975,12.642],[126.376,593.6,5.316002,12.642],[131.68001,593.6,4.6679993,12.642],[136.37201,593.6,3.0,12.642],[142.37201,593.6,7.9920044,12.642],[150.36401,593.6,6.0,12.642],[156.36401,593.6,5.3159943,12.642],[161.66801,593.6,6.0,12.642],[167.66801,593.6,6.0,12.642],[173.66801,593.6,5.3159943,12.642],[179.05602,593.6,3.3240051,12.642],[182.35602,593.6,3.3240051,12.642],[185.65602,593.6,4.6679993,12.642],[190.34802,593.6,3.3240051,12.642],[193.64803,593.6,3.9960022,12.642],[197.64403,593.6,5.3159943,12.642],[202.94803,593.6,4.6679993,12.642],[207.64003,593.6,4.6679993,12.642],[212.33203,593.6,3.3240051,12.642],[215.63203,593.6,3.3240051,12.642],[218.93204,593.6,3.0,12.642],[225.01604,593.6,6.0,12.642],[231.01604,593.6,6.0,12.642],[237.01604,593.6,6.0,12.642],[243.01604,593.6,6.0,12.642],[252.01604,593.6,7.319992,12.642],[259.31204,593.6,6.0,12.642],[265.31204,593.6,6.0,12.642],[271.31204,593.6,6.0,12.642],[277.31204,593.6,5.3160095,12.642],[282.61606,593.6,3.9960022,12.642],[286.61206,593.6,6.0,12.642],[292.61206,593.6,3.0,12.642],[298.61206,593.6,6.671997,12.642],[305.29605,593.6,8.664001,12.642],[313.98404,593.6,3.3240051,12.642],[317.28406,593.6,3.3240051,12.642],[320.58408,593.6,5.3160095,12.642],[325.8881,593.6,5.3160095,12.642],[331.1921,593.6,3.9960022,12.642],[335.28412,593.6,3.3240051,12.642],[338.58414,593.6,5.3160095,12.642],[343.88815,593.6,6.0,12.642],[349.88815,593.6,6.0,12.642],[56.8,579.8,6.672001,12.642],[63.484,579.8,6.0,12.642],[69.484,579.8,3.3239975,12.642],[72.784,579.8,3.3239975,12.642],[76.08399,579.8,4.6679993,12.642],[80.77599,579.8,4.6679993,12.642],[85.467995,579.8,5.316002,12.642],[90.771996,579.8,3.3239975,12.642],[94.07199,579.8,2.1600037,12.642],[96.256,579.8,6.0,12.642],[102.256,579.8,6.0,12.642],[108.256,579.8,3.9960022,12.642],[112.06,579.8,6.0,12.642],[117.964,579.8,4.6679993,12.642],[122.656,579.8,6.0000076,12.642],[128.656,579.8,5.3159943,12.642],[133.96,579.8,6.0,12.642],[139.96,579.8,5.3159943,12.642],[148.348,579.8,8.664001,12.642],[157.03601,579.8,3.3240051,12.642],[160.33601,579.8,3.3240051,12.642],[163.63602,579.8,3.3240051,12.642],[166.93602,579.8,4.6679993,12.642],[171.62802,579.8,5.3159943,12.642],[176.93202,579.8,3.0,12.642],[182.93202,579.8,8.664001,12.642],[191.62003,579.8,3.3240051,12.642],[194.92003,579.8,5.3159943,12.642],[200.22403,579.8,6.0,12.642],[206.22403,579.8,6.0,12.642],[212.22403,579.8,6.0,12.642],[221.30803,579.8,8.664001,12.642],[229.91203,579.8,6.0,12.642],[235.91203,579.8,6.0,12.642],[241.91203,579.8,6.0,12.642],[247.91203,579.8,6.0,12.642],[253.91203,579.8,3.995987,12.642],[257.90802,579.8,6.0,12.642],[263.90802,579.8,6.0,12.642],[272.90802,579.8,8.664001,12.642],[281.596,579.8,6.0,12.642],[287.596,579.8,3.3240051,12.642],[290.89603,579.8,5.3160095,12.642],[296.20004,579.8,4.6679993,12.642],[300.89203,579.8,3.3240051,12.642],[304.19205,579.8,3.0,12.642],[310.19205,579.8,7.9920044,12.642],[318.18405,579.8,6.0,12.642],[324.18405,579.8,4.6679993,12.642],[328.87604,579.8,4.6679993,12.642],[333.56802,579.8,3.3240051,12.642],[336.86804,579.8,5.3160095,12.642],[342.17206,579.8,3.0,12.642],[348.17206,579.8,6.0,12.642],[354.17206,579.8,6.0,12.642],[360.17206,579.8,6.0,12.642],[366.17206,579.8,6.0,12.642],[372.17206,579.8,6.0,12.642],[378.17206,579.8,6.0,12.642],[384.17206,579.8,3.0,12.642],[390.17206,579.8,7.9920044,12.642],[398.16406,579.8,8.664001,12.642],[56.8,566.0,8.663998,12.642],[65.488,566.0,5.316002,12.642],[70.792,566.0,3.9960022,12.642],[74.788,566.0,3.3239975,12.642],[81.088,566.0,4.6679993,12.642],[85.78,566.0,6.0,12.642],[91.78,566.0,6.0,12.642],[97.78,566.0,5.316002,12.642],[103.084,566.0,6.0,12.642],[109.084,566.0,4.6679993,12.642],[116.776,566.0,8.664001,12.642],[125.464005,566.0,5.3159943,12.642],[130.768,566.0,3.3240051,12.642],[134.06801,566.0,5.3159943,12.642],[142.37201,566.0,6.0,12.642],[147.97601,566.0,6.0,12.642],[153.97601,566.0,3.0,12.642],[159.97601,566.0,6.0,12.642],[165.97601,566.0,6.0,12.642],[171.97601,566.0,6.0,12.642],[177.97601,566.0,6.0,12.642],[186.97601,566.0,8.664001,12.642],[195.58002,566.0,4.6679993,12.642],[200.27202,566.0,3.3240051,12.642],[203.57202,566.0,6.0,12.642],[209.57202,566.0,3.0,12.642],[215.57202,566.0,8.664001,12.642],[224.26003,566.0,6.0,12.642],[230.26003,566.0,3.9960022,12.642],[234.25603,566.0,8.664001,12.642],[242.94403,566.0,5.3159943,12.642],[248.24803,566.0,6.0,12.642],[253.44403,566.0,3.0,12.642],[259.44403,566.0,8.664001,12.642],[268.13202,566.0,8.664001,12.642],[276.73602,566.0,7.9920044,12.642],[296.72803,566.0,12.0,12.642],[311.72803,566.0,4.6679993,12.642],[316.42,566.0,6.0,12.642],[322.42,566.0,6.0,12.642],[328.42,566.0,6.0,12.642],[334.42,566.0,3.3240051,12.642],[337.72003,566.0,6.0,12.642],[346.72003,566.0,6.0,12.642],[352.72003,566.0,6.0,12.642],[358.72003,566.0,3.3240051,12.642],[365.10403,566.0,6.0,12.642],[371.10403,566.0,5.3160095,12.642],[379.40805,566.0,5.3160095,12.642],[384.71207,566.0,6.0,12.642],[390.71207,566.0,6.0,12.642],[396.71207,566.0,6.0,12.642],[402.71207,566.0,3.3240051,12.642],[406.0121,566.0,5.3160095,12.642],[411.4001,566.0,3.3240051,12.642],[414.7001,566.0,5.3160095,12.642],[420.00412,566.0,6.0,12.642],[426.00412,566.0,3.0,12.642],[432.00412,566.0,6.0,12.642],[438.00412,566.0,6.0,12.642],[444.00412,566.0,3.3240051,12.642],[450.38812,566.0,3.3240051,12.642],[453.68814,566.0,6.0,12.642],[462.68814,566.0,8.664001,12.642],[471.37613,566.0,3.3240051,12.642],[474.67615,566.0,5.3160095,12.642],[479.98016,566.0,3.3240051,12.642],[483.36417,566.0,3.3240051,12.642],[486.66418,566.0,6.0,12.642],[492.66418,566.0,6.0,12.642],[498.66418,566.0,5.3160095,12.642],[503.9682,566.0,3.9960022,12.642],[507.9642,566.0,6.0000305,12.642]]},{"id":9,"stringIdxToPositionIdx":[0,1,2,3,4,4,5,6,6,7,8,8,9,10,11,11,12,13,14,15,16,17,17,18,19,20,21,22,23,24,25,25,26,27,28,29,30,31,32,33,34,35,36,36,37,38,39,40,41,42,43,44,44,45,46,47,48,49,49,50,51,51,52,53,54,55,56],"positions":[[56.8,515.6,10.1802025,13.867801],[66.9802,515.6,8.600998,13.867801],[75.5812,515.6,3.9057007,13.867801],[79.4869,515.6,7.8395996,13.867801],[91.274506,515.6,7.8395996,13.867801],[99.07181,515.6,4.6952972,13.867801],[107.672806,515.6,10.180199,13.867801],[117.853004,515.6,8.600998,13.867801],[130.3597,515.6,8.600998,13.867801],[138.9607,515.6,8.600998,13.867801],[147.56169,515.6,4.6952972,13.867801],[156.24728,515.6,5.484894,13.867801],[161.73218,515.6,7.8395996,13.867801],[169.52948,515.6,8.600998,13.867801],[178.13048,515.6,7.8395996,13.867801],[185.92778,515.6,7.8395996,13.867801],[193.72508,515.6,4.6952972,13.867801],[202.41068,515.6,8.600998,13.867801],[211.01167,515.6,7.8395996,13.867801],[218.80898,515.6,8.600998,13.867801],[227.40997,515.6,3.9057007,13.867801],[231.31567,515.6,4.6952972,13.867801],[236.01097,515.6,3.9057007,13.867801],[240.00127,515.6,7.8395996,13.867801],[247.79857,515.6,7.8395996,13.867801],[259.58615,515.6,10.180206,13.867801],[269.76636,515.6,10.180206,13.867801],[279.94656,515.6,3.9057007,13.867801],[283.85226,515.6,7.8395996,13.867801],[291.64957,515.6,7.8395996,13.867801],[299.44687,515.6,8.601013,13.867801],[308.04788,515.6,4.6953125,13.867801],[312.7432,515.6,8.601013,13.867801],[321.4288,515.6,8.601013,13.867801],[330.02982,515.6,5.484894,13.867801],[335.5147,515.6,7.8395996,13.867801],[347.2177,515.6,4.6953125,13.867801],[351.91302,515.6,9.3905945,13.867801],[361.30362,515.6,8.601013,13.867801],[369.90463,515.6,4.6953125,13.867801],[374.59995,515.6,5.484894,13.867801],[380.08484,515.6,3.9057007,13.867801],[383.99054,515.6,7.8395996,13.867801],[391.87244,515.6,7.8395996,13.867801],[403.66003,515.6,8.601013,13.867801],[412.26105,515.6,7.8395996,13.867801],[420.05835,515.6,7.8395996,13.867801],[427.85565,515.6,7.8395996,13.867801],[435.73755,515.6,8.601013,13.867801],[448.24426,515.6,8.601013,13.867801],[456.84528,515.6,8.601013,13.867801],[469.43658,515.6,10.180206,13.867801],[479.6168,515.6,3.9057007,13.867801],[483.5225,515.6,7.8395996,13.867801],[491.3198,515.6,4.6953125,13.867801],[496.0151,515.6,4.6953125,13.867801]]},{"id":10,"stringIdxToPositionIdx":[0,1,2,3,4,5,6,6,7,8,8,9,10,11,12,12,13,14,15,16,17,18,19,20,21,22,22,23,24,25,26,27,27,28,28,29,30,31,31,32,33,34,35,36,36,37,38,38,39,40,41,42,43,43,44,45,46,47,48,49,49,50,51,51,52,53,54,54,55,56,57,58,59,60,61,62,63,63,64,65,66,67,68,69,70,71,72,72,73,74,75,76,77,77,78,78,79,80,81,82,83,83,84,85,85,86,87,88,89,90,91,92,93,94,95,96,97,98,98,99,100,101,102,103,104,104,105,106,106,107,108,109,110,111,112,113,114,115],"positions":[[56.8,497.3,6.1000023,11.535],[62.9,497.3,4.4300003,11.535],[67.3,497.3,5.0,11.535],[72.3,497.3,5.0,11.535],[77.3,497.3,5.0,11.535],[82.3,497.3,5.0,11.535],[89.8,497.3,2.7699966,11.535],[92.59,497.3,5.0,11.535],[100.09,497.3,7.220001,11.535],[107.29,497.3,2.7699966,11.535],[110.079994,497.3,5.0,11.535],[115.079994,497.3,2.7699966,11.535],[56.8,483.9,7.9920006,12.642],[64.792,483.9,3.3239975,12.642],[68.091995,483.9,5.316002,12.642],[73.395996,483.9,3.9960022,12.642],[77.392,483.9,3.3239975,12.642],[80.69199,483.9,4.6679993,12.642],[85.383995,483.9,4.6679993,12.642],[90.076,483.9,5.316002,12.642],[95.38,483.9,3.9960022,12.642],[98.68,483.9,4.6679993,12.642],[106.372,483.9,8.664001,12.642],[115.060005,483.9,6.0,12.642],[121.060005,483.9,6.0,12.642],[127.060005,483.9,5.9999924,12.642],[133.06,483.9,3.3240051,12.642],[142.36,483.9,12.0,12.642],[157.36,483.9,6.0,12.642],[163.36,483.9,6.0,12.642],[169.36,483.9,3.3240051,12.642],[175.744,483.9,5.3159943,12.642],[181.048,483.9,6.0,12.642],[187.048,483.9,6.0,12.642],[193.048,483.9,5.3159943,12.642],[198.352,483.9,6.0,12.642],[207.352,483.9,3.3240051,12.642],[210.65201,483.9,6.0,12.642],[219.65201,483.9,8.664001,12.642],[228.34001,483.9,3.3240051,12.642],[231.64001,483.9,5.3159943,12.642],[237.02802,483.9,3.3240051,12.642],[240.32802,483.9,3.0,12.642],[246.32802,483.9,4.6679993,12.642],[251.02002,483.9,6.0,12.642],[257.02002,483.9,6.0,12.642],[263.02002,483.9,6.0,12.642],[269.02002,483.9,3.3240051,12.642],[272.32004,483.9,6.0,12.642],[281.32004,483.9,6.0,12.642],[287.32004,483.9,5.3160095,12.642],[295.62405,483.9,6.0,12.642],[301.62405,483.9,6.0,12.642],[307.62405,483.9,3.3240051,12.642],[314.00806,483.9,5.3160095,12.642],[319.31207,483.9,6.0,12.642],[325.31207,483.9,6.0,12.642],[331.31207,483.9,6.0,12.642],[337.31207,483.9,3.3240051,12.642],[340.6121,483.9,5.3160095,12.642],[345.9161,483.9,3.3240051,12.642],[349.3001,483.9,5.3160095,12.642],[354.60413,483.9,6.0,12.642],[56.8,470.1,6.672001,12.642],[63.484,470.1,3.3239975,12.642],[66.784,470.1,9.3239975,12.642],[76.08399,470.1,6.0,12.642],[82.08399,470.1,4.6679993,12.642],[86.77599,470.1,6.0,12.642],[92.77599,470.1,6.0,12.642],[98.67999,470.1,2.1600037,12.642],[100.864,470.1,4.6679993,12.642],[108.352,470.1,7.3199997,12.642],[114.855995,470.1,6.0,12.642],[120.855995,470.1,8.663994,12.642],[129.54399,470.1,5.3159943,12.642],[134.84799,470.1,3.9960022,12.642],[147.844,470.1,12.0,12.642],[162.844,470.1,5.3159943,12.642],[168.148,470.1,6.0,12.642],[174.148,470.1,6.0,12.642],[180.148,470.1,5.3159943,12.642],[185.452,470.1,6.0,12.642],[194.452,470.1,3.3240051,12.642],[197.752,470.1,6.0,12.642],[206.14,470.1,8.664001,12.642],[214.828,470.1,6.0,12.642],[220.828,470.1,3.3240051,12.642],[224.128,470.1,6.0,12.642],[230.128,470.1,6.0,12.642],[236.128,470.1,3.9960022,12.642],[240.12401,470.1,4.6679993,12.642],[244.81601,470.1,3.9960022,12.642],[248.81201,470.1,8.664001,12.642],[257.5,470.1,3.3240051,12.642],[260.80002,470.1,5.3160095,12.642],[266.10403,470.1,3.3240051,12.642],[269.40405,470.1,3.0,12.642],[275.40405,470.1,4.6679993,12.642],[280.09604,470.1,6.0,12.642],[286.09604,470.1,6.0,12.642],[292.09604,470.1,6.0,12.642],[298.09604,470.1,3.3240051,12.642],[301.39606,470.1,6.0,12.642],[310.39606,470.1,6.0,12.642],[316.39606,470.1,5.3160095,12.642],[324.78406,470.1,5.3160095,12.642],[330.08807,470.1,6.0,12.642],[336.08807,470.1,6.0,12.642],[342.08807,470.1,6.0,12.642],[348.08807,470.1,3.3240051,12.642],[351.3881,470.1,5.3160095,12.642],[356.6921,470.1,3.3240051,12.642],[359.99213,470.1,5.3160095,12.642],[365.29614,470.1,6.0,12.642]]},{"id":11,"stringIdxToPositionIdx":[0,1,2,3,4,4,5,6,7,8,8,9,10,11,12,13,14,15,16,16,17,18,19,20,21,22],"positions":[[56.8,405.9,10.1802025,13.867801],[66.9802,405.9,8.600998,13.867801],[75.5812,405.9,3.9057007,13.867801],[79.4869,405.9,7.8395996,13.867801],[91.274506,405.9,7.8395996,13.867801],[99.07181,405.9,4.6952972,13.867801],[103.767105,405.9,7.8395996,13.867801],[110.873505,405.9,7.8395996,13.867801],[122.57651,405.9,4.6952972,13.867801],[127.271805,405.9,10.180206,13.867801],[137.45201,405.9,8.600998,13.867801],[146.05301,405.9,4.6952972,13.867801],[150.7483,405.9,8.600998,13.867801],[159.3493,405.9,8.600998,13.867801],[167.9503,405.9,5.484894,13.867801],[173.4352,405.9,7.8395996,13.867801],[185.2228,405.9,8.600998,13.867801],[192.8227,405.9,7.8395996,13.867801],[200.62,405.9,8.600998,13.867801],[209.221,405.9,3.9057007,13.867801],[213.1267,405.9,7.8395996,13.867801],[220.924,405.9,4.6952972,13.867801]]},{"id":12,"stringIdxToPositionIdx":[0,1,2,3,4,5,6,6,7,8,9,10,10,11,12,13,14,15,16,17,18,19,20,20,21,22,23,24,25,25,26,27,27,28,29,30,30,31,32,33,34,35,36,36,37,38,39,40,40,41,42,43,44,45,46,47,48,49,50,50,51,52,53,54,55,55,56,57,57,58,59],"positions":[[56.8,387.5,6.1000023,11.535],[62.9,387.5,4.4300003,11.535],[67.3,387.5,5.0,11.535],[72.3,387.5,5.0,11.535],[77.3,387.5,4.4300003,11.535],[81.700005,387.5,2.7699966,11.535],[86.99,387.5,6.659996,11.535],[93.67999,387.5,5.0,11.535],[98.67999,387.5,4.4300003,11.535],[103.079994,387.5,5.0,11.535],[110.66999,387.5,6.0999985,11.535],[115.66999,387.5,4.4300003,11.535],[120.06999,387.5,3.8899994,11.535],[123.95999,387.5,2.7699966,11.535],[126.749985,387.5,4.4299927,11.535],[131.14998,387.5,5.0,11.535],[136.14998,387.5,3.8899994,11.535],[140.03998,387.5,5.0,11.535],[145.03998,387.5,2.7700043,11.535],[147.82999,387.5,4.4299927,11.535],[154.72998,387.5,5.0,11.535],[159.72998,387.5,2.7700043,11.535],[162.51999,387.5,5.0,11.535],[167.51999,387.5,5.0,11.535],[172.51999,387.5,4.4299927,11.535],[179.41998,387.5,2.7700043,11.535],[182.20999,387.5,3.8899994,11.535],[188.59999,387.5,5.5599976,11.535],[193.19998,387.5,4.4299927,11.535],[197.59998,387.5,3.8899994,11.535],[56.8,376.0,6.1000023,11.535],[62.9,376.0,4.4300003,11.535],[67.3,376.0,5.0,11.535],[72.3,376.0,5.0,11.535],[77.3,376.0,4.4300003,11.535],[81.700005,376.0,2.7699966,11.535],[86.99,376.0,6.659996,11.535],[93.67999,376.0,5.0,11.535],[98.67999,376.0,4.4300003,11.535],[103.079994,376.0,5.0,11.535],[110.66999,376.0,6.0999985,11.535],[115.66999,376.0,4.4300003,11.535],[120.06999,376.0,3.8899994,11.535],[123.95999,376.0,2.7699966,11.535],[126.749985,376.0,4.4299927,11.535],[131.14998,376.0,5.0,11.535],[136.14998,376.0,3.8899994,11.535],[140.03998,376.0,5.0,11.535],[145.03998,376.0,2.7700043,11.535],[147.82999,376.0,4.4299927,11.535],[154.72998,376.0,5.0,11.535],[159.72998,376.0,2.7700043,11.535],[162.51999,376.0,5.0,11.535],[167.51999,376.0,5.0,11.535],[172.51999,376.0,4.4299927,11.535],[179.41998,376.0,2.7700043,11.535],[182.20999,376.0,3.8899994,11.535],[188.59999,376.0,6.6600037,11.535],[195.29,376.0,5.0,11.535]]},{"id":13,"stringIdxToPositionIdx":[0,1,2,3,4,5,6,7,8,9,9,10,11],"positions":[[61.5,361.2,7.5810013,11.81175],[68.997,361.2,4.651497,11.81175],[73.6905,361.2,3.496498,11.81175],[77.187,361.2,4.651497,11.81175],[81.785995,361.2,4.651497,11.81175],[86.29049,361.2,4.651497,11.81175],[90.983986,361.2,5.8379974,11.81175],[96.77998,361.2,4.651497,11.81175],[101.47348,361.2,4.651497,11.81175],[108.77097,361.2,7.5810013,11.81175],[116.267975,361.2,5.25,11.81175]]},{"id":14,"stringIdxToPositionIdx":[0,1,2,3,4,5,6,7,8,9],"positions":[[143.0,361.2,7.5809937,11.81175],[150.59149,361.2,5.8379974,11.81175],[156.38748,361.2,3.4965057,11.81175],[159.88399,361.2,5.8379974,11.81175],[165.67998,361.2,5.25,11.81175],[170.97198,361.2,4.6515045,11.81175],[175.6655,361.2,3.4965057,11.81175],[179.162,361.2,4.084503,11.81175],[183.2465,361.2,3.4965057,11.81175]]},{"id":15,"stringIdxToPositionIdx":[0,1,2,3,4],"positions":[[217.1,361.2,7.5809937,11.81175],[223.505,361.2,4.6515045,11.81175],[228.104,361.2,5.25,11.81175],[233.39601,361.2,4.6515045,11.81175]]},{"id":16,"stringIdxToPositionIdx":[0,1,2,3,4,5],"positions":[[344.7,361.2,6.9930115,11.81175],[351.50403,361.2,2.9085083,11.81175],[354.40204,361.2,3.4964905,11.81175],[357.89853,361.2,2.9085083,11.81175],[360.79654,361.2,4.6514893,11.81175]]},{"id":17,"stringIdxToPositionIdx":[0,1,2,3,4,5,6,7,8,9,10],"positions":[[479.6,361.2,6.9930115,11.81175],[486.59302,361.2,5.25,11.81175],[491.885,361.2,5.8380127,11.81175],[497.68103,361.2,5.25,11.81175],[502.87854,361.2,4.6514893,11.81175],[507.57202,361.2,5.25,11.81175],[512.864,361.2,3.496521,11.81175],[516.26605,361.2,5.25,11.81175],[521.55804,361.2,4.6514893,11.81175],[526.15704,361.2,5.25,11.81175]]},{"id":18,"stringIdxToPositionIdx":[0,1,2,3,3,4,5],"positions":[[77.9,343.5,6.993004,11.81175],[84.893005,343.5,6.992996,11.81175],[91.886,343.5,5.25,11.81175],[99.782,343.5,2.9085007,11.81175],[102.68,343.5,5.25,11.81175]]},{"id":19,"stringIdxToPositionIdx":[0,1,2,3,4,5,6,7,7,8,9],"positions":[[141.2,343.5,9.334503,11.81175],[150.503,343.5,2.908493,11.81175],[153.401,343.5,4.6515045,11.81175],[158.0,343.5,5.25,11.81175],[163.292,343.5,4.6515045,11.81175],[167.98552,343.5,4.6515045,11.81175],[172.67903,343.5,2.908493,11.81175],[178.18103,343.5,7.5809937,11.81175],[185.77252,343.5,2.625,11.81175]]},{"id":20,"stringIdxToPositionIdx":[0,1,2,3,4],"positions":[[217.1,343.5,5.25,11.81175],[222.2975,343.5,5.25,11.81175],[227.58951,343.5,5.25,11.81175],[232.787,343.5,5.25,11.81175]]},{"id":21,"stringIdxToPositionIdx":[0,1,2,3,3,4,5,6,7,7,8,9,9,10,11,12,13,14,15,16,17,17,18,19,20,21,22,23,24,25,26,26,27,28,28,29,30,31,31,32,33,34,35,36,37,37,38,39,40,41,42,43,44],"positions":[[263.1,343.5,6.404999,11.81175],[269.4,343.5,5.25,11.81175],[274.692,343.5,4.6514893,11.81175],[281.98947,343.5,3.4964905,11.81175],[285.48596,343.5,5.25,11.81175],[290.77795,343.5,2.9085083,11.81175],[293.67596,343.5,4.6514893,11.81175],[300.97345,343.5,5.25,11.81175],[306.17096,343.5,3.4964905,11.81175],[312.35544,343.5,5.25,11.81175],[317.55295,343.5,5.25,11.81175],[322.84494,343.5,5.25,11.81175],[328.04245,343.5,4.084503,11.81175],[332.12695,343.5,2.9085083,11.81175],[335.02496,343.5,4.6514893,11.81175],[339.62396,343.5,4.6514893,11.81175],[344.31744,343.5,2.9085083,11.81175],[349.90344,343.5,4.6514893,11.81175],[354.50244,343.5,5.25,11.81175],[359.79443,343.5,5.25,11.81175],[364.99194,343.5,4.6514893,11.81175],[369.68542,343.5,4.6514893,11.81175],[374.3789,343.5,2.9085083,11.81175],[377.27692,343.5,2.9085083,11.81175],[380.0804,343.5,5.25,11.81175],[385.3724,343.5,5.25,11.81175],[393.2684,343.5,2.9085083,11.81175],[396.1664,343.5,5.25,11.81175],[404.0624,343.5,2.9085083,11.81175],[406.96042,343.5,5.25,11.81175],[412.15793,343.5,4.6514893,11.81175],[419.4554,343.5,4.084503,11.81175],[423.53992,343.5,4.6514893,11.81175],[428.13892,343.5,5.25,11.81175],[433.4309,343.5,5.25,11.81175],[438.62842,343.5,5.25,11.81175],[443.9204,343.5,2.9085083,11.81175],[339.2,331.4,4.084503,11.81175],[343.2005,331.4,5.25,11.81175],[348.4925,331.4,4.084503,11.81175],[352.577,331.4,2.9085083,11.81175],[355.475,331.4,4.6514893,11.81175],[360.074,331.4,8.158508,11.81175],[368.264,331.4,2.625,11.81175]]},{"id":22,"stringIdxToPositionIdx":[0,1,2,3,4,5,6,7,7,8,9,10,11,12,13,14,15,16,17],"positions":[[465.0,343.5,9.901489,11.81175],[474.1035,343.5,4.6514893,11.81175],[478.70248,343.5,5.25,11.81175],[483.99448,343.5,2.9085083,11.81175],[486.8925,343.5,4.6514893,11.81175],[491.4915,343.5,5.25,11.81175],[496.78348,343.5,5.25,11.81175],[504.67947,343.5,3.4964905,11.81175],[508.17596,343.5,5.25,11.81175],[513.3735,343.5,5.25,11.81175],[518.66547,343.5,5.25,11.81175],[523.863,343.5,4.0844727,11.81175],[527.94745,343.5,2.9085083,11.81175],[530.84546,343.5,3.496521,11.81175],[534.342,343.5,2.9085083,11.81175],[537.24,343.5,4.6514893,11.81175],[541.9335,343.5,4.0844727,11.81175]]},{"id":23,"stringIdxToPositionIdx":[0,1,2,3,3,4,5],"positions":[[77.9,313.8,6.993004,11.81175],[84.893005,313.8,6.992996,11.81175],[91.886,313.8,5.25,11.81175],[99.782,313.8,2.9085007,11.81175],[102.68,313.8,5.25,11.81175]]},{"id":24,"stringIdxToPositionIdx":[0,1,2,3,4,5,6,7,8,8,9,10],"positions":[[140.0,313.8,5.8379974,11.81175],[145.79599,313.8,5.25,11.81175],[150.99348,313.8,5.25,11.81175],[156.28549,313.8,5.25,11.81175],[161.48299,313.8,4.6515045,11.81175],[166.1765,313.8,3.4965057,11.81175],[169.673,313.8,2.908493,11.81175],[172.571,313.8,4.6515045,11.81175],[179.86852,313.8,6.992996,11.81175],[186.86151,313.8,2.625,11.81175]]},{"id":25,"stringIdxToPositionIdx":[0,1,2,3,4],"positions":[[217.1,313.8,5.25,11.81175],[222.2975,313.8,5.25,11.81175],[227.58951,313.8,5.25,11.81175],[232.787,313.8,5.25,11.81175]]},{"id":26,"stringIdxToPositionIdx":[0,1,2,2,3,4,5,6,7,8,8,9,10,10,11,12,13,14,15,16,17,17,18,19,19,20,21,22,23,24,25,26,26,27,28,29,29,30,31,32,33,33,34,35,36,37,38,39,40],"positions":[[274.8,313.8,3.4964905,11.81175],[278.29648,313.8,2.9085083,11.81175],[283.88248,313.8,4.084503,11.81175],[287.88297,313.8,5.25,11.81175],[293.17496,313.8,5.25,11.81175],[298.37247,313.8,5.25,11.81175],[303.66446,313.8,2.9085083,11.81175],[306.56247,313.8,5.25,11.81175],[314.45847,313.8,5.25,11.81175],[319.65598,313.8,4.6514893,11.81175],[326.95346,313.8,2.9085083,11.81175],[329.85147,313.8,2.9085083,11.81175],[332.74948,313.8,2.9085083,11.81175],[335.6475,313.8,4.6514893,11.81175],[340.34097,313.8,5.25,11.81175],[345.53848,313.8,4.6514893,11.81175],[350.23196,313.8,2.9085083,11.81175],[355.8285,313.8,2.9085083,11.81175],[358.7265,313.8,5.25,11.81175],[366.6225,313.8,5.25,11.81175],[371.82,313.8,3.4964905,11.81175],[375.3165,313.8,5.25,11.81175],[380.514,313.8,5.25,11.81175],[385.806,313.8,5.25,11.81175],[391.0035,313.8,4.6514893,11.81175],[395.697,313.8,4.6514893,11.81175],[402.99448,313.8,4.6514893,11.81175],[407.68796,313.8,5.25,11.81175],[412.88547,313.8,5.25,11.81175],[420.78146,313.8,4.084503,11.81175],[424.86597,313.8,4.6514893,11.81175],[429.55945,313.8,2.9085083,11.81175],[432.45746,313.8,2.9085083,11.81175],[338.8,301.7,2.9085083,11.81175],[341.698,301.7,5.25,11.81175],[346.8955,301.7,5.25,11.81175],[352.1875,301.7,4.6514893,11.81175],[356.88098,301.7,4.6514893,11.81175],[361.47998,301.7,4.6514893,11.81175],[366.17346,301.7,5.25,11.81175]]},{"id":27,"stringIdxToPositionIdx":[0,1,2,3,4,5,6,7,8,9,9,10,11,12,13,14,15,16,17,18,19,20],"positions":[[458.7,313.8,7.5809937,11.81175],[466.197,313.8,5.25,11.81175],[471.48898,313.8,2.9085083,11.81175],[474.387,313.8,5.25,11.81175],[479.5845,313.8,4.6514893,11.81175],[484.27798,313.8,5.25,11.81175],[489.56998,313.8,2.9085083,11.81175],[492.468,313.8,2.9085083,11.81175],[495.366,313.8,4.6514893,11.81175],[502.66348,313.8,7.5809937,11.81175],[510.25497,313.8,2.9084778,11.81175],[513.15295,313.8,4.6514893,11.81175],[517.75195,313.8,5.25,11.81175],[523.04395,313.8,5.25,11.81175],[528.24146,313.8,5.25,11.81175],[533.53345,313.8,4.0844727,11.81175],[537.6179,313.8,2.9085083,11.81175],[540.5159,313.8,2.9085083,11.81175],[543.41394,313.8,4.6514893,11.81175],[548.1074,313.8,4.0844727,11.81175]]},{"id":28,"stringIdxToPositionIdx":[0,1,2,3,4,5],"positions":[[79.8,284.0,6.404999,11.81175],[86.205,284.0,6.404999,11.81175],[92.61,284.0,2.9085007,11.81175],[95.508,284.0,5.25,11.81175],[100.8,284.0,5.25,11.81175]]},{"id":29,"stringIdxToPositionIdx":[0,1,2,3,4,5,5,6,7],"positions":[[146.8,284.0,5.8379974,11.81175],[152.596,284.0,4.6515045,11.81175],[157.2895,284.0,5.25,11.81175],[162.487,284.0,4.6515045,11.81175],[167.18051,284.0,3.4965057,11.81175],[172.77702,284.0,7.5809937,11.81175],[180.36852,284.0,2.625,11.81175]]},{"id":30,"stringIdxToPositionIdx":[0,1,2,3,4],"positions":[[217.1,284.0,5.25,11.81175],[222.2975,284.0,5.25,11.81175],[227.58951,284.0,5.25,11.81175],[232.787,284.0,5.25,11.81175]]},{"id":31,"stringIdxToPositionIdx":[0,1,2,3,4,5,6,6,7,8,9,10,11,11,12,13,13,14,15,16,16,17,18,19,20,20,21,22,23,24,25,25,26,27,27,28,29,30,31,32,33,34,34,35,36,37,38,39,40,41,42,43,44,45],"positions":[[270.1,284.0,5.8380127,11.81175],[275.89603,284.0,5.25,11.81175],[281.09354,284.0,4.6514893,11.81175],[285.78702,284.0,2.9085083,11.81175],[288.68503,284.0,4.6514893,11.81175],[293.3785,284.0,2.9085083,11.81175],[298.88052,284.0,8.158508,11.81175],[307.07053,284.0,4.6514893,11.81175],[311.66953,284.0,5.25,11.81175],[316.96152,284.0,2.9085083,11.81175],[319.85953,284.0,4.6514893,11.81175],[327.157,284.0,2.9085083,11.81175],[330.05502,284.0,4.084503,11.81175],[336.74353,284.0,2.9085083,11.81175],[339.64154,284.0,5.25,11.81175],[344.93353,284.0,4.6514893,11.81175],[352.23102,284.0,3.4964905,11.81175],[355.7275,284.0,4.6514893,11.81175],[360.3265,284.0,4.6514893,11.81175],[365.02,284.0,2.9085083,11.81175],[370.606,284.0,4.6514893,11.81175],[375.205,284.0,4.6514893,11.81175],[379.89847,284.0,5.25,11.81175],[385.09598,284.0,4.084503,11.81175],[389.18048,284.0,4.6514893,11.81175],[396.47797,284.0,5.25,11.81175],[401.67548,284.0,3.4964905,11.81175],[407.85995,284.0,2.9085083,11.81175],[410.66345,284.0,4.6514893,11.81175],[415.35693,284.0,4.6514893,11.81175],[419.95593,284.0,5.25,11.81175],[425.24792,284.0,4.6514893,11.81175],[429.9414,284.0,5.25,11.81175],[435.13892,284.0,4.6514893,11.81175],[331.3,271.90002,5.25,11.81175],[336.4975,271.90002,4.6514893,11.81175],[341.19098,271.90002,5.25,11.81175],[346.3885,271.90002,3.4964905,11.81175],[349.88498,271.90002,4.6514893,11.81175],[354.57846,271.90002,4.084503,11.81175],[358.66296,271.90002,4.084503,11.81175],[362.74747,271.90002,2.9085083,11.81175],[365.55096,271.90002,5.25,11.81175],[370.84296,271.90002,5.25,11.81175],[376.13495,271.90002,2.625,11.81175]]},{"id":32,"stringIdxToPositionIdx":[0,1,2,3,4,5,6,6,7,8,9,10,11,12,13,14,15,16,17],"positions":[[466.4,284.0,6.404999,11.81175],[472.1015,284.0,5.25,11.81175],[477.3935,284.0,3.4964905,11.81175],[480.79547,284.0,4.6514893,11.81175],[485.48895,284.0,2.9085083,11.81175],[488.38696,284.0,2.9085083,11.81175],[493.9835,284.0,6.9930115,11.81175],[500.882,284.0,5.25,11.81175],[506.17398,284.0,3.4964905,11.81175],[509.67047,284.0,5.25,11.81175],[514.868,284.0,5.25,11.81175],[520.16,284.0,3.496521,11.81175],[523.6565,284.0,4.6514893,11.81175],[528.35,284.0,2.9085083,11.81175],[531.248,284.0,2.9085083,11.81175],[534.146,284.0,5.25,11.81175],[539.3435,284.0,5.25,11.81175]]},{"id":33,"stringIdxToPositionIdx":[0,1,2,3,4,4,5,6,7,8,9,10,10,11,12,13,14,15,16,17,18,19,20,21,21,22,23,23,24,25,26,26,27,28,28,29,30,30,31,32,33,33,34,35,36,37,38],"positions":[[56.8,692.1,10.1802025,13.867801],[66.9802,692.1,8.600998,13.867801],[75.5812,692.1,3.9057007,13.867801],[79.4869,692.1,7.8395996,13.867801],[91.274506,692.1,7.8395996,13.867801],[99.07181,692.1,7.8395996,13.867801],[106.86911,692.1,3.9057007,13.867801],[110.77481,692.1,7.8395996,13.867801],[118.65671,692.1,7.8395996,13.867801],[126.45401,692.1,4.6952972,13.867801],[135.05501,692.1,10.180206,13.867801],[145.23521,692.1,7.8395996,13.867801],[153.03252,692.1,8.600998,13.867801],[161.71811,692.1,7.8395996,13.867801],[169.51541,692.1,7.8395996,13.867801],[177.31271,692.1,4.6952972,13.867801],[182.00801,692.1,3.9057007,13.867801],[185.91371,692.1,10.180206,13.867801],[196.09392,692.1,3.9057007,13.867801],[199.99962,692.1,8.600998,13.867801],[208.60062,692.1,4.6952972,13.867801],[217.28621,692.1,3.9057007,13.867801],[221.19191,692.1,4.6952972,13.867801],[229.79291,692.1,10.180206,13.867801],[239.97311,692.1,8.600998,13.867801],[248.57411,692.1,8.600998,13.867801],[260.88342,692.1,8.601013,13.867801],[269.48444,692.1,5.484894,13.867801],[278.87503,692.1,10.180206,13.867801],[289.05524,692.1,8.601013,13.867801],[305.27026,692.1,10.955688,13.867801],[316.25415,692.1,7.8395996,13.867801],[324.05145,692.1,7.8395996,13.867801],[335.83905,692.1,4.6953125,13.867801],[340.53436,692.1,8.601013,13.867801],[349.13538,692.1,8.601013,13.867801],[357.7364,692.1,8.601013,13.867801],[366.3374,692.1,8.601013,13.867801]]},{"id":34,"stringIdxToPositionIdx":[0,1,2,3,4,5,6,6,7,8,9,10,10,11,12,13,14,15,16,17,18,19,20,20,21,22,23,24,25,25,26,27,27,28,29,30,30,31,32,33,34,34,35,36,37,38,38,39,40,41,42,43,44,45,46,47,48,48,49,50,51,52,53,53,54,55,55,56,57,57,58,59,60,61,62,63,64,65,66,67,68,68,69,70,71,72,73,74,75,76,77,78,78,79,80,81,82,83,83,84,85,86,86,87,88,89,90,91,92,93,93,94,95,96,97,98,98,99,100,101,102,103,104,105,106,107,108,108,109,110,111,112,113,114,115,116,117,118,118,119,120,121,122,123,123,124,125,125,126,127,128,129,130,131,132,132,133,134,135,136,137],"positions":[[56.8,673.8,6.1000023,11.535],[62.9,673.8,4.4300003,11.535],[67.3,673.8,5.0,11.535],[72.3,673.8,5.0,11.535],[77.3,673.8,4.4300003,11.535],[81.700005,673.8,2.7699966,11.535],[86.99,673.8,6.659996,11.535],[93.67999,673.8,5.0,11.535],[98.67999,673.8,4.4300003,11.535],[103.079994,673.8,5.0,11.535],[110.66999,673.8,6.0999985,11.535],[115.66999,673.8,4.4300003,11.535],[120.06999,673.8,3.8899994,11.535],[123.95999,673.8,2.7699966,11.535],[126.749985,673.8,4.4299927,11.535],[131.14998,673.8,5.0,11.535],[136.14998,673.8,3.8899994,11.535],[140.03998,673.8,5.0,11.535],[145.03998,673.8,2.7700043,11.535],[147.82999,673.8,4.4299927,11.535],[154.72998,673.8,5.0,11.535],[159.72998,673.8,2.7700043,11.535],[162.51999,673.8,5.0,11.535],[167.51999,673.8,5.0,11.535],[172.51999,673.8,4.4299927,11.535],[179.41998,673.8,2.7700043,11.535],[182.20999,673.8,3.8899994,11.535],[188.59999,673.8,5.5599976,11.535],[193.19998,673.8,4.4299927,11.535],[197.59998,673.8,3.8899994,11.535],[56.8,662.2,7.2199974,11.535],[63.999996,662.2,2.7700005,11.535],[66.78999,662.2,5.0,11.535],[71.78999,662.2,2.7699966,11.535],[77.07999,662.2,6.6600037,11.535],[83.67999,662.2,5.0,11.535],[88.67999,662.2,4.4300003,11.535],[93.079994,662.2,5.0,11.535],[100.66999,662.2,6.0999985,11.535],[105.66999,662.2,4.4300003,11.535],[110.06999,662.2,3.8899994,11.535],[113.95999,662.2,2.7699966,11.535],[116.749985,662.2,4.4300003,11.535],[121.14999,662.2,5.0,11.535],[126.14999,662.2,3.890007,11.535],[130.04,662.2,5.0,11.535],[135.04,662.2,2.7700043,11.535],[137.83,662.2,4.4299927,11.535],[144.73,662.2,5.0,11.535],[149.73,662.2,2.7700043,11.535],[152.52,662.2,5.0,11.535],[157.52,662.2,5.0,11.535],[162.52,662.2,4.4299927,11.535],[169.42,662.2,2.7700043,11.535],[172.21,662.2,3.8899994,11.535],[178.6,662.2,6.6600037,11.535],[185.29001,662.2,5.0,11.535],[56.8,648.8,7.9920006,12.642],[64.792,648.8,7.3199997,12.642],[72.088,648.8,7.3199997,12.642],[79.383995,648.8,3.3239975,12.642],[82.68399,648.8,8.664001,12.642],[91.371994,648.8,3.3239975,12.642],[94.75599,648.8,3.3239975,12.642],[98.055984,648.8,6.0,12.642],[104.055984,648.8,6.0,12.642],[110.055984,648.8,6.0,12.642],[116.055984,648.8,3.3239975,12.642],[122.35598,648.8,6.0000076,12.642],[128.35599,648.8,3.3240051,12.642],[131.73999,648.8,5.3159943,12.642],[137.04399,648.8,3.3240051,12.642],[140.344,648.8,3.3240051,12.642],[143.644,648.8,6.0,12.642],[149.644,648.8,6.0,12.642],[155.644,648.8,5.3159943,12.642],[160.948,648.8,3.9960022,12.642],[164.944,648.8,6.0,12.642],[174.028,648.8,5.3159943,12.642],[179.332,648.8,6.0,12.642],[185.332,648.8,3.3240051,12.642],[188.632,648.8,3.9960022,12.642],[192.628,648.8,6.0,12.642],[56.8,635.0,7.9920006,12.642],[64.792,635.0,7.3199997,12.642],[72.088,635.0,7.3199997,12.642],[81.988,635.0,8.664001,12.642],[90.676,635.0,3.3239975,12.642],[93.976,635.0,3.3239975,12.642],[97.27599,635.0,6.0,12.642],[103.27599,635.0,6.0,12.642],[109.27599,635.0,6.0,12.642],[115.27599,635.0,3.3239975,12.642],[121.65999,635.0,6.671997,12.642],[128.34398,635.0,3.3240051,12.642],[131.64398,635.0,5.3159943,12.642],[136.94798,635.0,4.6679993,12.642],[141.63998,635.0,6.0,12.642],[56.8,621.2,7.9920006,12.642],[64.792,621.2,7.3199997,12.642],[72.088,621.2,3.3239975,12.642],[75.38799,621.2,8.664001,12.642],[84.076,621.2,3.3239975,12.642],[87.37599,621.2,3.3239975,12.642],[90.67599,621.2,6.0,12.642],[96.67599,621.2,6.0,12.642],[102.67599,621.2,6.0,12.642],[108.75999,621.2,3.3239975,12.642],[115.05998,621.2,6.0,12.642],[121.05998,621.2,3.3239975,12.642],[124.35998,621.2,5.316002,12.642],[129.74799,621.2,3.3240051,12.642],[133.04799,621.2,3.3240051,12.642],[136.34799,621.2,6.0,12.642],[142.34799,621.2,6.0,12.642],[148.34799,621.2,5.3159943,12.642],[153.652,621.2,3.9960022,12.642],[157.648,621.2,6.0,12.642],[166.732,621.2,5.3159943,12.642],[172.036,621.2,6.0,12.642],[178.036,621.2,3.3240051,12.642],[181.336,621.2,3.9960022,12.642],[185.332,621.2,6.0,12.642],[56.8,607.4,7.9920006,12.642],[64.792,607.4,7.3199997,12.642],[74.692,607.4,8.664001,12.642],[83.380005,607.4,3.3239975,12.642],[86.68,607.4,3.3239975,12.642],[89.979996,607.4,6.0,12.642],[95.979996,607.4,6.0,12.642],[101.979996,607.4,6.0,12.642],[107.979996,607.4,3.3239975,12.642],[114.27999,607.4,6.671997,12.642],[120.96399,607.4,3.3239975,12.642],[124.263985,607.4,5.316002,12.642],[129.568,607.4,4.6679993,12.642],[134.26,607.4,6.0,12.642]]},{"id":35,"stringIdxToPositionIdx":[0,1,2,3,4,5,6,7,8,8,9,10,11,12,13,14,15,16,17,18,18,19,20,21,22,23,23,24,25,26,27,27,28,29,30,31,31,32,33,34,35,36,36,37,38,39,39,40,41,42,43,43,44,45,46,47,48,49,50,51,52,53,53,54,55,56,57,58,58,59,60,61,62,62,63,64,65,66,67,68,69,69,70,71,72,73,74,74,75,76,77,78,79,80,81,81,82,83,84,85,86,87,88,89,90,91,91,92,93,94,95,96,96,97,98,99,100,100,101,102,103,104,104,105,106,107,108,109,109,110,111,111,112,113,114,115,115,116,117,118,119,120,121,122,123,124,125,125,126,127,128,129,130,130,131,132,133,134,134,135,136,137,138,139,140,141,141,142,143,144,145,146],"positions":[[56.8,579.8,7.9920006,12.642],[64.792,579.8,7.3199997,12.642],[72.088,579.8,7.3199997,12.642],[79.383995,579.8,3.3239975,12.642],[82.68399,579.8,8.664001,12.642],[91.371994,579.8,3.3239975,12.642],[94.75599,579.8,3.3239975,12.642],[98.055984,579.8,6.0,12.642],[107.055984,579.8,6.0,12.642],[113.055984,579.8,3.3239975,12.642],[116.35598,579.8,5.316002,12.642],[121.74398,579.8,3.3239975,12.642],[125.043976,579.8,3.3240051,12.642],[128.34398,579.8,6.0,12.642],[134.34398,579.8,6.0,12.642],[140.34398,579.8,5.3159943,12.642],[145.64798,579.8,3.9960022,12.642],[149.64398,579.8,6.0,12.642],[158.72798,579.8,5.3159943,12.642],[164.03198,579.8,6.0,12.642],[170.03198,579.8,3.3240051,12.642],[173.33199,579.8,3.9960022,12.642],[177.32799,579.8,6.0,12.642],[186.32799,579.8,6.0,12.642],[192.32799,579.8,6.0,12.642],[198.32799,579.8,6.0,12.642],[204.32799,579.8,6.0,12.642],[213.32799,579.8,8.664001,12.642],[222.01599,579.8,3.3240051,12.642],[225.316,579.8,3.3240051,12.642],[228.616,579.8,6.0,12.642],[237.7,579.8,6.671997,12.642],[244.38399,579.8,3.3240051,12.642],[247.68399,579.8,5.3159943,12.642],[252.98799,579.8,4.6680145,12.642],[257.68,579.8,6.0,12.642],[56.8,566.0,7.9920006,12.642],[64.792,566.0,7.3199997,12.642],[72.088,566.0,7.3199997,12.642],[81.988,566.0,8.664001,12.642],[90.676,566.0,3.3239975,12.642],[93.976,566.0,3.3239975,12.642],[97.27599,566.0,6.0,12.642],[106.27599,566.0,6.0,12.642],[112.27599,566.0,3.3239975,12.642],[115.57599,566.0,5.316002,12.642],[120.96399,566.0,3.3239975,12.642],[124.263985,566.0,3.3239975,12.642],[127.56398,566.0,6.0,12.642],[133.56398,566.0,6.0,12.642],[139.56398,566.0,5.3159943,12.642],[144.86798,566.0,3.9960022,12.642],[148.86398,566.0,6.0,12.642],[157.94798,566.0,5.3159943,12.642],[163.25198,566.0,6.0,12.642],[169.25198,566.0,3.3240051,12.642],[172.55199,566.0,3.9960022,12.642],[176.54799,566.0,6.0,12.642],[185.54799,566.0,6.0,12.642],[191.54799,566.0,6.0,12.642],[197.54799,566.0,6.0,12.642],[203.54799,566.0,6.0,12.642],[212.54799,566.0,8.664001,12.642],[221.236,566.0,3.3240051,12.642],[224.536,566.0,3.3240051,12.642],[227.836,566.0,6.0,12.642],[233.836,566.0,6.0,12.642],[239.836,566.0,6.0,12.642],[245.92,566.0,3.3240051,12.642],[252.22,566.0,6.671997,12.642],[258.904,566.0,3.3240051,12.642],[262.204,566.0,5.3160095,12.642],[267.50803,566.0,4.6679993,12.642],[272.2,566.0,6.0,12.642],[56.8,552.2,7.9920006,12.642],[64.792,552.2,7.3199997,12.642],[72.088,552.2,3.3239975,12.642],[75.38799,552.2,8.664001,12.642],[84.076,552.2,3.3239975,12.642],[87.37599,552.2,3.3239975,12.642],[90.67599,552.2,6.0,12.642],[99.75999,552.2,6.0,12.642],[105.75999,552.2,3.3239975,12.642],[109.05998,552.2,5.316002,12.642],[114.36398,552.2,3.3239975,12.642],[117.74798,552.2,3.3239975,12.642],[121.04797,552.2,6.0,12.642],[127.04797,552.2,6.0,12.642],[133.04797,552.2,5.3159943,12.642],[138.35197,552.2,3.9960022,12.642],[142.34798,552.2,6.0,12.642],[151.34798,552.2,5.3159943,12.642],[156.65198,552.2,6.0,12.642],[162.65198,552.2,3.3240051,12.642],[165.95198,552.2,3.9960022,12.642],[169.94798,552.2,6.0,12.642],[179.03198,552.2,6.0,12.642],[185.03198,552.2,6.0,12.642],[191.03198,552.2,6.0,12.642],[197.03198,552.2,6.0,12.642],[206.03198,552.2,8.664001,12.642],[214.71999,552.2,3.3240051,12.642],[218.01999,552.2,3.3240051,12.642],[221.31999,552.2,6.0,12.642],[230.31999,552.2,6.671997,12.642],[237.00398,552.2,3.3240051,12.642],[240.30399,552.2,5.3159943,12.642],[245.60799,552.2,4.6679993,12.642],[250.29999,552.2,6.0,12.642],[56.8,538.4,7.9920006,12.642],[64.792,538.4,7.3199997,12.642],[74.692,538.4,8.664001,12.642],[83.380005,538.4,3.3239975,12.642],[86.68,538.4,3.3239975,12.642],[89.979996,538.4,6.0,12.642],[98.979996,538.4,6.0,12.642],[104.979996,538.4,3.3239975,12.642],[108.27999,538.4,5.316002,12.642],[113.58399,538.4,3.3239975,12.642],[116.96799,538.4,3.3239975,12.642],[120.26798,538.4,6.0,12.642],[126.26798,538.4,5.9999924,12.642],[132.26797,538.4,5.3159943,12.642],[137.57198,538.4,3.9960022,12.642],[141.56798,538.4,6.0,12.642],[150.56798,538.4,5.3159943,12.642],[155.87198,538.4,6.0,12.642],[161.95598,538.4,3.3240051,12.642],[165.25598,538.4,3.9960022,12.642],[169.25198,538.4,6.0,12.642],[178.25198,538.4,6.0,12.642],[184.25198,538.4,6.0,12.642],[190.25198,538.4,6.0,12.642],[196.25198,538.4,6.0,12.642],[205.25198,538.4,8.664001,12.642],[213.93999,538.4,3.3240051,12.642],[217.23999,538.4,3.3240051,12.642],[220.54,538.4,6.0,12.642],[226.54,538.4,6.0,12.642],[232.54,538.4,6.0,12.642],[238.54,538.4,3.3240051,12.642],[244.924,538.4,6.671997,12.642],[251.60799,538.4,3.3240051,12.642],[254.90799,538.4,5.3160095,12.642],[260.212,538.4,4.6679993,12.642],[264.904,538.4,6.0,12.642]]},{"id":36,"stringIdxToPositionIdx":[0,1,2,3,4,4,5,6,7,8,9,10,10,11,12,13,14,15,16,16,17,18,19,19,20,21,22,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,36,37,38,39,39,40,41,41,42,43,44],"positions":[[56.8,488.0,10.1802025,13.867801],[66.9802,488.0,8.600998,13.867801],[75.5812,488.0,3.9057007,13.867801],[79.4869,488.0,7.8395996,13.867801],[91.274506,488.0,7.8395996,13.867801],[99.07181,488.0,7.8395996,13.867801],[106.86911,488.0,3.9057007,13.867801],[110.77481,488.0,7.8395996,13.867801],[118.65671,488.0,7.8395996,13.867801],[126.45401,488.0,4.6952972,13.867801],[135.05501,488.0,10.180206,13.867801],[145.23521,488.0,7.8395996,13.867801],[153.03252,488.0,8.600998,13.867801],[161.71811,488.0,7.8395996,13.867801],[169.51541,488.0,7.8395996,13.867801],[177.31271,488.0,4.6952972,13.867801],[185.9983,488.0,7.8395996,13.867801],[193.79561,488.0,8.600998,13.867801],[202.3966,488.0,8.600998,13.867801],[214.9879,488.0,7.8395996,13.867801],[222.7852,488.0,8.600998,13.867801],[231.3862,488.0,8.600998,13.867801],[243.9775,488.0,5.484894,13.867801],[249.46239,488.0,7.839615,13.867801],[257.2597,488.0,7.8395996,13.867801],[265.057,488.0,8.601013,13.867801],[273.65802,488.0,12.534912,13.867801],[286.24933,488.0,12.534912,13.867801],[298.75604,488.0,7.8395996,13.867801],[306.55334,488.0,8.601013,13.867801],[315.15436,488.0,8.601013,13.867801],[323.83997,488.0,7.8395996,13.867801],[331.63727,488.0,4.6953125,13.867801],[336.33258,488.0,3.9057007,13.867801],[340.23828,488.0,8.601013,13.867801],[348.8393,488.0,8.601013,13.867801],[361.4306,488.0,4.6953125,13.867801],[366.12592,488.0,8.601013,13.867801],[374.72693,488.0,5.484894,13.867801],[384.11752,488.0,7.8395996,13.867801],[391.91483,488.0,4.6953125,13.867801],[400.51584,488.0,7.8395996,13.867801],[408.39774,488.0,3.9057007,13.867801],[412.30344,488.0,3.9057007,13.867801]]},{"id":37,"stringIdxToPositionIdx":[0,1,2,3,4,5,6,6,7,8,9,10,10,11,12,13,14,15,16,17,18,19,20,20,21,22,23,24,25,26,27,28,29,29,30,31,32,32,33,34,35,35,36,37,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,51,52,53,54,54,55,56,57,58,59,60,61,61,62,63,63,64,65,66,67,68,69,70,71,72,73,73,74,75,76,77,78,78,79,80,80,81,82,83,83,84,84,85,86,86,87,88,89,90,91,91,92,93,94,95,96,96,97,98,99,100,101,101,102,103,104,104,105,106,107,108,109,109,110,111,112,113,114,115,116,117,118,119,120,120,121,122,123,124,125,126,127,128,129,130,130,131,132,133,134,134,135,136,137,138,139,140,141,141,142,143,143,144,145,145,146,147,148,148,149,150,150,151,152,153,154,155,156,157,157,158,159,160,161,162,163,163,164,165,166,167,168,169,170,171,172,173,173,174,175,175,176,177,178,179,180,181,181,182,183,183,184,185,186,187,188,189,189,190,191,192,193,194,194,195,196,197,198,199,200,200,201,202,203,204,205,206,207,207,208,209,209,210,211,212,212,213,214,215,216,217,218,219,220,221,221,222,223,223,224,225,226,227,228,228,229,230,231,232,233,233,234,235,236,237,238,239],"positions":[[56.8,469.7,6.1000023,11.535],[62.9,469.7,4.4300003,11.535],[67.3,469.7,5.0,11.535],[72.3,469.7,5.0,11.535],[77.3,469.7,4.4300003,11.535],[81.700005,469.7,2.7699966,11.535],[86.99,469.7,5.5599976,11.535],[91.689995,469.7,4.4300003,11.535],[96.09,469.7,3.8899994,11.535],[99.979996,469.7,7.220001,11.535],[109.68,469.7,5.5599976,11.535],[115.27,469.7,7.220001,11.535],[122.47,469.7,4.4300003,11.535],[126.87,469.7,3.890007,11.535],[130.76001,469.7,2.7700043,11.535],[133.55002,469.7,3.8899994,11.535],[137.05002,469.7,4.4299927,11.535],[141.54001,469.7,4.4299927,11.535],[145.94,469.7,5.5599976,11.535],[151.53,469.7,2.5,11.535],[156.53,469.7,5.5599976,11.535],[162.12,469.7,8.330002,11.535],[170.42,469.7,4.4299927,11.535],[174.81999,469.7,2.7700043,11.535],[177.61,469.7,5.0,11.535],[182.61,469.7,5.0,11.535],[187.61,469.7,2.7700043,11.535],[190.40001,469.7,4.4299927,11.535],[194.8,469.7,5.5599976,11.535],[202.89,469.7,5.0,11.535],[207.89,469.7,5.0,11.535],[212.89,469.7,5.0,11.535],[220.39,469.7,5.0,11.535],[225.39,469.7,5.0,11.535],[230.39,469.7,5.0,11.535],[237.89,469.7,2.7700043,11.535],[240.68001,469.7,5.0,11.535],[248.18001,469.7,6.100006,11.535],[254.28001,469.7,4.430008,11.535],[258.68002,469.7,4.4299927,11.535],[263.08002,469.7,5.0,11.535],[268.08002,469.7,7.220001,11.535],[275.28003,469.7,7.220001,11.535],[282.57004,469.7,4.4299927,11.535],[286.97003,469.7,5.0,11.535],[291.97003,469.7,5.0,11.535],[296.97003,469.7,5.0,11.535],[301.97003,469.7,2.769989,11.535],[304.76,469.7,2.769989,11.535],[307.55,469.7,5.0,11.535],[312.55,469.7,5.0,11.535],[320.05,469.7,6.6600037,11.535],[326.74,469.7,6.100006,11.535],[332.84,469.7,3.3299866,11.535],[338.43997,469.7,6.100006,11.535],[344.53998,469.7,5.0,11.535],[349.53998,469.7,2.769989,11.535],[352.32996,469.7,5.0,11.535],[357.32996,469.7,5.0,11.535],[362.32996,469.7,3.8900146,11.535],[366.21997,469.7,3.8900146,11.535],[372.61,469.7,2.769989,11.535],[375.30997,469.7,2.769989,11.535],[380.59995,469.7,6.100006,11.535],[385.59995,469.7,4.4299927,11.535],[389.99994,469.7,3.8900146,11.535],[393.88995,469.7,2.769989,11.535],[396.67993,469.7,4.4299927,11.535],[401.07993,469.7,5.0,11.535],[406.07993,469.7,3.8900146,11.535],[409.96994,469.7,5.0,11.535],[414.96994,469.7,2.769989,11.535],[417.75992,469.7,4.4299927,11.535],[424.7499,469.7,5.0,11.535],[429.7499,469.7,2.769989,11.535],[432.5399,469.7,5.0,11.535],[437.5399,469.7,5.0,11.535],[442.5399,469.7,4.4299927,11.535],[449.43988,469.7,2.769989,11.535],[452.22986,469.7,3.8900146,11.535],[458.61987,469.7,5.5599976,11.535],[463.21988,469.7,4.4299927,11.535],[467.61987,469.7,3.8900146,11.535],[474.0099,469.7,7.769989,11.535],[484.29987,469.7,6.6600037,11.535],[490.98987,469.7,5.0,11.535],[56.8,456.3,7.3200035,12.642],[64.096,456.3,6.0,12.642],[70.096,456.3,3.9960022,12.642],[74.092,456.3,5.316002,12.642],[79.396,456.3,9.3239975,12.642],[91.78,456.3,3.3239975,12.642],[95.079994,456.3,6.0,12.642],[101.079994,456.3,4.6679993,12.642],[105.771996,456.3,6.0,12.642],[111.771996,456.3,9.3239975,12.642],[124.07199,456.3,6.0,12.642],[130.07199,456.3,6.0,12.642],[136.07199,456.3,3.3240051,12.642],[139.372,456.3,6.0,12.642],[145.372,456.3,3.9960022,12.642],[152.368,456.3,4.6679993,12.642],[157.06,456.3,3.3240051,12.642],[160.36,456.3,3.3240051,12.642],[166.744,456.3,5.3159943,12.642],[172.048,456.3,9.324005,12.642],[181.348,456.3,5.3159943,12.642],[186.65201,456.3,3.3240051,12.642],[189.95201,456.3,3.0,12.642],[196.03601,456.3,5.3159943,12.642],[201.34001,456.3,6.0,12.642],[207.34001,456.3,6.0,12.642],[213.34001,456.3,4.6679993,12.642],[218.03201,456.3,5.3159943,12.642],[223.33601,456.3,5.3159943,12.642],[228.64001,456.3,3.3240051,12.642],[231.94002,456.3,5.3159943,12.642],[237.32802,456.3,3.3240051,12.642],[240.62802,456.3,6.0,12.642],[246.62802,456.3,3.9960022,12.642],[253.62402,456.3,5.3160095,12.642],[258.92804,456.3,6.0,12.642],[264.92804,456.3,3.3240051,12.642],[268.22806,456.3,6.0,12.642],[274.31207,456.3,3.3240051,12.642],[277.6121,456.3,4.6679993,12.642],[282.30408,456.3,5.3160095,12.642],[287.6081,456.3,3.3240051,12.642],[290.9081,456.3,6.0,12.642],[296.9081,456.3,6.0,12.642],[305.9081,456.3,5.3160095,12.642],[311.21213,456.3,3.3240051,12.642],[314.59613,456.3,3.3240051,12.642],[317.89615,456.3,3.3240051,12.642],[324.28015,456.3,8.664001,12.642],[332.96814,456.3,5.3160095,12.642],[338.16415,456.3,4.6679993,12.642],[342.85614,456.3,3.3240051,12.642],[346.15616,456.3,3.9960022,12.642],[350.15216,456.3,5.3160095,12.642],[355.54016,456.3,5.3160095,12.642],[363.84418,456.3,5.3160095,12.642],[369.1482,456.3,3.3240051,12.642],[375.5322,456.3,5.3160095,12.642],[380.8362,456.3,3.3240051,12.642],[387.13623,456.3,4.6679993,12.642],[391.82822,456.3,5.3160095,12.642],[397.13223,456.3,6.0,12.642],[406.13223,456.3,6.0,12.642],[412.13223,456.3,6.0,12.642],[421.13223,456.3,5.3160095,12.642],[426.43625,456.3,3.3240051,12.642],[429.73627,456.3,6.0,12.642],[435.73627,456.3,4.6679993,12.642],[440.42825,456.3,9.324005,12.642],[449.72827,456.3,6.0,12.642],[455.72827,456.3,6.0,12.642],[464.8123,456.3,3.3240051,12.642],[468.1123,456.3,5.3160095,12.642],[473.41632,456.3,9.324005,12.642],[482.71634,456.3,6.0,12.642],[488.71634,456.3,6.0,12.642],[494.71634,456.3,3.9960022,12.642],[501.80835,456.3,3.3240051,12.642],[505.10837,456.3,6.0,12.642],[511.10837,456.3,5.3160095,12.642],[516.41235,456.3,3.3239746,12.642],[519.71234,456.3,6.0,12.642],[525.71234,456.3,3.3239746,12.642],[529.0123,456.3,6.0,12.642],[535.0123,456.3,6.0,12.642],[541.0123,456.3,6.0,12.642],[547.0963,456.3,3.3239746,12.642],[56.8,442.5,6.0,12.642],[62.8,442.5,3.3240013,12.642],[69.1,442.5,3.3239975,12.642],[72.399994,442.5,5.316002,12.642],[77.703995,442.5,6.0,12.642],[83.703995,442.5,6.0,12.642],[89.703995,442.5,3.9960022,12.642],[93.7,442.5,5.316002,12.642],[102.088,442.5,5.316002,12.642],[107.392,442.5,3.3239975,12.642],[113.77599,442.5,6.0,12.642],[119.77599,442.5,6.0,12.642],[125.77599,442.5,3.3239975,12.642],[129.07599,442.5,6.0,12.642],[135.07599,442.5,3.9960022,12.642],[139.07199,442.5,5.3159943,12.642],[147.37599,442.5,9.324005,12.642],[156.676,442.5,5.3159943,12.642],[161.98,442.5,6.0,12.642],[167.98,442.5,6.0,12.642],[173.98,442.5,5.3159943,12.642],[182.368,442.5,5.3159943,12.642],[187.672,442.5,3.3240051,12.642],[190.972,442.5,3.3240051,12.642],[194.272,442.5,6.0,12.642],[200.272,442.5,6.0,12.642],[206.356,442.5,5.3159943,12.642],[214.66,442.5,10.667999,12.642],[225.352,442.5,5.3159943,12.642],[230.656,442.5,3.3240051,12.642],[233.95601,442.5,5.3159943,12.642],[239.26001,442.5,6.0,12.642],[245.26001,442.5,3.3240051,12.642],[248.64401,442.5,5.3159943,12.642],[256.948,442.5,5.3160095,12.642],[262.252,442.5,3.3240051,12.642],[268.63602,442.5,5.3160095,12.642],[273.94003,442.5,3.3240051,12.642],[277.24005,442.5,3.0,12.642],[283.24005,442.5,7.9920044,12.642],[291.23206,442.5,5.3160095,12.642],[296.53607,442.5,3.9960022,12.642],[300.53207,442.5,5.3160095,12.642],[305.8361,442.5,3.9960022,12.642],[309.9281,442.5,5.3160095,12.642],[315.23212,442.5,6.0,12.642],[321.23212,442.5,5.3160095,12.642],[326.53613,442.5,5.3160095,12.642],[334.92413,442.5,8.664001,12.642],[343.52814,442.5,6.0,12.642],[352.52814,442.5,6.0,12.642],[358.52814,442.5,6.0,12.642],[364.52814,442.5,6.0,12.642],[370.52814,442.5,6.0,12.642],[376.52814,442.5,6.0,12.642],[385.52814,442.5,7.3200073,12.642],[392.82416,442.5,6.0,12.642],[398.82416,442.5,3.9960022,12.642],[402.82016,442.5,5.3160095,12.642],[408.20816,442.5,9.324005,12.642],[420.50818,442.5,3.3240051,12.642],[423.8082,442.5,6.0,12.642],[429.8082,442.5,4.6679993,12.642],[434.50018,442.5,6.0,12.642],[440.50018,442.5,9.324005,12.642],[449.8002,442.5,3.0,12.642]]},{"id":38,"stringIdxToPositionIdx":[0,1,2,3,4,4,5,6,7,8,9,10,10,11,12,13,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,27,28,29,30,30,31,32,33,34,35,36,37,38,39,39,40,41,41,42,43,44,45,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,61,62,63,64,65,66,67,68,69],"positions":[[56.8,392.1,10.1802025,13.867801],[66.9802,392.1,8.600998,13.867801],[75.5812,392.1,3.9057007,13.867801],[79.4869,392.1,7.8395996,13.867801],[91.274506,392.1,7.8395996,13.867801],[99.07181,392.1,7.8395996,13.867801],[106.86911,392.1,3.9057007,13.867801],[110.77481,392.1,7.8395996,13.867801],[118.65671,392.1,7.8395996,13.867801],[126.45401,392.1,4.6952972,13.867801],[134.54741,392.1,10.180206,13.867801],[144.72762,392.1,8.600998,13.867801],[153.32861,392.1,8.600998,13.867801],[165.9199,392.1,5.484894,13.867801],[171.4048,392.1,7.8395996,13.867801],[179.2021,392.1,7.8395996,13.867801],[186.9994,392.1,8.600998,13.867801],[195.6004,392.1,12.534897,13.867801],[208.1917,392.1,12.534897,13.867801],[220.6984,392.1,7.8395996,13.867801],[228.4957,392.1,8.600998,13.867801],[237.0967,392.1,8.600998,13.867801],[245.78229,392.1,7.8395996,13.867801],[253.57959,392.1,4.6953125,13.867801],[258.2749,392.1,3.9057007,13.867801],[262.1806,392.1,8.601013,13.867801],[270.78162,392.1,8.601013,13.867801],[283.37292,392.1,4.6953125,13.867801],[288.06824,392.1,8.601013,13.867801],[296.66925,392.1,5.484894,13.867801],[305.55225,392.1,10.180206,13.867801],[315.73245,392.1,8.601013,13.867801],[324.33347,392.1,8.601013,13.867801],[332.93448,392.1,5.484894,13.867801],[338.41937,392.1,7.8395996,13.867801],[346.21667,392.1,7.8395996,13.867801],[354.01398,392.1,7.8395996,13.867801],[361.89587,392.1,7.8395996,13.867801],[369.69318,392.1,7.8395996,13.867801],[381.48077,392.1,3.9057007,13.867801],[385.38647,392.1,8.601013,13.867801],[397.8932,392.1,8.601013,13.867801],[405.4931,392.1,7.8395996,13.867801],[413.2904,392.1,7.8395996,13.867801],[421.0877,392.1,4.6953125,13.867801],[429.77332,392.1,10.955688,13.867801],[440.6726,392.1,5.484894,13.867801],[446.1575,392.1,8.601013,13.867801],[454.8431,392.1,7.8395996,13.867801],[462.6404,392.1,8.601013,13.867801],[471.24142,392.1,3.9057007,13.867801],[475.14713,392.1,7.8395996,13.867801],[483.02902,392.1,12.534912,13.867801],[495.53574,392.1,3.9057007,13.867801],[499.44144,392.1,10.180206,13.867801],[509.62164,392.1,8.601013,13.867801],[518.22266,392.1,3.9057007,13.867801],[522.12836,392.1,12.534912,13.867801],[534.71967,392.1,7.8395996,13.867801],[542.51697,392.1,3.9057007,13.867801],[546.42267,392.1,7.8395996,13.867801],[56.8,375.9,7.8396034,13.867801],[64.597305,375.9,7.8395996,13.867801],[72.4792,375.9,7.8395996,13.867801],[80.276505,375.9,4.6952972,13.867801],[84.9718,375.9,3.9057007,13.867801],[88.8775,375.9,8.600998,13.867801],[97.4785,375.9,8.600998,13.867801],[106.0795,375.9,7.8395996,13.867801]]},{"id":39,"stringIdxToPositionIdx":[0,1,2,3,4,5,6,7,8,9,9,10,11,12,13,13,14,15,15,16,17,18,19,20,21,22,23,24,25,25,26,27,28,29,30,30,31,32,32,33,34,35,36,36,37,38,39,40,40,41,42,42,43,44,45,46,47,48,49,49,50,51,52,53,54,54,55,56,57,58,59,59,60,61,62,63,64,64,65,66,67,67,68,69,70,71,72,73,74,75,75,76,77,78,79,80,81,81,82,83,84,85,86,87,88,88,89,90,91,92,93,93,94,95,96,97,98,99,100,101,102,103],"positions":[[56.8,357.5,6.1000023,11.535],[62.9,357.5,4.4300003,11.535],[67.3,357.5,4.4300003,11.535],[71.700005,357.5,5.0,11.535],[76.700005,357.5,7.220001,11.535],[83.990005,357.5,7.220001,11.535],[91.19001,357.5,4.4300003,11.535],[95.59001,357.5,5.0,11.535],[100.59001,357.5,5.0,11.535],[108.18001,357.5,5.0,11.535],[113.18001,357.5,5.0,11.535],[118.08001,357.5,2.7699966,11.535],[120.87,357.5,4.4300003,11.535],[127.86,357.5,2.7700043,11.535],[130.56,357.5,2.7700043,11.535],[135.85,357.5,6.100006,11.535],[140.85,357.5,4.4299927,11.535],[145.25,357.5,3.8899994,11.535],[149.14,357.5,2.7700043,11.535],[151.93001,357.5,4.4299927,11.535],[156.33,357.5,5.0,11.535],[161.33,357.5,3.8899994,11.535],[165.22,357.5,5.0,11.535],[170.22,357.5,2.7700043,11.535],[173.01001,357.5,4.4299927,11.535],[180.0,357.5,5.0,11.535],[185.0,357.5,2.7700043,11.535],[187.79001,357.5,5.0,11.535],[192.79001,357.5,5.0,11.535],[197.79001,357.5,4.4299927,11.535],[204.69,357.5,2.7700043,11.535],[207.48001,357.5,3.8899994,11.535],[213.87001,357.5,5.5599976,11.535],[218.47,357.5,4.4299927,11.535],[222.87,357.5,3.8899994,11.535],[226.76,357.5,2.5,11.535],[231.76,357.5,4.4299927,11.535],[236.15999,357.5,2.7700043,11.535],[238.95,357.5,3.8899994,11.535],[242.84,357.5,4.4299927,11.535],[249.82999,357.5,5.0,11.535],[254.82999,357.5,5.0,11.535],[262.33,357.5,5.0,11.535],[267.33,357.5,5.0,11.535],[272.33,357.5,2.769989,11.535],[275.11996,357.5,5.0,11.535],[280.01996,357.5,2.769989,11.535],[282.80994,357.5,5.0,11.535],[287.80994,357.5,5.0,11.535],[56.8,344.1,7.3200035,12.642],[64.096,344.1,6.0,12.642],[70.096,344.1,3.9960022,12.642],[74.092,344.1,5.316002,12.642],[79.396,344.1,9.3239975,12.642],[91.78,344.1,3.3239975,12.642],[95.079994,344.1,6.0,12.642],[101.079994,344.1,4.6679993,12.642],[105.771996,344.1,6.0,12.642],[111.771996,344.1,9.3239975,12.642],[124.07199,344.1,6.0,12.642],[130.07199,344.1,6.0,12.642],[136.07199,344.1,3.3240051,12.642],[139.372,344.1,6.0,12.642],[145.372,344.1,3.9960022,12.642],[152.368,344.1,4.6679993,12.642],[157.06,344.1,3.3240051,12.642],[160.36,344.1,3.3240051,12.642],[166.744,344.1,6.671997,12.642],[173.344,344.1,6.0,12.642],[179.344,344.1,5.3159943,12.642],[184.648,344.1,5.3159943,12.642],[190.036,344.1,3.3240051,12.642],[193.336,344.1,5.3159943,12.642],[198.64,344.1,4.6679993,12.642],[203.332,344.1,3.3240051,12.642],[209.716,344.1,10.667999,12.642],[220.312,344.1,6.0,12.642],[226.312,344.1,6.0,12.642],[232.312,344.1,4.6679993,12.642],[237.004,344.1,5.3159943,12.642],[242.308,344.1,3.3240051,12.642],[248.608,344.1,6.671997,12.642],[255.29199,344.1,6.0,12.642],[261.292,344.1,6.0,12.642],[267.292,344.1,3.9960022,12.642],[271.288,344.1,5.3160095,12.642],[276.592,344.1,5.3160095,12.642],[281.98,344.1,3.3240051,12.642],[56.8,330.3,6.672001,12.642],[63.484,330.3,3.3239975,12.642],[66.784,330.3,5.316002,12.642],[72.088,330.3,3.9960022,12.642],[76.084,330.3,6.0,12.642],[85.084,330.3,3.9960022,12.642],[89.08,330.3,6.0,12.642],[95.08,330.3,6.0,12.642],[101.08,330.3,6.0,12.642],[107.08,330.3,4.6679993,12.642],[111.772,330.3,3.3239975,12.642],[115.072,330.3,3.9960022,12.642],[119.068,330.3,3.3239975,12.642],[122.368,330.3,5.316002,12.642],[127.672,330.3,4.6679993,12.642]]},{"id":40,"stringIdxToPositionIdx":[0,1,2,3,4,4,5,6,7,8,9,9,10,11,12,13,14,15,16,17,18,19,20,21,21,22,23,24,25,26,27,28,29,29,30,31,32,33,34,34,35,36,37,38,39,40,41,41,42,43,44,45,46,46,47,48,49],"positions":[[56.8,279.9,10.1802025,13.867801],[66.9802,279.9,8.600998,13.867801],[75.5812,279.9,3.9057007,13.867801],[79.4869,279.9,7.8395996,13.867801],[91.274506,279.9,7.8395996,13.867801],[99.07181,279.9,7.8395996,13.867801],[106.86911,279.9,3.9057007,13.867801],[110.77481,279.9,7.8395996,13.867801],[118.65671,279.9,7.8395996,13.867801],[130.4443,279.9,4.6952972,13.867801],[135.1396,279.9,7.8395996,13.867801],[142.9369,279.9,8.600998,13.867801],[151.5379,279.9,8.600998,13.867801],[160.1389,279.9,3.9057007,13.867801],[164.0446,279.9,4.6952972,13.867801],[168.7399,279.9,3.9057007,13.867801],[172.6456,279.9,8.600998,13.867801],[181.2466,279.9,8.600998,13.867801],[189.93219,279.9,7.8395996,13.867801],[197.72949,279.9,3.9057007,13.867801],[201.6352,279.9,4.6952972,13.867801],[210.23619,279.9,8.600998,13.867801],[218.92178,279.9,7.8395996,13.867801],[226.71909,279.9,8.600998,13.867801],[235.32008,279.9,7.8395996,13.867801],[243.11739,279.9,4.6952972,13.867801],[247.81268,279.9,3.9057007,13.867801],[251.80298,279.9,7.8395996,13.867801],[259.60028,279.9,7.8395996,13.867801],[271.38788,279.9,8.601013,13.867801],[278.9878,279.9,7.8395996,13.867801],[286.7851,279.9,7.8395996,13.867801],[294.5824,279.9,4.6953125,13.867801],[299.2777,279.9,4.6953125,13.867801],[307.87872,279.9,12.534912,13.867801],[320.38544,279.9,3.9057007,13.867801],[324.37573,279.9,7.8395996,13.867801],[332.17303,279.9,7.8395996,13.867801],[339.97034,279.9,3.9057007,13.867801],[343.87604,279.9,8.601013,13.867801],[352.56165,279.9,8.601013,13.867801],[365.06836,279.9,4.6953125,13.867801],[369.76367,279.9,3.9057007,13.867801],[373.66937,279.9,5.484894,13.867801],[379.15427,279.9,7.8395996,13.867801],[386.95157,279.9,4.6953125,13.867801],[395.63718,279.9,10.180206,13.867801],[405.81738,279.9,7.8395996,13.867801],[413.6147,279.9,7.8395996,13.867801]]},{"id":41,"stringIdxToPositionIdx":[0,1,2,3,4,5,6,7,7,8,9,10,11,12,13,13,14,15,16,17,18,19,19,20,21,22,23,24,25,26,26,27,28,28,29,30,31,32,33,34,35,35,36,37,38,39,40,41,42,43,44,45,46,47,47,48,49,50,51,52,53,54,54,55,56,57,58,59,60,61,62,63,63,64,65,65,66,67,68,68,69,70,71,72,73,73,74,75,76,77,77,78,79,80,81,82,83,83,84,85,86,87,87,88,89,90,91,92,93,94,94,95,96,96,97,98,99,100,101,102,103,103,104,105,106,107,108,108,109,110,111,112,112,113,114,115,116,117,118,119,119,120,121,122,123,123,124,125,126,127,128,129,130,131,131,132,133,134,135,136,137,138,139,139,140,141,142,143,143,144,145,146,147,148,149,149,150,151,152,153,153,154,155,156,157,158,159,160,160,161,162,163,164,165,166,167,167,168,169,170,171,172,172,173,174,175,176,177,178,179,180,180,181,182,183,184,185,186,186,187,188,189,190,191,192,193,194,195,195,196,197,198,199,200,201,202,203,204,205,206,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220],"positions":[[56.8,261.59995,6.66,11.535],[63.399998,261.59995,4.999996,11.535],[68.399994,261.59995,2.7699966,11.535],[71.18999,261.59995,5.0,11.535],[76.18999,261.59995,2.7699966,11.535],[78.97998,261.59995,5.0,11.535],[83.97998,261.59995,5.0,11.535],[91.47998,261.59995,3.8899994,11.535],[95.36998,261.59995,5.0,11.535],[100.36998,261.59995,5.0,11.535],[105.36998,261.59995,5.0,11.535],[110.36998,261.59995,2.7699966,11.535],[113.15997,261.59995,5.0,11.535],[120.65997,261.59995,5.0,11.535],[125.65997,261.59995,5.0,11.535],[130.65997,261.59995,5.0,11.535],[135.65997,261.59995,5.0,11.535],[140.65997,261.59995,4.4299927,11.535],[145.05997,261.59995,5.0,11.535],[152.55997,261.59995,5.0,11.535],[157.55997,261.59995,4.4299927,11.535],[161.95996,261.59995,4.4299927,11.535],[166.35995,261.59995,5.0,11.535],[171.35995,261.59995,5.0,11.535],[176.35995,261.59995,3.8899994,11.535],[180.34996,261.59995,4.4299927,11.535],[187.24995,261.59995,5.0,11.535],[192.24995,261.59995,2.7700043,11.535],[197.53996,261.59995,7.220001,11.535],[204.73996,261.59995,2.7700043,11.535],[207.52997,261.59995,3.8899994,11.535],[211.41997,261.59995,3.8899994,11.535],[215.30997,261.59995,2.7700043,11.535],[218.09998,261.59995,5.0,11.535],[223.09998,261.59995,5.0,11.535],[230.59998,261.59995,2.7700043,11.535],[233.29997,261.59995,2.7700043,11.535],[236.08998,261.59995,3.8899994,11.535],[239.97998,261.59995,3.8899994,11.535],[243.86998,261.59995,2.7700043,11.535],[246.56998,261.59995,2.7700043,11.535],[249.35999,261.59995,3.8899994,11.535],[253.24998,261.59995,4.430008,11.535],[257.74,261.59995,4.4299927,11.535],[262.13998,261.59995,5.0,11.535],[267.13998,261.59995,5.0,11.535],[272.13998,261.59995,5.0,11.535],[279.63998,261.59995,4.4299927,11.535],[284.03998,261.59995,4.4299927,11.535],[288.52997,261.59995,4.4299927,11.535],[292.92996,261.59995,6.6600037,11.535],[299.61996,261.59995,5.0,11.535],[304.61996,261.59995,3.8900146,11.535],[308.11996,261.59995,5.0,11.535],[315.61996,261.59995,5.0,11.535],[320.61996,261.59995,4.4299927,11.535],[325.10995,261.59995,4.4299927,11.535],[329.50995,261.59995,5.0,11.535],[334.50995,261.59995,3.8900146,11.535],[338.00995,261.59995,5.0,11.535],[343.00995,261.59995,2.769989,11.535],[345.79993,261.59995,5.0,11.535],[350.79993,261.59995,5.0,11.535],[358.29993,261.59995,2.769989,11.535],[361.0899,261.59995,5.0,11.535],[368.5899,261.59995,2.769989,11.535],[371.2899,261.59995,5.0,11.535],[376.2899,261.59995,4.4299927,11.535],[383.27988,261.59995,3.8900146,11.535],[387.1699,261.59995,5.0,11.535],[392.1699,261.59995,2.769989,11.535],[394.95987,261.59995,4.4299927,11.535],[399.35986,261.59995,3.8900146,11.535],[56.8,248.20004,8.663998,12.642],[65.404,248.20004,6.0,12.642],[71.404,248.20004,6.0,12.642],[77.404,248.20004,3.3239975,12.642],[83.787994,248.20004,3.9960022,12.642],[87.784,248.20004,5.316002,12.642],[93.088,248.20004,6.0,12.642],[99.088,248.20004,5.316002,12.642],[104.392,248.20004,5.316002,12.642],[109.696,248.20004,3.3239975,12.642],[116.079994,248.20004,6.0,12.642],[122.079994,248.20004,5.316002,12.642],[127.383995,248.20004,3.9959946,12.642],[131.37999,248.20004,5.3159943,12.642],[139.68399,248.20004,6.0,12.642],[145.68399,248.20004,5.3159943,12.642],[150.98799,248.20004,5.3159943,12.642],[156.37599,248.20004,5.3159943,12.642],[161.68,248.20004,6.0,12.642],[167.68,248.20004,4.6679993,12.642],[172.372,248.20004,5.3159943,12.642],[180.676,248.20004,6.0,12.642],[186.676,248.20004,3.9960022,12.642],[193.672,248.20004,9.324005,12.642],[202.972,248.20004,3.3240051,12.642],[206.272,248.20004,4.6679993,12.642],[210.964,248.20004,4.6679993,12.642],[215.656,248.20004,3.3240051,12.642],[218.95601,248.20004,6.0,12.642],[224.95601,248.20004,6.0,12.642],[233.95601,248.20004,3.9960022,12.642],[237.95201,248.20004,3.3240051,12.642],[241.25201,248.20004,3.9960022,12.642],[245.24802,248.20004,4.6679993,12.642],[249.94002,248.20004,3.3240051,12.642],[256.32404,248.20004,6.0,12.642],[262.32404,248.20004,5.3160095,12.642],[267.62805,248.20004,6.0,12.642],[273.62805,248.20004,3.3240051,12.642],[279.92807,248.20004,6.671997,12.642],[286.61206,248.20004,6.0,12.642],[292.61206,248.20004,6.0,12.642],[298.61206,248.20004,3.9960022,12.642],[302.60806,248.20004,5.3160095,12.642],[307.91208,248.20004,5.3160095,12.642],[313.2161,248.20004,3.3240051,12.642],[319.6001,248.20004,8.664001,12.642],[328.2881,248.20004,9.324005,12.642],[337.5881,248.20004,6.0,12.642],[343.5881,248.20004,3.3240051,12.642],[349.88812,248.20004,7.9920044,12.642],[357.88013,248.20004,6.0,12.642],[363.88013,248.20004,6.0,12.642],[369.88013,248.20004,4.6679993,12.642],[374.5721,248.20004,6.0,12.642],[380.5721,248.20004,9.324005,12.642],[389.87213,248.20004,5.3160095,12.642],[395.17615,248.20004,3.9960022,12.642],[402.17215,248.20004,6.671997,12.642],[408.85614,248.20004,3.9960022,12.642],[412.85214,248.20004,6.0,12.642],[418.85214,248.20004,6.0,12.642],[424.85214,248.20004,6.0,12.642],[430.85214,248.20004,5.3160095,12.642],[436.15616,248.20004,3.3240051,12.642],[439.45618,248.20004,4.6679993,12.642],[56.8,234.40005,8.663998,12.642],[65.404,234.40005,6.0,12.642],[71.404,234.40005,6.0,12.642],[77.404,234.40005,3.3239975,12.642],[83.787994,234.40005,3.9960022,12.642],[87.784,234.40005,5.316002,12.642],[93.088,234.40005,6.0,12.642],[99.088,234.40005,5.316002,12.642],[104.392,234.40005,5.316002,12.642],[109.696,234.40005,3.3239975,12.642],[116.079994,234.40005,6.0,12.642],[122.079994,234.40005,5.316002,12.642],[127.383995,234.40005,3.9959946,12.642],[131.37999,234.40005,5.3159943,12.642],[139.68399,234.40005,6.0,12.642],[145.68399,234.40005,5.3159943,12.642],[150.98799,234.40005,5.3159943,12.642],[156.37599,234.40005,5.3159943,12.642],[161.68,234.40005,6.0,12.642],[167.68,234.40005,4.6679993,12.642],[172.372,234.40005,5.3159943,12.642],[180.676,234.40005,9.324005,12.642],[189.976,234.40005,3.3240051,12.642],[193.276,234.40005,4.6679993,12.642],[197.968,234.40005,4.6679993,12.642],[202.66,234.40005,3.3240051,12.642],[205.96,234.40005,6.0,12.642],[211.96,234.40005,6.0,12.642],[220.96,234.40005,3.9960022,12.642],[224.95601,234.40005,3.3240051,12.642],[228.25601,234.40005,3.9960022,12.642],[232.25201,234.40005,4.6679993,12.642],[236.94402,234.40005,3.3240051,12.642],[243.32802,234.40005,6.0,12.642],[249.32802,234.40005,5.3159943,12.642],[254.63202,234.40005,6.0,12.642],[260.63202,234.40005,8.664001,12.642],[269.32,234.40005,6.0,12.642],[275.32,234.40005,3.9960022,12.642],[279.316,234.40005,6.0,12.642],[285.316,234.40005,3.3240051,12.642],[291.61603,234.40005,6.671997,12.642],[298.30002,234.40005,6.0,12.642],[304.30002,234.40005,6.0,12.642],[310.30002,234.40005,3.9960022,12.642],[314.29602,234.40005,5.3160095,12.642],[319.60004,234.40005,5.3160095,12.642],[327.90405,234.40005,7.9920044,12.642],[335.89606,234.40005,5.3160095,12.642],[341.20007,234.40005,4.6679993,12.642],[345.89206,234.40005,6.0,12.642],[351.89206,234.40005,6.0,12.642],[357.89206,234.40005,3.9960022,12.642],[361.88806,234.40005,5.3160095,12.642],[367.19208,234.40005,5.3160095,12.642],[372.4961,234.40005,4.6679993,12.642],[380.18808,234.40005,8.664001,12.642],[388.87607,234.40005,5.3160095,12.642],[394.18008,234.40005,6.0,12.642],[400.18008,234.40005,5.3160095,12.642],[405.4841,234.40005,3.3240051,12.642],[408.78412,234.40005,6.0,12.642],[414.78412,234.40005,6.0,12.642],[420.86813,234.40005,9.324005,12.642],[430.16815,234.40005,5.3160095,12.642],[435.47217,234.40005,6.0,12.642],[441.47217,234.40005,3.3240051,12.642],[447.16016,234.40005,8.664001,12.642],[455.84814,234.40005,6.0,12.642],[461.84814,234.40005,9.324005,12.642],[471.14816,234.40005,3.3240051,12.642],[474.44818,234.40005,6.0,12.642],[480.44818,234.40005,3.3240051,12.642],[483.7482,234.40005,4.6679993,12.642],[488.4402,234.40005,3.3240051,12.642],[491.7402,234.40005,3.9960022,12.642],[495.8322,234.40005,5.3160095,12.642],[501.13623,234.40005,3.3240051,12.642],[504.43625,234.40005,3.3240051,12.642],[507.73627,234.40005,6.0,12.642],[513.73627,234.40005,6.0,12.642]]},{"id":42,"stringIdxToPositionIdx":[0,1,2,3,4,4,5,6,7,8,9,9,10,11,12,13,14,15,16,17,18,19,20,21,21,22,23,24,25,26,27,28,29,29,30,31,32,33,34,34,35,36,37,38,39,40,41,41,42,43,44,45,46,47,47,48,49,50],"positions":[[56.8,170.20001,10.1802025,13.867801],[66.9802,170.20001,8.600998,13.867801],[75.5812,170.20001,3.9057007,13.867801],[79.4869,170.20001,7.8395996,13.867801],[91.274506,170.20001,7.8395996,13.867801],[99.07181,170.20001,7.8395996,13.867801],[106.86911,170.20001,3.9057007,13.867801],[110.77481,170.20001,7.8395996,13.867801],[118.65671,170.20001,7.8395996,13.867801],[130.4443,170.20001,4.6952972,13.867801],[135.1396,170.20001,7.8395996,13.867801],[142.9369,170.20001,8.600998,13.867801],[151.5379,170.20001,8.600998,13.867801],[160.1389,170.20001,3.9057007,13.867801],[164.0446,170.20001,4.6952972,13.867801],[168.7399,170.20001,3.9057007,13.867801],[172.6456,170.20001,8.600998,13.867801],[181.2466,170.20001,8.600998,13.867801],[189.93219,170.20001,7.8395996,13.867801],[197.72949,170.20001,3.9057007,13.867801],[201.6352,170.20001,4.6952972,13.867801],[210.23619,170.20001,8.600998,13.867801],[218.92178,170.20001,7.8395996,13.867801],[226.71909,170.20001,8.600998,13.867801],[235.32008,170.20001,7.8395996,13.867801],[243.11739,170.20001,4.6952972,13.867801],[247.81268,170.20001,3.9057007,13.867801],[251.80298,170.20001,7.8395996,13.867801],[259.60028,170.20001,7.8395996,13.867801],[271.38788,170.20001,8.601013,13.867801],[278.9878,170.20001,7.8395996,13.867801],[286.7851,170.20001,7.8395996,13.867801],[294.5824,170.20001,4.6953125,13.867801],[299.2777,170.20001,4.6953125,13.867801],[307.87872,170.20001,12.534912,13.867801],[320.38544,170.20001,3.9057007,13.867801],[324.37573,170.20001,7.8395996,13.867801],[332.17303,170.20001,7.8395996,13.867801],[339.97034,170.20001,3.9057007,13.867801],[343.87604,170.20001,8.601013,13.867801],[352.56165,170.20001,8.601013,13.867801],[365.3,170.20001,7.8395996,13.867801],[373.1819,170.20001,7.8395996,13.867801],[380.9792,170.20001,7.8395996,13.867801],[388.7765,170.20001,8.601013,13.867801],[397.3775,170.20001,8.601013,13.867801],[406.0631,170.20001,8.601013,13.867801],[418.6,170.20001,10.180206,13.867801],[428.7802,170.20001,7.8395996,13.867801],[436.5775,170.20001,7.8395996,13.867801]]},{"id":43,"stringIdxToPositionIdx":[0,1,2,3,4,4,5,6,7,7,8,9,9,10,11,12,12,13,14,15,16,17,18,18,19,20,21,22,23,23,24,25,26,26,27,28,29,30,31,32,33,34,35,35,36,37,37,38,39,40,41,42,43,44,45,46,46,47,48,49,50,51,52,53,54,55,56,57,57,58,59,60,61,62],"positions":[[56.8,692.1,10.1802025,13.867801],[66.9802,692.1,8.600998,13.867801],[75.5812,692.1,3.9057007,13.867801],[79.4869,692.1,7.8395996,13.867801],[91.274506,692.1,7.8395996,13.867801],[99.07181,692.1,7.8395996,13.867801],[106.86911,692.1,4.6952972,13.867801],[115.47011,692.1,10.180199,13.867801],[125.65031,692.1,8.601006,13.867801],[138.24161,692.1,8.600998,13.867801],[146.8426,692.1,8.600998,13.867801],[155.4436,692.1,4.6952972,13.867801],[164.0446,692.1,5.484894,13.867801],[169.5295,692.1,7.8395996,13.867801],[177.3268,692.1,8.600998,13.867801],[185.9278,692.1,7.8395996,13.867801],[193.8097,692.1,7.8395996,13.867801],[201.607,692.1,4.6952972,13.867801],[210.208,692.1,10.180206,13.867801],[220.3882,692.1,7.8395996,13.867801],[228.1855,692.1,12.534897,13.867801],[240.7768,692.1,7.8395996,13.867801],[248.5741,692.1,7.8395996,13.867801],[260.3617,692.1,7.8395996,13.867801],[268.159,692.1,8.601013,13.867801],[276.76,692.1,8.601013,13.867801],[288.84372,692.1,10.180206,13.867801],[299.02393,692.1,8.601013,13.867801],[307.62494,692.1,8.601013,13.867801],[316.22595,692.1,5.484894,13.867801],[321.71085,692.1,7.8395996,13.867801],[329.50815,692.1,7.8395996,13.867801],[337.30545,692.1,7.8395996,13.867801],[345.18735,692.1,7.8395996,13.867801],[352.98465,692.1,7.8395996,13.867801],[364.77225,692.1,3.9057007,13.867801],[368.67795,692.1,4.6953125,13.867801],[377.27896,692.1,9.3905945,13.867801],[386.66956,692.1,8.601013,13.867801],[395.27057,692.1,8.601013,13.867801],[403.87158,692.1,3.9057007,13.867801],[407.77728,692.1,3.9057007,13.867801],[411.76758,692.1,7.8395996,13.867801],[419.56488,692.1,8.601013,13.867801],[428.1659,692.1,7.8395996,13.867801],[436.0478,692.1,8.601013,13.867801],[448.5545,692.1,3.9057007,13.867801],[452.4602,692.1,8.601013,13.867801],[461.06122,692.1,4.6953125,13.867801],[465.75653,692.1,8.601013,13.867801],[474.35754,692.1,5.484894,13.867801],[479.84244,692.1,12.534912,13.867801],[492.43375,692.1,7.8395996,13.867801],[500.23105,692.1,4.6953125,13.867801],[504.92636,692.1,3.9057007,13.867801],[508.83206,692.1,8.600983,13.867801],[517.43304,692.1,8.601013,13.867801],[56.8,675.9,4.695301,13.867801],[61.4953,675.9,8.600998,13.867801],[70.0963,675.9,8.600998,13.867801],[78.697296,675.9,8.600998,13.867801],[87.298294,675.9,8.600998,13.867801]]},{"id":44,"stringIdxToPositionIdx":[0,1,2,2,3,4,5,5,6,7,8,9,10,11,11,12,13,14,15,16,16,17,18,19,19,20,21,22,23,24,25,26,27,28,28,29,30,30,31,32,33,34,35,36,37,38,39,39,40,41,42,43,44,45,46,47,48,49,50,50,51,52,53,54,55,55,56,57,58,59,60,60,61,62,63,64,65,65,66,67,68,69,70,70,71,72,73,73,74,75,76,77,77,78,79,80,81,82,83,83,84,85,86,87,88,89,90,91,92,93,93,94,95,96,97,98,98,99,100,100,101,102,103,104,105,106,107,108,109,109,110,111,112,113,114,114,115,116,117,118,118,119,120,121,122,123,124,125],"positions":[[56.8,657.6,7.2199974,11.535],[63.999996,657.6,5.000004,11.535],[71.5,657.6,5.0,11.535],[76.5,657.6,5.0,11.535],[81.5,657.6,2.7699966,11.535],[86.78999,657.6,3.8899994,11.535],[90.28999,657.6,4.4300003,11.535],[94.689995,657.6,5.0,11.535],[99.689995,657.6,5.0,11.535],[104.689995,657.6,4.4300003,11.535],[109.09,657.6,2.7699966,11.535],[114.479996,657.6,6.6600037,11.535],[121.08,657.6,5.0,11.535],[126.08,657.6,7.220001,11.535],[133.28,657.6,4.4299927,11.535],[137.68,657.6,3.8899994,11.535],[144.17,657.6,5.0,11.535],[149.17,657.6,5.0,11.535],[154.17,657.6,5.0,11.535],[161.47,657.6,6.100006,11.535],[167.57,657.6,5.0,11.535],[172.57,657.6,5.0,11.535],[177.57,657.6,3.8899994,11.535],[181.07,657.6,4.4299927,11.535],[185.47,657.6,3.8899994,11.535],[189.36,657.6,3.8899994,11.535],[193.25,657.6,4.4299927,11.535],[197.65,657.6,3.8899994,11.535],[204.14,657.6,2.7700043,11.535],[206.84,657.6,2.7700043,11.535],[212.13,657.6,6.100006,11.535],[218.23001,657.6,5.0,11.535],[223.23001,657.6,5.0,11.535],[228.23001,657.6,2.7700043,11.535],[231.02002,657.6,2.7700043,11.535],[233.81003,657.6,3.8899994,11.535],[237.70003,657.6,5.0,11.535],[242.70003,657.6,4.4299927,11.535],[247.10002,657.6,5.0,11.535],[254.60002,657.6,3.3300018,11.535],[257.90002,657.6,5.0,11.535],[262.90002,657.6,2.769989,11.535],[265.69,657.6,5.0,11.535],[270.69,657.6,3.8900146,11.535],[274.58002,657.6,7.220001,11.535],[281.78003,657.6,5.0,11.535],[286.78003,657.6,2.769989,11.535],[289.57,657.6,2.769989,11.535],[292.36,657.6,5.0,11.535],[297.36,657.6,5.0,11.535],[304.86,657.6,2.769989,11.535],[307.64996,657.6,5.0,11.535],[312.64996,657.6,5.0,11.535],[317.64996,657.6,5.0,11.535],[322.64996,657.6,5.0,11.535],[56.8,644.2,7.3200035,12.642],[64.096,644.2,6.0,12.642],[70.096,644.2,3.9960022,12.642],[74.092,644.2,5.316002,12.642],[79.396,644.2,9.3239975,12.642],[91.78,644.2,3.3239975,12.642],[95.079994,644.2,6.0,12.642],[101.079994,644.2,4.6679993,12.642],[105.771996,644.2,6.0,12.642],[111.771996,644.2,9.3239975,12.642],[124.07199,644.2,6.0,12.642],[130.07199,644.2,6.0,12.642],[136.07199,644.2,3.3240051,12.642],[139.372,644.2,6.0,12.642],[145.372,644.2,3.9960022,12.642],[152.368,644.2,4.6679993,12.642],[157.06,644.2,3.3240051,12.642],[160.36,644.2,3.3240051,12.642],[166.744,644.2,5.3159943,12.642],[172.048,644.2,9.324005,12.642],[181.348,644.2,5.3159943,12.642],[186.65201,644.2,3.3240051,12.642],[193.03601,644.2,8.664001,12.642],[201.72401,644.2,6.0,12.642],[207.72401,644.2,3.9960022,12.642],[211.72002,644.2,6.0,12.642],[217.72002,644.2,3.9960022,12.642],[221.71602,644.2,6.0,12.642],[230.71602,644.2,8.664001,12.642],[239.32002,644.2,6.0,12.642],[245.32002,644.2,3.3240051,12.642],[248.62003,644.2,6.0,12.642],[254.62003,644.2,5.3160095,12.642],[259.92404,644.2,3.9960022,12.642],[263.92004,644.2,4.6679993,12.642],[268.61203,644.2,3.3240051,12.642],[271.99603,644.2,3.3240051,12.642],[275.29605,644.2,6.0,12.642],[284.29605,644.2,6.671997,12.642],[290.98004,644.2,3.9960022,12.642],[294.97604,644.2,5.3160095,12.642],[300.28006,644.2,4.6679993,12.642],[304.87607,644.2,4.6679993,12.642],[312.56805,644.2,3.3240051,12.642],[315.86807,644.2,6.0,12.642],[324.9521,644.2,6.0,12.642],[330.9521,644.2,6.0,12.642],[336.9521,644.2,3.3240051,12.642],[340.2521,644.2,6.0,12.642],[346.2521,644.2,6.0,12.642],[352.2521,644.2,3.3240051,12.642],[355.55212,644.2,5.3160095,12.642],[360.94012,644.2,3.3240051,12.642],[364.24014,644.2,5.3160095,12.642],[372.54416,644.2,6.0,12.642],[378.54416,644.2,5.3160095,12.642],[383.84818,644.2,3.3240051,12.642],[387.23218,644.2,3.3240051,12.642],[390.5322,644.2,3.3240051,12.642],[396.9162,644.2,5.3160095,12.642],[402.1122,644.2,4.6679993,12.642],[406.8042,644.2,4.6679993,12.642],[411.4962,644.2,5.3160095,12.642],[419.8002,644.2,5.3160095,12.642],[425.10422,644.2,3.3240051,12.642],[428.48822,644.2,3.3240051,12.642],[431.78824,644.2,3.3240051,12.642],[435.08826,644.2,6.0,12.642],[441.08826,644.2,9.324005,12.642],[450.38828,644.2,3.0,12.642]]},{"id":45,"stringIdxToPositionIdx":[0,1,2,3,4,5,6,7,7,8,9,10,11,12,13,14,14,15,16,17,18,19,20,20,21,22,23,24,25,26,27,27,28,29,30,31,31,32,33,34,35,36,36,37,38,39,40,41,42,42,43,44,45,46,47,48,49,49,50,51,52,53,54,55,56,57,58,58,59,60,61,62,63,64,65,66,66,67,68,69,70,71,71,72,73,74,75,76,77,78,78,79,80,81,82,83,83,84,85,86,87,88,89,90,91,92,93,93,94,95,96,97,98,99,100,101,102,102,103,104,105,106,106,107,108,109,110,111,112,113,114,114,115,116,117,118,119,120,121,122,123,123,124,125,126,126,127,128,129,130,131,132,133,134,135,135,136,137,138,139,139,140,141,141,142,143,144,145,146,146,147,148,149,149,150,151,152,153,154,155,156,156,157,158,159,160,161,162,163,164,164,165,166,167,168,169,170,170,171,172,173,174,174,175,176,176,177,178,179,179,180,181,182,183,184,185,186,187,187,188,189,190,190,191,192,193,194,195,195,196,197,198,198,199,200,201,201,202,203,203,204,205,206,207,208,208,209,210,211,212,213,213,214,215,216,217,218,218,219,220,221,222,222,223,224,225,226,226,227,228,229,230,230,231,232,233,234,234,235,236,237,237,238,239,239,240,241,242,243,244,245,245,246,247,247,248,249,249,250,251],"positions":[[56.8,616.6,3.9959984,12.642],[60.795998,616.6,5.316002,12.642],[66.1,616.6,6.0,12.642],[72.1,616.6,6.0,12.642],[78.1,616.6,6.0,12.642],[84.1,616.6,6.0,12.642],[90.1,616.6,4.6679993,12.642],[97.792,616.6,8.664001,12.642],[106.48,616.6,5.316002,12.642],[111.784004,616.6,3.3239975,12.642],[115.084,616.6,6.0,12.642],[121.084,616.6,5.316002,12.642],[126.388,616.6,3.9960022,12.642],[129.892,616.6,3.0,12.642],[135.892,616.6,4.6679993,12.642],[140.584,616.6,6.0,12.642],[146.584,616.6,3.3240051,12.642],[149.884,616.6,3.3240051,12.642],[153.184,616.6,5.3159943,12.642],[158.488,616.6,6.0,12.642],[167.572,616.6,7.9920044,12.642],[175.56401,616.6,3.3240051,12.642],[178.86401,616.6,3.3240051,12.642],[182.16402,616.6,3.3240051,12.642],[185.54802,616.6,5.3159943,12.642],[190.85202,616.6,3.9960022,12.642],[194.35602,616.6,3.0,12.642],[199.75601,616.6,8.664001,12.642],[208.36002,616.6,4.6679993,12.642],[213.05202,616.6,6.0,12.642],[219.05202,616.6,5.3159943,12.642],[227.35602,616.6,7.3200073,12.642],[234.05203,616.6,6.0,12.642],[240.05203,616.6,6.0,12.642],[246.05203,616.6,6.0,12.642],[252.05203,616.6,3.0,12.642],[258.05203,616.6,7.9920044,12.642],[266.04404,616.6,5.3160095,12.642],[271.34805,616.6,3.9960022,12.642],[275.34406,616.6,3.3240051,12.642],[278.64407,616.6,6.0,12.642],[284.64407,616.6,5.3160095,12.642],[293.03207,616.6,10.667999,12.642],[303.72406,616.6,5.3160095,12.642],[309.02808,616.6,6.0,12.642],[314.93207,616.6,4.6679993,12.642],[319.62405,616.6,5.3160095,12.642],[324.92807,616.6,6.0,12.642],[330.92807,616.6,3.0,12.642],[336.31607,616.6,8.664001,12.642],[345.00406,616.6,3.3240051,12.642],[348.30408,616.6,5.3160095,12.642],[353.6081,616.6,6.0,12.642],[359.6081,616.6,5.3160095,12.642],[364.9121,616.6,6.0,12.642],[370.9121,616.6,6.0,12.642],[376.9121,616.6,3.9960022,12.642],[380.9081,616.6,5.3160095,12.642],[389.2961,616.6,8.664001,12.642],[397.9841,616.6,5.3160095,12.642],[403.28812,616.6,6.0,12.642],[409.1921,616.6,4.6679993,12.642],[413.8841,616.6,3.3240051,12.642],[417.2681,616.6,5.3160095,12.642],[422.5721,616.6,3.9960022,12.642],[426.0761,616.6,3.0,12.642],[432.0761,616.6,8.664001,12.642],[440.7641,616.6,5.3160095,12.642],[446.0681,616.6,6.0,12.642],[452.0681,616.6,6.0,12.642],[458.0681,616.6,5.3160095,12.642],[466.37213,616.6,10.667999,12.642],[477.06412,616.6,5.3160095,12.642],[482.36813,616.6,6.0,12.642],[488.36813,616.6,6.0,12.642],[494.36813,616.6,5.3160095,12.642],[499.67215,616.6,3.3240051,12.642],[502.97217,616.6,3.0,12.642],[509.05618,616.6,7.991974,12.642],[517.04816,616.6,5.315979,12.642],[522.3521,616.6,6.0,12.642],[528.3521,616.6,6.0,12.642],[534.3521,616.6,5.315979,12.642],[56.8,602.8,7.3200035,12.642],[64.096,602.8,3.3239975,12.642],[67.395996,602.8,6.0,12.642],[73.395996,602.8,5.316002,12.642],[78.7,602.8,6.0,12.642],[84.7,602.8,6.0,12.642],[90.7,602.8,6.0,12.642],[96.7,602.8,6.0,12.642],[102.784,602.8,9.3239975,12.642],[112.08399,602.8,3.0,12.642],[118.08399,602.8,7.3199997,12.642],[125.37999,602.8,6.0,12.642],[131.37999,602.8,5.3159943,12.642],[136.68399,602.8,5.3159943,12.642],[141.98799,602.8,6.0,12.642],[148.07199,602.8,3.3240051,12.642],[151.372,602.8,5.3159943,12.642],[156.676,602.8,6.0,12.642],[162.676,602.8,3.9960022,12.642],[169.672,602.8,4.6679993,12.642],[174.364,602.8,3.3240051,12.642],[177.664,602.8,6.0,12.642],[183.664,602.8,3.3240051,12.642],[190.048,602.8,6.0,12.642],[196.048,602.8,5.3159943,12.642],[201.352,602.8,5.3159943,12.642],[206.656,602.8,5.3159943,12.642],[211.96,602.8,5.3159943,12.642],[217.348,602.8,5.3159943,12.642],[222.65201,602.8,5.3159943,12.642],[227.95601,602.8,3.3240051,12.642],[234.34001,602.8,5.3159943,12.642],[239.64401,602.8,6.0,12.642],[245.64401,602.8,6.0,12.642],[251.64401,602.8,3.3240051,12.642],[254.94402,602.8,6.0000153,12.642],[260.94403,602.8,5.3160095,12.642],[266.24805,602.8,3.3240051,12.642],[269.63205,602.8,5.3160095,12.642],[274.93607,602.8,3.3240051,12.642],[281.23608,602.8,6.0,12.642],[287.23608,602.8,6.0,12.642],[293.23608,602.8,6.0,12.642],[302.23608,602.8,6.0,12.642],[308.23608,602.8,3.9960022,12.642],[312.2321,602.8,6.0,12.642],[318.2321,602.8,3.3240051,12.642],[321.5321,602.8,6.0,12.642],[327.5321,602.8,5.3160095,12.642],[332.83612,602.8,6.0,12.642],[338.92014,602.8,3.3240051,12.642],[342.22015,602.8,3.0,12.642],[348.22015,602.8,4.6679993,12.642],[352.91214,602.8,6.0,12.642],[358.91214,602.8,6.0,12.642],[364.91214,602.8,3.3240051,12.642],[371.21216,602.8,3.3240051,12.642],[374.51218,602.8,6.0,12.642],[383.5962,602.8,5.3160095,12.642],[388.9002,602.8,6.0,12.642],[394.9002,602.8,3.3240051,12.642],[398.20023,602.8,6.0,12.642],[404.20023,602.8,5.3160095,12.642],[412.50424,602.8,6.0,12.642],[418.50424,602.8,6.0,12.642],[424.50424,602.8,3.3240051,12.642],[430.88824,602.8,6.0,12.642],[436.88824,602.8,3.9960022,12.642],[440.69226,602.8,3.9960022,12.642],[444.68826,602.8,3.3240051,12.642],[447.98828,602.8,5.3160095,12.642],[453.2923,602.8,3.3240051,12.642],[456.59232,602.8,5.3160095,12.642],[464.98032,602.8,6.0,12.642],[470.98032,602.8,5.3160095,12.642],[476.28433,602.8,4.6679993,12.642],[480.97632,602.8,5.3160095,12.642],[486.28033,602.8,3.9960022,12.642],[490.27634,602.8,6.0,12.642],[496.27634,602.8,6.0,12.642],[502.27634,602.8,3.3240051,12.642],[508.57635,602.8,9.323975,12.642],[517.87634,602.8,6.0,12.642],[523.87634,602.8,3.3239746,12.642],[527.2603,602.8,3.3239746,12.642],[530.5603,602.8,3.3239746,12.642],[533.8603,602.8,3.3239746,12.642],[56.8,589.0,5.315998,12.642],[62.103996,589.0,6.0,12.642],[68.104,589.0,3.3239975,12.642],[71.40399,589.0,9.3239975,12.642],[83.78799,589.0,3.3239975,12.642],[87.08798,589.0,6.0,12.642],[96.08798,589.0,5.316002,12.642],[101.39198,589.0,4.6679993,12.642],[106.083984,589.0,3.3239975,12.642],[112.38398,589.0,3.3239975,12.642],[115.683975,589.0,5.316002,12.642],[120.987976,589.0,6.0,12.642],[126.987976,589.0,6.0,12.642],[132.98798,589.0,3.9960022,12.642],[136.98398,589.0,6.0,12.642],[143.06798,589.0,9.324005,12.642],[152.36798,589.0,3.0,12.642],[158.36798,589.0,10.667999,12.642],[169.05998,589.0,3.3240051,12.642],[172.35999,589.0,6.0,12.642],[181.35999,589.0,8.664001,12.642],[190.04799,589.0,8.664001,12.642],[198.736,589.0,6.0,12.642],[204.736,589.0,6.0,12.642],[210.736,589.0,3.0,12.642],[216.736,589.0,4.6679993,12.642],[221.33199,589.0,6.0,12.642],[227.33199,589.0,6.0,12.642],[236.33199,589.0,8.664001,12.642],[245.01999,589.0,3.0,12.642],[248.01999,589.0,3.0,12.642],[253.816,589.0,7.319992,12.642],[260.71597,589.0,6.0,12.642],[269.51196,589.0,11.3160095,12.642],[279.80798,589.0,6.0,12.642],[285.80798,589.0,6.0,12.642],[291.80798,589.0,6.0,12.642],[297.80798,589.0,3.0,12.642],[303.80798,589.0,8.664001,12.642],[312.49597,589.0,3.3240051,12.642],[315.796,589.0,5.3160095,12.642],[321.1,589.0,6.0,12.642],[327.1,589.0,6.0,12.642],[336.18402,589.0,6.671997,12.642],[342.78403,589.0,6.0,12.642],[348.78403,589.0,5.3160095,12.642],[354.08804,589.0,6.0,12.642],[360.08804,589.0,3.0,12.642],[366.17206,589.0,7.3200073,12.642],[373.46808,589.0,6.0,12.642],[379.46808,589.0,6.0,12.642],[385.46808,589.0,6.0,12.642],[394.46808,589.0,10.667999,12.642],[405.16006,589.0,5.3160095,12.642],[410.46408,589.0,6.0,12.642],[416.46408,589.0,3.0,12.642],[422.46408,589.0,8.664001,12.642],[431.15207,589.0,3.3240051,12.642],[434.4521,589.0,6.0,12.642],[440.4521,589.0,6.0,12.642],[449.4521,589.0,7.3200073,12.642],[456.7481,589.0,3.3240051,12.642],[460.04813,589.0,6.0,12.642],[466.04813,589.0,3.0,12.642],[472.04813,589.0,7.3200073,12.642],[479.44012,589.0,5.3160095,12.642],[484.74414,589.0,3.3240051,12.642],[490.84015,589.0,11.3160095,12.642],[501.04016,589.0,3.0,12.642],[507.04016,589.0,8.664001,12.642],[515.72815,589.0,6.0,12.642],[521.72815,589.0,5.315979,12.642],[527.0321,589.0,6.0,12.642],[533.0321,589.0,6.0,12.642],[539.0321,589.0,3.0,12.642],[56.8,575.2,7.9920006,12.642],[64.792,575.2,6.0,12.642],[73.792,575.2,8.664001,12.642],[82.396,575.2,3.0,12.642],[88.192,575.2,11.316002,12.642],[98.992004,575.2,6.0,12.642]]},{"id":46,"stringIdxToPositionIdx":[0,1,2,3,4,4,5,6,7,8,9,10,10,11,12,13,14,15,16,17,18,18,19,20,21,21,22,23,24,25,26,27,28,29,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,43,44,45,46,47,48,49,50,51,52,53,54,54,55,56,57,58,59,59,60,61,61,62,63,64,65],"positions":[[56.8,524.8,10.1802025,13.867801],[66.9802,524.8,8.600998,13.867801],[75.5812,524.8,3.9057007,13.867801],[79.4869,524.8,7.8395996,13.867801],[91.274506,524.8,7.8395996,13.867801],[99.07181,524.8,7.8395996,13.867801],[106.86911,524.8,3.9057007,13.867801],[110.77481,524.8,7.8395996,13.867801],[118.65671,524.8,7.8395996,13.867801],[126.45401,524.8,4.6952972,13.867801],[135.05501,524.8,10.180206,13.867801],[145.23521,524.8,7.8395996,13.867801],[153.03252,524.8,8.600998,13.867801],[161.71811,524.8,7.8395996,13.867801],[169.51541,524.8,7.8395996,13.867801],[177.31271,524.8,4.6952972,13.867801],[182.0926,524.8,7.8395996,13.867801],[189.88991,524.8,8.600998,13.867801],[202.3966,524.8,9.3905945,13.867801],[211.7872,524.8,3.9057007,13.867801],[215.6929,524.8,3.9057007,13.867801],[223.5889,524.8,9.3905945,13.867801],[232.97949,524.8,7.8395996,13.867801],[240.7768,524.8,5.484894,13.867801],[246.26169,524.8,7.8395996,13.867801],[254.05899,524.8,8.601013,13.867801],[262.7446,524.8,8.601013,13.867801],[271.3456,524.8,7.8395996,13.867801],[279.1429,524.8,3.9057007,13.867801],[287.0389,524.8,3.9057007,13.867801],[290.9446,524.8,8.601013,13.867801],[299.54562,524.8,7.8395996,13.867801],[307.34293,524.8,8.601013,13.867801],[315.94394,524.8,4.6953125,13.867801],[320.63925,524.8,3.9057007,13.867801],[324.54495,524.8,4.6953125,13.867801],[329.24026,524.8,3.9057007,13.867801],[333.23056,524.8,7.8395996,13.867801],[341.02786,524.8,7.8395996,13.867801],[348.82516,524.8,4.6953125,13.867801],[353.52048,524.8,3.9057007,13.867801],[357.42618,524.8,8.601013,13.867801],[366.1118,524.8,8.601013,13.867801],[378.6185,524.8,3.9057007,13.867801],[382.5242,524.8,8.601013,13.867801],[391.1252,524.8,4.6953125,13.867801],[395.82053,524.8,8.601013,13.867801],[404.42154,524.8,5.484894,13.867801],[409.90643,524.8,12.534912,13.867801],[422.49774,524.8,7.8395996,13.867801],[430.29504,524.8,4.6953125,13.867801],[434.99036,524.8,3.9057007,13.867801],[438.89606,524.8,8.601013,13.867801],[447.49707,524.8,8.601013,13.867801],[460.08838,524.8,8.601013,13.867801],[468.6894,524.8,7.8395996,13.867801],[476.4867,524.8,7.8395996,13.867801],[484.3686,524.8,7.8395996,13.867801],[492.1659,524.8,8.601013,13.867801],[504.7572,524.8,8.601013,13.867801],[513.3582,524.8,8.601013,13.867801],[525.8649,524.8,10.180176,13.867801],[536.0451,524.8,3.9057007,13.867801],[539.9508,524.8,7.8395996,13.867801],[547.7481,524.8,4.6953125,13.867801]]},{"id":47,"stringIdxToPositionIdx":[0,1,2,3,4,5,6,6,7,8,9,10,10,11,12,13,14,15,16,17,18,19,20,20,21,22,23,24,25,25,26,27,27,28,29,30,30,31,32,33,34,35,36,36,37,38,39,40,40,41,42,43,44,45,46,47,48,49,50,50,51,52,53,54,55,55,56,57,57,58,59,59,60,61,62,63,64,65,66,66,67,68,69,70,71,72,73,74,74,75,76,77,78,79,79,80,81,82,83,84,85,86,87,87,88,89,90,91,92,93,94,95,96,96,97,98,99,100,101,102,102,103,104,104,105,106,107,108,108,109,110,111,112,113,114,114,115,116,117,118,119,120,121,122,122,123,124,125,126,127,127,128,129,129,130,131,132,133,134,135,135,136,137,137,138,139,140,141,142,142,143,144,144,145,146,146,147,148,149,150,151,152,152,153,154,155,156,157,157,158,159,159,160,161,162,162,163,164,165,166,167,167,168,169,170,171,172,173,174,175,176,176,177,177,178,179,180,180,181,182,183,184,185,185,186,187,187,188,189,190,191,192,192,193,194,195,196,197,198,198,199,200,200,201,202,203,203,204,205,206,207,208,209,210,211,212],"positions":[[56.8,506.4,6.1000023,11.535],[62.9,506.4,4.4300003,11.535],[67.3,506.4,5.0,11.535],[72.3,506.4,5.0,11.535],[77.3,506.4,4.4300003,11.535],[81.700005,506.4,2.7699966,11.535],[86.99,506.4,6.659996,11.535],[93.67999,506.4,5.0,11.535],[98.67999,506.4,4.4300003,11.535],[103.079994,506.4,5.0,11.535],[110.66999,506.4,6.0999985,11.535],[115.66999,506.4,4.4300003,11.535],[120.06999,506.4,3.8899994,11.535],[123.95999,506.4,2.7699966,11.535],[126.749985,506.4,4.4299927,11.535],[131.14998,506.4,5.0,11.535],[136.14998,506.4,3.8899994,11.535],[140.03998,506.4,5.0,11.535],[145.03998,506.4,2.7700043,11.535],[147.82999,506.4,4.4299927,11.535],[154.72998,506.4,5.0,11.535],[159.72998,506.4,2.7700043,11.535],[162.51999,506.4,5.0,11.535],[167.51999,506.4,5.0,11.535],[172.51999,506.4,4.4299927,11.535],[179.41998,506.4,2.7700043,11.535],[182.20999,506.4,3.8899994,11.535],[188.59999,506.4,5.5599976,11.535],[193.19998,506.4,4.4299927,11.535],[197.59998,506.4,3.8899994,11.535],[56.8,494.9,6.1000023,11.535],[62.9,494.9,4.4300003,11.535],[67.3,494.9,5.0,11.535],[72.3,494.9,5.0,11.535],[77.3,494.9,4.4300003,11.535],[81.700005,494.9,2.7699966,11.535],[86.99,494.9,6.659996,11.535],[93.67999,494.9,5.0,11.535],[98.67999,494.9,4.4300003,11.535],[103.079994,494.9,5.0,11.535],[110.66999,494.9,6.0999985,11.535],[115.66999,494.9,4.4300003,11.535],[120.06999,494.9,3.8899994,11.535],[123.95999,494.9,2.7699966,11.535],[126.749985,494.9,4.4299927,11.535],[131.14998,494.9,5.0,11.535],[136.14998,494.9,3.8899994,11.535],[140.03998,494.9,5.0,11.535],[145.03998,494.9,2.7700043,11.535],[147.82999,494.9,4.4299927,11.535],[154.72998,494.9,5.0,11.535],[159.72998,494.9,2.7700043,11.535],[162.51999,494.9,5.0,11.535],[167.51999,494.9,5.0,11.535],[172.51999,494.9,4.4299927,11.535],[179.41998,494.9,2.7700043,11.535],[182.20999,494.9,3.8899994,11.535],[188.59999,494.9,6.6600037,11.535],[195.29,494.9,5.0,11.535],[56.8,481.5,8.663998,12.642],[65.488,481.5,5.316002,12.642],[70.792,481.5,6.0,12.642],[76.792,481.5,5.316002,12.642],[82.096,481.5,3.9960022,12.642],[86.092,481.5,6.0,12.642],[92.092,481.5,6.0,12.642],[100.396,481.5,8.664001,12.642],[109.08401,481.5,6.0,12.642],[115.08401,481.5,9.3239975,12.642],[124.384,481.5,5.3159943,12.642],[129.688,481.5,5.3159943,12.642],[134.992,481.5,6.0,12.642],[141.076,481.5,3.3240051,12.642],[144.376,481.5,3.0,12.642],[150.376,481.5,8.664001,12.642],[159.06401,481.5,6.0,12.642],[165.06401,481.5,9.324005,12.642],[174.36401,481.5,3.3240051,12.642],[177.66402,481.5,3.0,12.642],[183.74802,481.5,3.9960022,12.642],[187.64803,481.5,4.6679993,12.642],[192.34003,481.5,6.0,12.642],[198.34003,481.5,3.3240051,12.642],[201.64003,481.5,6.0,12.642],[207.64003,481.5,5.3159943,12.642],[212.94403,481.5,8.664001,12.642],[221.63203,481.5,5.3159943,12.642],[230.02003,481.5,6.0,12.642],[236.02003,481.5,6.0,12.642],[242.02003,481.5,6.0,12.642],[248.02003,481.5,3.9960022,12.642],[252.01604,481.5,6.0000153,12.642],[257.51205,481.5,6.0,12.642],[263.51205,481.5,6.0,12.642],[269.51205,481.5,6.0,12.642],[275.51205,481.5,3.0,12.642],[281.51205,481.5,4.6679993,12.642],[286.20404,481.5,5.3160095,12.642],[291.50806,481.5,6.0,12.642],[297.50806,481.5,5.3160095,12.642],[302.81207,481.5,6.0,12.642],[308.81207,481.5,3.0,12.642],[314.81207,481.5,4.6679993,12.642],[319.50406,481.5,6.671997,12.642],[56.8,467.7,6.672001,12.642],[63.484,467.7,6.0,12.642],[69.484,467.7,6.0,12.642],[75.484,467.7,5.316002,12.642],[83.788,467.7,8.664001,12.642],[92.476006,467.7,5.316002,12.642],[97.78001,467.7,3.3239975,12.642],[101.08,467.7,3.3239975,12.642],[104.38,467.7,6.0,12.642],[110.38,467.7,5.316002,12.642],[118.768,467.7,8.664001,12.642],[127.372,467.7,6.0000076,12.642],[133.37201,467.7,3.9960022,12.642],[137.36801,467.7,6.0,12.642],[143.36801,467.7,3.3240051,12.642],[146.66801,467.7,3.3240051,12.642],[150.05202,467.7,5.3159943,12.642],[155.35602,467.7,6.0,12.642],[56.8,453.9,8.663998,12.642],[65.488,453.9,5.316002,12.642],[70.792,453.9,6.0,12.642],[76.792,453.9,6.0,12.642],[82.792,453.9,3.9960022,12.642],[89.788,453.9,8.664001,12.642],[98.392006,453.9,3.0,12.642],[104.392006,453.9,7.991997,12.642],[112.384,453.9,5.316002,12.642],[117.688,453.9,6.0,12.642],[123.688,453.9,6.0,12.642],[129.688,453.9,5.3159943,12.642],[134.992,453.9,6.0,12.642],[56.8,440.1,7.9920006,12.642],[64.792,440.1,3.0,12.642],[70.792,440.1,7.991997,12.642],[78.784,440.1,5.316002,12.642],[84.088,440.1,6.0,12.642],[90.088,440.1,3.3239975,12.642],[93.38799,440.1,9.3239975,12.642],[56.8,426.3,7.9920006,12.642],[64.792,426.3,3.0,12.642],[70.792,426.3,4.6679993,12.642],[75.388,426.3,3.0,12.642],[80.788,426.3,8.664001,12.642],[89.476006,426.3,3.3239975,12.642],[92.776,426.3,3.9960022,12.642],[96.772,426.3,3.9960022,12.642],[100.768005,426.3,5.316002,12.642],[106.07201,426.3,6.0,12.642],[56.8,412.5,8.663998,12.642],[65.488,412.5,3.3239975,12.642],[68.787994,412.5,6.0,12.642],[74.787994,412.5,6.0,12.642],[80.787994,412.5,3.3239975,12.642],[86.691986,412.5,8.664001,12.642],[93.79599,412.5,3.0,12.642],[99.59199,412.5,7.3199997,12.642],[106.095985,412.5,5.316002,12.642],[111.39999,412.5,6.0,12.642],[56.8,398.7,7.9920006,12.642],[64.792,398.7,3.3239975,12.642],[68.091995,398.7,5.316002,12.642],[73.395996,398.7,3.9960022,12.642],[77.392,398.7,5.316002,12.642],[85.78,398.7,6.671997,12.642],[92.464,398.7,3.3239975,12.642],[95.76399,398.7,5.316002,12.642],[101.06799,398.7,6.0,12.642],[107.06799,398.7,3.9960022,12.642],[111.063995,398.7,3.9960022,12.642],[115.06,398.7,3.3239975,12.642],[118.35999,398.7,5.316002,12.642],[123.663994,398.7,6.0000076,12.642],[135.748,398.7,12.0,12.642],[150.748,398.7,6.0,12.642],[156.748,398.7,6.0,12.642],[162.748,398.7,3.3240051,12.642],[169.048,398.7,5.3159943,12.642],[174.352,398.7,6.0,12.642],[180.352,398.7,6.0,12.642],[186.352,398.7,5.3159943,12.642],[191.656,398.7,6.0,12.642],[200.656,398.7,3.3240051,12.642],[203.95601,398.7,6.0,12.642],[213.04001,398.7,8.664001,12.642],[221.72801,398.7,3.3240051,12.642],[225.02802,398.7,5.3159943,12.642],[230.33202,398.7,3.3240051,12.642],[233.63202,398.7,3.0,12.642],[239.63202,398.7,4.6679993,12.642],[244.32402,398.7,6.0,12.642],[250.32402,398.7,6.0000153,12.642],[256.32404,398.7,6.0,12.642],[262.32404,398.7,3.3240051,12.642],[265.62405,398.7,6.0,12.642],[274.62405,398.7,6.0,12.642],[280.62405,398.7,5.3160095,12.642],[289.01205,398.7,6.0,12.642],[295.01205,398.7,6.0,12.642],[301.01205,398.7,3.3240051,12.642],[307.31207,398.7,5.3160095,12.642],[312.6161,398.7,6.0,12.642],[318.6161,398.7,6.0,12.642],[324.6161,398.7,6.0,12.642],[330.6161,398.7,3.3240051,12.642],[333.9161,398.7,5.3160095,12.642],[339.3041,398.7,3.3240051,12.642],[342.60413,398.7,5.3160095,12.642],[347.90814,398.7,6.0,12.642]]},{"id":48,"stringIdxToPositionIdx":[0,1,2,3,4,4,5,6,7,8,9,10,10,11,12,13,14,15,16,16,17,18,19,20,21,22,22,23,24,24,25,26,27,28,29],"positions":[[56.8,348.3,10.1802025,13.867801],[66.9802,348.3,8.600998,13.867801],[75.5812,348.3,3.9057007,13.867801],[79.4869,348.3,7.8395996,13.867801],[91.274506,348.3,7.8395996,13.867801],[99.07181,348.3,7.8395996,13.867801],[106.86911,348.3,3.9057007,13.867801],[110.77481,348.3,7.8395996,13.867801],[118.65671,348.3,7.8395996,13.867801],[126.45401,348.3,4.6952972,13.867801],[135.05501,348.3,10.180206,13.867801],[145.23521,348.3,7.8395996,13.867801],[153.03252,348.3,8.600998,13.867801],[161.71811,348.3,7.8395996,13.867801],[169.51541,348.3,7.8395996,13.867801],[177.31271,348.3,4.6952972,13.867801],[185.9983,348.3,9.3905945,13.867801],[195.3889,348.3,12.534897,13.867801],[207.8956,348.3,7.8395996,13.867801],[215.6929,348.3,3.9057007,13.867801],[219.5986,348.3,3.9057007,13.867801],[223.5889,348.3,7.8395996,13.867801],[235.3765,348.3,8.600998,13.867801],[243.9775,348.3,7.8395996,13.867801],[255.6805,348.3,10.180191,13.867801],[265.8607,348.3,7.8395996,13.867801],[273.658,348.3,8.601013,13.867801],[282.259,348.3,9.3905945,13.867801],[291.7483,348.3,7.8395996,13.867801]]},{"id":49,"stringIdxToPositionIdx":[0,1,2,3,4,5,6,6,7,8,9,10,10,11,12,13,14,15,16,17,18,19,20,20,21,22,23,24,25,25,26,27,27,28,29,30,30,31,32,33,34,35,36,36,37,38,39,40,40,41,42,43,44,45,46,47,48,49,50,50,51,52,53,54,55,55,56,57,57,58,59,59,60,61,62,63,63,64,65,66,67,67,68,69,70,71,72,72,73,74,75,76,77,77,78,79,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,98,99,100,101,102,103,104,105,106,107,108,109,110,111,111,112,113,113,114,115,116,117,118,119,120,121,122,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,139,140,141,142,143,144,144,145,146,147,148,148,149,150,151,152,153,154,154,155,156,157,158,159,160,160,161,162,162,163,164,165,166,167,168,168,169,170,171,172,173,173,174,175,176,177,178,179,180,181,182,182,183,184,185,186,187,188,189,190,191,191,192,193,194,195,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,214,215,216,217,218,219,220,221,222,222,223,224,225,226,227,228,229,230,231,231,232,233,234,234,235,236,237,238,239,240,241,242,243,243,244,245,246,247,247,248,249,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,264,265,266,267,268,269,269,270,271,272,272,273,274,275,276,277,278,279,279,280,281,282,283,284,285,286,287,287,288,289,290,291,292,293,293,294,295,296,297,297,298,299,299,300,301,302,302,303,304,305,306,307,308,309,310],"positions":[[56.8,329.9,6.1000023,11.535],[62.9,329.9,4.4300003,11.535],[67.3,329.9,5.0,11.535],[72.3,329.9,5.0,11.535],[77.3,329.9,4.4300003,11.535],[81.700005,329.9,2.7699966,11.535],[86.99,329.9,6.659996,11.535],[93.67999,329.9,5.0,11.535],[98.67999,329.9,4.4300003,11.535],[103.079994,329.9,5.0,11.535],[110.66999,329.9,6.0999985,11.535],[115.66999,329.9,4.4300003,11.535],[120.06999,329.9,3.8899994,11.535],[123.95999,329.9,2.7699966,11.535],[126.749985,329.9,4.4299927,11.535],[131.14998,329.9,5.0,11.535],[136.14998,329.9,3.8899994,11.535],[140.03998,329.9,5.0,11.535],[145.03998,329.9,2.7700043,11.535],[147.82999,329.9,4.4299927,11.535],[154.72998,329.9,5.0,11.535],[159.72998,329.9,2.7700043,11.535],[162.51999,329.9,5.0,11.535],[167.51999,329.9,5.0,11.535],[172.51999,329.9,4.4299927,11.535],[179.41998,329.9,2.7700043,11.535],[182.20999,329.9,3.8899994,11.535],[188.59999,329.9,5.5599976,11.535],[193.19998,329.9,4.4299927,11.535],[197.59998,329.9,3.8899994,11.535],[56.8,318.4,6.1000023,11.535],[62.9,318.4,4.4300003,11.535],[67.3,318.4,5.0,11.535],[72.3,318.4,5.0,11.535],[77.3,318.4,4.4300003,11.535],[81.700005,318.4,2.7699966,11.535],[86.99,318.4,6.659996,11.535],[93.67999,318.4,5.0,11.535],[98.67999,318.4,4.4300003,11.535],[103.079994,318.4,5.0,11.535],[110.66999,318.4,6.0999985,11.535],[115.66999,318.4,4.4300003,11.535],[120.06999,318.4,3.8899994,11.535],[123.95999,318.4,2.7699966,11.535],[126.749985,318.4,4.4299927,11.535],[131.14998,318.4,5.0,11.535],[136.14998,318.4,3.8899994,11.535],[140.03998,318.4,5.0,11.535],[145.03998,318.4,2.7700043,11.535],[147.82999,318.4,4.4299927,11.535],[154.72998,318.4,5.0,11.535],[159.72998,318.4,2.7700043,11.535],[162.51999,318.4,5.0,11.535],[167.51999,318.4,5.0,11.535],[172.51999,318.4,4.4299927,11.535],[179.41998,318.4,2.7700043,11.535],[182.20999,318.4,3.8899994,11.535],[188.59999,318.4,6.6600037,11.535],[195.29,318.4,5.0,11.535],[56.8,305.0,8.663998,12.642],[65.404,305.0,6.0,12.642],[71.404,305.0,3.3239975,12.642],[74.703995,305.0,4.6679993,12.642],[82.395996,305.0,5.316002,12.642],[87.7,305.0,6.0,12.642],[93.784,305.0,3.3239975,12.642],[97.08399,305.0,5.316002,12.642],[105.38799,305.0,3.3239975,12.642],[108.68799,305.0,3.9960022,12.642],[112.68399,305.0,6.0,12.642],[118.68399,305.0,3.9960022,12.642],[122.67999,305.0,5.316002,12.642],[131.068,305.0,6.0,12.642],[137.068,305.0,6.0,12.642],[143.068,305.0,3.3240051,12.642],[146.368,305.0,6.0,12.642],[152.368,305.0,3.9960022,12.642],[159.364,305.0,3.3240051,12.642],[162.664,305.0,6.0,12.642],[171.748,305.0,3.3240051,12.642],[175.048,305.0,3.3240051,12.642],[178.348,305.0,6.0,12.642],[184.348,305.0,3.9960022,12.642],[188.34401,305.0,5.3159943,12.642],[193.64801,305.0,3.9960022,12.642],[197.64401,305.0,6.0,12.642],[203.64401,305.0,11.039993,12.642],[214.73201,305.0,6.0,12.642],[220.73201,305.0,6.0,12.642],[226.73201,305.0,3.3240051,12.642],[230.03201,305.0,3.3240051,12.642],[233.33202,305.0,6.0,12.642],[239.33202,305.0,6.0,12.642],[245.33202,305.0,6.0,12.642],[251.33202,305.0,3.0,12.642],[254.33202,305.0,5.3159943,12.642],[259.63602,305.0,6.0,12.642],[265.72003,305.0,9.324005,12.642],[278.02005,305.0,3.9960022,12.642],[282.01605,305.0,5.3160095,12.642],[287.32007,305.0,6.0,12.642],[293.32007,305.0,3.9960022,12.642],[297.31607,305.0,5.3160095,12.642],[302.6201,305.0,6.0,12.642],[308.6201,305.0,5.3160095,12.642],[313.9241,305.0,6.0,12.642],[319.9241,305.0,6.0,12.642],[326.00812,305.0,5.3160095,12.642],[331.31213,305.0,3.9960022,12.642],[335.30814,305.0,3.3240051,12.642],[338.60815,305.0,3.3240051,12.642],[344.99216,305.0,3.3240051,12.642],[348.29218,305.0,6.0,12.642],[357.29218,305.0,6.0,12.642],[363.29218,305.0,6.0,12.642],[369.29218,305.0,3.3240051,12.642],[372.5922,305.0,6.0,12.642],[378.5922,305.0,6.0,12.642],[384.5922,305.0,3.3240051,12.642],[387.9762,305.0,5.3160095,12.642],[393.2802,305.0,3.3240051,12.642],[396.58023,305.0,5.3160095,12.642],[404.96823,305.0,6.0,12.642],[410.96823,305.0,6.0,12.642],[416.96823,305.0,3.9960022,12.642],[420.96423,305.0,6.0,12.642],[426.96423,305.0,6.0,12.642],[432.96423,305.0,6.0,12.642],[438.96423,305.0,3.3240051,12.642],[442.26425,305.0,5.3160095,12.642],[447.56827,305.0,6.0,12.642],[453.56827,305.0,11.040009,12.642],[464.65628,305.0,9.324005,12.642],[473.9563,305.0,4.6679993,12.642],[478.6483,305.0,6.0,12.642],[484.6483,305.0,3.0,12.642],[487.6483,305.0,5.3160095,12.642],[492.9523,305.0,6.0,12.642],[498.9523,305.0,9.324005,12.642],[511.25232,305.0,6.0,12.642],[517.2523,305.0,5.315979,12.642],[522.5563,305.0,3.3239746,12.642],[525.94025,305.0,3.3239746,12.642],[529.24023,305.0,3.3239746,12.642],[56.8,291.2,5.315998,12.642],[62.103996,291.2,4.6679993,12.642],[66.7,291.2,4.6679993,12.642],[71.392,291.2,5.316002,12.642],[79.78,291.2,5.316002,12.642],[85.084,291.2,3.3239975,12.642],[88.383995,291.2,3.3239975,12.642],[91.68399,291.2,3.3239975,12.642],[94.983986,291.2,6.0,12.642],[101.067986,291.2,9.3239975,12.642],[113.36798,291.2,6.0,12.642],[119.36798,291.2,6.0,12.642],[125.36798,291.2,3.3240051,12.642],[128.66798,291.2,6.0,12.642],[134.66798,291.2,3.9960022,12.642],[138.66399,291.2,5.3159943,12.642],[147.05199,291.2,5.3159943,12.642],[152.35599,291.2,6.0,12.642],[161.35599,291.2,3.9960022,12.642],[165.35199,291.2,6.0,12.642],[171.35199,291.2,6.0,12.642],[177.35199,291.2,3.3240051,12.642],[180.652,291.2,5.3159943,12.642],[185.956,291.2,3.3240051,12.642],[192.34,291.2,6.0,12.642],[198.34,291.2,6.0,12.642],[204.34,291.2,3.3240051,12.642],[207.64,291.2,3.3240051,12.642],[210.94,291.2,5.3159943,12.642],[219.328,291.2,6.0,12.642],[225.328,291.2,5.3159943,12.642],[230.632,291.2,3.9960022,12.642],[234.628,291.2,3.3240051,12.642],[237.92801,291.2,5.3159943,12.642],[243.31601,291.2,3.3240051,12.642],[246.61601,291.2,6.0,12.642],[252.61601,291.2,3.995987,12.642],[255.916,291.2,3.0000153,12.642],[261.91602,291.2,7.3200073,12.642],[269.21204,291.2,6.0,12.642],[275.21204,291.2,5.3160095,12.642],[280.60004,291.2,5.3160095,12.642],[285.90405,291.2,6.0,12.642],[291.90405,291.2,3.3240051,12.642],[295.20407,291.2,5.3160095,12.642],[300.5081,291.2,6.0,12.642],[306.5081,291.2,3.9960022,12.642],[313.6001,291.2,4.6679993,12.642],[318.29208,291.2,3.3240051,12.642],[321.5921,291.2,6.0,12.642],[327.5921,291.2,3.3240051,12.642],[333.89212,291.2,6.0,12.642],[339.89212,291.2,3.3240051,12.642],[343.19214,291.2,6.0,12.642],[349.19214,291.2,3.3240051,12.642],[352.49216,291.2,6.0,12.642],[358.57617,291.2,5.3160095,12.642],[363.8802,291.2,3.9960022,12.642],[367.8762,291.2,11.040009,12.642],[378.9642,291.2,5.3160095,12.642],[384.26822,291.2,6.0,12.642],[390.26822,291.2,9.324005,12.642],[399.56824,291.2,5.3160095,12.642],[404.87225,291.2,5.3160095,12.642],[410.17627,291.2,4.6679993,12.642],[414.86826,291.2,3.3240051,12.642],[418.16827,291.2,3.0,12.642],[421.16827,291.2,6.0,12.642],[427.16827,291.2,5.3160095,12.642],[432.55627,291.2,3.3240051,12.642],[438.8563,291.2,6.0,12.642],[444.8563,291.2,5.3160095,12.642],[450.1603,291.2,5.3160095,12.642],[455.46432,291.2,5.3160095,12.642],[460.85233,291.2,5.3160095,12.642],[466.15634,291.2,5.3160095,12.642],[471.46036,291.2,5.3160095,12.642],[476.84836,291.2,3.3240051,12.642],[483.14838,291.2,5.3160095,12.642],[488.4524,291.2,6.0,12.642],[494.4524,291.2,6.0,12.642],[500.4524,291.2,3.3240051,12.642],[503.7524,291.2,6.0,12.642],[509.7524,291.2,5.3160095,12.642],[515.14044,291.2,3.3239746,12.642],[518.4404,291.2,5.315979,12.642],[523.7444,291.2,3.3239746,12.642],[530.12836,291.2,6.0,12.642],[536.12836,291.2,6.0,12.642],[542.12836,291.2,6.0,12.642],[56.8,277.40002,6.0,12.642],[62.8,277.40002,3.9959984,12.642],[66.796,277.40002,6.0,12.642],[72.796,277.40002,3.3239975,12.642],[76.09599,277.40002,6.0,12.642],[82.09599,277.40002,5.316002,12.642],[87.399994,277.40002,6.0,12.642],[93.399994,277.40002,3.3239975,12.642],[96.69999,277.40002,3.0,12.642],[102.78399,277.40002,4.6679993,12.642],[107.37999,277.40002,6.0,12.642],[113.37999,277.40002,6.0,12.642],[119.37999,277.40002,3.3239975,12.642],[125.763985,277.40002,3.3239975,12.642],[129.06398,277.40002,6.0,12.642],[138.06398,277.40002,6.0,12.642],[144.06398,277.40002,5.3159943,12.642],[149.36798,277.40002,8.664001,12.642],[158.05598,277.40002,5.3159943,12.642],[163.35999,277.40002,4.6679993,12.642],[168.05199,277.40002,5.3159943,12.642],[173.35599,277.40002,6.0,12.642],[179.35599,277.40002,3.3240051,12.642],[182.65599,277.40002,11.039993,12.642],[193.74399,277.40002,9.324005,12.642],[203.04399,277.40002,5.3159943,12.642],[208.34799,277.40002,3.0,12.642],[211.34799,277.40002,5.3159943,12.642],[216.652,277.40002,6.0,12.642],[222.736,277.40002,9.324005,12.642],[235.036,277.40002,5.3159943,12.642],[240.34,277.40002,6.0,12.642],[246.34,277.40002,3.3240051,12.642],[249.64,277.40002,6.0,12.642],[255.64,277.40002,5.3159943,12.642],[264.02798,277.40002,6.0,12.642],[270.02798,277.40002,6.0,12.642],[276.02798,277.40002,3.3240051,12.642],[282.328,277.40002,6.0,12.642],[288.328,277.40002,3.9960022,12.642],[292.13202,277.40002,3.9960022,12.642],[296.12802,277.40002,3.3240051,12.642],[299.42804,277.40002,5.3160095,12.642],[304.81604,277.40002,3.3240051,12.642],[308.11606,277.40002,5.3160095,12.642],[316.42007,277.40002,6.0,12.642],[322.42007,277.40002,5.3160095,12.642],[327.7241,277.40002,4.6679993,12.642],[332.41608,277.40002,5.3160095,12.642],[337.7201,277.40002,3.9960022,12.642],[341.7161,277.40002,6.0,12.642],[347.7161,277.40002,6.0,12.642],[353.7161,277.40002,3.3240051,12.642],[360.1001,277.40002,9.324005,12.642],[369.40012,277.40002,6.0,12.642],[375.40012,277.40002,3.3240051,12.642],[378.70013,277.40002,3.3240051,12.642],[382.08414,277.40002,3.3240051,12.642],[385.38416,277.40002,3.3240051,12.642],[391.68417,277.40002,5.3160095,12.642],[396.9882,277.40002,6.0,12.642],[403.0722,277.40002,3.3240051,12.642],[406.37222,277.40002,9.324005,12.642],[418.67224,277.40002,3.3240051,12.642],[421.97226,277.40002,6.0,12.642],[431.05627,277.40002,5.3160095,12.642],[436.3603,277.40002,4.6679993,12.642],[441.05228,277.40002,3.3240051,12.642],[447.3523,277.40002,3.3240051,12.642],[450.6523,277.40002,5.3160095,12.642],[455.95633,277.40002,6.0,12.642],[461.95633,277.40002,6.0,12.642],[467.95633,277.40002,3.9960022,12.642],[471.95233,277.40002,6.0,12.642],[477.95233,277.40002,9.324005,12.642],[487.25235,277.40002,3.0,12.642]]},{"id":50,"stringIdxToPositionIdx":[0,1,2,3,4,4,5,6,7,8,9,10,10,11,12,13,14,15,16,16,17,18,19,20,21,22,23,23,24,25,26,27,28,29,30,31,32,33,34,34,35,36,37,38,39,40,41,42,43,43,44,45,46,47,48,49,50,51,51,52,53,54,55,56,57,58,59],"positions":[[56.8,692.1,10.1802025,13.867801],[66.9802,692.1,8.600998,13.867801],[75.5812,692.1,3.9057007,13.867801],[79.4869,692.1,7.8395996,13.867801],[91.274506,692.1,7.8395996,13.867801],[99.07181,692.1,7.8395996,13.867801],[106.86911,692.1,3.9057007,13.867801],[110.77481,692.1,7.8395996,13.867801],[118.65671,692.1,7.8395996,13.867801],[126.45401,692.1,4.6952972,13.867801],[135.05501,692.1,10.180206,13.867801],[145.23521,692.1,7.8395996,13.867801],[153.03252,692.1,8.600998,13.867801],[161.71811,692.1,7.8395996,13.867801],[169.51541,692.1,7.8395996,13.867801],[177.31271,692.1,4.6952972,13.867801],[185.9983,692.1,7.8395996,13.867801],[193.79561,692.1,8.600998,13.867801],[202.3966,692.1,8.600998,13.867801],[210.9976,692.1,4.6952972,13.867801],[215.6929,692.1,7.8395996,13.867801],[223.5748,692.1,7.8395996,13.867801],[231.3721,692.1,4.6952972,13.867801],[239.9731,692.1,3.9057007,13.867801],[243.8788,692.1,8.600998,13.867801],[252.4798,692.1,4.6953125,13.867801],[257.1751,692.1,8.601013,13.867801],[265.77612,692.1,5.484894,13.867801],[271.26102,692.1,12.534912,13.867801],[283.85233,692.1,7.8395996,13.867801],[291.64963,692.1,4.6953125,13.867801],[296.34494,692.1,3.9057007,13.867801],[300.25064,692.1,8.601013,13.867801],[308.85165,692.1,8.601013,13.867801],[321.44296,692.1,4.6953125,13.867801],[326.13828,692.1,7.8395996,13.867801],[333.93558,692.1,8.601013,13.867801],[342.5366,692.1,8.601013,13.867801],[351.1376,692.1,4.6953125,13.867801],[355.83292,692.1,7.8395996,13.867801],[363.7148,692.1,3.9057007,13.867801],[367.6205,692.1,8.601013,13.867801],[376.22153,692.1,7.8395996,13.867801],[388.00912,692.1,6.6834106,13.867801],[394.69254,692.1,10.180206,13.867801],[404.87274,692.1,8.601013,13.867801],[413.47375,692.1,8.601013,13.867801],[422.07477,692.1,4.6953125,13.867801],[426.77008,692.1,7.8395996,13.867801],[434.56738,692.1,7.8395996,13.867801],[442.3647,692.1,4.6953125,13.867801],[451.0503,692.1,8.601013,13.867801],[459.6513,692.1,8.601013,13.867801],[468.25232,692.1,3.9057007,13.867801],[472.15802,692.1,8.601013,13.867801],[480.75903,692.1,4.6953125,13.867801],[485.45435,692.1,4.6953125,13.867801],[490.14966,692.1,6.6834106,13.867801],[496.83307,692.1,4.6953125,13.867801]]},{"id":51,"stringIdxToPositionIdx":[0,1,2,3,4,5,6,6,7,8,9,10,10,11,12,13,14,15,16,17,18,19,20,20,21,22,23,24,25,25,26,27,27,28,29,30,30,31,32,33,34,35,36,36,37,38,39,40,40,41,42,43,44,45,46,47,48,49,50,50,51,52,53,54,55,55,56,57,57,58,59,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,79,80,81,82,82,83,84,85,86,87,87,88,89,90,91,92,93,93,94,95,95,96,97,98,99,100,101,102,103],"positions":[[56.8,673.8,6.1000023,11.535],[62.9,673.8,4.4300003,11.535],[67.3,673.8,5.0,11.535],[72.3,673.8,5.0,11.535],[77.3,673.8,4.4300003,11.535],[81.700005,673.8,2.7699966,11.535],[86.99,673.8,6.659996,11.535],[93.67999,673.8,5.0,11.535],[98.67999,673.8,4.4300003,11.535],[103.079994,673.8,5.0,11.535],[110.66999,673.8,6.0999985,11.535],[115.66999,673.8,4.4300003,11.535],[120.06999,673.8,3.8899994,11.535],[123.95999,673.8,2.7699966,11.535],[126.749985,673.8,4.4299927,11.535],[131.14998,673.8,5.0,11.535],[136.14998,673.8,3.8899994,11.535],[140.03998,673.8,5.0,11.535],[145.03998,673.8,2.7700043,11.535],[147.82999,673.8,4.4299927,11.535],[154.72998,673.8,5.0,11.535],[159.72998,673.8,2.7700043,11.535],[162.51999,673.8,5.0,11.535],[167.51999,673.8,5.0,11.535],[172.51999,673.8,4.4299927,11.535],[179.41998,673.8,2.7700043,11.535],[182.20999,673.8,3.8899994,11.535],[188.59999,673.8,5.5599976,11.535],[193.19998,673.8,4.4299927,11.535],[197.59998,673.8,3.8899994,11.535],[56.8,662.2,6.1000023,11.535],[62.9,662.2,4.4300003,11.535],[67.3,662.2,5.0,11.535],[72.3,662.2,5.0,11.535],[77.3,662.2,4.4300003,11.535],[81.700005,662.2,2.7699966,11.535],[86.99,662.2,6.659996,11.535],[93.67999,662.2,5.0,11.535],[98.67999,662.2,4.4300003,11.535],[103.079994,662.2,5.0,11.535],[110.66999,662.2,6.0999985,11.535],[115.66999,662.2,4.4300003,11.535],[120.06999,662.2,3.8899994,11.535],[123.95999,662.2,2.7699966,11.535],[126.749985,662.2,4.4299927,11.535],[131.14998,662.2,5.0,11.535],[136.14998,662.2,3.8899994,11.535],[140.03998,662.2,5.0,11.535],[145.03998,662.2,2.7700043,11.535],[147.82999,662.2,4.4299927,11.535],[154.72998,662.2,5.0,11.535],[159.72998,662.2,2.7700043,11.535],[162.51999,662.2,5.0,11.535],[167.51999,662.2,5.0,11.535],[172.51999,662.2,4.4299927,11.535],[179.41998,662.2,2.7700043,11.535],[182.20999,662.2,3.8899994,11.535],[188.59999,662.2,6.6600037,11.535],[195.29,662.2,5.0,11.535],[56.8,650.7,5.5600014,11.535],[62.3,650.7,6.66,11.535],[68.99,650.7,5.0,11.535],[73.99,650.7,5.0,11.535],[78.99,650.7,2.7699966,11.535],[81.77999,650.7,5.0,11.535],[86.77999,650.7,4.4300003,11.535],[91.17999,650.7,2.7699966,11.535],[93.969986,650.7,3.3300018,11.535],[97.26999,650.7,3.3300018,11.535],[100.56999,650.7,5.0,11.535],[105.56999,650.7,2.7699966,11.535],[108.359985,650.7,5.0,11.535],[113.359985,650.7,3.8899994,11.535],[117.249985,650.7,7.220001,11.535],[124.44999,650.7,4.9999924,11.535],[129.44998,650.7,2.7700043,11.535],[132.23999,650.7,2.7700043,11.535],[135.03,650.7,5.0,11.535],[140.03,650.7,5.0,11.535],[147.53,650.7,6.6600037,11.535],[154.22,650.7,5.0,11.535],[159.22,650.7,3.8899994,11.535],[165.61,650.7,2.7700043,11.535],[168.31,650.7,5.0,11.535],[173.31,650.7,5.0,11.535],[178.31,650.7,5.0,11.535],[183.31,650.7,5.0,11.535],[190.81,650.7,3.8899994,11.535],[194.7,650.7,5.0,11.535],[199.7,650.7,5.0,11.535],[204.7,650.7,5.0,11.535],[209.7,650.7,2.7700043,11.535],[212.49,650.7,5.0,11.535],[219.99,650.7,5.0,11.535],[224.99,650.7,4.4299927,11.535],[231.89,650.7,5.0,11.535],[236.89,650.7,5.0,11.535],[241.89,650.7,5.0,11.535],[246.89,650.7,4.4299927,11.535],[251.29,650.7,4.9999847,11.535],[256.28998,650.7,3.8900146,11.535],[260.18,650.7,3.8900146,11.535],[264.07,650.7,5.5599976,11.535]]},{"id":52,"stringIdxToPositionIdx":[0,1,2,3,4,5,6,7,8,9,10,11,11,12,13,14,15],"positions":[[59.6,634.5,8.664001,12.642],[68.288,634.5,5.316002,12.642],[73.592,634.5,4.6679993,12.642],[78.284004,634.5,5.316002,12.642],[83.588005,634.5,3.9960022,12.642],[87.58401,634.5,3.3239975,12.642],[90.884,634.5,6.0,12.642],[96.884,634.5,3.3239975,12.642],[100.268,634.5,3.3239975,12.642],[103.56799,634.5,6.0,12.642],[109.56799,634.5,6.0,12.642],[118.36399,634.5,7.3199997,12.642],[124.86799,634.5,5.316002,12.642],[130.172,634.5,6.0,12.642],[136.172,634.5,3.3240051,12.642]]},{"id":53,"stringIdxToPositionIdx":[0,1,2,3,4,5,6,7,7,8,9,10,11,12],"positions":[[308.8,634.5,7.9920044,12.642],[316.792,634.5,6.0,12.642],[322.792,634.5,6.0,12.642],[328.792,634.5,3.3240051,12.642],[332.092,634.5,5.3160095,12.642],[337.39603,634.5,5.3160095,12.642],[342.70004,634.5,3.3240051,12.642],[349.08405,634.5,6.671997,12.642],[355.76804,634.5,6.0,12.642],[361.76804,634.5,3.3240051,12.642],[365.06805,634.5,6.0,12.642],[371.06805,634.5,3.3240051,12.642]]},{"id":54,"stringIdxToPositionIdx":[0,1,2,3,4,4,5,6,7,8,8,9,10,11,12,13,13,14,15,16,17,18,18,19,20,20,21,22,23,24,25,26,27,28,29,30,31,32,33,33,34,35,35,36,37,38,39,40,41,42,43,44,44,45,46,47,48,49,49,50,51,52,53,53,54,55,56,57,58,59,59,60,61,62,63,64,65,66,66,67,68,69,70,71,71,72,73,74,75,76,77,77,78,79,79,80,81,82,83,84,85,85,86,87,88,89,90,90,91,92,93,94,95,96,97,98,99,99,100,101,102,103,104,105,106,107,108,108,109,110,111,112,112,113,114,115,116,117,118,119,120,120,121,122,123,124,125,126,127,128,129,129,130,131,132,132,133,134,135,136,137,138,139,140,141,141,142,143,144,145,145,146,147,147,148,149,150,151,152,152,153,154,155,155,156,157,158,159,160,161,162,162,163,164,165,166,167,168,169,170,170,171,172,173,174,175,176,176,177,178,179,180,180,181,182,182,183,184,185,185,186,187,188,189,190,191,192,193],"positions":[[59.6,617.9,6.498001,10.981501],[66.098,617.9,4.5,10.981501],[70.598,617.9,2.4930038,10.981501],[73.091,617.9,3.5009995,10.981501],[78.887,617.9,3.9869995,10.981501],[82.874,617.9,4.5,10.981501],[87.374,617.9,2.4930038,10.981501],[89.867004,617.9,3.9869995,10.981501],[96.05,617.9,2.4929962,10.981501],[98.543,617.9,2.9970016,10.981501],[101.54,617.9,4.5,10.981501],[106.04,617.9,2.9970016,10.981501],[109.037,617.9,3.9869995,10.981501],[115.319,617.9,4.5,10.981501],[119.819,617.9,4.5,10.981501],[124.319,617.9,2.4929962,10.981501],[126.812,617.9,4.5,10.981501],[131.312,617.9,2.996994,10.981501],[136.50499,617.9,2.4929962,10.981501],[138.99799,617.9,4.5,10.981501],[145.79298,617.9,2.996994,10.981501],[148.69098,617.9,3.9869995,10.981501],[152.67798,617.9,4.5,10.981501],[157.17798,617.9,2.996994,10.981501],[160.17497,617.9,3.9869995,10.981501],[164.16197,617.9,4.5,10.981501],[168.66197,617.9,3.9869995,10.981501],[172.64897,617.9,4.5,10.981501],[177.14897,617.9,4.5,10.981501],[181.64897,617.9,3.9869995,10.981501],[185.63597,617.9,2.996994,10.981501],[188.63297,617.9,2.4929962,10.981501],[191.12596,617.9,2.4929962,10.981501],[195.91396,617.9,2.4929962,10.981501],[198.40695,617.9,4.5,10.981501],[205.10295,617.9,4.5,10.981501],[209.60295,617.9,4.5,10.981501],[214.10295,617.9,2.4929962,10.981501],[216.59595,617.9,4.5,10.981501],[221.09595,617.9,4.5,10.981501],[225.59595,617.9,2.4929962,10.981501],[228.08894,617.9,3.9869995,10.981501],[232.07594,617.9,2.4929962,10.981501],[234.56894,617.9,3.9869995,10.981501],[240.85094,617.9,4.5,10.981501],[245.25194,617.9,3.9869995,10.981501],[249.23894,617.9,2.4929962,10.981501],[251.73193,617.9,2.4929962,10.981501],[254.22493,617.9,2.4929962,10.981501],[259.01294,617.9,3.9869995,10.981501],[262.99994,617.9,3.501007,10.981501],[266.50095,617.9,3.501007,10.981501],[270.00195,617.9,3.9869995,10.981501],[276.18497,617.9,3.9869995,10.981501],[280.17197,617.9,2.4930115,10.981501],[282.66498,617.9,2.4930115,10.981501],[285.158,617.9,2.4930115,10.981501],[287.651,617.9,4.5,10.981501],[292.151,617.9,6.9930115,10.981501],[59.6,607.6,5.9940033,10.981501],[65.594,607.6,4.5,10.981501],[70.094,607.6,4.5,10.981501],[74.594,607.6,2.4930038,10.981501],[77.087006,607.6,3.9869995,10.981501],[81.074005,607.6,3.9869995,10.981501],[85.061005,607.6,2.4929962,10.981501],[89.849,607.6,5.003998,10.981501],[94.853,607.6,4.5,10.981501],[99.353,607.6,2.4929962,10.981501],[101.84599,607.6,4.5,10.981501],[106.34599,607.6,2.4929962,10.981501],[111.03499,607.6,4.5,10.981501],[115.53499,607.6,4.5,10.981501],[120.03499,607.6,2.4929962,10.981501],[122.527985,607.6,4.5,10.981501],[127.027985,607.6,2.996994,10.981501],[130.02498,607.6,3.9869995,10.981501],[136.30698,607.6,3.9869995,10.981501],[140.29398,607.6,4.5,10.981501],[146.98997,607.6,2.996994,10.981501],[149.98697,607.6,4.5,10.981501],[154.48697,607.6,4.5,10.981501],[158.98697,607.6,2.4929962,10.981501],[161.47997,607.6,3.9869995,10.981501],[165.46696,607.6,2.4929962,10.981501],[170.15596,607.6,4.5,10.981501],[174.65596,607.6,4.5,10.981501],[179.15596,607.6,2.4929962,10.981501],[181.64896,607.6,2.4929962,10.981501],[184.14195,607.6,3.9869995,10.981501],[190.42395,607.6,4.5,10.981501],[194.92395,607.6,3.9869995,10.981501],[198.91095,607.6,2.996994,10.981501],[201.90794,607.6,2.4929962,10.981501],[204.40094,607.6,3.9869995,10.981501],[208.38794,607.6,2.4929962,10.981501],[210.88094,607.6,4.5,10.981501],[215.38094,607.6,2.996994,10.981501],[217.78394,607.6,2.25,10.981501],[222.37393,607.6,5.4900055,10.981501],[227.86394,607.6,4.5,10.981501],[232.36394,607.6,3.9869995,10.981501],[236.35094,607.6,3.9869995,10.981501],[240.33794,607.6,4.5,10.981501],[244.83794,607.6,2.4929962,10.981501],[247.24094,607.6,3.9869995,10.981501],[251.22794,607.6,4.5,10.981501],[255.72794,607.6,2.9970093,10.981501],[261.01996,607.6,3.501007,10.981501],[264.52097,607.6,2.4930115,10.981501],[267.01398,607.6,4.5,10.981501],[271.51398,607.6,2.4930115,10.981501],[59.6,597.2,4.5,10.981501],[64.1,597.2,3.9869995,10.981501],[68.087,597.2,3.9869995,10.981501],[72.074,597.2,3.9869995,10.981501],[76.061,597.2,3.9869995,10.981501],[80.048,597.2,3.9869995,10.981501],[84.034996,597.2,3.9869995,10.981501],[88.021996,597.2,2.4930038,10.981501],[92.711,597.2,3.9869995,10.981501],[96.698,597.2,4.5,10.981501],[101.198,597.2,4.5,10.981501],[105.698,597.2,2.4929962,10.981501],[108.190994,597.2,4.5,10.981501],[112.690994,597.2,3.9869995,10.981501],[116.67799,597.2,2.4929962,10.981501],[119.17099,597.2,3.9869995,10.981501],[123.15799,597.2,2.4929962,10.981501],[127.945984,597.2,4.5,10.981501],[132.44598,597.2,4.5,10.981501],[136.94598,597.2,4.5,10.981501],[143.64198,597.2,4.5,10.981501],[148.14198,597.2,2.996994,10.981501],[151.13898,597.2,4.5,10.981501],[155.63898,597.2,2.4929962,10.981501],[158.13197,597.2,4.5,10.981501],[162.63197,597.2,3.9869995,10.981501],[166.61897,597.2,4.5,10.981501],[171.11897,597.2,2.4929962,10.981501],[173.52197,597.2,2.25,10.981501],[178.11197,597.2,3.501007,10.981501],[181.61298,597.2,4.5,10.981501],[186.11298,597.2,4.5,10.981501],[190.61298,597.2,2.4929962,10.981501],[195.30197,597.2,2.4929962,10.981501],[197.79497,597.2,4.5,10.981501],[204.58997,597.2,3.9869995,10.981501],[208.57697,597.2,4.5,10.981501],[213.07697,597.2,2.4929962,10.981501],[215.56996,597.2,4.5,10.981501],[220.06996,597.2,3.9869995,10.981501],[226.25296,597.2,4.5,10.981501],[230.75296,597.2,4.5,10.981501],[235.25296,597.2,2.4929962,10.981501],[240.04095,597.2,4.5,10.981501],[244.54095,597.2,2.996994,10.981501],[247.33995,597.2,2.996994,10.981501],[250.33694,597.2,2.4929962,10.981501],[252.82994,597.2,3.9870148,10.981501],[256.81696,597.2,2.4930115,10.981501],[259.30997,597.2,3.9869995,10.981501],[265.49298,597.2,4.5,10.981501],[269.99298,597.2,3.9869995,10.981501],[273.97998,597.2,3.501007,10.981501],[277.481,597.2,3.9869995,10.981501],[281.468,597.2,2.9970093,10.981501],[284.465,597.2,4.5,10.981501],[288.965,597.2,4.5,10.981501],[293.465,597.2,2.4930115,10.981501],[59.6,586.9,6.993004,10.981501],[66.593,586.9,4.5,10.981501],[71.093,586.9,2.4929962,10.981501],[73.586,586.9,2.4929962,10.981501],[76.078995,586.9,2.4929962,10.981501],[78.57199,586.9,2.4929962,10.981501],[83.359985,586.9,3.9869995,10.981501],[87.346985,586.9,4.5,10.981501],[91.846985,586.9,2.4929962,10.981501],[94.33998,586.9,6.992996,10.981501],[103.52898,586.9,2.4929962,10.981501],[106.02197,586.9,4.5,10.981501],[112.81697,586.9,3.9869995,10.981501],[116.80397,586.9,3.5009995,10.981501],[120.30497,586.9,2.4930038,10.981501],[124.99397,586.9,2.4929962,10.981501],[127.48697,586.9,3.9869995,10.981501],[131.47397,586.9,4.5,10.981501],[135.97397,586.9,4.5,10.981501],[140.47397,586.9,2.996994,10.981501],[143.47096,586.9,4.5,10.981501],[147.97096,586.9,6.992996,10.981501],[154.96396,586.9,2.25,10.981501]]},{"id":55,"stringIdxToPositionIdx":[0,1,2,3,4,5,6,7,7,8,9,10,11,12,13,13,14,15,16,17,18,19,20,20,21,22,23,24,25,26,27,28,28,29,30,31,32,33,34,35,36,36,37,38,39,40,41,42,42,43,44,45,45,46,47,48,49,49,50,51,52,53,53,54,55,56,56,57,58,59,60,60,61,62,63,63,64,65,66,67,67,68,69,70,71,71,72,73,74,74,75,76,77,78,79,79,80,81,82,82,83,84,85,86,87,88,89,90,91,91,92,93,94,95,95,96,97,98,98,99,100,101,102,102,103,104,105,106,107,107,108,109,110,111,112,113,114,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,133,134,135,136,137,138,139,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,165,166,167,168,169,170,171,172,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,201,202,203,204,205,206,207,207,208,209,210,211,212,213,214,215,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,231,232,233,234,235,236,237,238,239,239,240,241,242,243,244,245,246,247,248,249,249,250,251,252,253,254,255,256,256,257,258,259,260,261,262,263,264,265,265,266,267,268,269,270,271,272,272,273,274,275,276,277,278,279,280,281,282,283,284,284,285,286,287,288,289,290,291,292,293,293,294,295,296,296,297,298,299,300,300,301,302,303,304,304,305,306,307,308,308,309,310,311,311,312,313,314,315,316,317,318,318,319,320,321,322,322,323,324,325,326,326,327,328,329,330,330,331,332,333,334,335,336,337,338,339,340,340,341,342,343,344,344,345,346,347,348,349,350,351,352,352,353,354,355,356,357,357,358,359,360,360,361,362,363,364,364,365,366,367,368,368,369,370,371,372,372,373,374,375,376,377,378,379,380,380,381,382,383,383,384,385,386,387,387,388,389,390,391,391,392,393,394,395,396,397,398,399,399,400,401,402,403,404,405,406,407,407,408,409,410,411,412,413,414,415,415,416,417,418,419,420,421,422,422,423,424,425,426,427,428,429,430,431,431,432,433,434,435,436,437,438,439,440,441,442,442,443,444,445,446,447,448,449,450,450,451,452,453,454,455,456,456,457,458,459,460,461,462,463,464,464,465,466,467,468,469,470,471,472,473,474,475,475,476,477,478,479,480,481,482,483],"positions":[[308.8,617.9,5.993988,10.981501],[314.79398,617.9,4.5,10.981501],[319.29398,617.9,4.5,10.981501],[323.79398,617.9,2.4930115,10.981501],[326.287,617.9,3.9869995,10.981501],[330.274,617.9,3.9869995,10.981501],[334.261,617.9,2.4930115,10.981501],[338.95,617.9,4.5,10.981501],[343.45,617.9,4.5,10.981501],[347.95,617.9,2.4930115,10.981501],[350.44302,617.9,4.5,10.981501],[354.94302,617.9,2.4930115,10.981501],[357.43604,617.9,2.4930115,10.981501],[362.22406,617.9,5.993988,10.981501],[368.21805,617.9,3.9869995,10.981501],[372.20505,617.9,4.5,10.981501],[376.70505,617.9,2.4930115,10.981501],[379.19806,617.9,2.9970093,10.981501],[382.09607,617.9,3.9869995,10.981501],[386.08307,617.9,2.4930115,10.981501],[390.8711,617.9,5.993988,10.981501],[396.86508,617.9,3.9869995,10.981501],[400.85208,617.9,3.501007,10.981501],[404.3531,617.9,3.9869995,10.981501],[408.3401,617.9,3.9869995,10.981501],[412.3271,617.9,2.9970093,10.981501],[415.3241,617.9,3.9869995,10.981501],[419.3111,617.9,4.5,10.981501],[426.0071,617.9,2.9970093,10.981501],[429.00412,617.9,4.5,10.981501],[433.50412,617.9,4.5,10.981501],[438.00412,617.9,4.5,10.981501],[442.50412,617.9,3.501007,10.981501],[446.00513,617.9,2.4930115,10.981501],[448.49814,617.9,2.9970093,10.981501],[451.49515,617.9,4.5,10.981501],[308.8,607.6,5.003998,10.981501],[313.804,607.6,4.5,10.981501],[318.304,607.6,4.5,10.981501],[322.804,607.6,4.5,10.981501],[327.304,607.6,3.9869995,10.981501],[331.291,607.6,2.4930115,10.981501],[335.98,607.6,5.066986,10.981501],[341.074,607.6,4.5,10.981501],[345.574,607.6,4.5,10.981501],[352.36902,607.6,4.5,10.981501],[356.77002,607.6,4.5,10.981501],[360.97302,607.6,4.5,10.981501],[365.47302,607.6,4.5,10.981501],[372.26804,607.6,4.5,10.981501],[376.76804,607.6,4.5,10.981501],[381.16904,607.6,4.5,10.981501],[385.37204,607.6,4.5,10.981501],[392.16705,607.6,4.5,10.981501],[396.66705,607.6,4.5,10.981501],[401.16705,607.6,4.5,10.981501],[308.8,597.2,5.003998,10.981501],[313.804,597.2,3.9869995,10.981501],[317.791,597.2,4.5,10.981501],[322.291,597.2,2.4930115,10.981501],[326.98,597.2,5.066986,10.981501],[332.074,597.2,4.5,10.981501],[336.574,597.2,4.5,10.981501],[343.36902,597.2,4.5,10.981501],[347.77002,597.2,4.5,10.981501],[351.97302,597.2,4.5,10.981501],[356.47302,597.2,4.5,10.981501],[363.26804,597.2,4.5,10.981501],[367.76804,597.2,4.5,10.981501],[372.16904,597.2,4.5,10.981501],[376.37204,597.2,4.5,10.981501],[383.16705,597.2,4.5,10.981501],[387.66705,597.2,4.5,10.981501],[392.16705,597.2,4.5,10.981501],[308.8,586.9,5.48999,10.981501],[313.597,586.9,3.9869995,10.981501],[317.58398,586.9,2.4930115,10.981501],[320.077,586.9,2.25,10.981501],[322.372,586.9,2.4930115,10.981501],[327.06104,586.9,5.066986,10.981501],[332.15503,586.9,4.5,10.981501],[336.65503,586.9,4.5,10.981501],[343.45004,586.9,4.5,10.981501],[347.95004,586.9,4.5,10.981501],[352.45004,586.9,4.5,10.981501],[356.95004,586.9,4.5,10.981501],[361.45004,586.9,4.5,10.981501],[365.95004,586.9,4.5,10.981501],[370.45004,586.9,4.5,10.981501],[374.95004,586.9,4.5,10.981501],[379.45004,586.9,4.5,10.981501],[308.8,576.5,5.48999,10.981501],[313.597,576.5,3.9869995,10.981501],[317.58398,576.5,2.4930115,10.981501],[320.077,576.5,2.4930115,10.981501],[324.86502,576.5,5.066986,10.981501],[329.959,576.5,4.5,10.981501],[334.459,576.5,4.5,10.981501],[341.15503,576.5,4.5,10.981501],[345.65503,576.5,4.5,10.981501],[350.15503,576.5,4.5,10.981501],[354.65503,576.5,4.5,10.981501],[361.45004,576.5,4.5,10.981501],[365.95004,576.5,4.5,10.981501],[370.45004,576.5,4.5,10.981501],[374.95004,576.5,4.5,10.981501],[379.45004,576.5,4.5,10.981501],[308.8,566.2,5.48999,10.981501],[314.28998,566.2,2.9970093,10.981501],[317.287,566.2,6.9930115,10.981501],[324.28,566.2,3.9869995,10.981501],[328.267,566.2,2.4930115,10.981501],[330.76,566.2,2.4930115,10.981501],[333.25302,566.2,2.4930115,10.981501],[337.94205,566.2,5.003998,10.981501],[342.94604,566.2,3.9869995,10.981501],[346.93304,566.2,2.9970093,10.981501],[349.93005,566.2,2.4930115,10.981501],[352.42307,566.2,4.5,10.981501],[356.92307,566.2,4.5,10.981501],[361.42307,566.2,4.5,10.981501],[365.92307,566.2,6.497986,10.981501],[372.42105,566.2,6.9930115,10.981501],[379.41406,566.2,4.5,10.981501],[383.91406,566.2,4.5,10.981501],[388.41406,566.2,2.4930115,10.981501],[390.90707,566.2,2.4930115,10.981501],[393.4001,566.2,8.279999,10.981501],[401.6891,566.2,3.9869995,10.981501],[405.6761,566.2,4.5,10.981501],[410.1761,566.2,2.25,10.981501],[412.4711,566.2,4.5,10.981501],[416.9711,566.2,4.5,10.981501],[308.8,555.8,5.48999,10.981501],[314.28998,555.8,6.9930115,10.981501],[321.283,555.8,3.9869995,10.981501],[325.27,555.8,2.4930115,10.981501],[327.763,555.8,2.4930115,10.981501],[330.256,555.8,2.4930115,10.981501],[334.94504,555.8,6.9930115,10.981501],[341.93805,555.8,3.9869995,10.981501],[345.92505,555.8,4.5,10.981501],[350.42505,555.8,2.4930115,10.981501],[352.91806,555.8,6.9930115,10.981501],[359.91107,555.8,2.4930115,10.981501],[362.40408,555.8,2.4930115,10.981501],[364.8971,555.8,2.4930115,10.981501],[367.3901,555.8,3.9869995,10.981501],[371.3771,555.8,6.9930115,10.981501],[378.37012,555.8,3.501007,10.981501],[381.87112,555.8,3.9869995,10.981501],[385.85812,555.8,4.5,10.981501],[390.35812,555.8,6.9930115,10.981501],[397.35114,555.8,2.4930115,10.981501],[399.84415,555.8,2.4930115,10.981501],[402.33716,555.8,2.4930115,10.981501],[404.83017,555.8,8.279999,10.981501],[413.11917,555.8,3.9869995,10.981501],[417.10617,555.8,2.9970093,10.981501],[420.10318,555.8,3.9869995,10.981501],[424.09018,555.8,4.5,10.981501],[428.59018,555.8,2.9970093,10.981501],[430.9932,555.8,2.25,10.981501],[433.2882,555.8,4.5,10.981501],[437.7882,555.8,3.9869995,10.981501],[308.8,545.5,3.9869995,10.981501],[312.787,545.5,2.9970093,10.981501],[315.784,545.5,6.9930115,10.981501],[322.777,545.5,3.9869995,10.981501],[326.764,545.5,2.4930115,10.981501],[329.25702,545.5,2.4930115,10.981501],[331.75003,545.5,2.4930115,10.981501],[336.43906,545.5,6.9930115,10.981501],[343.43207,545.5,3.9869995,10.981501],[347.41907,545.5,4.5,10.981501],[351.91907,545.5,2.4930115,10.981501],[354.41208,545.5,6.9930115,10.981501],[361.4051,545.5,2.4930115,10.981501],[363.8981,545.5,2.4930115,10.981501],[366.3911,545.5,2.4930115,10.981501],[368.88412,545.5,3.9869995,10.981501],[372.87112,545.5,6.9930115,10.981501],[379.86414,545.5,3.501007,10.981501],[383.36514,545.5,3.9869995,10.981501],[387.35214,545.5,4.5,10.981501],[391.85214,545.5,6.9930115,10.981501],[398.84515,545.5,2.4930115,10.981501],[401.33817,545.5,2.4930115,10.981501],[403.83118,545.5,2.4930115,10.981501],[406.3242,545.5,8.279999,10.981501],[414.6132,545.5,2.4930115,10.981501],[417.1062,545.5,2.9970093,10.981501],[420.1032,545.5,4.5,10.981501],[424.6032,545.5,4.5,10.981501],[429.1032,545.5,2.4930115,10.981501],[431.59622,545.5,2.4930115,10.981501],[434.08923,545.5,4.5,10.981501],[438.58923,545.5,3.9869995,10.981501],[442.48624,545.5,2.25,10.981501],[444.78125,545.5,4.5,10.981501],[449.28125,545.5,3.9869995,10.981501],[308.8,535.1,5.48999,10.981501],[314.28998,535.1,2.9970093,10.981501],[317.287,535.1,6.9930115,10.981501],[324.28,535.1,3.9869995,10.981501],[328.267,535.1,2.4930115,10.981501],[330.76,535.1,2.4930115,10.981501],[335.44904,535.1,3.9869995,10.981501],[339.43604,535.1,4.5,10.981501],[343.93604,535.1,4.5,10.981501],[348.43604,535.1,2.9970093,10.981501],[351.43304,535.1,3.9869995,10.981501],[355.42004,535.1,3.501007,10.981501],[358.92105,535.1,3.501007,10.981501],[362.42206,535.1,2.4930115,10.981501],[367.21008,535.1,3.9869995,10.981501],[371.1071,535.1,4.5,10.981501],[375.6071,535.1,3.9869995,10.981501],[379.5941,535.1,6.9930115,10.981501],[386.5871,535.1,4.5,10.981501],[391.0871,535.1,2.4930115,10.981501],[393.5801,535.1,3.9869995,10.981501],[397.5671,535.1,8.279999,10.981501],[405.8561,535.1,6.9930115,10.981501],[412.84912,535.1,3.9869995,10.981501],[416.83612,535.1,2.4930115,10.981501],[419.32913,535.1,2.4930115,10.981501],[421.82214,535.1,2.25,10.981501],[424.11716,535.1,3.9869995,10.981501],[428.10416,535.1,4.5,10.981501],[432.60416,535.1,6.9930115,10.981501],[308.8,524.8,5.993988,10.981501],[314.79398,524.8,4.5,10.981501],[319.29398,524.8,4.5,10.981501],[323.79398,524.8,2.4930115,10.981501],[326.287,524.8,3.9869995,10.981501],[330.274,524.8,3.9869995,10.981501],[334.261,524.8,2.4930115,10.981501],[336.754,524.8,2.4930115,10.981501],[341.44302,524.8,8.001007,10.981501],[349.44403,524.8,3.9869995,10.981501],[353.43103,524.8,4.5,10.981501],[357.93103,524.8,2.4930115,10.981501],[360.42404,524.8,6.9930115,10.981501],[367.41705,524.8,2.4930115,10.981501],[369.91006,524.8,2.4930115,10.981501],[372.40308,524.8,2.4930115,10.981501],[374.8961,524.8,3.9869995,10.981501],[378.8831,524.8,6.9930115,10.981501],[388.0721,524.8,5.003998,10.981501],[393.0761,524.8,3.9869995,10.981501],[397.0631,524.8,4.5,10.981501],[401.5631,524.8,6.9930115,10.981501],[408.55612,524.8,2.4930115,10.981501],[411.04913,524.8,2.4930115,10.981501],[413.54214,524.8,2.4930115,10.981501],[308.8,514.4,5.48999,10.981501],[313.597,514.4,3.9869995,10.981501],[317.58398,514.4,2.4930115,10.981501],[320.077,514.4,3.9869995,10.981501],[324.064,514.4,4.5,10.981501],[328.564,514.4,4.5,10.981501],[333.064,514.4,4.5,10.981501],[337.564,514.4,4.5,10.981501],[342.064,514.4,3.9869995,10.981501],[348.346,514.4,4.5,10.981501],[352.846,514.4,4.5,10.981501],[357.346,514.4,6.9930115,10.981501],[364.33902,514.4,4.5,10.981501],[368.83902,514.4,3.9869995,10.981501],[372.82602,514.4,2.9970093,10.981501],[375.82303,514.4,2.4930115,10.981501],[380.51205,514.4,5.066986,10.981501],[385.60605,514.4,4.5,10.981501],[390.10605,514.4,4.5,10.981501],[394.60605,514.4,4.5,10.981501],[399.10605,514.4,4.5,10.981501],[403.60605,514.4,4.5,10.981501],[408.10605,514.4,4.5,10.981501],[412.60605,514.4,4.5,10.981501],[417.10605,514.4,4.5,10.981501],[421.60605,514.4,4.5,10.981501],[426.10605,514.4,4.5,10.981501],[430.60605,514.4,4.5,10.981501],[308.8,504.1,5.48999,10.981501],[313.597,504.1,3.9869995,10.981501],[317.58398,504.1,2.4930115,10.981501],[320.077,504.1,3.9869995,10.981501],[324.064,504.1,4.5,10.981501],[328.564,504.1,4.5,10.981501],[333.064,504.1,4.5,10.981501],[337.564,504.1,4.5,10.981501],[342.064,504.1,3.9869995,10.981501],[348.346,504.1,6.497986,10.981501],[354.844,504.1,4.5,10.981501],[359.344,504.1,2.4930115,10.981501],[364.03302,504.1,5.066986,10.981501],[369.127,504.1,4.5,10.981501],[373.627,504.1,4.5,10.981501],[378.127,504.1,4.5,10.981501],[384.82303,504.1,4.5,10.981501],[389.32303,504.1,4.5,10.981501],[393.82303,504.1,4.5,10.981501],[398.32303,504.1,4.5,10.981501],[405.11804,504.1,4.5,10.981501],[409.61804,504.1,4.5,10.981501],[414.11804,504.1,4.5,10.981501],[418.61804,504.1,4.5,10.981501],[308.8,493.7,5.003998,10.981501],[313.804,493.7,3.9869995,10.981501],[317.791,493.7,4.5,10.981501],[324.487,493.7,4.5,10.981501],[328.987,493.7,4.5,10.981501],[333.487,493.7,6.9930115,10.981501],[340.48,493.7,4.5,10.981501],[344.98,493.7,3.9869995,10.981501],[348.967,493.7,2.9970093,10.981501],[351.96402,493.7,2.4930115,10.981501],[356.75204,493.7,5.066986,10.981501],[361.75604,493.7,4.5,10.981501],[366.25604,493.7,4.5,10.981501],[370.75604,493.7,4.5,10.981501],[377.55106,493.7,4.5,10.981501],[382.05106,493.7,4.5,10.981501],[386.55106,493.7,4.5,10.981501],[391.05106,493.7,4.5,10.981501],[397.74707,493.7,4.5,10.981501],[402.24707,493.7,4.5,10.981501],[406.74707,493.7,4.5,10.981501],[411.24707,493.7,4.5,10.981501],[308.8,483.4,5.48999,10.981501],[313.597,483.4,3.9869995,10.981501],[317.58398,483.4,2.4930115,10.981501],[320.077,483.4,3.9869995,10.981501],[324.064,483.4,4.5,10.981501],[328.564,483.4,4.5,10.981501],[333.064,483.4,4.5,10.981501],[337.564,483.4,4.5,10.981501],[342.064,483.4,3.9869995,10.981501],[346.051,483.4,2.4930115,10.981501],[350.83902,483.4,5.066986,10.981501],[355.84302,483.4,4.5,10.981501],[360.34302,483.4,4.5,10.981501],[364.84302,483.4,4.5,10.981501],[371.63803,483.4,4.5,10.981501],[376.13803,483.4,4.5,10.981501],[380.63803,483.4,4.5,10.981501],[385.13803,483.4,4.5,10.981501],[389.63803,483.4,4.5,10.981501],[394.13803,483.4,4.5,10.981501],[398.63803,483.4,4.5,10.981501],[403.13803,483.4,4.5,10.981501],[308.8,473.0,5.003998,10.981501],[313.804,473.0,4.5,10.981501],[318.304,473.0,4.5,10.981501],[322.804,473.0,4.5,10.981501],[327.304,473.0,3.9869995,10.981501],[333.487,473.0,6.497986,10.981501],[339.985,473.0,4.5,10.981501],[344.485,473.0,2.25,10.981501],[348.976,473.0,5.066986,10.981501],[354.07,473.0,4.5,10.981501],[358.57,473.0,4.5,10.981501],[363.07,473.0,4.5,10.981501],[369.86502,473.0,4.5,10.981501],[374.36502,473.0,4.5,10.981501],[378.86502,473.0,4.5,10.981501],[383.36502,473.0,4.5,10.981501],[390.06104,473.0,4.5,10.981501],[394.56104,473.0,4.5,10.981501],[399.06104,473.0,4.5,10.981501],[403.56104,473.0,4.5,10.981501],[308.8,462.7,5.993988,10.981501],[314.79398,462.7,4.5,10.981501],[319.29398,462.7,4.5,10.981501],[323.79398,462.7,2.4930115,10.981501],[326.287,462.7,3.9869995,10.981501],[330.274,462.7,3.9869995,10.981501],[334.261,462.7,2.4930115,10.981501],[336.754,462.7,2.4930115,10.981501],[341.44302,462.7,4.5,10.981501],[345.94302,462.7,4.5,10.981501],[350.44302,462.7,4.5,10.981501],[357.23804,462.7,4.5,10.981501],[361.73804,462.7,4.5,10.981501],[366.23804,462.7,4.5,10.981501],[370.73804,462.7,4.5,10.981501],[377.43405,462.7,4.5,10.981501],[381.93405,462.7,4.5,10.981501],[386.43405,462.7,4.5,10.981501],[390.93405,462.7,4.5,10.981501],[308.8,452.3,5.48999,10.981501],[314.28998,452.3,4.5,10.981501],[318.78998,452.3,2.9970093,10.981501],[321.787,452.3,4.5,10.981501],[326.287,452.3,4.5,10.981501],[330.787,452.3,3.9869995,10.981501],[334.774,452.3,3.9869995,10.981501],[338.761,452.3,4.5,10.981501],[345.457,452.3,3.9869995,10.981501],[349.444,452.3,4.5,10.981501],[353.944,452.3,4.5,10.981501],[358.444,452.3,2.4930115,10.981501],[360.937,452.3,3.9869995,10.981501],[364.924,452.3,3.9869995,10.981501],[368.911,452.3,2.4930115,10.981501],[371.40402,452.3,2.4930115,10.981501],[376.09305,452.3,5.48999,10.981501],[381.58304,452.3,4.5,10.981501],[386.08304,452.3,2.9970093,10.981501],[389.08005,452.3,4.5,10.981501],[393.58005,452.3,4.5,10.981501],[398.08005,452.3,3.9869995,10.981501],[402.06705,452.3,3.9869995,10.981501],[406.05405,452.3,4.5,10.981501],[412.84906,452.3,5.993988,10.981501],[418.84305,452.3,3.9869995,10.981501],[422.83005,452.3,4.5,10.981501],[427.33005,452.3,2.4930115,10.981501],[429.82306,452.3,2.9970093,10.981501],[432.82007,452.3,3.9869995,10.981501],[436.80707,452.3,2.4930115,10.981501],[441.4961,452.3,2.9970093,10.981501],[444.4931,452.3,4.5,10.981501],[448.9931,452.3,3.501007,10.981501],[452.4941,452.3,2.4930115,10.981501],[454.98712,452.3,2.4930115,10.981501],[457.48013,452.3,2.4930115,10.981501],[459.97314,452.3,4.5,10.981501],[464.47314,452.3,2.4930115,10.981501],[466.96616,452.3,3.9869995,10.981501],[308.8,442.0,6.497986,10.981501],[315.29797,442.0,2.4930115,10.981501],[317.791,442.0,2.4930115,10.981501],[320.284,442.0,3.9869995,10.981501],[324.271,442.0,2.9970093,10.981501],[327.268,442.0,4.5,10.981501],[331.768,442.0,3.9869995,10.981501],[335.755,442.0,2.4930115,10.981501],[338.24802,442.0,2.4930115,10.981501],[340.74103,442.0,4.5,10.981501],[345.24103,442.0,3.9869995,10.981501],[351.42404,442.0,3.9869995,10.981501],[355.41104,442.0,4.5,10.981501],[359.91104,442.0,4.5,10.981501],[364.41104,442.0,2.4930115,10.981501],[366.90405,442.0,3.9869995,10.981501],[370.89105,442.0,3.9869995,10.981501],[374.87805,442.0,2.4930115,10.981501],[377.37106,442.0,2.4930115,10.981501],[382.0601,442.0,5.48999,10.981501],[387.55008,442.0,6.9930115,10.981501],[394.5431,442.0,2.4930115,10.981501],[397.0361,442.0,2.4930115,10.981501],[399.5291,442.0,2.4930115,10.981501],[402.02213,442.0,3.9869995,10.981501],[408.30414,442.0,5.48999,10.981501],[413.79413,442.0,4.5,10.981501],[418.29413,442.0,3.9869995,10.981501],[422.28113,442.0,4.5,10.981501],[426.78113,442.0,4.5,10.981501],[431.28113,442.0,3.9869995,10.981501],[435.26813,442.0,2.9970093,10.981501],[438.26514,442.0,2.4930115,10.981501],[308.8,431.6,6.497986,10.981501],[315.29797,431.6,2.4930115,10.981501],[317.791,431.6,2.4930115,10.981501],[320.284,431.6,3.9869995,10.981501],[324.271,431.6,2.9970093,10.981501],[327.268,431.6,4.5,10.981501],[331.768,431.6,3.9869995,10.981501],[335.755,431.6,2.4930115,10.981501],[338.24802,431.6,2.4930115,10.981501],[340.74103,431.6,4.5,10.981501],[345.24103,431.6,3.9869995,10.981501],[351.42404,431.6,3.9869995,10.981501],[355.41104,431.6,4.5,10.981501],[359.91104,431.6,4.5,10.981501],[364.41104,431.6,2.4930115,10.981501],[366.90405,431.6,3.9869995,10.981501],[370.89105,431.6,3.9869995,10.981501],[374.87805,431.6,2.4930115,10.981501],[377.37106,431.6,2.4930115,10.981501]]},{"id":56,"stringIdxToPositionIdx":[0,1,2,3,4,5,6,7,8,9,9,10,11,12,13,14,15,16,16,17,18,19,20,21,21,22,23,24,25,26,27,28,28,29,30,31,32,32,33,34,35,36,36,37,38,39,40,41,41,42,43,43,44,45,46,47,48,49,50,51],"positions":[[394.9,421.3,5.993988,10.981501],[400.89398,421.3,4.5,10.981501],[405.39398,421.3,4.5,10.981501],[409.89398,421.3,3.9869995,10.981501],[413.88098,421.3,2.9970093,10.981501],[416.878,421.3,4.5,10.981501],[421.378,421.3,4.5,10.981501],[425.878,421.3,4.5,10.981501],[430.378,421.3,3.9869995,10.981501],[436.66,421.3,5.003998,10.981501],[441.664,421.3,4.5,10.981501],[446.164,421.3,3.501007,10.981501],[449.665,421.3,2.4930115,10.981501],[452.15802,421.3,3.9869995,10.981501],[456.14502,421.3,6.9930115,10.981501],[463.13803,421.3,3.501007,10.981501],[393.6,410.9,5.48999,10.981501],[398.496,410.9,4.5,10.981501],[402.996,410.9,6.497986,10.981501],[409.494,410.9,3.9869995,10.981501],[413.481,410.9,2.9970093,10.981501],[418.674,410.9,6.497986,10.981501],[425.172,410.9,3.9869995,10.981501],[429.159,410.9,2.9970093,10.981501],[432.156,410.9,3.9869995,10.981501],[436.143,410.9,4.5,10.981501],[440.643,410.9,3.501007,10.981501],[444.144,410.9,3.9869995,10.981501],[450.42603,410.9,4.5,10.981501],[454.92603,410.9,4.5,10.981501],[459.42603,410.9,4.5,10.981501],[463.92603,410.9,3.9869995,10.981501],[387.1,400.6,6.497986,10.981501],[393.598,400.6,4.5,10.981501],[398.098,400.6,4.5,10.981501],[402.598,400.6,4.5,10.981501],[409.393,400.6,6.497986,10.981501],[415.891,400.6,4.5,10.981501],[420.391,400.6,4.5,10.981501],[424.891,400.6,4.5,10.981501],[429.292,400.6,2.25,10.981501],[433.88202,400.6,5.993988,10.981501],[439.876,400.6,5.48999,10.981501],[447.47202,400.6,6.497986,10.981501],[453.97,400.6,2.4930115,10.981501],[456.463,400.6,3.501007,10.981501],[459.96402,400.6,2.4930115,10.981501],[462.45703,400.6,2.9970093,10.981501],[465.45404,400.6,2.4930115,10.981501],[467.94705,400.6,3.9869995,10.981501],[471.93405,400.6,2.4930115,10.981501]]},{"id":57,"stringIdxToPositionIdx":[0,1,2,3,4,4,5,6,7,8,9,10,10,11,12,13,14,15,16,16,17,18,19,20,21,22,23,23,24,25,26,27,28,29,30,31,32,33,34,34,35,36,37,38,39,40,41,42,43,43,44,45,46,47,48,49,50,51,52,53,54,54,55,56,56,57,58,59,60,61,62,63,64,64,65,66,66,67,68,69,70,71],"positions":[[56.8,692.1,10.1802025,13.867801],[66.9802,692.1,8.600998,13.867801],[75.5812,692.1,3.9057007,13.867801],[79.4869,692.1,7.8395996,13.867801],[91.274506,692.1,7.8395996,13.867801],[99.07181,692.1,7.8395996,13.867801],[106.86911,692.1,3.9057007,13.867801],[110.77481,692.1,7.8395996,13.867801],[118.65671,692.1,7.8395996,13.867801],[126.45401,692.1,4.6952972,13.867801],[135.05501,692.1,10.180206,13.867801],[145.23521,692.1,7.8395996,13.867801],[153.03252,692.1,8.600998,13.867801],[161.71811,692.1,7.8395996,13.867801],[169.51541,692.1,7.8395996,13.867801],[177.31271,692.1,4.6952972,13.867801],[185.9983,692.1,7.8395996,13.867801],[193.79561,692.1,8.600998,13.867801],[202.3966,692.1,8.600998,13.867801],[210.9976,692.1,4.6952972,13.867801],[215.6929,692.1,7.8395996,13.867801],[223.5748,692.1,7.8395996,13.867801],[231.3721,692.1,4.6952972,13.867801],[239.9731,692.1,3.9057007,13.867801],[243.8788,692.1,8.600998,13.867801],[252.4798,692.1,4.6953125,13.867801],[257.1751,692.1,8.601013,13.867801],[265.77612,692.1,5.484894,13.867801],[271.26102,692.1,12.534912,13.867801],[283.85233,692.1,7.8395996,13.867801],[291.64963,692.1,4.6953125,13.867801],[296.34494,692.1,3.9057007,13.867801],[300.25064,692.1,8.601013,13.867801],[308.85165,692.1,8.601013,13.867801],[321.44296,692.1,4.6953125,13.867801],[326.13828,692.1,7.8395996,13.867801],[333.93558,692.1,8.601013,13.867801],[342.5366,692.1,8.601013,13.867801],[351.1376,692.1,4.6953125,13.867801],[355.83292,692.1,7.8395996,13.867801],[363.7148,692.1,3.9057007,13.867801],[367.6205,692.1,8.601013,13.867801],[376.22153,692.1,7.8395996,13.867801],[388.00912,692.1,6.6834106,13.867801],[394.9,692.1,10.180206,13.867801],[405.0802,692.1,8.601013,13.867801],[413.6812,692.1,8.601013,13.867801],[422.28223,692.1,3.9057007,13.867801],[426.18793,692.1,3.9057007,13.867801],[430.09363,692.1,7.8395996,13.867801],[437.97552,692.1,7.8395996,13.867801],[445.77283,692.1,8.601013,13.867801],[454.37384,692.1,4.6953125,13.867801],[459.2,692.1,6.6834106,13.867801],[469.78912,692.1,7.8395996,13.867801],[477.67102,692.1,7.8395996,13.867801],[489.37402,692.1,10.180206,13.867801],[499.55423,692.1,7.8395996,13.867801],[507.35153,692.1,7.83963,13.867801],[515.23346,692.1,8.601013,13.867801],[523.8345,692.1,3.9057007,13.867801],[527.7402,692.1,3.9057007,13.867801],[531.6459,692.1,8.601013,13.867801],[540.3315,692.1,7.8395996,13.867801],[56.8,675.9,8.601002,13.867801],[65.401,675.9,5.4849014,13.867801],[74.7916,675.9,8.600998,13.867801],[82.3915,675.9,7.8395996,13.867801],[90.188805,675.9,7.8395996,13.867801],[97.98611,675.9,4.6952972,13.867801],[102.681404,675.9,4.6952972,13.867801]]},{"id":58,"stringIdxToPositionIdx":[0,1,2,3,4,5,6,6,7,8,9,10,10,11,12,13,14,15,16,17,18,19,20,20,21,22,23,24,25,25,26,27,27,28,29,30,30,31,32,33,34,35,36,36,37,38,39,40,40,41,42,43,44,45,46,47,48,49,50,50,51,52,53,54,55,55,56,57,57,58,59,59,60,61,62,63,64,65,66,67,68,69,69,70,71,72,73,74,75,76,77,78,79,80,80,81,82,83,83,84,85,86,87,88,88,89,90,91,92,93,94,94,95,96,96,97,98,99,100,101,102,103,104],"positions":[[56.8,657.6,6.1000023,11.535],[62.9,657.6,4.4300003,11.535],[67.3,657.6,5.0,11.535],[72.3,657.6,5.0,11.535],[77.3,657.6,4.4300003,11.535],[81.700005,657.6,2.7699966,11.535],[86.99,657.6,6.659996,11.535],[93.67999,657.6,5.0,11.535],[98.67999,657.6,4.4300003,11.535],[103.079994,657.6,5.0,11.535],[110.66999,657.6,6.0999985,11.535],[115.66999,657.6,4.4300003,11.535],[120.06999,657.6,3.8899994,11.535],[123.95999,657.6,2.7699966,11.535],[126.749985,657.6,4.4299927,11.535],[131.14998,657.6,5.0,11.535],[136.14998,657.6,3.8899994,11.535],[140.03998,657.6,5.0,11.535],[145.03998,657.6,2.7700043,11.535],[147.82999,657.6,4.4299927,11.535],[154.72998,657.6,5.0,11.535],[159.72998,657.6,2.7700043,11.535],[162.51999,657.6,5.0,11.535],[167.51999,657.6,5.0,11.535],[172.51999,657.6,4.4299927,11.535],[179.41998,657.6,2.7700043,11.535],[182.20999,657.6,3.8899994,11.535],[188.59999,657.6,5.5599976,11.535],[193.19998,657.6,4.4299927,11.535],[197.59998,657.6,3.8899994,11.535],[56.8,646.0,6.1000023,11.535],[62.9,646.0,4.4300003,11.535],[67.3,646.0,5.0,11.535],[72.3,646.0,5.0,11.535],[77.3,646.0,4.4300003,11.535],[81.700005,646.0,2.7699966,11.535],[86.99,646.0,6.659996,11.535],[93.67999,646.0,5.0,11.535],[98.67999,646.0,4.4300003,11.535],[103.079994,646.0,5.0,11.535],[110.66999,646.0,6.0999985,11.535],[115.66999,646.0,4.4300003,11.535],[120.06999,646.0,3.8899994,11.535],[123.95999,646.0,2.7699966,11.535],[126.749985,646.0,4.4299927,11.535],[131.14998,646.0,5.0,11.535],[136.14998,646.0,3.8899994,11.535],[140.03998,646.0,5.0,11.535],[145.03998,646.0,2.7700043,11.535],[147.82999,646.0,4.4299927,11.535],[154.72998,646.0,5.0,11.535],[159.72998,646.0,2.7700043,11.535],[162.51999,646.0,5.0,11.535],[167.51999,646.0,5.0,11.535],[172.51999,646.0,4.4299927,11.535],[179.41998,646.0,2.7700043,11.535],[182.20999,646.0,3.8899994,11.535],[188.59999,646.0,6.6600037,11.535],[195.29,646.0,5.0,11.535],[56.8,634.5,5.5600014,11.535],[62.3,634.5,6.1000023,11.535],[68.5,634.5,5.0,11.535],[73.5,634.5,5.0,11.535],[78.5,634.5,2.7699966,11.535],[81.28999,634.5,2.7699966,11.535],[84.07999,634.5,4.4300003,11.535],[88.47999,634.5,5.0,11.535],[93.47999,634.5,5.0,11.535],[98.47999,634.5,2.7699966,11.535],[103.76998,634.5,3.3300018,11.535],[107.069984,634.5,5.0,11.535],[112.069984,634.5,2.7699966,11.535],[114.85998,634.5,5.0,11.535],[119.85998,634.5,3.8899994,11.535],[123.74998,634.5,7.2199936,11.535],[130.94997,634.5,5.0,11.535],[135.94997,634.5,2.7700043,11.535],[138.73997,634.5,2.7700043,11.535],[141.52998,634.5,5.0,11.535],[146.52998,634.5,5.0,11.535],[154.02998,634.5,6.6600037,11.535],[160.62999,634.5,5.0,11.535],[165.62999,634.5,3.8899994,11.535],[172.01999,634.5,2.7700043,11.535],[174.81,634.5,5.0,11.535],[179.81,634.5,5.0,11.535],[184.81,634.5,5.0,11.535],[189.81,634.5,5.0,11.535],[197.31,634.5,3.8899994,11.535],[201.2,634.5,5.0,11.535],[206.2,634.5,5.0,11.535],[211.2,634.5,5.0,11.535],[216.2,634.5,2.7700043,11.535],[218.99,634.5,5.0,11.535],[226.49,634.5,5.0,11.535],[231.49,634.5,4.4299927,11.535],[238.39,634.5,5.0,11.535],[243.39,634.5,5.0,11.535],[248.39,634.5,5.0,11.535],[253.39,634.5,4.430008,11.535],[257.79,634.5,5.0,11.535],[262.79,634.5,3.8900146,11.535],[266.68002,634.5,3.8900146,11.535],[270.57004,634.5,5.5599976,11.535]]},{"id":59,"stringIdxToPositionIdx":[0,1,2,3,4,5,6,7,8,9],"positions":[[56.8,621.1,8.663998,12.642],[65.404,621.1,6.671997,12.642],[72.088,621.1,6.671997,12.642],[78.771996,621.1,3.3239975,12.642],[82.07199,621.1,3.3239975,12.642],[85.37199,621.1,5.316002,12.642],[90.67599,621.1,6.0,12.642],[96.67599,621.1,6.671997,12.642],[103.359985,621.1,3.9960022,12.642]]},{"id":60,"stringIdxToPositionIdx":[0,1,2,3,4,5,5,6,7,8,9,10,11,12,12,13,14,15,16,17,18,19,20,21,22,23,23,24,25,26,27,28,29,30,30,31,32,33,34,35,36,36,37,38,39,40,41,42,43,43,44,45,46,47,48,48,49,50,51,52,53,54,55,56,56,57,58,59,60,61,62,62,63,64,65,66,67,68,69,70,71,71,72,73,74,75,76,77,78,79,80,81,81,82,83,84,85,86,87,87,88,89,90,91,92,92,93,94,95,96,97,97,98,99,100,101,102,103,103,104,105,106,106,107,108,109,109,110,111,112,113,114,114,115,116,117,118,118,119,120,121,121,122,123,124,124,125,126,127,128,129,129,130,131,132,133,134,135,136,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,159,160,161,162,163,164,165,166,167,167,168,169,170,171,171,172,173,173,174,174,175,176,177,178,179,180,181,181,182,183,184,185,186,186,187,188,189,190,191,192,193,194,195,196,196,197,198,199,200,201,202,203,203,204,205,206,207,207,208,209,210,210,211,212,213,213,214,215,216,217,217,218,219,220,221,222,223,224,224,225,226,227,228,229,230,230,231,232,232,233,234,235,236,237,238,239,240,240,241,242,243,244,245,245,246,247,248,249,249,250,251,252,253,253,254,255,256,257,257,258,259,260],"positions":[[56.8,593.5,8.663998,12.642],[65.488,593.5,5.316002,12.642],[70.792,593.5,9.3239975,12.642],[80.091995,593.5,5.316002,12.642],[85.395996,593.5,3.3239975,12.642],[164.8,593.5,6.671997,12.642],[171.484,593.5,6.0,12.642],[177.484,593.5,6.0,12.642],[183.484,593.5,3.3240051,12.642],[186.784,593.5,5.3159943,12.642],[192.088,593.5,6.0,12.642],[198.088,593.5,3.3240051,12.642],[204.388,593.5,7.9920044,12.642],[212.38,593.5,6.0,12.642],[218.38,593.5,3.9960022,12.642],[222.376,593.5,6.0,12.642],[228.376,593.5,6.0,12.642],[234.376,593.5,3.9960022,12.642],[238.37201,593.5,5.3159943,12.642],[243.76001,593.5,3.3240051,12.642],[247.06001,593.5,3.3240051,12.642],[250.36002,593.5,6.0,12.642],[256.36002,593.5,6.0,12.642],[56.8,579.7,7.9920006,12.642],[64.792,579.7,6.0,12.642],[70.792,579.7,6.0,12.642],[76.792,579.7,3.3239975,12.642],[80.091995,579.7,5.316002,12.642],[85.395996,579.7,5.316002,12.642],[90.7,579.7,3.3239975,12.642],[97.08399,579.7,6.0,12.642],[103.08399,579.7,6.0,12.642],[109.08399,579.7,3.3239975,12.642],[112.38399,579.7,6.0,12.642],[118.38399,579.7,3.3239975,12.642],[121.68398,579.7,3.3239975,12.642],[164.8,579.7,7.9920044,12.642],[172.792,579.7,3.3240051,12.642],[176.09201,579.7,6.0,12.642],[182.09201,579.7,6.0,12.642],[188.09201,579.7,3.3240051,12.642],[191.39201,579.7,5.3159943,12.642],[196.69601,579.7,6.0,12.642],[205.78001,579.7,6.671997,12.642],[212.464,579.7,5.3159943,12.642],[217.768,579.7,6.0,12.642],[223.768,579.7,3.3240051,12.642],[227.06801,579.7,3.3240051,12.642],[56.8,565.9,8.663998,12.642],[65.404,565.9,6.0,12.642],[71.404,565.9,6.0,12.642],[77.404,565.9,3.9960022,12.642],[81.4,565.9,5.316002,12.642],[86.704,565.9,4.6679993,12.642],[91.396,565.9,4.6679993,12.642],[96.088005,565.9,3.3239975,12.642],[164.8,565.9,6.0,12.642],[170.8,565.9,6.0,12.642],[176.8,565.9,6.0,12.642],[182.8,565.9,3.9960022,12.642],[186.796,565.9,6.0,12.642],[192.796,565.9,6.0,12.642],[201.796,565.9,8.664001,12.642],[210.40001,565.9,6.0,12.642],[216.40001,565.9,5.3159943,12.642],[221.78801,565.9,9.324005,12.642],[231.08801,565.9,3.9960022,12.642],[235.08401,565.9,6.0,12.642],[241.08401,565.9,6.0,12.642],[247.08401,565.9,6.0,12.642],[253.08401,565.9,6.0,12.642],[164.8,552.1,8.664001,12.642],[172.20401,552.1,6.0,12.642],[178.20401,552.1,6.0,12.642],[184.20401,552.1,6.0,12.642],[190.20401,552.1,4.6679993,12.642],[194.89601,552.1,5.3159943,12.642],[200.20001,552.1,6.0,12.642],[206.20001,552.1,3.9960022,12.642],[210.19601,552.1,6.0,12.642],[216.19601,552.1,6.0,12.642],[164.8,538.3,6.671997,12.642],[171.484,538.3,5.3159943,12.642],[176.788,538.3,6.0,12.642],[182.788,538.3,6.0,12.642],[188.788,538.3,3.3240051,12.642],[192.088,538.3,3.0,12.642],[198.088,538.3,6.671997,12.642],[204.77199,538.3,6.0,12.642],[210.77199,538.3,6.0,12.642],[216.77199,538.3,3.3240051,12.642],[220.07199,538.3,6.0,12.642],[229.07199,538.3,8.664001,12.642],[237.76,538.3,6.0,12.642],[243.76,538.3,3.9960022,12.642],[247.756,538.3,5.3159943,12.642],[253.06,538.3,5.3160095,12.642],[56.8,524.5,6.672001,12.642],[63.484,524.5,6.0,12.642],[69.484,524.5,6.0,12.642],[75.484,524.5,6.0,12.642],[81.484,524.5,5.316002,12.642],[86.788,524.5,3.3239975,12.642],[164.8,524.5,6.7559967,12.642],[171.496,524.5,6.0,12.642],[177.496,524.5,6.0,12.642],[186.496,524.5,6.0,12.642],[192.496,524.5,6.0,12.642],[198.496,524.5,6.0,12.642],[207.496,524.5,6.0,12.642],[213.496,524.5,6.0,12.642],[219.496,524.5,6.0,12.642],[225.496,524.5,6.0,12.642],[231.496,524.5,6.0,12.642],[56.8,510.7,6.672001,12.642],[63.484,510.7,5.316002,12.642],[68.788,510.7,6.0,12.642],[74.788,510.7,3.3239975,12.642],[164.8,510.7,6.7559967,12.642],[171.496,510.7,6.0,12.642],[177.496,510.7,6.0,12.642],[186.496,510.7,6.0,12.642],[192.496,510.7,6.0,12.642],[198.496,510.7,6.0,12.642],[207.496,510.7,6.0,12.642],[213.496,510.7,6.0,12.642],[219.496,510.7,6.0,12.642],[225.496,510.7,6.0,12.642],[231.496,510.7,6.0,12.642],[56.8,496.9,7.3200035,12.642],[64.096,496.9,3.9960022,12.642],[68.092,496.9,9.3239975,12.642],[77.392,496.9,5.316002,12.642],[82.78,496.9,3.3239975,12.642],[86.079994,496.9,3.3239975,12.642],[89.37999,496.9,3.3239975,12.642],[164.8,496.9,3.9960022,12.642],[168.796,496.9,6.0,12.642],[174.796,496.9,6.0,12.642],[180.796,496.9,6.0,12.642],[186.796,496.9,3.9960022,12.642],[190.792,496.9,3.3240051,12.642],[194.09201,496.9,6.0,12.642],[200.09201,496.9,6.0,12.642],[206.09201,496.9,6.0,12.642],[212.09201,496.9,4.6679993,12.642],[216.78401,496.9,3.3240051,12.642],[220.08401,496.9,3.9960022,12.642],[224.08002,496.9,6.0,12.642],[230.08002,496.9,11.039993,12.642],[241.16801,496.9,6.0,12.642],[247.16801,496.9,6.0,12.642],[253.16801,496.9,3.995987,12.642],[257.164,496.9,5.3160095,12.642],[262.46802,496.9,5.3160095,12.642],[267.77203,496.9,3.0,12.642],[270.77203,496.9,5.3160095,12.642],[276.07605,496.9,6.0,12.642],[282.07605,496.9,9.324005,12.642],[56.8,483.1,7.9920006,12.642],[64.792,483.1,6.0,12.642],[70.792,483.1,6.0,12.642],[76.792,483.1,3.3239975,12.642],[80.091995,483.1,5.316002,12.642],[85.395996,483.1,5.316002,12.642],[90.7,483.1,3.3239975,12.642],[94.08399,483.1,3.3239975,12.642],[164.8,483.1,7.3200073,12.642],[172.09601,483.1,6.0,12.642],[178.09601,483.1,3.3240051,12.642],[181.39601,483.1,4.6679993,12.642],[189.08801,483.1,3.3240051,12.642],[192.38802,483.1,4.6679993,12.642],[200.08002,483.1,5.3159943,12.642],[208.38402,483.1,4.6679993,12.642],[213.07602,483.1,6.0,12.642],[219.07602,483.1,5.3159943,12.642],[224.38002,483.1,5.3159943,12.642],[229.68402,483.1,3.3240051,12.642],[233.06802,483.1,5.3159943,12.642],[238.37202,483.1,3.3240051,12.642],[244.67203,483.1,5.3159943,12.642],[249.97603,483.1,5.3159943,12.642],[255.28003,483.1,4.6679993,12.642],[259.97202,483.1,5.3160095,12.642],[265.27603,483.1,3.0,12.642],[271.36005,483.1,5.3160095,12.642],[276.66406,483.1,6.0,12.642],[282.66406,483.1,5.3160095,12.642],[287.96808,483.1,3.9960022,12.642],[291.96408,483.1,6.0,12.642],[297.96408,483.1,3.3240051,12.642],[301.2641,483.1,6.0,12.642],[307.3481,483.1,3.3240051,12.642],[310.64813,483.1,6.0,12.642],[316.64813,483.1,6.0,12.642],[325.64813,483.1,6.0,12.642],[331.64813,483.1,5.3160095,12.642],[336.95215,483.1,3.3240051,12.642],[340.25217,483.1,8.664001,12.642],[348.94016,483.1,5.3160095,12.642],[354.24417,483.1,5.3160095,12.642],[359.5482,483.1,6.0,12.642],[368.6322,483.1,3.3240051,12.642],[371.93222,483.1,6.0,12.642],[377.93222,483.1,3.3240051,12.642],[381.23224,483.1,4.6679993,12.642],[388.92422,483.1,5.3160095,12.642],[394.22824,483.1,6.0,12.642],[400.22824,483.1,6.0,12.642],[409.22824,483.1,3.3240051,12.642],[412.52826,483.1,6.0,12.642],[418.52826,483.1,5.3160095,12.642],[426.91626,483.1,6.0,12.642],[432.91626,483.1,5.3160095,12.642],[438.22028,483.1,6.0,12.642],[444.22028,483.1,3.3240051,12.642],[164.8,469.3,6.0,12.642],[170.8,469.3,5.3159943,12.642],[176.104,469.3,6.0,12.642],[182.104,469.3,8.664001,12.642],[190.792,469.3,6.0,12.642],[196.792,469.3,3.9960022,12.642],[200.78801,469.3,6.0,12.642],[209.78801,469.3,4.6679993,12.642],[214.384,469.3,6.0,12.642],[220.384,469.3,6.0,12.642],[226.384,469.3,6.0,12.642],[232.384,469.3,3.3240051,12.642],[235.684,469.3,6.0,12.642],[244.768,469.3,6.0,12.642],[250.768,469.3,5.3160095,12.642],[259.07202,469.3,3.9960022,12.642],[263.06802,469.3,5.3160095,12.642],[268.37204,469.3,6.0,12.642],[274.37204,469.3,5.3160095,12.642],[279.67606,469.3,5.3160095,12.642],[285.06406,469.3,3.3240051,12.642],[288.36407,469.3,5.3160095,12.642],[293.6681,469.3,6.0,12.642],[56.8,455.5,7.3200035,12.642],[63.304,455.5,5.316002,12.642],[68.608,455.5,3.3239975,12.642],[71.908,455.5,3.0,12.642],[74.908,455.5,3.3239975,12.642],[164.8,455.5,6.7559967,12.642],[171.496,455.5,6.0,12.642],[177.496,455.5,6.0,12.642],[183.496,455.5,6.0,12.642],[192.496,455.5,6.0,12.642],[198.496,455.5,6.0,12.642],[204.496,455.5,6.0,12.642],[210.496,455.5,6.0,12.642],[219.496,455.5,6.0,12.642],[225.496,455.5,6.0,12.642],[231.496,455.5,6.0,12.642],[237.496,455.5,6.0,12.642],[246.496,455.5,6.0,12.642],[252.496,455.5,6.0,12.642],[258.496,455.5,6.0,12.642]]},{"id":61,"stringIdxToPositionIdx":[0,1,2,3,4,5,6,7,8,9,10,11,11,12,13,14,15],"positions":[[59.6,438.9,8.664001,12.642],[68.288,438.9,5.316002,12.642],[73.592,438.9,4.6679993,12.642],[78.284004,438.9,5.316002,12.642],[83.588005,438.9,3.9960022,12.642],[87.58401,438.9,3.3239975,12.642],[90.884,438.9,6.0,12.642],[96.884,438.9,3.3239975,12.642],[100.268,438.9,3.3239975,12.642],[103.56799,438.9,6.0,12.642],[109.56799,438.9,6.0,12.642],[118.36399,438.9,7.3199997,12.642],[124.86799,438.9,5.316002,12.642],[130.172,438.9,6.0,12.642],[136.172,438.9,3.3240051,12.642]]},{"id":62,"stringIdxToPositionIdx":[0,1,2,3,4,5,6,7,8,9],"positions":[[308.8,438.9,8.664001,12.642],[317.404,438.9,6.671997,12.642],[324.08798,438.9,6.671997,12.642],[330.77197,438.9,3.3240051,12.642],[334.072,438.9,3.3240051,12.642],[337.372,438.9,5.3160095,12.642],[342.67603,438.9,6.0,12.642],[348.67603,438.9,6.671997,12.642],[355.36002,438.9,3.9960022,12.642]]},{"id":63,"stringIdxToPositionIdx":[0,1,2,3,4,4,5,6,7,8,8,9,10,11,12,13,13,14,15,16,17,18,18,19,20,20,21,22,23,24,25,26,27,28,29,30,31,32,33,33,34,35,35,36,37,38,39,40,41,42,43,44,44,45,46,47,48,49,49,50,51,52,53,53,54,55,56,57,58,59,59,60,61,62,63,64,65,66,66,67,68,69,70,71,71,72,73,74,75,76,77,77,78,79,79,80,81,82,83,84,85,85,86,87,88,89,90,90,91,92,93,94,95,96,97,98,99,99,100,101,102,103,104,105,106,107,108,108,109,110,111,112,112,113,114,115,116,117,118,119,120,120,121,122,123,124,125,126,127,128,129,129,130,131,132,132,133,134,135,136,137,138,139,140,141,141,142,143,144,145,145,146,147,147,148,149,150,151,152,152,153,154,155,155,156,157,158,159,160,161,162,162,163,164,165,166,167,168,169,170,170,171,172,173,174,175,176,176,177,178,179,180,180,181,182,182,183,184,185,185,186,187,188,189,190,191,192,193],"positions":[[59.6,422.3,6.498001,10.981501],[66.098,422.3,4.5,10.981501],[70.598,422.3,2.4930038,10.981501],[73.091,422.3,3.5009995,10.981501],[78.887,422.3,3.9869995,10.981501],[82.874,422.3,4.5,10.981501],[87.374,422.3,2.4930038,10.981501],[89.867004,422.3,3.9869995,10.981501],[96.05,422.3,2.4929962,10.981501],[98.543,422.3,2.9970016,10.981501],[101.54,422.3,4.5,10.981501],[106.04,422.3,2.9970016,10.981501],[109.037,422.3,3.9869995,10.981501],[115.319,422.3,4.5,10.981501],[119.819,422.3,4.5,10.981501],[124.319,422.3,2.4929962,10.981501],[126.812,422.3,4.5,10.981501],[131.312,422.3,2.996994,10.981501],[136.50499,422.3,2.4929962,10.981501],[138.99799,422.3,4.5,10.981501],[145.79298,422.3,2.996994,10.981501],[148.69098,422.3,3.9869995,10.981501],[152.67798,422.3,4.5,10.981501],[157.17798,422.3,2.996994,10.981501],[160.17497,422.3,3.9869995,10.981501],[164.16197,422.3,4.5,10.981501],[168.66197,422.3,3.9869995,10.981501],[172.64897,422.3,4.5,10.981501],[177.14897,422.3,4.5,10.981501],[181.64897,422.3,3.9869995,10.981501],[185.63597,422.3,2.996994,10.981501],[188.63297,422.3,2.4929962,10.981501],[191.12596,422.3,2.4929962,10.981501],[195.91396,422.3,2.4929962,10.981501],[198.40695,422.3,4.5,10.981501],[205.10295,422.3,4.5,10.981501],[209.60295,422.3,4.5,10.981501],[214.10295,422.3,2.4929962,10.981501],[216.59595,422.3,4.5,10.981501],[221.09595,422.3,4.5,10.981501],[225.59595,422.3,2.4929962,10.981501],[228.08894,422.3,3.9869995,10.981501],[232.07594,422.3,2.4929962,10.981501],[234.56894,422.3,3.9869995,10.981501],[240.85094,422.3,4.5,10.981501],[245.25194,422.3,3.9869995,10.981501],[249.23894,422.3,2.4929962,10.981501],[251.73193,422.3,2.4929962,10.981501],[254.22493,422.3,2.4929962,10.981501],[259.01294,422.3,3.9869995,10.981501],[262.99994,422.3,3.501007,10.981501],[266.50095,422.3,3.501007,10.981501],[270.00195,422.3,3.9869995,10.981501],[276.18497,422.3,3.9869995,10.981501],[280.17197,422.3,2.4930115,10.981501],[282.66498,422.3,2.4930115,10.981501],[285.158,422.3,2.4930115,10.981501],[287.651,422.3,4.5,10.981501],[292.151,422.3,6.9930115,10.981501],[59.6,412.0,5.9940033,10.981501],[65.594,412.0,4.5,10.981501],[70.094,412.0,4.5,10.981501],[74.594,412.0,2.4930038,10.981501],[77.087006,412.0,3.9869995,10.981501],[81.074005,412.0,3.9869995,10.981501],[85.061005,412.0,2.4929962,10.981501],[89.849,412.0,5.003998,10.981501],[94.853,412.0,4.5,10.981501],[99.353,412.0,2.4929962,10.981501],[101.84599,412.0,4.5,10.981501],[106.34599,412.0,2.4929962,10.981501],[111.03499,412.0,4.5,10.981501],[115.53499,412.0,4.5,10.981501],[120.03499,412.0,2.4929962,10.981501],[122.527985,412.0,4.5,10.981501],[127.027985,412.0,2.996994,10.981501],[130.02498,412.0,3.9869995,10.981501],[136.30698,412.0,3.9869995,10.981501],[140.29398,412.0,4.5,10.981501],[146.98997,412.0,2.996994,10.981501],[149.98697,412.0,4.5,10.981501],[154.48697,412.0,4.5,10.981501],[158.98697,412.0,2.4929962,10.981501],[161.47997,412.0,3.9869995,10.981501],[165.46696,412.0,2.4929962,10.981501],[170.15596,412.0,4.5,10.981501],[174.65596,412.0,4.5,10.981501],[179.15596,412.0,2.4929962,10.981501],[181.64896,412.0,2.4929962,10.981501],[184.14195,412.0,3.9869995,10.981501],[190.42395,412.0,4.5,10.981501],[194.92395,412.0,3.9869995,10.981501],[198.91095,412.0,2.996994,10.981501],[201.90794,412.0,2.4929962,10.981501],[204.40094,412.0,3.9869995,10.981501],[208.38794,412.0,2.4929962,10.981501],[210.88094,412.0,4.5,10.981501],[215.38094,412.0,2.996994,10.981501],[217.78394,412.0,2.25,10.981501],[222.37393,412.0,5.4900055,10.981501],[227.86394,412.0,4.5,10.981501],[232.36394,412.0,3.9869995,10.981501],[236.35094,412.0,3.9869995,10.981501],[240.33794,412.0,4.5,10.981501],[244.83794,412.0,2.4929962,10.981501],[247.24094,412.0,3.9869995,10.981501],[251.22794,412.0,4.5,10.981501],[255.72794,412.0,2.9970093,10.981501],[261.01996,412.0,3.501007,10.981501],[264.52097,412.0,2.4930115,10.981501],[267.01398,412.0,4.5,10.981501],[271.51398,412.0,2.4930115,10.981501],[59.6,401.6,4.5,10.981501],[64.1,401.6,3.9869995,10.981501],[68.087,401.6,3.9869995,10.981501],[72.074,401.6,3.9869995,10.981501],[76.061,401.6,3.9869995,10.981501],[80.048,401.6,3.9869995,10.981501],[84.034996,401.6,3.9869995,10.981501],[88.021996,401.6,2.4930038,10.981501],[92.711,401.6,3.9869995,10.981501],[96.698,401.6,4.5,10.981501],[101.198,401.6,4.5,10.981501],[105.698,401.6,2.4929962,10.981501],[108.190994,401.6,4.5,10.981501],[112.690994,401.6,3.9869995,10.981501],[116.67799,401.6,2.4929962,10.981501],[119.17099,401.6,3.9869995,10.981501],[123.15799,401.6,2.4929962,10.981501],[127.945984,401.6,4.5,10.981501],[132.44598,401.6,4.5,10.981501],[136.94598,401.6,4.5,10.981501],[143.64198,401.6,4.5,10.981501],[148.14198,401.6,2.996994,10.981501],[151.13898,401.6,4.5,10.981501],[155.63898,401.6,2.4929962,10.981501],[158.13197,401.6,4.5,10.981501],[162.63197,401.6,3.9869995,10.981501],[166.61897,401.6,4.5,10.981501],[171.11897,401.6,2.4929962,10.981501],[173.52197,401.6,2.25,10.981501],[178.11197,401.6,3.501007,10.981501],[181.61298,401.6,4.5,10.981501],[186.11298,401.6,4.5,10.981501],[190.61298,401.6,2.4929962,10.981501],[195.30197,401.6,2.4929962,10.981501],[197.79497,401.6,4.5,10.981501],[204.58997,401.6,3.9869995,10.981501],[208.57697,401.6,4.5,10.981501],[213.07697,401.6,2.4929962,10.981501],[215.56996,401.6,4.5,10.981501],[220.06996,401.6,3.9869995,10.981501],[226.25296,401.6,4.5,10.981501],[230.75296,401.6,4.5,10.981501],[235.25296,401.6,2.4929962,10.981501],[240.04095,401.6,4.5,10.981501],[244.54095,401.6,2.996994,10.981501],[247.33995,401.6,2.996994,10.981501],[250.33694,401.6,2.4929962,10.981501],[252.82994,401.6,3.9870148,10.981501],[256.81696,401.6,2.4930115,10.981501],[259.30997,401.6,3.9869995,10.981501],[265.49298,401.6,4.5,10.981501],[269.99298,401.6,3.9869995,10.981501],[273.97998,401.6,3.501007,10.981501],[277.481,401.6,3.9869995,10.981501],[281.468,401.6,2.9970093,10.981501],[284.465,401.6,4.5,10.981501],[288.965,401.6,4.5,10.981501],[293.465,401.6,2.4930115,10.981501],[59.6,391.3,6.993004,10.981501],[66.593,391.3,4.5,10.981501],[71.093,391.3,2.4929962,10.981501],[73.586,391.3,2.4929962,10.981501],[76.078995,391.3,2.4929962,10.981501],[78.57199,391.3,2.4929962,10.981501],[83.359985,391.3,3.9869995,10.981501],[87.346985,391.3,4.5,10.981501],[91.846985,391.3,2.4929962,10.981501],[94.33998,391.3,6.992996,10.981501],[103.52898,391.3,2.4929962,10.981501],[106.02197,391.3,4.5,10.981501],[112.81697,391.3,3.9869995,10.981501],[116.80397,391.3,3.5009995,10.981501],[120.30497,391.3,2.4930038,10.981501],[124.99397,391.3,2.4929962,10.981501],[127.48697,391.3,3.9869995,10.981501],[131.47397,391.3,4.5,10.981501],[135.97397,391.3,4.5,10.981501],[140.47397,391.3,2.996994,10.981501],[143.47096,391.3,4.5,10.981501],[147.97096,391.3,6.992996,10.981501],[154.96396,391.3,2.25,10.981501]]},{"id":64,"stringIdxToPositionIdx":[0,1,2,3,4,5,6,7,7,8,9,10,11,12,13,13,14,15,16,17,18,19,20,20,21,22,23,24,25,26,27,28,28,29,30,31,32,33,34,35,36,36,37,38,39,40,41,42,42,43,44,45,45,46,47,48,49,49,50,51,52,53,53,54,55,56,56,57,58,59,60,60,61,62,63,63,64,65,66,67,67,68,69,70,71,71,72,73,74,74,75,76,77,78,79,79,80,81,82,82,83,84,85,86,87,88,89,90,91,91,92,93,94,95,95,96,97,98,98,99,100,101,102,102,103,104,105,106,107,107,108,109,110,111,112,113,114,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,133,134,135,136,137,138,139,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,165,166,167,168,169,170,171,172,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,201,202,203,204,205,206,207,207,208,209,210,211,212,213,214,215,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,231,232,233,234,235,236,237,238,239,239,240,241,242,243,244,245,246,247,248,249,249,250,251,252,253,254,255,256,256,257,258,259,260,261,262,263,264,265,265,266,267,268,269,270,271,272,272,273,274,275,276,277,278,279,280,281,282,283,284,284,285,286,287,288,289,290,291,292,293,293,294,295,296,296,297,298,299,300,300,301,302,303,304,304,305,306,307,308,308,309,310,311,311,312,313,314,315,316,317,318,318,319,320,321,322,322,323,324,325,326,326,327,328,329,330,330,331,332,333,334,335,336,337,338,339,340,340,341,342,343,344,344,345,346,347,348,349,350,351,352,352,353,354,355,356,357,357,358,359,360,360,361,362,363,364,364,365,366,367,368,368,369,370,371,372,372,373,374,375,376,377,378,379,380,380,381,382,383,383,384,385,386,387,387,388,389,390,391,391,392,393,394,395,396,397,398,399,399,400,401,402,403,404,405,406,407,407,408,409,410,411,412,413,414,415,415,416,417,418,419,420,421,422,422,423,424,425,426,427,428,429,430,431,431,432,433,434,435,436,437,438,439,440,441,442,442,443,444,445,446,447,448,449,450,450,451,452,453,454,455,456,456,457,458,459,460,461,462,463,464,464,465,466,467,468,469,470,471,472,473,474,475,475,476,477,478,479,480,481,482,483],"positions":[[308.8,422.3,5.993988,10.981501],[314.79398,422.3,4.5,10.981501],[319.29398,422.3,4.5,10.981501],[323.79398,422.3,2.4930115,10.981501],[326.287,422.3,3.9869995,10.981501],[330.274,422.3,3.9869995,10.981501],[334.261,422.3,2.4930115,10.981501],[338.95,422.3,4.5,10.981501],[343.45,422.3,4.5,10.981501],[347.95,422.3,2.4930115,10.981501],[350.44302,422.3,4.5,10.981501],[354.94302,422.3,2.4930115,10.981501],[357.43604,422.3,2.4930115,10.981501],[362.22406,422.3,5.993988,10.981501],[368.21805,422.3,3.9869995,10.981501],[372.20505,422.3,4.5,10.981501],[376.70505,422.3,2.4930115,10.981501],[379.19806,422.3,2.9970093,10.981501],[382.09607,422.3,3.9869995,10.981501],[386.08307,422.3,2.4930115,10.981501],[390.8711,422.3,5.993988,10.981501],[396.86508,422.3,3.9869995,10.981501],[400.85208,422.3,3.501007,10.981501],[404.3531,422.3,3.9869995,10.981501],[408.3401,422.3,3.9869995,10.981501],[412.3271,422.3,2.9970093,10.981501],[415.3241,422.3,3.9869995,10.981501],[419.3111,422.3,4.5,10.981501],[426.0071,422.3,2.9970093,10.981501],[429.00412,422.3,4.5,10.981501],[433.50412,422.3,4.5,10.981501],[438.00412,422.3,4.5,10.981501],[442.50412,422.3,3.501007,10.981501],[446.00513,422.3,2.4930115,10.981501],[448.49814,422.3,2.9970093,10.981501],[451.49515,422.3,4.5,10.981501],[308.8,412.0,5.003998,10.981501],[313.804,412.0,4.5,10.981501],[318.304,412.0,4.5,10.981501],[322.804,412.0,4.5,10.981501],[327.304,412.0,3.9869995,10.981501],[331.291,412.0,2.4930115,10.981501],[335.98,412.0,5.066986,10.981501],[341.074,412.0,4.5,10.981501],[345.574,412.0,4.5,10.981501],[352.36902,412.0,4.5,10.981501],[356.77002,412.0,4.5,10.981501],[360.97302,412.0,4.5,10.981501],[365.47302,412.0,4.5,10.981501],[372.26804,412.0,4.5,10.981501],[376.76804,412.0,4.5,10.981501],[381.16904,412.0,4.5,10.981501],[385.37204,412.0,4.5,10.981501],[392.16705,412.0,4.5,10.981501],[396.66705,412.0,4.5,10.981501],[401.16705,412.0,4.5,10.981501],[308.8,401.6,5.003998,10.981501],[313.804,401.6,3.9869995,10.981501],[317.791,401.6,4.5,10.981501],[322.291,401.6,2.4930115,10.981501],[326.98,401.6,5.066986,10.981501],[332.074,401.6,4.5,10.981501],[336.574,401.6,4.5,10.981501],[343.36902,401.6,4.5,10.981501],[347.77002,401.6,4.5,10.981501],[351.97302,401.6,4.5,10.981501],[356.47302,401.6,4.5,10.981501],[363.26804,401.6,4.5,10.981501],[367.76804,401.6,4.5,10.981501],[372.16904,401.6,4.5,10.981501],[376.37204,401.6,4.5,10.981501],[383.16705,401.6,4.5,10.981501],[387.66705,401.6,4.5,10.981501],[392.16705,401.6,4.5,10.981501],[308.8,391.3,5.48999,10.981501],[313.597,391.3,3.9869995,10.981501],[317.58398,391.3,2.4930115,10.981501],[320.077,391.3,2.25,10.981501],[322.372,391.3,2.4930115,10.981501],[327.06104,391.3,5.066986,10.981501],[332.15503,391.3,4.5,10.981501],[336.65503,391.3,4.5,10.981501],[343.45004,391.3,4.5,10.981501],[347.95004,391.3,4.5,10.981501],[352.45004,391.3,4.5,10.981501],[356.95004,391.3,4.5,10.981501],[361.45004,391.3,4.5,10.981501],[365.95004,391.3,4.5,10.981501],[370.45004,391.3,4.5,10.981501],[374.95004,391.3,4.5,10.981501],[379.45004,391.3,4.5,10.981501],[308.8,380.9,5.48999,10.981501],[313.597,380.9,3.9869995,10.981501],[317.58398,380.9,2.4930115,10.981501],[320.077,380.9,2.4930115,10.981501],[324.86502,380.9,5.066986,10.981501],[329.959,380.9,4.5,10.981501],[334.459,380.9,4.5,10.981501],[341.15503,380.9,4.5,10.981501],[345.65503,380.9,4.5,10.981501],[350.15503,380.9,4.5,10.981501],[354.65503,380.9,4.5,10.981501],[361.45004,380.9,4.5,10.981501],[365.95004,380.9,4.5,10.981501],[370.45004,380.9,4.5,10.981501],[374.95004,380.9,4.5,10.981501],[379.45004,380.9,4.5,10.981501],[308.8,370.6,5.48999,10.981501],[314.28998,370.6,2.9970093,10.981501],[317.287,370.6,6.9930115,10.981501],[324.28,370.6,3.9869995,10.981501],[328.267,370.6,2.4930115,10.981501],[330.76,370.6,2.4930115,10.981501],[333.25302,370.6,2.4930115,10.981501],[337.94205,370.6,5.003998,10.981501],[342.94604,370.6,3.9869995,10.981501],[346.93304,370.6,2.9970093,10.981501],[349.93005,370.6,2.4930115,10.981501],[352.42307,370.6,4.5,10.981501],[356.92307,370.6,4.5,10.981501],[361.42307,370.6,4.5,10.981501],[365.92307,370.6,6.497986,10.981501],[372.42105,370.6,6.9930115,10.981501],[379.41406,370.6,4.5,10.981501],[383.91406,370.6,4.5,10.981501],[388.41406,370.6,2.4930115,10.981501],[390.90707,370.6,2.4930115,10.981501],[393.4001,370.6,8.279999,10.981501],[401.6891,370.6,3.9869995,10.981501],[405.6761,370.6,4.5,10.981501],[410.1761,370.6,2.25,10.981501],[412.4711,370.6,4.5,10.981501],[416.9711,370.6,4.5,10.981501],[308.8,360.2,5.48999,10.981501],[314.28998,360.2,6.9930115,10.981501],[321.283,360.2,3.9869995,10.981501],[325.27,360.2,2.4930115,10.981501],[327.763,360.2,2.4930115,10.981501],[330.256,360.2,2.4930115,10.981501],[334.94504,360.2,6.9930115,10.981501],[341.93805,360.2,3.9869995,10.981501],[345.92505,360.2,4.5,10.981501],[350.42505,360.2,2.4930115,10.981501],[352.91806,360.2,6.9930115,10.981501],[359.91107,360.2,2.4930115,10.981501],[362.40408,360.2,2.4930115,10.981501],[364.8971,360.2,2.4930115,10.981501],[367.3901,360.2,3.9869995,10.981501],[371.3771,360.2,6.9930115,10.981501],[378.37012,360.2,3.501007,10.981501],[381.87112,360.2,3.9869995,10.981501],[385.85812,360.2,4.5,10.981501],[390.35812,360.2,6.9930115,10.981501],[397.35114,360.2,2.4930115,10.981501],[399.84415,360.2,2.4930115,10.981501],[402.33716,360.2,2.4930115,10.981501],[404.83017,360.2,8.279999,10.981501],[413.11917,360.2,3.9869995,10.981501],[417.10617,360.2,2.9970093,10.981501],[420.10318,360.2,3.9869995,10.981501],[424.09018,360.2,4.5,10.981501],[428.59018,360.2,2.9970093,10.981501],[430.9932,360.2,2.25,10.981501],[433.2882,360.2,4.5,10.981501],[437.7882,360.2,3.9869995,10.981501],[308.8,349.9,3.9869995,10.981501],[312.787,349.9,2.9970093,10.981501],[315.784,349.9,6.9930115,10.981501],[322.777,349.9,3.9869995,10.981501],[326.764,349.9,2.4930115,10.981501],[329.25702,349.9,2.4930115,10.981501],[331.75003,349.9,2.4930115,10.981501],[336.43906,349.9,6.9930115,10.981501],[343.43207,349.9,3.9869995,10.981501],[347.41907,349.9,4.5,10.981501],[351.91907,349.9,2.4930115,10.981501],[354.41208,349.9,6.9930115,10.981501],[361.4051,349.9,2.4930115,10.981501],[363.8981,349.9,2.4930115,10.981501],[366.3911,349.9,2.4930115,10.981501],[368.88412,349.9,3.9869995,10.981501],[372.87112,349.9,6.9930115,10.981501],[379.86414,349.9,3.501007,10.981501],[383.36514,349.9,3.9869995,10.981501],[387.35214,349.9,4.5,10.981501],[391.85214,349.9,6.9930115,10.981501],[398.84515,349.9,2.4930115,10.981501],[401.33817,349.9,2.4930115,10.981501],[403.83118,349.9,2.4930115,10.981501],[406.3242,349.9,8.279999,10.981501],[414.6132,349.9,2.4930115,10.981501],[417.1062,349.9,2.9970093,10.981501],[420.1032,349.9,4.5,10.981501],[424.6032,349.9,4.5,10.981501],[429.1032,349.9,2.4930115,10.981501],[431.59622,349.9,2.4930115,10.981501],[434.08923,349.9,4.5,10.981501],[438.58923,349.9,3.9869995,10.981501],[442.48624,349.9,2.25,10.981501],[444.78125,349.9,4.5,10.981501],[449.28125,349.9,3.9869995,10.981501],[308.8,339.5,5.48999,10.981501],[314.28998,339.5,2.9970093,10.981501],[317.287,339.5,6.9930115,10.981501],[324.28,339.5,3.9869995,10.981501],[328.267,339.5,2.4930115,10.981501],[330.76,339.5,2.4930115,10.981501],[335.44904,339.5,3.9869995,10.981501],[339.43604,339.5,4.5,10.981501],[343.93604,339.5,4.5,10.981501],[348.43604,339.5,2.9970093,10.981501],[351.43304,339.5,3.9869995,10.981501],[355.42004,339.5,3.501007,10.981501],[358.92105,339.5,3.501007,10.981501],[362.42206,339.5,2.4930115,10.981501],[367.21008,339.5,3.9869995,10.981501],[371.1071,339.5,4.5,10.981501],[375.6071,339.5,3.9869995,10.981501],[379.5941,339.5,6.9930115,10.981501],[386.5871,339.5,4.5,10.981501],[391.0871,339.5,2.4930115,10.981501],[393.5801,339.5,3.9869995,10.981501],[397.5671,339.5,8.279999,10.981501],[405.8561,339.5,6.9930115,10.981501],[412.84912,339.5,3.9869995,10.981501],[416.83612,339.5,2.4930115,10.981501],[419.32913,339.5,2.4930115,10.981501],[421.82214,339.5,2.25,10.981501],[424.11716,339.5,3.9869995,10.981501],[428.10416,339.5,4.5,10.981501],[432.60416,339.5,6.9930115,10.981501],[308.8,329.2,5.993988,10.981501],[314.79398,329.2,4.5,10.981501],[319.29398,329.2,4.5,10.981501],[323.79398,329.2,2.4930115,10.981501],[326.287,329.2,3.9869995,10.981501],[330.274,329.2,3.9869995,10.981501],[334.261,329.2,2.4930115,10.981501],[336.754,329.2,2.4930115,10.981501],[341.44302,329.2,8.001007,10.981501],[349.44403,329.2,3.9869995,10.981501],[353.43103,329.2,4.5,10.981501],[357.93103,329.2,2.4930115,10.981501],[360.42404,329.2,6.9930115,10.981501],[367.41705,329.2,2.4930115,10.981501],[369.91006,329.2,2.4930115,10.981501],[372.40308,329.2,2.4930115,10.981501],[374.8961,329.2,3.9869995,10.981501],[378.8831,329.2,6.9930115,10.981501],[388.0721,329.2,5.003998,10.981501],[393.0761,329.2,3.9869995,10.981501],[397.0631,329.2,4.5,10.981501],[401.5631,329.2,6.9930115,10.981501],[408.55612,329.2,2.4930115,10.981501],[411.04913,329.2,2.4930115,10.981501],[413.54214,329.2,2.4930115,10.981501],[308.8,318.8,5.48999,10.981501],[313.597,318.8,3.9869995,10.981501],[317.58398,318.8,2.4930115,10.981501],[320.077,318.8,3.9869995,10.981501],[324.064,318.8,4.5,10.981501],[328.564,318.8,4.5,10.981501],[333.064,318.8,4.5,10.981501],[337.564,318.8,4.5,10.981501],[342.064,318.8,3.9869995,10.981501],[348.346,318.8,4.5,10.981501],[352.846,318.8,4.5,10.981501],[357.346,318.8,6.9930115,10.981501],[364.33902,318.8,4.5,10.981501],[368.83902,318.8,3.9869995,10.981501],[372.82602,318.8,2.9970093,10.981501],[375.82303,318.8,2.4930115,10.981501],[380.51205,318.8,5.066986,10.981501],[385.60605,318.8,4.5,10.981501],[390.10605,318.8,4.5,10.981501],[394.60605,318.8,4.5,10.981501],[399.10605,318.8,4.5,10.981501],[403.60605,318.8,4.5,10.981501],[408.10605,318.8,4.5,10.981501],[412.60605,318.8,4.5,10.981501],[417.10605,318.8,4.5,10.981501],[421.60605,318.8,4.5,10.981501],[426.10605,318.8,4.5,10.981501],[430.60605,318.8,4.5,10.981501],[308.8,308.5,5.48999,10.981501],[313.597,308.5,3.9869995,10.981501],[317.58398,308.5,2.4930115,10.981501],[320.077,308.5,3.9869995,10.981501],[324.064,308.5,4.5,10.981501],[328.564,308.5,4.5,10.981501],[333.064,308.5,4.5,10.981501],[337.564,308.5,4.5,10.981501],[342.064,308.5,3.9869995,10.981501],[348.346,308.5,6.497986,10.981501],[354.844,308.5,4.5,10.981501],[359.344,308.5,2.4930115,10.981501],[364.03302,308.5,5.066986,10.981501],[369.127,308.5,4.5,10.981501],[373.627,308.5,4.5,10.981501],[378.127,308.5,4.5,10.981501],[384.82303,308.5,4.5,10.981501],[389.32303,308.5,4.5,10.981501],[393.82303,308.5,4.5,10.981501],[398.32303,308.5,4.5,10.981501],[405.11804,308.5,4.5,10.981501],[409.61804,308.5,4.5,10.981501],[414.11804,308.5,4.5,10.981501],[418.61804,308.5,4.5,10.981501],[308.8,298.1,5.003998,10.981501],[313.804,298.1,3.9869995,10.981501],[317.791,298.1,4.5,10.981501],[324.487,298.1,4.5,10.981501],[328.987,298.1,4.5,10.981501],[333.487,298.1,6.9930115,10.981501],[340.48,298.1,4.5,10.981501],[344.98,298.1,3.9869995,10.981501],[348.967,298.1,2.9970093,10.981501],[351.96402,298.1,2.4930115,10.981501],[356.75204,298.1,5.066986,10.981501],[361.75604,298.1,4.5,10.981501],[366.25604,298.1,4.5,10.981501],[370.75604,298.1,4.5,10.981501],[377.55106,298.1,4.5,10.981501],[382.05106,298.1,4.5,10.981501],[386.55106,298.1,4.5,10.981501],[391.05106,298.1,4.5,10.981501],[397.74707,298.1,4.5,10.981501],[402.24707,298.1,4.5,10.981501],[406.74707,298.1,4.5,10.981501],[411.24707,298.1,4.5,10.981501],[308.8,287.8,5.48999,10.981501],[313.597,287.8,3.9869995,10.981501],[317.58398,287.8,2.4930115,10.981501],[320.077,287.8,3.9869995,10.981501],[324.064,287.8,4.5,10.981501],[328.564,287.8,4.5,10.981501],[333.064,287.8,4.5,10.981501],[337.564,287.8,4.5,10.981501],[342.064,287.8,3.9869995,10.981501],[346.051,287.8,2.4930115,10.981501],[350.83902,287.8,5.066986,10.981501],[355.84302,287.8,4.5,10.981501],[360.34302,287.8,4.5,10.981501],[364.84302,287.8,4.5,10.981501],[371.63803,287.8,4.5,10.981501],[376.13803,287.8,4.5,10.981501],[380.63803,287.8,4.5,10.981501],[385.13803,287.8,4.5,10.981501],[389.63803,287.8,4.5,10.981501],[394.13803,287.8,4.5,10.981501],[398.63803,287.8,4.5,10.981501],[403.13803,287.8,4.5,10.981501],[308.8,277.40002,5.003998,10.981501],[313.804,277.40002,4.5,10.981501],[318.304,277.40002,4.5,10.981501],[322.804,277.40002,4.5,10.981501],[327.304,277.40002,3.9869995,10.981501],[333.487,277.40002,6.497986,10.981501],[339.985,277.40002,4.5,10.981501],[344.485,277.40002,2.25,10.981501],[348.976,277.40002,5.066986,10.981501],[354.07,277.40002,4.5,10.981501],[358.57,277.40002,4.5,10.981501],[363.07,277.40002,4.5,10.981501],[369.86502,277.40002,4.5,10.981501],[374.36502,277.40002,4.5,10.981501],[378.86502,277.40002,4.5,10.981501],[383.36502,277.40002,4.5,10.981501],[390.06104,277.40002,4.5,10.981501],[394.56104,277.40002,4.5,10.981501],[399.06104,277.40002,4.5,10.981501],[403.56104,277.40002,4.5,10.981501],[308.8,267.09998,5.993988,10.981501],[314.79398,267.09998,4.5,10.981501],[319.29398,267.09998,4.5,10.981501],[323.79398,267.09998,2.4930115,10.981501],[326.287,267.09998,3.9869995,10.981501],[330.274,267.09998,3.9869995,10.981501],[334.261,267.09998,2.4930115,10.981501],[336.754,267.09998,2.4930115,10.981501],[341.44302,267.09998,4.5,10.981501],[345.94302,267.09998,4.5,10.981501],[350.44302,267.09998,4.5,10.981501],[357.23804,267.09998,4.5,10.981501],[361.73804,267.09998,4.5,10.981501],[366.23804,267.09998,4.5,10.981501],[370.73804,267.09998,4.5,10.981501],[377.43405,267.09998,4.5,10.981501],[381.93405,267.09998,4.5,10.981501],[386.43405,267.09998,4.5,10.981501],[390.93405,267.09998,4.5,10.981501],[308.8,256.7,5.48999,10.981501],[314.28998,256.7,4.5,10.981501],[318.78998,256.7,2.9970093,10.981501],[321.787,256.7,4.5,10.981501],[326.287,256.7,4.5,10.981501],[330.787,256.7,3.9869995,10.981501],[334.774,256.7,3.9869995,10.981501],[338.761,256.7,4.5,10.981501],[345.457,256.7,3.9869995,10.981501],[349.444,256.7,4.5,10.981501],[353.944,256.7,4.5,10.981501],[358.444,256.7,2.4930115,10.981501],[360.937,256.7,3.9869995,10.981501],[364.924,256.7,3.9869995,10.981501],[368.911,256.7,2.4930115,10.981501],[371.40402,256.7,2.4930115,10.981501],[376.09305,256.7,5.48999,10.981501],[381.58304,256.7,4.5,10.981501],[386.08304,256.7,2.9970093,10.981501],[389.08005,256.7,4.5,10.981501],[393.58005,256.7,4.5,10.981501],[398.08005,256.7,3.9869995,10.981501],[402.06705,256.7,3.9869995,10.981501],[406.05405,256.7,4.5,10.981501],[412.84906,256.7,5.993988,10.981501],[418.84305,256.7,3.9869995,10.981501],[422.83005,256.7,4.5,10.981501],[427.33005,256.7,2.4930115,10.981501],[429.82306,256.7,2.9970093,10.981501],[432.82007,256.7,3.9869995,10.981501],[436.80707,256.7,2.4930115,10.981501],[441.4961,256.7,2.9970093,10.981501],[444.4931,256.7,4.5,10.981501],[448.9931,256.7,3.501007,10.981501],[452.4941,256.7,2.4930115,10.981501],[454.98712,256.7,2.4930115,10.981501],[457.48013,256.7,2.4930115,10.981501],[459.97314,256.7,4.5,10.981501],[464.47314,256.7,2.4930115,10.981501],[466.96616,256.7,3.9869995,10.981501],[308.8,246.40002,6.497986,10.981501],[315.29797,246.40002,2.4930115,10.981501],[317.791,246.40002,2.4930115,10.981501],[320.284,246.40002,3.9869995,10.981501],[324.271,246.40002,2.9970093,10.981501],[327.268,246.40002,4.5,10.981501],[331.768,246.40002,3.9869995,10.981501],[335.755,246.40002,2.4930115,10.981501],[338.24802,246.40002,2.4930115,10.981501],[340.74103,246.40002,4.5,10.981501],[345.24103,246.40002,3.9869995,10.981501],[351.42404,246.40002,3.9869995,10.981501],[355.41104,246.40002,4.5,10.981501],[359.91104,246.40002,4.5,10.981501],[364.41104,246.40002,2.4930115,10.981501],[366.90405,246.40002,3.9869995,10.981501],[370.89105,246.40002,3.9869995,10.981501],[374.87805,246.40002,2.4930115,10.981501],[377.37106,246.40002,2.4930115,10.981501],[382.0601,246.40002,5.48999,10.981501],[387.55008,246.40002,6.9930115,10.981501],[394.5431,246.40002,2.4930115,10.981501],[397.0361,246.40002,2.4930115,10.981501],[399.5291,246.40002,2.4930115,10.981501],[402.02213,246.40002,3.9869995,10.981501],[408.30414,246.40002,5.48999,10.981501],[413.79413,246.40002,4.5,10.981501],[418.29413,246.40002,3.9869995,10.981501],[422.28113,246.40002,4.5,10.981501],[426.78113,246.40002,4.5,10.981501],[431.28113,246.40002,3.9869995,10.981501],[435.26813,246.40002,2.9970093,10.981501],[438.26514,246.40002,2.4930115,10.981501],[308.8,236.0,6.497986,10.981501],[315.29797,236.0,2.4930115,10.981501],[317.791,236.0,2.4930115,10.981501],[320.284,236.0,3.9869995,10.981501],[324.271,236.0,2.9970093,10.981501],[327.268,236.0,4.5,10.981501],[331.768,236.0,3.9869995,10.981501],[335.755,236.0,2.4930115,10.981501],[338.24802,236.0,2.4930115,10.981501],[340.74103,236.0,4.5,10.981501],[345.24103,236.0,3.9869995,10.981501],[351.42404,236.0,3.9869995,10.981501],[355.41104,236.0,4.5,10.981501],[359.91104,236.0,4.5,10.981501],[364.41104,236.0,2.4930115,10.981501],[366.90405,236.0,3.9869995,10.981501],[370.89105,236.0,3.9869995,10.981501],[374.87805,236.0,2.4930115,10.981501],[377.37106,236.0,2.4930115,10.981501]]},{"id":65,"stringIdxToPositionIdx":[0,1,2,3,4,5,6,7,8,9,9,10,11,12,13,14,15,16,16,17,18,19,20,21,21,22,23,24,25,26,27,28,28,29,30,31,32,32,33,34,35,36,36,37,38,39,40,41,41,42,43,43,44,45,46,47,48,49,50,51],"positions":[[394.9,225.70001,5.993988,10.981501],[400.89398,225.70001,4.5,10.981501],[405.39398,225.70001,4.5,10.981501],[409.89398,225.70001,3.9869995,10.981501],[413.88098,225.70001,2.9970093,10.981501],[416.878,225.70001,4.5,10.981501],[421.378,225.70001,4.5,10.981501],[425.878,225.70001,4.5,10.981501],[430.378,225.70001,3.9869995,10.981501],[436.66,225.70001,5.003998,10.981501],[441.664,225.70001,4.5,10.981501],[446.164,225.70001,3.501007,10.981501],[449.665,225.70001,2.4930115,10.981501],[452.15802,225.70001,3.9869995,10.981501],[456.14502,225.70001,6.9930115,10.981501],[463.13803,225.70001,3.501007,10.981501],[393.6,215.29999,5.48999,10.981501],[398.496,215.29999,4.5,10.981501],[402.996,215.29999,6.497986,10.981501],[409.494,215.29999,3.9869995,10.981501],[413.481,215.29999,2.9970093,10.981501],[418.674,215.29999,6.497986,10.981501],[425.172,215.29999,3.9869995,10.981501],[429.159,215.29999,2.9970093,10.981501],[432.156,215.29999,3.9869995,10.981501],[436.143,215.29999,4.5,10.981501],[440.643,215.29999,3.501007,10.981501],[444.144,215.29999,3.9869995,10.981501],[450.42603,215.29999,4.5,10.981501],[454.92603,215.29999,4.5,10.981501],[459.42603,215.29999,4.5,10.981501],[463.92603,215.29999,3.9869995,10.981501],[387.1,205.0,6.497986,10.981501],[393.598,205.0,4.5,10.981501],[398.098,205.0,4.5,10.981501],[402.598,205.0,4.5,10.981501],[409.393,205.0,6.497986,10.981501],[415.891,205.0,4.5,10.981501],[420.391,205.0,4.5,10.981501],[424.891,205.0,4.5,10.981501],[429.292,205.0,2.25,10.981501],[433.88202,205.0,5.993988,10.981501],[439.876,205.0,5.48999,10.981501],[447.47202,205.0,6.497986,10.981501],[453.97,205.0,2.4930115,10.981501],[456.463,205.0,3.501007,10.981501],[459.96402,205.0,2.4930115,10.981501],[462.45703,205.0,2.9970093,10.981501],[465.45404,205.0,2.4930115,10.981501],[467.94705,205.0,3.9869995,10.981501],[471.93405,205.0,2.4930115,10.981501]]},{"id":66,"stringIdxToPositionIdx":[0,1,2,3,4,4,5,6,7,8,9,10,10,11,12,13,14,15,16,16,17,18,19,20,21,22,23,23,24,25,26,27,28,29,30,31,32,33,34,34,35,36,37,38,39,40,41,42,43,43,44,45,46,47,48,49,50,51,52],"positions":[[56.8,692.1,10.1802025,13.867801],[66.9802,692.1,8.600998,13.867801],[75.5812,692.1,3.9057007,13.867801],[79.4869,692.1,7.8395996,13.867801],[91.274506,692.1,7.8395996,13.867801],[99.1,692.1,7.8395996,13.867801],[106.8973,692.1,3.9057007,13.867801],[110.803,692.1,7.8395996,13.867801],[118.6849,692.1,7.8395996,13.867801],[126.6,692.1,4.695305,13.867801],[135.201,692.1,10.180206,13.867801],[145.38121,692.1,7.8395996,13.867801],[153.17851,692.1,8.600998,13.867801],[161.8641,692.1,7.8395996,13.867801],[169.6614,692.1,7.8395996,13.867801],[177.45871,692.1,4.6952972,13.867801],[186.1443,692.1,7.8395996,13.867801],[193.9416,692.1,8.600998,13.867801],[202.5426,692.1,8.600998,13.867801],[211.1436,692.1,4.6952972,13.867801],[215.8389,692.1,7.8395996,13.867801],[223.7208,692.1,7.8395996,13.867801],[231.5181,692.1,4.6952972,13.867801],[240.1191,692.1,3.9057007,13.867801],[244.0248,692.1,8.600998,13.867801],[252.6258,692.1,4.6953125,13.867801],[257.3211,692.1,8.601013,13.867801],[265.92212,692.1,5.484894,13.867801],[271.407,692.1,12.534912,13.867801],[283.99832,692.1,7.8395996,13.867801],[291.79562,692.1,4.6953125,13.867801],[296.49094,692.1,3.9057007,13.867801],[300.39664,692.1,8.601013,13.867801],[308.99765,692.1,8.601013,13.867801],[321.58896,692.1,4.6953125,13.867801],[326.3,692.1,7.8395996,13.867801],[334.0973,692.1,8.601013,13.867801],[342.6983,692.1,8.601013,13.867801],[351.29932,692.1,4.6953125,13.867801],[355.99463,692.1,7.8395996,13.867801],[363.87653,692.1,3.9057007,13.867801],[367.78223,692.1,8.601013,13.867801],[376.38324,692.1,7.8395996,13.867801],[388.17084,692.1,9.3905945,13.867801],[397.56143,692.1,5.484894,13.867801],[403.04633,692.1,8.601013,13.867801],[411.64734,692.1,8.601013,13.867801],[420.24835,692.1,8.601013,13.867801],[428.84937,692.1,7.8395996,13.867801],[436.73126,692.1,7.8395996,13.867801],[444.52856,692.1,5.484894,13.867801],[450.01346,692.1,4.6953125,13.867801]]},{"id":67,"stringIdxToPositionIdx":[0,1,2,3,4,5,6,6,7,8,9,10,10,11,12,13,14,15,16,17,18,19,20,20,21,22,23,24,25,25,26,27,27,28,29,30,30,31,32,33,34,35,36,36,37,38,39,40,40,41,42,43,44,45,46,47,48,49,50,50,51,52,53,54,55,55,56,57,57,58,59,59,60,61,62,63,64,65,66,67,68,68,69,70,71,71,72,73,74,75,76,77,77,78,79,80,81,82,83,83,84,85,85,86,87,88,89,90,91,92],"positions":[[56.8,673.8,6.1000023,11.535],[62.9,673.8,4.4300003,11.535],[67.3,673.8,5.0,11.535],[72.3,673.8,5.0,11.535],[77.3,673.8,4.4300003,11.535],[81.700005,673.8,2.7699966,11.535],[86.99,673.8,6.659996,11.535],[93.67999,673.8,5.0,11.535],[98.67999,673.8,4.4300003,11.535],[103.079994,673.8,5.0,11.535],[110.66999,673.8,6.0999985,11.535],[115.66999,673.8,4.4300003,11.535],[120.06999,673.8,3.8899994,11.535],[123.95999,673.8,2.7699966,11.535],[126.749985,673.8,4.4299927,11.535],[131.14998,673.8,5.0,11.535],[136.14998,673.8,3.8899994,11.535],[140.03998,673.8,5.0,11.535],[145.03998,673.8,2.7700043,11.535],[147.82999,673.8,4.4299927,11.535],[154.72998,673.8,5.0,11.535],[159.72998,673.8,2.7700043,11.535],[162.51999,673.8,5.0,11.535],[167.51999,673.8,5.0,11.535],[172.51999,673.8,4.4299927,11.535],[179.41998,673.8,2.7700043,11.535],[182.20999,673.8,3.8899994,11.535],[188.59999,673.8,5.5599976,11.535],[193.19998,673.8,4.4299927,11.535],[197.59998,673.8,3.8899994,11.535],[56.8,662.2,6.1000023,11.535],[62.9,662.2,4.4300003,11.535],[67.3,662.2,5.0,11.535],[72.3,662.2,5.0,11.535],[77.3,662.2,4.4300003,11.535],[81.700005,662.2,2.7699966,11.535],[86.99,662.2,6.659996,11.535],[93.67999,662.2,5.0,11.535],[98.67999,662.2,4.4300003,11.535],[103.079994,662.2,5.0,11.535],[110.66999,662.2,6.0999985,11.535],[115.66999,662.2,4.4300003,11.535],[120.06999,662.2,3.8899994,11.535],[123.95999,662.2,2.7699966,11.535],[126.749985,662.2,4.4299927,11.535],[131.14998,662.2,5.0,11.535],[136.14998,662.2,3.8899994,11.535],[140.03998,662.2,5.0,11.535],[145.03998,662.2,2.7700043,11.535],[147.82999,662.2,4.4299927,11.535],[154.72998,662.2,5.0,11.535],[159.72998,662.2,2.7700043,11.535],[162.51999,662.2,5.0,11.535],[167.51999,662.2,5.0,11.535],[172.51999,662.2,4.4299927,11.535],[179.41998,662.2,2.7700043,11.535],[182.20999,662.2,3.8899994,11.535],[188.59999,662.2,6.6600037,11.535],[195.29,662.2,5.0,11.535],[56.8,650.7,5.5600014,11.535],[62.3,650.7,6.1000023,11.535],[68.4,650.7,3.8899994,11.535],[71.9,650.7,5.0,11.535],[76.9,650.7,5.0,11.535],[81.9,650.7,5.0,11.535],[86.99,650.7,4.4300003,11.535],[91.39,650.7,4.4300003,11.535],[95.79,650.7,3.8899994,11.535],[102.18,650.7,6.659996,11.535],[108.869995,650.7,5.0,11.535],[113.869995,650.7,3.8899994,11.535],[120.259995,650.7,2.7699966,11.535],[123.04999,650.7,5.0,11.535],[128.04999,650.7,5.0,11.535],[133.04999,650.7,5.0,11.535],[138.04999,650.7,5.0,11.535],[142.94998,650.7,5.5599976,11.535],[151.03998,650.7,3.8899994,11.535],[154.92998,650.7,5.0,11.535],[159.92998,650.7,5.0,11.535],[164.92998,650.7,5.0,11.535],[169.92998,650.7,2.7700043,11.535],[172.71999,650.7,5.0,11.535],[180.21999,650.7,5.0,11.535],[185.21999,650.7,4.4299927,11.535],[192.11998,650.7,5.0,11.535],[197.11998,650.7,5.0,11.535],[202.11998,650.7,5.0,11.535],[207.11998,650.7,4.4299927,11.535],[211.51997,650.7,5.0,11.535],[216.51997,650.7,3.8899994,11.535],[220.40997,650.7,3.8899994,11.535]]},{"id":68,"stringIdxToPositionIdx":[0,1,2,3,4,5,6,7,8,8,9,10,10,11,12,13,13,14,15,16,17,18,18,19,20,21,22,23,24,25,26,27,28],"positions":[[56.8,625.7,6.672001,12.642],[63.484,625.7,3.9960022,12.642],[67.48,625.7,6.0,12.642],[73.48,625.7,6.0,12.642],[79.48,625.7,6.0,12.642],[85.48,625.7,5.316002,12.642],[90.784004,625.7,5.316002,12.642],[96.088005,625.7,3.9960022,12.642],[103.08401,625.7,6.0,12.642],[109.08401,625.7,3.9960022,12.642],[116.08001,625.7,3.3239975,12.642],[119.380005,625.7,6.0,12.642],[125.380005,625.7,5.3159943,12.642],[133.768,625.7,6.0,12.642],[139.768,625.7,3.3240051,12.642],[143.06801,625.7,5.3159943,12.642],[148.37201,625.7,6.0,12.642],[154.37201,625.7,3.3240051,12.642],[160.75601,625.7,6.0,12.642],[166.75601,625.7,3.9960022,12.642],[170.75201,625.7,6.0,12.642],[176.75201,625.7,6.0,12.642],[182.75201,625.7,6.0,12.642],[188.75201,625.7,5.3159943,12.642],[194.05602,625.7,3.3240051,12.642],[197.35602,625.7,3.3240051,12.642],[200.65602,625.7,6.0,12.642],[206.65602,625.7,6.0,12.642]]},{"id":69,"stringIdxToPositionIdx":[0,1,2,3,4,5,5,6,7,8,9,10,11,12,13,13,14,15,16,17,18,19,20,21,22,23,24,24,25,26,27,28,29,30,31,32,32,33,34,35,36,36,37,38,39,40,41,42,43,44,45,45,46,47,48,49,50,51,52,53,53,54,55,56,57,58,59,59,60,61,62,63,64,65,66,67,68,68,69,70,71,72,73,74,75,76,77,78,78,79,80,81,82,83,84,84,85,86,87,88,89,89,90,91,92,93,94,94,95,96,97,98,99,100,100,101,102,103,103,104,105,106,106,107,108,109,110,111,111,112,113,114,115,115,116,117,118,118,119,120,121,121,122,123,124,125,126,126,127,128,129,130,131,132,133,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158],"positions":[[56.8,598.1,8.663998,12.642],[65.488,598.1,5.316002,12.642],[70.792,598.1,9.3239975,12.642],[80.091995,598.1,5.316002,12.642],[85.395996,598.1,3.3239975,12.642],[128.8,598.1,8.664001,12.642],[137.488,598.1,9.324005,12.642],[146.78801,598.1,6.0,12.642],[152.78801,598.1,3.9960022,12.642],[156.78401,598.1,5.3159943,12.642],[162.08801,598.1,3.3240051,12.642],[165.38802,598.1,3.3240051,12.642],[168.68802,598.1,5.3159943,12.642],[177.07602,598.1,7.9920044,12.642],[185.06802,598.1,6.0,12.642],[191.06802,598.1,3.9960022,12.642],[195.06403,598.1,6.0,12.642],[201.06403,598.1,6.0,12.642],[207.06403,598.1,3.9960022,12.642],[211.06003,598.1,5.3159943,12.642],[216.36403,598.1,3.3240051,12.642],[219.66403,598.1,3.3240051,12.642],[222.96404,598.1,6.0,12.642],[228.96404,598.1,6.0,12.642],[56.8,584.3,7.9920006,12.642],[64.792,584.3,6.0,12.642],[70.792,584.3,6.0,12.642],[76.792,584.3,3.3239975,12.642],[80.091995,584.3,5.316002,12.642],[85.395996,584.3,5.316002,12.642],[90.7,584.3,3.3239975,12.642],[94.08399,584.3,3.3239975,12.642],[128.8,584.3,4.6679993,12.642],[133.492,584.3,3.3240051,12.642],[136.792,584.3,3.3240051,12.642],[140.09201,584.3,3.3240051,12.642],[146.18802,584.3,8.664001,12.642],[153.48402,584.3,5.3159943,12.642],[158.87202,584.3,3.3240051,12.642],[162.17203,584.3,5.3159943,12.642],[167.47603,584.3,6.0,12.642],[173.47603,584.3,3.3240051,12.642],[176.86003,584.3,3.3240051,12.642],[180.16003,584.3,6.0,12.642],[186.16003,584.3,5.3159943,12.642],[56.8,570.5,8.663998,12.642],[65.404,570.5,6.0,12.642],[71.404,570.5,6.0,12.642],[77.404,570.5,3.9960022,12.642],[81.4,570.5,5.316002,12.642],[86.704,570.5,4.6679993,12.642],[91.396,570.5,4.6679993,12.642],[96.088005,570.5,3.3239975,12.642],[128.8,570.5,6.0,12.642],[134.8,570.5,6.0,12.642],[140.8,570.5,6.0,12.642],[146.8,570.5,3.9960022,12.642],[150.796,570.5,6.0,12.642],[156.796,570.5,6.0,12.642],[165.796,570.5,8.664001,12.642],[174.40001,570.5,6.0,12.642],[180.40001,570.5,5.3159943,12.642],[185.78801,570.5,9.324005,12.642],[195.08801,570.5,3.9960022,12.642],[199.08401,570.5,6.0,12.642],[205.08401,570.5,6.0,12.642],[211.08401,570.5,6.0,12.642],[217.08401,570.5,6.0,12.642],[128.8,556.7,8.664001,12.642],[136.20401,556.7,6.0,12.642],[142.20401,556.7,6.0,12.642],[148.20401,556.7,6.0,12.642],[154.20401,556.7,4.6679993,12.642],[158.89601,556.7,5.3159943,12.642],[164.20001,556.7,6.0,12.642],[170.20001,556.7,3.9960022,12.642],[174.19601,556.7,6.0,12.642],[180.19601,556.7,6.0,12.642],[128.8,542.9,6.671997,12.642],[135.484,542.9,5.3159943,12.642],[140.788,542.9,6.0,12.642],[146.788,542.9,6.0,12.642],[152.788,542.9,3.3240051,12.642],[156.088,542.9,3.0,12.642],[162.088,542.9,6.671997,12.642],[168.77199,542.9,6.0,12.642],[174.77199,542.9,6.0,12.642],[180.77199,542.9,3.3240051,12.642],[184.07199,542.9,6.0,12.642],[193.07199,542.9,8.664001,12.642],[201.76,542.9,6.0,12.642],[207.76,542.9,3.9960022,12.642],[211.756,542.9,5.3159943,12.642],[217.06,542.9,5.3159943,12.642],[56.8,529.1,6.672001,12.642],[63.484,529.1,6.0,12.642],[69.484,529.1,6.0,12.642],[75.484,529.1,6.0,12.642],[81.484,529.1,5.316002,12.642],[86.788,529.1,3.3239975,12.642],[128.8,529.1,6.7559967,12.642],[135.496,529.1,6.0,12.642],[141.496,529.1,6.0,12.642],[150.496,529.1,6.0,12.642],[156.496,529.1,6.0,12.642],[162.496,529.1,6.0,12.642],[171.496,529.1,6.0,12.642],[177.496,529.1,6.0,12.642],[183.496,529.1,6.0,12.642],[189.496,529.1,6.0,12.642],[195.496,529.1,6.0,12.642],[56.8,515.3,6.672001,12.642],[63.484,515.3,5.316002,12.642],[68.788,515.3,6.0,12.642],[74.788,515.3,3.3239975,12.642],[128.8,515.3,6.7559967,12.642],[135.496,515.3,6.0,12.642],[141.496,515.3,6.0,12.642],[150.496,515.3,6.0,12.642],[156.496,515.3,6.0,12.642],[162.496,515.3,6.0,12.642],[171.496,515.3,6.0,12.642],[177.496,515.3,6.0,12.642],[183.496,515.3,6.0,12.642],[189.496,515.3,6.0,12.642],[195.496,515.3,6.0,12.642],[56.8,501.5,7.3200035,12.642],[64.096,501.5,3.9960022,12.642],[68.092,501.5,9.3239975,12.642],[77.392,501.5,5.316002,12.642],[82.78,501.5,3.3239975,12.642],[86.079994,501.5,3.3239975,12.642],[89.37999,501.5,3.3239975,12.642],[128.8,501.5,6.0,12.642],[134.8,501.5,6.0,12.642],[140.8,501.5,5.3159943,12.642],[146.104,501.5,3.9960022,12.642],[150.1,501.5,9.324005,12.642],[159.40001,501.5,5.3159943,12.642],[164.70401,501.5,3.9960022,12.642],[168.796,501.5,3.3240051,12.642],[172.09601,501.5,6.0,12.642],[178.09601,501.5,6.0,12.642],[184.09601,501.5,6.0,12.642],[190.09601,501.5,4.6679993,12.642],[194.78801,501.5,3.3240051,12.642],[198.08801,501.5,3.9960022,12.642],[202.08401,501.5,6.0,12.642],[207.98802,501.5,11.039993,12.642],[219.07602,501.5,6.0,12.642],[225.07602,501.5,6.0,12.642],[231.07602,501.5,3.9960022,12.642],[235.07202,501.5,5.3159943,12.642],[240.37602,501.5,5.3159943,12.642],[245.68002,501.5,3.0,12.642],[248.76402,501.5,5.3159943,12.642],[254.06802,501.5,6.0,12.642],[260.06802,501.5,9.324005,12.642]]},{"id":70,"stringIdxToPositionIdx":[0,1,2,3,4,4,5,6,7,8,9,10,11,12,13,14,15,16,16,17,18,18,19,20,21,22,22,23,24,25,26,27,28,29,30,30,31,32,33,34,35,36,37,38,39,40,40,41,42,43,43,44,45,46,47,48,49,50,51,52,53,54,54,55,56,57,58,59,60,60,61,62,63,63,64,65,66,66,67,68,69,70,71,72,72,73,74,75,76,77,78,79,80,81,82,82,83,84,85,86,87,88,89,89,90,91,92,93,93,94,95,96,97,98,99,99,100,101,102,103,104,105,106,106,107,108,109,110],"positions":[[56.8,437.3,10.1802025,13.867801],[66.9802,437.3,8.600998,13.867801],[75.5812,437.3,3.9057007,13.867801],[79.4869,437.3,7.8395996,13.867801],[91.3,437.3,7.8395996,13.867801],[99.097305,437.3,7.8395996,13.867801],[106.89461,437.3,3.9057007,13.867801],[110.88491,437.3,7.8395996,13.867801],[118.68221,437.3,7.8395996,13.867801],[126.479515,437.3,3.905693,13.867801],[130.4698,437.3,7.8395996,13.867801],[138.2671,437.3,7.8395996,13.867801],[146.0644,437.3,3.9057007,13.867801],[150.0547,437.3,7.8395996,13.867801],[157.852,437.3,7.8395996,13.867801],[165.8,437.3,4.6952972,13.867801],[174.4,437.3,3.9057007,13.867801],[178.3057,437.3,4.6952972,13.867801],[186.9067,437.3,8.600998,13.867801],[194.50659,437.3,7.8395996,13.867801],[202.3039,437.3,7.8395996,13.867801],[210.1012,437.3,4.6952972,13.867801],[218.78679,437.3,7.8395996,13.867801],[226.58409,437.3,8.600998,13.867801],[235.18509,437.3,8.600998,13.867801],[243.78609,437.3,4.6952972,13.867801],[248.48138,437.3,7.8395996,13.867801],[256.2787,437.3,3.9057007,13.867801],[260.26898,437.3,8.601013,13.867801],[268.87,437.3,7.8395996,13.867801],[280.6576,437.3,6.6834106,13.867801],[287.2564,437.3,10.180206,13.867801],[297.4366,437.3,10.180206,13.867801],[307.61682,437.3,8.601013,13.867801],[316.21783,437.3,10.180206,13.867801],[326.39804,437.3,10.955688,13.867801],[337.38193,437.3,10.180206,13.867801],[347.56213,437.3,9.3905945,13.867801],[356.95273,437.3,4.6953125,13.867801],[361.54935,437.3,6.6834106,13.867801],[372.22305,437.3,7.8395996,13.867801],[380.02036,437.3,8.601013,13.867801],[388.62137,437.3,8.601013,13.867801],[401.21268,437.3,6.6834106,13.867801],[407.8115,437.3,10.180206,13.867801],[417.9917,437.3,10.955688,13.867801],[428.9756,437.3,11.7453,13.867801],[440.6786,437.3,9.3905945,13.867801],[450.06918,437.3,8.601013,13.867801],[458.6702,437.3,9.3905945,13.867801],[468.0608,437.3,8.601013,13.867801],[476.6618,437.3,3.9057007,13.867801],[480.5675,437.3,10.955688,13.867801],[491.5514,437.3,10.180206,13.867801],[56.8,421.1,10.1802025,13.867801],[66.9802,421.1,10.180199,13.867801],[76.0747,421.1,8.600998,13.867801],[84.6757,421.1,9.390602,13.867801],[94.0663,421.1,9.390602,13.867801],[103.4569,421.1,6.683403,13.867801],[114.046005,421.1,8.600998,13.867801],[122.647,421.1,8.600998,13.867801],[131.248,421.1,4.6952972,13.867801],[139.9336,421.1,8.600998,13.867801],[148.53459,421.1,8.600998,13.867801],[157.13559,421.1,4.6952972,13.867801],[165.73659,421.1,6.6833954,13.867801],[172.41998,421.1,9.3905945,13.867801],[181.81058,421.1,8.600998,13.867801],[190.41158,421.1,10.180206,13.867801],[200.59178,421.1,10.180206,13.867801],[210.77199,421.1,9.3905945,13.867801],[223.85678,421.1,10.180206,13.867801],[233.9524,421.1,10.955704,13.867801],[244.9363,421.1,11.745285,13.867801],[256.63928,421.1,9.3905945,13.867801],[266.02988,421.1,8.601013,13.867801],[274.6309,421.1,9.3905945,13.867801],[284.02148,421.1,8.601013,13.867801],[292.7071,421.1,3.9057007,13.867801],[296.6128,421.1,10.955688,13.867801],[307.59668,421.1,10.180206,13.867801],[321.6826,421.1,10.180206,13.867801],[331.8628,421.1,10.180206,13.867801],[340.9573,421.1,8.601013,13.867801],[349.55832,421.1,9.3905945,13.867801],[358.9489,421.1,9.3905945,13.867801],[368.3395,421.1,6.6834106,13.867801],[375.02292,421.1,3.9057007,13.867801],[382.83432,421.1,4.6953125,13.867801],[387.52963,421.1,8.601013,13.867801],[396.13065,421.1,7.8395996,13.867801],[404.01254,421.1,8.601013,13.867801],[416.51926,421.1,10.180206,13.867801],[426.69946,421.1,7.8395996,13.867801],[434.49677,421.1,8.601013,13.867801],[443.18237,421.1,7.8395996,13.867801],[450.97968,421.1,7.8395996,13.867801],[458.77698,421.1,4.6953125,13.867801],[467.4626,421.1,8.601013,13.867801],[476.0636,421.1,7.8395996,13.867801],[483.8609,421.1,4.6953125,13.867801],[488.5562,421.1,10.955688,13.867801],[499.5401,421.1,7.8395996,13.867801],[507.3374,421.1,7.8395996,13.867801],[515.1347,421.1,8.601013,13.867801],[56.8,404.9,8.601002,13.867801],[65.401,404.9,8.600998,13.867801],[74.002,404.9,4.6952972,13.867801],[78.697296,404.9,8.600998,13.867801]]},{"id":71,"stringIdxToPositionIdx":[0,1,2,3,4,5,6,6,7,8,9,10,10,11,12,13,14,15,16,17,18,19,20,20,21,22,23,24,25,25,26,27,27,28,29,30,30,31,32,33,34,35,36,36,37,38,39,40,40,41,42,43,44,45,46,47,48,49,50,50,51,52,53,54,55,55,56,57,57,58,59],"positions":[[56.8,386.6,6.1000023,11.535],[62.9,386.6,4.4300003,11.535],[67.3,386.6,5.0,11.535],[72.3,386.6,5.0,11.535],[77.3,386.6,4.4300003,11.535],[81.700005,386.6,2.7699966,11.535],[86.99,386.6,6.659996,11.535],[93.67999,386.6,5.0,11.535],[98.67999,386.6,4.4300003,11.535],[103.079994,386.6,5.0,11.535],[110.66999,386.6,6.0999985,11.535],[115.66999,386.6,4.4300003,11.535],[120.06999,386.6,3.8899994,11.535],[123.95999,386.6,2.7699966,11.535],[126.749985,386.6,4.4299927,11.535],[131.14998,386.6,5.0,11.535],[136.14998,386.6,3.8899994,11.535],[140.03998,386.6,5.0,11.535],[145.03998,386.6,2.7700043,11.535],[147.82999,386.6,4.4299927,11.535],[154.72998,386.6,5.0,11.535],[159.72998,386.6,2.7700043,11.535],[162.51999,386.6,5.0,11.535],[167.51999,386.6,5.0,11.535],[172.51999,386.6,4.4299927,11.535],[179.41998,386.6,2.7700043,11.535],[182.20999,386.6,3.8899994,11.535],[188.59999,386.6,5.5599976,11.535],[193.19998,386.6,4.4299927,11.535],[197.59998,386.6,3.8899994,11.535],[56.8,375.0,6.1000023,11.535],[62.9,375.0,4.4300003,11.535],[67.3,375.0,5.0,11.535],[72.3,375.0,5.0,11.535],[77.3,375.0,4.4300003,11.535],[81.700005,375.0,2.7699966,11.535],[86.99,375.0,6.659996,11.535],[93.67999,375.0,5.0,11.535],[98.67999,375.0,4.4300003,11.535],[103.079994,375.0,5.0,11.535],[110.66999,375.0,6.0999985,11.535],[115.66999,375.0,4.4300003,11.535],[120.06999,375.0,3.8899994,11.535],[123.95999,375.0,2.7699966,11.535],[126.749985,375.0,4.4299927,11.535],[131.14998,375.0,5.0,11.535],[136.14998,375.0,3.8899994,11.535],[140.03998,375.0,5.0,11.535],[145.03998,375.0,2.7700043,11.535],[147.82999,375.0,4.4299927,11.535],[154.72998,375.0,5.0,11.535],[159.72998,375.0,2.7700043,11.535],[162.51999,375.0,5.0,11.535],[167.51999,375.0,5.0,11.535],[172.51999,375.0,4.4299927,11.535],[179.41998,375.0,2.7700043,11.535],[182.20999,375.0,3.8899994,11.535],[188.59999,375.0,6.6600037,11.535],[195.29,375.0,5.0,11.535]]},{"id":72,"stringIdxToPositionIdx":[0,1,2,3,4,5,5,6,7,8,9,10,11,12,13,14,14,15,16,17,18,19,20,21,22,23,24,24,25,26,27,27,28,29,30,31,31,32,33,34,35,36],"positions":[[56.8,347.8,6.672001,12.642],[63.484,347.8,3.3239975,12.642],[66.784,347.8,6.0,12.642],[72.784,347.8,6.0,12.642],[78.784,347.8,6.0,12.642],[87.784,347.8,7.991997,12.642],[95.77599,347.8,5.316002,12.642],[101.079994,347.8,6.0,12.642],[107.079994,347.8,6.0,12.642],[113.079994,347.8,3.9960022,12.642],[117.076,347.8,3.3239975,12.642],[120.37599,347.8,6.0,12.642],[126.37599,347.8,6.0,12.642],[132.37599,347.8,6.0,12.642],[56.8,334.0,8.663998,12.642],[65.404,334.0,8.664001,12.642],[74.092,334.0,7.991997,12.642],[82.084,334.0,9.3239975,12.642],[91.383995,334.0,9.3239975,12.642],[100.68399,334.0,8.664001,12.642],[109.371994,334.0,3.9960022,12.642],[113.368,334.0,6.671997,12.642],[120.051994,334.0,3.9960022,12.642],[124.048,334.0,3.9959946,12.642],[200.8,334.0,8.664001,12.642],[209.488,334.0,3.9960022,12.642],[212.78801,334.0,3.0,12.642],[218.09201,334.0,8.664001,12.642],[226.78001,334.0,3.3240051,12.642],[230.08002,334.0,5.3159943,12.642],[235.38402,334.0,6.0,12.642],[244.38402,334.0,8.664001,12.642],[253.07202,334.0,3.9960022,12.642],[257.06802,334.0,5.3160095,12.642],[262.37204,334.0,6.0,12.642],[268.37204,334.0,3.3240051,12.642]]},{"id":73,"stringIdxToPositionIdx":[0,1,2,3,4,5,6,7,8,9,10,10,11,12,13,14,15,15,16,17,17,18,19,20,21,22,23,24,25,25,26,27,28,29],"positions":[[56.8,306.4,8.663998,12.642],[65.488,306.4,9.3239975,12.642],[74.787994,306.4,11.316002,12.642],[86.091995,306.4,7.3199997,12.642],[93.38799,306.4,7.991997,12.642],[101.37999,306.4,7.991997,12.642],[109.37199,306.4,7.991997,12.642],[117.36398,306.4,4.6679993,12.642],[122.055984,306.4,9.324005,12.642],[131.35599,306.4,8.664001,12.642],[143.04399,306.4,8.664001,12.642],[151.732,306.4,8.664001,12.642],[159.43599,306.4,7.9920044,12.642],[167.428,306.4,7.9920044,12.642],[175.42,306.4,3.9960022,12.642],[200.8,306.4,6.0,12.642],[206.8,306.4,6.0,12.642],[215.8,306.4,8.664001,12.642],[224.488,306.4,5.3159943,12.642],[229.792,306.4,5.3159943,12.642],[235.09601,306.4,5.3159943,12.642],[240.40001,306.4,9.324005,12.642],[249.70001,306.4,6.0,12.642],[255.70001,306.4,5.3160095,12.642],[261.00403,306.4,3.9960022,12.642],[268.09604,306.4,6.0,12.642],[274.09604,306.4,6.0,12.642],[280.09604,306.4,6.0,12.642],[286.09604,306.4,6.0,12.642]]},{"id":74,"stringIdxToPositionIdx":[0,1,2,3,4,4,5,6,7,8,9,10,11,12,13,14,15,16,16,17,18,19,20,21,22,23,24,25,26,27,28,28,29,30,31,32,33,34,35,36,36,37,38,39,40,40,41,42,43,43,44,45,46,47,48,48,49,50,51,52,53,54,55,56,57,58,58,59,60,61,62,63],"positions":[[56.8,242.20001,10.1802025,13.867801],[66.9802,242.20001,8.600998,13.867801],[75.5812,242.20001,3.9057007,13.867801],[79.4869,242.20001,7.8395996,13.867801],[91.3,242.20001,7.8395996,13.867801],[99.097305,242.20001,7.8395996,13.867801],[106.89461,242.20001,3.9057007,13.867801],[110.88491,242.20001,7.8395996,13.867801],[118.68221,242.20001,7.8395996,13.867801],[126.479515,242.20001,3.905693,13.867801],[130.4698,242.20001,7.8395996,13.867801],[138.2671,242.20001,7.8395996,13.867801],[146.0644,242.20001,3.9057007,13.867801],[150.0547,242.20001,7.8395996,13.867801],[157.852,242.20001,7.8395996,13.867801],[165.8,242.20001,4.6952972,13.867801],[174.4,242.20001,4.6952972,13.867801],[179.09529,242.20001,7.8395996,13.867801],[186.8926,242.20001,8.600998,13.867801],[195.49359,242.20001,8.600998,13.867801],[204.09459,242.20001,3.9057007,13.867801],[208.00029,242.20001,4.6952972,13.867801],[212.69559,242.20001,3.9057007,13.867801],[216.60129,242.20001,8.600998,13.867801],[225.28688,242.20001,8.600998,13.867801],[233.88788,242.20001,7.8395996,13.867801],[241.68518,242.20001,3.9057007,13.867801],[245.59088,242.20001,4.6952972,13.867801],[254.27647,242.20001,8.600998,13.867801],[262.87747,242.20001,7.8395996,13.867801],[270.67477,242.20001,8.601013,13.867801],[279.2758,242.20001,7.8395996,13.867801],[287.0731,242.20001,4.6953125,13.867801],[291.7684,242.20001,3.9057007,13.867801],[295.7587,242.20001,7.8395996,13.867801],[303.556,242.20001,7.8395996,13.867801],[315.3436,242.20001,8.601013,13.867801],[322.9435,242.20001,7.8395996,13.867801],[330.7408,242.20001,7.8395996,13.867801],[338.53812,242.20001,4.6953125,13.867801],[347.22372,242.20001,4.6953125,13.867801],[351.91904,242.20001,8.601013,13.867801],[360.42136,242.20001,5.484894,13.867801],[369.89655,242.20001,9.3905945,13.867801],[379.28714,242.20001,4.6953125,13.867801],[383.98245,242.20001,8.601013,13.867801],[392.58347,242.20001,8.601013,13.867801],[401.18448,242.20001,7.8395996,13.867801],[412.97208,242.20001,7.8395996,13.867801],[420.76938,242.20001,8.601013,13.867801],[429.3704,242.20001,12.534912,13.867801],[441.8771,242.20001,8.601013,13.867801],[450.47812,242.20001,3.9057007,13.867801],[454.4684,242.20001,7.8395996,13.867801],[462.26572,242.20001,4.6953125,13.867801],[466.96103,242.20001,3.9057007,13.867801],[470.86673,242.20001,8.601013,13.867801],[479.46774,242.20001,8.601013,13.867801],[492.05905,242.20001,8.601013,13.867801],[500.66006,242.20001,7.8395996,13.867801],[508.45737,242.20001,4.695282,13.867801],[513.15265,242.20001,7.8395996,13.867801],[521.03455,242.20001,7.8395996,13.867801]]},{"id":75,"stringIdxToPositionIdx":[0,1,2,2,3,4,5,6,7,8,9,10,11,11,12,13,14,15,16,17,17,18,19,19,20,21,22,23,24,25,26,26,27,28,29,30],"positions":[[56.8,223.9,6.66,11.535],[63.399998,223.9,4.999996,11.535],[70.899994,223.9,6.0999985,11.535],[76.99999,223.9,4.4300003,11.535],[81.399994,223.9,5.0,11.535],[86.399994,223.9,5.0,11.535],[91.48999,223.9,4.4300003,11.535],[95.88999,223.9,2.7699966,11.535],[98.679985,223.9,2.7699966,11.535],[101.46998,223.9,5.0,11.535],[106.46998,223.9,5.0,11.535],[113.96998,223.9,3.8899994,11.535],[117.85998,223.9,5.0,11.535],[122.85998,223.9,5.0,11.535],[127.85998,223.9,5.0000076,11.535],[132.85999,223.9,2.7700043,11.535],[135.65,223.9,5.0,11.535],[143.15,223.9,5.0,11.535],[148.15,223.9,4.4299927,11.535],[155.04999,223.9,5.0,11.535],[160.04999,223.9,5.0,11.535],[165.04999,223.9,5.0,11.535],[170.04999,223.9,4.4299927,11.535],[174.44998,223.9,5.0,11.535],[179.44998,223.9,3.8899994,11.535],[183.33998,223.9,3.8899994,11.535],[189.72998,223.9,5.0,11.535],[194.72998,223.9,4.4299927,11.535],[199.12997,223.9,3.8899994,11.535],[202.72998,223.9,4.4299927,11.535]]},{"id":76,"stringIdxToPositionIdx":[0,1,2,3,4,5,5,6,7,8,9,10,11,12,13,14,14,15,16,17,18,19,20,21,22,23,24,24,25,26,27,27,28,29,30,31,31,32,33,34,35,36],"positions":[[56.8,196.70004,6.672001,12.642],[63.484,196.70004,3.3239975,12.642],[66.784,196.70004,6.0,12.642],[72.784,196.70004,6.0,12.642],[78.784,196.70004,6.0,12.642],[87.784,196.70004,7.991997,12.642],[95.77599,196.70004,5.316002,12.642],[101.079994,196.70004,6.0,12.642],[107.079994,196.70004,6.0,12.642],[113.079994,196.70004,3.9960022,12.642],[117.076,196.70004,3.3239975,12.642],[120.37599,196.70004,6.0,12.642],[126.37599,196.70004,6.0,12.642],[132.37599,196.70004,6.0,12.642],[56.8,182.90005,8.663998,12.642],[65.404,182.90005,8.664001,12.642],[74.092,182.90005,7.991997,12.642],[82.084,182.90005,9.3239975,12.642],[91.383995,182.90005,9.3239975,12.642],[100.68399,182.90005,8.664001,12.642],[109.371994,182.90005,3.9960022,12.642],[113.368,182.90005,6.671997,12.642],[120.051994,182.90005,3.9960022,12.642],[124.048,182.90005,3.9959946,12.642],[236.8,182.90005,8.664001,12.642],[245.488,182.90005,3.9960022,12.642],[248.78801,182.90005,3.0,12.642],[254.09201,182.90005,8.664001,12.642],[262.78,182.90005,3.3240051,12.642],[266.08002,182.90005,5.3160095,12.642],[271.38403,182.90005,6.0,12.642],[280.38403,182.90005,8.664001,12.642],[289.07202,182.90005,3.9960022,12.642],[293.06802,182.90005,5.3160095,12.642],[298.37204,182.90005,6.0,12.642],[304.37204,182.90005,3.3240051,12.642]]},{"id":77,"stringIdxToPositionIdx":[0,1,2,3,4,4,5,6,7,8,9,10,10,11,12,12,13,14,15,16,16,17,18,19,20,21,22,23,24,24,25,26,27,28,29,30,31,32,33,34,35,35,36,37,38,39,39,40,41,42,42,43,44,45,46,46,47,48,49,50,51,52,53,53,54,55,56,57,57,58,59,60,61,61,62,63,64,65,66,67,67,68,69,70,71,72,73,74,75,76,77,77,78,79,80,81,82,83,84],"positions":[[56.8,692.1,10.1802025,13.867801],[66.9802,692.1,8.600998,13.867801],[75.5812,692.1,3.9057007,13.867801],[79.4869,692.1,7.8395996,13.867801],[91.3,692.1,7.8395996,13.867801],[99.097305,692.1,7.8395996,13.867801],[106.89461,692.1,3.9057007,13.867801],[110.88491,692.1,7.8395996,13.867801],[118.68221,692.1,7.8395996,13.867801],[126.6,692.1,4.695305,13.867801],[135.2,692.1,3.9057007,13.867801],[139.1057,692.1,4.6952972,13.867801],[147.7067,692.1,8.600998,13.867801],[155.3066,692.1,7.8395996,13.867801],[163.1039,692.1,7.8395996,13.867801],[170.9012,692.1,4.6952972,13.867801],[179.58679,692.1,7.8395996,13.867801],[187.3841,692.1,8.600998,13.867801],[195.98509,692.1,8.600998,13.867801],[204.58609,692.1,4.6952972,13.867801],[209.28139,692.1,7.8395996,13.867801],[217.07869,692.1,3.9057007,13.867801],[221.06898,692.1,8.600998,13.867801],[229.66998,692.1,7.8395996,13.867801],[241.45758,692.1,6.6833954,13.867801],[248.14098,692.1,9.39061,13.867801],[257.5316,692.1,7.8395996,13.867801],[265.3289,692.1,5.484894,13.867801],[270.81378,692.1,4.6953125,13.867801],[275.5091,692.1,8.601013,13.867801],[284.1101,692.1,5.484894,13.867801],[289.595,692.1,12.534912,13.867801],[302.1017,692.1,3.9057007,13.867801],[306.00742,692.1,8.601013,13.867801],[314.60843,692.1,8.601013,13.867801],[327.19974,692.1,8.601013,13.867801],[335.80075,692.1,7.8395996,13.867801],[343.59805,692.1,8.601013,13.867801],[352.19907,692.1,6.6834106,13.867801],[362.78818,692.1,7.8395996,13.867801],[370.67007,692.1,8.601013,13.867801],[379.2711,692.1,8.601013,13.867801],[391.7778,692.1,6.6834106,13.867801],[398.4612,692.1,8.601013,13.867801],[407.06223,692.1,7.8395996,13.867801],[414.85953,692.1,8.601013,13.867801],[427.45084,692.1,9.3905945,13.867801],[436.84143,692.1,5.484894,13.867801],[442.32632,692.1,8.601013,13.867801],[450.92734,692.1,3.9057007,13.867801],[454.83304,692.1,7.8395996,13.867801],[462.71494,692.1,7.8395996,13.867801],[470.51224,692.1,4.6953125,13.867801],[479.11325,692.1,3.9057007,13.867801],[483.01895,692.1,10.180206,13.867801],[493.19916,692.1,6.6834106,13.867801],[499.88257,692.1,3.9057007,13.867801],[507.69397,692.1,4.6953125,13.867801],[512.3893,692.1,8.601013,13.867801],[520.9903,692.1,7.8395996,13.867801],[528.8722,692.1,8.601013,13.867801],[56.8,675.9,10.1802025,13.867801],[66.9802,675.9,7.8395996,13.867801],[74.777504,675.9,8.600998,13.867801],[83.3785,675.9,7.8395996,13.867801],[91.2604,675.9,7.8395996,13.867801],[99.0577,675.9,4.6952972,13.867801],[107.6587,675.9,7.8395996,13.867801],[115.456,675.9,7.8395996,13.867801],[123.3379,675.9,7.8396072,13.867801],[131.13521,675.9,5.484894,13.867801],[136.6201,675.9,7.8395996,13.867801],[144.4174,675.9,4.6952972,13.867801],[149.1127,675.9,8.600998,13.867801],[157.7137,675.9,3.9057007,13.867801],[161.704,675.9,8.600998,13.867801],[170.305,675.9,8.600998,13.867801],[182.81169,675.9,8.600998,13.867801],[191.41269,675.9,7.8395996,13.867801],[199.20999,675.9,4.6952972,13.867801],[203.90529,675.9,10.955704,13.867801],[214.88919,675.9,7.8395996,13.867801],[222.77109,675.9,7.8395996,13.867801],[230.56839,675.9,8.600998,13.867801]]},{"id":78,"stringIdxToPositionIdx":[0,1,2,3,4,5,6,6,7,8,9,10,10,11,12,13,14,15,16,17,18,19,20,20,21,22,23,24,25,25,26,27,27,28,29,30,30,31,32,33,34,35,36,36,37,38,39,40,40,41,42,43,44,45,46,47,48,49,50,50,51,52,53,54,55,55,56,57,57,58,59],"positions":[[56.8,657.6,6.1000023,11.535],[62.9,657.6,4.4300003,11.535],[67.3,657.6,5.0,11.535],[72.3,657.6,5.0,11.535],[77.3,657.6,4.4300003,11.535],[81.700005,657.6,2.7699966,11.535],[86.99,657.6,6.659996,11.535],[93.67999,657.6,5.0,11.535],[98.67999,657.6,4.4300003,11.535],[103.079994,657.6,5.0,11.535],[110.66999,657.6,6.0999985,11.535],[115.66999,657.6,4.4300003,11.535],[120.06999,657.6,3.8899994,11.535],[123.95999,657.6,2.7699966,11.535],[126.749985,657.6,4.4299927,11.535],[131.14998,657.6,5.0,11.535],[136.14998,657.6,3.8899994,11.535],[140.03998,657.6,5.0,11.535],[145.03998,657.6,2.7700043,11.535],[147.82999,657.6,4.4299927,11.535],[154.72998,657.6,5.0,11.535],[159.72998,657.6,2.7700043,11.535],[162.51999,657.6,5.0,11.535],[167.51999,657.6,5.0,11.535],[172.51999,657.6,4.4299927,11.535],[179.41998,657.6,2.7700043,11.535],[182.20999,657.6,3.8899994,11.535],[188.59999,657.6,5.5599976,11.535],[193.19998,657.6,4.4299927,11.535],[197.59998,657.6,3.8899994,11.535],[56.8,646.0,6.1000023,11.535],[62.9,646.0,4.4300003,11.535],[67.3,646.0,5.0,11.535],[72.3,646.0,5.0,11.535],[77.3,646.0,4.4300003,11.535],[81.700005,646.0,2.7699966,11.535],[86.99,646.0,6.659996,11.535],[93.67999,646.0,5.0,11.535],[98.67999,646.0,4.4300003,11.535],[103.079994,646.0,5.0,11.535],[110.66999,646.0,6.0999985,11.535],[115.66999,646.0,4.4300003,11.535],[120.06999,646.0,3.8899994,11.535],[123.95999,646.0,2.7699966,11.535],[126.749985,646.0,4.4299927,11.535],[131.14998,646.0,5.0,11.535],[136.14998,646.0,3.8899994,11.535],[140.03998,646.0,5.0,11.535],[145.03998,646.0,2.7700043,11.535],[147.82999,646.0,4.4299927,11.535],[154.72998,646.0,5.0,11.535],[159.72998,646.0,2.7700043,11.535],[162.51999,646.0,5.0,11.535],[167.51999,646.0,5.0,11.535],[172.51999,646.0,4.4299927,11.535],[179.41998,646.0,2.7700043,11.535],[182.20999,646.0,3.8899994,11.535],[188.59999,646.0,6.6600037,11.535],[195.29,646.0,5.0,11.535]]},{"id":79,"stringIdxToPositionIdx":[0,1,2,3,4,5,5,6,7,8,9,10,11,12,13,14,14,15,16,17,18,19,20,21,22,23,24,24,25,26,27,28,29,30,31,32,33,34,35,35,36,37,38,39,40,41,42,43,43,44,45,46,47,48,49,50,51,52,53,54,54,55,56,57,58,59,60,61,62,63,64,64,65,66,67,68,69,70,71,71,72,73,74,74,75,76,77,78,79,80,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100],"positions":[[56.8,618.8,6.672001,12.642],[63.484,618.8,3.3239975,12.642],[66.784,618.8,6.0,12.642],[72.784,618.8,6.0,12.642],[78.784,618.8,6.0,12.642],[87.784,618.8,7.991997,12.642],[95.77599,618.8,5.316002,12.642],[101.079994,618.8,6.0,12.642],[107.079994,618.8,6.0,12.642],[113.079994,618.8,3.9960022,12.642],[117.076,618.8,3.3239975,12.642],[120.37599,618.8,6.0,12.642],[126.37599,618.8,6.0,12.642],[132.37599,618.8,6.0,12.642],[56.8,605.0,7.3200035,12.642],[64.096,605.0,7.991997,12.642],[72.088,605.0,8.664001,12.642],[80.776,605.0,7.3199997,12.642],[88.072,605.0,9.3239975,12.642],[97.371994,605.0,8.664001,12.642],[106.06,605.0,11.316002,12.642],[117.364,605.0,4.6679993,12.642],[122.056,605.0,8.664001,12.642],[130.744,605.0,9.324005,12.642],[143.044,605.0,7.9920044,12.642],[151.03601,605.0,8.664001,12.642],[159.72401,605.0,7.9920044,12.642],[167.71602,605.0,9.324005,12.642],[177.01602,605.0,8.664001,12.642],[185.62003,605.0,8.664001,12.642],[193.42003,605.0,7.9920044,12.642],[201.22003,605.0,9.324005,12.642],[210.60403,605.0,8.664001,12.642],[218.80003,605.0,8.664001,12.642],[226.39604,605.0,3.9960022,12.642],[236.8,605.0,8.664001,12.642],[245.488,605.0,9.324005,12.642],[254.78801,605.0,6.0000153,12.642],[260.78802,605.0,3.9960022,12.642],[264.78403,605.0,5.3160095,12.642],[270.08804,605.0,3.3240051,12.642],[273.38806,605.0,3.3240051,12.642],[276.68808,605.0,5.3160095,12.642],[285.07608,605.0,7.9920044,12.642],[293.06808,605.0,6.0,12.642],[299.06808,605.0,3.9960022,12.642],[303.0641,605.0,6.0,12.642],[309.0641,605.0,6.0,12.642],[315.0641,605.0,3.9960022,12.642],[319.0601,605.0,5.3160095,12.642],[324.3641,605.0,3.3240051,12.642],[327.66412,605.0,3.3240051,12.642],[330.96414,605.0,6.0,12.642],[336.96414,605.0,6.0,12.642],[56.8,591.2,7.9920006,12.642],[64.696,591.2,8.664001,12.642],[73.384,591.2,7.991997,12.642],[81.376,591.2,9.3239975,12.642],[90.675995,591.2,8.664001,12.642],[99.364,591.2,8.664001,12.642],[107.164,591.2,7.991997,12.642],[114.964,591.2,9.3239975,12.642],[124.26399,591.2,8.664001,12.642],[132.45999,591.2,8.664001,12.642],[143.76399,591.2,7.3200073,12.642],[151.06,591.2,8.664001,12.642],[159.748,591.2,9.324005,12.642],[169.048,591.2,6.0,12.642],[175.048,591.2,7.9920044,12.642],[183.04001,591.2,8.664001,12.642],[191.72801,591.2,7.9920044,12.642],[202.52802,591.2,4.6679993,12.642],[207.12401,591.2,8.664001,12.642],[215.81201,591.2,3.9960022,12.642],[236.8,591.2,8.664001,12.642],[245.404,591.2,6.0,12.642],[251.404,591.2,9.32399,12.642],[260.704,591.2,6.0,12.642],[266.78802,591.2,5.3160095,12.642],[272.09204,591.2,3.9960022,12.642],[279.08804,591.2,6.0,12.642],[285.08804,591.2,6.0,12.642],[291.08804,591.2,6.0,12.642],[297.08804,591.2,6.0,12.642],[303.08804,591.2,6.0,12.642],[309.08804,591.2,3.3240051,12.642],[312.38806,591.2,6.0,12.642],[318.38806,591.2,6.0,12.642],[324.38806,591.2,6.0,12.642],[330.38806,591.2,6.0,12.642],[336.38806,591.2,6.0,12.642],[342.38806,591.2,3.3240051,12.642],[345.77206,591.2,7.3200073,12.642],[353.06808,591.2,7.9920044,12.642],[361.0601,591.2,7.3200073,12.642],[368.3561,591.2,8.664001,12.642],[375.7601,591.2,7.3200073,12.642],[383.05612,591.2,3.3240051,12.642],[386.35614,591.2,6.0,12.642],[392.35614,591.2,6.0,12.642]]},{"id":80,"stringIdxToPositionIdx":[0,1,2,3,4,4,5,6,7,8,9,10,11,12,13,14,15,16,16,17,18],"positions":[[56.8,527.0,10.1802025,13.867801],[66.9802,527.0,8.600998,13.867801],[75.5812,527.0,3.9057007,13.867801],[79.4869,527.0,7.8395996,13.867801],[91.3,527.0,7.8395996,13.867801],[99.097305,527.0,7.8395996,13.867801],[106.89461,527.0,3.9057007,13.867801],[110.88491,527.0,7.8395996,13.867801],[118.68221,527.0,7.8395996,13.867801],[126.479515,527.0,3.905693,13.867801],[130.4698,527.0,7.8395996,13.867801],[138.2671,527.0,7.8395996,13.867801],[146.0644,527.0,3.9057007,13.867801],[150.0547,527.0,7.8395996,13.867801],[157.852,527.0,7.8395996,13.867801],[165.6493,527.0,4.6952972,13.867801],[174.3349,527.0,8.600998,13.867801],[182.9359,527.0,8.600998,13.867801]]},{"id":81,"stringIdxToPositionIdx":[0,1,2,3],"positions":[[56.8,493.0,7.3200035,12.642],[64.096,493.0,6.0,12.642],[70.096,493.0,5.316002,12.642]]},{"id":82,"stringIdxToPositionIdx":[0,1,2,3,4,4,5,6,7,7,8,9,10,11,12,13,13,14,15,16,17],"positions":[[56.8,428.8,10.1802025,13.867801],[66.9802,428.8,8.600998,13.867801],[75.5812,428.8,3.9057007,13.867801],[79.4869,428.8,7.8395996,13.867801],[91.3,428.8,7.8395996,13.867801],[99.097305,428.8,7.8395996,13.867801],[107.0,428.8,4.6952972,13.867801],[115.6,428.8,9.390602,13.867801],[124.9906,428.8,8.600998,13.867801],[133.5916,428.8,5.484894,13.867801],[139.07649,428.8,3.9057007,13.867801],[142.9822,428.8,4.6952972,13.867801],[147.67749,428.8,7.8395996,13.867801],[159.46509,428.8,10.180206,13.867801],[169.6453,428.8,3.9057007,13.867801],[173.551,428.8,8.600998,13.867801],[182.152,428.8,4.6952972,13.867801]]},{"id":83,"stringIdxToPositionIdx":[0,1,2,3,3,4,5,6,7,8,9,9,10,11,11,12,13,14,15,15,16,17,18,19,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,34,35,36,36,37,38,39,40,41],"positions":[[56.8,410.5,6.1000023,11.535],[62.9,410.5,5.0,11.535],[67.9,410.5,5.0,11.535],[75.4,410.5,6.0999985,11.535],[81.5,410.5,5.0,11.535],[86.5,410.5,3.8899994,11.535],[90.39,410.5,2.7699966,11.535],[93.09,410.5,2.7699966,11.535],[95.87999,410.5,4.4300003,11.535],[102.86999,410.5,5.0,11.535],[107.86999,410.5,3.8899994,11.535],[114.25999,410.5,7.220001,11.535],[121.45999,410.5,2.7699966,11.535],[124.249985,410.5,5.0,11.535],[129.14998,410.5,2.7700043,11.535],[134.43999,410.5,6.6600037,11.535],[141.12999,410.5,5.0,11.535],[146.12999,410.5,4.4299927,11.535],[150.52998,410.5,5.0,11.535],[158.11998,410.5,6.100006,11.535],[164.21999,410.5,4.4299927,11.535],[168.61998,410.5,3.8899994,11.535],[172.11998,410.5,4.4299927,11.535],[176.60997,410.5,4.4299927,11.535],[181.00996,410.5,5.0,11.535],[186.00996,410.5,2.7700043,11.535],[188.79997,410.5,3.3300018,11.535],[192.09998,410.5,6.6600037,11.535],[198.78998,410.5,5.0,11.535],[203.78998,410.5,7.220001,11.535],[210.98997,410.5,5.0,11.535],[215.98997,410.5,4.4299927,11.535],[220.38997,410.5,3.8899994,11.535],[224.27997,410.5,3.8899994,11.535],[230.66997,410.5,2.7700043,11.535],[233.45998,410.5,3.8899994,11.535],[239.84998,410.5,2.7700043,11.535],[242.63998,410.5,5.0,11.535],[247.63998,410.5,4.4299927,11.535],[252.03998,410.5,3.8899994,11.535],[255.53998,410.5,4.4299927,11.535]]},{"id":84,"stringIdxToPositionIdx":[0,1,2,3,4,4,5,6,7,8,9,9,10,11,12,13,13,14,15,16,17,18,19,20,20,21,22,23,23,24,24,25,26,27,28,29,30,30,31,32,32,33,34,35,36,36,37,38,39,40,41,42,43,43,44,45,46,47,47,48,48,49,50,51,52,53,54,54,55,56,56,57,58,59,60,60,61,62,63,64,65,66,67,67,68,69,70,71,71,72,72,73,74,75,76,77,78,78,79,80,80,81,82,83,84,84,85,86,87,88,89,90,91,91,92,93,94,95,95,96,96,97,98,99,100,101,102,102,103,104,104,105,106,106,107,108,109,110,110,111,112,113,114,115,116,117,117,118,119,120,121,121,122,122,123,124,124,125,126,127,127,128,129,130,131,132,133,134,135,135,136,137,138,139,140,141,142,142,143,144,145,146,147,147,148,148,149,150,151,152,153,154,154,155,156,156,157,158,159,159,160,161,162,163,163,164,165,166,167,168,169,170,170,171,172,173,174,175,176,177,178,179,180,180,181,182,183,184,185,186,187,187,188,189,190,191,192,193,194,194,195,196,197,198,199,199,200,200,201,202,203,204,205,206,206,207,208,208,209,210,211,211,212,213,214,215,215,216,217,218,219,220,221,222,222,223,224,225,226,227,228,229,230,231,232,232,233,234,235,236,237,238,239,239,240,241,242,243,244,245,246,246,247,248,248,249,250,251,251,252,252,253,254,255,256,257,258,258,259,260,260,261,262,263,263,264,265,266,267,267,268,269,270,271,272,273,274,274,275,276,277,278,279,280,281,282,283,284,284,285,286,287,288,289,290,291,291,292,293,294,295,296,297,298,298,299,300,301,301,302,303,303,304,304,305,306,307,308,309,310,310,311,312,312,313,314,315,315,316,317,318,319,319,320,321,322,323,324,325,326,326,327,328,329,330,331,332,333,334,335,336,336,337,338,339,340,341,342,343,343,344,345,346,347,348,349,350,350,351,352,353,354,355,355,356,356,357,358,359,360,361,362,362,363,364,364,365,366,367,367,368,369,370,371,371,372,373,374,375,376,377,378,378,379,380,381,382,383,384,385,386,387,388,388,389,390,391,392,393,394,395,395,396,397,398,399,400,401,402,402,403,404,405,406,407,407,408,408,409,410,411,412,413,414,414,415,416,416,417,418,419,419,420,421,422,423,423,424,425,426,427,428,429,430,430,431,432,433,434,435,436,437,438,439,440,440,441,442,443,444,445,446,447,447,448,449,450,451,452,453,454,455,456,457,458,459,460,460,461,462,463,464,465,466,467,468,468,469,470,471,472,473,474,475,475,476,477,478,478,479,479,480,481,482,482,483,484,485,486,486,487,488,489,490,491,492,493,493,494,495,496,497,497,498,499,500,501,502,503,504,505,506,506,507,508,509,510,511,512,513,513,514,515,516,517,517,518,518,519,520,521,521,522,523,524,525,525,526,527,528,529,530,531,532,532,533,534,535,536,536,537,538,539,540,541,542,543,544,545,545,546,547,548,549,550,551,552,552,553,554,555,556,556,557,557,558,559,560,560,561,562,563,564,564,565,566,567,568,569,570,571,571,572,573,574,575,575,576,577,578,579,580,581,582,583,584,584,585,586,587,588,589,590,591,592,593,593,594,595,596,597,598,599,600,601,602,603],"positions":[[56.8,383.3,7.3200035,12.642],[63.304,383.3,5.316002,12.642],[68.608,383.3,4.6679993,12.642],[73.3,383.3,3.3239975,12.642],[79.6,383.3,3.9960022,12.642],[83.596,383.3,3.3239975,12.642],[86.895996,383.3,5.316002,12.642],[92.2,383.3,9.3239975,12.642],[101.58399,383.3,3.3239975,12.642],[164.8,383.3,6.671997,12.642],[171.484,383.3,6.0,12.642],[177.484,383.3,6.0,12.642],[183.484,383.3,5.3159943,12.642],[56.8,369.5,6.672001,12.642],[63.484,369.5,6.0,12.642],[69.484,369.5,3.9960022,12.642],[73.48,369.5,3.3239975,12.642],[76.78,369.5,3.3239975,12.642],[80.079994,369.5,6.0,12.642],[86.079994,369.5,3.3239975,12.642],[164.8,369.5,6.0,12.642],[170.8,369.5,6.0,12.642],[176.8,369.5,9.996002,12.642],[201.796,369.5,12.0,12.642],[216.796,369.5,4.6679993,12.642],[221.392,369.5,6.0,12.642],[227.392,369.5,6.0,12.642],[233.392,369.5,6.0,12.642],[239.392,369.5,3.3240051,12.642],[242.692,369.5,6.0,12.642],[251.776,369.5,6.0,12.642],[257.776,369.5,5.3160095,12.642],[266.08002,369.5,8.664001,12.642],[274.768,369.5,3.3240051,12.642],[278.06802,369.5,6.0,12.642],[284.06802,369.5,3.3240051,12.642],[56.8,355.7,6.672001,12.642],[63.484,355.7,6.0,12.642],[69.484,355.7,3.9960022,12.642],[73.48,355.7,3.3239975,12.642],[76.78,355.7,3.3239975,12.642],[80.079994,355.7,6.0,12.642],[86.079994,355.7,3.3239975,12.642],[164.8,355.7,6.7559967,12.642],[171.496,355.7,6.0,12.642],[177.496,355.7,6.0,12.642],[183.496,355.7,9.996002,12.642],[208.492,355.7,12.0,12.642],[223.492,355.7,4.6679993,12.642],[228.184,355.7,6.0,12.642],[234.184,355.7,6.0,12.642],[240.184,355.7,6.0,12.642],[246.184,355.7,3.3240051,12.642],[249.48401,355.7,6.0,12.642],[258.484,355.7,6.0,12.642],[264.484,355.7,5.3160095,12.642],[272.872,355.7,8.664001,12.642],[281.56,355.7,3.3240051,12.642],[284.86002,355.7,6.0,12.642],[290.86002,355.7,3.3240051,12.642],[56.8,341.9,6.672001,12.642],[63.484,341.9,6.0,12.642],[69.484,341.9,3.9960022,12.642],[73.48,341.9,3.3239975,12.642],[76.78,341.9,3.3239975,12.642],[80.079994,341.9,6.0,12.642],[86.079994,341.9,3.3239975,12.642],[164.8,341.9,6.7559967,12.642],[171.496,341.9,6.0,12.642],[177.496,341.9,6.0,12.642],[183.496,341.9,9.996002,12.642],[208.492,341.9,12.0,12.642],[223.492,341.9,4.6679993,12.642],[228.184,341.9,6.0,12.642],[234.184,341.9,6.0,12.642],[240.184,341.9,6.0,12.642],[246.184,341.9,3.3240051,12.642],[249.48401,341.9,6.0,12.642],[258.484,341.9,6.0,12.642],[264.484,341.9,5.3160095,12.642],[272.872,341.9,8.664001,12.642],[281.56,341.9,3.3240051,12.642],[284.86002,341.9,6.0,12.642],[290.86002,341.9,3.3240051,12.642],[56.8,328.1,6.672001,12.642],[63.484,328.1,6.0,12.642],[69.484,328.1,3.9960022,12.642],[73.48,328.1,3.3239975,12.642],[76.78,328.1,3.3239975,12.642],[80.079994,328.1,6.0,12.642],[86.079994,328.1,3.3239975,12.642],[164.8,328.1,6.0,12.642],[170.8,328.1,6.0,12.642],[176.8,328.1,6.0,12.642],[182.8,328.1,9.996002,12.642],[207.796,328.1,12.0,12.642],[222.796,328.1,4.6679993,12.642],[227.392,328.1,6.0,12.642],[233.392,328.1,6.0,12.642],[239.392,328.1,6.0,12.642],[245.392,328.1,3.3240051,12.642],[248.692,328.1,6.0,12.642],[257.776,328.1,6.0,12.642],[263.776,328.1,5.3160095,12.642],[272.08002,328.1,6.0,12.642],[278.08002,328.1,5.3160095,12.642],[286.38403,328.1,8.664001,12.642],[295.07202,328.1,3.3240051,12.642],[298.37204,328.1,6.0,12.642],[304.37204,328.1,3.3240051,12.642],[310.75604,328.1,6.0,12.642],[316.75604,328.1,5.3160095,12.642],[322.06006,328.1,5.3160095,12.642],[327.36407,328.1,5.3160095,12.642],[332.6681,328.1,6.0,12.642],[338.6681,328.1,4.6679993,12.642],[343.36008,328.1,5.3160095,12.642],[351.6641,328.1,6.756012,12.642],[358.45612,328.1,6.0,12.642],[364.45612,328.1,6.0,12.642],[370.45612,328.1,6.0,12.642],[379.45612,328.1,9.996002,12.642],[392.45212,328.1,3.3240051,12.642],[395.75214,328.1,4.6679993,12.642],[403.44412,328.1,6.0,12.642],[409.44412,328.1,6.0,12.642],[415.44412,328.1,3.3240051,12.642],[421.74414,328.1,6.0,12.642],[427.74414,328.1,6.0,12.642],[433.74414,328.1,4.6679993,12.642],[438.43613,328.1,4.6679993,12.642],[443.1281,328.1,3.3240051,12.642],[446.42813,328.1,6.0,12.642],[452.42813,328.1,3.3240051,12.642],[455.72815,328.1,5.3160095,12.642],[56.8,314.3,6.672001,12.642],[63.484,314.3,6.0,12.642],[69.484,314.3,3.9960022,12.642],[73.48,314.3,3.3239975,12.642],[76.78,314.3,3.3239975,12.642],[80.079994,314.3,6.0,12.642],[86.079994,314.3,3.3239975,12.642],[164.8,314.3,6.7559967,12.642],[171.496,314.3,6.7559967,12.642],[178.288,314.3,6.0,12.642],[184.288,314.3,6.0,12.642],[190.288,314.3,9.996002,12.642],[215.284,314.3,12.0,12.642],[230.284,314.3,4.6679993,12.642],[234.976,314.3,6.0,12.642],[240.976,314.3,6.0,12.642],[246.976,314.3,6.0,12.642],[252.976,314.3,3.3239899,12.642],[256.276,314.3,6.0,12.642],[265.276,314.3,6.0,12.642],[271.276,314.3,5.3160095,12.642],[279.58002,314.3,6.0,12.642],[285.58002,314.3,6.0,12.642],[291.58002,314.3,3.3240051,12.642],[297.96402,314.3,8.664001,12.642],[306.652,314.3,3.3240051,12.642],[309.95203,314.3,6.0,12.642],[315.95203,314.3,3.3240051,12.642],[322.25204,314.3,6.0,12.642],[328.25204,314.3,5.3160095,12.642],[333.55606,314.3,5.3160095,12.642],[338.86008,314.3,5.3160095,12.642],[344.1641,314.3,6.0,12.642],[350.1641,314.3,4.6679993,12.642],[354.85608,314.3,5.3160095,12.642],[363.24408,314.3,5.3160095,12.642],[368.5481,314.3,6.0,12.642],[374.5481,314.3,6.0,12.642],[380.5481,314.3,3.3240051,12.642],[383.8481,314.3,3.3240051,12.642],[387.14813,314.3,3.3240051,12.642],[390.44815,314.3,6.0,12.642],[396.44815,314.3,6.0,12.642],[402.53217,314.3,5.3160095,12.642],[407.83618,314.3,3.3240051,12.642],[414.22018,314.3,4.6679993,12.642],[418.8162,314.3,6.0,12.642],[424.8162,314.3,9.324005,12.642],[434.1162,314.3,6.0,12.642],[440.1162,314.3,6.0,12.642],[446.1162,314.3,3.3240051,12.642],[449.41623,314.3,4.6679993,12.642],[56.8,300.5,6.672001,12.642],[63.484,300.5,6.0,12.642],[69.484,300.5,3.9960022,12.642],[73.48,300.5,3.3239975,12.642],[76.78,300.5,3.3239975,12.642],[80.079994,300.5,6.0,12.642],[86.079994,300.5,3.3239975,12.642],[164.8,300.5,6.7559967,12.642],[171.496,300.5,6.7559967,12.642],[178.288,300.5,6.0,12.642],[184.288,300.5,6.0,12.642],[190.288,300.5,9.996002,12.642],[215.284,300.5,12.0,12.642],[230.284,300.5,4.6679993,12.642],[234.976,300.5,6.0,12.642],[240.976,300.5,6.0,12.642],[246.976,300.5,6.0,12.642],[252.976,300.5,3.3239899,12.642],[256.276,300.5,6.0,12.642],[265.276,300.5,6.0,12.642],[271.276,300.5,5.3160095,12.642],[279.58002,300.5,6.0,12.642],[285.58002,300.5,6.0,12.642],[291.58002,300.5,3.3240051,12.642],[297.96402,300.5,8.664001,12.642],[306.652,300.5,3.3240051,12.642],[309.95203,300.5,6.0,12.642],[315.95203,300.5,3.3240051,12.642],[322.25204,300.5,6.0,12.642],[328.25204,300.5,5.3160095,12.642],[333.55606,300.5,5.3160095,12.642],[338.86008,300.5,5.3160095,12.642],[344.1641,300.5,6.0,12.642],[350.1641,300.5,4.6679993,12.642],[354.85608,300.5,5.3160095,12.642],[363.24408,300.5,5.3160095,12.642],[368.5481,300.5,6.0,12.642],[374.5481,300.5,6.0,12.642],[380.5481,300.5,3.3240051,12.642],[383.8481,300.5,3.3240051,12.642],[387.14813,300.5,3.3240051,12.642],[390.44815,300.5,6.0,12.642],[396.44815,300.5,6.0,12.642],[402.53217,300.5,5.3160095,12.642],[407.83618,300.5,3.3240051,12.642],[414.22018,300.5,4.6679993,12.642],[418.8162,300.5,6.0,12.642],[424.8162,300.5,9.324005,12.642],[434.1162,300.5,6.0,12.642],[440.1162,300.5,6.0,12.642],[446.1162,300.5,3.3240051,12.642],[449.41623,300.5,4.6679993,12.642],[56.8,286.7,6.672001,12.642],[63.484,286.7,6.0,12.642],[69.484,286.7,3.9960022,12.642],[73.48,286.7,3.3239975,12.642],[76.78,286.7,3.3239975,12.642],[80.079994,286.7,6.0,12.642],[86.079994,286.7,3.3239975,12.642],[164.8,286.7,5.3159943,12.642],[170.104,286.7,5.3159943,12.642],[178.408,286.7,6.0,12.642],[184.408,286.7,6.0,12.642],[190.408,286.7,9.996002,12.642],[215.404,286.7,12.0,12.642],[230.404,286.7,4.6679993,12.642],[235.09601,286.7,6.0,12.642],[241.09601,286.7,6.0,12.642],[247.09601,286.7,6.0,12.642],[253.09601,286.7,3.3240051,12.642],[256.39603,286.7,6.0,12.642],[265.39603,286.7,6.0,12.642],[271.39603,286.7,5.3160095,12.642],[279.78403,286.7,6.0,12.642],[285.78403,286.7,6.0,12.642],[291.78403,286.7,3.3240051,12.642],[298.08405,286.7,8.664001,12.642],[306.77203,286.7,3.3240051,12.642],[310.07205,286.7,6.0,12.642],[316.07205,286.7,3.3240051,12.642],[322.37207,286.7,6.0,12.642],[328.37207,286.7,5.3160095,12.642],[333.6761,286.7,5.3160095,12.642],[338.9801,286.7,5.3160095,12.642],[344.28412,286.7,6.0,12.642],[350.28412,286.7,4.6679993,12.642],[354.9761,286.7,5.3160095,12.642],[363.3641,286.7,5.3160095,12.642],[368.66812,286.7,6.0,12.642],[374.66812,286.7,6.0,12.642],[380.66812,286.7,3.3240051,12.642],[383.96814,286.7,3.3240051,12.642],[387.35214,286.7,3.3240051,12.642],[390.65216,286.7,6.0,12.642],[396.65216,286.7,6.0,12.642],[402.65216,286.7,5.3160095,12.642],[407.95618,286.7,3.3240051,12.642],[414.34018,286.7,4.6679993,12.642],[418.9362,286.7,6.0,12.642],[424.9362,286.7,9.324005,12.642],[434.2362,286.7,6.0,12.642],[440.2362,286.7,6.0,12.642],[446.32022,286.7,3.3240051,12.642],[449.62024,286.7,4.6679993,12.642],[56.8,272.90002,6.672001,12.642],[63.484,272.90002,6.0,12.642],[69.484,272.90002,3.9960022,12.642],[73.48,272.90002,3.3239975,12.642],[76.78,272.90002,3.3239975,12.642],[80.079994,272.90002,6.0,12.642],[86.079994,272.90002,3.3239975,12.642],[164.8,272.90002,6.0,12.642],[170.8,272.90002,6.0,12.642],[176.8,272.90002,9.996002,12.642],[189.796,272.90002,5.3159943,12.642],[195.1,272.90002,5.3159943,12.642],[215.404,272.90002,12.0,12.642],[230.404,272.90002,4.6679993,12.642],[235.09601,272.90002,6.0,12.642],[241.09601,272.90002,6.0,12.642],[247.09601,272.90002,6.0,12.642],[253.09601,272.90002,3.3240051,12.642],[256.39603,272.90002,6.0,12.642],[265.39603,272.90002,6.0,12.642],[271.39603,272.90002,5.3160095,12.642],[279.78403,272.90002,6.0,12.642],[285.78403,272.90002,6.0,12.642],[291.78403,272.90002,3.3240051,12.642],[298.08405,272.90002,8.664001,12.642],[306.77203,272.90002,3.3240051,12.642],[310.07205,272.90002,6.0,12.642],[316.07205,272.90002,3.3240051,12.642],[322.37207,272.90002,6.0,12.642],[328.37207,272.90002,5.3160095,12.642],[333.6761,272.90002,5.3160095,12.642],[338.9801,272.90002,5.3160095,12.642],[344.28412,272.90002,6.0,12.642],[350.28412,272.90002,4.6679993,12.642],[354.9761,272.90002,5.3160095,12.642],[363.3641,272.90002,5.3160095,12.642],[368.66812,272.90002,6.0,12.642],[374.66812,272.90002,6.0,12.642],[380.66812,272.90002,3.3240051,12.642],[383.96814,272.90002,3.3240051,12.642],[387.35214,272.90002,3.3240051,12.642],[390.65216,272.90002,6.0,12.642],[396.65216,272.90002,6.0,12.642],[402.65216,272.90002,5.3160095,12.642],[407.95618,272.90002,3.3240051,12.642],[414.34018,272.90002,4.6679993,12.642],[418.9362,272.90002,6.0,12.642],[424.9362,272.90002,9.324005,12.642],[434.2362,272.90002,6.0,12.642],[440.2362,272.90002,6.0,12.642],[446.32022,272.90002,3.3240051,12.642],[449.62024,272.90002,4.6679993,12.642],[56.8,259.1,6.672001,12.642],[63.484,259.1,6.0,12.642],[69.484,259.1,3.9960022,12.642],[73.48,259.1,3.3239975,12.642],[76.78,259.1,3.3239975,12.642],[80.079994,259.1,6.0,12.642],[86.079994,259.1,3.3239975,12.642],[164.8,259.1,5.3159943,12.642],[170.104,259.1,5.3159943,12.642],[175.408,259.1,6.0,12.642],[181.408,259.1,6.0,12.642],[187.408,259.1,9.996002,12.642],[212.404,259.1,12.0,12.642],[227.404,259.1,4.6679993,12.642],[232.09601,259.1,6.0,12.642],[238.09601,259.1,6.0,12.642],[244.09601,259.1,6.0,12.642],[250.09601,259.1,3.3240051,12.642],[253.39601,259.1,5.9999847,12.642],[262.396,259.1,6.0,12.642],[268.396,259.1,5.3160095,12.642],[276.784,259.1,6.0,12.642],[282.784,259.1,6.0,12.642],[288.784,259.1,3.3240051,12.642],[295.084,259.1,8.664001,12.642],[303.772,259.1,3.3240051,12.642],[307.07202,259.1,6.0,12.642],[313.07202,259.1,3.3240051,12.642],[319.37204,259.1,6.0,12.642],[325.37204,259.1,5.3160095,12.642],[330.67606,259.1,5.3160095,12.642],[335.98007,259.1,5.3160095,12.642],[341.2841,259.1,6.0,12.642],[347.2841,259.1,4.6679993,12.642],[351.97607,259.1,5.3160095,12.642],[360.36407,259.1,5.3160095,12.642],[365.6681,259.1,6.0,12.642],[371.6681,259.1,6.0,12.642],[377.6681,259.1,3.3240051,12.642],[380.9681,259.1,3.3240051,12.642],[384.3521,259.1,3.3240051,12.642],[387.65213,259.1,6.0,12.642],[393.65213,259.1,6.0,12.642],[399.65213,259.1,5.3160095,12.642],[404.95615,259.1,3.3240051,12.642],[411.34015,259.1,4.6679993,12.642],[415.93616,259.1,6.0,12.642],[421.93616,259.1,9.324005,12.642],[431.23618,259.1,6.0,12.642],[437.23618,259.1,6.0,12.642],[443.3202,259.1,3.3240051,12.642],[446.6202,259.1,4.6679993,12.642],[56.8,245.30002,6.672001,12.642],[63.484,245.30002,6.0,12.642],[69.484,245.30002,3.9960022,12.642],[73.48,245.30002,3.3239975,12.642],[76.78,245.30002,3.3239975,12.642],[80.079994,245.30002,6.0,12.642],[86.079994,245.30002,3.3239975,12.642],[164.8,245.30002,6.0,12.642],[170.8,245.30002,6.0,12.642],[176.8,245.30002,9.996002,12.642],[186.8,245.30002,5.3159943,12.642],[192.104,245.30002,5.3159943,12.642],[212.5,245.30002,12.0,12.642],[227.5,245.30002,4.6679993,12.642],[232.192,245.30002,6.0,12.642],[238.192,245.30002,6.0,12.642],[244.192,245.30002,6.0,12.642],[250.192,245.30002,3.3240051,12.642],[253.492,245.30002,6.0,12.642],[262.492,245.30002,6.0,12.642],[268.492,245.30002,5.3160095,12.642],[276.88,245.30002,6.0,12.642],[282.88,245.30002,6.0,12.642],[288.88,245.30002,3.3240051,12.642],[295.18002,245.30002,8.664001,12.642],[303.868,245.30002,3.3240051,12.642],[307.16803,245.30002,6.0,12.642],[313.16803,245.30002,3.3240051,12.642],[319.46805,245.30002,6.0,12.642],[325.46805,245.30002,5.3160095,12.642],[330.77206,245.30002,5.3160095,12.642],[336.07608,245.30002,5.3160095,12.642],[341.3801,245.30002,6.0,12.642],[347.3801,245.30002,4.6679993,12.642],[352.07208,245.30002,5.3160095,12.642],[360.46008,245.30002,5.3160095,12.642],[365.7641,245.30002,6.0,12.642],[371.7641,245.30002,6.0,12.642],[377.7641,245.30002,3.3240051,12.642],[381.06412,245.30002,3.3240051,12.642],[384.44812,245.30002,3.3240051,12.642],[387.74814,245.30002,6.0,12.642],[393.74814,245.30002,6.0,12.642],[399.74814,245.30002,5.3160095,12.642],[405.05215,245.30002,3.3240051,12.642],[411.43616,245.30002,4.6679993,12.642],[416.03217,245.30002,6.0,12.642],[422.03217,245.30002,9.324005,12.642],[431.33218,245.30002,6.0,12.642],[437.33218,245.30002,6.0,12.642],[443.4162,245.30002,3.3240051,12.642],[446.71622,245.30002,4.6679993,12.642],[56.8,231.50003,6.672001,12.642],[63.5,231.50003,3.9960022,12.642],[67.496,231.50003,6.0,12.642],[73.496,231.50003,6.0,12.642],[79.496,231.50003,6.0,12.642],[85.496,231.50003,5.316002,12.642],[90.8,231.50003,3.3239975,12.642],[94.1,231.50003,3.9960022,12.642],[98.096,231.50003,7.991997,12.642],[106.088,231.50003,6.0,12.642],[112.088,231.50003,6.0,12.642],[118.088,231.50003,5.316002,12.642],[123.392,231.50003,3.3239975,12.642],[164.8,231.50003,7.3200073,12.642],[172.09601,231.50003,8.664001,12.642],[180.70001,231.50003,8.664001,12.642],[189.38802,231.50003,3.9960022,12.642],[193.38402,231.50003,7.3200073,12.642],[200.68002,231.50003,6.0,12.642],[206.68002,231.50003,6.0,12.642],[212.68002,231.50003,6.0,12.642],[56.8,217.70004,6.0,12.642],[62.8,217.70004,6.000004,12.642],[68.8,217.70004,3.9960022,12.642],[72.796005,217.70004,3.3239975,12.642],[76.096,217.70004,3.3239975,12.642],[79.395996,217.70004,6.0,12.642],[85.395996,217.70004,3.3239975,12.642],[164.8,217.70004,6.0,12.642],[170.8,217.70004,6.0,12.642],[176.8,217.70004,9.996002,12.642],[195.796,217.70004,12.0,12.642],[210.796,217.70004,6.0,12.642],[216.796,217.70004,6.0,12.642],[222.796,217.70004,3.3240051,12.642],[229.09601,217.70004,8.664001,12.642],[237.78401,217.70004,3.3240051,12.642],[241.08401,217.70004,6.0,12.642],[247.08401,217.70004,3.3240051,12.642],[253.38402,217.70004,6.0000153,12.642],[259.38403,217.70004,5.3160095,12.642],[264.68805,217.70004,5.3160095,12.642],[270.07605,217.70004,5.3160095,12.642],[275.38007,217.70004,6.0,12.642],[281.38007,217.70004,4.6679993,12.642],[286.07205,217.70004,5.3160095,12.642],[294.37607,217.70004,5.3160095,12.642],[299.68008,217.70004,5.3160095,12.642],[304.9841,217.70004,4.6679993,12.642],[309.6761,217.70004,5.3160095,12.642],[318.0641,217.70004,4.6679993,12.642],[322.6601,217.70004,5.3160095,12.642],[327.9641,217.70004,6.0,12.642],[333.9641,217.70004,4.6679993,12.642],[338.6561,217.70004,3.3240051,12.642],[341.95612,217.70004,3.3240051,12.642],[345.34012,217.70004,3.3240051,12.642],[348.64014,217.70004,6.0,12.642],[354.64014,217.70004,5.3160095,12.642],[56.8,203.90005,6.0,12.642],[62.8,203.90005,6.000004,12.642],[68.8,203.90005,3.9960022,12.642],[72.796005,203.90005,3.3239975,12.642],[76.096,203.90005,3.3239975,12.642],[79.395996,203.90005,6.0,12.642],[85.395996,203.90005,3.3239975,12.642],[164.8,203.90005,6.7559967,12.642],[171.496,203.90005,6.0,12.642],[177.496,203.90005,6.0,12.642],[183.496,203.90005,9.996002,12.642],[202.492,203.90005,12.0,12.642],[217.492,203.90005,6.0,12.642],[223.492,203.90005,6.0,12.642],[229.492,203.90005,3.3240051,12.642],[235.876,203.90005,8.664001,12.642],[244.56401,203.90005,3.3240051,12.642],[247.86401,203.90005,6.0,12.642],[253.86401,203.90005,3.3240051,12.642],[260.16403,203.90005,6.0,12.642],[266.16403,203.90005,5.3160095,12.642],[271.46805,203.90005,5.3160095,12.642],[276.77206,203.90005,5.3160095,12.642],[282.07608,203.90005,6.0,12.642],[288.07608,203.90005,4.6679993,12.642],[292.76807,203.90005,5.3160095,12.642],[301.15607,203.90005,5.3160095,12.642],[306.46008,203.90005,5.3160095,12.642],[311.7641,203.90005,4.6679993,12.642],[316.4561,203.90005,5.3160095,12.642],[324.7601,203.90005,4.6679993,12.642],[329.4521,203.90005,5.3160095,12.642],[334.7561,203.90005,6.0,12.642],[340.7561,203.90005,4.6679993,12.642],[345.4481,203.90005,3.3240051,12.642],[348.7481,203.90005,3.3240051,12.642],[352.04813,203.90005,3.3240051,12.642],[355.34814,203.90005,6.0,12.642],[361.43216,203.90005,5.3160095,12.642],[56.8,190.1,6.0,12.642],[62.8,190.1,6.000004,12.642],[68.8,190.1,3.9960022,12.642],[72.796005,190.1,3.3239975,12.642],[76.096,190.1,3.3239975,12.642],[79.395996,190.1,6.0,12.642],[85.395996,190.1,3.3239975,12.642],[164.8,190.1,6.7559967,12.642],[171.496,190.1,6.0,12.642],[177.496,190.1,6.0,12.642],[183.496,190.1,9.996002,12.642],[202.492,190.1,12.0,12.642],[217.492,190.1,6.0,12.642],[223.492,190.1,6.0,12.642],[229.492,190.1,3.3240051,12.642],[235.876,190.1,8.664001,12.642],[244.56401,190.1,3.3240051,12.642],[247.86401,190.1,6.0,12.642],[253.86401,190.1,3.3240051,12.642],[260.16403,190.1,6.0,12.642],[266.16403,190.1,5.3160095,12.642],[271.46805,190.1,5.3160095,12.642],[276.77206,190.1,5.3160095,12.642],[282.07608,190.1,6.0,12.642],[288.07608,190.1,4.6679993,12.642],[292.76807,190.1,5.3160095,12.642],[301.15607,190.1,5.3160095,12.642],[306.46008,190.1,5.3160095,12.642],[311.7641,190.1,4.6679993,12.642],[316.4561,190.1,5.3160095,12.642],[324.7601,190.1,4.6679993,12.642],[329.4521,190.1,5.3160095,12.642],[334.7561,190.1,6.0,12.642],[340.7561,190.1,4.6679993,12.642],[345.4481,190.1,3.3240051,12.642],[348.7481,190.1,3.3240051,12.642],[352.04813,190.1,3.3240051,12.642],[355.34814,190.1,6.0,12.642],[361.43216,190.1,5.3160095,12.642],[56.8,176.30002,6.672001,12.642],[63.484,176.30002,6.0,12.642],[69.484,176.30002,6.0,12.642],[75.484,176.30002,6.0,12.642],[81.484,176.30002,3.3239975,12.642],[84.784,176.30002,3.3239975,12.642],[88.08399,176.30002,5.316002,12.642],[93.38799,176.30002,3.9960022,12.642],[97.383995,176.30002,3.3239975,12.642],[164.8,176.30002,8.664001,12.642],[173.404,176.30002,3.9960022,12.642],[177.40001,176.30002,5.3159943,12.642],[182.70401,176.30002,5.3159943,12.642],[188.00801,176.30002,6.0,12.642],[194.00801,176.30002,6.671997,12.642],[200.692,176.30002,6.0,12.642],[206.692,176.30002,3.9960022,12.642],[210.688,176.30002,5.3159943,12.642],[216.076,176.30002,5.3159943,12.642]]},{"id":85,"stringIdxToPositionIdx":[0,1,2,3,4,4,5,6,7,7,8,9,10,11,12,13,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,30,31,32,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,47,48,49,49,50,51,52,52,53,54,55],"positions":[[56.8,692.1,10.1802025,13.867801],[66.9802,692.1,8.600998,13.867801],[75.5812,692.1,3.9057007,13.867801],[79.4869,692.1,7.8395996,13.867801],[91.3,692.1,7.8395996,13.867801],[99.097305,692.1,7.8395996,13.867801],[107.0,692.1,4.6952972,13.867801],[115.6,692.1,3.9057007,13.867801],[119.5057,692.1,8.601006,13.867801],[128.1067,692.1,8.600998,13.867801],[136.7077,692.1,8.600998,13.867801],[145.3087,692.1,5.484894,13.867801],[150.7936,692.1,7.8395996,13.867801],[162.58119,692.1,10.180206,13.867801],[172.7614,692.1,8.600998,13.867801],[181.3624,692.1,7.8395996,13.867801],[189.1597,692.1,7.8395996,13.867801],[196.957,692.1,3.9057007,13.867801],[200.9473,692.1,7.8395996,13.867801],[208.7446,692.1,5.484894,13.867801],[214.22949,692.1,4.6952972,13.867801],[218.92479,692.1,10.180206,13.867801],[229.105,692.1,7.8395996,13.867801],[236.9023,692.1,8.600998,13.867801],[245.5033,692.1,7.8395996,13.867801],[253.3852,692.1,7.8395996,13.867801],[261.1825,692.1,4.6953125,13.867801],[265.8778,692.1,3.9057007,13.867801],[269.7835,692.1,8.601013,13.867801],[278.38452,692.1,8.601013,13.867801],[290.97583,692.1,3.9057007,13.867801],[294.88153,692.1,4.6953125,13.867801],[303.48254,692.1,10.180206,13.867801],[313.66275,692.1,8.601013,13.867801],[322.26376,692.1,8.601013,13.867801],[330.86478,692.1,4.6953125,13.867801],[335.5601,692.1,3.9057007,13.867801],[339.4658,692.1,8.601013,13.867801],[348.0668,692.1,7.8395996,13.867801],[355.9487,692.1,8.601013,13.867801],[364.5497,692.1,4.6953125,13.867801],[369.24503,692.1,3.9057007,13.867801],[373.15073,692.1,7.8395996,13.867801],[380.94803,692.1,3.9057007,13.867801],[384.85373,692.1,3.9057007,13.867801],[388.75943,692.1,4.6953125,13.867801],[393.53934,692.1,7.8395996,13.867801],[405.24234,692.1,3.9057007,13.867801],[409.23264,692.1,7.8395996,13.867801],[420.93564,692.1,8.601013,13.867801],[429.53665,692.1,8.601013,13.867801],[438.13766,692.1,4.6953125,13.867801],[446.82327,692.1,7.8395996,13.867801],[454.62057,692.1,7.8395996,13.867801],[462.41788,692.1,4.6953125,13.867801]]},{"id":86,"stringIdxToPositionIdx":[0,1,2,3,4,4,5,6,7,8,9,10,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,27,28,29,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,44,45,46,46,47,48,49,49,50,51,52,52,53,54,54,55,56,57,58,58,59,60,61,62,63,64,65,66,67,68],"positions":[[56.8,673.8,7.2199974,11.535],[63.999996,673.8,5.000004,11.535],[69.0,673.8,5.0,11.535],[74.0,673.8,2.7699966,11.535],[79.28999,673.8,3.8899994,11.535],[82.78999,673.8,4.4300003,11.535],[87.189995,673.8,5.0,11.535],[92.189995,673.8,5.0,11.535],[97.189995,673.8,4.4300003,11.535],[101.59,673.8,2.7699966,11.535],[106.979996,673.8,7.220001,11.535],[114.18,673.8,5.0,11.535],[119.18,673.8,3.8899994,11.535],[123.07,673.8,3.8899994,11.535],[126.87,673.8,2.7699966,11.535],[129.66,673.8,4.4299927,11.535],[134.06,673.8,3.8899994,11.535],[137.86,673.8,3.3300018,11.535],[141.16,673.8,6.100006,11.535],[147.26001,673.8,4.4299927,11.535],[151.66,673.8,5.0,11.535],[156.66,673.8,5.0,11.535],[161.66,673.8,4.4299927,11.535],[166.06,673.8,2.7700043,11.535],[168.85,673.8,2.7700043,11.535],[171.64001,673.8,5.0,11.535],[176.64001,673.8,5.0,11.535],[184.14001,673.8,2.7700043,11.535],[186.93002,673.8,2.7700043,11.535],[192.22003,673.8,6.6600037,11.535],[198.91003,673.8,5.0,11.535],[203.91003,673.8,5.0,11.535],[208.81003,673.8,2.7700043,11.535],[211.60004,673.8,2.7700043,11.535],[214.39005,673.8,5.0,11.535],[219.39005,673.8,4.4299927,11.535],[223.79004,673.8,5.0,11.535],[228.79004,673.8,2.7700043,11.535],[231.58005,673.8,2.7700043,11.535],[234.37006,673.8,5.0,11.535],[239.37006,673.8,2.7700043,11.535],[242.16006,673.8,2.7700043,11.535],[244.86006,673.8,2.7700043,11.535],[247.65007,673.8,4.4299927,11.535],[254.64006,673.8,2.7700043,11.535],[257.34006,673.8,3.8900146,11.535],[263.73007,673.8,5.0,11.535],[268.73007,673.8,5.0,11.535],[273.73007,673.8,2.769989,11.535],[279.02005,673.8,3.8900146,11.535],[282.91006,673.8,4.4299927,11.535],[287.31006,673.8,2.769989,11.535],[292.60004,673.8,2.769989,11.535],[295.39,673.8,5.0,11.535],[302.89,673.8,2.769989,11.535],[305.59,673.8,2.769989,11.535],[308.37997,673.8,2.769989,11.535],[311.16995,673.8,4.4299927,11.535],[318.15994,673.8,5.0,11.535],[323.05994,673.8,2.769989,11.535],[325.8499,673.8,2.769989,11.535],[328.6399,673.8,3.8900146,11.535],[332.5299,673.8,2.769989,11.535],[335.3199,673.8,5.0,11.535],[340.3199,673.8,5.0,11.535],[345.3199,673.8,2.769989,11.535],[348.10986,673.8,4.4299927,11.535],[352.50986,673.8,3.8900146,11.535]]},{"id":87,"stringIdxToPositionIdx":[0,1,2,3,4,5,6,7,8,9,9,10,11,12,13,13,14,15,16,17,18,19,20,21,21,22,23,24,25,26,27,28,29,30,30,31,32,33,33,34,35,36,37,38,39,40,41,42,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,60,61,62,63,64,64,65,66,66,67,68,69,70,71,71,72,73,74,74,75,76,77,78,79,80,81,81,82,83,84,85,86,87,88,89,89,90,91,92,93,94,95,95,96,97,98,99,99,100,101,101,102,103,104,104,105,106,107,108,109,110,111,112],"positions":[[56.8,646.6,7.3200035,12.642],[64.096,646.6,6.0,12.642],[70.096,646.6,5.316002,12.642],[75.4,646.6,5.316002,12.642],[80.704,646.6,6.0,12.642],[86.704,646.6,3.3239975,12.642],[90.088,646.6,5.316002,12.642],[95.392,646.6,6.0,12.642],[101.392,646.6,3.9960022,12.642],[108.388,646.6,4.6679993,12.642],[113.08,646.6,3.3239975,12.642],[116.38,646.6,6.0,12.642],[122.38,646.6,3.3239975,12.642],[128.76399,646.6,6.0,12.642],[134.76399,646.6,5.3159943,12.642],[140.068,646.6,5.3159943,12.642],[145.372,646.6,5.3159943,12.642],[150.676,646.6,5.3159943,12.642],[155.98,646.6,5.3159943,12.642],[161.368,646.6,5.3159943,12.642],[166.672,646.6,3.3240051,12.642],[172.972,646.6,5.3159943,12.642],[178.276,646.6,6.0,12.642],[184.276,646.6,6.0,12.642],[190.276,646.6,3.3240051,12.642],[193.576,646.6,6.0,12.642],[199.66,646.6,5.3159943,12.642],[204.964,646.6,3.3240051,12.642],[208.264,646.6,5.3159943,12.642],[213.65201,646.6,3.3240051,12.642],[219.95201,646.6,6.0,12.642],[225.95201,646.6,6.0,12.642],[231.95201,646.6,6.0,12.642],[240.95201,646.6,6.0,12.642],[246.95201,646.6,3.9960022,12.642],[250.94801,646.6,5.9999847,12.642],[256.948,646.6,3.3240051,12.642],[260.24802,646.6,6.0,12.642],[266.24802,646.6,5.3160095,12.642],[271.55203,646.6,6.0,12.642],[277.63605,646.6,3.3240051,12.642],[280.93607,646.6,3.0,12.642],[286.93607,646.6,9.324005,12.642],[296.23608,646.6,6.0,12.642],[302.23608,646.6,8.664001,12.642],[310.92407,646.6,6.0,12.642],[316.92407,646.6,4.6679993,12.642],[321.52008,646.6,4.6679993,12.642],[326.21207,646.6,3.3240051,12.642],[329.5121,646.6,5.3160095,12.642],[334.8161,646.6,3.9960022,12.642],[338.8121,646.6,7.9920044,12.642],[346.90012,646.6,5.3160095,12.642],[352.20413,646.6,6.0,12.642],[358.20413,646.6,5.3160095,12.642],[363.50815,646.6,5.3160095,12.642],[368.89615,646.6,3.3240051,12.642],[372.19617,646.6,3.3240051,12.642],[375.4962,646.6,6.0,12.642],[381.4962,646.6,6.0,12.642],[390.4962,646.6,4.6679993,12.642],[395.18817,646.6,6.0,12.642],[401.18817,646.6,6.0,12.642],[407.18817,646.6,3.3240051,12.642],[413.4882,646.6,3.3240051,12.642],[416.7882,646.6,6.0,12.642],[425.87222,646.6,5.3160095,12.642],[431.17624,646.6,6.0,12.642],[437.17624,646.6,3.3240051,12.642],[440.47626,646.6,6.0,12.642],[446.47626,646.6,5.3160095,12.642],[454.86426,646.6,6.0,12.642],[460.86426,646.6,6.0,12.642],[466.86426,646.6,3.3240051,12.642],[473.16428,646.6,6.0,12.642],[479.16428,646.6,3.9960022,12.642],[482.9683,646.6,3.9960022,12.642],[486.9643,646.6,3.3240051,12.642],[490.2643,646.6,5.3160095,12.642],[495.56833,646.6,3.3240051,12.642],[498.86835,646.6,5.3160095,12.642],[507.25635,646.6,6.0,12.642],[513.25635,646.6,5.315979,12.642],[518.5603,646.6,4.66803,12.642],[523.2523,646.6,5.315979,12.642],[528.5563,646.6,3.9959717,12.642],[532.55225,646.6,6.0,12.642],[538.55225,646.6,6.0,12.642],[544.55225,646.6,3.3239746,12.642],[56.8,632.8,9.324001,12.642],[66.1,632.8,6.0,12.642],[72.1,632.8,3.3239975,12.642],[75.399994,632.8,3.3239975,12.642],[78.78399,632.8,3.3239975,12.642],[82.083984,632.8,3.3239975,12.642],[88.38398,632.8,5.316002,12.642],[93.68798,632.8,6.0,12.642],[99.77198,632.8,3.3239975,12.642],[103.071976,632.8,9.3239975,12.642],[115.37197,632.8,3.3239975,12.642],[118.67197,632.8,6.0,12.642],[127.75597,632.8,5.3159943,12.642],[133.05997,632.8,4.6679993,12.642],[137.75197,632.8,3.3240051,12.642],[144.05197,632.8,3.3240051,12.642],[147.35197,632.8,5.3159943,12.642],[152.65598,632.8,6.0,12.642],[158.65598,632.8,6.0,12.642],[164.65598,632.8,3.9960022,12.642],[168.65198,632.8,6.0,12.642],[174.65198,632.8,9.324005,12.642],[183.95198,632.8,3.0,12.642]]},{"id":88,"stringIdxToPositionIdx":[0,1,2,3,4,4,5,6,7,8,9,10,10,11,12,13,14,15,16,16,17,18,19,20,21,22,23,24,25,26],"positions":[[56.8,582.4,10.1802025,13.867801],[66.9802,582.4,8.600998,13.867801],[75.5812,582.4,3.9057007,13.867801],[79.4869,582.4,7.8395996,13.867801],[91.3,582.4,7.8395996,13.867801],[99.097305,582.4,7.8395996,13.867801],[106.89461,582.4,3.9057007,13.867801],[110.88491,582.4,7.8395996,13.867801],[118.68221,582.4,7.8395996,13.867801],[126.479515,582.4,4.695305,13.867801],[135.16512,582.4,10.180206,13.867801],[145.34532,582.4,7.8395996,13.867801],[153.14262,582.4,8.600998,13.867801],[161.74362,582.4,7.8395996,13.867801],[169.54092,582.4,7.8395996,13.867801],[177.33823,582.4,4.6952972,13.867801],[186.02382,582.4,9.3905945,13.867801],[195.41441,582.4,3.9057007,13.867801],[199.32011,582.4,8.600998,13.867801],[207.92111,582.4,8.600998,13.867801],[216.6067,582.4,7.8395996,13.867801],[224.404,582.4,4.6952972,13.867801],[229.0993,582.4,8.600998,13.867801],[237.7003,582.4,5.484894,13.867801],[243.1852,582.4,7.8395996,13.867801],[250.9825,582.4,7.839615,13.867801]]},{"id":89,"stringIdxToPositionIdx":[0,1,2,3,4,5,6,6,7,8,9,10,10,11,12,13,14,15,16,17,18,19,20,20,21,22,23,24,25,25,26,27,27,28,29,30,30,31,32,33,34,35,36,36,37,38,39,40,40,41,42,43,44,45,46,47,48,49,50,50,51,52,53,54,55,55,56,57,57,58,59],"positions":[[56.8,564.0,6.1000023,11.535],[62.9,564.0,4.4300003,11.535],[67.3,564.0,5.0,11.535],[72.3,564.0,5.0,11.535],[77.3,564.0,4.4300003,11.535],[81.700005,564.0,2.7699966,11.535],[86.99,564.0,6.659996,11.535],[93.67999,564.0,5.0,11.535],[98.67999,564.0,4.4300003,11.535],[103.079994,564.0,5.0,11.535],[110.66999,564.0,6.0999985,11.535],[115.66999,564.0,4.4300003,11.535],[120.06999,564.0,3.8899994,11.535],[123.95999,564.0,2.7699966,11.535],[126.749985,564.0,4.4299927,11.535],[131.14998,564.0,5.0,11.535],[136.14998,564.0,3.8899994,11.535],[140.03998,564.0,5.0,11.535],[145.03998,564.0,2.7700043,11.535],[147.82999,564.0,4.4299927,11.535],[154.72998,564.0,5.0,11.535],[159.72998,564.0,2.7700043,11.535],[162.51999,564.0,5.0,11.535],[167.51999,564.0,5.0,11.535],[172.51999,564.0,4.4299927,11.535],[179.41998,564.0,2.7700043,11.535],[182.20999,564.0,3.8899994,11.535],[188.59999,564.0,5.5599976,11.535],[193.19998,564.0,4.4299927,11.535],[197.59998,564.0,3.8899994,11.535],[56.8,552.5,6.1000023,11.535],[62.9,552.5,4.4300003,11.535],[67.3,552.5,5.0,11.535],[72.3,552.5,5.0,11.535],[77.3,552.5,4.4300003,11.535],[81.700005,552.5,2.7699966,11.535],[86.99,552.5,6.659996,11.535],[93.67999,552.5,5.0,11.535],[98.67999,552.5,4.4300003,11.535],[103.079994,552.5,5.0,11.535],[110.66999,552.5,6.0999985,11.535],[115.66999,552.5,4.4300003,11.535],[120.06999,552.5,3.8899994,11.535],[123.95999,552.5,2.7699966,11.535],[126.749985,552.5,4.4299927,11.535],[131.14998,552.5,5.0,11.535],[136.14998,552.5,3.8899994,11.535],[140.03998,552.5,5.0,11.535],[145.03998,552.5,2.7700043,11.535],[147.82999,552.5,4.4299927,11.535],[154.72998,552.5,5.0,11.535],[159.72998,552.5,2.7700043,11.535],[162.51999,552.5,5.0,11.535],[167.51999,552.5,5.0,11.535],[172.51999,552.5,4.4299927,11.535],[179.41998,552.5,2.7700043,11.535],[182.20999,552.5,3.8899994,11.535],[188.59999,552.5,6.6600037,11.535],[195.29,552.5,5.0,11.535]]},{"id":90,"stringIdxToPositionIdx":[0,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,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,52,53,54,55,56,57,58,58,59,60,61,61,62,63,64,65,66,67,67,68,69,70,71,72,73,74,75,76,77,78,79,79,80,81,82,83,84,85,85,86,87,88,88,89,90,91,92,93,94,94,95,96,97,98,99,100],"positions":[[56.8,470.1,6.0,12.642],[62.8,470.1,6.000004,12.642],[68.8,470.1,6.0,12.642],[74.8,470.1,6.0,12.642],[80.8,470.1,6.0,12.642],[86.8,470.1,6.0,12.642],[92.8,470.1,6.0,12.642],[98.8,470.1,6.0,12.642],[104.8,470.1,6.0,12.642],[110.8,470.1,6.0,12.642],[116.8,470.1,6.0,12.642],[122.8,470.1,6.0,12.642],[128.8,470.1,6.0,12.642],[134.8,470.1,6.0,12.642],[140.8,470.1,6.0,12.642],[146.8,470.1,6.0,12.642],[152.8,470.1,6.0,12.642],[158.8,470.1,6.0,12.642],[164.8,470.1,6.0,12.642],[170.8,470.1,6.0,12.642],[176.8,470.1,6.0,12.642],[182.8,470.1,6.0,12.642],[188.8,470.1,6.0,12.642],[194.8,470.1,6.0,12.642],[200.8,470.1,6.0,12.642],[206.8,470.1,6.0,12.642],[308.8,470.1,6.0,12.642],[314.8,470.1,6.0,12.642],[320.8,470.1,6.0,12.642],[326.8,470.1,6.0,12.642],[332.8,470.1,6.0,12.642],[338.8,470.1,6.0,12.642],[344.8,470.1,6.0,12.642],[350.8,470.1,6.0,12.642],[356.8,470.1,6.0,12.642],[362.8,470.1,6.0,12.642],[368.8,470.1,6.0,12.642],[374.8,470.1,6.0,12.642],[380.8,470.1,6.0,12.642],[386.8,470.1,6.0,12.642],[392.8,470.1,6.0,12.642],[398.8,470.1,6.0,12.642],[404.8,470.1,6.0,12.642],[410.8,470.1,6.0,12.642],[416.8,470.1,6.0,12.642],[422.8,470.1,6.0,12.642],[428.8,470.1,6.0,12.642],[434.8,470.1,6.0,12.642],[440.8,470.1,6.0,12.642],[446.8,470.1,6.0,12.642],[452.8,470.1,6.0,12.642],[458.8,470.1,6.0,12.642],[56.8,456.3,6.672001,12.642],[63.484,456.3,3.3239975,12.642],[66.784,456.3,6.0,12.642],[72.784,456.3,6.0,12.642],[78.784,456.3,5.316002,12.642],[84.088,456.3,6.0,12.642],[93.088,456.3,6.0,12.642],[99.088,456.3,6.0,12.642],[105.088,456.3,3.3239975,12.642],[111.38799,456.3,8.664001,12.642],[120.076,456.3,3.3239975,12.642],[123.37599,456.3,3.3239975,12.642],[126.75999,456.3,5.316002,12.642],[132.064,456.3,3.9960022,12.642],[136.06,456.3,5.3159943,12.642],[144.364,456.3,6.671997,12.642],[151.04799,456.3,6.0,12.642],[157.04799,456.3,6.0,12.642],[163.04799,456.3,6.0,12.642],[169.04799,456.3,5.3159943,12.642],[174.35199,456.3,6.0,12.642],[180.35199,456.3,4.6679993,12.642],[185.04399,456.3,5.3159943,12.642],[190.34799,456.3,6.0,12.642],[196.34799,456.3,5.3159943,12.642],[201.652,456.3,3.3240051,12.642],[204.952,456.3,6.0,12.642],[308.8,456.3,6.671997,12.642],[315.48398,456.3,3.3240051,12.642],[318.784,456.3,6.0,12.642],[324.784,456.3,6.0,12.642],[330.784,456.3,5.3160095,12.642],[336.088,456.3,6.0,12.642],[345.088,456.3,6.0,12.642],[351.088,456.3,6.0,12.642],[357.088,456.3,3.3240051,12.642],[363.18402,456.3,7.3200073,12.642],[369.68802,456.3,6.0,12.642],[375.68802,456.3,6.0,12.642],[381.68802,456.3,3.3240051,12.642],[384.98804,456.3,5.3160095,12.642],[390.29205,456.3,4.6679993,12.642],[397.98404,456.3,10.667999,12.642],[408.67603,456.3,6.0,12.642],[414.67603,456.3,3.3240051,12.642],[417.97604,456.3,3.3240051,12.642],[421.36005,456.3,5.3160095,12.642],[426.66406,456.3,3.9960022,12.642]]},{"id":91,"stringIdxToPositionIdx":[0,1,2,3,4,4,5,6,7,7,8,9,10,11,12,13,13,14,15,16,17],"positions":[[56.8,392.1,10.1802025,13.867801],[66.9802,392.1,8.600998,13.867801],[75.5812,392.1,3.9057007,13.867801],[79.4869,392.1,7.8395996,13.867801],[91.3,392.1,7.8395996,13.867801],[99.097305,392.1,7.8395996,13.867801],[107.0,392.1,4.6952972,13.867801],[115.6,392.1,10.180199,13.867801],[125.7802,392.1,7.8395996,13.867801],[133.5775,392.1,8.600998,13.867801],[142.1785,392.1,7.8395996,13.867801],[150.0604,392.1,7.8395996,13.867801],[157.8577,392.1,4.6952972,13.867801],[166.4587,392.1,8.600998,13.867801],[175.0597,392.1,8.600998,13.867801],[183.66069,392.1,8.600998,13.867801],[192.26169,392.1,8.600998,13.867801]]},{"id":92,"stringIdxToPositionIdx":[0,1,2,3,4,5,6,6,7,8,9,10,10,11,12,13,14,14,15,16,16,17,18,19,20,21,22,23,24,25,26,26,27,28,29,30,31,31,32,33,33,34,35,36,37,37,38,39,40,41,41,42,43,43,44,45,46,47,48,49,50,50,51,52,53,54,55,56,57,58,59],"positions":[[56.8,373.7,6.1000023,11.535],[62.9,373.7,4.4300003,11.535],[67.3,373.7,5.0,11.535],[72.3,373.7,5.0,11.535],[77.3,373.7,4.4300003,11.535],[81.700005,373.7,2.7699966,11.535],[86.99,373.7,5.5599976,11.535],[92.579994,373.7,5.0,11.535],[97.579994,373.7,5.0,11.535],[102.579994,373.7,5.0,11.535],[110.079994,373.7,5.0,11.535],[115.079994,373.7,5.0,11.535],[120.079994,373.7,2.7699966,11.535],[122.86999,373.7,4.4300003,11.535],[129.76999,373.7,2.7700043,11.535],[132.56,373.7,2.7700043,11.535],[137.85,373.7,6.100006,11.535],[142.85,373.7,4.4299927,11.535],[147.25,373.7,3.8899994,11.535],[151.14,373.7,2.7700043,11.535],[153.93001,373.7,4.4299927,11.535],[158.33,373.7,5.0,11.535],[163.33,373.7,3.8899994,11.535],[167.22,373.7,5.0,11.535],[172.22,373.7,2.7700043,11.535],[175.01001,373.7,4.4299927,11.535],[181.91,373.7,5.0,11.535],[186.91,373.7,2.7700043,11.535],[189.70001,373.7,5.0,11.535],[194.70001,373.7,5.0,11.535],[199.70001,373.7,4.4299927,11.535],[206.6,373.7,2.7700043,11.535],[209.39001,373.7,3.8899994,11.535],[215.78001,373.7,5.5599976,11.535],[220.38,373.7,4.4299927,11.535],[224.78,373.7,3.8899994,11.535],[228.67,373.7,2.5,11.535],[233.76,373.7,4.4299927,11.535],[238.15999,373.7,2.7700043,11.535],[240.95,373.7,3.8899994,11.535],[244.84,373.7,4.4299927,11.535],[251.73999,373.7,5.0,11.535],[256.74,373.7,5.0,11.535],[264.24,373.7,5.0,11.535],[269.24,373.7,5.0,11.535],[274.24,373.7,2.769989,11.535],[277.02997,373.7,5.0,11.535],[282.02997,373.7,2.769989,11.535],[284.81995,373.7,5.0,11.535],[289.81995,373.7,5.0,11.535],[297.31995,373.7,3.3299866,11.535],[300.61993,373.7,3.8900146,11.535],[304.50995,373.7,4.4299927,11.535],[308.90994,373.7,2.769989,11.535],[311.69992,373.7,5.0,11.535],[316.69992,373.7,5.0,11.535],[321.69992,373.7,4.4299927,11.535],[326.0999,373.7,5.0,11.535],[331.1899,373.7,3.3299866,11.535]]},{"id":93,"stringIdxToPositionIdx":[],"positions":[]},{"id":94,"stringIdxToPositionIdx":[],"positions":[]},{"id":95,"stringIdxToPositionIdx":[],"positions":[]},{"id":96,"stringIdxToPositionIdx":[0,1,2,3,4,4,5,6,6,7,7,8,9,10,11,12,13,14,15,16,17,18],"positions":[[56.8,722.1,7.3200035,12.642],[64.096,722.1,6.0,12.642],[70.096,722.1,3.3239975,12.642],[73.395996,722.1,4.6679993,12.642],[81.088,722.1,3.3239975,12.642],[84.38799,722.1,4.6679993,12.642],[92.079994,722.1,5.316002,12.642],[100.383995,722.1,6.671997,12.642],[107.06799,722.1,5.316002,12.642],[112.371994,722.1,6.0,12.642],[118.371994,722.1,5.316002,12.642],[123.675995,722.1,3.9960022,12.642],[127.768,722.1,8.663994,12.642],[136.456,722.1,5.3159943,12.642],[141.76,722.1,5.3159943,12.642],[147.064,722.1,6.0,12.642],[153.064,722.1,5.3159943,12.642],[158.368,722.1,3.9960022,12.642]]},{"id":97,"stringIdxToPositionIdx":[0,1,2,3,4,4,5,6,6,7,7,8,9,10,11,12,13,14,15,16,17,18],"positions":[[56.8,722.1,7.3200035,12.642],[64.096,722.1,6.0,12.642],[70.096,722.1,3.3239975,12.642],[73.395996,722.1,4.6679993,12.642],[81.088,722.1,3.3239975,12.642],[84.38799,722.1,4.6679993,12.642],[92.079994,722.1,5.316002,12.642],[100.383995,722.1,6.671997,12.642],[107.06799,722.1,5.316002,12.642],[112.371994,722.1,6.0,12.642],[118.371994,722.1,5.316002,12.642],[123.675995,722.1,3.9960022,12.642],[127.768,722.1,8.663994,12.642],[136.456,722.1,5.3159943,12.642],[141.76,722.1,5.3159943,12.642],[147.064,722.1,6.0,12.642],[153.064,722.1,5.3159943,12.642],[158.368,722.1,3.9960022,12.642]]},{"id":98,"stringIdxToPositionIdx":[0,1,2,3,4,4,5,6,6,7,7,8,9,10,11,12,13,14,15,16,17,18],"positions":[[56.8,722.1,7.3200035,12.642],[64.096,722.1,6.0,12.642],[70.096,722.1,3.3239975,12.642],[73.395996,722.1,4.6679993,12.642],[81.088,722.1,3.3239975,12.642],[84.38799,722.1,4.6679993,12.642],[92.079994,722.1,5.316002,12.642],[100.383995,722.1,6.671997,12.642],[107.06799,722.1,5.316002,12.642],[112.371994,722.1,6.0,12.642],[118.371994,722.1,5.316002,12.642],[123.675995,722.1,3.9960022,12.642],[127.768,722.1,8.663994,12.642],[136.456,722.1,5.3159943,12.642],[141.76,722.1,5.3159943,12.642],[147.064,722.1,6.0,12.642],[153.064,722.1,5.3159943,12.642],[158.368,722.1,3.9960022,12.642]]},{"id":99,"stringIdxToPositionIdx":[0,1,2,3,4,4,5,6,6,7,7,8,9,10,11,12,13,14,15,16,17,18],"positions":[[56.8,722.1,7.3200035,12.642],[64.096,722.1,6.0,12.642],[70.096,722.1,3.3239975,12.642],[73.395996,722.1,4.6679993,12.642],[81.088,722.1,3.3239975,12.642],[84.38799,722.1,4.6679993,12.642],[92.079994,722.1,5.316002,12.642],[100.383995,722.1,6.671997,12.642],[107.06799,722.1,5.316002,12.642],[112.371994,722.1,6.0,12.642],[118.371994,722.1,5.316002,12.642],[123.675995,722.1,3.9960022,12.642],[127.768,722.1,8.663994,12.642],[136.456,722.1,5.3159943,12.642],[141.76,722.1,5.3159943,12.642],[147.064,722.1,6.0,12.642],[153.064,722.1,5.3159943,12.642],[158.368,722.1,3.9960022,12.642]]},{"id":100,"stringIdxToPositionIdx":[0,1,2,3,4,4,5,6,6,7,7,8,9,10,11,12,13,14,15,16,17,18],"positions":[[56.8,722.1,7.3200035,12.642],[64.096,722.1,6.0,12.642],[70.096,722.1,3.3239975,12.642],[73.395996,722.1,4.6679993,12.642],[81.088,722.1,3.3239975,12.642],[84.38799,722.1,4.6679993,12.642],[92.079994,722.1,5.316002,12.642],[100.383995,722.1,6.671997,12.642],[107.06799,722.1,5.316002,12.642],[112.371994,722.1,6.0,12.642],[118.371994,722.1,5.316002,12.642],[123.675995,722.1,3.9960022,12.642],[127.768,722.1,8.663994,12.642],[136.456,722.1,5.3159943,12.642],[141.76,722.1,5.3159943,12.642],[147.064,722.1,6.0,12.642],[153.064,722.1,5.3159943,12.642],[158.368,722.1,3.9960022,12.642]]},{"id":101,"stringIdxToPositionIdx":[0,1,2,3,4,4,5,6,6,7,7,8,9,10,11,12,13,14,15,16,17,18],"positions":[[56.8,722.1,7.3200035,12.642],[64.096,722.1,6.0,12.642],[70.096,722.1,3.3239975,12.642],[73.395996,722.1,4.6679993,12.642],[81.088,722.1,3.3239975,12.642],[84.38799,722.1,4.6679993,12.642],[92.079994,722.1,5.316002,12.642],[100.383995,722.1,6.671997,12.642],[107.06799,722.1,5.316002,12.642],[112.371994,722.1,6.0,12.642],[118.371994,722.1,5.316002,12.642],[123.675995,722.1,3.9960022,12.642],[127.768,722.1,8.663994,12.642],[136.456,722.1,5.3159943,12.642],[141.76,722.1,5.3159943,12.642],[147.064,722.1,6.0,12.642],[153.064,722.1,5.3159943,12.642],[158.368,722.1,3.9960022,12.642]]},{"id":102,"stringIdxToPositionIdx":[0,1,2,3,4,4,5,6,6,7,7,8,9,10,11,12,13,14,15,16,17,18],"positions":[[56.8,722.1,7.3200035,12.642],[64.096,722.1,6.0,12.642],[70.096,722.1,3.3239975,12.642],[73.395996,722.1,4.6679993,12.642],[81.088,722.1,3.3239975,12.642],[84.38799,722.1,4.6679993,12.642],[92.079994,722.1,5.316002,12.642],[100.383995,722.1,6.671997,12.642],[107.06799,722.1,5.316002,12.642],[112.371994,722.1,6.0,12.642],[118.371994,722.1,5.316002,12.642],[123.675995,722.1,3.9960022,12.642],[127.768,722.1,8.663994,12.642],[136.456,722.1,5.3159943,12.642],[141.76,722.1,5.3159943,12.642],[147.064,722.1,6.0,12.642],[153.064,722.1,5.3159943,12.642],[158.368,722.1,3.9960022,12.642]]},{"id":103,"stringIdxToPositionIdx":[0,1,2,3,4,4,5,6,6,7,7,8,9,10,11,12,13,14,15,16,17,18],"positions":[[56.8,722.1,7.3200035,12.642],[64.096,722.1,6.0,12.642],[70.096,722.1,3.3239975,12.642],[73.395996,722.1,4.6679993,12.642],[81.088,722.1,3.3239975,12.642],[84.38799,722.1,4.6679993,12.642],[92.079994,722.1,5.316002,12.642],[100.383995,722.1,6.671997,12.642],[107.06799,722.1,5.316002,12.642],[112.371994,722.1,6.0,12.642],[118.371994,722.1,5.316002,12.642],[123.675995,722.1,3.9960022,12.642],[127.768,722.1,8.663994,12.642],[136.456,722.1,5.3159943,12.642],[141.76,722.1,5.3159943,12.642],[147.064,722.1,6.0,12.642],[153.064,722.1,5.3159943,12.642],[158.368,722.1,3.9960022,12.642]]},{"id":104,"stringIdxToPositionIdx":[0,1,2,3,4,4,5,6,6,7,7,8,9,10,11,12,13,14,15,16,17,18],"positions":[[56.8,722.1,7.3200035,12.642],[64.096,722.1,6.0,12.642],[70.096,722.1,3.3239975,12.642],[73.395996,722.1,4.6679993,12.642],[81.088,722.1,3.3239975,12.642],[84.38799,722.1,4.6679993,12.642],[92.079994,722.1,5.316002,12.642],[100.383995,722.1,6.671997,12.642],[107.06799,722.1,5.316002,12.642],[112.371994,722.1,6.0,12.642],[118.371994,722.1,5.316002,12.642],[123.675995,722.1,3.9960022,12.642],[127.768,722.1,8.663994,12.642],[136.456,722.1,5.3159943,12.642],[141.76,722.1,5.3159943,12.642],[147.064,722.1,6.0,12.642],[153.064,722.1,5.3159943,12.642],[158.368,722.1,3.9960022,12.642]]},{"id":105,"stringIdxToPositionIdx":[0,1,2,3,4,4,5,6,6,7,7,8,9,10,11,12,13,14,15,16,17,18],"positions":[[56.8,57.30002,7.3200035,12.642],[64.096,57.30002,6.0,12.642],[70.096,57.30002,3.3239975,12.642],[73.395996,57.30002,4.6679993,12.642],[81.088,57.30002,3.3239975,12.642],[84.38799,57.30002,4.6679993,12.642],[92.079994,57.30002,5.316002,12.642],[100.383995,57.30002,6.671997,12.642],[107.06799,57.30002,5.316002,12.642],[112.371994,57.30002,6.0,12.642],[118.371994,57.30002,5.316002,12.642],[123.675995,57.30002,3.9960022,12.642],[127.768,57.30002,6.6720047,12.642],[134.368,57.30002,6.0,12.642],[140.368,57.30002,6.0,12.642],[146.368,57.30002,3.3240051,12.642],[149.668,57.30002,5.3159943,12.642],[154.972,57.30002,3.9960022,12.642]]},{"id":106,"stringIdxToPositionIdx":[0,1,2,3,4,4,5,6,6,7,7,8,9,10,11,12,13,14,15,16,17,18],"positions":[[56.8,57.30002,7.3200035,12.642],[64.096,57.30002,6.0,12.642],[70.096,57.30002,3.3239975,12.642],[73.395996,57.30002,4.6679993,12.642],[81.088,57.30002,3.3239975,12.642],[84.38799,57.30002,4.6679993,12.642],[92.079994,57.30002,5.316002,12.642],[100.383995,57.30002,6.671997,12.642],[107.06799,57.30002,5.316002,12.642],[112.371994,57.30002,6.0,12.642],[118.371994,57.30002,5.316002,12.642],[123.675995,57.30002,3.9960022,12.642],[127.768,57.30002,6.6720047,12.642],[134.368,57.30002,6.0,12.642],[140.368,57.30002,6.0,12.642],[146.368,57.30002,3.3240051,12.642],[149.668,57.30002,5.3159943,12.642],[154.972,57.30002,3.9960022,12.642]]},{"id":107,"stringIdxToPositionIdx":[0,1,2,3,4,4,5,6,7,8,9,10,10,11,12,13,14,14,15,16,17,18,19,20,21,21,22,23,23,24,25,26,27,28,29,30,30,31,32,33,34,35,36,36,37,38,39,40,40,41,42,43,44,45,46,47,48,48,49,50,51,52,53,54,54,55,56,57,58,58,59,60,61,62,63,64,65,66,66,67,68,69,70,71,72,73,74,74,75,76,77,78,78,79,80,81,82,83,84,84,85,86,87,88,88,89,90,91,92,93,94,95,95,96,97,98,99,100,101,102,102,103,104,105,106,107,108,108,109,110,111,112,113,114,115,116,116,117,118,119,120,121,122,123,124,124,125,126,127,128,129,130,130,131,132,133,134,135,136,137,138,139,139,140,141,142,143,144,145,146,147,148,149,150,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,164,165,166,167,168,168,169,170,170,171,171,172,173,174,175,176,177,178,179,180,181,182],"positions":[[56.8,150.00003,8.663998,12.642],[65.404,150.00003,6.0,12.642],[71.404,150.00003,6.0,12.642],[77.404,150.00003,3.3239975,12.642],[83.787994,150.00003,3.9960022,12.642],[87.784,150.00003,5.316002,12.642],[93.088,150.00003,6.0,12.642],[99.088,150.00003,5.316002,12.642],[104.392,150.00003,5.316002,12.642],[109.696,150.00003,3.3239975,12.642],[116.079994,150.00003,6.0,12.642],[122.079994,150.00003,5.316002,12.642],[127.383995,150.00003,3.9959946,12.642],[131.37999,150.00003,5.3159943,12.642],[139.68399,150.00003,6.0,12.642],[145.68399,150.00003,5.3159943,12.642],[150.98799,150.00003,5.3159943,12.642],[156.37599,150.00003,5.3159943,12.642],[161.68,150.00003,6.0,12.642],[167.68,150.00003,4.6679993,12.642],[172.372,150.00003,5.3159943,12.642],[180.676,150.00003,6.0,12.642],[186.676,150.00003,3.9960022,12.642],[193.672,150.00003,9.324005,12.642],[202.972,150.00003,3.3240051,12.642],[206.272,150.00003,4.6679993,12.642],[210.964,150.00003,4.6679993,12.642],[215.656,150.00003,3.3240051,12.642],[218.95601,150.00003,6.0,12.642],[224.95601,150.00003,6.0,12.642],[233.95601,150.00003,4.6679993,12.642],[238.64801,150.00003,5.3159943,12.642],[243.95201,150.00003,5.3159943,12.642],[249.25601,150.00003,6.0,12.642],[255.25601,150.00003,6.0,12.642],[261.256,150.00003,6.0,12.642],[270.34003,150.00003,6.0,12.642],[276.34003,150.00003,5.3160095,12.642],[281.64404,150.00003,6.0,12.642],[287.64404,150.00003,3.3240051,12.642],[293.94406,150.00003,6.671997,12.642],[300.62805,150.00003,6.0,12.642],[306.62805,150.00003,5.3160095,12.642],[311.93207,150.00003,5.3160095,12.642],[317.23608,150.00003,3.3240051,12.642],[320.5361,150.00003,5.3160095,12.642],[325.84012,150.00003,4.6679993,12.642],[330.5321,150.00003,3.3240051,12.642],[336.9161,150.00003,10.667999,12.642],[347.6081,150.00003,6.0,12.642],[353.6081,150.00003,6.0,12.642],[359.5121,150.00003,4.6679993,12.642],[364.20407,150.00003,5.3160095,12.642],[369.5081,150.00003,3.3240051,12.642],[375.8921,150.00003,8.664001,12.642],[384.58008,150.00003,9.324005,12.642],[393.8801,150.00003,6.0,12.642],[399.8801,150.00003,3.3240051,12.642],[406.1801,150.00003,7.9920044,12.642],[414.17212,150.00003,6.0,12.642],[420.17212,150.00003,6.0,12.642],[426.17212,150.00003,4.6679993,12.642],[430.8641,150.00003,6.0,12.642],[436.8641,150.00003,9.324005,12.642],[446.16412,150.00003,5.3160095,12.642],[451.46814,150.00003,3.9960022,12.642],[458.46414,150.00003,6.671997,12.642],[465.14813,150.00003,3.9960022,12.642],[469.14413,150.00003,6.0,12.642],[475.14413,150.00003,6.0,12.642],[481.14413,150.00003,6.0,12.642],[487.14413,150.00003,5.3160095,12.642],[492.44815,150.00003,3.3240051,12.642],[495.74817,150.00003,4.6679993,12.642],[56.8,136.20004,8.663998,12.642],[65.404,136.20004,6.0,12.642],[71.404,136.20004,6.0,12.642],[77.404,136.20004,3.3239975,12.642],[83.787994,136.20004,3.9960022,12.642],[87.784,136.20004,5.316002,12.642],[93.088,136.20004,6.0,12.642],[99.088,136.20004,5.316002,12.642],[104.392,136.20004,5.316002,12.642],[109.696,136.20004,3.3239975,12.642],[116.079994,136.20004,6.0,12.642],[122.079994,136.20004,5.316002,12.642],[127.383995,136.20004,3.9959946,12.642],[131.37999,136.20004,5.3159943,12.642],[139.68399,136.20004,6.0,12.642],[145.68399,136.20004,5.3159943,12.642],[150.98799,136.20004,5.3159943,12.642],[156.37599,136.20004,5.3159943,12.642],[161.68,136.20004,6.0,12.642],[167.68,136.20004,4.6679993,12.642],[172.372,136.20004,5.3159943,12.642],[180.676,136.20004,9.324005,12.642],[189.976,136.20004,3.3240051,12.642],[193.276,136.20004,4.6679993,12.642],[197.968,136.20004,4.6679993,12.642],[202.66,136.20004,3.3240051,12.642],[205.96,136.20004,6.0,12.642],[211.96,136.20004,6.0,12.642],[220.96,136.20004,4.6679993,12.642],[225.65201,136.20004,5.3159943,12.642],[230.95601,136.20004,5.3159943,12.642],[236.26001,136.20004,6.0,12.642],[242.26001,136.20004,6.0,12.642],[248.26001,136.20004,6.0,12.642],[257.344,136.20004,6.0,12.642],[263.344,136.20004,5.3160095,12.642],[268.648,136.20004,6.0,12.642],[274.552,136.20004,8.664001,12.642],[283.24,136.20004,6.0,12.642],[289.24,136.20004,3.9960022,12.642],[293.236,136.20004,6.0,12.642],[299.236,136.20004,3.3240051,12.642],[305.62,136.20004,6.671997,12.642],[312.304,136.20004,6.0,12.642],[318.304,136.20004,5.3160095,12.642],[323.608,136.20004,5.3160095,12.642],[328.91202,136.20004,3.3240051,12.642],[332.21204,136.20004,5.3160095,12.642],[337.51605,136.20004,4.6679993,12.642],[342.20804,136.20004,3.3240051,12.642],[348.59204,136.20004,10.667999,12.642],[359.18805,136.20004,6.0,12.642],[365.18805,136.20004,6.0,12.642],[371.18805,136.20004,4.6679993,12.642],[375.88004,136.20004,5.3160095,12.642],[381.18405,136.20004,3.0,12.642],[387.18405,136.20004,7.9920044,12.642],[395.17606,136.20004,5.3160095,12.642],[400.48007,136.20004,4.6679993,12.642],[405.17206,136.20004,6.0,12.642],[411.17206,136.20004,6.0,12.642],[417.17206,136.20004,3.9960022,12.642],[421.16806,136.20004,5.3160095,12.642],[426.47208,136.20004,5.3160095,12.642],[431.7761,136.20004,4.6679993,12.642],[439.46808,136.20004,8.664001,12.642],[448.15607,136.20004,5.3160095,12.642],[453.46008,136.20004,6.0,12.642],[459.46008,136.20004,5.3160095,12.642],[464.7641,136.20004,3.3240051,12.642],[468.06412,136.20004,6.0,12.642],[474.06412,136.20004,6.0,12.642],[480.14813,136.20004,9.324005,12.642],[489.44815,136.20004,5.3160095,12.642],[494.75217,136.20004,6.0,12.642],[500.75217,136.20004,3.3240051,12.642],[56.8,122.400055,8.663998,12.642],[65.404,122.400055,6.0,12.642],[71.404,122.400055,9.3239975,12.642],[80.787994,122.400055,3.3239975,12.642],[84.08799,122.400055,6.0,12.642],[90.08799,122.400055,3.3239975,12.642],[93.387985,122.400055,4.6679993,12.642],[98.07999,122.400055,3.3239975,12.642],[101.37998,122.400055,3.9960022,12.642],[105.375984,122.400055,5.316002,12.642],[110.763985,122.400055,3.3239975,12.642],[114.06398,122.400055,3.3239975,12.642],[117.363976,122.400055,6.0,12.642],[123.363976,122.400055,6.0000076,12.642],[56.8,57.30002,7.3200035,12.642],[64.096,57.30002,6.0,12.642],[70.096,57.30002,3.3239975,12.642],[73.395996,57.30002,4.6679993,12.642],[81.088,57.30002,3.3239975,12.642],[84.38799,57.30002,4.6679993,12.642],[92.079994,57.30002,5.316002,12.642],[100.383995,57.30002,6.671997,12.642],[107.06799,57.30002,5.316002,12.642],[112.371994,57.30002,6.0,12.642],[118.371994,57.30002,5.316002,12.642],[123.675995,57.30002,3.9960022,12.642],[127.768,57.30002,6.6720047,12.642],[134.368,57.30002,6.0,12.642],[140.368,57.30002,6.0,12.642],[146.368,57.30002,3.3240051,12.642],[149.668,57.30002,5.3159943,12.642],[154.972,57.30002,3.9960022,12.642]]},{"id":108,"stringIdxToPositionIdx":[0,1,2,3,4,4,5,6,6,7,7,8,9,10,11,12,13,14,15,16,17,18],"positions":[[56.8,57.30002,7.3200035,12.642],[64.096,57.30002,6.0,12.642],[70.096,57.30002,3.3239975,12.642],[73.395996,57.30002,4.6679993,12.642],[81.088,57.30002,3.3239975,12.642],[84.38799,57.30002,4.6679993,12.642],[92.079994,57.30002,5.316002,12.642],[100.383995,57.30002,6.671997,12.642],[107.06799,57.30002,5.316002,12.642],[112.371994,57.30002,6.0,12.642],[118.371994,57.30002,5.316002,12.642],[123.675995,57.30002,3.9960022,12.642],[127.768,57.30002,6.6720047,12.642],[134.368,57.30002,6.0,12.642],[140.368,57.30002,6.0,12.642],[146.368,57.30002,3.3240051,12.642],[149.668,57.30002,5.3159943,12.642],[154.972,57.30002,3.9960022,12.642]]},{"id":109,"stringIdxToPositionIdx":[0,1,2,3,4,4,5,6,6,7,7,8,9,10,11,12,13,14,15,16,17,18],"positions":[[56.8,57.30002,7.3200035,12.642],[64.096,57.30002,6.0,12.642],[70.096,57.30002,3.3239975,12.642],[73.395996,57.30002,4.6679993,12.642],[81.088,57.30002,3.3239975,12.642],[84.38799,57.30002,4.6679993,12.642],[92.079994,57.30002,5.316002,12.642],[100.383995,57.30002,6.671997,12.642],[107.06799,57.30002,5.316002,12.642],[112.371994,57.30002,6.0,12.642],[118.371994,57.30002,5.316002,12.642],[123.675995,57.30002,3.9960022,12.642],[127.768,57.30002,6.6720047,12.642],[134.368,57.30002,6.0,12.642],[140.368,57.30002,6.0,12.642],[146.368,57.30002,3.3240051,12.642],[149.668,57.30002,5.3159943,12.642],[154.972,57.30002,3.9960022,12.642]]},{"id":110,"stringIdxToPositionIdx":[0,1,2,3,4,4,5,6,6,7,7,8,9,10,11,12,13,14,15,16,17,18],"positions":[[56.8,57.30002,7.3200035,12.642],[64.096,57.30002,6.0,12.642],[70.096,57.30002,3.3239975,12.642],[73.395996,57.30002,4.6679993,12.642],[81.088,57.30002,3.3239975,12.642],[84.38799,57.30002,4.6679993,12.642],[92.079994,57.30002,5.316002,12.642],[100.383995,57.30002,6.671997,12.642],[107.06799,57.30002,5.316002,12.642],[112.371994,57.30002,6.0,12.642],[118.371994,57.30002,5.316002,12.642],[123.675995,57.30002,3.9960022,12.642],[127.768,57.30002,6.6720047,12.642],[134.368,57.30002,6.0,12.642],[140.368,57.30002,6.0,12.642],[146.368,57.30002,3.3240051,12.642],[149.668,57.30002,5.3159943,12.642],[154.972,57.30002,3.9960022,12.642]]},{"id":111,"stringIdxToPositionIdx":[0,1,2,3,4,5,5,6,7,8,9,10,11,12,13,14,15,15,16,17,18,19,20,20,21,22,22,23,24,25,26,27,28,29,30,30,31,32,33,34,34,35,36,37,38,38,39,40,40,41,41,42,43,44,45,46,47,48,49,50,51,52],"positions":[[56.8,155.30002,6.672001,12.642],[63.484,155.30002,7.991997,12.642],[71.38,155.30002,8.664001,12.642],[80.068,155.30002,8.664001,12.642],[88.756004,155.30002,8.664001,12.642],[100.1,155.30002,8.664001,12.642],[108.788,155.30002,9.3239975,12.642],[118.088,155.30002,11.315994,12.642],[129.392,155.30002,7.3200073,12.642],[136.688,155.30002,7.9920044,12.642],[144.68001,155.30002,7.9920044,12.642],[152.67201,155.30002,7.9920044,12.642],[160.66402,155.30002,4.6679993,12.642],[165.35602,155.30002,9.324005,12.642],[174.65602,155.30002,8.664001,12.642],[186.44002,155.30002,8.664001,12.642],[195.04402,155.30002,8.664001,12.642],[202.84402,155.30002,7.9920044,12.642],[210.83603,155.30002,7.9920044,12.642],[218.82803,155.30002,3.9960022,12.642],[236.8,155.30002,6.0,12.642],[242.8,155.30002,6.0,12.642],[251.8,155.30002,8.663986,12.642],[260.48798,155.30002,5.3160095,12.642],[265.792,155.30002,5.3160095,12.642],[271.096,155.30002,5.3160095,12.642],[276.40002,155.30002,9.324005,12.642],[285.70004,155.30002,6.0,12.642],[291.70004,155.30002,5.3160095,12.642],[297.00406,155.30002,3.9960022,12.642],[304.09607,155.30002,6.0,12.642],[310.09607,155.30002,6.0,12.642],[316.09607,155.30002,6.0,12.642],[322.09607,155.30002,6.0,12.642],[56.8,57.30002,7.3200035,12.642],[64.096,57.30002,6.0,12.642],[70.096,57.30002,3.3239975,12.642],[73.395996,57.30002,4.6679993,12.642],[81.088,57.30002,3.3239975,12.642],[84.38799,57.30002,4.6679993,12.642],[92.079994,57.30002,5.316002,12.642],[100.383995,57.30002,6.671997,12.642],[107.06799,57.30002,5.316002,12.642],[112.371994,57.30002,6.0,12.642],[118.371994,57.30002,5.316002,12.642],[123.675995,57.30002,3.9960022,12.642],[127.768,57.30002,6.6720047,12.642],[134.368,57.30002,6.0,12.642],[140.368,57.30002,6.0,12.642],[146.368,57.30002,3.3240051,12.642],[149.668,57.30002,5.3159943,12.642],[154.972,57.30002,3.9960022,12.642]]},{"id":112,"stringIdxToPositionIdx":[0,1,2,3,4,4,5,6,6,7,7,8,9,10,11,12,13,14,15,16,17,18],"positions":[[56.8,57.30002,7.3200035,12.642],[64.096,57.30002,6.0,12.642],[70.096,57.30002,3.3239975,12.642],[73.395996,57.30002,4.6679993,12.642],[81.088,57.30002,3.3239975,12.642],[84.38799,57.30002,4.6679993,12.642],[92.079994,57.30002,5.316002,12.642],[100.383995,57.30002,6.671997,12.642],[107.06799,57.30002,5.316002,12.642],[112.371994,57.30002,6.0,12.642],[118.371994,57.30002,5.316002,12.642],[123.675995,57.30002,3.9960022,12.642],[127.768,57.30002,6.6720047,12.642],[134.368,57.30002,6.0,12.642],[140.368,57.30002,6.0,12.642],[146.368,57.30002,3.3240051,12.642],[149.668,57.30002,5.3159943,12.642],[154.972,57.30002,3.9960022,12.642]]},{"id":113,"stringIdxToPositionIdx":[0,1,2,3,4,4,5,6,6,7,7,8,9,10,11,12,13,14,15,16,17,18],"positions":[[56.8,57.30002,7.3200035,12.642],[64.096,57.30002,6.0,12.642],[70.096,57.30002,3.3239975,12.642],[73.395996,57.30002,4.6679993,12.642],[81.088,57.30002,3.3239975,12.642],[84.38799,57.30002,4.6679993,12.642],[92.079994,57.30002,5.316002,12.642],[100.383995,57.30002,6.671997,12.642],[107.06799,57.30002,5.316002,12.642],[112.371994,57.30002,6.0,12.642],[118.371994,57.30002,5.316002,12.642],[123.675995,57.30002,3.9960022,12.642],[127.768,57.30002,6.6720047,12.642],[134.368,57.30002,6.0,12.642],[140.368,57.30002,6.0,12.642],[146.368,57.30002,3.3240051,12.642],[149.668,57.30002,5.3159943,12.642],[154.972,57.30002,3.9960022,12.642]]}] \ No newline at end of file diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/resources/files/oldDocumentData/old.DOCUMENT_STRUCTURE.json b/redaction-service-v1/redaction-service-server-v1/src/test/resources/files/oldDocumentData/old.DOCUMENT_STRUCTURE.json new file mode 100644 index 00000000..da58cb03 --- /dev/null +++ b/redaction-service-v1/redaction-service-server-v1/src/test/resources/files/oldDocumentData/old.DOCUMENT_STRUCTURE.json @@ -0,0 +1 @@ +{"root":{"type":"DOCUMENT","treeId":[],"atomicBlockIds":[],"pageNumbers":[1,2,3,4,5,6,7,8,9],"properties":{},"children":[{"type":"SECTION","treeId":[0],"atomicBlockIds":[],"pageNumbers":[1],"properties":{},"children":[{"type":"HEADLINE","treeId":[0,0],"atomicBlockIds":[0],"pageNumbers":[1],"properties":{},"children":[],"engines":["ALGORITHM","OUTLINE"]},{"type":"PARAGRAPH","treeId":[0,1],"atomicBlockIds":[1],"pageNumbers":[1],"properties":{},"children":[],"engines":["ALGORITHM"]}],"engines":["ALGORITHM"]},{"type":"SECTION","treeId":[1],"atomicBlockIds":[],"pageNumbers":[1],"properties":{},"children":[{"type":"HEADLINE","treeId":[1,0],"atomicBlockIds":[2],"pageNumbers":[1],"properties":{},"children":[],"engines":["ALGORITHM","OUTLINE"]},{"type":"PARAGRAPH","treeId":[1,1],"atomicBlockIds":[3],"pageNumbers":[1],"properties":{},"children":[],"engines":["ALGORITHM"]},{"type":"PARAGRAPH","treeId":[1,2],"atomicBlockIds":[4],"pageNumbers":[1],"properties":{},"children":[],"engines":["ALGORITHM"]},{"type":"IMAGE","treeId":[1,3],"atomicBlockIds":[5],"pageNumbers":[1],"properties":{"representationHash":"FFFFEF1C7F78F1E78F3EFFFFF","position":"177.000000;470.000000;258.000000;237.000000","id":"aa4998f9f3418380acf643578529be00","imageType":"LOGO","transparent":"false"},"children":[],"engines":["ALGORITHM"]}],"engines":["ALGORITHM"]},{"type":"SECTION","treeId":[2],"atomicBlockIds":[],"pageNumbers":[2],"properties":{},"children":[{"type":"HEADLINE","treeId":[2,0],"atomicBlockIds":[6],"pageNumbers":[2],"properties":{},"children":[],"engines":["ALGORITHM","OUTLINE"]},{"type":"PARAGRAPH","treeId":[2,1],"atomicBlockIds":[7],"pageNumbers":[2],"properties":{},"children":[],"engines":["ALGORITHM"]},{"type":"PARAGRAPH","treeId":[2,2],"atomicBlockIds":[8],"pageNumbers":[2],"properties":{},"children":[],"engines":["ALGORITHM"]}],"engines":["ALGORITHM"]},{"type":"SECTION","treeId":[3],"atomicBlockIds":[],"pageNumbers":[2],"properties":{},"children":[{"type":"HEADLINE","treeId":[3,0],"atomicBlockIds":[9],"pageNumbers":[2],"properties":{},"children":[],"engines":["ALGORITHM","OUTLINE"]},{"type":"PARAGRAPH","treeId":[3,1],"atomicBlockIds":[10],"pageNumbers":[2],"properties":{},"children":[],"engines":["ALGORITHM"]}],"engines":["ALGORITHM"]},{"type":"SUPER_SECTION","treeId":[4],"atomicBlockIds":[],"pageNumbers":[2],"properties":{},"children":[{"type":"HEADLINE","treeId":[4,0],"atomicBlockIds":[11],"pageNumbers":[2],"properties":{},"children":[],"engines":["ALGORITHM","OUTLINE"]},{"type":"SECTION","treeId":[4,1],"atomicBlockIds":[],"pageNumbers":[2],"properties":{},"children":[{"type":"PARAGRAPH","treeId":[4,1,0],"atomicBlockIds":[12],"pageNumbers":[2],"properties":{},"children":[],"engines":["ALGORITHM"]}],"engines":["ALGORITHM"]},{"type":"SECTION","treeId":[4,2],"atomicBlockIds":[],"pageNumbers":[2],"properties":{},"children":[{"type":"TABLE","treeId":[4,2,0],"atomicBlockIds":[],"pageNumbers":[2],"properties":{"numberOfCols":"5","numberOfRows":"4"},"children":[{"type":"TABLE_CELL","treeId":[4,2,0,0],"atomicBlockIds":[13],"pageNumbers":[2],"properties":{"col":"0","bBox":"56.700001;358.049988;72.199993;17.700012","header":"true","row":"0"},"children":[],"engines":["ALGORITHM"]},{"type":"TABLE_CELL","treeId":[4,2,0,1],"atomicBlockIds":[14],"pageNumbers":[2],"properties":{"col":"1","bBox":"128.899994;358.049988;71.700012;17.700012","header":"true","row":"0"},"children":[],"engines":["ALGORITHM"]},{"type":"TABLE_CELL","treeId":[4,2,0,2],"atomicBlockIds":[15],"pageNumbers":[2],"properties":{"col":"2","bBox":"200.600006;358.049988;53.899994;17.700012","header":"true","row":"0"},"children":[],"engines":["ALGORITHM"]},{"type":"TABLE_CELL","treeId":[4,2,0,3],"atomicBlockIds":[16],"pageNumbers":[2],"properties":{"col":"3","bBox":"254.500000;358.049988;201.000000;17.700012","header":"true","row":"0"},"children":[],"engines":["ALGORITHM"]},{"type":"TABLE_CELL","treeId":[4,2,0,4],"atomicBlockIds":[17],"pageNumbers":[2],"properties":{"col":"4","bBox":"455.500000;358.049988;99.799988;17.700012","header":"true","row":"0"},"children":[],"engines":["ALGORITHM"]},{"type":"TABLE_CELL","treeId":[4,2,0,5],"atomicBlockIds":[18],"pageNumbers":[2],"properties":{"col":"0","bBox":"56.700001;328.350006;72.199993;29.699982","header":"false","row":"1"},"children":[],"engines":["ALGORITHM"]},{"type":"TABLE_CELL","treeId":[4,2,0,6],"atomicBlockIds":[19],"pageNumbers":[2],"properties":{"col":"1","bBox":"128.899994;328.350006;71.700012;29.699982","header":"false","row":"1"},"children":[],"engines":["ALGORITHM"]},{"type":"TABLE_CELL","treeId":[4,2,0,7],"atomicBlockIds":[20],"pageNumbers":[2],"properties":{"col":"2","bBox":"200.600006;328.350006;53.899994;29.699982","header":"false","row":"1"},"children":[],"engines":["ALGORITHM"]},{"type":"TABLE_CELL","treeId":[4,2,0,8],"atomicBlockIds":[21],"pageNumbers":[2],"properties":{"col":"3","bBox":"254.500000;328.350006;201.000000;29.699982","header":"false","row":"1"},"children":[],"engines":["ALGORITHM"]},{"type":"TABLE_CELL","treeId":[4,2,0,9],"atomicBlockIds":[22],"pageNumbers":[2],"properties":{"col":"4","bBox":"455.500000;328.350006;99.799988;29.699982","header":"false","row":"1"},"children":[],"engines":["ALGORITHM"]},{"type":"TABLE_CELL","treeId":[4,2,0,10],"atomicBlockIds":[23],"pageNumbers":[2],"properties":{"col":"0","bBox":"56.700001;298.549988;72.199993;29.800018","header":"false","row":"2"},"children":[],"engines":["ALGORITHM"]},{"type":"TABLE_CELL","treeId":[4,2,0,11],"atomicBlockIds":[24],"pageNumbers":[2],"properties":{"col":"1","bBox":"128.899994;298.549988;71.700012;29.800018","header":"false","row":"2"},"children":[],"engines":["ALGORITHM"]},{"type":"TABLE_CELL","treeId":[4,2,0,12],"atomicBlockIds":[25],"pageNumbers":[2],"properties":{"col":"2","bBox":"200.600006;298.549988;53.899994;29.800018","header":"false","row":"2"},"children":[],"engines":["ALGORITHM"]},{"type":"TABLE_CELL","treeId":[4,2,0,13],"atomicBlockIds":[26],"pageNumbers":[2],"properties":{"col":"3","bBox":"254.500000;298.549988;201.000000;29.800018","header":"false","row":"2"},"children":[],"engines":["ALGORITHM"]},{"type":"TABLE_CELL","treeId":[4,2,0,14],"atomicBlockIds":[27],"pageNumbers":[2],"properties":{"col":"4","bBox":"455.500000;298.549988;99.799988;29.800018","header":"false","row":"2"},"children":[],"engines":["ALGORITHM"]},{"type":"TABLE_CELL","treeId":[4,2,0,15],"atomicBlockIds":[28],"pageNumbers":[2],"properties":{"col":"0","bBox":"56.700001;268.850006;72.199993;29.699982","header":"false","row":"3"},"children":[],"engines":["ALGORITHM"]},{"type":"TABLE_CELL","treeId":[4,2,0,16],"atomicBlockIds":[29],"pageNumbers":[2],"properties":{"col":"1","bBox":"128.899994;268.850006;71.700012;29.699982","header":"false","row":"3"},"children":[],"engines":["ALGORITHM"]},{"type":"TABLE_CELL","treeId":[4,2,0,17],"atomicBlockIds":[30],"pageNumbers":[2],"properties":{"col":"2","bBox":"200.600006;268.850006;53.899994;29.699982","header":"false","row":"3"},"children":[],"engines":["ALGORITHM"]},{"type":"TABLE_CELL","treeId":[4,2,0,18],"atomicBlockIds":[31],"pageNumbers":[2],"properties":{"col":"3","bBox":"254.500000;268.850006;201.000000;29.699982","header":"false","row":"3"},"children":[],"engines":["ALGORITHM"]},{"type":"TABLE_CELL","treeId":[4,2,0,19],"atomicBlockIds":[32],"pageNumbers":[2],"properties":{"col":"4","bBox":"455.500000;268.850006;99.799988;29.699982","header":"false","row":"3"},"children":[],"engines":["ALGORITHM"]}],"engines":["ALGORITHM"]}],"engines":["ALGORITHM"]}],"engines":["ALGORITHM"]},{"type":"SECTION","treeId":[5],"atomicBlockIds":[],"pageNumbers":[3],"properties":{},"children":[{"type":"HEADLINE","treeId":[5,0],"atomicBlockIds":[33],"pageNumbers":[3],"properties":{},"children":[],"engines":["ALGORITHM","OUTLINE"]},{"type":"PARAGRAPH","treeId":[5,1],"atomicBlockIds":[34],"pageNumbers":[3],"properties":{},"children":[],"engines":["ALGORITHM"]},{"type":"PARAGRAPH","treeId":[5,2],"atomicBlockIds":[35],"pageNumbers":[3],"properties":{},"children":[],"engines":["ALGORITHM"]}],"engines":["ALGORITHM"]},{"type":"SECTION","treeId":[6],"atomicBlockIds":[],"pageNumbers":[3],"properties":{},"children":[{"type":"HEADLINE","treeId":[6,0],"atomicBlockIds":[36],"pageNumbers":[3],"properties":{},"children":[],"engines":["ALGORITHM","OUTLINE"]},{"type":"PARAGRAPH","treeId":[6,1],"atomicBlockIds":[37],"pageNumbers":[3],"properties":{},"children":[],"engines":["ALGORITHM"]}],"engines":["ALGORITHM"]},{"type":"SECTION","treeId":[7],"atomicBlockIds":[],"pageNumbers":[3],"properties":{},"children":[{"type":"HEADLINE","treeId":[7,0],"atomicBlockIds":[38],"pageNumbers":[3],"properties":{},"children":[],"engines":["ALGORITHM","OUTLINE"]},{"type":"PARAGRAPH","treeId":[7,1],"atomicBlockIds":[39],"pageNumbers":[3],"properties":{},"children":[],"engines":["ALGORITHM"]}],"engines":["ALGORITHM"]},{"type":"SECTION","treeId":[8],"atomicBlockIds":[],"pageNumbers":[3],"properties":{},"children":[{"type":"HEADLINE","treeId":[8,0],"atomicBlockIds":[40],"pageNumbers":[3],"properties":{},"children":[],"engines":["ALGORITHM","OUTLINE"]},{"type":"PARAGRAPH","treeId":[8,1],"atomicBlockIds":[41],"pageNumbers":[3],"properties":{},"children":[],"engines":["ALGORITHM"]}],"engines":["ALGORITHM"]},{"type":"SECTION","treeId":[9],"atomicBlockIds":[],"pageNumbers":[3],"properties":{},"children":[{"type":"HEADLINE","treeId":[9,0],"atomicBlockIds":[42],"pageNumbers":[3],"properties":{},"children":[],"engines":["ALGORITHM","OUTLINE"]}],"engines":["ALGORITHM"]},{"type":"SECTION","treeId":[10],"atomicBlockIds":[],"pageNumbers":[4],"properties":{},"children":[{"type":"HEADLINE","treeId":[10,0],"atomicBlockIds":[43],"pageNumbers":[4],"properties":{},"children":[],"engines":["ALGORITHM","OUTLINE"]},{"type":"PARAGRAPH","treeId":[10,1],"atomicBlockIds":[44],"pageNumbers":[4],"properties":{},"children":[],"engines":["ALGORITHM"]},{"type":"PARAGRAPH","treeId":[10,2],"atomicBlockIds":[45],"pageNumbers":[4],"properties":{},"children":[],"engines":["ALGORITHM"]}],"engines":["ALGORITHM"]},{"type":"SECTION","treeId":[11],"atomicBlockIds":[],"pageNumbers":[4],"properties":{},"children":[{"type":"HEADLINE","treeId":[11,0],"atomicBlockIds":[46],"pageNumbers":[4],"properties":{},"children":[],"engines":["ALGORITHM","OUTLINE"]},{"type":"PARAGRAPH","treeId":[11,1],"atomicBlockIds":[47],"pageNumbers":[4],"properties":{},"children":[],"engines":["ALGORITHM"]}],"engines":["ALGORITHM"]},{"type":"SECTION","treeId":[12],"atomicBlockIds":[],"pageNumbers":[4],"properties":{},"children":[{"type":"HEADLINE","treeId":[12,0],"atomicBlockIds":[48],"pageNumbers":[4],"properties":{},"children":[],"engines":["ALGORITHM","OUTLINE"]},{"type":"PARAGRAPH","treeId":[12,1],"atomicBlockIds":[49],"pageNumbers":[4],"properties":{},"children":[],"engines":["ALGORITHM"]}],"engines":["ALGORITHM"]},{"type":"SUPER_SECTION","treeId":[13],"atomicBlockIds":[],"pageNumbers":[5],"properties":{},"children":[{"type":"HEADLINE","treeId":[13,0],"atomicBlockIds":[50],"pageNumbers":[5],"properties":{},"children":[],"engines":["ALGORITHM","OUTLINE"]},{"type":"SECTION","treeId":[13,1],"atomicBlockIds":[],"pageNumbers":[5],"properties":{},"children":[{"type":"PARAGRAPH","treeId":[13,1,0],"atomicBlockIds":[51],"pageNumbers":[5],"properties":{},"children":[],"engines":["ALGORITHM"]}],"engines":["ALGORITHM"]},{"type":"SECTION","treeId":[13,2],"atomicBlockIds":[],"pageNumbers":[5],"properties":{},"children":[{"type":"TABLE","treeId":[13,2,0],"atomicBlockIds":[],"pageNumbers":[5],"properties":{"numberOfCols":"2","numberOfRows":"2"},"children":[{"type":"TABLE_CELL","treeId":[13,2,0,0],"atomicBlockIds":[52],"pageNumbers":[5],"properties":{"col":"0","bBox":"56.700001;631.049988;249.299999;19.400024","header":"true","row":"0"},"children":[],"engines":["ALGORITHM"]},{"type":"TABLE_CELL","treeId":[13,2,0,1],"atomicBlockIds":[53],"pageNumbers":[5],"properties":{"col":"1","bBox":"306.000000;631.049988;249.299988;19.400024","header":"true","row":"0"},"children":[],"engines":["ALGORITHM"]},{"type":"TABLE_CELL","treeId":[13,2,0,2],"atomicBlockIds":[54],"pageNumbers":[5],"properties":{"col":"0","bBox":"56.700001;397.850006;249.299999;233.199982","header":"false","row":"1"},"children":[],"engines":["ALGORITHM"]},{"type":"TABLE_CELL","treeId":[13,2,0,3],"atomicBlockIds":[],"pageNumbers":[5],"properties":{"col":"1","bBox":"306.000000;397.850006;249.299988;233.199982","header":"false","row":"1"},"children":[{"type":"PARAGRAPH","treeId":[13,2,0,3,0],"atomicBlockIds":[55],"pageNumbers":[5],"properties":{},"children":[],"engines":["ALGORITHM"]},{"type":"PARAGRAPH","treeId":[13,2,0,3,1],"atomicBlockIds":[56],"pageNumbers":[5],"properties":{},"children":[],"engines":["ALGORITHM"]}],"engines":["ALGORITHM"]}],"engines":["ALGORITHM"]}],"engines":["ALGORITHM"]}],"engines":["ALGORITHM"]},{"type":"SUPER_SECTION","treeId":[14],"atomicBlockIds":[],"pageNumbers":[6],"properties":{},"children":[{"type":"HEADLINE","treeId":[14,0],"atomicBlockIds":[57],"pageNumbers":[6],"properties":{},"children":[],"engines":["ALGORITHM","OUTLINE"]},{"type":"SECTION","treeId":[14,1],"atomicBlockIds":[],"pageNumbers":[6],"properties":{},"children":[{"type":"PARAGRAPH","treeId":[14,1,0],"atomicBlockIds":[58],"pageNumbers":[6],"properties":{},"children":[],"engines":["ALGORITHM"]}],"engines":["ALGORITHM"]},{"type":"SUPER_SECTION","treeId":[14,2],"atomicBlockIds":[],"pageNumbers":[6],"properties":{},"children":[{"type":"HEADLINE","treeId":[14,2,0],"atomicBlockIds":[59],"pageNumbers":[6],"properties":{},"children":[],"engines":["ALGORITHM"]},{"type":"SECTION","treeId":[14,2,1],"atomicBlockIds":[],"pageNumbers":[6],"properties":{},"children":[{"type":"PARAGRAPH","treeId":[14,2,1,0],"atomicBlockIds":[60],"pageNumbers":[6],"properties":{},"children":[],"engines":["ALGORITHM"]}],"engines":["ALGORITHM"]},{"type":"SECTION","treeId":[14,2,2],"atomicBlockIds":[],"pageNumbers":[6],"properties":{},"children":[{"type":"TABLE","treeId":[14,2,2,0],"atomicBlockIds":[],"pageNumbers":[6],"properties":{"numberOfCols":"2","numberOfRows":"2"},"children":[{"type":"TABLE_CELL","treeId":[14,2,2,0,0],"atomicBlockIds":[61],"pageNumbers":[6],"properties":{"col":"0","bBox":"56.700001;435.450012;249.299999;19.399994","header":"false","row":"0"},"children":[],"engines":["ALGORITHM"]},{"type":"TABLE_CELL","treeId":[14,2,2,0,1],"atomicBlockIds":[62],"pageNumbers":[6],"properties":{"col":"1","bBox":"306.000000;435.450012;249.299988;19.399994","header":"true","row":"0"},"children":[],"engines":["ALGORITHM"]},{"type":"TABLE_CELL","treeId":[14,2,2,0,2],"atomicBlockIds":[63],"pageNumbers":[6],"properties":{"col":"0","bBox":"56.700001;202.250000;249.299999;233.200012","header":"false","row":"1"},"children":[],"engines":["ALGORITHM"]},{"type":"TABLE_CELL","treeId":[14,2,2,0,3],"atomicBlockIds":[],"pageNumbers":[6],"properties":{"col":"1","bBox":"306.000000;202.250000;249.299988;233.200012","header":"false","row":"1"},"children":[{"type":"PARAGRAPH","treeId":[14,2,2,0,3,0],"atomicBlockIds":[64],"pageNumbers":[6],"properties":{},"children":[],"engines":["ALGORITHM"]},{"type":"PARAGRAPH","treeId":[14,2,2,0,3,1],"atomicBlockIds":[65],"pageNumbers":[6],"properties":{},"children":[],"engines":["ALGORITHM"]}],"engines":["ALGORITHM"]}],"engines":["ALGORITHM"]}],"engines":["ALGORITHM"]}],"engines":["ALGORITHM"]}],"engines":["ALGORITHM"]},{"type":"SECTION","treeId":[15],"atomicBlockIds":[],"pageNumbers":[7],"properties":{},"children":[{"type":"HEADLINE","treeId":[15,0],"atomicBlockIds":[66],"pageNumbers":[7],"properties":{},"children":[],"engines":["ALGORITHM","OUTLINE"]},{"type":"PARAGRAPH","treeId":[15,1],"atomicBlockIds":[67],"pageNumbers":[7],"properties":{},"children":[],"engines":["ALGORITHM"]},{"type":"PARAGRAPH","treeId":[15,2],"atomicBlockIds":[68],"pageNumbers":[7],"properties":{},"children":[],"engines":["ALGORITHM"]},{"type":"PARAGRAPH","treeId":[15,3],"atomicBlockIds":[69],"pageNumbers":[7],"properties":{},"children":[],"engines":["ALGORITHM"]}],"engines":["ALGORITHM"]},{"type":"SECTION","treeId":[16],"atomicBlockIds":[],"pageNumbers":[7],"properties":{},"children":[{"type":"HEADLINE","treeId":[16,0],"atomicBlockIds":[70],"pageNumbers":[7],"properties":{},"children":[],"engines":["ALGORITHM","OUTLINE"]},{"type":"PARAGRAPH","treeId":[16,1],"atomicBlockIds":[71],"pageNumbers":[7],"properties":{},"children":[],"engines":["ALGORITHM"]},{"type":"PARAGRAPH","treeId":[16,2],"atomicBlockIds":[72],"pageNumbers":[7],"properties":{},"children":[],"engines":["ALGORITHM"]},{"type":"PARAGRAPH","treeId":[16,3],"atomicBlockIds":[73],"pageNumbers":[7],"properties":{},"children":[],"engines":["ALGORITHM"]}],"engines":["ALGORITHM"]},{"type":"SECTION","treeId":[17],"atomicBlockIds":[],"pageNumbers":[7],"properties":{},"children":[{"type":"HEADLINE","treeId":[17,0],"atomicBlockIds":[74],"pageNumbers":[7],"properties":{},"children":[],"engines":["ALGORITHM","OUTLINE"]},{"type":"PARAGRAPH","treeId":[17,1],"atomicBlockIds":[75],"pageNumbers":[7],"properties":{},"children":[],"engines":["ALGORITHM"]},{"type":"PARAGRAPH","treeId":[17,2],"atomicBlockIds":[76],"pageNumbers":[7],"properties":{},"children":[],"engines":["ALGORITHM"]}],"engines":["ALGORITHM"]},{"type":"SECTION","treeId":[18],"atomicBlockIds":[],"pageNumbers":[8],"properties":{},"children":[{"type":"HEADLINE","treeId":[18,0],"atomicBlockIds":[77],"pageNumbers":[8],"properties":{},"children":[],"engines":["ALGORITHM","OUTLINE"]},{"type":"PARAGRAPH","treeId":[18,1],"atomicBlockIds":[78],"pageNumbers":[8],"properties":{},"children":[],"engines":["ALGORITHM"]},{"type":"PARAGRAPH","treeId":[18,2],"atomicBlockIds":[79],"pageNumbers":[8],"properties":{},"children":[],"engines":["ALGORITHM"]}],"engines":["ALGORITHM"]},{"type":"SECTION","treeId":[19],"atomicBlockIds":[],"pageNumbers":[8],"properties":{},"children":[{"type":"HEADLINE","treeId":[19,0],"atomicBlockIds":[80],"pageNumbers":[8],"properties":{},"children":[],"engines":["ALGORITHM","OUTLINE"]},{"type":"PARAGRAPH","treeId":[19,1],"atomicBlockIds":[81],"pageNumbers":[8],"properties":{},"children":[],"engines":["ALGORITHM"]}],"engines":["ALGORITHM"]},{"type":"SECTION","treeId":[20],"atomicBlockIds":[],"pageNumbers":[8],"properties":{},"children":[{"type":"HEADLINE","treeId":[20,0],"atomicBlockIds":[82],"pageNumbers":[8],"properties":{},"children":[],"engines":["ALGORITHM","OUTLINE"]},{"type":"PARAGRAPH","treeId":[20,1],"atomicBlockIds":[83],"pageNumbers":[8],"properties":{},"children":[],"engines":["ALGORITHM"]},{"type":"PARAGRAPH","treeId":[20,2],"atomicBlockIds":[84],"pageNumbers":[8],"properties":{},"children":[],"engines":["ALGORITHM"]}],"engines":["ALGORITHM"]},{"type":"SECTION","treeId":[21],"atomicBlockIds":[],"pageNumbers":[9],"properties":{},"children":[{"type":"HEADLINE","treeId":[21,0],"atomicBlockIds":[85],"pageNumbers":[9],"properties":{},"children":[],"engines":["ALGORITHM","OUTLINE"]},{"type":"PARAGRAPH","treeId":[21,1],"atomicBlockIds":[86],"pageNumbers":[9],"properties":{},"children":[],"engines":["ALGORITHM"]},{"type":"PARAGRAPH","treeId":[21,2],"atomicBlockIds":[87],"pageNumbers":[9],"properties":{},"children":[],"engines":["ALGORITHM"]}],"engines":["ALGORITHM"]},{"type":"SECTION","treeId":[22],"atomicBlockIds":[],"pageNumbers":[9],"properties":{},"children":[{"type":"HEADLINE","treeId":[22,0],"atomicBlockIds":[88],"pageNumbers":[9],"properties":{},"children":[],"engines":["ALGORITHM","OUTLINE"]},{"type":"PARAGRAPH","treeId":[22,1],"atomicBlockIds":[89],"pageNumbers":[9],"properties":{},"children":[],"engines":["ALGORITHM"]},{"type":"PARAGRAPH","treeId":[22,2],"atomicBlockIds":[90],"pageNumbers":[9],"properties":{},"children":[],"engines":["ALGORITHM"]}],"engines":["ALGORITHM"]},{"type":"SECTION","treeId":[23],"atomicBlockIds":[],"pageNumbers":[9],"properties":{},"children":[{"type":"HEADLINE","treeId":[23,0],"atomicBlockIds":[91],"pageNumbers":[9],"properties":{},"children":[],"engines":["ALGORITHM","OUTLINE"]},{"type":"PARAGRAPH","treeId":[23,1],"atomicBlockIds":[92],"pageNumbers":[9],"properties":{},"children":[],"engines":["ALGORITHM"]},{"type":"IMAGE","treeId":[23,2],"atomicBlockIds":[93],"pageNumbers":[9],"properties":{"representationHash":"FFFAF144801140802FFFFFFFF","position":"68.000000;472.000000;139.000000;61.000000","id":"90773d6509cedfcc7131235325d510e6","imageType":"SIGNATURE","transparent":"true"},"children":[],"engines":["ALGORITHM"]},{"type":"IMAGE","treeId":[23,3],"atomicBlockIds":[94],"pageNumbers":[9],"properties":{"representationHash":"FF300FDF3F78F1E78F1EFCFFF","position":"186.000000;217.000000;198.000000;142.000000","id":"92c8f8d848e734c10c1376b4a97b7b26","imageType":"LOGO","transparent":"false"},"children":[],"engines":["ALGORITHM"]},{"type":"IMAGE","treeId":[23,4],"atomicBlockIds":[95],"pageNumbers":[9],"properties":{"representationHash":"FFFF8F3E3C70FDE9DB9FFFFFF","position":"319.000000;471.000000;157.000000;73.000000","id":"6c1fea09a2ccdca17cf7c9d903ae781e","imageType":"SIGNATURE","transparent":"true"},"children":[],"engines":["ALGORITHM"]}],"engines":["ALGORITHM"]},{"type":"HEADER","treeId":[24],"atomicBlockIds":[96],"pageNumbers":[1],"properties":{},"children":[],"engines":["ALGORITHM"]},{"type":"HEADER","treeId":[25],"atomicBlockIds":[97],"pageNumbers":[2],"properties":{},"children":[],"engines":["ALGORITHM"]},{"type":"HEADER","treeId":[26],"atomicBlockIds":[98],"pageNumbers":[3],"properties":{},"children":[],"engines":["ALGORITHM"]},{"type":"HEADER","treeId":[27],"atomicBlockIds":[99],"pageNumbers":[4],"properties":{},"children":[],"engines":["ALGORITHM"]},{"type":"HEADER","treeId":[28],"atomicBlockIds":[100],"pageNumbers":[5],"properties":{},"children":[],"engines":["ALGORITHM"]},{"type":"HEADER","treeId":[29],"atomicBlockIds":[101],"pageNumbers":[6],"properties":{},"children":[],"engines":["ALGORITHM"]},{"type":"HEADER","treeId":[30],"atomicBlockIds":[102],"pageNumbers":[7],"properties":{},"children":[],"engines":["ALGORITHM"]},{"type":"HEADER","treeId":[31],"atomicBlockIds":[103],"pageNumbers":[8],"properties":{},"children":[],"engines":["ALGORITHM"]},{"type":"HEADER","treeId":[32],"atomicBlockIds":[104],"pageNumbers":[9],"properties":{},"children":[],"engines":["ALGORITHM"]},{"type":"FOOTER","treeId":[33],"atomicBlockIds":[105],"pageNumbers":[1],"properties":{},"children":[],"engines":["ALGORITHM"]},{"type":"FOOTER","treeId":[34],"atomicBlockIds":[106],"pageNumbers":[2],"properties":{},"children":[],"engines":["ALGORITHM"]},{"type":"FOOTER","treeId":[35],"atomicBlockIds":[107],"pageNumbers":[3],"properties":{},"children":[],"engines":["ALGORITHM"]},{"type":"FOOTER","treeId":[36],"atomicBlockIds":[108],"pageNumbers":[4],"properties":{},"children":[],"engines":["ALGORITHM"]},{"type":"FOOTER","treeId":[37],"atomicBlockIds":[109],"pageNumbers":[5],"properties":{},"children":[],"engines":["ALGORITHM"]},{"type":"FOOTER","treeId":[38],"atomicBlockIds":[110],"pageNumbers":[6],"properties":{},"children":[],"engines":["ALGORITHM"]},{"type":"FOOTER","treeId":[39],"atomicBlockIds":[111],"pageNumbers":[7],"properties":{},"children":[],"engines":["ALGORITHM"]},{"type":"FOOTER","treeId":[40],"atomicBlockIds":[112],"pageNumbers":[8],"properties":{},"children":[],"engines":["ALGORITHM"]},{"type":"FOOTER","treeId":[41],"atomicBlockIds":[113],"pageNumbers":[9],"properties":{},"children":[],"engines":["ALGORITHM"]}],"engines":["ALGORITHM"]}} \ No newline at end of file diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/resources/files/oldDocumentData/old.DOCUMENT_TEXT.json b/redaction-service-v1/redaction-service-server-v1/src/test/resources/files/oldDocumentData/old.DOCUMENT_TEXT.json new file mode 100644 index 00000000..31dc949c --- /dev/null +++ b/redaction-service-v1/redaction-service-server-v1/src/test/resources/files/oldDocumentData/old.DOCUMENT_TEXT.json @@ -0,0 +1 @@ +[{"id":0,"page":1,"searchText":"Rule 0: Expand CBI Authors with firstname initials ","numberOnPage":1,"start":0,"end":51,"lineBreaks":[]},{"id":1,"page":1,"searchText":"F. Lastname, J. Doe, M. Mustermann Lastname M., Doe J. Mustermann M. ","numberOnPage":2,"start":51,"end":120,"lineBreaks":[35]},{"id":2,"page":1,"searchText":"Rule 1/2: Redact CBI Authors based on Dict ","numberOnPage":3,"start":120,"end":163,"lineBreaks":[]},{"id":3,"page":1,"searchText":"Redact when Vertebrate Study is Yes Redact when Vertebrate Study is No ","numberOnPage":4,"start":163,"end":234,"lineBreaks":[36]},{"id":4,"page":1,"searchText":"David Ksenia Max Mustermann Ranya Eikenboom Charalampos Schenk Tanja Schmitt ← should not be annotated, not in Dictionary ","numberOnPage":5,"start":234,"end":356,"lineBreaks":[13,28,44,63]},{"id":5,"page":1,"searchText":"","numberOnPage":6,"start":356,"end":356,"lineBreaks":[]},{"id":6,"page":2,"searchText":"Rule 3/4: Redact (not) CBI Add/ress based on Dict ","numberOnPage":1,"start":356,"end":406,"lineBreaks":[]},{"id":7,"page":2,"searchText":"Dont Redact (mark as skipped) when Vertebrate Study is No Redact when Vertebrate Study is Yes ","numberOnPage":2,"start":406,"end":500,"lineBreaks":[58]},{"id":8,"page":2,"searchText":"Warnsveld, 7232 CX Warnsveld, Netherlands, NL Institut Industries, 33 Rue Jean Baffier, 18000 Bourges, France, FR 4-6 Chem. des Varennes, 18300 Saint-Satur, France, FR Lesdo Industries, Chäppelisträssli, 6078 Lungern, Switzerland Shlissel'burgskaya Ulitsa, Nizhny Novgorod Oblast, Russia, 603034, RU Karl Johans Gate 11, 0154 Oslo, Norway, NOR ← should not be annotated, not in Dictionary ","numberOnPage":3,"start":500,"end":889,"lineBreaks":[46,114,168,230,300]},{"id":9,"page":2,"searchText":"Rule 5: Do not redact genitive CBI_authors (Entries based on Dict) ","numberOnPage":4,"start":889,"end":956,"lineBreaks":[]},{"id":10,"page":2,"searchText":"Expand to Hint Clarissa’s Donut ← not added to Dict, should be not annotated Simpson's Tower ← added to Authors-Dict, should be annotated ","numberOnPage":5,"start":956,"end":1094,"lineBreaks":[15,77]},{"id":11,"page":2,"searchText":"Rule 6-11 (Authors Table) ","numberOnPage":6,"start":1094,"end":1120,"lineBreaks":[]},{"id":12,"page":2,"searchText":"Redact when Vertebrate Study is Yes Redact when Vertebrate Study is No ","numberOnPage":7,"start":1120,"end":1191,"lineBreaks":[36]},{"id":13,"page":2,"searchText":"Reference No ","numberOnPage":8,"start":1191,"end":1204,"lineBreaks":[]},{"id":14,"page":2,"searchText":"Author(s) ","numberOnPage":9,"start":1204,"end":1214,"lineBreaks":[]},{"id":15,"page":2,"searchText":"Year ","numberOnPage":10,"start":1214,"end":1219,"lineBreaks":[]},{"id":16,"page":2,"searchText":"Title ","numberOnPage":11,"start":1219,"end":1225,"lineBreaks":[]},{"id":17,"page":2,"searchText":"Laboratory ","numberOnPage":12,"start":1225,"end":1236,"lineBreaks":[]},{"id":18,"page":2,"searchText":"BR2 /2 ","numberOnPage":13,"start":1236,"end":1243,"lineBreaks":[]},{"id":19,"page":2,"searchText":"Michael N. ","numberOnPage":14,"start":1243,"end":1254,"lineBreaks":[]},{"id":20,"page":2,"searchText":"1998 ","numberOnPage":15,"start":1254,"end":1259,"lineBreaks":[]},{"id":21,"page":2,"searchText":"The role of physical education in the school system. ","numberOnPage":16,"start":1259,"end":1312,"lineBreaks":[45]},{"id":22,"page":2,"searchText":"Weyland Industries ","numberOnPage":17,"start":1312,"end":1331,"lineBreaks":[]},{"id":23,"page":2,"searchText":"BR3 /5 ","numberOnPage":18,"start":1331,"end":1338,"lineBreaks":[]},{"id":24,"page":2,"searchText":"Funnarie B. ","numberOnPage":19,"start":1338,"end":1350,"lineBreaks":[]},{"id":25,"page":2,"searchText":"2001 ","numberOnPage":20,"start":1350,"end":1355,"lineBreaks":[]},{"id":26,"page":2,"searchText":"It should be illegal to produce and sell tobacco ","numberOnPage":21,"start":1355,"end":1404,"lineBreaks":[41]},{"id":27,"page":2,"searchText":"Authentic Diagnostics ","numberOnPage":22,"start":1404,"end":1426,"lineBreaks":[]},{"id":28,"page":2,"searchText":"ZZ/12 ","numberOnPage":23,"start":1426,"end":1432,"lineBreaks":[]},{"id":29,"page":2,"searchText":"Feuer A. ","numberOnPage":24,"start":1432,"end":1441,"lineBreaks":[]},{"id":30,"page":2,"searchText":"1989 ","numberOnPage":25,"start":1441,"end":1446,"lineBreaks":[]},{"id":31,"page":2,"searchText":"Social media is the real cause of teenage depression. ","numberOnPage":26,"start":1446,"end":1500,"lineBreaks":[42]},{"id":32,"page":2,"searchText":"Tyrell Corporation ","numberOnPage":27,"start":1500,"end":1519,"lineBreaks":[]},{"id":33,"page":3,"searchText":"Rule 12/13: Redact/Hint if CTL or BL was found ","numberOnPage":1,"start":1519,"end":1566,"lineBreaks":[]},{"id":34,"page":3,"searchText":"Redact when Vertebrate Study is Yes Hint when Vertebrate Study is No CTL/without dictionary entry CTL without Slash BL/without dictionary entry BL without Slash ","numberOnPage":2,"start":1566,"end":1727,"lineBreaks":[36,69,98,116,144]},{"id":35,"page":3,"searchText":"CTL/with dictionary entry 1234 with Slash CTL with dictionary entry 5678 without Slash BL/with dictionary entry 1234 with Slash BL with dictionary entry 5678 without Slash ","numberOnPage":3,"start":1727,"end":1899,"lineBreaks":[42,87,128]},{"id":36,"page":3,"searchText":"Rule 14/15: Redact and add recommendation for et al. ","numberOnPage":4,"start":1899,"end":1952,"lineBreaks":[]},{"id":37,"page":3,"searchText":"Redact Term “Desiree”, “Melanie” and add to Recommendation CBI Authors if Vertebrate Study is Yes & No Lorem ipsum dolor sit amet, consectetur adipiscing elit Desiree et al sed do eiusmod tempor incididunt ut labore et dolore magna aliqua Melanie et al. Reference No 12345 Lorem ipsum. ","numberOnPage":5,"start":1952,"end":2238,"lineBreaks":[103,206]},{"id":38,"page":3,"searchText":"Rule 16/17: Add recommendation for Addresses in Test Organism/Animals sections ","numberOnPage":6,"start":2238,"end":2317,"lineBreaks":[70]},{"id":39,"page":3,"searchText":"Recommend only if Vertebrate Study is Yes, else do nothing Lorem ipsum dolor sit Species: Mouse; Source: Stark Industries ","numberOnPage":7,"start":2317,"end":2439,"lineBreaks":[59,105]},{"id":40,"page":3,"searchText":"Rule 16/17 (additional) negative Test; missing first Key ","numberOnPage":8,"start":2439,"end":2496,"lineBreaks":[]},{"id":41,"page":3,"searchText":"Nothing should happen because of missing first/second keyword according to the rules Dont redact here because of missing first key; Source: Omni Consumer Products Dont redact here because missing first keyword; Source Resources Development Administration ","numberOnPage":9,"start":2496,"end":2751,"lineBreaks":[85,163]},{"id":42,"page":3,"searchText":"Rule 16/17 (additional) negative Test; missing second Key ","numberOnPage":10,"start":2751,"end":2809,"lineBreaks":[]},{"id":43,"page":4,"searchText":"Rule 18: Do not redact Names and Addresses if Published Information found ","numberOnPage":1,"start":2809,"end":2883,"lineBreaks":[68]},{"id":44,"page":4,"searchText":"Do not redact Names and Addresses if Published Information found Lorem ipsum dolor sit amet Oxford University Press in voluptate velit esse cillum. ","numberOnPage":2,"start":2883,"end":3031,"lineBreaks":[65]},{"id":45,"page":4,"searchText":"Iakovos Geiger, Julian Ritter, Asya Lyon, Carina Madsen, Alexandra Häusler, Hanke Mendel, Ranya Eikenboom. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Min Kwok, Jun K., Tu Wong, Qiang Suen, Zhou Mah, Ning Liu, Lei W. Huang, Ru X. Wu ","numberOnPage":3,"start":3031,"end":3331,"lineBreaks":[96,197,291]},{"id":46,"page":4,"searchText":"Rule 19/20: Redacted PII Personal Identification Information based on Dict ","numberOnPage":4,"start":3331,"end":3406,"lineBreaks":[]},{"id":47,"page":4,"searchText":"Redact when Vertebrate Study is Yes Redact when Vertebrate Study is No Naka-27 Aomachi, Nomi, Ishikawa 923-1101, Japan, JP Sude Halide Nurullah Özgür U. Reyhan B. Rahim C. J. Alfred Xinyi Y. Tao Clara Siegfried ← not added to Dict, should be not annotated ","numberOnPage":5,"start":3406,"end":3662,"lineBreaks":[36,71,123,144,160,169,182,195]},{"id":48,"page":4,"searchText":"Rule 21/22: Redact Emails by RegEx ","numberOnPage":6,"start":3662,"end":3697,"lineBreaks":[]},{"id":49,"page":4,"searchText":"Redact when Vertebrate Study is Yes Redact when Vertebrate Study is No Duis aute irure dolor in library@outlook.com reprehenderit in voluptate gordonjcp@msn.com velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint dinther@comcast.net occaecat cupidatat non proident, sunt in kawasaki@me.com culpa qui officia deserunt mollit anim id est laborum. ","numberOnPage":7,"start":3697,"end":4056,"lineBreaks":[36,71,167,270]},{"id":50,"page":5,"searchText":"Rule 23/24: Redact contact information (contains \"Contact point:\") ","numberOnPage":1,"start":4056,"end":4123,"lineBreaks":[]},{"id":51,"page":5,"searchText":"Redact when Vertebrate Study is Yes Redact when Vertebrate Study is No “Contact-Information was found should be appears” ","numberOnPage":2,"start":4123,"end":4244,"lineBreaks":[36,71]},{"id":52,"page":5,"searchText":"Description Text ","numberOnPage":3,"start":4244,"end":4261,"lineBreaks":[]},{"id":53,"page":5,"searchText":"Contact Point ","numberOnPage":4,"start":4261,"end":4275,"lineBreaks":[]},{"id":54,"page":5,"searchText":"Duis aute irure dolor in reprehenderit in voluptate velit esse cillum Contact Point dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. ","numberOnPage":5,"start":4275,"end":4503,"lineBreaks":[70,132,200]},{"id":55,"page":5,"searchText":"Contact point: Central Research Industry Phone: +49 2113 2311 563 Fax: +49 2113 2311 560 Tel.: +81 764770164 Tel: +81 6653 44563 E-mail: Seriknowmobil@co.uk Email: maximiliamschmitt@arcor.de e-mail: maximiliamschmitt@t-online.de E-mail address: example@mail.com Contact: Maximiliam Schmitt Telephone number: +27414328992 Telephone No: +274 1432 8991 Fax number: +274 1432 8990 Telephone: +274 34223331 Phone No. +274 1432 8933 Contact: 493 1223 4592 European contact: European Central Institute Alternative contact: Emilia Lockhart Alternative contact: ","numberOnPage":6,"start":4503,"end":5056,"lineBreaks":[41,66,89,109,129,157,191,229,262,290,321,350,377,402,427,450,495,532]},{"id":56,"page":5,"searchText":"Cyberdyne Systems Tower Defense 121a Hong Kong, BT District ","numberOnPage":7,"start":5056,"end":5116,"lineBreaks":[18,37]},{"id":57,"page":6,"searchText":"Rule 25/26: Redact contact information (contains \"Applicant\" as Headline or Text) ","numberOnPage":1,"start":5116,"end":5198,"lineBreaks":[73]},{"id":58,"page":6,"searchText":"Redact when Vertebrate Study is Yes Redact when Vertebrate Study is No “Applicant Information was found should be appears” ","numberOnPage":2,"start":5198,"end":5321,"lineBreaks":[36,71]},{"id":59,"page":6,"searchText":"Applicant ","numberOnPage":3,"start":5321,"end":5331,"lineBreaks":[]},{"id":60,"page":6,"searchText":"Name: Soylent Corporation Contact point: Riddley Scott Address: 359-21 Huam-dong Yongsan-gu Seoul, South Korea Phone: +82 122 34188 Fax: +82 122 34180 E-mail: food-industry@korea.com Contact: This is a special case, everything between this and the next keyword should be redacted Tel.: +275 5678 1234 132 ","numberOnPage":4,"start":5331,"end":5636,"lineBreaks":[26,55,81,92,111,132,151,183,253,280]},{"id":61,"page":6,"searchText":"Description Text ","numberOnPage":5,"start":5636,"end":5653,"lineBreaks":[]},{"id":62,"page":6,"searchText":"Applicant ","numberOnPage":6,"start":5653,"end":5663,"lineBreaks":[]},{"id":63,"page":6,"searchText":"Duis aute irure dolor in reprehenderit in voluptate velit esse cillum Contact Point dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. ","numberOnPage":7,"start":5663,"end":5891,"lineBreaks":[70,132,200]},{"id":64,"page":6,"searchText":"Contact point: Central Research Industry Phone: +49 2113 2311 563 Fax: +49 2113 2311 560 Tel.: +81 764770164 Tel: +81 6653 44563 E-mail: Seriknowmobil@co.uk Email: maximiliamschmitt@arcor.de e-mail: maximiliamschmitt@t-online.de E-mail address: example@mail.com Contact: Maximiliam Schmitt Telephone number: +27414328992 Telephone No: +274 1432 8991 Fax number: +274 1432 8990 Telephone: +274 34223331 Phone No. +274 1432 8933 Contact: 493 1223 4592 European contact: European Central Institute Alternative contact: Emilia Lockhart Alternative contact: ","numberOnPage":8,"start":5891,"end":6444,"lineBreaks":[41,66,89,109,129,157,191,229,262,290,321,350,377,402,427,450,495,532]},{"id":65,"page":6,"searchText":"Cyberdyne Systems Tower Defense 121a Hong Kong, BT District ","numberOnPage":9,"start":6444,"end":6504,"lineBreaks":[18,37]},{"id":66,"page":7,"searchText":"Rule 27/28: Redact contact Information (contains Producer) ","numberOnPage":1,"start":6504,"end":6563,"lineBreaks":[]},{"id":67,"page":7,"searchText":"Redact when Vertebrate Study is Yes Redact when Vertebrate Study is No “Producer was found” should be appears ","numberOnPage":2,"start":6563,"end":6673,"lineBreaks":[36,71]},{"id":68,"page":7,"searchText":"Producer of the plant production ","numberOnPage":3,"start":6673,"end":6706,"lineBreaks":[]},{"id":69,"page":7,"searchText":"Name: Umbrella Corporation Contact: Jill Valentine Address: 359-21 Huam-dong Yongsan-gu Seoul, South Korea Phone: +82 122 34188 Fax: +82 122 34180 E-mail: pharma-industry@korea.com ","numberOnPage":4,"start":6706,"end":6887,"lineBreaks":[27,51,77,88,107,128,147]},{"id":70,"page":7,"searchText":"Rule 29/30/31/32: If Text contains \"AUTHORS:\" and \"COMPLETION DATES\" but not \"STUDY COMPLETION DATES\", then Redact between both ","numberOnPage":5,"start":6887,"end":7015,"lineBreaks":[62,123]},{"id":71,"page":7,"searchText":"Redact when Vertebrate Study is Yes Redact when Vertebrate Study is No ","numberOnPage":6,"start":7015,"end":7086,"lineBreaks":[36]},{"id":72,"page":7,"searchText":"Study Report___ AUTHOR(S): Dr. Alan Grant ","numberOnPage":7,"start":7086,"end":7128,"lineBreaks":[16]},{"id":73,"page":7,"searchText":"COMPLETION DATE: 02 December 1997 ","numberOnPage":8,"start":7128,"end":7162,"lineBreaks":[]},{"id":74,"page":7,"searchText":"Rule 29/30/31/32: (additional) negative Test for Study completion dates ","numberOnPage":9,"start":7162,"end":7234,"lineBreaks":[]},{"id":75,"page":7,"searchText":"No Redaction should be appears here ","numberOnPage":10,"start":7234,"end":7270,"lineBreaks":[]},{"id":76,"page":7,"searchText":"Study Report___ AUTHOR(S): Dr. Alan Grant ","numberOnPage":11,"start":7270,"end":7312,"lineBreaks":[16]},{"id":77,"page":8,"searchText":"Rule 33/34: If Text contains \"Performing Lab\" and \"Lab Project ID\", then Redact everything between ","numberOnPage":1,"start":7312,"end":7411,"lineBreaks":[73]},{"id":78,"page":8,"searchText":"Redact when Vertebrate Study is Yes Redact when Vertebrate Study is No ","numberOnPage":2,"start":7411,"end":7482,"lineBreaks":[36]},{"id":79,"page":8,"searchText":"Study Report___ PERFORMING LABORATORY: Umbrella Corporation LABORATORY PROJECT ID: Number 20201/33991/ERZAT/21 ","numberOnPage":3,"start":7482,"end":7593,"lineBreaks":[16,60]},{"id":80,"page":8,"searchText":"Rule 35/36/37/38: ?? ","numberOnPage":4,"start":7593,"end":7614,"lineBreaks":[]},{"id":81,"page":8,"searchText":"Tba ","numberOnPage":5,"start":7614,"end":7618,"lineBreaks":[]},{"id":82,"page":8,"searchText":"Rule 39: Purity Hint ","numberOnPage":6,"start":7618,"end":7639,"lineBreaks":[]},{"id":83,"page":8,"searchText":"Add Purity as Hint when Percent-Numbers is there ","numberOnPage":7,"start":7639,"end":7688,"lineBreaks":[]},{"id":84,"page":8,"searchText":"Test Item: Soda Purity: 45% ← should be Hint Purity: <45% ← should be Hint Purity: >45% ← should be Hint Purity: 101% ← should ne be Hint because >100 % is not possible Purity: =>45% ← should be not Hint because additional symbols Purity: =<45% ← should be not Hint because additional symbols Purity: aa 45% ← should be not Hint because additional symbols Purity: 45% aa ← should be not Hint because additional symbols Purity: aa45% ← should be not Hint because additional symbols Purity: 45%aa ← should be not Hint because additional symbols Product-Code: EAK-L443 purity: 99% ← not Hint because case sensitive purity: >99% ← not Hint because case sensitive purity: <99% ← not Hint because case sensitive Supplier: GreenForce ","numberOnPage":8,"start":7688,"end":8415,"lineBreaks":[16,45,75,105,169,231,293,356,419,481,543,566,612,659,706]},{"id":85,"page":9,"searchText":"Rule 40: Ignore Dossier-Redaction if Confidentiality is not set ","numberOnPage":1,"start":8415,"end":8479,"lineBreaks":[]},{"id":86,"page":9,"searchText":"Dont redact Dossier-Redaction if Confidentiality is not set in file attributes ","numberOnPage":2,"start":8479,"end":8558,"lineBreaks":[]},{"id":87,"page":9,"searchText":"Excepteur sint occaecat cupidatat non proident, myDossierRedaction sunt in culpa qui officia deserunt mollit anim id est laborum. ","numberOnPage":3,"start":8558,"end":8688,"lineBreaks":[102]},{"id":88,"page":9,"searchText":"Rule 41/42: Redact Signatures ","numberOnPage":4,"start":8688,"end":8718,"lineBreaks":[]},{"id":89,"page":9,"searchText":"Redact when Vertebrate Study is Yes Redact when Vertebrate Study is No ","numberOnPage":5,"start":8718,"end":8789,"lineBreaks":[36]},{"id":90,"page":9,"searchText":"__________________________ __________________________ Signed by: Dilara Sonnenschein Signed by: Tobias Müller ","numberOnPage":6,"start":8789,"end":8899,"lineBreaks":[54]},{"id":91,"page":9,"searchText":"Rule 43: Redact Logo ","numberOnPage":7,"start":8899,"end":8920,"lineBreaks":[]},{"id":92,"page":9,"searchText":"Redact Logo only if Vertebrate Study is Yes, else do nothing (skipped) ","numberOnPage":8,"start":8920,"end":8991,"lineBreaks":[]},{"id":93,"page":9,"searchText":"","numberOnPage":9,"start":8991,"end":8991,"lineBreaks":[]},{"id":94,"page":9,"searchText":"","numberOnPage":10,"start":8991,"end":8991,"lineBreaks":[]},{"id":95,"page":9,"searchText":"","numberOnPage":11,"start":8991,"end":8991,"lineBreaks":[]},{"id":96,"page":1,"searchText":"This is a Page-Header ","numberOnPage":0,"start":8991,"end":9013,"lineBreaks":[]},{"id":97,"page":2,"searchText":"This is a Page-Header ","numberOnPage":0,"start":9013,"end":9035,"lineBreaks":[]},{"id":98,"page":3,"searchText":"This is a Page-Header ","numberOnPage":0,"start":9035,"end":9057,"lineBreaks":[]},{"id":99,"page":4,"searchText":"This is a Page-Header ","numberOnPage":0,"start":9057,"end":9079,"lineBreaks":[]},{"id":100,"page":5,"searchText":"This is a Page-Header ","numberOnPage":0,"start":9079,"end":9101,"lineBreaks":[]},{"id":101,"page":6,"searchText":"This is a Page-Header ","numberOnPage":0,"start":9101,"end":9123,"lineBreaks":[]},{"id":102,"page":7,"searchText":"This is a Page-Header ","numberOnPage":0,"start":9123,"end":9145,"lineBreaks":[]},{"id":103,"page":8,"searchText":"This is a Page-Header ","numberOnPage":0,"start":9145,"end":9167,"lineBreaks":[]},{"id":104,"page":9,"searchText":"This is a Page-Header ","numberOnPage":0,"start":9167,"end":9189,"lineBreaks":[]},{"id":105,"page":1,"searchText":"This is a Page-Footer ","numberOnPage":7,"start":9189,"end":9211,"lineBreaks":[]},{"id":106,"page":2,"searchText":"This is a Page-Footer ","numberOnPage":28,"start":9211,"end":9233,"lineBreaks":[]},{"id":107,"page":3,"searchText":"Dont redact here because of missing second key; Species: Mouse; Omni Consumer Products Dont redact here because missing second keyword; Species: Mouse, Resources Development Administration This is a Page-Footer ","numberOnPage":11,"start":9233,"end":9444,"lineBreaks":[87,174,189]},{"id":108,"page":4,"searchText":"This is a Page-Footer ","numberOnPage":8,"start":9444,"end":9466,"lineBreaks":[]},{"id":109,"page":5,"searchText":"This is a Page-Footer ","numberOnPage":8,"start":9466,"end":9488,"lineBreaks":[]},{"id":110,"page":6,"searchText":"This is a Page-Footer ","numberOnPage":10,"start":9488,"end":9510,"lineBreaks":[]},{"id":111,"page":7,"searchText":"STUDY COMPLETION DATE: 02 December 1997 This is a Page-Footer ","numberOnPage":12,"start":9510,"end":9572,"lineBreaks":[40]},{"id":112,"page":8,"searchText":"This is a Page-Footer ","numberOnPage":9,"start":9572,"end":9594,"lineBreaks":[]},{"id":113,"page":9,"searchText":"This is a Page-Footer ","numberOnPage":12,"start":9594,"end":9616,"lineBreaks":[]}] \ No newline at end of file diff --git a/redaction-service-v1/rules-management/src/main/resources/all_redact_manager_rules.drl b/redaction-service-v1/rules-management/src/main/resources/all_redact_manager_rules.drl index 054174a8..2e7944f0 100644 --- a/redaction-service-v1/rules-management/src/main/resources/all_redact_manager_rules.drl +++ b/redaction-service-v1/rules-management/src/main/resources/all_redact_manager_rules.drl @@ -55,7 +55,7 @@ import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.entitymapped.ManualRecategorization; import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.entitymapped.ManualLegalBasisChange; -import com.knecon.fforesight.service.layoutparser.internal.api.data.redaction.LayoutEngine; +import com.knecon.fforesight.service.layoutparser.internal.api.data.redaction.LayoutEngineProto.LayoutEngine; global Document document global EntityCreationService entityCreationService diff --git a/redaction-service-v1/rules-management/src/main/resources/all_rules_documine.drl b/redaction-service-v1/rules-management/src/main/resources/all_rules_documine.drl index 0498e7b5..871c748a 100644 --- a/redaction-service-v1/rules-management/src/main/resources/all_rules_documine.drl +++ b/redaction-service-v1/rules-management/src/main/resources/all_rules_documine.drl @@ -47,7 +47,7 @@ import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.entitymapped.ManualRecategorization; import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.entitymapped.ManualLegalBasisChange; -import com.knecon.fforesight.service.layoutparser.internal.api.data.redaction.LayoutEngine; +import com.knecon.fforesight.service.layoutparser.internal.api.data.redaction.LayoutEngineProto.LayoutEngine; global Document document global EntityCreationService entityCreationService