From ccb2f875dae72325d4f7509de181cc514978a568 Mon Sep 17 00:00:00 2001 From: LucaDulz Date: Wed, 28 Aug 2024 15:01:50 +0000 Subject: [PATCH 01/20] copy upload files into branch --- adit/core/widgets.py | 3 + adit/settings/base.py | 1 + adit/upload/__init__.py | 0 adit/upload/admin.py | 6 + adit/upload/apps.py | 29 + adit/upload/forms.py | 90 + adit/upload/migrations/0001_initial.py | 36 + adit/upload/migrations/__init__.py | 0 adit/upload/models.py | 17 + adit/upload/static/upload/upload.js | 360 + adit/upload/static/vendor/dcmjs.js | 23381 ++++++++++++++++ adit/upload/static/vendor/dcmjs.js.map | 1 + .../static/vendor/dicom-web-anonymizer.js | 2 + .../static/vendor/dicom-web-anonymizer.js.map | 1 + adit/upload/static/vendor/dicomweb-client.js | 1948 ++ .../static/vendor/dicomweb-client.js.map | 1 + .../templates/upload/upload_job_form.html | 70 + .../upload/upload_job_form_swappable.html | 2 + .../templates/upload/upload_layout.html | 17 + adit/upload/tests.py | 3 + adit/upload/tests/conftest.py | 10 + adit/upload/tests/integration/conftest.py | 51 + adit/upload/tests/integration/test_upload.py | 254 + adit/upload/tests/test_views.py | 21 + adit/upload/urls.py | 16 + adit/upload/views.py | 129 + adit/urls.py | 1 + globals.d.ts | 2 + jsconfig.json | 9 +- package-lock.json | 165 + package.json | 6 + tasks.py | 33 + 32 files changed, 26664 insertions(+), 1 deletion(-) create mode 100644 adit/upload/__init__.py create mode 100644 adit/upload/admin.py create mode 100644 adit/upload/apps.py create mode 100644 adit/upload/forms.py create mode 100644 adit/upload/migrations/0001_initial.py create mode 100644 adit/upload/migrations/__init__.py create mode 100644 adit/upload/models.py create mode 100644 adit/upload/static/upload/upload.js create mode 100644 adit/upload/static/vendor/dcmjs.js create mode 100644 adit/upload/static/vendor/dcmjs.js.map create mode 100644 adit/upload/static/vendor/dicom-web-anonymizer.js create mode 100644 adit/upload/static/vendor/dicom-web-anonymizer.js.map create mode 100644 adit/upload/static/vendor/dicomweb-client.js create mode 100644 adit/upload/static/vendor/dicomweb-client.js.map create mode 100644 adit/upload/templates/upload/upload_job_form.html create mode 100644 adit/upload/templates/upload/upload_job_form_swappable.html create mode 100644 adit/upload/templates/upload/upload_layout.html create mode 100644 adit/upload/tests.py create mode 100644 adit/upload/tests/conftest.py create mode 100644 adit/upload/tests/integration/conftest.py create mode 100644 adit/upload/tests/integration/test_upload.py create mode 100644 adit/upload/tests/test_views.py create mode 100644 adit/upload/urls.py create mode 100644 adit/upload/views.py create mode 100644 package-lock.json create mode 100644 package.json diff --git a/adit/core/widgets.py b/adit/core/widgets.py index 4353feb5..1b543560 100644 --- a/adit/core/widgets.py +++ b/adit/core/widgets.py @@ -13,7 +13,10 @@ def create_option(self, name, value, label, selected, index, subindex=None, attr dicom_node = value.instance if dicom_node.node_type == DicomNode.NodeType.SERVER: option["attrs"]["data-node_type"] = "server" + option["attrs"]["data-node_id"] = dicom_node.id elif dicom_node.node_type == DicomNode.NodeType.FOLDER: option["attrs"]["data-node_type"] = "folder" + option["attrs"]["data-node_id"] = dicom_node.id return option + diff --git a/adit/settings/base.py b/adit/settings/base.py index 2d8b1b2a..03739918 100644 --- a/adit/settings/base.py +++ b/adit/settings/base.py @@ -75,6 +75,7 @@ "adit.batch_transfer.apps.BatchTransferConfig", "adit.dicom_explorer.apps.DicomExplorerConfig", "adit.dicom_web.apps.DicomWebConfig", + "adit.upload.apps.UploadConfig", "channels", ] diff --git a/adit/upload/__init__.py b/adit/upload/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/adit/upload/admin.py b/adit/upload/admin.py new file mode 100644 index 00000000..21693c25 --- /dev/null +++ b/adit/upload/admin.py @@ -0,0 +1,6 @@ +from django.contrib import admin + +# Register your models here. +from .models import UploadSettings + +admin.site.register(UploadSettings, admin.ModelAdmin) diff --git a/adit/upload/apps.py b/adit/upload/apps.py new file mode 100644 index 00000000..56744864 --- /dev/null +++ b/adit/upload/apps.py @@ -0,0 +1,29 @@ +from django.apps import AppConfig + +SECTION_NAME = "DICOM Upload" + + +class UploadConfig(AppConfig): + default_auto_field = "django.db.models.BigAutoField" + name = "adit.upload" + + def ready(self): + register_app() + + +def register_app(): + from adit_radis_shared.common.site import MainMenuItem, register_main_menu_item + + register_main_menu_item( + MainMenuItem( + url_name="upload_create", + label=SECTION_NAME, + ) + ) + + +def create_app_settings(): + from .models import UploadSettings + + if not UploadSettings.objects.exists(): + UploadSettings.objects.create() diff --git a/adit/upload/forms.py b/adit/upload/forms.py new file mode 100644 index 00000000..379861a4 --- /dev/null +++ b/adit/upload/forms.py @@ -0,0 +1,90 @@ +from crispy_forms.helper import FormHelper +from crispy_forms.layout import Column, Div, Field, Layout, Row +from django import forms + +from adit.core.fields import DicomNodeChoiceField +from adit.core.validators import no_backslash_char_validator, no_control_chars_validator + + +class MultipleFileInput(forms.widgets.FileInput): + def __init__(self, attrs=None): + attrs = attrs or {} + attrs["onchange"] = "chooseFolder(event)" + attrs["webkitdirectory"] = True + attrs["directory"] = True + attrs["multiple"] = True + super().__init__(attrs) + + +class UploadForm(forms.Form): + pseudonym = forms.CharField( + required=True, + max_length=64, + validators=[no_backslash_char_validator, no_control_chars_validator], + label="Patient Pseudonym", + ) + + def __init__(self, *args, **kwargs): + self.user = kwargs.pop("user") + self.action = kwargs.pop("action") + + super().__init__(*args, **kwargs) + + self.fields["destination"] = DicomNodeChoiceField("destination", self.user) + self.fields["pseudonym"].required = True + self.fields["destination"].required = True + self.helper = FormHelper(self) + form_fields_layout = self.build_query_form_layout() + + # We swap the form using the htmx alpine-morph extension to retain the focus on the input + self.helper.layout = Layout( + Div( + form_fields_layout, + css_id="form_fields", + ), + ) + self.helper.form_action = "" + self.helper.attrs = { + "x-init": "initUploadForm($el)", + "id": "myForm", + "hx-ext": "alpine-morph", + "hx-post": "", + "method": "post", + "hx-trigger": "submit", + "hx-swap-oob": "true", + "action": "", + "novalidate": "", + "enctype": "multipart/form-data", + } + + def build_query_form_layout(self): + query_form_layout = Layout( + Div( + Row( + Column( + self.build_option_field( + "pseudonym", + ) + ), + Column( + Field( + "destination", + **{ + "x-init": "initDestination($el)", + "@change": "onDestinationChange($event)", + }, + ) + ), + ), + css_id="form_partial", + ) + ) + + return query_form_layout + + def build_option_field(self, field_name, additional_attrs=None): + attrs = {"@keydown.enter.prevent": ""} + if additional_attrs: + attrs = {**additional_attrs, **attrs} + + return Column(Field(field_name, **attrs)) diff --git a/adit/upload/migrations/0001_initial.py b/adit/upload/migrations/0001_initial.py new file mode 100644 index 00000000..b5c3796c --- /dev/null +++ b/adit/upload/migrations/0001_initial.py @@ -0,0 +1,36 @@ +# Generated by Django 5.0.7 on 2024-08-28 14:46 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ] + + operations = [ + migrations.CreateModel( + name='UploadPermissionSupport', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ], + options={ + 'permissions': [('can_upload_data', 'Can upload data')], + 'managed': False, + 'default_permissions': (), + }, + ), + migrations.CreateModel( + name='UploadSettings', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('locked', models.BooleanField(default=False)), + ('suspended', models.BooleanField(default=False)), + ], + options={ + 'verbose_name_plural': 'Upload settings', + }, + ), + ] diff --git a/adit/upload/migrations/__init__.py b/adit/upload/migrations/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/adit/upload/models.py b/adit/upload/models.py new file mode 100644 index 00000000..961ec718 --- /dev/null +++ b/adit/upload/models.py @@ -0,0 +1,17 @@ +from django.db import models + +from adit.core.models import DicomAppSettings + + +class UploadSettings(DicomAppSettings): + class Meta: + verbose_name_plural = "Upload settings" + + +class UploadPermissionSupport(models.Model): + class Meta: + managed = False + default_permissions = () + permissions = [ + ("can_upload_data", "Can upload data"), + ] diff --git a/adit/upload/static/upload/upload.js b/adit/upload/static/upload/upload.js new file mode 100644 index 00000000..fb1eeaf5 --- /dev/null +++ b/adit/upload/static/upload/upload.js @@ -0,0 +1,360 @@ +"use strict"; + +// Keep those variables in sync with the ones in the Django view +const UPLOAD_DESTINATION = "upload_destination"; +/** + * Alpine.js component for the selective transfer job form. + * @param {HTMLElement} formEl + * @returns {object} Alpine data model + */ + +function UploadJobForm(formEl) { + return { + isDropping: Boolean, + buttonVisible: Boolean, + stopUploadButtonVisible: Boolean, + fileCount: Number, + droppedFiles: Object, + uploadResultText: String, + stopUploadVar: Boolean, + pbVisible: String, + uploadCompleteTextVisible: String, + stopUploadButtonStyleDisplay: String, + + initUploadForm: function (destEl) { + document.body.addEventListener("chooseFolder", (e) => { + this.chooseFolder(); + }); + var button = formEl.querySelector("button#uploadButton"); + this.stopUploadVar = false; + this.stopUploadButtonVisible = false; + this.fileCount = 0; + // Add an event listener to the button + button.addEventListener("click", function () { + // Trigger the form submission when the button is clicked + var myForm = formEl.querySelector("form#myForm"); + if (myForm instanceof HTMLFormElement) { + htmx.trigger("#myForm", "submit"); + } + }); + }, + + initDestination: function (destEl) { + this._updateIsDestinationFolder(destEl); + }, + onDestinationChange: function (ev) { + this._updateIsDestinationFolder(ev.target); + + updatePreferences("upload", { + [UPLOAD_DESTINATION]: ev.target.value, + }); + }, + _updateIsDestinationFolder: function (destEl) { + const option = destEl.options[destEl.selectedIndex]; + this.isDestinationFolder = option.dataset.node_type === "folder"; + }, + + getFiles: function () { + var inputElement = formEl.querySelector("#fileselector"); + + if ( + inputElement instanceof HTMLInputElement && + inputElement.files.length > 0 + ) { + return inputElement.files; + } else if (this.droppedFiles.length > 0) { + const files = []; + for (const f of this.droppedFiles) { + files.push(f); + } + return files; + } else { + return []; + } + }, + + toggleUploadButtonVisibility: function () { + // Check if files are selected + const files = this.getFiles(); + this.buttonVisible = files.length > 0 ? true : false; + this.fileCount = files.length; + this.uploadCompleteTextVisible = false; + }, + clearFiles: function () { + var inputEl = formEl.querySelector("#fileselector"); + + if (inputEl instanceof HTMLInputElement) { + inputEl.value = null; + } + this.droppedFiles = []; + this.toggleUploadButtonVisibility(); + }, + + fileHandler: async function (fileObj, datasets) { + const arrayBuffer = await fileObj.arrayBuffer(); //await fileReader.readAsArrayBuffer(fileObj); + datasets.push(arrayBuffer); + }, + + chooseFolder: function () { + const files = this.getFiles(); + this.loadFiles(files); + }, + + loadFiles: async function (files) { + const destinationSelect = formEl.querySelector('[name="destination"]'); + + if (destinationSelect instanceof HTMLSelectElement) { + const selectedOption = + destinationSelect.options[destinationSelect.selectedIndex]; + var node_id = selectedOption.getAttribute("data-node_id"); + } + + if (files.length === 0) { + showToast("warning", "Sandbox", `No files selected.${files}`); + } else { + var datasets = []; + for (const fileEntry of files) { + await this.fileHandler(fileEntry, datasets); + } + + let status = 0; + let loadedFiles = 0; + + try { + const checker = await this.checkPatientIDs(datasets); + + if (checker) { + const anon = this.createAnonymizer(); + + this.buttonVisible = false; + this.stopUploadVar = false; + + for (const set of datasets) { + // Anonymize data and write back to bufferstream + const dicomData = dcmjs.data.DicomMessage.readFile(set, { + ignoreErrors: true, + }); + + await anon.anonymize(dicomData); + const anonymized_set = await dicomData.write(); + + this.pbVisible = true; + + this.stopUploadButtonVisible = true; + if (this.stopUploadVar) { + // Stop uploading if stop button is clicked + break; + } + + // Upload data to server + status = await uploadData({ + ["dataset"]: anonymized_set, + ["node_id"]: node_id, + }); + + if (status == 200) { + loadedFiles += 1; + const progBar = formEl.querySelector('[id="pb"]'); + + if (progBar instanceof HTMLProgressElement) { + progBar.value = (loadedFiles / datasets.length) * 100; + } + } else { + this.uploadResultText = "Upload Failed"; + this.pbVisible = false; + this.uploadCompleteTextVisible = true; + this.stopUploadButtonVisible = false; + break; + } + } + if (loadedFiles == datasets.length) { + this.finishUploadComplete(); + } else { + this.finishUploadIncomplete(); + } + } else { + this.uploadResultText = "Upload refused - Fehlerhafte Datensätze"; + this.buttonVisible = false; + this.uploadCompleteTextVisible = true; + } + } catch (e) { + this.uploadResultText = "Upload Failed due to an Error"; + this.buttonVisible = false; + this.uploadCompleteTextVisible = true; + console.error(e); + } + } + }, + + finishUploadComplete: function () { + this.uploadResultText = "Upload Successful!"; + this.stopUploadButtonVisible = false; + this.pbVisible = false; + this.uploadCompleteTextVisible = true; + + setTimeout(() => { + this.uploadCompleteTextVisible = false; + }, 5000); + }, + + stopUpload: function () { + this.stopUploadVar = true; + this.stopUploadButtonVisible = false; + + this.finishUploadIncomplete(); + }, + + finishUploadIncomplete: function () { + if (this.stopUploadVar) { + this.uploadResultText = "Upload Cancelled"; + } else { + this.uploadResultText = "Upload Failed"; + } + this.stopUploadButtonVisible = false; + this.pbVisible = false; + this.uploadCompleteTextVisible = true; + + setTimeout(() => { + this.uploadCompleteTextVisible = false; + }, 5000); + }, + + createAnonymizer: function () { + const pseudonym = formEl.querySelector('[name="pseudonym"]'); + var newPatientID = ""; + if (pseudonym instanceof HTMLInputElement) { + newPatientID = pseudonym.value; + } + + const anon = new Anonymizer( + newPatientID, + undefined, + undefined, + undefined, + undefined, + 123456789 + ); + + return anon; + }, + + retrieveFilefromFileEntry: async function (fileEntry) { + return new Promise(fileEntry.file.bind(fileEntry)); + }, + + readDirectory: function (item) { + const directoryReader = item.createReader(); + return new Promise(directoryReader.readEntries.bind(directoryReader)); + }, + + traverseDirectory: async function (item, files) { + if (item.isFile) { + const file = await this.retrieveFilefromFileEntry(item, files); + files.push(file); + } else { + const items = await this.readDirectory(item); + for (let item of items) { + await this.traverseDirectory(item, files); + } + } + }, + + handleDrop: async function (ev) { + const files = []; + this.uploadCompleteTextVisible = false; + const items = ev.dataTransfer.items; + + for (const item of items) { + const itemEntry = item.webkitGetAsEntry(); + if (itemEntry) { + await this.traverseDirectory(itemEntry, files); + } + } + + this.fileCount = files.length; + + if (files.length > 0) { + var inputElement = document.getElementById("fileselector"); + + if (inputElement instanceof HTMLInputElement) { + inputElement.value = null; + } + + this.buttonVisible = true; + this.droppedFiles = files; + } + }, + + checkPatientIDs: function (datasets) { + const patientIDs = new Map(); + const patientBirthdates = new Map(); + const patientNames = new Map(); + + for (const set of datasets) { + const dcm = dcmjs.data.DicomMessage.readFile(set, { + ignoreErrors: true, + }); + + const patientID = dcm.dict["00100020"]?.Value[0]; + if (patientID) { + patientIDs.set(patientID, (patientIDs.get(patientID) || 0) + 1); + } + + const patientName = dcm.dict["00100010"]?.Value[0]?.Alphabetic; + if (patientName) { + patientNames.set( + patientName, + (patientNames.get(patientName) || 0) + 1 + ); + } + + const patientBirthdate = dcm.dict["00100030"]?.Value[0]; + if (patientBirthdate) { + patientBirthdates.set( + patientBirthdate, + (patientBirthdates.get(patientBirthdate) || 0) + 1 + ); + } + } + + // Check if in a whole study are more than one PatientID, Name or Birthdate + return ( + patientIDs.size <= 1 && + patientNames.size <= 1 && + patientBirthdates.size <= 1 && + !patientIDs.has(-1) && + !patientNames.has(undefined) && + !patientBirthdates.has(undefined) + ); + }, + }; +} + +async function uploadData(data) { + const formData = new FormData(); + for (const key in data) { + const blob = new Blob([data[key]]); + formData.append(key, blob); + } + + const url = `/upload/data-upload/${data.node_id}/`; + + const request = new Request(url, { + method: "POST", + headers: { "X-CSRFToken": window.public.csrf_token }, + mode: "same-origin", // Do not send CSRF token to another domain. + body: formData, + }); + var status = 0; + + return fetch(request) + .then(async function (response) { + const text = await response.text(); + + return response.ok ? response.status : Promise.reject(new Error(text)); + }) + .catch(function (error) { + console.error(`Error: ${error.message || "Network error"}`); + return 500; + }); +} diff --git a/adit/upload/static/vendor/dcmjs.js b/adit/upload/static/vendor/dcmjs.js new file mode 100644 index 00000000..9215b923 --- /dev/null +++ b/adit/upload/static/vendor/dcmjs.js @@ -0,0 +1,23381 @@ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : + typeof define === 'function' && define.amd ? define(['exports'], factory) : + (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.dcmjs = {})); +})(this, (function (exports) { 'use strict'; + + var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}; + + function getDefaultExportFromCjs (x) { + return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x; + } + + var lib = {exports: {}}; + + /* + Copyright © 2018 Andrew Powell + + This Source Code Form is subject to the terms of the Mozilla Public + License, v. 2.0. If a copy of the MPL was not distributed with this + file, You can obtain one at http://mozilla.org/MPL/2.0/. + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of this Source Code Form. + */ + + const noop = () => {}; + const levels = Symbol('log-levels'); + const instance = Symbol('log-instance'); + + var MethodFactory_1 = class MethodFactory { + constructor(logger) { + this[instance] = logger; + this[levels] = { + TRACE: 0, + DEBUG: 1, + INFO: 2, + WARN: 3, + ERROR: 4, + SILENT: 5 + }; + } + + get levels() { + return this[levels]; + } + + get logger() { + return this[instance]; + } + + set logger(logger) { + this[instance] = logger; + } + + get methods() { + return Object.keys(this.levels) + .map((key) => key.toLowerCase()) + .filter((key) => key !== 'silent'); + } + + // eslint-disable-next-line class-methods-use-this + bindMethod(obj, methodName) { + const method = obj[methodName]; + if (typeof method.bind === 'function') { + return method.bind(obj); + } + + try { + return Function.prototype.bind.call(method, obj); + } catch (e) { + // Missing bind shim or IE8 + Modernizr, fallback to wrapping + return function result() { + // eslint-disable-next-line prefer-rest-params + return Function.prototype.apply.apply(method, [obj, arguments]); + }; + } + } + + distillLevel(level) { + let result = level; + + if (typeof result === 'string' && typeof this.levels[result.toUpperCase()] !== 'undefined') { + result = this.levels[result.toUpperCase()]; + } + + if (this.levelValid(result)) { + return result; + } + + return false; + } + + levelValid(level) { + if (typeof level === 'number' && level >= 0 && level <= this.levels.SILENT) { + return true; + } + + return false; + } + + /** + * Build the best logging method possible for this env + * Wherever possible we want to bind, not wrap, to preserve stack traces. + * Since we're targeting modern browsers, there's no need to wait for the + * console to become available. + */ + // eslint-disable-next-line class-methods-use-this + make(methodName) { + if (methodName === 'debug') { + // eslint-disable-next-line no-param-reassign + methodName = 'log'; + } + + /* eslint-disable no-console */ + if (typeof console[methodName] !== 'undefined') { + return this.bindMethod(console, methodName); + } else if (typeof console.log !== 'undefined') { + return this.bindMethod(console, 'log'); + } + + /* eslint-enable no-console */ + return noop; + } + + replaceMethods(logLevel) { + const level = this.distillLevel(logLevel); + + if (level == null) { + throw new Error(`loglevelnext: replaceMethods() called with invalid level: ${logLevel}`); + } + + if (!this.logger || this.logger.type !== 'LogLevel') { + throw new TypeError( + 'loglevelnext: Logger is undefined or invalid. Please specify a valid Logger instance.' + ); + } + + this.methods.forEach((methodName) => { + const { [methodName.toUpperCase()]: methodLevel } = this.levels; + + this.logger[methodName] = methodLevel < level ? noop : this.make(methodName); + }); + + // Define log.log as an alias for log.debug + this.logger.log = this.logger.debug; + } + }; + + /* + Copyright © 2018 Andrew Powell + + This Source Code Form is subject to the terms of the Mozilla Public + License, v. 2.0. If a copy of the MPL was not distributed with this + file, You can obtain one at http://mozilla.org/MPL/2.0/. + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of this Source Code Form. + */ + + const MethodFactory$1 = MethodFactory_1; + + const defaults$1 = { + level: (opts) => `[${opts.level}]`, + name: (opts) => opts.logger.name, + template: '{{time}} {{level}} ', + time: () => new Date().toTimeString().split(' ')[0] + }; + + var PrefixFactory_1 = class PrefixFactory extends MethodFactory$1 { + constructor(logger, options) { + super(logger); + this.options = Object.assign({}, defaults$1, options); + } + + interpolate(level) { + return this.options.template.replace(/{{([^{}]*)}}/g, (stache, prop) => { + const fn = this.options[prop]; + + if (fn) { + return fn({ level, logger: this.logger }); + } + + return stache; + }); + } + + make(methodName) { + const og = super.make(methodName); + + return (...args) => { + const output = this.interpolate(methodName); + const [first] = args; + + if (typeof first === 'string') { + // eslint-disable-next-line no-param-reassign + args[0] = output + first; + } else { + args.unshift(output); + } + + og(...args); + }; + } + }; + + /* + Copyright © 2018 Andrew Powell + + This Source Code Form is subject to the terms of the Mozilla Public + License, v. 2.0. If a copy of the MPL was not distributed with this + file, You can obtain one at http://mozilla.org/MPL/2.0/. + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of this Source Code Form. + */ + + const PrefixFactory = PrefixFactory_1; + + const MethodFactory = MethodFactory_1; + + const defaults = { + factory: null, + level: 'warn', + name: +new Date(), + prefix: null + }; + + var LogLevel_1 = class LogLevel { + constructor(options) { + // implement for some _very_ loose type checking. avoids getting into a + // circular require between MethodFactory and LogLevel + this.type = 'LogLevel'; + this.options = Object.assign({}, defaults, options); + this.methodFactory = options.factory; + + if (!this.methodFactory) { + const factory = options.prefix + ? new PrefixFactory(this, options.prefix) + : new MethodFactory(this); + this.methodFactory = factory; + } + + if (!this.methodFactory.logger) { + this.methodFactory.logger = this; + } + + this.name = options.name || ''; + + // this.level is a setter, do this after setting up the factory + this.level = this.options.level; + } + + get factory() { + return this.methodFactory; + } + + set factory(factory) { + // eslint-disable-next-line no-param-reassign + factory.logger = this; + this.methodFactory = factory; + this.methodFactory.replaceMethods(this.level); + } + + disable() { + this.level = this.levels.SILENT; + } + + enable() { + this.level = this.levels.TRACE; + } + + get level() { + return this.currentLevel; + } + + set level(logLevel) { + const level = this.methodFactory.distillLevel(logLevel); + + if (level === false || level == null) { + throw new RangeError(`loglevelnext: setLevel() called with invalid level: ${logLevel}`); + } + + this.currentLevel = level; + this.methodFactory.replaceMethods(level); + + if (typeof console === 'undefined' && level < this.levels.SILENT) { + // eslint-disable-next-line no-console + console.warn('loglevelnext: console is undefined. The log will produce no output.'); + } + } + + get levels() { + // eslint-disable-line class-methods-use-this + return this.methodFactory.levels; + } + }; + + /* + Copyright © 2018 Andrew Powell + + This Source Code Form is subject to the terms of the Mozilla Public + License, v. 2.0. If a copy of the MPL was not distributed with this + file, You can obtain one at http://mozilla.org/MPL/2.0/. + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of this Source Code Form. + */ + + (function (module) { + const LogLevel = LogLevel_1; + const MethodFactory = MethodFactory_1; + const PrefixFactory = PrefixFactory_1; + + const factories = Symbol('log-factories'); + + class DefaultLogger extends LogLevel { + constructor() { + super({ name: 'default' }); + + this.cache = { default: this }; + this[factories] = { MethodFactory, PrefixFactory }; + } + + get factories() { + return this[factories]; + } + + get loggers() { + return this.cache; + } + + create(opts) { + let options; + + if (typeof opts === 'string') { + options = { name: opts }; + } else { + options = Object.assign({}, opts); + } + + if (!options.id) { + options.id = options.name; + } + + const { name, id } = options; + const defaults = { level: this.level }; + + if (typeof name !== 'string' || !name || !name.length) { + throw new TypeError('You must supply a name when creating a logger.'); + } + + let logger = this.cache[id]; + if (!logger) { + logger = new LogLevel(Object.assign({}, defaults, options)); + this.cache[id] = logger; + } + return logger; + } + } + + module.exports = new DefaultLogger(); + + // TypeScript fix + module.exports.default = module.exports; + } (lib)); + + var libExports = lib.exports; + var loglevelnext = /*@__PURE__*/getDefaultExportFromCjs(libExports); + + var log = loglevelnext.create("dcmjs"); + + /** + * A validation log shows issues with data validation, and not internal issues itself. + * This is validation.dcmjs to group the validation issues into a single validation set to allow + * turning validation on/off. + */ + var validationLog = loglevelnext.create("validation.dcmjs"); + + /* eslint no-bitwise: 0 */ + var BitArray = { + getBytesForBinaryFrame: getBytesForBinaryFrame, + pack: pack, + unpack: unpack + }; + function getBytesForBinaryFrame(numPixels) { + // Check whether the 1-bit pixels exactly fit into bytes + var remainder = numPixels % 8; + + // Number of bytes that work on an exact fit + var bytesRequired = Math.floor(numPixels / 8); + + // Add one byte if we have a remainder + if (remainder > 0) { + bytesRequired++; + } + return bytesRequired; + } + function pack(pixelData) { + var numPixels = pixelData.length; + log.debug("numPixels: " + numPixels); + var length = getBytesForBinaryFrame(numPixels); + //log.log('getBytesForBinaryFrame: ' + length); + + var bitPixelData = new Uint8Array(length); + var bytePos = 0; + for (var i = 0; i < numPixels; i++) { + // Compute byte position + bytePos = Math.floor(i / 8); + var pixValue = pixelData[i] !== 0; + + //log.log('i: ' + i); + //log.log('pixValue: ' + pixValue); + //log.log('bytePos: ' + bytePos); + + var bitPixelValue = pixValue << i % 8; + //log.log('current bitPixelData: ' + bitPixelData[bytePos]); + //log.log('this bitPixelValue: ' + bitPixelValue); + + bitPixelData[bytePos] |= bitPixelValue; + + //log.log('new bitPixelValue: ' + bitPixelData[bytePos]); + } + + return bitPixelData; + } + + // convert a packed bitwise pixel array into a byte-per-pixel + // array with 255 corresponding to each set bit in the bit array + function unpack(bitPixelArray) { + var bitArray = new Uint8Array(bitPixelArray); + var byteArray = new Uint8Array(8 * bitArray.length); + for (var byteIndex = 0; byteIndex < byteArray.length; byteIndex++) { + var bitIndex = byteIndex % 8; + var bitByteIndex = Math.floor(byteIndex / 8); + byteArray[byteIndex] = 255 * ((bitArray[bitByteIndex] & 1 << bitIndex) >> bitIndex); + } + return byteArray; + } + + function ownKeys(object, enumerableOnly) { + var keys = Object.keys(object); + if (Object.getOwnPropertySymbols) { + var symbols = Object.getOwnPropertySymbols(object); + enumerableOnly && (symbols = symbols.filter(function (sym) { + return Object.getOwnPropertyDescriptor(object, sym).enumerable; + })), keys.push.apply(keys, symbols); + } + return keys; + } + function _objectSpread2(target) { + for (var i = 1; i < arguments.length; i++) { + var source = null != arguments[i] ? arguments[i] : {}; + i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { + _defineProperty(target, key, source[key]); + }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { + Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); + }); + } + return target; + } + function _typeof(obj) { + "@babel/helpers - typeof"; + + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { + return typeof obj; + } : function (obj) { + return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }, _typeof(obj); + } + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { + writable: false + }); + return Constructor; + } + function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value: value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + return obj; + } + function _inherits(subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function"); + } + subClass.prototype = Object.create(superClass && superClass.prototype, { + constructor: { + value: subClass, + writable: true, + configurable: true + } + }); + Object.defineProperty(subClass, "prototype", { + writable: false + }); + if (superClass) _setPrototypeOf(subClass, superClass); + } + function _getPrototypeOf(o) { + _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { + return o.__proto__ || Object.getPrototypeOf(o); + }; + return _getPrototypeOf(o); + } + function _setPrototypeOf(o, p) { + _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { + o.__proto__ = p; + return o; + }; + return _setPrototypeOf(o, p); + } + function _isNativeReflectConstruct() { + if (typeof Reflect === "undefined" || !Reflect.construct) return false; + if (Reflect.construct.sham) return false; + if (typeof Proxy === "function") return true; + try { + Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); + return true; + } catch (e) { + return false; + } + } + function _construct(Parent, args, Class) { + if (_isNativeReflectConstruct()) { + _construct = Reflect.construct; + } else { + _construct = function _construct(Parent, args, Class) { + var a = [null]; + a.push.apply(a, args); + var Constructor = Function.bind.apply(Parent, a); + var instance = new Constructor(); + if (Class) _setPrototypeOf(instance, Class.prototype); + return instance; + }; + } + return _construct.apply(null, arguments); + } + function _isNativeFunction(fn) { + return Function.toString.call(fn).indexOf("[native code]") !== -1; + } + function _wrapNativeSuper(Class) { + var _cache = typeof Map === "function" ? new Map() : undefined; + _wrapNativeSuper = function _wrapNativeSuper(Class) { + if (Class === null || !_isNativeFunction(Class)) return Class; + if (typeof Class !== "function") { + throw new TypeError("Super expression must either be null or a function"); + } + if (typeof _cache !== "undefined") { + if (_cache.has(Class)) return _cache.get(Class); + _cache.set(Class, Wrapper); + } + function Wrapper() { + return _construct(Class, arguments, _getPrototypeOf(this).constructor); + } + Wrapper.prototype = Object.create(Class.prototype, { + constructor: { + value: Wrapper, + enumerable: false, + writable: true, + configurable: true + } + }); + return _setPrototypeOf(Wrapper, Class); + }; + return _wrapNativeSuper(Class); + } + function _assertThisInitialized(self) { + if (self === void 0) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + return self; + } + function _possibleConstructorReturn(self, call) { + if (call && (typeof call === "object" || typeof call === "function")) { + return call; + } else if (call !== void 0) { + throw new TypeError("Derived constructors may only return object or undefined"); + } + return _assertThisInitialized(self); + } + function _createSuper(Derived) { + var hasNativeReflectConstruct = _isNativeReflectConstruct(); + return function _createSuperInternal() { + var Super = _getPrototypeOf(Derived), + result; + if (hasNativeReflectConstruct) { + var NewTarget = _getPrototypeOf(this).constructor; + result = Reflect.construct(Super, arguments, NewTarget); + } else { + result = Super.apply(this, arguments); + } + return _possibleConstructorReturn(this, result); + }; + } + function _superPropBase(object, property) { + while (!Object.prototype.hasOwnProperty.call(object, property)) { + object = _getPrototypeOf(object); + if (object === null) break; + } + return object; + } + function _get() { + if (typeof Reflect !== "undefined" && Reflect.get) { + _get = Reflect.get; + } else { + _get = function _get(target, property, receiver) { + var base = _superPropBase(target, property); + if (!base) return; + var desc = Object.getOwnPropertyDescriptor(base, property); + if (desc.get) { + return desc.get.call(arguments.length < 3 ? target : receiver); + } + return desc.value; + }; + } + return _get.apply(this, arguments); + } + function _slicedToArray(arr, i) { + return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); + } + function _toConsumableArray(arr) { + return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); + } + function _arrayWithoutHoles(arr) { + if (Array.isArray(arr)) return _arrayLikeToArray(arr); + } + function _arrayWithHoles(arr) { + if (Array.isArray(arr)) return arr; + } + function _iterableToArray(iter) { + if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); + } + function _iterableToArrayLimit(arr, i) { + var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; + if (_i == null) return; + var _arr = []; + var _n = true; + var _d = false; + var _s, _e; + try { + for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { + _arr.push(_s.value); + if (i && _arr.length === i) break; + } + } catch (err) { + _d = true; + _e = err; + } finally { + try { + if (!_n && _i["return"] != null) _i["return"](); + } finally { + if (_d) throw _e; + } + } + return _arr; + } + function _unsupportedIterableToArray(o, minLen) { + if (!o) return; + if (typeof o === "string") return _arrayLikeToArray(o, minLen); + var n = Object.prototype.toString.call(o).slice(8, -1); + if (n === "Object" && o.constructor) n = o.constructor.name; + if (n === "Map" || n === "Set") return Array.from(o); + if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); + } + function _arrayLikeToArray(arr, len) { + if (len == null || len > arr.length) len = arr.length; + for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; + return arr2; + } + function _nonIterableSpread() { + throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + function _nonIterableRest() { + throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + function _createForOfIteratorHelper(o, allowArrayLike) { + var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; + if (!it) { + if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { + if (it) o = it; + var i = 0; + var F = function () {}; + return { + s: F, + n: function () { + if (i >= o.length) return { + done: true + }; + return { + done: false, + value: o[i++] + }; + }, + e: function (e) { + throw e; + }, + f: F + }; + } + throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + var normalCompletion = true, + didErr = false, + err; + return { + s: function () { + it = it.call(o); + }, + n: function () { + var step = it.next(); + normalCompletion = step.done; + return step; + }, + e: function (e) { + didErr = true; + err = e; + }, + f: function () { + try { + if (!normalCompletion && it.return != null) it.return(); + } finally { + if (didErr) throw err; + } + } + }; + } + + /*! pako 2.0.4 https://github.com/nodeca/pako @license (MIT AND Zlib) */ + // (C) 1995-2013 Jean-loup Gailly and Mark Adler + // (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin + // + // This software is provided 'as-is', without any express or implied + // warranty. In no event will the authors be held liable for any damages + // arising from the use of this software. + // + // Permission is granted to anyone to use this software for any purpose, + // including commercial applications, and to alter it and redistribute it + // freely, subject to the following restrictions: + // + // 1. The origin of this software must not be misrepresented; you must not + // claim that you wrote the original software. If you use this software + // in a product, an acknowledgment in the product documentation would be + // appreciated but is not required. + // 2. Altered source versions must be plainly marked as such, and must not be + // misrepresented as being the original software. + // 3. This notice may not be removed or altered from any source distribution. + + /* eslint-disable space-unary-ops */ + + /* Public constants ==========================================================*/ + /* ===========================================================================*/ + + + //const Z_FILTERED = 1; + //const Z_HUFFMAN_ONLY = 2; + //const Z_RLE = 3; + const Z_FIXED$1 = 4; + //const Z_DEFAULT_STRATEGY = 0; + + /* Possible values of the data_type field (though see inflate()) */ + const Z_BINARY = 0; + const Z_TEXT = 1; + //const Z_ASCII = 1; // = Z_TEXT + const Z_UNKNOWN$1 = 2; + + /*============================================================================*/ + + + function zero$1(buf) { let len = buf.length; while (--len >= 0) { buf[len] = 0; } } + + // From zutil.h + + const STORED_BLOCK = 0; + const STATIC_TREES = 1; + const DYN_TREES = 2; + /* The three kinds of block type */ + + const MIN_MATCH$1 = 3; + const MAX_MATCH$1 = 258; + /* The minimum and maximum match lengths */ + + // From deflate.h + /* =========================================================================== + * Internal compression state. + */ + + const LENGTH_CODES$1 = 29; + /* number of length codes, not counting the special END_BLOCK code */ + + const LITERALS$1 = 256; + /* number of literal bytes 0..255 */ + + const L_CODES$1 = LITERALS$1 + 1 + LENGTH_CODES$1; + /* number of Literal or Length codes, including the END_BLOCK code */ + + const D_CODES$1 = 30; + /* number of distance codes */ + + const BL_CODES$1 = 19; + /* number of codes used to transfer the bit lengths */ + + const HEAP_SIZE$1 = 2 * L_CODES$1 + 1; + /* maximum heap size */ + + const MAX_BITS$1 = 15; + /* All codes must not exceed MAX_BITS bits */ + + const Buf_size = 16; + /* size of bit buffer in bi_buf */ + + + /* =========================================================================== + * Constants + */ + + const MAX_BL_BITS = 7; + /* Bit length codes must not exceed MAX_BL_BITS bits */ + + const END_BLOCK = 256; + /* end of block literal code */ + + const REP_3_6 = 16; + /* repeat previous bit length 3-6 times (2 bits of repeat count) */ + + const REPZ_3_10 = 17; + /* repeat a zero length 3-10 times (3 bits of repeat count) */ + + const REPZ_11_138 = 18; + /* repeat a zero length 11-138 times (7 bits of repeat count) */ + + /* eslint-disable comma-spacing,array-bracket-spacing */ + const extra_lbits = /* extra bits for each length code */ + new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]); + + const extra_dbits = /* extra bits for each distance code */ + new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]); + + const extra_blbits = /* extra bits for each bit length code */ + new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]); + + const bl_order = + new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]); + /* eslint-enable comma-spacing,array-bracket-spacing */ + + /* The lengths of the bit length codes are sent in order of decreasing + * probability, to avoid transmitting the lengths for unused bit length codes. + */ + + /* =========================================================================== + * Local data. These are initialized only once. + */ + + // We pre-fill arrays with 0 to avoid uninitialized gaps + + const DIST_CODE_LEN = 512; /* see definition of array dist_code below */ + + // !!!! Use flat array instead of structure, Freq = i*2, Len = i*2+1 + const static_ltree = new Array((L_CODES$1 + 2) * 2); + zero$1(static_ltree); + /* The static literal tree. Since the bit lengths are imposed, there is no + * need for the L_CODES extra codes used during heap construction. However + * The codes 286 and 287 are needed to build a canonical tree (see _tr_init + * below). + */ + + const static_dtree = new Array(D_CODES$1 * 2); + zero$1(static_dtree); + /* The static distance tree. (Actually a trivial tree since all codes use + * 5 bits.) + */ + + const _dist_code = new Array(DIST_CODE_LEN); + zero$1(_dist_code); + /* Distance codes. The first 256 values correspond to the distances + * 3 .. 258, the last 256 values correspond to the top 8 bits of + * the 15 bit distances. + */ + + const _length_code = new Array(MAX_MATCH$1 - MIN_MATCH$1 + 1); + zero$1(_length_code); + /* length code for each normalized match length (0 == MIN_MATCH) */ + + const base_length = new Array(LENGTH_CODES$1); + zero$1(base_length); + /* First normalized length for each code (0 = MIN_MATCH) */ + + const base_dist = new Array(D_CODES$1); + zero$1(base_dist); + /* First normalized distance for each code (0 = distance of 1) */ + + + function StaticTreeDesc(static_tree, extra_bits, extra_base, elems, max_length) { + + this.static_tree = static_tree; /* static tree or NULL */ + this.extra_bits = extra_bits; /* extra bits for each code or NULL */ + this.extra_base = extra_base; /* base index for extra_bits */ + this.elems = elems; /* max number of elements in the tree */ + this.max_length = max_length; /* max bit length for the codes */ + + // show if `static_tree` has data or dummy - needed for monomorphic objects + this.has_stree = static_tree && static_tree.length; + } + + + let static_l_desc; + let static_d_desc; + let static_bl_desc; + + + function TreeDesc(dyn_tree, stat_desc) { + this.dyn_tree = dyn_tree; /* the dynamic tree */ + this.max_code = 0; /* largest code with non zero frequency */ + this.stat_desc = stat_desc; /* the corresponding static tree */ + } + + + + const d_code = (dist) => { + + return dist < 256 ? _dist_code[dist] : _dist_code[256 + (dist >>> 7)]; + }; + + + /* =========================================================================== + * Output a short LSB first on the stream. + * IN assertion: there is enough room in pendingBuf. + */ + const put_short = (s, w) => { + // put_byte(s, (uch)((w) & 0xff)); + // put_byte(s, (uch)((ush)(w) >> 8)); + s.pending_buf[s.pending++] = (w) & 0xff; + s.pending_buf[s.pending++] = (w >>> 8) & 0xff; + }; + + + /* =========================================================================== + * Send a value on a given number of bits. + * IN assertion: length <= 16 and value fits in length bits. + */ + const send_bits = (s, value, length) => { + + if (s.bi_valid > (Buf_size - length)) { + s.bi_buf |= (value << s.bi_valid) & 0xffff; + put_short(s, s.bi_buf); + s.bi_buf = value >> (Buf_size - s.bi_valid); + s.bi_valid += length - Buf_size; + } else { + s.bi_buf |= (value << s.bi_valid) & 0xffff; + s.bi_valid += length; + } + }; + + + const send_code = (s, c, tree) => { + + send_bits(s, tree[c * 2]/*.Code*/, tree[c * 2 + 1]/*.Len*/); + }; + + + /* =========================================================================== + * Reverse the first len bits of a code, using straightforward code (a faster + * method would use a table) + * IN assertion: 1 <= len <= 15 + */ + const bi_reverse = (code, len) => { + + let res = 0; + do { + res |= code & 1; + code >>>= 1; + res <<= 1; + } while (--len > 0); + return res >>> 1; + }; + + + /* =========================================================================== + * Flush the bit buffer, keeping at most 7 bits in it. + */ + const bi_flush = (s) => { + + if (s.bi_valid === 16) { + put_short(s, s.bi_buf); + s.bi_buf = 0; + s.bi_valid = 0; + + } else if (s.bi_valid >= 8) { + s.pending_buf[s.pending++] = s.bi_buf & 0xff; + s.bi_buf >>= 8; + s.bi_valid -= 8; + } + }; + + + /* =========================================================================== + * Compute the optimal bit lengths for a tree and update the total bit length + * for the current block. + * IN assertion: the fields freq and dad are set, heap[heap_max] and + * above are the tree nodes sorted by increasing frequency. + * OUT assertions: the field len is set to the optimal bit length, the + * array bl_count contains the frequencies for each bit length. + * The length opt_len is updated; static_len is also updated if stree is + * not null. + */ + const gen_bitlen = (s, desc) => + // deflate_state *s; + // tree_desc *desc; /* the tree descriptor */ + { + const tree = desc.dyn_tree; + const max_code = desc.max_code; + const stree = desc.stat_desc.static_tree; + const has_stree = desc.stat_desc.has_stree; + const extra = desc.stat_desc.extra_bits; + const base = desc.stat_desc.extra_base; + const max_length = desc.stat_desc.max_length; + let h; /* heap index */ + let n, m; /* iterate over the tree elements */ + let bits; /* bit length */ + let xbits; /* extra bits */ + let f; /* frequency */ + let overflow = 0; /* number of elements with bit length too large */ + + for (bits = 0; bits <= MAX_BITS$1; bits++) { + s.bl_count[bits] = 0; + } + + /* In a first pass, compute the optimal bit lengths (which may + * overflow in the case of the bit length tree). + */ + tree[s.heap[s.heap_max] * 2 + 1]/*.Len*/ = 0; /* root of the heap */ + + for (h = s.heap_max + 1; h < HEAP_SIZE$1; h++) { + n = s.heap[h]; + bits = tree[tree[n * 2 + 1]/*.Dad*/ * 2 + 1]/*.Len*/ + 1; + if (bits > max_length) { + bits = max_length; + overflow++; + } + tree[n * 2 + 1]/*.Len*/ = bits; + /* We overwrite tree[n].Dad which is no longer needed */ + + if (n > max_code) { continue; } /* not a leaf node */ + + s.bl_count[bits]++; + xbits = 0; + if (n >= base) { + xbits = extra[n - base]; + } + f = tree[n * 2]/*.Freq*/; + s.opt_len += f * (bits + xbits); + if (has_stree) { + s.static_len += f * (stree[n * 2 + 1]/*.Len*/ + xbits); + } + } + if (overflow === 0) { return; } + + // Trace((stderr,"\nbit length overflow\n")); + /* This happens for example on obj2 and pic of the Calgary corpus */ + + /* Find the first bit length which could increase: */ + do { + bits = max_length - 1; + while (s.bl_count[bits] === 0) { bits--; } + s.bl_count[bits]--; /* move one leaf down the tree */ + s.bl_count[bits + 1] += 2; /* move one overflow item as its brother */ + s.bl_count[max_length]--; + /* The brother of the overflow item also moves one step up, + * but this does not affect bl_count[max_length] + */ + overflow -= 2; + } while (overflow > 0); + + /* Now recompute all bit lengths, scanning in increasing frequency. + * h is still equal to HEAP_SIZE. (It is simpler to reconstruct all + * lengths instead of fixing only the wrong ones. This idea is taken + * from 'ar' written by Haruhiko Okumura.) + */ + for (bits = max_length; bits !== 0; bits--) { + n = s.bl_count[bits]; + while (n !== 0) { + m = s.heap[--h]; + if (m > max_code) { continue; } + if (tree[m * 2 + 1]/*.Len*/ !== bits) { + // Trace((stderr,"code %d bits %d->%d\n", m, tree[m].Len, bits)); + s.opt_len += (bits - tree[m * 2 + 1]/*.Len*/) * tree[m * 2]/*.Freq*/; + tree[m * 2 + 1]/*.Len*/ = bits; + } + n--; + } + } + }; + + + /* =========================================================================== + * Generate the codes for a given tree and bit counts (which need not be + * optimal). + * IN assertion: the array bl_count contains the bit length statistics for + * the given tree and the field len is set for all tree elements. + * OUT assertion: the field code is set for all tree elements of non + * zero code length. + */ + const gen_codes = (tree, max_code, bl_count) => + // ct_data *tree; /* the tree to decorate */ + // int max_code; /* largest code with non zero frequency */ + // ushf *bl_count; /* number of codes at each bit length */ + { + const next_code = new Array(MAX_BITS$1 + 1); /* next code value for each bit length */ + let code = 0; /* running code value */ + let bits; /* bit index */ + let n; /* code index */ + + /* The distribution counts are first used to generate the code values + * without bit reversal. + */ + for (bits = 1; bits <= MAX_BITS$1; bits++) { + next_code[bits] = code = (code + bl_count[bits - 1]) << 1; + } + /* Check that the bit counts in bl_count are consistent. The last code + * must be all ones. + */ + //Assert (code + bl_count[MAX_BITS]-1 == (1< { + + let n; /* iterates over tree elements */ + let bits; /* bit counter */ + let length; /* length value */ + let code; /* code value */ + let dist; /* distance index */ + const bl_count = new Array(MAX_BITS$1 + 1); + /* number of codes at each bit length for an optimal tree */ + + // do check in _tr_init() + //if (static_init_done) return; + + /* For some embedded targets, global variables are not initialized: */ + /*#ifdef NO_INIT_GLOBAL_POINTERS + static_l_desc.static_tree = static_ltree; + static_l_desc.extra_bits = extra_lbits; + static_d_desc.static_tree = static_dtree; + static_d_desc.extra_bits = extra_dbits; + static_bl_desc.extra_bits = extra_blbits; + #endif*/ + + /* Initialize the mapping length (0..255) -> length code (0..28) */ + length = 0; + for (code = 0; code < LENGTH_CODES$1 - 1; code++) { + base_length[code] = length; + for (n = 0; n < (1 << extra_lbits[code]); n++) { + _length_code[length++] = code; + } + } + //Assert (length == 256, "tr_static_init: length != 256"); + /* Note that the length 255 (match length 258) can be represented + * in two different ways: code 284 + 5 bits or code 285, so we + * overwrite length_code[255] to use the best encoding: + */ + _length_code[length - 1] = code; + + /* Initialize the mapping dist (0..32K) -> dist code (0..29) */ + dist = 0; + for (code = 0; code < 16; code++) { + base_dist[code] = dist; + for (n = 0; n < (1 << extra_dbits[code]); n++) { + _dist_code[dist++] = code; + } + } + //Assert (dist == 256, "tr_static_init: dist != 256"); + dist >>= 7; /* from now on, all distances are divided by 128 */ + for (; code < D_CODES$1; code++) { + base_dist[code] = dist << 7; + for (n = 0; n < (1 << (extra_dbits[code] - 7)); n++) { + _dist_code[256 + dist++] = code; + } + } + //Assert (dist == 256, "tr_static_init: 256+dist != 512"); + + /* Construct the codes of the static literal tree */ + for (bits = 0; bits <= MAX_BITS$1; bits++) { + bl_count[bits] = 0; + } + + n = 0; + while (n <= 143) { + static_ltree[n * 2 + 1]/*.Len*/ = 8; + n++; + bl_count[8]++; + } + while (n <= 255) { + static_ltree[n * 2 + 1]/*.Len*/ = 9; + n++; + bl_count[9]++; + } + while (n <= 279) { + static_ltree[n * 2 + 1]/*.Len*/ = 7; + n++; + bl_count[7]++; + } + while (n <= 287) { + static_ltree[n * 2 + 1]/*.Len*/ = 8; + n++; + bl_count[8]++; + } + /* Codes 286 and 287 do not exist, but we must include them in the + * tree construction to get a canonical Huffman tree (longest code + * all ones) + */ + gen_codes(static_ltree, L_CODES$1 + 1, bl_count); + + /* The static distance tree is trivial: */ + for (n = 0; n < D_CODES$1; n++) { + static_dtree[n * 2 + 1]/*.Len*/ = 5; + static_dtree[n * 2]/*.Code*/ = bi_reverse(n, 5); + } + + // Now data ready and we can init static trees + static_l_desc = new StaticTreeDesc(static_ltree, extra_lbits, LITERALS$1 + 1, L_CODES$1, MAX_BITS$1); + static_d_desc = new StaticTreeDesc(static_dtree, extra_dbits, 0, D_CODES$1, MAX_BITS$1); + static_bl_desc = new StaticTreeDesc(new Array(0), extra_blbits, 0, BL_CODES$1, MAX_BL_BITS); + + //static_init_done = true; + }; + + + /* =========================================================================== + * Initialize a new block. + */ + const init_block = (s) => { + + let n; /* iterates over tree elements */ + + /* Initialize the trees. */ + for (n = 0; n < L_CODES$1; n++) { s.dyn_ltree[n * 2]/*.Freq*/ = 0; } + for (n = 0; n < D_CODES$1; n++) { s.dyn_dtree[n * 2]/*.Freq*/ = 0; } + for (n = 0; n < BL_CODES$1; n++) { s.bl_tree[n * 2]/*.Freq*/ = 0; } + + s.dyn_ltree[END_BLOCK * 2]/*.Freq*/ = 1; + s.opt_len = s.static_len = 0; + s.last_lit = s.matches = 0; + }; + + + /* =========================================================================== + * Flush the bit buffer and align the output on a byte boundary + */ + const bi_windup = (s) => + { + if (s.bi_valid > 8) { + put_short(s, s.bi_buf); + } else if (s.bi_valid > 0) { + //put_byte(s, (Byte)s->bi_buf); + s.pending_buf[s.pending++] = s.bi_buf; + } + s.bi_buf = 0; + s.bi_valid = 0; + }; + + /* =========================================================================== + * Copy a stored block, storing first the length and its + * one's complement if requested. + */ + const copy_block = (s, buf, len, header) => + //DeflateState *s; + //charf *buf; /* the input data */ + //unsigned len; /* its length */ + //int header; /* true if block header must be written */ + { + bi_windup(s); /* align on byte boundary */ + + if (header) { + put_short(s, len); + put_short(s, ~len); + } + // while (len--) { + // put_byte(s, *buf++); + // } + s.pending_buf.set(s.window.subarray(buf, buf + len), s.pending); + s.pending += len; + }; + + /* =========================================================================== + * Compares to subtrees, using the tree depth as tie breaker when + * the subtrees have equal frequency. This minimizes the worst case length. + */ + const smaller = (tree, n, m, depth) => { + + const _n2 = n * 2; + const _m2 = m * 2; + return (tree[_n2]/*.Freq*/ < tree[_m2]/*.Freq*/ || + (tree[_n2]/*.Freq*/ === tree[_m2]/*.Freq*/ && depth[n] <= depth[m])); + }; + + /* =========================================================================== + * Restore the heap property by moving down the tree starting at node k, + * exchanging a node with the smallest of its two sons if necessary, stopping + * when the heap property is re-established (each father smaller than its + * two sons). + */ + const pqdownheap = (s, tree, k) => + // deflate_state *s; + // ct_data *tree; /* the tree to restore */ + // int k; /* node to move down */ + { + const v = s.heap[k]; + let j = k << 1; /* left son of k */ + while (j <= s.heap_len) { + /* Set j to the smallest of the two sons: */ + if (j < s.heap_len && + smaller(tree, s.heap[j + 1], s.heap[j], s.depth)) { + j++; + } + /* Exit if v is smaller than both sons */ + if (smaller(tree, v, s.heap[j], s.depth)) { break; } + + /* Exchange v with the smallest son */ + s.heap[k] = s.heap[j]; + k = j; + + /* And continue down the tree, setting j to the left son of k */ + j <<= 1; + } + s.heap[k] = v; + }; + + + // inlined manually + // const SMALLEST = 1; + + /* =========================================================================== + * Send the block data compressed using the given Huffman trees + */ + const compress_block = (s, ltree, dtree) => + // deflate_state *s; + // const ct_data *ltree; /* literal tree */ + // const ct_data *dtree; /* distance tree */ + { + let dist; /* distance of matched string */ + let lc; /* match length or unmatched char (if dist == 0) */ + let lx = 0; /* running index in l_buf */ + let code; /* the code to send */ + let extra; /* number of extra bits to send */ + + if (s.last_lit !== 0) { + do { + dist = (s.pending_buf[s.d_buf + lx * 2] << 8) | (s.pending_buf[s.d_buf + lx * 2 + 1]); + lc = s.pending_buf[s.l_buf + lx]; + lx++; + + if (dist === 0) { + send_code(s, lc, ltree); /* send a literal byte */ + //Tracecv(isgraph(lc), (stderr," '%c' ", lc)); + } else { + /* Here, lc is the match length - MIN_MATCH */ + code = _length_code[lc]; + send_code(s, code + LITERALS$1 + 1, ltree); /* send the length code */ + extra = extra_lbits[code]; + if (extra !== 0) { + lc -= base_length[code]; + send_bits(s, lc, extra); /* send the extra length bits */ + } + dist--; /* dist is now the match distance - 1 */ + code = d_code(dist); + //Assert (code < D_CODES, "bad d_code"); + + send_code(s, code, dtree); /* send the distance code */ + extra = extra_dbits[code]; + if (extra !== 0) { + dist -= base_dist[code]; + send_bits(s, dist, extra); /* send the extra distance bits */ + } + } /* literal or match pair ? */ + + /* Check that the overlay between pending_buf and d_buf+l_buf is ok: */ + //Assert((uInt)(s->pending) < s->lit_bufsize + 2*lx, + // "pendingBuf overflow"); + + } while (lx < s.last_lit); + } + + send_code(s, END_BLOCK, ltree); + }; + + + /* =========================================================================== + * Construct one Huffman tree and assigns the code bit strings and lengths. + * Update the total bit length for the current block. + * IN assertion: the field freq is set for all tree elements. + * OUT assertions: the fields len and code are set to the optimal bit length + * and corresponding code. The length opt_len is updated; static_len is + * also updated if stree is not null. The field max_code is set. + */ + const build_tree = (s, desc) => + // deflate_state *s; + // tree_desc *desc; /* the tree descriptor */ + { + const tree = desc.dyn_tree; + const stree = desc.stat_desc.static_tree; + const has_stree = desc.stat_desc.has_stree; + const elems = desc.stat_desc.elems; + let n, m; /* iterate over heap elements */ + let max_code = -1; /* largest code with non zero frequency */ + let node; /* new node being created */ + + /* Construct the initial heap, with least frequent element in + * heap[SMALLEST]. The sons of heap[n] are heap[2*n] and heap[2*n+1]. + * heap[0] is not used. + */ + s.heap_len = 0; + s.heap_max = HEAP_SIZE$1; + + for (n = 0; n < elems; n++) { + if (tree[n * 2]/*.Freq*/ !== 0) { + s.heap[++s.heap_len] = max_code = n; + s.depth[n] = 0; + + } else { + tree[n * 2 + 1]/*.Len*/ = 0; + } + } + + /* The pkzip format requires that at least one distance code exists, + * and that at least one bit should be sent even if there is only one + * possible code. So to avoid special checks later on we force at least + * two codes of non zero frequency. + */ + while (s.heap_len < 2) { + node = s.heap[++s.heap_len] = (max_code < 2 ? ++max_code : 0); + tree[node * 2]/*.Freq*/ = 1; + s.depth[node] = 0; + s.opt_len--; + + if (has_stree) { + s.static_len -= stree[node * 2 + 1]/*.Len*/; + } + /* node is 0 or 1 so it does not have extra bits */ + } + desc.max_code = max_code; + + /* The elements heap[heap_len/2+1 .. heap_len] are leaves of the tree, + * establish sub-heaps of increasing lengths: + */ + for (n = (s.heap_len >> 1/*int /2*/); n >= 1; n--) { pqdownheap(s, tree, n); } + + /* Construct the Huffman tree by repeatedly combining the least two + * frequent nodes. + */ + node = elems; /* next internal node of the tree */ + do { + //pqremove(s, tree, n); /* n = node of least frequency */ + /*** pqremove ***/ + n = s.heap[1/*SMALLEST*/]; + s.heap[1/*SMALLEST*/] = s.heap[s.heap_len--]; + pqdownheap(s, tree, 1/*SMALLEST*/); + /***/ + + m = s.heap[1/*SMALLEST*/]; /* m = node of next least frequency */ + + s.heap[--s.heap_max] = n; /* keep the nodes sorted by frequency */ + s.heap[--s.heap_max] = m; + + /* Create a new node father of n and m */ + tree[node * 2]/*.Freq*/ = tree[n * 2]/*.Freq*/ + tree[m * 2]/*.Freq*/; + s.depth[node] = (s.depth[n] >= s.depth[m] ? s.depth[n] : s.depth[m]) + 1; + tree[n * 2 + 1]/*.Dad*/ = tree[m * 2 + 1]/*.Dad*/ = node; + + /* and insert the new node in the heap */ + s.heap[1/*SMALLEST*/] = node++; + pqdownheap(s, tree, 1/*SMALLEST*/); + + } while (s.heap_len >= 2); + + s.heap[--s.heap_max] = s.heap[1/*SMALLEST*/]; + + /* At this point, the fields freq and dad are set. We can now + * generate the bit lengths. + */ + gen_bitlen(s, desc); + + /* The field len is now set, we can generate the bit codes */ + gen_codes(tree, max_code, s.bl_count); + }; + + + /* =========================================================================== + * Scan a literal or distance tree to determine the frequencies of the codes + * in the bit length tree. + */ + const scan_tree = (s, tree, max_code) => + // deflate_state *s; + // ct_data *tree; /* the tree to be scanned */ + // int max_code; /* and its largest code of non zero frequency */ + { + let n; /* iterates over all tree elements */ + let prevlen = -1; /* last emitted length */ + let curlen; /* length of current code */ + + let nextlen = tree[0 * 2 + 1]/*.Len*/; /* length of next code */ + + let count = 0; /* repeat count of the current code */ + let max_count = 7; /* max repeat count */ + let min_count = 4; /* min repeat count */ + + if (nextlen === 0) { + max_count = 138; + min_count = 3; + } + tree[(max_code + 1) * 2 + 1]/*.Len*/ = 0xffff; /* guard */ + + for (n = 0; n <= max_code; n++) { + curlen = nextlen; + nextlen = tree[(n + 1) * 2 + 1]/*.Len*/; + + if (++count < max_count && curlen === nextlen) { + continue; + + } else if (count < min_count) { + s.bl_tree[curlen * 2]/*.Freq*/ += count; + + } else if (curlen !== 0) { + + if (curlen !== prevlen) { s.bl_tree[curlen * 2]/*.Freq*/++; } + s.bl_tree[REP_3_6 * 2]/*.Freq*/++; + + } else if (count <= 10) { + s.bl_tree[REPZ_3_10 * 2]/*.Freq*/++; + + } else { + s.bl_tree[REPZ_11_138 * 2]/*.Freq*/++; + } + + count = 0; + prevlen = curlen; + + if (nextlen === 0) { + max_count = 138; + min_count = 3; + + } else if (curlen === nextlen) { + max_count = 6; + min_count = 3; + + } else { + max_count = 7; + min_count = 4; + } + } + }; + + + /* =========================================================================== + * Send a literal or distance tree in compressed form, using the codes in + * bl_tree. + */ + const send_tree = (s, tree, max_code) => + // deflate_state *s; + // ct_data *tree; /* the tree to be scanned */ + // int max_code; /* and its largest code of non zero frequency */ + { + let n; /* iterates over all tree elements */ + let prevlen = -1; /* last emitted length */ + let curlen; /* length of current code */ + + let nextlen = tree[0 * 2 + 1]/*.Len*/; /* length of next code */ + + let count = 0; /* repeat count of the current code */ + let max_count = 7; /* max repeat count */ + let min_count = 4; /* min repeat count */ + + /* tree[max_code+1].Len = -1; */ /* guard already set */ + if (nextlen === 0) { + max_count = 138; + min_count = 3; + } + + for (n = 0; n <= max_code; n++) { + curlen = nextlen; + nextlen = tree[(n + 1) * 2 + 1]/*.Len*/; + + if (++count < max_count && curlen === nextlen) { + continue; + + } else if (count < min_count) { + do { send_code(s, curlen, s.bl_tree); } while (--count !== 0); + + } else if (curlen !== 0) { + if (curlen !== prevlen) { + send_code(s, curlen, s.bl_tree); + count--; + } + //Assert(count >= 3 && count <= 6, " 3_6?"); + send_code(s, REP_3_6, s.bl_tree); + send_bits(s, count - 3, 2); + + } else if (count <= 10) { + send_code(s, REPZ_3_10, s.bl_tree); + send_bits(s, count - 3, 3); + + } else { + send_code(s, REPZ_11_138, s.bl_tree); + send_bits(s, count - 11, 7); + } + + count = 0; + prevlen = curlen; + if (nextlen === 0) { + max_count = 138; + min_count = 3; + + } else if (curlen === nextlen) { + max_count = 6; + min_count = 3; + + } else { + max_count = 7; + min_count = 4; + } + } + }; + + + /* =========================================================================== + * Construct the Huffman tree for the bit lengths and return the index in + * bl_order of the last bit length code to send. + */ + const build_bl_tree = (s) => { + + let max_blindex; /* index of last bit length code of non zero freq */ + + /* Determine the bit length frequencies for literal and distance trees */ + scan_tree(s, s.dyn_ltree, s.l_desc.max_code); + scan_tree(s, s.dyn_dtree, s.d_desc.max_code); + + /* Build the bit length tree: */ + build_tree(s, s.bl_desc); + /* opt_len now includes the length of the tree representations, except + * the lengths of the bit lengths codes and the 5+5+4 bits for the counts. + */ + + /* Determine the number of bit length codes to send. The pkzip format + * requires that at least 4 bit length codes be sent. (appnote.txt says + * 3 but the actual value used is 4.) + */ + for (max_blindex = BL_CODES$1 - 1; max_blindex >= 3; max_blindex--) { + if (s.bl_tree[bl_order[max_blindex] * 2 + 1]/*.Len*/ !== 0) { + break; + } + } + /* Update opt_len to include the bit length tree and counts */ + s.opt_len += 3 * (max_blindex + 1) + 5 + 5 + 4; + //Tracev((stderr, "\ndyn trees: dyn %ld, stat %ld", + // s->opt_len, s->static_len)); + + return max_blindex; + }; + + + /* =========================================================================== + * Send the header for a block using dynamic Huffman trees: the counts, the + * lengths of the bit length codes, the literal tree and the distance tree. + * IN assertion: lcodes >= 257, dcodes >= 1, blcodes >= 4. + */ + const send_all_trees = (s, lcodes, dcodes, blcodes) => + // deflate_state *s; + // int lcodes, dcodes, blcodes; /* number of codes for each tree */ + { + let rank; /* index in bl_order */ + + //Assert (lcodes >= 257 && dcodes >= 1 && blcodes >= 4, "not enough codes"); + //Assert (lcodes <= L_CODES && dcodes <= D_CODES && blcodes <= BL_CODES, + // "too many codes"); + //Tracev((stderr, "\nbl counts: ")); + send_bits(s, lcodes - 257, 5); /* not +255 as stated in appnote.txt */ + send_bits(s, dcodes - 1, 5); + send_bits(s, blcodes - 4, 4); /* not -3 as stated in appnote.txt */ + for (rank = 0; rank < blcodes; rank++) { + //Tracev((stderr, "\nbl code %2d ", bl_order[rank])); + send_bits(s, s.bl_tree[bl_order[rank] * 2 + 1]/*.Len*/, 3); + } + //Tracev((stderr, "\nbl tree: sent %ld", s->bits_sent)); + + send_tree(s, s.dyn_ltree, lcodes - 1); /* literal tree */ + //Tracev((stderr, "\nlit tree: sent %ld", s->bits_sent)); + + send_tree(s, s.dyn_dtree, dcodes - 1); /* distance tree */ + //Tracev((stderr, "\ndist tree: sent %ld", s->bits_sent)); + }; + + + /* =========================================================================== + * Check if the data type is TEXT or BINARY, using the following algorithm: + * - TEXT if the two conditions below are satisfied: + * a) There are no non-portable control characters belonging to the + * "black list" (0..6, 14..25, 28..31). + * b) There is at least one printable character belonging to the + * "white list" (9 {TAB}, 10 {LF}, 13 {CR}, 32..255). + * - BINARY otherwise. + * - The following partially-portable control characters form a + * "gray list" that is ignored in this detection algorithm: + * (7 {BEL}, 8 {BS}, 11 {VT}, 12 {FF}, 26 {SUB}, 27 {ESC}). + * IN assertion: the fields Freq of dyn_ltree are set. + */ + const detect_data_type = (s) => { + /* black_mask is the bit mask of black-listed bytes + * set bits 0..6, 14..25, and 28..31 + * 0xf3ffc07f = binary 11110011111111111100000001111111 + */ + let black_mask = 0xf3ffc07f; + let n; + + /* Check for non-textual ("black-listed") bytes. */ + for (n = 0; n <= 31; n++, black_mask >>>= 1) { + if ((black_mask & 1) && (s.dyn_ltree[n * 2]/*.Freq*/ !== 0)) { + return Z_BINARY; + } + } + + /* Check for textual ("white-listed") bytes. */ + if (s.dyn_ltree[9 * 2]/*.Freq*/ !== 0 || s.dyn_ltree[10 * 2]/*.Freq*/ !== 0 || + s.dyn_ltree[13 * 2]/*.Freq*/ !== 0) { + return Z_TEXT; + } + for (n = 32; n < LITERALS$1; n++) { + if (s.dyn_ltree[n * 2]/*.Freq*/ !== 0) { + return Z_TEXT; + } + } + + /* There are no "black-listed" or "white-listed" bytes: + * this stream either is empty or has tolerated ("gray-listed") bytes only. + */ + return Z_BINARY; + }; + + + let static_init_done = false; + + /* =========================================================================== + * Initialize the tree data structures for a new zlib stream. + */ + const _tr_init$1 = (s) => + { + + if (!static_init_done) { + tr_static_init(); + static_init_done = true; + } + + s.l_desc = new TreeDesc(s.dyn_ltree, static_l_desc); + s.d_desc = new TreeDesc(s.dyn_dtree, static_d_desc); + s.bl_desc = new TreeDesc(s.bl_tree, static_bl_desc); + + s.bi_buf = 0; + s.bi_valid = 0; + + /* Initialize the first block of the first file: */ + init_block(s); + }; + + + /* =========================================================================== + * Send a stored block + */ + const _tr_stored_block$1 = (s, buf, stored_len, last) => + //DeflateState *s; + //charf *buf; /* input block */ + //ulg stored_len; /* length of input block */ + //int last; /* one if this is the last block for a file */ + { + send_bits(s, (STORED_BLOCK << 1) + (last ? 1 : 0), 3); /* send block type */ + copy_block(s, buf, stored_len, true); /* with header */ + }; + + + /* =========================================================================== + * Send one empty static block to give enough lookahead for inflate. + * This takes 10 bits, of which 7 may remain in the bit buffer. + */ + const _tr_align$1 = (s) => { + send_bits(s, STATIC_TREES << 1, 3); + send_code(s, END_BLOCK, static_ltree); + bi_flush(s); + }; + + + /* =========================================================================== + * Determine the best encoding for the current block: dynamic trees, static + * trees or store, and output the encoded block to the zip file. + */ + const _tr_flush_block$1 = (s, buf, stored_len, last) => + //DeflateState *s; + //charf *buf; /* input block, or NULL if too old */ + //ulg stored_len; /* length of input block */ + //int last; /* one if this is the last block for a file */ + { + let opt_lenb, static_lenb; /* opt_len and static_len in bytes */ + let max_blindex = 0; /* index of last bit length code of non zero freq */ + + /* Build the Huffman trees unless a stored block is forced */ + if (s.level > 0) { + + /* Check if the file is binary or text */ + if (s.strm.data_type === Z_UNKNOWN$1) { + s.strm.data_type = detect_data_type(s); + } + + /* Construct the literal and distance trees */ + build_tree(s, s.l_desc); + // Tracev((stderr, "\nlit data: dyn %ld, stat %ld", s->opt_len, + // s->static_len)); + + build_tree(s, s.d_desc); + // Tracev((stderr, "\ndist data: dyn %ld, stat %ld", s->opt_len, + // s->static_len)); + /* At this point, opt_len and static_len are the total bit lengths of + * the compressed block data, excluding the tree representations. + */ + + /* Build the bit length tree for the above two trees, and get the index + * in bl_order of the last bit length code to send. + */ + max_blindex = build_bl_tree(s); + + /* Determine the best encoding. Compute the block lengths in bytes. */ + opt_lenb = (s.opt_len + 3 + 7) >>> 3; + static_lenb = (s.static_len + 3 + 7) >>> 3; + + // Tracev((stderr, "\nopt %lu(%lu) stat %lu(%lu) stored %lu lit %u ", + // opt_lenb, s->opt_len, static_lenb, s->static_len, stored_len, + // s->last_lit)); + + if (static_lenb <= opt_lenb) { opt_lenb = static_lenb; } + + } else { + // Assert(buf != (char*)0, "lost buf"); + opt_lenb = static_lenb = stored_len + 5; /* force a stored block */ + } + + if ((stored_len + 4 <= opt_lenb) && (buf !== -1)) { + /* 4: two words for the lengths */ + + /* The test buf != NULL is only necessary if LIT_BUFSIZE > WSIZE. + * Otherwise we can't have processed more than WSIZE input bytes since + * the last block flush, because compression would have been + * successful. If LIT_BUFSIZE <= WSIZE, it is never too late to + * transform a block into a stored block. + */ + _tr_stored_block$1(s, buf, stored_len, last); + + } else if (s.strategy === Z_FIXED$1 || static_lenb === opt_lenb) { + + send_bits(s, (STATIC_TREES << 1) + (last ? 1 : 0), 3); + compress_block(s, static_ltree, static_dtree); + + } else { + send_bits(s, (DYN_TREES << 1) + (last ? 1 : 0), 3); + send_all_trees(s, s.l_desc.max_code + 1, s.d_desc.max_code + 1, max_blindex + 1); + compress_block(s, s.dyn_ltree, s.dyn_dtree); + } + // Assert (s->compressed_len == s->bits_sent, "bad compressed size"); + /* The above check is made mod 2^32, for files larger than 512 MB + * and uLong implemented on 32 bits. + */ + init_block(s); + + if (last) { + bi_windup(s); + } + // Tracev((stderr,"\ncomprlen %lu(%lu) ", s->compressed_len>>3, + // s->compressed_len-7*last)); + }; + + /* =========================================================================== + * Save the match info and tally the frequency counts. Return true if + * the current block must be flushed. + */ + const _tr_tally$1 = (s, dist, lc) => + // deflate_state *s; + // unsigned dist; /* distance of matched string */ + // unsigned lc; /* match length-MIN_MATCH or unmatched char (if dist==0) */ + { + //let out_length, in_length, dcode; + + s.pending_buf[s.d_buf + s.last_lit * 2] = (dist >>> 8) & 0xff; + s.pending_buf[s.d_buf + s.last_lit * 2 + 1] = dist & 0xff; + + s.pending_buf[s.l_buf + s.last_lit] = lc & 0xff; + s.last_lit++; + + if (dist === 0) { + /* lc is the unmatched char */ + s.dyn_ltree[lc * 2]/*.Freq*/++; + } else { + s.matches++; + /* Here, lc is the match length - MIN_MATCH */ + dist--; /* dist = match distance - 1 */ + //Assert((ush)dist < (ush)MAX_DIST(s) && + // (ush)lc <= (ush)(MAX_MATCH-MIN_MATCH) && + // (ush)d_code(dist) < (ush)D_CODES, "_tr_tally: bad match"); + + s.dyn_ltree[(_length_code[lc] + LITERALS$1 + 1) * 2]/*.Freq*/++; + s.dyn_dtree[d_code(dist) * 2]/*.Freq*/++; + } + + // (!) This block is disabled in zlib defaults, + // don't enable it for binary compatibility + + //#ifdef TRUNCATE_BLOCK + // /* Try to guess if it is profitable to stop the current block here */ + // if ((s.last_lit & 0x1fff) === 0 && s.level > 2) { + // /* Compute an upper bound for the compressed length */ + // out_length = s.last_lit*8; + // in_length = s.strstart - s.block_start; + // + // for (dcode = 0; dcode < D_CODES; dcode++) { + // out_length += s.dyn_dtree[dcode*2]/*.Freq*/ * (5 + extra_dbits[dcode]); + // } + // out_length >>>= 3; + // //Tracev((stderr,"\nlast_lit %u, in %ld, out ~%ld(%ld%%) ", + // // s->last_lit, in_length, out_length, + // // 100L - out_length*100L/in_length)); + // if (s.matches < (s.last_lit>>1)/*int /2*/ && out_length < (in_length>>1)/*int /2*/) { + // return true; + // } + // } + //#endif + + return (s.last_lit === s.lit_bufsize - 1); + /* We avoid equality with lit_bufsize because of wraparound at 64K + * on 16 bit machines and because stored blocks are restricted to + * 64K-1 bytes. + */ + }; + + var _tr_init_1 = _tr_init$1; + var _tr_stored_block_1 = _tr_stored_block$1; + var _tr_flush_block_1 = _tr_flush_block$1; + var _tr_tally_1 = _tr_tally$1; + var _tr_align_1 = _tr_align$1; + + var trees = { + _tr_init: _tr_init_1, + _tr_stored_block: _tr_stored_block_1, + _tr_flush_block: _tr_flush_block_1, + _tr_tally: _tr_tally_1, + _tr_align: _tr_align_1 + }; + + // Note: adler32 takes 12% for level 0 and 2% for level 6. + // It isn't worth it to make additional optimizations as in original. + // Small size is preferable. + + // (C) 1995-2013 Jean-loup Gailly and Mark Adler + // (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin + // + // This software is provided 'as-is', without any express or implied + // warranty. In no event will the authors be held liable for any damages + // arising from the use of this software. + // + // Permission is granted to anyone to use this software for any purpose, + // including commercial applications, and to alter it and redistribute it + // freely, subject to the following restrictions: + // + // 1. The origin of this software must not be misrepresented; you must not + // claim that you wrote the original software. If you use this software + // in a product, an acknowledgment in the product documentation would be + // appreciated but is not required. + // 2. Altered source versions must be plainly marked as such, and must not be + // misrepresented as being the original software. + // 3. This notice may not be removed or altered from any source distribution. + + const adler32 = (adler, buf, len, pos) => { + let s1 = (adler & 0xffff) |0, + s2 = ((adler >>> 16) & 0xffff) |0, + n = 0; + + while (len !== 0) { + // Set limit ~ twice less than 5552, to keep + // s2 in 31-bits, because we force signed ints. + // in other case %= will fail. + n = len > 2000 ? 2000 : len; + len -= n; + + do { + s1 = (s1 + buf[pos++]) |0; + s2 = (s2 + s1) |0; + } while (--n); + + s1 %= 65521; + s2 %= 65521; + } + + return (s1 | (s2 << 16)) |0; + }; + + + var adler32_1 = adler32; + + // Note: we can't get significant speed boost here. + // So write code to minimize size - no pregenerated tables + // and array tools dependencies. + + // (C) 1995-2013 Jean-loup Gailly and Mark Adler + // (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin + // + // This software is provided 'as-is', without any express or implied + // warranty. In no event will the authors be held liable for any damages + // arising from the use of this software. + // + // Permission is granted to anyone to use this software for any purpose, + // including commercial applications, and to alter it and redistribute it + // freely, subject to the following restrictions: + // + // 1. The origin of this software must not be misrepresented; you must not + // claim that you wrote the original software. If you use this software + // in a product, an acknowledgment in the product documentation would be + // appreciated but is not required. + // 2. Altered source versions must be plainly marked as such, and must not be + // misrepresented as being the original software. + // 3. This notice may not be removed or altered from any source distribution. + + // Use ordinary array, since untyped makes no boost here + const makeTable = () => { + let c, table = []; + + for (var n = 0; n < 256; n++) { + c = n; + for (var k = 0; k < 8; k++) { + c = ((c & 1) ? (0xEDB88320 ^ (c >>> 1)) : (c >>> 1)); + } + table[n] = c; + } + + return table; + }; + + // Create table on load. Just 255 signed longs. Not a problem. + const crcTable = new Uint32Array(makeTable()); + + + const crc32 = (crc, buf, len, pos) => { + const t = crcTable; + const end = pos + len; + + crc ^= -1; + + for (let i = pos; i < end; i++) { + crc = (crc >>> 8) ^ t[(crc ^ buf[i]) & 0xFF]; + } + + return (crc ^ (-1)); // >>> 0; + }; + + + var crc32_1 = crc32; + + // (C) 1995-2013 Jean-loup Gailly and Mark Adler + // (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin + // + // This software is provided 'as-is', without any express or implied + // warranty. In no event will the authors be held liable for any damages + // arising from the use of this software. + // + // Permission is granted to anyone to use this software for any purpose, + // including commercial applications, and to alter it and redistribute it + // freely, subject to the following restrictions: + // + // 1. The origin of this software must not be misrepresented; you must not + // claim that you wrote the original software. If you use this software + // in a product, an acknowledgment in the product documentation would be + // appreciated but is not required. + // 2. Altered source versions must be plainly marked as such, and must not be + // misrepresented as being the original software. + // 3. This notice may not be removed or altered from any source distribution. + + var messages = { + 2: 'need dictionary', /* Z_NEED_DICT 2 */ + 1: 'stream end', /* Z_STREAM_END 1 */ + 0: '', /* Z_OK 0 */ + '-1': 'file error', /* Z_ERRNO (-1) */ + '-2': 'stream error', /* Z_STREAM_ERROR (-2) */ + '-3': 'data error', /* Z_DATA_ERROR (-3) */ + '-4': 'insufficient memory', /* Z_MEM_ERROR (-4) */ + '-5': 'buffer error', /* Z_BUF_ERROR (-5) */ + '-6': 'incompatible version' /* Z_VERSION_ERROR (-6) */ + }; + + // (C) 1995-2013 Jean-loup Gailly and Mark Adler + // (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin + // + // This software is provided 'as-is', without any express or implied + // warranty. In no event will the authors be held liable for any damages + // arising from the use of this software. + // + // Permission is granted to anyone to use this software for any purpose, + // including commercial applications, and to alter it and redistribute it + // freely, subject to the following restrictions: + // + // 1. The origin of this software must not be misrepresented; you must not + // claim that you wrote the original software. If you use this software + // in a product, an acknowledgment in the product documentation would be + // appreciated but is not required. + // 2. Altered source versions must be plainly marked as such, and must not be + // misrepresented as being the original software. + // 3. This notice may not be removed or altered from any source distribution. + + var constants$2 = { + + /* Allowed flush values; see deflate() and inflate() below for details */ + Z_NO_FLUSH: 0, + Z_PARTIAL_FLUSH: 1, + Z_SYNC_FLUSH: 2, + Z_FULL_FLUSH: 3, + Z_FINISH: 4, + Z_BLOCK: 5, + Z_TREES: 6, + + /* Return codes for the compression/decompression functions. Negative values + * are errors, positive values are used for special but normal events. + */ + Z_OK: 0, + Z_STREAM_END: 1, + Z_NEED_DICT: 2, + Z_ERRNO: -1, + Z_STREAM_ERROR: -2, + Z_DATA_ERROR: -3, + Z_MEM_ERROR: -4, + Z_BUF_ERROR: -5, + //Z_VERSION_ERROR: -6, + + /* compression levels */ + Z_NO_COMPRESSION: 0, + Z_BEST_SPEED: 1, + Z_BEST_COMPRESSION: 9, + Z_DEFAULT_COMPRESSION: -1, + + + Z_FILTERED: 1, + Z_HUFFMAN_ONLY: 2, + Z_RLE: 3, + Z_FIXED: 4, + Z_DEFAULT_STRATEGY: 0, + + /* Possible values of the data_type field (though see inflate()) */ + Z_BINARY: 0, + Z_TEXT: 1, + //Z_ASCII: 1, // = Z_TEXT (deprecated) + Z_UNKNOWN: 2, + + /* The deflate compression method */ + Z_DEFLATED: 8 + //Z_NULL: null // Use -1 or null inline, depending on var type + }; + + // (C) 1995-2013 Jean-loup Gailly and Mark Adler + // (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin + // + // This software is provided 'as-is', without any express or implied + // warranty. In no event will the authors be held liable for any damages + // arising from the use of this software. + // + // Permission is granted to anyone to use this software for any purpose, + // including commercial applications, and to alter it and redistribute it + // freely, subject to the following restrictions: + // + // 1. The origin of this software must not be misrepresented; you must not + // claim that you wrote the original software. If you use this software + // in a product, an acknowledgment in the product documentation would be + // appreciated but is not required. + // 2. Altered source versions must be plainly marked as such, and must not be + // misrepresented as being the original software. + // 3. This notice may not be removed or altered from any source distribution. + + const { _tr_init, _tr_stored_block, _tr_flush_block, _tr_tally, _tr_align } = trees; + + + + + /* Public constants ==========================================================*/ + /* ===========================================================================*/ + + const { + Z_NO_FLUSH: Z_NO_FLUSH$2, Z_PARTIAL_FLUSH, Z_FULL_FLUSH: Z_FULL_FLUSH$1, Z_FINISH: Z_FINISH$3, Z_BLOCK: Z_BLOCK$1, + Z_OK: Z_OK$3, Z_STREAM_END: Z_STREAM_END$3, Z_STREAM_ERROR: Z_STREAM_ERROR$2, Z_DATA_ERROR: Z_DATA_ERROR$2, Z_BUF_ERROR: Z_BUF_ERROR$1, + Z_DEFAULT_COMPRESSION: Z_DEFAULT_COMPRESSION$1, + Z_FILTERED, Z_HUFFMAN_ONLY, Z_RLE, Z_FIXED, Z_DEFAULT_STRATEGY: Z_DEFAULT_STRATEGY$1, + Z_UNKNOWN, + Z_DEFLATED: Z_DEFLATED$2 + } = constants$2; + + /*============================================================================*/ + + + const MAX_MEM_LEVEL = 9; + /* Maximum value for memLevel in deflateInit2 */ + const MAX_WBITS$1 = 15; + /* 32K LZ77 window */ + const DEF_MEM_LEVEL = 8; + + + const LENGTH_CODES = 29; + /* number of length codes, not counting the special END_BLOCK code */ + const LITERALS = 256; + /* number of literal bytes 0..255 */ + const L_CODES = LITERALS + 1 + LENGTH_CODES; + /* number of Literal or Length codes, including the END_BLOCK code */ + const D_CODES = 30; + /* number of distance codes */ + const BL_CODES = 19; + /* number of codes used to transfer the bit lengths */ + const HEAP_SIZE = 2 * L_CODES + 1; + /* maximum heap size */ + const MAX_BITS = 15; + /* All codes must not exceed MAX_BITS bits */ + + const MIN_MATCH = 3; + const MAX_MATCH = 258; + const MIN_LOOKAHEAD = (MAX_MATCH + MIN_MATCH + 1); + + const PRESET_DICT = 0x20; + + const INIT_STATE = 42; + const EXTRA_STATE = 69; + const NAME_STATE = 73; + const COMMENT_STATE = 91; + const HCRC_STATE = 103; + const BUSY_STATE = 113; + const FINISH_STATE = 666; + + const BS_NEED_MORE = 1; /* block not completed, need more input or more output */ + const BS_BLOCK_DONE = 2; /* block flush performed */ + const BS_FINISH_STARTED = 3; /* finish started, need only more output at next deflate */ + const BS_FINISH_DONE = 4; /* finish done, accept no more input or output */ + + const OS_CODE = 0x03; // Unix :) . Don't detect, use this default. + + const err = (strm, errorCode) => { + strm.msg = messages[errorCode]; + return errorCode; + }; + + const rank = (f) => { + return ((f) << 1) - ((f) > 4 ? 9 : 0); + }; + + const zero$2 = (buf) => { + let len = buf.length; while (--len >= 0) { buf[len] = 0; } + }; + + + /* eslint-disable new-cap */ + let HASH_ZLIB = (s, prev, data) => ((prev << s.hash_shift) ^ data) & s.hash_mask; + // This hash causes less collisions, https://github.com/nodeca/pako/issues/135 + // But breaks binary compatibility + //let HASH_FAST = (s, prev, data) => ((prev << 8) + (prev >> 8) + (data << 4)) & s.hash_mask; + let HASH = HASH_ZLIB; + + /* ========================================================================= + * Flush as much pending output as possible. All deflate() output goes + * through this function so some applications may wish to modify it + * to avoid allocating a large strm->output buffer and copying into it. + * (See also read_buf()). + */ + const flush_pending = (strm) => { + const s = strm.state; + + //_tr_flush_bits(s); + let len = s.pending; + if (len > strm.avail_out) { + len = strm.avail_out; + } + if (len === 0) { return; } + + strm.output.set(s.pending_buf.subarray(s.pending_out, s.pending_out + len), strm.next_out); + strm.next_out += len; + s.pending_out += len; + strm.total_out += len; + strm.avail_out -= len; + s.pending -= len; + if (s.pending === 0) { + s.pending_out = 0; + } + }; + + + const flush_block_only = (s, last) => { + _tr_flush_block(s, (s.block_start >= 0 ? s.block_start : -1), s.strstart - s.block_start, last); + s.block_start = s.strstart; + flush_pending(s.strm); + }; + + + const put_byte = (s, b) => { + s.pending_buf[s.pending++] = b; + }; + + + /* ========================================================================= + * Put a short in the pending buffer. The 16-bit value is put in MSB order. + * IN assertion: the stream state is correct and there is enough room in + * pending_buf. + */ + const putShortMSB = (s, b) => { + + // put_byte(s, (Byte)(b >> 8)); + // put_byte(s, (Byte)(b & 0xff)); + s.pending_buf[s.pending++] = (b >>> 8) & 0xff; + s.pending_buf[s.pending++] = b & 0xff; + }; + + + /* =========================================================================== + * Read a new buffer from the current input stream, update the adler32 + * and total number of bytes read. All deflate() input goes through + * this function so some applications may wish to modify it to avoid + * allocating a large strm->input buffer and copying from it. + * (See also flush_pending()). + */ + const read_buf = (strm, buf, start, size) => { + + let len = strm.avail_in; + + if (len > size) { len = size; } + if (len === 0) { return 0; } + + strm.avail_in -= len; + + // zmemcpy(buf, strm->next_in, len); + buf.set(strm.input.subarray(strm.next_in, strm.next_in + len), start); + if (strm.state.wrap === 1) { + strm.adler = adler32_1(strm.adler, buf, len, start); + } + + else if (strm.state.wrap === 2) { + strm.adler = crc32_1(strm.adler, buf, len, start); + } + + strm.next_in += len; + strm.total_in += len; + + return len; + }; + + + /* =========================================================================== + * Set match_start to the longest match starting at the given string and + * return its length. Matches shorter or equal to prev_length are discarded, + * in which case the result is equal to prev_length and match_start is + * garbage. + * IN assertions: cur_match is the head of the hash chain for the current + * string (strstart) and its distance is <= MAX_DIST, and prev_length >= 1 + * OUT assertion: the match length is not greater than s->lookahead. + */ + const longest_match = (s, cur_match) => { + + let chain_length = s.max_chain_length; /* max hash chain length */ + let scan = s.strstart; /* current string */ + let match; /* matched string */ + let len; /* length of current match */ + let best_len = s.prev_length; /* best match length so far */ + let nice_match = s.nice_match; /* stop if match long enough */ + const limit = (s.strstart > (s.w_size - MIN_LOOKAHEAD)) ? + s.strstart - (s.w_size - MIN_LOOKAHEAD) : 0/*NIL*/; + + const _win = s.window; // shortcut + + const wmask = s.w_mask; + const prev = s.prev; + + /* Stop when cur_match becomes <= limit. To simplify the code, + * we prevent matches with the string of window index 0. + */ + + const strend = s.strstart + MAX_MATCH; + let scan_end1 = _win[scan + best_len - 1]; + let scan_end = _win[scan + best_len]; + + /* The code is optimized for HASH_BITS >= 8 and MAX_MATCH-2 multiple of 16. + * It is easy to get rid of this optimization if necessary. + */ + // Assert(s->hash_bits >= 8 && MAX_MATCH == 258, "Code too clever"); + + /* Do not waste too much time if we already have a good match: */ + if (s.prev_length >= s.good_match) { + chain_length >>= 2; + } + /* Do not look for matches beyond the end of the input. This is necessary + * to make deflate deterministic. + */ + if (nice_match > s.lookahead) { nice_match = s.lookahead; } + + // Assert((ulg)s->strstart <= s->window_size-MIN_LOOKAHEAD, "need lookahead"); + + do { + // Assert(cur_match < s->strstart, "no future"); + match = cur_match; + + /* Skip to next match if the match length cannot increase + * or if the match length is less than 2. Note that the checks below + * for insufficient lookahead only occur occasionally for performance + * reasons. Therefore uninitialized memory will be accessed, and + * conditional jumps will be made that depend on those values. + * However the length of the match is limited to the lookahead, so + * the output of deflate is not affected by the uninitialized values. + */ + + if (_win[match + best_len] !== scan_end || + _win[match + best_len - 1] !== scan_end1 || + _win[match] !== _win[scan] || + _win[++match] !== _win[scan + 1]) { + continue; + } + + /* The check at best_len-1 can be removed because it will be made + * again later. (This heuristic is not always a win.) + * It is not necessary to compare scan[2] and match[2] since they + * are always equal when the other bytes match, given that + * the hash keys are equal and that HASH_BITS >= 8. + */ + scan += 2; + match++; + // Assert(*scan == *match, "match[2]?"); + + /* We check for insufficient lookahead only every 8th comparison; + * the 256th check will be made at strstart+258. + */ + do { + /*jshint noempty:false*/ + } while (_win[++scan] === _win[++match] && _win[++scan] === _win[++match] && + _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && + _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && + _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && + scan < strend); + + // Assert(scan <= s->window+(unsigned)(s->window_size-1), "wild scan"); + + len = MAX_MATCH - (strend - scan); + scan = strend - MAX_MATCH; + + if (len > best_len) { + s.match_start = cur_match; + best_len = len; + if (len >= nice_match) { + break; + } + scan_end1 = _win[scan + best_len - 1]; + scan_end = _win[scan + best_len]; + } + } while ((cur_match = prev[cur_match & wmask]) > limit && --chain_length !== 0); + + if (best_len <= s.lookahead) { + return best_len; + } + return s.lookahead; + }; + + + /* =========================================================================== + * Fill the window when the lookahead becomes insufficient. + * Updates strstart and lookahead. + * + * IN assertion: lookahead < MIN_LOOKAHEAD + * OUT assertions: strstart <= window_size-MIN_LOOKAHEAD + * At least one byte has been read, or avail_in == 0; reads are + * performed for at least two bytes (required for the zip translate_eol + * option -- not supported here). + */ + const fill_window = (s) => { + + const _w_size = s.w_size; + let p, n, m, more, str; + + //Assert(s->lookahead < MIN_LOOKAHEAD, "already enough lookahead"); + + do { + more = s.window_size - s.lookahead - s.strstart; + + // JS ints have 32 bit, block below not needed + /* Deal with !@#$% 64K limit: */ + //if (sizeof(int) <= 2) { + // if (more == 0 && s->strstart == 0 && s->lookahead == 0) { + // more = wsize; + // + // } else if (more == (unsigned)(-1)) { + // /* Very unlikely, but possible on 16 bit machine if + // * strstart == 0 && lookahead == 1 (input done a byte at time) + // */ + // more--; + // } + //} + + + /* If the window is almost full and there is insufficient lookahead, + * move the upper half to the lower one to make room in the upper half. + */ + if (s.strstart >= _w_size + (_w_size - MIN_LOOKAHEAD)) { + + s.window.set(s.window.subarray(_w_size, _w_size + _w_size), 0); + s.match_start -= _w_size; + s.strstart -= _w_size; + /* we now have strstart >= MAX_DIST */ + s.block_start -= _w_size; + + /* Slide the hash table (could be avoided with 32 bit values + at the expense of memory usage). We slide even when level == 0 + to keep the hash table consistent if we switch back to level > 0 + later. (Using level 0 permanently is not an optimal usage of + zlib, so we don't care about this pathological case.) + */ + + n = s.hash_size; + p = n; + + do { + m = s.head[--p]; + s.head[p] = (m >= _w_size ? m - _w_size : 0); + } while (--n); + + n = _w_size; + p = n; + + do { + m = s.prev[--p]; + s.prev[p] = (m >= _w_size ? m - _w_size : 0); + /* If n is not on any hash chain, prev[n] is garbage but + * its value will never be used. + */ + } while (--n); + + more += _w_size; + } + if (s.strm.avail_in === 0) { + break; + } + + /* If there was no sliding: + * strstart <= WSIZE+MAX_DIST-1 && lookahead <= MIN_LOOKAHEAD - 1 && + * more == window_size - lookahead - strstart + * => more >= window_size - (MIN_LOOKAHEAD-1 + WSIZE + MAX_DIST-1) + * => more >= window_size - 2*WSIZE + 2 + * In the BIG_MEM or MMAP case (not yet supported), + * window_size == input_size + MIN_LOOKAHEAD && + * strstart + s->lookahead <= input_size => more >= MIN_LOOKAHEAD. + * Otherwise, window_size == 2*WSIZE so more >= 2. + * If there was sliding, more >= WSIZE. So in all cases, more >= 2. + */ + //Assert(more >= 2, "more < 2"); + n = read_buf(s.strm, s.window, s.strstart + s.lookahead, more); + s.lookahead += n; + + /* Initialize the hash value now that we have some input: */ + if (s.lookahead + s.insert >= MIN_MATCH) { + str = s.strstart - s.insert; + s.ins_h = s.window[str]; + + /* UPDATE_HASH(s, s->ins_h, s->window[str + 1]); */ + s.ins_h = HASH(s, s.ins_h, s.window[str + 1]); + //#if MIN_MATCH != 3 + // Call update_hash() MIN_MATCH-3 more times + //#endif + while (s.insert) { + /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */ + s.ins_h = HASH(s, s.ins_h, s.window[str + MIN_MATCH - 1]); + + s.prev[str & s.w_mask] = s.head[s.ins_h]; + s.head[s.ins_h] = str; + str++; + s.insert--; + if (s.lookahead + s.insert < MIN_MATCH) { + break; + } + } + } + /* If the whole input has less than MIN_MATCH bytes, ins_h is garbage, + * but this is not important since only literal bytes will be emitted. + */ + + } while (s.lookahead < MIN_LOOKAHEAD && s.strm.avail_in !== 0); + + /* If the WIN_INIT bytes after the end of the current data have never been + * written, then zero those bytes in order to avoid memory check reports of + * the use of uninitialized (or uninitialised as Julian writes) bytes by + * the longest match routines. Update the high water mark for the next + * time through here. WIN_INIT is set to MAX_MATCH since the longest match + * routines allow scanning to strstart + MAX_MATCH, ignoring lookahead. + */ + // if (s.high_water < s.window_size) { + // const curr = s.strstart + s.lookahead; + // let init = 0; + // + // if (s.high_water < curr) { + // /* Previous high water mark below current data -- zero WIN_INIT + // * bytes or up to end of window, whichever is less. + // */ + // init = s.window_size - curr; + // if (init > WIN_INIT) + // init = WIN_INIT; + // zmemzero(s->window + curr, (unsigned)init); + // s->high_water = curr + init; + // } + // else if (s->high_water < (ulg)curr + WIN_INIT) { + // /* High water mark at or above current data, but below current data + // * plus WIN_INIT -- zero out to current data plus WIN_INIT, or up + // * to end of window, whichever is less. + // */ + // init = (ulg)curr + WIN_INIT - s->high_water; + // if (init > s->window_size - s->high_water) + // init = s->window_size - s->high_water; + // zmemzero(s->window + s->high_water, (unsigned)init); + // s->high_water += init; + // } + // } + // + // Assert((ulg)s->strstart <= s->window_size - MIN_LOOKAHEAD, + // "not enough room for search"); + }; + + /* =========================================================================== + * Copy without compression as much as possible from the input stream, return + * the current block state. + * This function does not insert new strings in the dictionary since + * uncompressible data is probably not useful. This function is used + * only for the level=0 compression option. + * NOTE: this function should be optimized to avoid extra copying from + * window to pending_buf. + */ + const deflate_stored = (s, flush) => { + + /* Stored blocks are limited to 0xffff bytes, pending_buf is limited + * to pending_buf_size, and each stored block has a 5 byte header: + */ + let max_block_size = 0xffff; + + if (max_block_size > s.pending_buf_size - 5) { + max_block_size = s.pending_buf_size - 5; + } + + /* Copy as much as possible from input to output: */ + for (;;) { + /* Fill the window as much as possible: */ + if (s.lookahead <= 1) { + + //Assert(s->strstart < s->w_size+MAX_DIST(s) || + // s->block_start >= (long)s->w_size, "slide too late"); + // if (!(s.strstart < s.w_size + (s.w_size - MIN_LOOKAHEAD) || + // s.block_start >= s.w_size)) { + // throw new Error("slide too late"); + // } + + fill_window(s); + if (s.lookahead === 0 && flush === Z_NO_FLUSH$2) { + return BS_NEED_MORE; + } + + if (s.lookahead === 0) { + break; + } + /* flush the current block */ + } + //Assert(s->block_start >= 0L, "block gone"); + // if (s.block_start < 0) throw new Error("block gone"); + + s.strstart += s.lookahead; + s.lookahead = 0; + + /* Emit a stored block if pending_buf will be full: */ + const max_start = s.block_start + max_block_size; + + if (s.strstart === 0 || s.strstart >= max_start) { + /* strstart == 0 is possible when wraparound on 16-bit machine */ + s.lookahead = s.strstart - max_start; + s.strstart = max_start; + /*** FLUSH_BLOCK(s, 0); ***/ + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + /***/ + + + } + /* Flush if we may have to slide, otherwise block_start may become + * negative and the data will be gone: + */ + if (s.strstart - s.block_start >= (s.w_size - MIN_LOOKAHEAD)) { + /*** FLUSH_BLOCK(s, 0); ***/ + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + /***/ + } + } + + s.insert = 0; + + if (flush === Z_FINISH$3) { + /*** FLUSH_BLOCK(s, 1); ***/ + flush_block_only(s, true); + if (s.strm.avail_out === 0) { + return BS_FINISH_STARTED; + } + /***/ + return BS_FINISH_DONE; + } + + if (s.strstart > s.block_start) { + /*** FLUSH_BLOCK(s, 0); ***/ + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + /***/ + } + + return BS_NEED_MORE; + }; + + /* =========================================================================== + * Compress as much as possible from the input stream, return the current + * block state. + * This function does not perform lazy evaluation of matches and inserts + * new strings in the dictionary only for unmatched strings or for short + * matches. It is used only for the fast compression options. + */ + const deflate_fast = (s, flush) => { + + let hash_head; /* head of the hash chain */ + let bflush; /* set if current block must be flushed */ + + for (;;) { + /* Make sure that we always have enough lookahead, except + * at the end of the input file. We need MAX_MATCH bytes + * for the next match, plus MIN_MATCH bytes to insert the + * string following the next match. + */ + if (s.lookahead < MIN_LOOKAHEAD) { + fill_window(s); + if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH$2) { + return BS_NEED_MORE; + } + if (s.lookahead === 0) { + break; /* flush the current block */ + } + } + + /* Insert the string window[strstart .. strstart+2] in the + * dictionary, and set hash_head to the head of the hash chain: + */ + hash_head = 0/*NIL*/; + if (s.lookahead >= MIN_MATCH) { + /*** INSERT_STRING(s, s.strstart, hash_head); ***/ + s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]); + hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h]; + s.head[s.ins_h] = s.strstart; + /***/ + } + + /* Find the longest match, discarding those <= prev_length. + * At this point we have always match_length < MIN_MATCH + */ + if (hash_head !== 0/*NIL*/ && ((s.strstart - hash_head) <= (s.w_size - MIN_LOOKAHEAD))) { + /* To simplify the code, we prevent matches with the string + * of window index 0 (in particular we have to avoid a match + * of the string with itself at the start of the input file). + */ + s.match_length = longest_match(s, hash_head); + /* longest_match() sets match_start */ + } + if (s.match_length >= MIN_MATCH) { + // check_match(s, s.strstart, s.match_start, s.match_length); // for debug only + + /*** _tr_tally_dist(s, s.strstart - s.match_start, + s.match_length - MIN_MATCH, bflush); ***/ + bflush = _tr_tally(s, s.strstart - s.match_start, s.match_length - MIN_MATCH); + + s.lookahead -= s.match_length; + + /* Insert new strings in the hash table only if the match length + * is not too large. This saves time but degrades compression. + */ + if (s.match_length <= s.max_lazy_match/*max_insert_length*/ && s.lookahead >= MIN_MATCH) { + s.match_length--; /* string at strstart already in table */ + do { + s.strstart++; + /*** INSERT_STRING(s, s.strstart, hash_head); ***/ + s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]); + hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h]; + s.head[s.ins_h] = s.strstart; + /***/ + /* strstart never exceeds WSIZE-MAX_MATCH, so there are + * always MIN_MATCH bytes ahead. + */ + } while (--s.match_length !== 0); + s.strstart++; + } else + { + s.strstart += s.match_length; + s.match_length = 0; + s.ins_h = s.window[s.strstart]; + /* UPDATE_HASH(s, s.ins_h, s.window[s.strstart+1]); */ + s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + 1]); + + //#if MIN_MATCH != 3 + // Call UPDATE_HASH() MIN_MATCH-3 more times + //#endif + /* If lookahead < MIN_MATCH, ins_h is garbage, but it does not + * matter since it will be recomputed at next deflate call. + */ + } + } else { + /* No match, output a literal byte */ + //Tracevv((stderr,"%c", s.window[s.strstart])); + /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/ + bflush = _tr_tally(s, 0, s.window[s.strstart]); + + s.lookahead--; + s.strstart++; + } + if (bflush) { + /*** FLUSH_BLOCK(s, 0); ***/ + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + /***/ + } + } + s.insert = ((s.strstart < (MIN_MATCH - 1)) ? s.strstart : MIN_MATCH - 1); + if (flush === Z_FINISH$3) { + /*** FLUSH_BLOCK(s, 1); ***/ + flush_block_only(s, true); + if (s.strm.avail_out === 0) { + return BS_FINISH_STARTED; + } + /***/ + return BS_FINISH_DONE; + } + if (s.last_lit) { + /*** FLUSH_BLOCK(s, 0); ***/ + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + /***/ + } + return BS_BLOCK_DONE; + }; + + /* =========================================================================== + * Same as above, but achieves better compression. We use a lazy + * evaluation for matches: a match is finally adopted only if there is + * no better match at the next window position. + */ + const deflate_slow = (s, flush) => { + + let hash_head; /* head of hash chain */ + let bflush; /* set if current block must be flushed */ + + let max_insert; + + /* Process the input block. */ + for (;;) { + /* Make sure that we always have enough lookahead, except + * at the end of the input file. We need MAX_MATCH bytes + * for the next match, plus MIN_MATCH bytes to insert the + * string following the next match. + */ + if (s.lookahead < MIN_LOOKAHEAD) { + fill_window(s); + if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH$2) { + return BS_NEED_MORE; + } + if (s.lookahead === 0) { break; } /* flush the current block */ + } + + /* Insert the string window[strstart .. strstart+2] in the + * dictionary, and set hash_head to the head of the hash chain: + */ + hash_head = 0/*NIL*/; + if (s.lookahead >= MIN_MATCH) { + /*** INSERT_STRING(s, s.strstart, hash_head); ***/ + s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]); + hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h]; + s.head[s.ins_h] = s.strstart; + /***/ + } + + /* Find the longest match, discarding those <= prev_length. + */ + s.prev_length = s.match_length; + s.prev_match = s.match_start; + s.match_length = MIN_MATCH - 1; + + if (hash_head !== 0/*NIL*/ && s.prev_length < s.max_lazy_match && + s.strstart - hash_head <= (s.w_size - MIN_LOOKAHEAD)/*MAX_DIST(s)*/) { + /* To simplify the code, we prevent matches with the string + * of window index 0 (in particular we have to avoid a match + * of the string with itself at the start of the input file). + */ + s.match_length = longest_match(s, hash_head); + /* longest_match() sets match_start */ + + if (s.match_length <= 5 && + (s.strategy === Z_FILTERED || (s.match_length === MIN_MATCH && s.strstart - s.match_start > 4096/*TOO_FAR*/))) { + + /* If prev_match is also MIN_MATCH, match_start is garbage + * but we will ignore the current match anyway. + */ + s.match_length = MIN_MATCH - 1; + } + } + /* If there was a match at the previous step and the current + * match is not better, output the previous match: + */ + if (s.prev_length >= MIN_MATCH && s.match_length <= s.prev_length) { + max_insert = s.strstart + s.lookahead - MIN_MATCH; + /* Do not insert strings in hash table beyond this. */ + + //check_match(s, s.strstart-1, s.prev_match, s.prev_length); + + /***_tr_tally_dist(s, s.strstart - 1 - s.prev_match, + s.prev_length - MIN_MATCH, bflush);***/ + bflush = _tr_tally(s, s.strstart - 1 - s.prev_match, s.prev_length - MIN_MATCH); + /* Insert in hash table all strings up to the end of the match. + * strstart-1 and strstart are already inserted. If there is not + * enough lookahead, the last two strings are not inserted in + * the hash table. + */ + s.lookahead -= s.prev_length - 1; + s.prev_length -= 2; + do { + if (++s.strstart <= max_insert) { + /*** INSERT_STRING(s, s.strstart, hash_head); ***/ + s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]); + hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h]; + s.head[s.ins_h] = s.strstart; + /***/ + } + } while (--s.prev_length !== 0); + s.match_available = 0; + s.match_length = MIN_MATCH - 1; + s.strstart++; + + if (bflush) { + /*** FLUSH_BLOCK(s, 0); ***/ + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + /***/ + } + + } else if (s.match_available) { + /* If there was no match at the previous position, output a + * single literal. If there was a match but the current match + * is longer, truncate the previous match to a single literal. + */ + //Tracevv((stderr,"%c", s->window[s->strstart-1])); + /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/ + bflush = _tr_tally(s, 0, s.window[s.strstart - 1]); + + if (bflush) { + /*** FLUSH_BLOCK_ONLY(s, 0) ***/ + flush_block_only(s, false); + /***/ + } + s.strstart++; + s.lookahead--; + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + } else { + /* There is no previous match to compare with, wait for + * the next step to decide. + */ + s.match_available = 1; + s.strstart++; + s.lookahead--; + } + } + //Assert (flush != Z_NO_FLUSH, "no flush?"); + if (s.match_available) { + //Tracevv((stderr,"%c", s->window[s->strstart-1])); + /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/ + bflush = _tr_tally(s, 0, s.window[s.strstart - 1]); + + s.match_available = 0; + } + s.insert = s.strstart < MIN_MATCH - 1 ? s.strstart : MIN_MATCH - 1; + if (flush === Z_FINISH$3) { + /*** FLUSH_BLOCK(s, 1); ***/ + flush_block_only(s, true); + if (s.strm.avail_out === 0) { + return BS_FINISH_STARTED; + } + /***/ + return BS_FINISH_DONE; + } + if (s.last_lit) { + /*** FLUSH_BLOCK(s, 0); ***/ + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + /***/ + } + + return BS_BLOCK_DONE; + }; + + + /* =========================================================================== + * For Z_RLE, simply look for runs of bytes, generate matches only of distance + * one. Do not maintain a hash table. (It will be regenerated if this run of + * deflate switches away from Z_RLE.) + */ + const deflate_rle = (s, flush) => { + + let bflush; /* set if current block must be flushed */ + let prev; /* byte at distance one to match */ + let scan, strend; /* scan goes up to strend for length of run */ + + const _win = s.window; + + for (;;) { + /* Make sure that we always have enough lookahead, except + * at the end of the input file. We need MAX_MATCH bytes + * for the longest run, plus one for the unrolled loop. + */ + if (s.lookahead <= MAX_MATCH) { + fill_window(s); + if (s.lookahead <= MAX_MATCH && flush === Z_NO_FLUSH$2) { + return BS_NEED_MORE; + } + if (s.lookahead === 0) { break; } /* flush the current block */ + } + + /* See how many times the previous byte repeats */ + s.match_length = 0; + if (s.lookahead >= MIN_MATCH && s.strstart > 0) { + scan = s.strstart - 1; + prev = _win[scan]; + if (prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan]) { + strend = s.strstart + MAX_MATCH; + do { + /*jshint noempty:false*/ + } while (prev === _win[++scan] && prev === _win[++scan] && + prev === _win[++scan] && prev === _win[++scan] && + prev === _win[++scan] && prev === _win[++scan] && + prev === _win[++scan] && prev === _win[++scan] && + scan < strend); + s.match_length = MAX_MATCH - (strend - scan); + if (s.match_length > s.lookahead) { + s.match_length = s.lookahead; + } + } + //Assert(scan <= s->window+(uInt)(s->window_size-1), "wild scan"); + } + + /* Emit match if have run of MIN_MATCH or longer, else emit literal */ + if (s.match_length >= MIN_MATCH) { + //check_match(s, s.strstart, s.strstart - 1, s.match_length); + + /*** _tr_tally_dist(s, 1, s.match_length - MIN_MATCH, bflush); ***/ + bflush = _tr_tally(s, 1, s.match_length - MIN_MATCH); + + s.lookahead -= s.match_length; + s.strstart += s.match_length; + s.match_length = 0; + } else { + /* No match, output a literal byte */ + //Tracevv((stderr,"%c", s->window[s->strstart])); + /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/ + bflush = _tr_tally(s, 0, s.window[s.strstart]); + + s.lookahead--; + s.strstart++; + } + if (bflush) { + /*** FLUSH_BLOCK(s, 0); ***/ + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + /***/ + } + } + s.insert = 0; + if (flush === Z_FINISH$3) { + /*** FLUSH_BLOCK(s, 1); ***/ + flush_block_only(s, true); + if (s.strm.avail_out === 0) { + return BS_FINISH_STARTED; + } + /***/ + return BS_FINISH_DONE; + } + if (s.last_lit) { + /*** FLUSH_BLOCK(s, 0); ***/ + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + /***/ + } + return BS_BLOCK_DONE; + }; + + /* =========================================================================== + * For Z_HUFFMAN_ONLY, do not look for matches. Do not maintain a hash table. + * (It will be regenerated if this run of deflate switches away from Huffman.) + */ + const deflate_huff = (s, flush) => { + + let bflush; /* set if current block must be flushed */ + + for (;;) { + /* Make sure that we have a literal to write. */ + if (s.lookahead === 0) { + fill_window(s); + if (s.lookahead === 0) { + if (flush === Z_NO_FLUSH$2) { + return BS_NEED_MORE; + } + break; /* flush the current block */ + } + } + + /* Output a literal byte */ + s.match_length = 0; + //Tracevv((stderr,"%c", s->window[s->strstart])); + /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/ + bflush = _tr_tally(s, 0, s.window[s.strstart]); + s.lookahead--; + s.strstart++; + if (bflush) { + /*** FLUSH_BLOCK(s, 0); ***/ + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + /***/ + } + } + s.insert = 0; + if (flush === Z_FINISH$3) { + /*** FLUSH_BLOCK(s, 1); ***/ + flush_block_only(s, true); + if (s.strm.avail_out === 0) { + return BS_FINISH_STARTED; + } + /***/ + return BS_FINISH_DONE; + } + if (s.last_lit) { + /*** FLUSH_BLOCK(s, 0); ***/ + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + /***/ + } + return BS_BLOCK_DONE; + }; + + /* Values for max_lazy_match, good_match and max_chain_length, depending on + * the desired pack level (0..9). The values given below have been tuned to + * exclude worst case performance for pathological files. Better values may be + * found for specific files. + */ + function Config(good_length, max_lazy, nice_length, max_chain, func) { + + this.good_length = good_length; + this.max_lazy = max_lazy; + this.nice_length = nice_length; + this.max_chain = max_chain; + this.func = func; + } + + const configuration_table = [ + /* good lazy nice chain */ + new Config(0, 0, 0, 0, deflate_stored), /* 0 store only */ + new Config(4, 4, 8, 4, deflate_fast), /* 1 max speed, no lazy matches */ + new Config(4, 5, 16, 8, deflate_fast), /* 2 */ + new Config(4, 6, 32, 32, deflate_fast), /* 3 */ + + new Config(4, 4, 16, 16, deflate_slow), /* 4 lazy matches */ + new Config(8, 16, 32, 32, deflate_slow), /* 5 */ + new Config(8, 16, 128, 128, deflate_slow), /* 6 */ + new Config(8, 32, 128, 256, deflate_slow), /* 7 */ + new Config(32, 128, 258, 1024, deflate_slow), /* 8 */ + new Config(32, 258, 258, 4096, deflate_slow) /* 9 max compression */ + ]; + + + /* =========================================================================== + * Initialize the "longest match" routines for a new zlib stream + */ + const lm_init = (s) => { + + s.window_size = 2 * s.w_size; + + /*** CLEAR_HASH(s); ***/ + zero$2(s.head); // Fill with NIL (= 0); + + /* Set the default configuration parameters: + */ + s.max_lazy_match = configuration_table[s.level].max_lazy; + s.good_match = configuration_table[s.level].good_length; + s.nice_match = configuration_table[s.level].nice_length; + s.max_chain_length = configuration_table[s.level].max_chain; + + s.strstart = 0; + s.block_start = 0; + s.lookahead = 0; + s.insert = 0; + s.match_length = s.prev_length = MIN_MATCH - 1; + s.match_available = 0; + s.ins_h = 0; + }; + + + function DeflateState() { + this.strm = null; /* pointer back to this zlib stream */ + this.status = 0; /* as the name implies */ + this.pending_buf = null; /* output still pending */ + this.pending_buf_size = 0; /* size of pending_buf */ + this.pending_out = 0; /* next pending byte to output to the stream */ + this.pending = 0; /* nb of bytes in the pending buffer */ + this.wrap = 0; /* bit 0 true for zlib, bit 1 true for gzip */ + this.gzhead = null; /* gzip header information to write */ + this.gzindex = 0; /* where in extra, name, or comment */ + this.method = Z_DEFLATED$2; /* can only be DEFLATED */ + this.last_flush = -1; /* value of flush param for previous deflate call */ + + this.w_size = 0; /* LZ77 window size (32K by default) */ + this.w_bits = 0; /* log2(w_size) (8..16) */ + this.w_mask = 0; /* w_size - 1 */ + + this.window = null; + /* Sliding window. Input bytes are read into the second half of the window, + * and move to the first half later to keep a dictionary of at least wSize + * bytes. With this organization, matches are limited to a distance of + * wSize-MAX_MATCH bytes, but this ensures that IO is always + * performed with a length multiple of the block size. + */ + + this.window_size = 0; + /* Actual size of window: 2*wSize, except when the user input buffer + * is directly used as sliding window. + */ + + this.prev = null; + /* Link to older string with same hash index. To limit the size of this + * array to 64K, this link is maintained only for the last 32K strings. + * An index in this array is thus a window index modulo 32K. + */ + + this.head = null; /* Heads of the hash chains or NIL. */ + + this.ins_h = 0; /* hash index of string to be inserted */ + this.hash_size = 0; /* number of elements in hash table */ + this.hash_bits = 0; /* log2(hash_size) */ + this.hash_mask = 0; /* hash_size-1 */ + + this.hash_shift = 0; + /* Number of bits by which ins_h must be shifted at each input + * step. It must be such that after MIN_MATCH steps, the oldest + * byte no longer takes part in the hash key, that is: + * hash_shift * MIN_MATCH >= hash_bits + */ + + this.block_start = 0; + /* Window position at the beginning of the current output block. Gets + * negative when the window is moved backwards. + */ + + this.match_length = 0; /* length of best match */ + this.prev_match = 0; /* previous match */ + this.match_available = 0; /* set if previous match exists */ + this.strstart = 0; /* start of string to insert */ + this.match_start = 0; /* start of matching string */ + this.lookahead = 0; /* number of valid bytes ahead in window */ + + this.prev_length = 0; + /* Length of the best match at previous step. Matches not greater than this + * are discarded. This is used in the lazy match evaluation. + */ + + this.max_chain_length = 0; + /* To speed up deflation, hash chains are never searched beyond this + * length. A higher limit improves compression ratio but degrades the + * speed. + */ + + this.max_lazy_match = 0; + /* Attempt to find a better match only when the current match is strictly + * smaller than this value. This mechanism is used only for compression + * levels >= 4. + */ + // That's alias to max_lazy_match, don't use directly + //this.max_insert_length = 0; + /* Insert new strings in the hash table only if the match length is not + * greater than this length. This saves time but degrades compression. + * max_insert_length is used only for compression levels <= 3. + */ + + this.level = 0; /* compression level (1..9) */ + this.strategy = 0; /* favor or force Huffman coding*/ + + this.good_match = 0; + /* Use a faster search when the previous match is longer than this */ + + this.nice_match = 0; /* Stop searching when current match exceeds this */ + + /* used by trees.c: */ + + /* Didn't use ct_data typedef below to suppress compiler warning */ + + // struct ct_data_s dyn_ltree[HEAP_SIZE]; /* literal and length tree */ + // struct ct_data_s dyn_dtree[2*D_CODES+1]; /* distance tree */ + // struct ct_data_s bl_tree[2*BL_CODES+1]; /* Huffman tree for bit lengths */ + + // Use flat array of DOUBLE size, with interleaved fata, + // because JS does not support effective + this.dyn_ltree = new Uint16Array(HEAP_SIZE * 2); + this.dyn_dtree = new Uint16Array((2 * D_CODES + 1) * 2); + this.bl_tree = new Uint16Array((2 * BL_CODES + 1) * 2); + zero$2(this.dyn_ltree); + zero$2(this.dyn_dtree); + zero$2(this.bl_tree); + + this.l_desc = null; /* desc. for literal tree */ + this.d_desc = null; /* desc. for distance tree */ + this.bl_desc = null; /* desc. for bit length tree */ + + //ush bl_count[MAX_BITS+1]; + this.bl_count = new Uint16Array(MAX_BITS + 1); + /* number of codes at each bit length for an optimal tree */ + + //int heap[2*L_CODES+1]; /* heap used to build the Huffman trees */ + this.heap = new Uint16Array(2 * L_CODES + 1); /* heap used to build the Huffman trees */ + zero$2(this.heap); + + this.heap_len = 0; /* number of elements in the heap */ + this.heap_max = 0; /* element of largest frequency */ + /* The sons of heap[n] are heap[2*n] and heap[2*n+1]. heap[0] is not used. + * The same heap array is used to build all trees. + */ + + this.depth = new Uint16Array(2 * L_CODES + 1); //uch depth[2*L_CODES+1]; + zero$2(this.depth); + /* Depth of each subtree used as tie breaker for trees of equal frequency + */ + + this.l_buf = 0; /* buffer index for literals or lengths */ + + this.lit_bufsize = 0; + /* Size of match buffer for literals/lengths. There are 4 reasons for + * limiting lit_bufsize to 64K: + * - frequencies can be kept in 16 bit counters + * - if compression is not successful for the first block, all input + * data is still in the window so we can still emit a stored block even + * when input comes from standard input. (This can also be done for + * all blocks if lit_bufsize is not greater than 32K.) + * - if compression is not successful for a file smaller than 64K, we can + * even emit a stored file instead of a stored block (saving 5 bytes). + * This is applicable only for zip (not gzip or zlib). + * - creating new Huffman trees less frequently may not provide fast + * adaptation to changes in the input data statistics. (Take for + * example a binary file with poorly compressible code followed by + * a highly compressible string table.) Smaller buffer sizes give + * fast adaptation but have of course the overhead of transmitting + * trees more frequently. + * - I can't count above 4 + */ + + this.last_lit = 0; /* running index in l_buf */ + + this.d_buf = 0; + /* Buffer index for distances. To simplify the code, d_buf and l_buf have + * the same number of elements. To use different lengths, an extra flag + * array would be necessary. + */ + + this.opt_len = 0; /* bit length of current block with optimal trees */ + this.static_len = 0; /* bit length of current block with static trees */ + this.matches = 0; /* number of string matches in current block */ + this.insert = 0; /* bytes at end of window left to insert */ + + + this.bi_buf = 0; + /* Output buffer. bits are inserted starting at the bottom (least + * significant bits). + */ + this.bi_valid = 0; + /* Number of valid bits in bi_buf. All bits above the last valid bit + * are always zero. + */ + + // Used for window memory init. We safely ignore it for JS. That makes + // sense only for pointers and memory check tools. + //this.high_water = 0; + /* High water mark offset in window for initialized bytes -- bytes above + * this are set to zero in order to avoid memory check warnings when + * longest match routines access bytes past the input. This is then + * updated to the new high water mark. + */ + } + + + const deflateResetKeep = (strm) => { + + if (!strm || !strm.state) { + return err(strm, Z_STREAM_ERROR$2); + } + + strm.total_in = strm.total_out = 0; + strm.data_type = Z_UNKNOWN; + + const s = strm.state; + s.pending = 0; + s.pending_out = 0; + + if (s.wrap < 0) { + s.wrap = -s.wrap; + /* was made negative by deflate(..., Z_FINISH); */ + } + s.status = (s.wrap ? INIT_STATE : BUSY_STATE); + strm.adler = (s.wrap === 2) ? + 0 // crc32(0, Z_NULL, 0) + : + 1; // adler32(0, Z_NULL, 0) + s.last_flush = Z_NO_FLUSH$2; + _tr_init(s); + return Z_OK$3; + }; + + + const deflateReset = (strm) => { + + const ret = deflateResetKeep(strm); + if (ret === Z_OK$3) { + lm_init(strm.state); + } + return ret; + }; + + + const deflateSetHeader = (strm, head) => { + + if (!strm || !strm.state) { return Z_STREAM_ERROR$2; } + if (strm.state.wrap !== 2) { return Z_STREAM_ERROR$2; } + strm.state.gzhead = head; + return Z_OK$3; + }; + + + const deflateInit2 = (strm, level, method, windowBits, memLevel, strategy) => { + + if (!strm) { // === Z_NULL + return Z_STREAM_ERROR$2; + } + let wrap = 1; + + if (level === Z_DEFAULT_COMPRESSION$1) { + level = 6; + } + + if (windowBits < 0) { /* suppress zlib wrapper */ + wrap = 0; + windowBits = -windowBits; + } + + else if (windowBits > 15) { + wrap = 2; /* write gzip wrapper instead */ + windowBits -= 16; + } + + + if (memLevel < 1 || memLevel > MAX_MEM_LEVEL || method !== Z_DEFLATED$2 || + windowBits < 8 || windowBits > 15 || level < 0 || level > 9 || + strategy < 0 || strategy > Z_FIXED) { + return err(strm, Z_STREAM_ERROR$2); + } + + + if (windowBits === 8) { + windowBits = 9; + } + /* until 256-byte window bug fixed */ + + const s = new DeflateState(); + + strm.state = s; + s.strm = strm; + + s.wrap = wrap; + s.gzhead = null; + s.w_bits = windowBits; + s.w_size = 1 << s.w_bits; + s.w_mask = s.w_size - 1; + + s.hash_bits = memLevel + 7; + s.hash_size = 1 << s.hash_bits; + s.hash_mask = s.hash_size - 1; + s.hash_shift = ~~((s.hash_bits + MIN_MATCH - 1) / MIN_MATCH); + + s.window = new Uint8Array(s.w_size * 2); + s.head = new Uint16Array(s.hash_size); + s.prev = new Uint16Array(s.w_size); + + // Don't need mem init magic for JS. + //s.high_water = 0; /* nothing written to s->window yet */ + + s.lit_bufsize = 1 << (memLevel + 6); /* 16K elements by default */ + + s.pending_buf_size = s.lit_bufsize * 4; + + //overlay = (ushf *) ZALLOC(strm, s->lit_bufsize, sizeof(ush)+2); + //s->pending_buf = (uchf *) overlay; + s.pending_buf = new Uint8Array(s.pending_buf_size); + + // It is offset from `s.pending_buf` (size is `s.lit_bufsize * 2`) + //s->d_buf = overlay + s->lit_bufsize/sizeof(ush); + s.d_buf = 1 * s.lit_bufsize; + + //s->l_buf = s->pending_buf + (1+sizeof(ush))*s->lit_bufsize; + s.l_buf = (1 + 2) * s.lit_bufsize; + + s.level = level; + s.strategy = strategy; + s.method = method; + + return deflateReset(strm); + }; + + const deflateInit = (strm, level) => { + + return deflateInit2(strm, level, Z_DEFLATED$2, MAX_WBITS$1, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY$1); + }; + + + const deflate$2 = (strm, flush) => { + + let beg, val; // for gzip header write only + + if (!strm || !strm.state || + flush > Z_BLOCK$1 || flush < 0) { + return strm ? err(strm, Z_STREAM_ERROR$2) : Z_STREAM_ERROR$2; + } + + const s = strm.state; + + if (!strm.output || + (!strm.input && strm.avail_in !== 0) || + (s.status === FINISH_STATE && flush !== Z_FINISH$3)) { + return err(strm, (strm.avail_out === 0) ? Z_BUF_ERROR$1 : Z_STREAM_ERROR$2); + } + + s.strm = strm; /* just in case */ + const old_flush = s.last_flush; + s.last_flush = flush; + + /* Write the header */ + if (s.status === INIT_STATE) { + + if (s.wrap === 2) { // GZIP header + strm.adler = 0; //crc32(0L, Z_NULL, 0); + put_byte(s, 31); + put_byte(s, 139); + put_byte(s, 8); + if (!s.gzhead) { // s->gzhead == Z_NULL + put_byte(s, 0); + put_byte(s, 0); + put_byte(s, 0); + put_byte(s, 0); + put_byte(s, 0); + put_byte(s, s.level === 9 ? 2 : + (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ? + 4 : 0)); + put_byte(s, OS_CODE); + s.status = BUSY_STATE; + } + else { + put_byte(s, (s.gzhead.text ? 1 : 0) + + (s.gzhead.hcrc ? 2 : 0) + + (!s.gzhead.extra ? 0 : 4) + + (!s.gzhead.name ? 0 : 8) + + (!s.gzhead.comment ? 0 : 16) + ); + put_byte(s, s.gzhead.time & 0xff); + put_byte(s, (s.gzhead.time >> 8) & 0xff); + put_byte(s, (s.gzhead.time >> 16) & 0xff); + put_byte(s, (s.gzhead.time >> 24) & 0xff); + put_byte(s, s.level === 9 ? 2 : + (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ? + 4 : 0)); + put_byte(s, s.gzhead.os & 0xff); + if (s.gzhead.extra && s.gzhead.extra.length) { + put_byte(s, s.gzhead.extra.length & 0xff); + put_byte(s, (s.gzhead.extra.length >> 8) & 0xff); + } + if (s.gzhead.hcrc) { + strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending, 0); + } + s.gzindex = 0; + s.status = EXTRA_STATE; + } + } + else // DEFLATE header + { + let header = (Z_DEFLATED$2 + ((s.w_bits - 8) << 4)) << 8; + let level_flags = -1; + + if (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2) { + level_flags = 0; + } else if (s.level < 6) { + level_flags = 1; + } else if (s.level === 6) { + level_flags = 2; + } else { + level_flags = 3; + } + header |= (level_flags << 6); + if (s.strstart !== 0) { header |= PRESET_DICT; } + header += 31 - (header % 31); + + s.status = BUSY_STATE; + putShortMSB(s, header); + + /* Save the adler32 of the preset dictionary: */ + if (s.strstart !== 0) { + putShortMSB(s, strm.adler >>> 16); + putShortMSB(s, strm.adler & 0xffff); + } + strm.adler = 1; // adler32(0L, Z_NULL, 0); + } + } + + //#ifdef GZIP + if (s.status === EXTRA_STATE) { + if (s.gzhead.extra/* != Z_NULL*/) { + beg = s.pending; /* start of bytes to update crc */ + + while (s.gzindex < (s.gzhead.extra.length & 0xffff)) { + if (s.pending === s.pending_buf_size) { + if (s.gzhead.hcrc && s.pending > beg) { + strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg); + } + flush_pending(strm); + beg = s.pending; + if (s.pending === s.pending_buf_size) { + break; + } + } + put_byte(s, s.gzhead.extra[s.gzindex] & 0xff); + s.gzindex++; + } + if (s.gzhead.hcrc && s.pending > beg) { + strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg); + } + if (s.gzindex === s.gzhead.extra.length) { + s.gzindex = 0; + s.status = NAME_STATE; + } + } + else { + s.status = NAME_STATE; + } + } + if (s.status === NAME_STATE) { + if (s.gzhead.name/* != Z_NULL*/) { + beg = s.pending; /* start of bytes to update crc */ + //int val; + + do { + if (s.pending === s.pending_buf_size) { + if (s.gzhead.hcrc && s.pending > beg) { + strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg); + } + flush_pending(strm); + beg = s.pending; + if (s.pending === s.pending_buf_size) { + val = 1; + break; + } + } + // JS specific: little magic to add zero terminator to end of string + if (s.gzindex < s.gzhead.name.length) { + val = s.gzhead.name.charCodeAt(s.gzindex++) & 0xff; + } else { + val = 0; + } + put_byte(s, val); + } while (val !== 0); + + if (s.gzhead.hcrc && s.pending > beg) { + strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg); + } + if (val === 0) { + s.gzindex = 0; + s.status = COMMENT_STATE; + } + } + else { + s.status = COMMENT_STATE; + } + } + if (s.status === COMMENT_STATE) { + if (s.gzhead.comment/* != Z_NULL*/) { + beg = s.pending; /* start of bytes to update crc */ + //int val; + + do { + if (s.pending === s.pending_buf_size) { + if (s.gzhead.hcrc && s.pending > beg) { + strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg); + } + flush_pending(strm); + beg = s.pending; + if (s.pending === s.pending_buf_size) { + val = 1; + break; + } + } + // JS specific: little magic to add zero terminator to end of string + if (s.gzindex < s.gzhead.comment.length) { + val = s.gzhead.comment.charCodeAt(s.gzindex++) & 0xff; + } else { + val = 0; + } + put_byte(s, val); + } while (val !== 0); + + if (s.gzhead.hcrc && s.pending > beg) { + strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg); + } + if (val === 0) { + s.status = HCRC_STATE; + } + } + else { + s.status = HCRC_STATE; + } + } + if (s.status === HCRC_STATE) { + if (s.gzhead.hcrc) { + if (s.pending + 2 > s.pending_buf_size) { + flush_pending(strm); + } + if (s.pending + 2 <= s.pending_buf_size) { + put_byte(s, strm.adler & 0xff); + put_byte(s, (strm.adler >> 8) & 0xff); + strm.adler = 0; //crc32(0L, Z_NULL, 0); + s.status = BUSY_STATE; + } + } + else { + s.status = BUSY_STATE; + } + } + //#endif + + /* Flush as much pending output as possible */ + if (s.pending !== 0) { + flush_pending(strm); + if (strm.avail_out === 0) { + /* Since avail_out is 0, deflate will be called again with + * more output space, but possibly with both pending and + * avail_in equal to zero. There won't be anything to do, + * but this is not an error situation so make sure we + * return OK instead of BUF_ERROR at next call of deflate: + */ + s.last_flush = -1; + return Z_OK$3; + } + + /* Make sure there is something to do and avoid duplicate consecutive + * flushes. For repeated and useless calls with Z_FINISH, we keep + * returning Z_STREAM_END instead of Z_BUF_ERROR. + */ + } else if (strm.avail_in === 0 && rank(flush) <= rank(old_flush) && + flush !== Z_FINISH$3) { + return err(strm, Z_BUF_ERROR$1); + } + + /* User must not provide more input after the first FINISH: */ + if (s.status === FINISH_STATE && strm.avail_in !== 0) { + return err(strm, Z_BUF_ERROR$1); + } + + /* Start a new block or continue the current one. + */ + if (strm.avail_in !== 0 || s.lookahead !== 0 || + (flush !== Z_NO_FLUSH$2 && s.status !== FINISH_STATE)) { + let bstate = (s.strategy === Z_HUFFMAN_ONLY) ? deflate_huff(s, flush) : + (s.strategy === Z_RLE ? deflate_rle(s, flush) : + configuration_table[s.level].func(s, flush)); + + if (bstate === BS_FINISH_STARTED || bstate === BS_FINISH_DONE) { + s.status = FINISH_STATE; + } + if (bstate === BS_NEED_MORE || bstate === BS_FINISH_STARTED) { + if (strm.avail_out === 0) { + s.last_flush = -1; + /* avoid BUF_ERROR next call, see above */ + } + return Z_OK$3; + /* If flush != Z_NO_FLUSH && avail_out == 0, the next call + * of deflate should use the same flush parameter to make sure + * that the flush is complete. So we don't have to output an + * empty block here, this will be done at next call. This also + * ensures that for a very small output buffer, we emit at most + * one empty block. + */ + } + if (bstate === BS_BLOCK_DONE) { + if (flush === Z_PARTIAL_FLUSH) { + _tr_align(s); + } + else if (flush !== Z_BLOCK$1) { /* FULL_FLUSH or SYNC_FLUSH */ + + _tr_stored_block(s, 0, 0, false); + /* For a full flush, this empty block will be recognized + * as a special marker by inflate_sync(). + */ + if (flush === Z_FULL_FLUSH$1) { + /*** CLEAR_HASH(s); ***/ /* forget history */ + zero$2(s.head); // Fill with NIL (= 0); + + if (s.lookahead === 0) { + s.strstart = 0; + s.block_start = 0; + s.insert = 0; + } + } + } + flush_pending(strm); + if (strm.avail_out === 0) { + s.last_flush = -1; /* avoid BUF_ERROR at next call, see above */ + return Z_OK$3; + } + } + } + //Assert(strm->avail_out > 0, "bug2"); + //if (strm.avail_out <= 0) { throw new Error("bug2");} + + if (flush !== Z_FINISH$3) { return Z_OK$3; } + if (s.wrap <= 0) { return Z_STREAM_END$3; } + + /* Write the trailer */ + if (s.wrap === 2) { + put_byte(s, strm.adler & 0xff); + put_byte(s, (strm.adler >> 8) & 0xff); + put_byte(s, (strm.adler >> 16) & 0xff); + put_byte(s, (strm.adler >> 24) & 0xff); + put_byte(s, strm.total_in & 0xff); + put_byte(s, (strm.total_in >> 8) & 0xff); + put_byte(s, (strm.total_in >> 16) & 0xff); + put_byte(s, (strm.total_in >> 24) & 0xff); + } + else + { + putShortMSB(s, strm.adler >>> 16); + putShortMSB(s, strm.adler & 0xffff); + } + + flush_pending(strm); + /* If avail_out is zero, the application will call deflate again + * to flush the rest. + */ + if (s.wrap > 0) { s.wrap = -s.wrap; } + /* write the trailer only once! */ + return s.pending !== 0 ? Z_OK$3 : Z_STREAM_END$3; + }; + + + const deflateEnd = (strm) => { + + if (!strm/*== Z_NULL*/ || !strm.state/*== Z_NULL*/) { + return Z_STREAM_ERROR$2; + } + + const status = strm.state.status; + if (status !== INIT_STATE && + status !== EXTRA_STATE && + status !== NAME_STATE && + status !== COMMENT_STATE && + status !== HCRC_STATE && + status !== BUSY_STATE && + status !== FINISH_STATE + ) { + return err(strm, Z_STREAM_ERROR$2); + } + + strm.state = null; + + return status === BUSY_STATE ? err(strm, Z_DATA_ERROR$2) : Z_OK$3; + }; + + + /* ========================================================================= + * Initializes the compression dictionary from the given byte + * sequence without producing any compressed output. + */ + const deflateSetDictionary = (strm, dictionary) => { + + let dictLength = dictionary.length; + + if (!strm/*== Z_NULL*/ || !strm.state/*== Z_NULL*/) { + return Z_STREAM_ERROR$2; + } + + const s = strm.state; + const wrap = s.wrap; + + if (wrap === 2 || (wrap === 1 && s.status !== INIT_STATE) || s.lookahead) { + return Z_STREAM_ERROR$2; + } + + /* when using zlib wrappers, compute Adler-32 for provided dictionary */ + if (wrap === 1) { + /* adler32(strm->adler, dictionary, dictLength); */ + strm.adler = adler32_1(strm.adler, dictionary, dictLength, 0); + } + + s.wrap = 0; /* avoid computing Adler-32 in read_buf */ + + /* if dictionary would fill window, just replace the history */ + if (dictLength >= s.w_size) { + if (wrap === 0) { /* already empty otherwise */ + /*** CLEAR_HASH(s); ***/ + zero$2(s.head); // Fill with NIL (= 0); + s.strstart = 0; + s.block_start = 0; + s.insert = 0; + } + /* use the tail */ + // dictionary = dictionary.slice(dictLength - s.w_size); + let tmpDict = new Uint8Array(s.w_size); + tmpDict.set(dictionary.subarray(dictLength - s.w_size, dictLength), 0); + dictionary = tmpDict; + dictLength = s.w_size; + } + /* insert dictionary into window and hash */ + const avail = strm.avail_in; + const next = strm.next_in; + const input = strm.input; + strm.avail_in = dictLength; + strm.next_in = 0; + strm.input = dictionary; + fill_window(s); + while (s.lookahead >= MIN_MATCH) { + let str = s.strstart; + let n = s.lookahead - (MIN_MATCH - 1); + do { + /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */ + s.ins_h = HASH(s, s.ins_h, s.window[str + MIN_MATCH - 1]); + + s.prev[str & s.w_mask] = s.head[s.ins_h]; + + s.head[s.ins_h] = str; + str++; + } while (--n); + s.strstart = str; + s.lookahead = MIN_MATCH - 1; + fill_window(s); + } + s.strstart += s.lookahead; + s.block_start = s.strstart; + s.insert = s.lookahead; + s.lookahead = 0; + s.match_length = s.prev_length = MIN_MATCH - 1; + s.match_available = 0; + strm.next_in = next; + strm.input = input; + strm.avail_in = avail; + s.wrap = wrap; + return Z_OK$3; + }; + + + var deflateInit_1 = deflateInit; + var deflateInit2_1 = deflateInit2; + var deflateReset_1 = deflateReset; + var deflateResetKeep_1 = deflateResetKeep; + var deflateSetHeader_1 = deflateSetHeader; + var deflate_2$1 = deflate$2; + var deflateEnd_1 = deflateEnd; + var deflateSetDictionary_1 = deflateSetDictionary; + var deflateInfo = 'pako deflate (from Nodeca project)'; + + /* Not implemented + module.exports.deflateBound = deflateBound; + module.exports.deflateCopy = deflateCopy; + module.exports.deflateParams = deflateParams; + module.exports.deflatePending = deflatePending; + module.exports.deflatePrime = deflatePrime; + module.exports.deflateTune = deflateTune; + */ + + var deflate_1$2 = { + deflateInit: deflateInit_1, + deflateInit2: deflateInit2_1, + deflateReset: deflateReset_1, + deflateResetKeep: deflateResetKeep_1, + deflateSetHeader: deflateSetHeader_1, + deflate: deflate_2$1, + deflateEnd: deflateEnd_1, + deflateSetDictionary: deflateSetDictionary_1, + deflateInfo: deflateInfo + }; + + const _has = (obj, key) => { + return Object.prototype.hasOwnProperty.call(obj, key); + }; + + var assign = function (obj /*from1, from2, from3, ...*/) { + const sources = Array.prototype.slice.call(arguments, 1); + while (sources.length) { + const source = sources.shift(); + if (!source) { continue; } + + if (typeof source !== 'object') { + throw new TypeError(source + 'must be non-object'); + } + + for (const p in source) { + if (_has(source, p)) { + obj[p] = source[p]; + } + } + } + + return obj; + }; + + + // Join array of chunks to single array. + var flattenChunks = (chunks) => { + // calculate data length + let len = 0; + + for (let i = 0, l = chunks.length; i < l; i++) { + len += chunks[i].length; + } + + // join chunks + const result = new Uint8Array(len); + + for (let i = 0, pos = 0, l = chunks.length; i < l; i++) { + let chunk = chunks[i]; + result.set(chunk, pos); + pos += chunk.length; + } + + return result; + }; + + var common = { + assign: assign, + flattenChunks: flattenChunks + }; + + // String encode/decode helpers + + + // Quick check if we can use fast array to bin string conversion + // + // - apply(Array) can fail on Android 2.2 + // - apply(Uint8Array) can fail on iOS 5.1 Safari + // + let STR_APPLY_UIA_OK = true; + + try { String.fromCharCode.apply(null, new Uint8Array(1)); } catch (__) { STR_APPLY_UIA_OK = false; } + + + // Table with utf8 lengths (calculated by first byte of sequence) + // Note, that 5 & 6-byte values and some 4-byte values can not be represented in JS, + // because max possible codepoint is 0x10ffff + const _utf8len = new Uint8Array(256); + for (let q = 0; q < 256; q++) { + _utf8len[q] = (q >= 252 ? 6 : q >= 248 ? 5 : q >= 240 ? 4 : q >= 224 ? 3 : q >= 192 ? 2 : 1); + } + _utf8len[254] = _utf8len[254] = 1; // Invalid sequence start + + + // convert string to array (typed, when possible) + var string2buf = (str) => { + if (typeof TextEncoder === 'function' && TextEncoder.prototype.encode) { + return new TextEncoder().encode(str); + } + + let buf, c, c2, m_pos, i, str_len = str.length, buf_len = 0; + + // count binary size + for (m_pos = 0; m_pos < str_len; m_pos++) { + c = str.charCodeAt(m_pos); + if ((c & 0xfc00) === 0xd800 && (m_pos + 1 < str_len)) { + c2 = str.charCodeAt(m_pos + 1); + if ((c2 & 0xfc00) === 0xdc00) { + c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00); + m_pos++; + } + } + buf_len += c < 0x80 ? 1 : c < 0x800 ? 2 : c < 0x10000 ? 3 : 4; + } + + // allocate buffer + buf = new Uint8Array(buf_len); + + // convert + for (i = 0, m_pos = 0; i < buf_len; m_pos++) { + c = str.charCodeAt(m_pos); + if ((c & 0xfc00) === 0xd800 && (m_pos + 1 < str_len)) { + c2 = str.charCodeAt(m_pos + 1); + if ((c2 & 0xfc00) === 0xdc00) { + c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00); + m_pos++; + } + } + if (c < 0x80) { + /* one byte */ + buf[i++] = c; + } else if (c < 0x800) { + /* two bytes */ + buf[i++] = 0xC0 | (c >>> 6); + buf[i++] = 0x80 | (c & 0x3f); + } else if (c < 0x10000) { + /* three bytes */ + buf[i++] = 0xE0 | (c >>> 12); + buf[i++] = 0x80 | (c >>> 6 & 0x3f); + buf[i++] = 0x80 | (c & 0x3f); + } else { + /* four bytes */ + buf[i++] = 0xf0 | (c >>> 18); + buf[i++] = 0x80 | (c >>> 12 & 0x3f); + buf[i++] = 0x80 | (c >>> 6 & 0x3f); + buf[i++] = 0x80 | (c & 0x3f); + } + } + + return buf; + }; + + // Helper + const buf2binstring = (buf, len) => { + // On Chrome, the arguments in a function call that are allowed is `65534`. + // If the length of the buffer is smaller than that, we can use this optimization, + // otherwise we will take a slower path. + if (len < 65534) { + if (buf.subarray && STR_APPLY_UIA_OK) { + return String.fromCharCode.apply(null, buf.length === len ? buf : buf.subarray(0, len)); + } + } + + let result = ''; + for (let i = 0; i < len; i++) { + result += String.fromCharCode(buf[i]); + } + return result; + }; + + + // convert array to string + var buf2string = (buf, max) => { + const len = max || buf.length; + + if (typeof TextDecoder === 'function' && TextDecoder.prototype.decode) { + return new TextDecoder().decode(buf.subarray(0, max)); + } + + let i, out; + + // Reserve max possible length (2 words per char) + // NB: by unknown reasons, Array is significantly faster for + // String.fromCharCode.apply than Uint16Array. + const utf16buf = new Array(len * 2); + + for (out = 0, i = 0; i < len;) { + let c = buf[i++]; + // quick process ascii + if (c < 0x80) { utf16buf[out++] = c; continue; } + + let c_len = _utf8len[c]; + // skip 5 & 6 byte codes + if (c_len > 4) { utf16buf[out++] = 0xfffd; i += c_len - 1; continue; } + + // apply mask on first byte + c &= c_len === 2 ? 0x1f : c_len === 3 ? 0x0f : 0x07; + // join the rest + while (c_len > 1 && i < len) { + c = (c << 6) | (buf[i++] & 0x3f); + c_len--; + } + + // terminated by end of string? + if (c_len > 1) { utf16buf[out++] = 0xfffd; continue; } + + if (c < 0x10000) { + utf16buf[out++] = c; + } else { + c -= 0x10000; + utf16buf[out++] = 0xd800 | ((c >> 10) & 0x3ff); + utf16buf[out++] = 0xdc00 | (c & 0x3ff); + } + } + + return buf2binstring(utf16buf, out); + }; + + + // Calculate max possible position in utf8 buffer, + // that will not break sequence. If that's not possible + // - (very small limits) return max size as is. + // + // buf[] - utf8 bytes array + // max - length limit (mandatory); + var utf8border = (buf, max) => { + + max = max || buf.length; + if (max > buf.length) { max = buf.length; } + + // go back from last position, until start of sequence found + let pos = max - 1; + while (pos >= 0 && (buf[pos] & 0xC0) === 0x80) { pos--; } + + // Very small and broken sequence, + // return max, because we should return something anyway. + if (pos < 0) { return max; } + + // If we came to start of buffer - that means buffer is too small, + // return max too. + if (pos === 0) { return max; } + + return (pos + _utf8len[buf[pos]] > max) ? pos : max; + }; + + var strings = { + string2buf: string2buf, + buf2string: buf2string, + utf8border: utf8border + }; + + // (C) 1995-2013 Jean-loup Gailly and Mark Adler + // (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin + // + // This software is provided 'as-is', without any express or implied + // warranty. In no event will the authors be held liable for any damages + // arising from the use of this software. + // + // Permission is granted to anyone to use this software for any purpose, + // including commercial applications, and to alter it and redistribute it + // freely, subject to the following restrictions: + // + // 1. The origin of this software must not be misrepresented; you must not + // claim that you wrote the original software. If you use this software + // in a product, an acknowledgment in the product documentation would be + // appreciated but is not required. + // 2. Altered source versions must be plainly marked as such, and must not be + // misrepresented as being the original software. + // 3. This notice may not be removed or altered from any source distribution. + + function ZStream() { + /* next input byte */ + this.input = null; // JS specific, because we have no pointers + this.next_in = 0; + /* number of bytes available at input */ + this.avail_in = 0; + /* total number of input bytes read so far */ + this.total_in = 0; + /* next output byte should be put there */ + this.output = null; // JS specific, because we have no pointers + this.next_out = 0; + /* remaining free space at output */ + this.avail_out = 0; + /* total number of bytes output so far */ + this.total_out = 0; + /* last error message, NULL if no error */ + this.msg = ''/*Z_NULL*/; + /* not visible by applications */ + this.state = null; + /* best guess about the data type: binary or text */ + this.data_type = 2/*Z_UNKNOWN*/; + /* adler32 value of the uncompressed data */ + this.adler = 0; + } + + var zstream = ZStream; + + const toString$1 = Object.prototype.toString; + + /* Public constants ==========================================================*/ + /* ===========================================================================*/ + + const { + Z_NO_FLUSH: Z_NO_FLUSH$1, Z_SYNC_FLUSH, Z_FULL_FLUSH, Z_FINISH: Z_FINISH$2, + Z_OK: Z_OK$2, Z_STREAM_END: Z_STREAM_END$2, + Z_DEFAULT_COMPRESSION, + Z_DEFAULT_STRATEGY, + Z_DEFLATED: Z_DEFLATED$1 + } = constants$2; + + /* ===========================================================================*/ + + + /** + * class Deflate + * + * Generic JS-style wrapper for zlib calls. If you don't need + * streaming behaviour - use more simple functions: [[deflate]], + * [[deflateRaw]] and [[gzip]]. + **/ + + /* internal + * Deflate.chunks -> Array + * + * Chunks of output data, if [[Deflate#onData]] not overridden. + **/ + + /** + * Deflate.result -> Uint8Array + * + * Compressed result, generated by default [[Deflate#onData]] + * and [[Deflate#onEnd]] handlers. Filled after you push last chunk + * (call [[Deflate#push]] with `Z_FINISH` / `true` param). + **/ + + /** + * Deflate.err -> Number + * + * Error code after deflate finished. 0 (Z_OK) on success. + * You will not need it in real life, because deflate errors + * are possible only on wrong options or bad `onData` / `onEnd` + * custom handlers. + **/ + + /** + * Deflate.msg -> String + * + * Error message, if [[Deflate.err]] != 0 + **/ + + + /** + * new Deflate(options) + * - options (Object): zlib deflate options. + * + * Creates new deflator instance with specified params. Throws exception + * on bad params. Supported options: + * + * - `level` + * - `windowBits` + * - `memLevel` + * - `strategy` + * - `dictionary` + * + * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced) + * for more information on these. + * + * Additional options, for internal needs: + * + * - `chunkSize` - size of generated data chunks (16K by default) + * - `raw` (Boolean) - do raw deflate + * - `gzip` (Boolean) - create gzip wrapper + * - `header` (Object) - custom header for gzip + * - `text` (Boolean) - true if compressed data believed to be text + * - `time` (Number) - modification time, unix timestamp + * - `os` (Number) - operation system code + * - `extra` (Array) - array of bytes with extra data (max 65536) + * - `name` (String) - file name (binary string) + * - `comment` (String) - comment (binary string) + * - `hcrc` (Boolean) - true if header crc should be added + * + * ##### Example: + * + * ```javascript + * const pako = require('pako') + * , chunk1 = new Uint8Array([1,2,3,4,5,6,7,8,9]) + * , chunk2 = new Uint8Array([10,11,12,13,14,15,16,17,18,19]); + * + * const deflate = new pako.Deflate({ level: 3}); + * + * deflate.push(chunk1, false); + * deflate.push(chunk2, true); // true -> last chunk + * + * if (deflate.err) { throw new Error(deflate.err); } + * + * console.log(deflate.result); + * ``` + **/ + function Deflate$1(options) { + this.options = common.assign({ + level: Z_DEFAULT_COMPRESSION, + method: Z_DEFLATED$1, + chunkSize: 16384, + windowBits: 15, + memLevel: 8, + strategy: Z_DEFAULT_STRATEGY + }, options || {}); + + let opt = this.options; + + if (opt.raw && (opt.windowBits > 0)) { + opt.windowBits = -opt.windowBits; + } + + else if (opt.gzip && (opt.windowBits > 0) && (opt.windowBits < 16)) { + opt.windowBits += 16; + } + + this.err = 0; // error code, if happens (0 = Z_OK) + this.msg = ''; // error message + this.ended = false; // used to avoid multiple onEnd() calls + this.chunks = []; // chunks of compressed data + + this.strm = new zstream(); + this.strm.avail_out = 0; + + let status = deflate_1$2.deflateInit2( + this.strm, + opt.level, + opt.method, + opt.windowBits, + opt.memLevel, + opt.strategy + ); + + if (status !== Z_OK$2) { + throw new Error(messages[status]); + } + + if (opt.header) { + deflate_1$2.deflateSetHeader(this.strm, opt.header); + } + + if (opt.dictionary) { + let dict; + // Convert data if needed + if (typeof opt.dictionary === 'string') { + // If we need to compress text, change encoding to utf8. + dict = strings.string2buf(opt.dictionary); + } else if (toString$1.call(opt.dictionary) === '[object ArrayBuffer]') { + dict = new Uint8Array(opt.dictionary); + } else { + dict = opt.dictionary; + } + + status = deflate_1$2.deflateSetDictionary(this.strm, dict); + + if (status !== Z_OK$2) { + throw new Error(messages[status]); + } + + this._dict_set = true; + } + } + + /** + * Deflate#push(data[, flush_mode]) -> Boolean + * - data (Uint8Array|ArrayBuffer|String): input data. Strings will be + * converted to utf8 byte sequence. + * - flush_mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE modes. + * See constants. Skipped or `false` means Z_NO_FLUSH, `true` means Z_FINISH. + * + * Sends input data to deflate pipe, generating [[Deflate#onData]] calls with + * new compressed chunks. Returns `true` on success. The last data block must + * have `flush_mode` Z_FINISH (or `true`). That will flush internal pending + * buffers and call [[Deflate#onEnd]]. + * + * On fail call [[Deflate#onEnd]] with error code and return false. + * + * ##### Example + * + * ```javascript + * push(chunk, false); // push one of data chunks + * ... + * push(chunk, true); // push last chunk + * ``` + **/ + Deflate$1.prototype.push = function (data, flush_mode) { + const strm = this.strm; + const chunkSize = this.options.chunkSize; + let status, _flush_mode; + + if (this.ended) { return false; } + + if (flush_mode === ~~flush_mode) _flush_mode = flush_mode; + else _flush_mode = flush_mode === true ? Z_FINISH$2 : Z_NO_FLUSH$1; + + // Convert data if needed + if (typeof data === 'string') { + // If we need to compress text, change encoding to utf8. + strm.input = strings.string2buf(data); + } else if (toString$1.call(data) === '[object ArrayBuffer]') { + strm.input = new Uint8Array(data); + } else { + strm.input = data; + } + + strm.next_in = 0; + strm.avail_in = strm.input.length; + + for (;;) { + if (strm.avail_out === 0) { + strm.output = new Uint8Array(chunkSize); + strm.next_out = 0; + strm.avail_out = chunkSize; + } + + // Make sure avail_out > 6 to avoid repeating markers + if ((_flush_mode === Z_SYNC_FLUSH || _flush_mode === Z_FULL_FLUSH) && strm.avail_out <= 6) { + this.onData(strm.output.subarray(0, strm.next_out)); + strm.avail_out = 0; + continue; + } + + status = deflate_1$2.deflate(strm, _flush_mode); + + // Ended => flush and finish + if (status === Z_STREAM_END$2) { + if (strm.next_out > 0) { + this.onData(strm.output.subarray(0, strm.next_out)); + } + status = deflate_1$2.deflateEnd(this.strm); + this.onEnd(status); + this.ended = true; + return status === Z_OK$2; + } + + // Flush if out buffer full + if (strm.avail_out === 0) { + this.onData(strm.output); + continue; + } + + // Flush if requested and has data + if (_flush_mode > 0 && strm.next_out > 0) { + this.onData(strm.output.subarray(0, strm.next_out)); + strm.avail_out = 0; + continue; + } + + if (strm.avail_in === 0) break; + } + + return true; + }; + + + /** + * Deflate#onData(chunk) -> Void + * - chunk (Uint8Array): output data. + * + * By default, stores data blocks in `chunks[]` property and glue + * those in `onEnd`. Override this handler, if you need another behaviour. + **/ + Deflate$1.prototype.onData = function (chunk) { + this.chunks.push(chunk); + }; + + + /** + * Deflate#onEnd(status) -> Void + * - status (Number): deflate status. 0 (Z_OK) on success, + * other if not. + * + * Called once after you tell deflate that the input stream is + * complete (Z_FINISH). By default - join collected chunks, + * free memory and fill `results` / `err` properties. + **/ + Deflate$1.prototype.onEnd = function (status) { + // On success - join + if (status === Z_OK$2) { + this.result = common.flattenChunks(this.chunks); + } + this.chunks = []; + this.err = status; + this.msg = this.strm.msg; + }; + + + /** + * deflate(data[, options]) -> Uint8Array + * - data (Uint8Array|String): input data to compress. + * - options (Object): zlib deflate options. + * + * Compress `data` with deflate algorithm and `options`. + * + * Supported options are: + * + * - level + * - windowBits + * - memLevel + * - strategy + * - dictionary + * + * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced) + * for more information on these. + * + * Sugar (options): + * + * - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify + * negative windowBits implicitly. + * + * ##### Example: + * + * ```javascript + * const pako = require('pako') + * const data = new Uint8Array([1,2,3,4,5,6,7,8,9]); + * + * console.log(pako.deflate(data)); + * ``` + **/ + function deflate$1(input, options) { + const deflator = new Deflate$1(options); + + deflator.push(input, true); + + // That will never happens, if you don't cheat with options :) + if (deflator.err) { throw deflator.msg || messages[deflator.err]; } + + return deflator.result; + } + + + /** + * deflateRaw(data[, options]) -> Uint8Array + * - data (Uint8Array|String): input data to compress. + * - options (Object): zlib deflate options. + * + * The same as [[deflate]], but creates raw data, without wrapper + * (header and adler32 crc). + **/ + function deflateRaw$1(input, options) { + options = options || {}; + options.raw = true; + return deflate$1(input, options); + } + + + /** + * gzip(data[, options]) -> Uint8Array + * - data (Uint8Array|String): input data to compress. + * - options (Object): zlib deflate options. + * + * The same as [[deflate]], but create gzip wrapper instead of + * deflate one. + **/ + function gzip$1(input, options) { + options = options || {}; + options.gzip = true; + return deflate$1(input, options); + } + + + var Deflate_1$1 = Deflate$1; + var deflate_2 = deflate$1; + var deflateRaw_1$1 = deflateRaw$1; + var gzip_1$1 = gzip$1; + var constants$1 = constants$2; + + var deflate_1$1 = { + Deflate: Deflate_1$1, + deflate: deflate_2, + deflateRaw: deflateRaw_1$1, + gzip: gzip_1$1, + constants: constants$1 + }; + + // (C) 1995-2013 Jean-loup Gailly and Mark Adler + // (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin + // + // This software is provided 'as-is', without any express or implied + // warranty. In no event will the authors be held liable for any damages + // arising from the use of this software. + // + // Permission is granted to anyone to use this software for any purpose, + // including commercial applications, and to alter it and redistribute it + // freely, subject to the following restrictions: + // + // 1. The origin of this software must not be misrepresented; you must not + // claim that you wrote the original software. If you use this software + // in a product, an acknowledgment in the product documentation would be + // appreciated but is not required. + // 2. Altered source versions must be plainly marked as such, and must not be + // misrepresented as being the original software. + // 3. This notice may not be removed or altered from any source distribution. + + // See state defs from inflate.js + const BAD$1 = 30; /* got a data error -- remain here until reset */ + const TYPE$1 = 12; /* i: waiting for type bits, including last-flag bit */ + + /* + Decode literal, length, and distance codes and write out the resulting + literal and match bytes until either not enough input or output is + available, an end-of-block is encountered, or a data error is encountered. + When large enough input and output buffers are supplied to inflate(), for + example, a 16K input buffer and a 64K output buffer, more than 95% of the + inflate execution time is spent in this routine. + + Entry assumptions: + + state.mode === LEN + strm.avail_in >= 6 + strm.avail_out >= 258 + start >= strm.avail_out + state.bits < 8 + + On return, state.mode is one of: + + LEN -- ran out of enough output space or enough available input + TYPE -- reached end of block code, inflate() to interpret next block + BAD -- error in block data + + Notes: + + - The maximum input bits used by a length/distance pair is 15 bits for the + length code, 5 bits for the length extra, 15 bits for the distance code, + and 13 bits for the distance extra. This totals 48 bits, or six bytes. + Therefore if strm.avail_in >= 6, then there is enough input to avoid + checking for available input while decoding. + + - The maximum bytes that a single length/distance pair can output is 258 + bytes, which is the maximum length that can be coded. inflate_fast() + requires strm.avail_out >= 258 for each loop to avoid checking for + output space. + */ + var inffast = function inflate_fast(strm, start) { + let _in; /* local strm.input */ + let last; /* have enough input while in < last */ + let _out; /* local strm.output */ + let beg; /* inflate()'s initial strm.output */ + let end; /* while out < end, enough space available */ + //#ifdef INFLATE_STRICT + let dmax; /* maximum distance from zlib header */ + //#endif + let wsize; /* window size or zero if not using window */ + let whave; /* valid bytes in the window */ + let wnext; /* window write index */ + // Use `s_window` instead `window`, avoid conflict with instrumentation tools + let s_window; /* allocated sliding window, if wsize != 0 */ + let hold; /* local strm.hold */ + let bits; /* local strm.bits */ + let lcode; /* local strm.lencode */ + let dcode; /* local strm.distcode */ + let lmask; /* mask for first level of length codes */ + let dmask; /* mask for first level of distance codes */ + let here; /* retrieved table entry */ + let op; /* code bits, operation, extra bits, or */ + /* window position, window bytes to copy */ + let len; /* match length, unused bytes */ + let dist; /* match distance */ + let from; /* where to copy match from */ + let from_source; + + + let input, output; // JS specific, because we have no pointers + + /* copy state to local variables */ + const state = strm.state; + //here = state.here; + _in = strm.next_in; + input = strm.input; + last = _in + (strm.avail_in - 5); + _out = strm.next_out; + output = strm.output; + beg = _out - (start - strm.avail_out); + end = _out + (strm.avail_out - 257); + //#ifdef INFLATE_STRICT + dmax = state.dmax; + //#endif + wsize = state.wsize; + whave = state.whave; + wnext = state.wnext; + s_window = state.window; + hold = state.hold; + bits = state.bits; + lcode = state.lencode; + dcode = state.distcode; + lmask = (1 << state.lenbits) - 1; + dmask = (1 << state.distbits) - 1; + + + /* decode literals and length/distances until end-of-block or not enough + input data or output space */ + + top: + do { + if (bits < 15) { + hold += input[_in++] << bits; + bits += 8; + hold += input[_in++] << bits; + bits += 8; + } + + here = lcode[hold & lmask]; + + dolen: + for (;;) { // Goto emulation + op = here >>> 24/*here.bits*/; + hold >>>= op; + bits -= op; + op = (here >>> 16) & 0xff/*here.op*/; + if (op === 0) { /* literal */ + //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ? + // "inflate: literal '%c'\n" : + // "inflate: literal 0x%02x\n", here.val)); + output[_out++] = here & 0xffff/*here.val*/; + } + else if (op & 16) { /* length base */ + len = here & 0xffff/*here.val*/; + op &= 15; /* number of extra bits */ + if (op) { + if (bits < op) { + hold += input[_in++] << bits; + bits += 8; + } + len += hold & ((1 << op) - 1); + hold >>>= op; + bits -= op; + } + //Tracevv((stderr, "inflate: length %u\n", len)); + if (bits < 15) { + hold += input[_in++] << bits; + bits += 8; + hold += input[_in++] << bits; + bits += 8; + } + here = dcode[hold & dmask]; + + dodist: + for (;;) { // goto emulation + op = here >>> 24/*here.bits*/; + hold >>>= op; + bits -= op; + op = (here >>> 16) & 0xff/*here.op*/; + + if (op & 16) { /* distance base */ + dist = here & 0xffff/*here.val*/; + op &= 15; /* number of extra bits */ + if (bits < op) { + hold += input[_in++] << bits; + bits += 8; + if (bits < op) { + hold += input[_in++] << bits; + bits += 8; + } + } + dist += hold & ((1 << op) - 1); + //#ifdef INFLATE_STRICT + if (dist > dmax) { + strm.msg = 'invalid distance too far back'; + state.mode = BAD$1; + break top; + } + //#endif + hold >>>= op; + bits -= op; + //Tracevv((stderr, "inflate: distance %u\n", dist)); + op = _out - beg; /* max distance in output */ + if (dist > op) { /* see if copy from window */ + op = dist - op; /* distance back in window */ + if (op > whave) { + if (state.sane) { + strm.msg = 'invalid distance too far back'; + state.mode = BAD$1; + break top; + } + + // (!) This block is disabled in zlib defaults, + // don't enable it for binary compatibility + //#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR + // if (len <= op - whave) { + // do { + // output[_out++] = 0; + // } while (--len); + // continue top; + // } + // len -= op - whave; + // do { + // output[_out++] = 0; + // } while (--op > whave); + // if (op === 0) { + // from = _out - dist; + // do { + // output[_out++] = output[from++]; + // } while (--len); + // continue top; + // } + //#endif + } + from = 0; // window index + from_source = s_window; + if (wnext === 0) { /* very common case */ + from += wsize - op; + if (op < len) { /* some from window */ + len -= op; + do { + output[_out++] = s_window[from++]; + } while (--op); + from = _out - dist; /* rest from output */ + from_source = output; + } + } + else if (wnext < op) { /* wrap around window */ + from += wsize + wnext - op; + op -= wnext; + if (op < len) { /* some from end of window */ + len -= op; + do { + output[_out++] = s_window[from++]; + } while (--op); + from = 0; + if (wnext < len) { /* some from start of window */ + op = wnext; + len -= op; + do { + output[_out++] = s_window[from++]; + } while (--op); + from = _out - dist; /* rest from output */ + from_source = output; + } + } + } + else { /* contiguous in window */ + from += wnext - op; + if (op < len) { /* some from window */ + len -= op; + do { + output[_out++] = s_window[from++]; + } while (--op); + from = _out - dist; /* rest from output */ + from_source = output; + } + } + while (len > 2) { + output[_out++] = from_source[from++]; + output[_out++] = from_source[from++]; + output[_out++] = from_source[from++]; + len -= 3; + } + if (len) { + output[_out++] = from_source[from++]; + if (len > 1) { + output[_out++] = from_source[from++]; + } + } + } + else { + from = _out - dist; /* copy direct from output */ + do { /* minimum length is three */ + output[_out++] = output[from++]; + output[_out++] = output[from++]; + output[_out++] = output[from++]; + len -= 3; + } while (len > 2); + if (len) { + output[_out++] = output[from++]; + if (len > 1) { + output[_out++] = output[from++]; + } + } + } + } + else if ((op & 64) === 0) { /* 2nd level distance code */ + here = dcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))]; + continue dodist; + } + else { + strm.msg = 'invalid distance code'; + state.mode = BAD$1; + break top; + } + + break; // need to emulate goto via "continue" + } + } + else if ((op & 64) === 0) { /* 2nd level length code */ + here = lcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))]; + continue dolen; + } + else if (op & 32) { /* end-of-block */ + //Tracevv((stderr, "inflate: end of block\n")); + state.mode = TYPE$1; + break top; + } + else { + strm.msg = 'invalid literal/length code'; + state.mode = BAD$1; + break top; + } + + break; // need to emulate goto via "continue" + } + } while (_in < last && _out < end); + + /* return unused bytes (on entry, bits < 8, so in won't go too far back) */ + len = bits >> 3; + _in -= len; + bits -= len << 3; + hold &= (1 << bits) - 1; + + /* update state and return */ + strm.next_in = _in; + strm.next_out = _out; + strm.avail_in = (_in < last ? 5 + (last - _in) : 5 - (_in - last)); + strm.avail_out = (_out < end ? 257 + (end - _out) : 257 - (_out - end)); + state.hold = hold; + state.bits = bits; + return; + }; + + // (C) 1995-2013 Jean-loup Gailly and Mark Adler + // (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin + // + // This software is provided 'as-is', without any express or implied + // warranty. In no event will the authors be held liable for any damages + // arising from the use of this software. + // + // Permission is granted to anyone to use this software for any purpose, + // including commercial applications, and to alter it and redistribute it + // freely, subject to the following restrictions: + // + // 1. The origin of this software must not be misrepresented; you must not + // claim that you wrote the original software. If you use this software + // in a product, an acknowledgment in the product documentation would be + // appreciated but is not required. + // 2. Altered source versions must be plainly marked as such, and must not be + // misrepresented as being the original software. + // 3. This notice may not be removed or altered from any source distribution. + + const MAXBITS = 15; + const ENOUGH_LENS$1 = 852; + const ENOUGH_DISTS$1 = 592; + //const ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS); + + const CODES$1 = 0; + const LENS$1 = 1; + const DISTS$1 = 2; + + const lbase = new Uint16Array([ /* Length codes 257..285 base */ + 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, + 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0 + ]); + + const lext = new Uint8Array([ /* Length codes 257..285 extra */ + 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18, + 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 72, 78 + ]); + + const dbase = new Uint16Array([ /* Distance codes 0..29 base */ + 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, + 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, + 8193, 12289, 16385, 24577, 0, 0 + ]); + + const dext = new Uint8Array([ /* Distance codes 0..29 extra */ + 16, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, + 23, 23, 24, 24, 25, 25, 26, 26, 27, 27, + 28, 28, 29, 29, 64, 64 + ]); + + const inflate_table = (type, lens, lens_index, codes, table, table_index, work, opts) => + { + const bits = opts.bits; + //here = opts.here; /* table entry for duplication */ + + let len = 0; /* a code's length in bits */ + let sym = 0; /* index of code symbols */ + let min = 0, max = 0; /* minimum and maximum code lengths */ + let root = 0; /* number of index bits for root table */ + let curr = 0; /* number of index bits for current table */ + let drop = 0; /* code bits to drop for sub-table */ + let left = 0; /* number of prefix codes available */ + let used = 0; /* code entries in table used */ + let huff = 0; /* Huffman code */ + let incr; /* for incrementing code, index */ + let fill; /* index for replicating entries */ + let low; /* low bits for current root entry */ + let mask; /* mask for low root bits */ + let next; /* next available space in table */ + let base = null; /* base value table to use */ + let base_index = 0; + // let shoextra; /* extra bits table to use */ + let end; /* use base and extra for symbol > end */ + const count = new Uint16Array(MAXBITS + 1); //[MAXBITS+1]; /* number of codes of each length */ + const offs = new Uint16Array(MAXBITS + 1); //[MAXBITS+1]; /* offsets in table for each length */ + let extra = null; + let extra_index = 0; + + let here_bits, here_op, here_val; + + /* + Process a set of code lengths to create a canonical Huffman code. The + code lengths are lens[0..codes-1]. Each length corresponds to the + symbols 0..codes-1. The Huffman code is generated by first sorting the + symbols by length from short to long, and retaining the symbol order + for codes with equal lengths. Then the code starts with all zero bits + for the first code of the shortest length, and the codes are integer + increments for the same length, and zeros are appended as the length + increases. For the deflate format, these bits are stored backwards + from their more natural integer increment ordering, and so when the + decoding tables are built in the large loop below, the integer codes + are incremented backwards. + + This routine assumes, but does not check, that all of the entries in + lens[] are in the range 0..MAXBITS. The caller must assure this. + 1..MAXBITS is interpreted as that code length. zero means that that + symbol does not occur in this code. + + The codes are sorted by computing a count of codes for each length, + creating from that a table of starting indices for each length in the + sorted table, and then entering the symbols in order in the sorted + table. The sorted table is work[], with that space being provided by + the caller. + + The length counts are used for other purposes as well, i.e. finding + the minimum and maximum length codes, determining if there are any + codes at all, checking for a valid set of lengths, and looking ahead + at length counts to determine sub-table sizes when building the + decoding tables. + */ + + /* accumulate lengths for codes (assumes lens[] all in 0..MAXBITS) */ + for (len = 0; len <= MAXBITS; len++) { + count[len] = 0; + } + for (sym = 0; sym < codes; sym++) { + count[lens[lens_index + sym]]++; + } + + /* bound code lengths, force root to be within code lengths */ + root = bits; + for (max = MAXBITS; max >= 1; max--) { + if (count[max] !== 0) { break; } + } + if (root > max) { + root = max; + } + if (max === 0) { /* no symbols to code at all */ + //table.op[opts.table_index] = 64; //here.op = (var char)64; /* invalid code marker */ + //table.bits[opts.table_index] = 1; //here.bits = (var char)1; + //table.val[opts.table_index++] = 0; //here.val = (var short)0; + table[table_index++] = (1 << 24) | (64 << 16) | 0; + + + //table.op[opts.table_index] = 64; + //table.bits[opts.table_index] = 1; + //table.val[opts.table_index++] = 0; + table[table_index++] = (1 << 24) | (64 << 16) | 0; + + opts.bits = 1; + return 0; /* no symbols, but wait for decoding to report error */ + } + for (min = 1; min < max; min++) { + if (count[min] !== 0) { break; } + } + if (root < min) { + root = min; + } + + /* check for an over-subscribed or incomplete set of lengths */ + left = 1; + for (len = 1; len <= MAXBITS; len++) { + left <<= 1; + left -= count[len]; + if (left < 0) { + return -1; + } /* over-subscribed */ + } + if (left > 0 && (type === CODES$1 || max !== 1)) { + return -1; /* incomplete set */ + } + + /* generate offsets into symbol table for each length for sorting */ + offs[1] = 0; + for (len = 1; len < MAXBITS; len++) { + offs[len + 1] = offs[len] + count[len]; + } + + /* sort symbols by length, by symbol order within each length */ + for (sym = 0; sym < codes; sym++) { + if (lens[lens_index + sym] !== 0) { + work[offs[lens[lens_index + sym]]++] = sym; + } + } + + /* + Create and fill in decoding tables. In this loop, the table being + filled is at next and has curr index bits. The code being used is huff + with length len. That code is converted to an index by dropping drop + bits off of the bottom. For codes where len is less than drop + curr, + those top drop + curr - len bits are incremented through all values to + fill the table with replicated entries. + + root is the number of index bits for the root table. When len exceeds + root, sub-tables are created pointed to by the root entry with an index + of the low root bits of huff. This is saved in low to check for when a + new sub-table should be started. drop is zero when the root table is + being filled, and drop is root when sub-tables are being filled. + + When a new sub-table is needed, it is necessary to look ahead in the + code lengths to determine what size sub-table is needed. The length + counts are used for this, and so count[] is decremented as codes are + entered in the tables. + + used keeps track of how many table entries have been allocated from the + provided *table space. It is checked for LENS and DIST tables against + the constants ENOUGH_LENS and ENOUGH_DISTS to guard against changes in + the initial root table size constants. See the comments in inftrees.h + for more information. + + sym increments through all symbols, and the loop terminates when + all codes of length max, i.e. all codes, have been processed. This + routine permits incomplete codes, so another loop after this one fills + in the rest of the decoding tables with invalid code markers. + */ + + /* set up for code type */ + // poor man optimization - use if-else instead of switch, + // to avoid deopts in old v8 + if (type === CODES$1) { + base = extra = work; /* dummy value--not used */ + end = 19; + + } else if (type === LENS$1) { + base = lbase; + base_index -= 257; + extra = lext; + extra_index -= 257; + end = 256; + + } else { /* DISTS */ + base = dbase; + extra = dext; + end = -1; + } + + /* initialize opts for loop */ + huff = 0; /* starting code */ + sym = 0; /* starting code symbol */ + len = min; /* starting code length */ + next = table_index; /* current table to fill in */ + curr = root; /* current table index bits */ + drop = 0; /* current bits to drop from code for index */ + low = -1; /* trigger new sub-table when len > root */ + used = 1 << root; /* use root table entries */ + mask = used - 1; /* mask for comparing low */ + + /* check available table space */ + if ((type === LENS$1 && used > ENOUGH_LENS$1) || + (type === DISTS$1 && used > ENOUGH_DISTS$1)) { + return 1; + } + + /* process all codes and make table entries */ + for (;;) { + /* create table entry */ + here_bits = len - drop; + if (work[sym] < end) { + here_op = 0; + here_val = work[sym]; + } + else if (work[sym] > end) { + here_op = extra[extra_index + work[sym]]; + here_val = base[base_index + work[sym]]; + } + else { + here_op = 32 + 64; /* end of block */ + here_val = 0; + } + + /* replicate for those indices with low len bits equal to huff */ + incr = 1 << (len - drop); + fill = 1 << curr; + min = fill; /* save offset to next table */ + do { + fill -= incr; + table[next + (huff >> drop) + fill] = (here_bits << 24) | (here_op << 16) | here_val |0; + } while (fill !== 0); + + /* backwards increment the len-bit code huff */ + incr = 1 << (len - 1); + while (huff & incr) { + incr >>= 1; + } + if (incr !== 0) { + huff &= incr - 1; + huff += incr; + } else { + huff = 0; + } + + /* go to next symbol, update count, len */ + sym++; + if (--count[len] === 0) { + if (len === max) { break; } + len = lens[lens_index + work[sym]]; + } + + /* create new sub-table if needed */ + if (len > root && (huff & mask) !== low) { + /* if first time, transition to sub-tables */ + if (drop === 0) { + drop = root; + } + + /* increment past last table */ + next += min; /* here min is 1 << curr */ + + /* determine length of next table */ + curr = len - drop; + left = 1 << curr; + while (curr + drop < max) { + left -= count[curr + drop]; + if (left <= 0) { break; } + curr++; + left <<= 1; + } + + /* check for enough space */ + used += 1 << curr; + if ((type === LENS$1 && used > ENOUGH_LENS$1) || + (type === DISTS$1 && used > ENOUGH_DISTS$1)) { + return 1; + } + + /* point entry in root table to sub-table */ + low = huff & mask; + /*table.op[low] = curr; + table.bits[low] = root; + table.val[low] = next - opts.table_index;*/ + table[low] = (root << 24) | (curr << 16) | (next - table_index) |0; + } + } + + /* fill in remaining table entry if code is incomplete (guaranteed to have + at most one remaining entry, since if the code is incomplete, the + maximum code length that was allowed to get this far is one bit) */ + if (huff !== 0) { + //table.op[next + huff] = 64; /* invalid code marker */ + //table.bits[next + huff] = len - drop; + //table.val[next + huff] = 0; + table[next + huff] = ((len - drop) << 24) | (64 << 16) |0; + } + + /* set return parameters */ + //opts.table_index += used; + opts.bits = root; + return 0; + }; + + + var inftrees = inflate_table; + + // (C) 1995-2013 Jean-loup Gailly and Mark Adler + // (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin + // + // This software is provided 'as-is', without any express or implied + // warranty. In no event will the authors be held liable for any damages + // arising from the use of this software. + // + // Permission is granted to anyone to use this software for any purpose, + // including commercial applications, and to alter it and redistribute it + // freely, subject to the following restrictions: + // + // 1. The origin of this software must not be misrepresented; you must not + // claim that you wrote the original software. If you use this software + // in a product, an acknowledgment in the product documentation would be + // appreciated but is not required. + // 2. Altered source versions must be plainly marked as such, and must not be + // misrepresented as being the original software. + // 3. This notice may not be removed or altered from any source distribution. + + + + + + + const CODES = 0; + const LENS = 1; + const DISTS = 2; + + /* Public constants ==========================================================*/ + /* ===========================================================================*/ + + const { + Z_FINISH: Z_FINISH$1, Z_BLOCK, Z_TREES, + Z_OK: Z_OK$1, Z_STREAM_END: Z_STREAM_END$1, Z_NEED_DICT: Z_NEED_DICT$1, Z_STREAM_ERROR: Z_STREAM_ERROR$1, Z_DATA_ERROR: Z_DATA_ERROR$1, Z_MEM_ERROR: Z_MEM_ERROR$1, Z_BUF_ERROR, + Z_DEFLATED + } = constants$2; + + + /* STATES ====================================================================*/ + /* ===========================================================================*/ + + + const HEAD = 1; /* i: waiting for magic header */ + const FLAGS = 2; /* i: waiting for method and flags (gzip) */ + const TIME = 3; /* i: waiting for modification time (gzip) */ + const OS = 4; /* i: waiting for extra flags and operating system (gzip) */ + const EXLEN = 5; /* i: waiting for extra length (gzip) */ + const EXTRA = 6; /* i: waiting for extra bytes (gzip) */ + const NAME = 7; /* i: waiting for end of file name (gzip) */ + const COMMENT = 8; /* i: waiting for end of comment (gzip) */ + const HCRC = 9; /* i: waiting for header crc (gzip) */ + const DICTID = 10; /* i: waiting for dictionary check value */ + const DICT = 11; /* waiting for inflateSetDictionary() call */ + const TYPE = 12; /* i: waiting for type bits, including last-flag bit */ + const TYPEDO = 13; /* i: same, but skip check to exit inflate on new block */ + const STORED = 14; /* i: waiting for stored size (length and complement) */ + const COPY_ = 15; /* i/o: same as COPY below, but only first time in */ + const COPY = 16; /* i/o: waiting for input or output to copy stored block */ + const TABLE = 17; /* i: waiting for dynamic block table lengths */ + const LENLENS = 18; /* i: waiting for code length code lengths */ + const CODELENS = 19; /* i: waiting for length/lit and distance code lengths */ + const LEN_ = 20; /* i: same as LEN below, but only first time in */ + const LEN = 21; /* i: waiting for length/lit/eob code */ + const LENEXT = 22; /* i: waiting for length extra bits */ + const DIST = 23; /* i: waiting for distance code */ + const DISTEXT = 24; /* i: waiting for distance extra bits */ + const MATCH = 25; /* o: waiting for output space to copy string */ + const LIT = 26; /* o: waiting for output space to write literal */ + const CHECK = 27; /* i: waiting for 32-bit check value */ + const LENGTH$2 = 28; /* i: waiting for 32-bit length (gzip) */ + const DONE = 29; /* finished check, done -- remain here until reset */ + const BAD = 30; /* got a data error -- remain here until reset */ + const MEM = 31; /* got an inflate() memory error -- remain here until reset */ + const SYNC = 32; /* looking for synchronization bytes to restart inflate() */ + + /* ===========================================================================*/ + + + + const ENOUGH_LENS = 852; + const ENOUGH_DISTS = 592; + //const ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS); + + const MAX_WBITS = 15; + /* 32K LZ77 window */ + const DEF_WBITS = MAX_WBITS; + + + const zswap32 = (q) => { + + return (((q >>> 24) & 0xff) + + ((q >>> 8) & 0xff00) + + ((q & 0xff00) << 8) + + ((q & 0xff) << 24)); + }; + + + function InflateState() { + this.mode = 0; /* current inflate mode */ + this.last = false; /* true if processing last block */ + this.wrap = 0; /* bit 0 true for zlib, bit 1 true for gzip */ + this.havedict = false; /* true if dictionary provided */ + this.flags = 0; /* gzip header method and flags (0 if zlib) */ + this.dmax = 0; /* zlib header max distance (INFLATE_STRICT) */ + this.check = 0; /* protected copy of check value */ + this.total = 0; /* protected copy of output count */ + // TODO: may be {} + this.head = null; /* where to save gzip header information */ + + /* sliding window */ + this.wbits = 0; /* log base 2 of requested window size */ + this.wsize = 0; /* window size or zero if not using window */ + this.whave = 0; /* valid bytes in the window */ + this.wnext = 0; /* window write index */ + this.window = null; /* allocated sliding window, if needed */ + + /* bit accumulator */ + this.hold = 0; /* input bit accumulator */ + this.bits = 0; /* number of bits in "in" */ + + /* for string and stored block copying */ + this.length = 0; /* literal or length of data to copy */ + this.offset = 0; /* distance back to copy string from */ + + /* for table and code decoding */ + this.extra = 0; /* extra bits needed */ + + /* fixed and dynamic code tables */ + this.lencode = null; /* starting table for length/literal codes */ + this.distcode = null; /* starting table for distance codes */ + this.lenbits = 0; /* index bits for lencode */ + this.distbits = 0; /* index bits for distcode */ + + /* dynamic table building */ + this.ncode = 0; /* number of code length code lengths */ + this.nlen = 0; /* number of length code lengths */ + this.ndist = 0; /* number of distance code lengths */ + this.have = 0; /* number of code lengths in lens[] */ + this.next = null; /* next available space in codes[] */ + + this.lens = new Uint16Array(320); /* temporary storage for code lengths */ + this.work = new Uint16Array(288); /* work area for code table building */ + + /* + because we don't have pointers in js, we use lencode and distcode directly + as buffers so we don't need codes + */ + //this.codes = new Int32Array(ENOUGH); /* space for code tables */ + this.lendyn = null; /* dynamic table for length/literal codes (JS specific) */ + this.distdyn = null; /* dynamic table for distance codes (JS specific) */ + this.sane = 0; /* if false, allow invalid distance too far */ + this.back = 0; /* bits back of last unprocessed length/lit */ + this.was = 0; /* initial length of match */ + } + + + const inflateResetKeep = (strm) => { + + if (!strm || !strm.state) { return Z_STREAM_ERROR$1; } + const state = strm.state; + strm.total_in = strm.total_out = state.total = 0; + strm.msg = ''; /*Z_NULL*/ + if (state.wrap) { /* to support ill-conceived Java test suite */ + strm.adler = state.wrap & 1; + } + state.mode = HEAD; + state.last = 0; + state.havedict = 0; + state.dmax = 32768; + state.head = null/*Z_NULL*/; + state.hold = 0; + state.bits = 0; + //state.lencode = state.distcode = state.next = state.codes; + state.lencode = state.lendyn = new Int32Array(ENOUGH_LENS); + state.distcode = state.distdyn = new Int32Array(ENOUGH_DISTS); + + state.sane = 1; + state.back = -1; + //Tracev((stderr, "inflate: reset\n")); + return Z_OK$1; + }; + + + const inflateReset = (strm) => { + + if (!strm || !strm.state) { return Z_STREAM_ERROR$1; } + const state = strm.state; + state.wsize = 0; + state.whave = 0; + state.wnext = 0; + return inflateResetKeep(strm); + + }; + + + const inflateReset2 = (strm, windowBits) => { + let wrap; + + /* get the state */ + if (!strm || !strm.state) { return Z_STREAM_ERROR$1; } + const state = strm.state; + + /* extract wrap request from windowBits parameter */ + if (windowBits < 0) { + wrap = 0; + windowBits = -windowBits; + } + else { + wrap = (windowBits >> 4) + 1; + if (windowBits < 48) { + windowBits &= 15; + } + } + + /* set number of window bits, free window if different */ + if (windowBits && (windowBits < 8 || windowBits > 15)) { + return Z_STREAM_ERROR$1; + } + if (state.window !== null && state.wbits !== windowBits) { + state.window = null; + } + + /* update state and reset the rest of it */ + state.wrap = wrap; + state.wbits = windowBits; + return inflateReset(strm); + }; + + + const inflateInit2 = (strm, windowBits) => { + + if (!strm) { return Z_STREAM_ERROR$1; } + //strm.msg = Z_NULL; /* in case we return an error */ + + const state = new InflateState(); + + //if (state === Z_NULL) return Z_MEM_ERROR; + //Tracev((stderr, "inflate: allocated\n")); + strm.state = state; + state.window = null/*Z_NULL*/; + const ret = inflateReset2(strm, windowBits); + if (ret !== Z_OK$1) { + strm.state = null/*Z_NULL*/; + } + return ret; + }; + + + const inflateInit = (strm) => { + + return inflateInit2(strm, DEF_WBITS); + }; + + + /* + Return state with length and distance decoding tables and index sizes set to + fixed code decoding. Normally this returns fixed tables from inffixed.h. + If BUILDFIXED is defined, then instead this routine builds the tables the + first time it's called, and returns those tables the first time and + thereafter. This reduces the size of the code by about 2K bytes, in + exchange for a little execution time. However, BUILDFIXED should not be + used for threaded applications, since the rewriting of the tables and virgin + may not be thread-safe. + */ + let virgin = true; + + let lenfix, distfix; // We have no pointers in JS, so keep tables separate + + + const fixedtables = (state) => { + + /* build fixed huffman tables if first call (may not be thread safe) */ + if (virgin) { + lenfix = new Int32Array(512); + distfix = new Int32Array(32); + + /* literal/length table */ + let sym = 0; + while (sym < 144) { state.lens[sym++] = 8; } + while (sym < 256) { state.lens[sym++] = 9; } + while (sym < 280) { state.lens[sym++] = 7; } + while (sym < 288) { state.lens[sym++] = 8; } + + inftrees(LENS, state.lens, 0, 288, lenfix, 0, state.work, { bits: 9 }); + + /* distance table */ + sym = 0; + while (sym < 32) { state.lens[sym++] = 5; } + + inftrees(DISTS, state.lens, 0, 32, distfix, 0, state.work, { bits: 5 }); + + /* do this just once */ + virgin = false; + } + + state.lencode = lenfix; + state.lenbits = 9; + state.distcode = distfix; + state.distbits = 5; + }; + + + /* + Update the window with the last wsize (normally 32K) bytes written before + returning. If window does not exist yet, create it. This is only called + when a window is already in use, or when output has been written during this + inflate call, but the end of the deflate stream has not been reached yet. + It is also called to create a window for dictionary data when a dictionary + is loaded. + + Providing output buffers larger than 32K to inflate() should provide a speed + advantage, since only the last 32K of output is copied to the sliding window + upon return from inflate(), and since all distances after the first 32K of + output will fall in the output data, making match copies simpler and faster. + The advantage may be dependent on the size of the processor's data caches. + */ + const updatewindow = (strm, src, end, copy) => { + + let dist; + const state = strm.state; + + /* if it hasn't been done already, allocate space for the window */ + if (state.window === null) { + state.wsize = 1 << state.wbits; + state.wnext = 0; + state.whave = 0; + + state.window = new Uint8Array(state.wsize); + } + + /* copy state->wsize or less output bytes into the circular window */ + if (copy >= state.wsize) { + state.window.set(src.subarray(end - state.wsize, end), 0); + state.wnext = 0; + state.whave = state.wsize; + } + else { + dist = state.wsize - state.wnext; + if (dist > copy) { + dist = copy; + } + //zmemcpy(state->window + state->wnext, end - copy, dist); + state.window.set(src.subarray(end - copy, end - copy + dist), state.wnext); + copy -= dist; + if (copy) { + //zmemcpy(state->window, end - copy, copy); + state.window.set(src.subarray(end - copy, end), 0); + state.wnext = copy; + state.whave = state.wsize; + } + else { + state.wnext += dist; + if (state.wnext === state.wsize) { state.wnext = 0; } + if (state.whave < state.wsize) { state.whave += dist; } + } + } + return 0; + }; + + + const inflate$2 = (strm, flush) => { + + let state; + let input, output; // input/output buffers + let next; /* next input INDEX */ + let put; /* next output INDEX */ + let have, left; /* available input and output */ + let hold; /* bit buffer */ + let bits; /* bits in bit buffer */ + let _in, _out; /* save starting available input and output */ + let copy; /* number of stored or match bytes to copy */ + let from; /* where to copy match bytes from */ + let from_source; + let here = 0; /* current decoding table entry */ + let here_bits, here_op, here_val; // paked "here" denormalized (JS specific) + //let last; /* parent table entry */ + let last_bits, last_op, last_val; // paked "last" denormalized (JS specific) + let len; /* length to copy for repeats, bits to drop */ + let ret; /* return code */ + const hbuf = new Uint8Array(4); /* buffer for gzip header crc calculation */ + let opts; + + let n; // temporary variable for NEED_BITS + + const order = /* permutation of code lengths */ + new Uint8Array([ 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 ]); + + + if (!strm || !strm.state || !strm.output || + (!strm.input && strm.avail_in !== 0)) { + return Z_STREAM_ERROR$1; + } + + state = strm.state; + if (state.mode === TYPE) { state.mode = TYPEDO; } /* skip check */ + + + //--- LOAD() --- + put = strm.next_out; + output = strm.output; + left = strm.avail_out; + next = strm.next_in; + input = strm.input; + have = strm.avail_in; + hold = state.hold; + bits = state.bits; + //--- + + _in = have; + _out = left; + ret = Z_OK$1; + + inf_leave: // goto emulation + for (;;) { + switch (state.mode) { + case HEAD: + if (state.wrap === 0) { + state.mode = TYPEDO; + break; + } + //=== NEEDBITS(16); + while (bits < 16) { + if (have === 0) { break inf_leave; } + have--; + hold += input[next++] << bits; + bits += 8; + } + //===// + if ((state.wrap & 2) && hold === 0x8b1f) { /* gzip header */ + state.check = 0/*crc32(0L, Z_NULL, 0)*/; + //=== CRC2(state.check, hold); + hbuf[0] = hold & 0xff; + hbuf[1] = (hold >>> 8) & 0xff; + state.check = crc32_1(state.check, hbuf, 2, 0); + //===// + + //=== INITBITS(); + hold = 0; + bits = 0; + //===// + state.mode = FLAGS; + break; + } + state.flags = 0; /* expect zlib header */ + if (state.head) { + state.head.done = false; + } + if (!(state.wrap & 1) || /* check if zlib header allowed */ + (((hold & 0xff)/*BITS(8)*/ << 8) + (hold >> 8)) % 31) { + strm.msg = 'incorrect header check'; + state.mode = BAD; + break; + } + if ((hold & 0x0f)/*BITS(4)*/ !== Z_DEFLATED) { + strm.msg = 'unknown compression method'; + state.mode = BAD; + break; + } + //--- DROPBITS(4) ---// + hold >>>= 4; + bits -= 4; + //---// + len = (hold & 0x0f)/*BITS(4)*/ + 8; + if (state.wbits === 0) { + state.wbits = len; + } + else if (len > state.wbits) { + strm.msg = 'invalid window size'; + state.mode = BAD; + break; + } + + // !!! pako patch. Force use `options.windowBits` if passed. + // Required to always use max window size by default. + state.dmax = 1 << state.wbits; + //state.dmax = 1 << len; + + //Tracev((stderr, "inflate: zlib header ok\n")); + strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/; + state.mode = hold & 0x200 ? DICTID : TYPE; + //=== INITBITS(); + hold = 0; + bits = 0; + //===// + break; + case FLAGS: + //=== NEEDBITS(16); */ + while (bits < 16) { + if (have === 0) { break inf_leave; } + have--; + hold += input[next++] << bits; + bits += 8; + } + //===// + state.flags = hold; + if ((state.flags & 0xff) !== Z_DEFLATED) { + strm.msg = 'unknown compression method'; + state.mode = BAD; + break; + } + if (state.flags & 0xe000) { + strm.msg = 'unknown header flags set'; + state.mode = BAD; + break; + } + if (state.head) { + state.head.text = ((hold >> 8) & 1); + } + if (state.flags & 0x0200) { + //=== CRC2(state.check, hold); + hbuf[0] = hold & 0xff; + hbuf[1] = (hold >>> 8) & 0xff; + state.check = crc32_1(state.check, hbuf, 2, 0); + //===// + } + //=== INITBITS(); + hold = 0; + bits = 0; + //===// + state.mode = TIME; + /* falls through */ + case TIME: + //=== NEEDBITS(32); */ + while (bits < 32) { + if (have === 0) { break inf_leave; } + have--; + hold += input[next++] << bits; + bits += 8; + } + //===// + if (state.head) { + state.head.time = hold; + } + if (state.flags & 0x0200) { + //=== CRC4(state.check, hold) + hbuf[0] = hold & 0xff; + hbuf[1] = (hold >>> 8) & 0xff; + hbuf[2] = (hold >>> 16) & 0xff; + hbuf[3] = (hold >>> 24) & 0xff; + state.check = crc32_1(state.check, hbuf, 4, 0); + //=== + } + //=== INITBITS(); + hold = 0; + bits = 0; + //===// + state.mode = OS; + /* falls through */ + case OS: + //=== NEEDBITS(16); */ + while (bits < 16) { + if (have === 0) { break inf_leave; } + have--; + hold += input[next++] << bits; + bits += 8; + } + //===// + if (state.head) { + state.head.xflags = (hold & 0xff); + state.head.os = (hold >> 8); + } + if (state.flags & 0x0200) { + //=== CRC2(state.check, hold); + hbuf[0] = hold & 0xff; + hbuf[1] = (hold >>> 8) & 0xff; + state.check = crc32_1(state.check, hbuf, 2, 0); + //===// + } + //=== INITBITS(); + hold = 0; + bits = 0; + //===// + state.mode = EXLEN; + /* falls through */ + case EXLEN: + if (state.flags & 0x0400) { + //=== NEEDBITS(16); */ + while (bits < 16) { + if (have === 0) { break inf_leave; } + have--; + hold += input[next++] << bits; + bits += 8; + } + //===// + state.length = hold; + if (state.head) { + state.head.extra_len = hold; + } + if (state.flags & 0x0200) { + //=== CRC2(state.check, hold); + hbuf[0] = hold & 0xff; + hbuf[1] = (hold >>> 8) & 0xff; + state.check = crc32_1(state.check, hbuf, 2, 0); + //===// + } + //=== INITBITS(); + hold = 0; + bits = 0; + //===// + } + else if (state.head) { + state.head.extra = null/*Z_NULL*/; + } + state.mode = EXTRA; + /* falls through */ + case EXTRA: + if (state.flags & 0x0400) { + copy = state.length; + if (copy > have) { copy = have; } + if (copy) { + if (state.head) { + len = state.head.extra_len - state.length; + if (!state.head.extra) { + // Use untyped array for more convenient processing later + state.head.extra = new Uint8Array(state.head.extra_len); + } + state.head.extra.set( + input.subarray( + next, + // extra field is limited to 65536 bytes + // - no need for additional size check + next + copy + ), + /*len + copy > state.head.extra_max - len ? state.head.extra_max : copy,*/ + len + ); + //zmemcpy(state.head.extra + len, next, + // len + copy > state.head.extra_max ? + // state.head.extra_max - len : copy); + } + if (state.flags & 0x0200) { + state.check = crc32_1(state.check, input, copy, next); + } + have -= copy; + next += copy; + state.length -= copy; + } + if (state.length) { break inf_leave; } + } + state.length = 0; + state.mode = NAME; + /* falls through */ + case NAME: + if (state.flags & 0x0800) { + if (have === 0) { break inf_leave; } + copy = 0; + do { + // TODO: 2 or 1 bytes? + len = input[next + copy++]; + /* use constant limit because in js we should not preallocate memory */ + if (state.head && len && + (state.length < 65536 /*state.head.name_max*/)) { + state.head.name += String.fromCharCode(len); + } + } while (len && copy < have); + + if (state.flags & 0x0200) { + state.check = crc32_1(state.check, input, copy, next); + } + have -= copy; + next += copy; + if (len) { break inf_leave; } + } + else if (state.head) { + state.head.name = null; + } + state.length = 0; + state.mode = COMMENT; + /* falls through */ + case COMMENT: + if (state.flags & 0x1000) { + if (have === 0) { break inf_leave; } + copy = 0; + do { + len = input[next + copy++]; + /* use constant limit because in js we should not preallocate memory */ + if (state.head && len && + (state.length < 65536 /*state.head.comm_max*/)) { + state.head.comment += String.fromCharCode(len); + } + } while (len && copy < have); + if (state.flags & 0x0200) { + state.check = crc32_1(state.check, input, copy, next); + } + have -= copy; + next += copy; + if (len) { break inf_leave; } + } + else if (state.head) { + state.head.comment = null; + } + state.mode = HCRC; + /* falls through */ + case HCRC: + if (state.flags & 0x0200) { + //=== NEEDBITS(16); */ + while (bits < 16) { + if (have === 0) { break inf_leave; } + have--; + hold += input[next++] << bits; + bits += 8; + } + //===// + if (hold !== (state.check & 0xffff)) { + strm.msg = 'header crc mismatch'; + state.mode = BAD; + break; + } + //=== INITBITS(); + hold = 0; + bits = 0; + //===// + } + if (state.head) { + state.head.hcrc = ((state.flags >> 9) & 1); + state.head.done = true; + } + strm.adler = state.check = 0; + state.mode = TYPE; + break; + case DICTID: + //=== NEEDBITS(32); */ + while (bits < 32) { + if (have === 0) { break inf_leave; } + have--; + hold += input[next++] << bits; + bits += 8; + } + //===// + strm.adler = state.check = zswap32(hold); + //=== INITBITS(); + hold = 0; + bits = 0; + //===// + state.mode = DICT; + /* falls through */ + case DICT: + if (state.havedict === 0) { + //--- RESTORE() --- + strm.next_out = put; + strm.avail_out = left; + strm.next_in = next; + strm.avail_in = have; + state.hold = hold; + state.bits = bits; + //--- + return Z_NEED_DICT$1; + } + strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/; + state.mode = TYPE; + /* falls through */ + case TYPE: + if (flush === Z_BLOCK || flush === Z_TREES) { break inf_leave; } + /* falls through */ + case TYPEDO: + if (state.last) { + //--- BYTEBITS() ---// + hold >>>= bits & 7; + bits -= bits & 7; + //---// + state.mode = CHECK; + break; + } + //=== NEEDBITS(3); */ + while (bits < 3) { + if (have === 0) { break inf_leave; } + have--; + hold += input[next++] << bits; + bits += 8; + } + //===// + state.last = (hold & 0x01)/*BITS(1)*/; + //--- DROPBITS(1) ---// + hold >>>= 1; + bits -= 1; + //---// + + switch ((hold & 0x03)/*BITS(2)*/) { + case 0: /* stored block */ + //Tracev((stderr, "inflate: stored block%s\n", + // state.last ? " (last)" : "")); + state.mode = STORED; + break; + case 1: /* fixed block */ + fixedtables(state); + //Tracev((stderr, "inflate: fixed codes block%s\n", + // state.last ? " (last)" : "")); + state.mode = LEN_; /* decode codes */ + if (flush === Z_TREES) { + //--- DROPBITS(2) ---// + hold >>>= 2; + bits -= 2; + //---// + break inf_leave; + } + break; + case 2: /* dynamic block */ + //Tracev((stderr, "inflate: dynamic codes block%s\n", + // state.last ? " (last)" : "")); + state.mode = TABLE; + break; + case 3: + strm.msg = 'invalid block type'; + state.mode = BAD; + } + //--- DROPBITS(2) ---// + hold >>>= 2; + bits -= 2; + //---// + break; + case STORED: + //--- BYTEBITS() ---// /* go to byte boundary */ + hold >>>= bits & 7; + bits -= bits & 7; + //---// + //=== NEEDBITS(32); */ + while (bits < 32) { + if (have === 0) { break inf_leave; } + have--; + hold += input[next++] << bits; + bits += 8; + } + //===// + if ((hold & 0xffff) !== ((hold >>> 16) ^ 0xffff)) { + strm.msg = 'invalid stored block lengths'; + state.mode = BAD; + break; + } + state.length = hold & 0xffff; + //Tracev((stderr, "inflate: stored length %u\n", + // state.length)); + //=== INITBITS(); + hold = 0; + bits = 0; + //===// + state.mode = COPY_; + if (flush === Z_TREES) { break inf_leave; } + /* falls through */ + case COPY_: + state.mode = COPY; + /* falls through */ + case COPY: + copy = state.length; + if (copy) { + if (copy > have) { copy = have; } + if (copy > left) { copy = left; } + if (copy === 0) { break inf_leave; } + //--- zmemcpy(put, next, copy); --- + output.set(input.subarray(next, next + copy), put); + //---// + have -= copy; + next += copy; + left -= copy; + put += copy; + state.length -= copy; + break; + } + //Tracev((stderr, "inflate: stored end\n")); + state.mode = TYPE; + break; + case TABLE: + //=== NEEDBITS(14); */ + while (bits < 14) { + if (have === 0) { break inf_leave; } + have--; + hold += input[next++] << bits; + bits += 8; + } + //===// + state.nlen = (hold & 0x1f)/*BITS(5)*/ + 257; + //--- DROPBITS(5) ---// + hold >>>= 5; + bits -= 5; + //---// + state.ndist = (hold & 0x1f)/*BITS(5)*/ + 1; + //--- DROPBITS(5) ---// + hold >>>= 5; + bits -= 5; + //---// + state.ncode = (hold & 0x0f)/*BITS(4)*/ + 4; + //--- DROPBITS(4) ---// + hold >>>= 4; + bits -= 4; + //---// + //#ifndef PKZIP_BUG_WORKAROUND + if (state.nlen > 286 || state.ndist > 30) { + strm.msg = 'too many length or distance symbols'; + state.mode = BAD; + break; + } + //#endif + //Tracev((stderr, "inflate: table sizes ok\n")); + state.have = 0; + state.mode = LENLENS; + /* falls through */ + case LENLENS: + while (state.have < state.ncode) { + //=== NEEDBITS(3); + while (bits < 3) { + if (have === 0) { break inf_leave; } + have--; + hold += input[next++] << bits; + bits += 8; + } + //===// + state.lens[order[state.have++]] = (hold & 0x07);//BITS(3); + //--- DROPBITS(3) ---// + hold >>>= 3; + bits -= 3; + //---// + } + while (state.have < 19) { + state.lens[order[state.have++]] = 0; + } + // We have separate tables & no pointers. 2 commented lines below not needed. + //state.next = state.codes; + //state.lencode = state.next; + // Switch to use dynamic table + state.lencode = state.lendyn; + state.lenbits = 7; + + opts = { bits: state.lenbits }; + ret = inftrees(CODES, state.lens, 0, 19, state.lencode, 0, state.work, opts); + state.lenbits = opts.bits; + + if (ret) { + strm.msg = 'invalid code lengths set'; + state.mode = BAD; + break; + } + //Tracev((stderr, "inflate: code lengths ok\n")); + state.have = 0; + state.mode = CODELENS; + /* falls through */ + case CODELENS: + while (state.have < state.nlen + state.ndist) { + for (;;) { + here = state.lencode[hold & ((1 << state.lenbits) - 1)];/*BITS(state.lenbits)*/ + here_bits = here >>> 24; + here_op = (here >>> 16) & 0xff; + here_val = here & 0xffff; + + if ((here_bits) <= bits) { break; } + //--- PULLBYTE() ---// + if (have === 0) { break inf_leave; } + have--; + hold += input[next++] << bits; + bits += 8; + //---// + } + if (here_val < 16) { + //--- DROPBITS(here.bits) ---// + hold >>>= here_bits; + bits -= here_bits; + //---// + state.lens[state.have++] = here_val; + } + else { + if (here_val === 16) { + //=== NEEDBITS(here.bits + 2); + n = here_bits + 2; + while (bits < n) { + if (have === 0) { break inf_leave; } + have--; + hold += input[next++] << bits; + bits += 8; + } + //===// + //--- DROPBITS(here.bits) ---// + hold >>>= here_bits; + bits -= here_bits; + //---// + if (state.have === 0) { + strm.msg = 'invalid bit length repeat'; + state.mode = BAD; + break; + } + len = state.lens[state.have - 1]; + copy = 3 + (hold & 0x03);//BITS(2); + //--- DROPBITS(2) ---// + hold >>>= 2; + bits -= 2; + //---// + } + else if (here_val === 17) { + //=== NEEDBITS(here.bits + 3); + n = here_bits + 3; + while (bits < n) { + if (have === 0) { break inf_leave; } + have--; + hold += input[next++] << bits; + bits += 8; + } + //===// + //--- DROPBITS(here.bits) ---// + hold >>>= here_bits; + bits -= here_bits; + //---// + len = 0; + copy = 3 + (hold & 0x07);//BITS(3); + //--- DROPBITS(3) ---// + hold >>>= 3; + bits -= 3; + //---// + } + else { + //=== NEEDBITS(here.bits + 7); + n = here_bits + 7; + while (bits < n) { + if (have === 0) { break inf_leave; } + have--; + hold += input[next++] << bits; + bits += 8; + } + //===// + //--- DROPBITS(here.bits) ---// + hold >>>= here_bits; + bits -= here_bits; + //---// + len = 0; + copy = 11 + (hold & 0x7f);//BITS(7); + //--- DROPBITS(7) ---// + hold >>>= 7; + bits -= 7; + //---// + } + if (state.have + copy > state.nlen + state.ndist) { + strm.msg = 'invalid bit length repeat'; + state.mode = BAD; + break; + } + while (copy--) { + state.lens[state.have++] = len; + } + } + } + + /* handle error breaks in while */ + if (state.mode === BAD) { break; } + + /* check for end-of-block code (better have one) */ + if (state.lens[256] === 0) { + strm.msg = 'invalid code -- missing end-of-block'; + state.mode = BAD; + break; + } + + /* build code tables -- note: do not change the lenbits or distbits + values here (9 and 6) without reading the comments in inftrees.h + concerning the ENOUGH constants, which depend on those values */ + state.lenbits = 9; + + opts = { bits: state.lenbits }; + ret = inftrees(LENS, state.lens, 0, state.nlen, state.lencode, 0, state.work, opts); + // We have separate tables & no pointers. 2 commented lines below not needed. + // state.next_index = opts.table_index; + state.lenbits = opts.bits; + // state.lencode = state.next; + + if (ret) { + strm.msg = 'invalid literal/lengths set'; + state.mode = BAD; + break; + } + + state.distbits = 6; + //state.distcode.copy(state.codes); + // Switch to use dynamic table + state.distcode = state.distdyn; + opts = { bits: state.distbits }; + ret = inftrees(DISTS, state.lens, state.nlen, state.ndist, state.distcode, 0, state.work, opts); + // We have separate tables & no pointers. 2 commented lines below not needed. + // state.next_index = opts.table_index; + state.distbits = opts.bits; + // state.distcode = state.next; + + if (ret) { + strm.msg = 'invalid distances set'; + state.mode = BAD; + break; + } + //Tracev((stderr, 'inflate: codes ok\n')); + state.mode = LEN_; + if (flush === Z_TREES) { break inf_leave; } + /* falls through */ + case LEN_: + state.mode = LEN; + /* falls through */ + case LEN: + if (have >= 6 && left >= 258) { + //--- RESTORE() --- + strm.next_out = put; + strm.avail_out = left; + strm.next_in = next; + strm.avail_in = have; + state.hold = hold; + state.bits = bits; + //--- + inffast(strm, _out); + //--- LOAD() --- + put = strm.next_out; + output = strm.output; + left = strm.avail_out; + next = strm.next_in; + input = strm.input; + have = strm.avail_in; + hold = state.hold; + bits = state.bits; + //--- + + if (state.mode === TYPE) { + state.back = -1; + } + break; + } + state.back = 0; + for (;;) { + here = state.lencode[hold & ((1 << state.lenbits) - 1)]; /*BITS(state.lenbits)*/ + here_bits = here >>> 24; + here_op = (here >>> 16) & 0xff; + here_val = here & 0xffff; + + if (here_bits <= bits) { break; } + //--- PULLBYTE() ---// + if (have === 0) { break inf_leave; } + have--; + hold += input[next++] << bits; + bits += 8; + //---// + } + if (here_op && (here_op & 0xf0) === 0) { + last_bits = here_bits; + last_op = here_op; + last_val = here_val; + for (;;) { + here = state.lencode[last_val + + ((hold & ((1 << (last_bits + last_op)) - 1))/*BITS(last.bits + last.op)*/ >> last_bits)]; + here_bits = here >>> 24; + here_op = (here >>> 16) & 0xff; + here_val = here & 0xffff; + + if ((last_bits + here_bits) <= bits) { break; } + //--- PULLBYTE() ---// + if (have === 0) { break inf_leave; } + have--; + hold += input[next++] << bits; + bits += 8; + //---// + } + //--- DROPBITS(last.bits) ---// + hold >>>= last_bits; + bits -= last_bits; + //---// + state.back += last_bits; + } + //--- DROPBITS(here.bits) ---// + hold >>>= here_bits; + bits -= here_bits; + //---// + state.back += here_bits; + state.length = here_val; + if (here_op === 0) { + //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ? + // "inflate: literal '%c'\n" : + // "inflate: literal 0x%02x\n", here.val)); + state.mode = LIT; + break; + } + if (here_op & 32) { + //Tracevv((stderr, "inflate: end of block\n")); + state.back = -1; + state.mode = TYPE; + break; + } + if (here_op & 64) { + strm.msg = 'invalid literal/length code'; + state.mode = BAD; + break; + } + state.extra = here_op & 15; + state.mode = LENEXT; + /* falls through */ + case LENEXT: + if (state.extra) { + //=== NEEDBITS(state.extra); + n = state.extra; + while (bits < n) { + if (have === 0) { break inf_leave; } + have--; + hold += input[next++] << bits; + bits += 8; + } + //===// + state.length += hold & ((1 << state.extra) - 1)/*BITS(state.extra)*/; + //--- DROPBITS(state.extra) ---// + hold >>>= state.extra; + bits -= state.extra; + //---// + state.back += state.extra; + } + //Tracevv((stderr, "inflate: length %u\n", state.length)); + state.was = state.length; + state.mode = DIST; + /* falls through */ + case DIST: + for (;;) { + here = state.distcode[hold & ((1 << state.distbits) - 1)];/*BITS(state.distbits)*/ + here_bits = here >>> 24; + here_op = (here >>> 16) & 0xff; + here_val = here & 0xffff; + + if ((here_bits) <= bits) { break; } + //--- PULLBYTE() ---// + if (have === 0) { break inf_leave; } + have--; + hold += input[next++] << bits; + bits += 8; + //---// + } + if ((here_op & 0xf0) === 0) { + last_bits = here_bits; + last_op = here_op; + last_val = here_val; + for (;;) { + here = state.distcode[last_val + + ((hold & ((1 << (last_bits + last_op)) - 1))/*BITS(last.bits + last.op)*/ >> last_bits)]; + here_bits = here >>> 24; + here_op = (here >>> 16) & 0xff; + here_val = here & 0xffff; + + if ((last_bits + here_bits) <= bits) { break; } + //--- PULLBYTE() ---// + if (have === 0) { break inf_leave; } + have--; + hold += input[next++] << bits; + bits += 8; + //---// + } + //--- DROPBITS(last.bits) ---// + hold >>>= last_bits; + bits -= last_bits; + //---// + state.back += last_bits; + } + //--- DROPBITS(here.bits) ---// + hold >>>= here_bits; + bits -= here_bits; + //---// + state.back += here_bits; + if (here_op & 64) { + strm.msg = 'invalid distance code'; + state.mode = BAD; + break; + } + state.offset = here_val; + state.extra = (here_op) & 15; + state.mode = DISTEXT; + /* falls through */ + case DISTEXT: + if (state.extra) { + //=== NEEDBITS(state.extra); + n = state.extra; + while (bits < n) { + if (have === 0) { break inf_leave; } + have--; + hold += input[next++] << bits; + bits += 8; + } + //===// + state.offset += hold & ((1 << state.extra) - 1)/*BITS(state.extra)*/; + //--- DROPBITS(state.extra) ---// + hold >>>= state.extra; + bits -= state.extra; + //---// + state.back += state.extra; + } + //#ifdef INFLATE_STRICT + if (state.offset > state.dmax) { + strm.msg = 'invalid distance too far back'; + state.mode = BAD; + break; + } + //#endif + //Tracevv((stderr, "inflate: distance %u\n", state.offset)); + state.mode = MATCH; + /* falls through */ + case MATCH: + if (left === 0) { break inf_leave; } + copy = _out - left; + if (state.offset > copy) { /* copy from window */ + copy = state.offset - copy; + if (copy > state.whave) { + if (state.sane) { + strm.msg = 'invalid distance too far back'; + state.mode = BAD; + break; + } + // (!) This block is disabled in zlib defaults, + // don't enable it for binary compatibility + //#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR + // Trace((stderr, "inflate.c too far\n")); + // copy -= state.whave; + // if (copy > state.length) { copy = state.length; } + // if (copy > left) { copy = left; } + // left -= copy; + // state.length -= copy; + // do { + // output[put++] = 0; + // } while (--copy); + // if (state.length === 0) { state.mode = LEN; } + // break; + //#endif + } + if (copy > state.wnext) { + copy -= state.wnext; + from = state.wsize - copy; + } + else { + from = state.wnext - copy; + } + if (copy > state.length) { copy = state.length; } + from_source = state.window; + } + else { /* copy from output */ + from_source = output; + from = put - state.offset; + copy = state.length; + } + if (copy > left) { copy = left; } + left -= copy; + state.length -= copy; + do { + output[put++] = from_source[from++]; + } while (--copy); + if (state.length === 0) { state.mode = LEN; } + break; + case LIT: + if (left === 0) { break inf_leave; } + output[put++] = state.length; + left--; + state.mode = LEN; + break; + case CHECK: + if (state.wrap) { + //=== NEEDBITS(32); + while (bits < 32) { + if (have === 0) { break inf_leave; } + have--; + // Use '|' instead of '+' to make sure that result is signed + hold |= input[next++] << bits; + bits += 8; + } + //===// + _out -= left; + strm.total_out += _out; + state.total += _out; + if (_out) { + strm.adler = state.check = + /*UPDATE(state.check, put - _out, _out);*/ + (state.flags ? crc32_1(state.check, output, _out, put - _out) : adler32_1(state.check, output, _out, put - _out)); + + } + _out = left; + // NB: crc32 stored as signed 32-bit int, zswap32 returns signed too + if ((state.flags ? hold : zswap32(hold)) !== state.check) { + strm.msg = 'incorrect data check'; + state.mode = BAD; + break; + } + //=== INITBITS(); + hold = 0; + bits = 0; + //===// + //Tracev((stderr, "inflate: check matches trailer\n")); + } + state.mode = LENGTH$2; + /* falls through */ + case LENGTH$2: + if (state.wrap && state.flags) { + //=== NEEDBITS(32); + while (bits < 32) { + if (have === 0) { break inf_leave; } + have--; + hold += input[next++] << bits; + bits += 8; + } + //===// + if (hold !== (state.total & 0xffffffff)) { + strm.msg = 'incorrect length check'; + state.mode = BAD; + break; + } + //=== INITBITS(); + hold = 0; + bits = 0; + //===// + //Tracev((stderr, "inflate: length matches trailer\n")); + } + state.mode = DONE; + /* falls through */ + case DONE: + ret = Z_STREAM_END$1; + break inf_leave; + case BAD: + ret = Z_DATA_ERROR$1; + break inf_leave; + case MEM: + return Z_MEM_ERROR$1; + case SYNC: + /* falls through */ + default: + return Z_STREAM_ERROR$1; + } + } + + // inf_leave <- here is real place for "goto inf_leave", emulated via "break inf_leave" + + /* + Return from inflate(), updating the total counts and the check value. + If there was no progress during the inflate() call, return a buffer + error. Call updatewindow() to create and/or update the window state. + Note: a memory error from inflate() is non-recoverable. + */ + + //--- RESTORE() --- + strm.next_out = put; + strm.avail_out = left; + strm.next_in = next; + strm.avail_in = have; + state.hold = hold; + state.bits = bits; + //--- + + if (state.wsize || (_out !== strm.avail_out && state.mode < BAD && + (state.mode < CHECK || flush !== Z_FINISH$1))) { + if (updatewindow(strm, strm.output, strm.next_out, _out - strm.avail_out)) ; + } + _in -= strm.avail_in; + _out -= strm.avail_out; + strm.total_in += _in; + strm.total_out += _out; + state.total += _out; + if (state.wrap && _out) { + strm.adler = state.check = /*UPDATE(state.check, strm.next_out - _out, _out);*/ + (state.flags ? crc32_1(state.check, output, _out, strm.next_out - _out) : adler32_1(state.check, output, _out, strm.next_out - _out)); + } + strm.data_type = state.bits + (state.last ? 64 : 0) + + (state.mode === TYPE ? 128 : 0) + + (state.mode === LEN_ || state.mode === COPY_ ? 256 : 0); + if (((_in === 0 && _out === 0) || flush === Z_FINISH$1) && ret === Z_OK$1) { + ret = Z_BUF_ERROR; + } + return ret; + }; + + + const inflateEnd = (strm) => { + + if (!strm || !strm.state /*|| strm->zfree == (free_func)0*/) { + return Z_STREAM_ERROR$1; + } + + let state = strm.state; + if (state.window) { + state.window = null; + } + strm.state = null; + return Z_OK$1; + }; + + + const inflateGetHeader = (strm, head) => { + + /* check state */ + if (!strm || !strm.state) { return Z_STREAM_ERROR$1; } + const state = strm.state; + if ((state.wrap & 2) === 0) { return Z_STREAM_ERROR$1; } + + /* save header structure */ + state.head = head; + head.done = false; + return Z_OK$1; + }; + + + const inflateSetDictionary = (strm, dictionary) => { + const dictLength = dictionary.length; + + let state; + let dictid; + let ret; + + /* check state */ + if (!strm /* == Z_NULL */ || !strm.state /* == Z_NULL */) { return Z_STREAM_ERROR$1; } + state = strm.state; + + if (state.wrap !== 0 && state.mode !== DICT) { + return Z_STREAM_ERROR$1; + } + + /* check for correct dictionary identifier */ + if (state.mode === DICT) { + dictid = 1; /* adler32(0, null, 0)*/ + /* dictid = adler32(dictid, dictionary, dictLength); */ + dictid = adler32_1(dictid, dictionary, dictLength, 0); + if (dictid !== state.check) { + return Z_DATA_ERROR$1; + } + } + /* copy dictionary to window using updatewindow(), which will amend the + existing dictionary if appropriate */ + ret = updatewindow(strm, dictionary, dictLength, dictLength); + if (ret) { + state.mode = MEM; + return Z_MEM_ERROR$1; + } + state.havedict = 1; + // Tracev((stderr, "inflate: dictionary set\n")); + return Z_OK$1; + }; + + + var inflateReset_1 = inflateReset; + var inflateReset2_1 = inflateReset2; + var inflateResetKeep_1 = inflateResetKeep; + var inflateInit_1 = inflateInit; + var inflateInit2_1 = inflateInit2; + var inflate_2$1 = inflate$2; + var inflateEnd_1 = inflateEnd; + var inflateGetHeader_1 = inflateGetHeader; + var inflateSetDictionary_1 = inflateSetDictionary; + var inflateInfo = 'pako inflate (from Nodeca project)'; + + /* Not implemented + module.exports.inflateCopy = inflateCopy; + module.exports.inflateGetDictionary = inflateGetDictionary; + module.exports.inflateMark = inflateMark; + module.exports.inflatePrime = inflatePrime; + module.exports.inflateSync = inflateSync; + module.exports.inflateSyncPoint = inflateSyncPoint; + module.exports.inflateUndermine = inflateUndermine; + */ + + var inflate_1$2 = { + inflateReset: inflateReset_1, + inflateReset2: inflateReset2_1, + inflateResetKeep: inflateResetKeep_1, + inflateInit: inflateInit_1, + inflateInit2: inflateInit2_1, + inflate: inflate_2$1, + inflateEnd: inflateEnd_1, + inflateGetHeader: inflateGetHeader_1, + inflateSetDictionary: inflateSetDictionary_1, + inflateInfo: inflateInfo + }; + + // (C) 1995-2013 Jean-loup Gailly and Mark Adler + // (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin + // + // This software is provided 'as-is', without any express or implied + // warranty. In no event will the authors be held liable for any damages + // arising from the use of this software. + // + // Permission is granted to anyone to use this software for any purpose, + // including commercial applications, and to alter it and redistribute it + // freely, subject to the following restrictions: + // + // 1. The origin of this software must not be misrepresented; you must not + // claim that you wrote the original software. If you use this software + // in a product, an acknowledgment in the product documentation would be + // appreciated but is not required. + // 2. Altered source versions must be plainly marked as such, and must not be + // misrepresented as being the original software. + // 3. This notice may not be removed or altered from any source distribution. + + function GZheader() { + /* true if compressed data believed to be text */ + this.text = 0; + /* modification time */ + this.time = 0; + /* extra flags (not used when writing a gzip file) */ + this.xflags = 0; + /* operating system */ + this.os = 0; + /* pointer to extra field or Z_NULL if none */ + this.extra = null; + /* extra field length (valid if extra != Z_NULL) */ + this.extra_len = 0; // Actually, we don't need it in JS, + // but leave for few code modifications + + // + // Setup limits is not necessary because in js we should not preallocate memory + // for inflate use constant limit in 65536 bytes + // + + /* space at extra (only when reading header) */ + // this.extra_max = 0; + /* pointer to zero-terminated file name or Z_NULL */ + this.name = ''; + /* space at name (only when reading header) */ + // this.name_max = 0; + /* pointer to zero-terminated comment or Z_NULL */ + this.comment = ''; + /* space at comment (only when reading header) */ + // this.comm_max = 0; + /* true if there was or will be a header crc */ + this.hcrc = 0; + /* true when done reading gzip header (not used when writing a gzip file) */ + this.done = false; + } + + var gzheader = GZheader; + + const toString = Object.prototype.toString; + + /* Public constants ==========================================================*/ + /* ===========================================================================*/ + + const { + Z_NO_FLUSH, Z_FINISH, + Z_OK, Z_STREAM_END, Z_NEED_DICT, Z_STREAM_ERROR, Z_DATA_ERROR, Z_MEM_ERROR + } = constants$2; + + /* ===========================================================================*/ + + + /** + * class Inflate + * + * Generic JS-style wrapper for zlib calls. If you don't need + * streaming behaviour - use more simple functions: [[inflate]] + * and [[inflateRaw]]. + **/ + + /* internal + * inflate.chunks -> Array + * + * Chunks of output data, if [[Inflate#onData]] not overridden. + **/ + + /** + * Inflate.result -> Uint8Array|String + * + * Uncompressed result, generated by default [[Inflate#onData]] + * and [[Inflate#onEnd]] handlers. Filled after you push last chunk + * (call [[Inflate#push]] with `Z_FINISH` / `true` param). + **/ + + /** + * Inflate.err -> Number + * + * Error code after inflate finished. 0 (Z_OK) on success. + * Should be checked if broken data possible. + **/ + + /** + * Inflate.msg -> String + * + * Error message, if [[Inflate.err]] != 0 + **/ + + + /** + * new Inflate(options) + * - options (Object): zlib inflate options. + * + * Creates new inflator instance with specified params. Throws exception + * on bad params. Supported options: + * + * - `windowBits` + * - `dictionary` + * + * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced) + * for more information on these. + * + * Additional options, for internal needs: + * + * - `chunkSize` - size of generated data chunks (16K by default) + * - `raw` (Boolean) - do raw inflate + * - `to` (String) - if equal to 'string', then result will be converted + * from utf8 to utf16 (javascript) string. When string output requested, + * chunk length can differ from `chunkSize`, depending on content. + * + * By default, when no options set, autodetect deflate/gzip data format via + * wrapper header. + * + * ##### Example: + * + * ```javascript + * const pako = require('pako') + * const chunk1 = new Uint8Array([1,2,3,4,5,6,7,8,9]) + * const chunk2 = new Uint8Array([10,11,12,13,14,15,16,17,18,19]); + * + * const inflate = new pako.Inflate({ level: 3}); + * + * inflate.push(chunk1, false); + * inflate.push(chunk2, true); // true -> last chunk + * + * if (inflate.err) { throw new Error(inflate.err); } + * + * console.log(inflate.result); + * ``` + **/ + function Inflate$1(options) { + this.options = common.assign({ + chunkSize: 1024 * 64, + windowBits: 15, + to: '' + }, options || {}); + + const opt = this.options; + + // Force window size for `raw` data, if not set directly, + // because we have no header for autodetect. + if (opt.raw && (opt.windowBits >= 0) && (opt.windowBits < 16)) { + opt.windowBits = -opt.windowBits; + if (opt.windowBits === 0) { opt.windowBits = -15; } + } + + // If `windowBits` not defined (and mode not raw) - set autodetect flag for gzip/deflate + if ((opt.windowBits >= 0) && (opt.windowBits < 16) && + !(options && options.windowBits)) { + opt.windowBits += 32; + } + + // Gzip header has no info about windows size, we can do autodetect only + // for deflate. So, if window size not set, force it to max when gzip possible + if ((opt.windowBits > 15) && (opt.windowBits < 48)) { + // bit 3 (16) -> gzipped data + // bit 4 (32) -> autodetect gzip/deflate + if ((opt.windowBits & 15) === 0) { + opt.windowBits |= 15; + } + } + + this.err = 0; // error code, if happens (0 = Z_OK) + this.msg = ''; // error message + this.ended = false; // used to avoid multiple onEnd() calls + this.chunks = []; // chunks of compressed data + + this.strm = new zstream(); + this.strm.avail_out = 0; + + let status = inflate_1$2.inflateInit2( + this.strm, + opt.windowBits + ); + + if (status !== Z_OK) { + throw new Error(messages[status]); + } + + this.header = new gzheader(); + + inflate_1$2.inflateGetHeader(this.strm, this.header); + + // Setup dictionary + if (opt.dictionary) { + // Convert data if needed + if (typeof opt.dictionary === 'string') { + opt.dictionary = strings.string2buf(opt.dictionary); + } else if (toString.call(opt.dictionary) === '[object ArrayBuffer]') { + opt.dictionary = new Uint8Array(opt.dictionary); + } + if (opt.raw) { //In raw mode we need to set the dictionary early + status = inflate_1$2.inflateSetDictionary(this.strm, opt.dictionary); + if (status !== Z_OK) { + throw new Error(messages[status]); + } + } + } + } + + /** + * Inflate#push(data[, flush_mode]) -> Boolean + * - data (Uint8Array|ArrayBuffer): input data + * - flush_mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE + * flush modes. See constants. Skipped or `false` means Z_NO_FLUSH, + * `true` means Z_FINISH. + * + * Sends input data to inflate pipe, generating [[Inflate#onData]] calls with + * new output chunks. Returns `true` on success. If end of stream detected, + * [[Inflate#onEnd]] will be called. + * + * `flush_mode` is not needed for normal operation, because end of stream + * detected automatically. You may try to use it for advanced things, but + * this functionality was not tested. + * + * On fail call [[Inflate#onEnd]] with error code and return false. + * + * ##### Example + * + * ```javascript + * push(chunk, false); // push one of data chunks + * ... + * push(chunk, true); // push last chunk + * ``` + **/ + Inflate$1.prototype.push = function (data, flush_mode) { + const strm = this.strm; + const chunkSize = this.options.chunkSize; + const dictionary = this.options.dictionary; + let status, _flush_mode, last_avail_out; + + if (this.ended) return false; + + if (flush_mode === ~~flush_mode) _flush_mode = flush_mode; + else _flush_mode = flush_mode === true ? Z_FINISH : Z_NO_FLUSH; + + // Convert data if needed + if (toString.call(data) === '[object ArrayBuffer]') { + strm.input = new Uint8Array(data); + } else { + strm.input = data; + } + + strm.next_in = 0; + strm.avail_in = strm.input.length; + + for (;;) { + if (strm.avail_out === 0) { + strm.output = new Uint8Array(chunkSize); + strm.next_out = 0; + strm.avail_out = chunkSize; + } + + status = inflate_1$2.inflate(strm, _flush_mode); + + if (status === Z_NEED_DICT && dictionary) { + status = inflate_1$2.inflateSetDictionary(strm, dictionary); + + if (status === Z_OK) { + status = inflate_1$2.inflate(strm, _flush_mode); + } else if (status === Z_DATA_ERROR) { + // Replace code with more verbose + status = Z_NEED_DICT; + } + } + + // Skip snyc markers if more data follows and not raw mode + while (strm.avail_in > 0 && + status === Z_STREAM_END && + strm.state.wrap > 0 && + data[strm.next_in] !== 0) + { + inflate_1$2.inflateReset(strm); + status = inflate_1$2.inflate(strm, _flush_mode); + } + + switch (status) { + case Z_STREAM_ERROR: + case Z_DATA_ERROR: + case Z_NEED_DICT: + case Z_MEM_ERROR: + this.onEnd(status); + this.ended = true; + return false; + } + + // Remember real `avail_out` value, because we may patch out buffer content + // to align utf8 strings boundaries. + last_avail_out = strm.avail_out; + + if (strm.next_out) { + if (strm.avail_out === 0 || status === Z_STREAM_END) { + + if (this.options.to === 'string') { + + let next_out_utf8 = strings.utf8border(strm.output, strm.next_out); + + let tail = strm.next_out - next_out_utf8; + let utf8str = strings.buf2string(strm.output, next_out_utf8); + + // move tail & realign counters + strm.next_out = tail; + strm.avail_out = chunkSize - tail; + if (tail) strm.output.set(strm.output.subarray(next_out_utf8, next_out_utf8 + tail), 0); + + this.onData(utf8str); + + } else { + this.onData(strm.output.length === strm.next_out ? strm.output : strm.output.subarray(0, strm.next_out)); + } + } + } + + // Must repeat iteration if out buffer is full + if (status === Z_OK && last_avail_out === 0) continue; + + // Finalize if end of stream reached. + if (status === Z_STREAM_END) { + status = inflate_1$2.inflateEnd(this.strm); + this.onEnd(status); + this.ended = true; + return true; + } + + if (strm.avail_in === 0) break; + } + + return true; + }; + + + /** + * Inflate#onData(chunk) -> Void + * - chunk (Uint8Array|String): output data. When string output requested, + * each chunk will be string. + * + * By default, stores data blocks in `chunks[]` property and glue + * those in `onEnd`. Override this handler, if you need another behaviour. + **/ + Inflate$1.prototype.onData = function (chunk) { + this.chunks.push(chunk); + }; + + + /** + * Inflate#onEnd(status) -> Void + * - status (Number): inflate status. 0 (Z_OK) on success, + * other if not. + * + * Called either after you tell inflate that the input stream is + * complete (Z_FINISH). By default - join collected chunks, + * free memory and fill `results` / `err` properties. + **/ + Inflate$1.prototype.onEnd = function (status) { + // On success - join + if (status === Z_OK) { + if (this.options.to === 'string') { + this.result = this.chunks.join(''); + } else { + this.result = common.flattenChunks(this.chunks); + } + } + this.chunks = []; + this.err = status; + this.msg = this.strm.msg; + }; + + + /** + * inflate(data[, options]) -> Uint8Array|String + * - data (Uint8Array): input data to decompress. + * - options (Object): zlib inflate options. + * + * Decompress `data` with inflate/ungzip and `options`. Autodetect + * format via wrapper header by default. That's why we don't provide + * separate `ungzip` method. + * + * Supported options are: + * + * - windowBits + * + * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced) + * for more information. + * + * Sugar (options): + * + * - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify + * negative windowBits implicitly. + * - `to` (String) - if equal to 'string', then result will be converted + * from utf8 to utf16 (javascript) string. When string output requested, + * chunk length can differ from `chunkSize`, depending on content. + * + * + * ##### Example: + * + * ```javascript + * const pako = require('pako'); + * const input = pako.deflate(new Uint8Array([1,2,3,4,5,6,7,8,9])); + * let output; + * + * try { + * output = pako.inflate(input); + * } catch (err) { + * console.log(err); + * } + * ``` + **/ + function inflate$1(input, options) { + const inflator = new Inflate$1(options); + + inflator.push(input); + + // That will never happens, if you don't cheat with options :) + if (inflator.err) throw inflator.msg || messages[inflator.err]; + + return inflator.result; + } + + + /** + * inflateRaw(data[, options]) -> Uint8Array|String + * - data (Uint8Array): input data to decompress. + * - options (Object): zlib inflate options. + * + * The same as [[inflate]], but creates raw data, without wrapper + * (header and adler32 crc). + **/ + function inflateRaw$1(input, options) { + options = options || {}; + options.raw = true; + return inflate$1(input, options); + } + + + /** + * ungzip(data[, options]) -> Uint8Array|String + * - data (Uint8Array): input data to decompress. + * - options (Object): zlib inflate options. + * + * Just shortcut to [[inflate]], because it autodetects format + * by header.content. Done for convenience. + **/ + + + var Inflate_1$1 = Inflate$1; + var inflate_2 = inflate$1; + var inflateRaw_1$1 = inflateRaw$1; + var ungzip$1 = inflate$1; + var constants = constants$2; + + var inflate_1$1 = { + Inflate: Inflate_1$1, + inflate: inflate_2, + inflateRaw: inflateRaw_1$1, + ungzip: ungzip$1, + constants: constants + }; + + const { Deflate, deflate, deflateRaw, gzip } = deflate_1$1; + + const { Inflate, inflate, inflateRaw, ungzip } = inflate_1$1; + + + + var Deflate_1 = Deflate; + var deflate_1 = deflate; + var deflateRaw_1 = deflateRaw; + var gzip_1 = gzip; + var Inflate_1 = Inflate; + var inflate_1 = inflate; + var inflateRaw_1 = inflateRaw; + var ungzip_1 = ungzip; + var constants_1 = constants$2; + + var pako = { + Deflate: Deflate_1, + deflate: deflate_1, + deflateRaw: deflateRaw_1, + gzip: gzip_1, + Inflate: Inflate_1, + inflate: inflate_1, + inflateRaw: inflateRaw_1, + ungzip: ungzip_1, + constants: constants_1 + }; + + function toInt(val) { + if (isNaN(val)) { + throw new Error("Not a number: " + val); + } else if (typeof val == "string") { + return parseInt(val); + } else return val; + } + function toFloat(val) { + if (typeof val == "string") { + return parseFloat(val); + } else return val; + } + var BufferStream = /*#__PURE__*/function () { + function BufferStream(sizeOrBuffer, littleEndian) { + _classCallCheck(this, BufferStream); + this.buffer = typeof sizeOrBuffer == "number" ? new ArrayBuffer(sizeOrBuffer) : sizeOrBuffer; + if (!this.buffer) { + this.buffer = new ArrayBuffer(0); + } + this.view = new DataView(this.buffer); + this.offset = 0; + this.isLittleEndian = littleEndian || false; + this.size = 0; + this.encoder = new TextEncoder("utf-8"); + } + _createClass(BufferStream, [{ + key: "setEndian", + value: function setEndian(isLittle) { + this.isLittleEndian = isLittle; + } + }, { + key: "writeUint8", + value: function writeUint8(value) { + this.checkSize(1); + this.view.setUint8(this.offset, toInt(value)); + return this.increment(1); + } + }, { + key: "writeUint8Repeat", + value: function writeUint8Repeat(value, count) { + var v = toInt(value); + this.checkSize(count); + for (var i = 0; i < count; i++) { + this.view.setUint8(this.offset + i, v); + } + return this.increment(count); + } + }, { + key: "writeInt8", + value: function writeInt8(value) { + this.checkSize(1); + this.view.setInt8(this.offset, toInt(value)); + return this.increment(1); + } + }, { + key: "writeUint16", + value: function writeUint16(value) { + this.checkSize(2); + this.view.setUint16(this.offset, toInt(value), this.isLittleEndian); + return this.increment(2); + } + }, { + key: "writeTwoUint16s", + value: function writeTwoUint16s(value) { + this.checkSize(4); + var first = value >> 16; + var second = value & 0xffff; + this.view.setUint16(this.offset, toInt(first), this.isLittleEndian); + this.view.setUint16(this.offset + 2, toInt(second), this.isLittleEndian); + return this.increment(4); + } + }, { + key: "writeInt16", + value: function writeInt16(value) { + this.checkSize(2); + this.view.setInt16(this.offset, toInt(value), this.isLittleEndian); + return this.increment(2); + } + }, { + key: "writeUint32", + value: function writeUint32(value) { + this.checkSize(4); + this.view.setUint32(this.offset, toInt(value), this.isLittleEndian); + return this.increment(4); + } + }, { + key: "writeInt32", + value: function writeInt32(value) { + this.checkSize(4); + this.view.setInt32(this.offset, toInt(value), this.isLittleEndian); + return this.increment(4); + } + }, { + key: "writeFloat", + value: function writeFloat(value) { + this.checkSize(4); + this.view.setFloat32(this.offset, toFloat(value), this.isLittleEndian); + return this.increment(4); + } + }, { + key: "writeDouble", + value: function writeDouble(value) { + this.checkSize(8); + this.view.setFloat64(this.offset, toFloat(value), this.isLittleEndian); + return this.increment(8); + } + }, { + key: "writeUTF8String", + value: function writeUTF8String(value) { + var encodedString = this.encoder.encode(value); + this.checkSize(encodedString.byteLength); + new Uint8Array(this.buffer).set(encodedString, this.offset); + return this.increment(encodedString.byteLength); + } + }, { + key: "writeAsciiString", + value: function writeAsciiString(value) { + value = value || ""; + var len = value.length; + this.checkSize(len); + var startOffset = this.offset; + for (var i = 0; i < len; i++) { + var charcode = value.charCodeAt(i); + this.view.setUint8(startOffset + i, charcode); + } + return this.increment(len); + } + }, { + key: "readUint32", + value: function readUint32() { + var val = this.view.getUint32(this.offset, this.isLittleEndian); + this.increment(4); + return val; + } + }, { + key: "readUint16", + value: function readUint16() { + var val = this.view.getUint16(this.offset, this.isLittleEndian); + this.increment(2); + return val; + } + }, { + key: "readUint8", + value: function readUint8() { + var val = this.view.getUint8(this.offset); + this.increment(1); + return val; + } + }, { + key: "peekUint8", + value: function peekUint8(offset) { + return this.view.getUint8(this.offset + offset); + } + }, { + key: "readUint8Array", + value: function readUint8Array(length) { + var arr = new Uint8Array(this.buffer, this.offset, length); + this.increment(length); + return arr; + } + }, { + key: "readUint16Array", + value: function readUint16Array(length) { + var sixlen = length / 2, + arr = new Uint16Array(sixlen), + i = 0; + while (i++ < sixlen) { + arr[i] = this.view.getUint16(this.offset, this.isLittleEndian); + this.offset += 2; + } + return arr; + } + }, { + key: "readInt16", + value: function readInt16() { + var val = this.view.getInt16(this.offset, this.isLittleEndian); + this.increment(2); + return val; + } + }, { + key: "readInt32", + value: function readInt32() { + var val = this.view.getInt32(this.offset, this.isLittleEndian); + this.increment(4); + return val; + } + }, { + key: "readFloat", + value: function readFloat() { + var val = this.view.getFloat32(this.offset, this.isLittleEndian); + this.increment(4); + return val; + } + }, { + key: "readDouble", + value: function readDouble() { + var val = this.view.getFloat64(this.offset, this.isLittleEndian); + this.increment(8); + return val; + } + }, { + key: "readAsciiString", + value: function readAsciiString(length) { + var result = ""; + var start = this.offset; + var end = this.offset + length; + if (end >= this.buffer.byteLength) { + end = this.buffer.byteLength; + } + for (var i = start; i < end; ++i) { + result += String.fromCharCode(this.view.getUint8(i)); + } + this.increment(end - start); + return result; + } + }, { + key: "readVR", + value: function readVR() { + var vr = String.fromCharCode(this.view.getUint8(this.offset)) + String.fromCharCode(this.view.getUint8(this.offset + 1)); + this.increment(2); + return vr; + } + }, { + key: "readEncodedString", + value: function readEncodedString(length) { + if (this.offset + length >= this.buffer.byteLength) { + length = this.buffer.byteLength - this.offset; + } + var view = new DataView(this.buffer, this.offset, length); + var result = this.decoder.decode(view); + this.increment(length); + return result; + } + }, { + key: "readHex", + value: function readHex(length) { + var hexString = ""; + for (var i = 0; i < length; i++) { + hexString += this.readUint8().toString(16); + } + return hexString; + } + }, { + key: "checkSize", + value: function checkSize(step) { + if (this.offset + step > this.buffer.byteLength) { + //throw new Error("Writing exceeded the size of buffer"); + // + // Resize the buffer. + // The idea is that when it is necessary to increase the buffer size, + // there will likely be more bytes which need to be written to the + // buffer in the future. Buffer allocation is costly. + // So we increase the buffer size right now + // by a larger amount than necessary, to reserve space for later + // writes which then can be done much faster. The current size of + // the buffer is the best estimate of the scale by which the size + // should increase. + // So approximately doubling the size of the buffer + // (while ensuring it fits the new data) is a simple but effective strategy. + var dstSize = this.offset + step + this.buffer.byteLength; + var dst = new ArrayBuffer(dstSize); + new Uint8Array(dst).set(new Uint8Array(this.buffer)); + this.buffer = dst; + this.view = new DataView(this.buffer); + } + } + }, { + key: "concat", + value: function concat(stream) { + var available = this.buffer.byteLength - this.offset; + if (stream.size > available) { + var newbuf = new ArrayBuffer(this.offset + stream.size); + var int8 = new Uint8Array(newbuf); + int8.set(new Uint8Array(this.getBuffer(0, this.offset))); + int8.set(new Uint8Array(stream.getBuffer(0, stream.size)), this.offset); + this.buffer = newbuf; + this.view = new DataView(this.buffer); + } else { + var _int = new Uint8Array(this.buffer); + _int.set(new Uint8Array(stream.getBuffer(0, stream.size)), this.offset); + } + this.offset += stream.size; + this.size = this.offset; + return this.buffer.byteLength; + } + }, { + key: "increment", + value: function increment(step) { + this.offset += step; + if (this.offset > this.size) { + this.size = this.offset; + } + return step; + } + }, { + key: "getBuffer", + value: function getBuffer(start, end) { + if (!start && !end) { + start = 0; + end = this.size; + } + return this.buffer.slice(start, end); + } + }, { + key: "more", + value: function more(length) { + if (this.offset + length > this.endOffset) { + throw new Error("Request more than currently allocated buffer"); + } + var newBuf = new ReadBufferStream(this.buffer, null, { + start: this.offset, + stop: this.offset + length + }); + this.increment(length); + return newBuf; + } + }, { + key: "reset", + value: function reset() { + this.offset = 0; + return this; + } + }, { + key: "end", + value: function end() { + return this.offset >= this.buffer.byteLength; + } + }, { + key: "toEnd", + value: function toEnd() { + this.offset = this.buffer.byteLength; + } + }]); + return BufferStream; + }(); + var ReadBufferStream = /*#__PURE__*/function (_BufferStream) { + _inherits(ReadBufferStream, _BufferStream); + var _super = _createSuper(ReadBufferStream); + function ReadBufferStream(buffer, littleEndian) { + var _this; + var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : { + start: null, + stop: null, + noCopy: false + }; + _classCallCheck(this, ReadBufferStream); + _this = _super.call(this, buffer, littleEndian); + _this.offset = options.start || 0; + _this.size = options.stop || _this.buffer.byteLength; + _this.noCopy = options.noCopy; + _this.startOffset = _this.offset; + _this.endOffset = _this.size; + _this.decoder = new TextDecoder("latin1"); + return _this; + } + _createClass(ReadBufferStream, [{ + key: "setDecoder", + value: function setDecoder(decoder) { + this.decoder = decoder; + } + }, { + key: "getBuffer", + value: function getBuffer(start, end) { + if (this.noCopy) { + return new Uint8Array(this.buffer, start, end - start); + } + if (!start && !end) { + start = 0; + end = this.size; + } + return this.buffer.slice(start, end); + } + }, { + key: "reset", + value: function reset() { + this.offset = this.startOffset; + return this; + } + }, { + key: "end", + value: function end() { + return this.offset >= this.endOffset; + } + }, { + key: "toEnd", + value: function toEnd() { + this.offset = this.endOffset; + } + }, { + key: "writeUint8", + value: function writeUint8(value) { + throw new Error(value, "writeUint8 not implemented"); + } + }, { + key: "writeUint8Repeat", + value: function writeUint8Repeat(value, count) { + throw new Error(value, "writeUint8Repeat not implemented"); + } + }, { + key: "writeInt8", + value: function writeInt8(value) { + throw new Error(value, "writeInt8 not implemented"); + } + }, { + key: "writeUint16", + value: function writeUint16(value) { + throw new Error(value, "writeUint16 not implemented"); + } + }, { + key: "writeTwoUint16s", + value: function writeTwoUint16s(value) { + throw new Error(value, "writeTwoUint16s not implemented"); + } + }, { + key: "writeInt16", + value: function writeInt16(value) { + throw new Error(value, "writeInt16 not implemented"); + } + }, { + key: "writeUint32", + value: function writeUint32(value) { + throw new Error(value, "writeUint32 not implemented"); + } + }, { + key: "writeInt32", + value: function writeInt32(value) { + throw new Error(value, "writeInt32 not implemented"); + } + }, { + key: "writeFloat", + value: function writeFloat(value) { + throw new Error(value, "writeFloat not implemented"); + } + }, { + key: "writeDouble", + value: function writeDouble(value) { + throw new Error(value, "writeDouble not implemented"); + } + }, { + key: "writeAsciiString", + value: function writeAsciiString(value) { + throw new Error(value, "writeAsciiString not implemented"); + } + }, { + key: "writeUTF8String", + value: function writeUTF8String(value) { + throw new Error(value, "writeUTF8String not implemented"); + } + }, { + key: "checkSize", + value: function checkSize(step) { + throw new Error(step, "checkSize not implemented"); + } + }, { + key: "concat", + value: function concat(stream) { + throw new Error(stream, "concat not implemented"); + } + }]); + return ReadBufferStream; + }(BufferStream); + var DeflatedReadBufferStream = /*#__PURE__*/function (_ReadBufferStream) { + _inherits(DeflatedReadBufferStream, _ReadBufferStream); + var _super2 = _createSuper(DeflatedReadBufferStream); + function DeflatedReadBufferStream(stream, options) { + _classCallCheck(this, DeflatedReadBufferStream); + var inflatedBuffer = pako.inflateRaw(stream.getBuffer(stream.offset, stream.size)); + return _super2.call(this, inflatedBuffer.buffer, stream.littleEndian, options); + } + return _createClass(DeflatedReadBufferStream); + }(ReadBufferStream); + var WriteBufferStream = /*#__PURE__*/function (_BufferStream2) { + _inherits(WriteBufferStream, _BufferStream2); + var _super3 = _createSuper(WriteBufferStream); + function WriteBufferStream(buffer, littleEndian) { + var _this2; + _classCallCheck(this, WriteBufferStream); + _this2 = _super3.call(this, buffer, littleEndian); + _this2.size = 0; + return _this2; + } + return _createClass(WriteBufferStream); + }(BufferStream); + + // TransferSyntaxUIDs + var IMPLICIT_LITTLE_ENDIAN = "1.2.840.10008.1.2"; + var EXPLICIT_LITTLE_ENDIAN$1 = "1.2.840.10008.1.2.1"; + var DEFLATED_EXPLICIT_LITTLE_ENDIAN = "1.2.840.10008.1.2.1.99"; + var EXPLICIT_BIG_ENDIAN = "1.2.840.10008.1.2.2"; + + // Value multiplicity and padding + var VM_DELIMITER = 0x5c; + var PADDING_NULL = 0x00; + var PADDING_SPACE = 0x20; + + // PersonName delimeters + var PN_COMPONENT_DELIMITER = 0x3d; + + var dictionary={"(0000,0000)":{tag:"(0000,0000)",vr:"UL",name:"CommandGroupLength",vm:"1",version:"DICOM"},"(0000,0002)":{tag:"(0000,0002)",vr:"UI",name:"AffectedSOPClassUID",vm:"1",version:"DICOM"},"(0000,0003)":{tag:"(0000,0003)",vr:"UI",name:"RequestedSOPClassUID",vm:"1",version:"DICOM"},"(0000,0100)":{tag:"(0000,0100)",vr:"US",name:"CommandField",vm:"1",version:"DICOM"},"(0000,0110)":{tag:"(0000,0110)",vr:"US",name:"MessageID",vm:"1",version:"DICOM"},"(0000,0120)":{tag:"(0000,0120)",vr:"US",name:"MessageIDBeingRespondedTo",vm:"1",version:"DICOM"},"(0000,0600)":{tag:"(0000,0600)",vr:"AE",name:"MoveDestination",vm:"1",version:"DICOM"},"(0000,0700)":{tag:"(0000,0700)",vr:"US",name:"Priority",vm:"1",version:"DICOM"},"(0000,0800)":{tag:"(0000,0800)",vr:"US",name:"CommandDataSetType",vm:"1",version:"DICOM"},"(0000,0900)":{tag:"(0000,0900)",vr:"US",name:"Status",vm:"1",version:"DICOM"},"(0000,0901)":{tag:"(0000,0901)",vr:"AT",name:"OffendingElement",vm:"1-n",version:"DICOM"},"(0000,0902)":{tag:"(0000,0902)",vr:"LO",name:"ErrorComment",vm:"1",version:"DICOM"},"(0000,0903)":{tag:"(0000,0903)",vr:"US",name:"ErrorID",vm:"1",version:"DICOM"},"(0000,1000)":{tag:"(0000,1000)",vr:"UI",name:"AffectedSOPInstanceUID",vm:"1",version:"DICOM"},"(0000,1001)":{tag:"(0000,1001)",vr:"UI",name:"RequestedSOPInstanceUID",vm:"1",version:"DICOM"},"(0000,1002)":{tag:"(0000,1002)",vr:"US",name:"EventTypeID",vm:"1",version:"DICOM"},"(0000,1005)":{tag:"(0000,1005)",vr:"AT",name:"AttributeIdentifierList",vm:"1-n",version:"DICOM"},"(0000,1008)":{tag:"(0000,1008)",vr:"US",name:"ActionTypeID",vm:"1",version:"DICOM"},"(0000,1020)":{tag:"(0000,1020)",vr:"US",name:"NumberOfRemainingSuboperations",vm:"1",version:"DICOM"},"(0000,1021)":{tag:"(0000,1021)",vr:"US",name:"NumberOfCompletedSuboperations",vm:"1",version:"DICOM"},"(0000,1022)":{tag:"(0000,1022)",vr:"US",name:"NumberOfFailedSuboperations",vm:"1",version:"DICOM"},"(0000,1023)":{tag:"(0000,1023)",vr:"US",name:"NumberOfWarningSuboperations",vm:"1",version:"DICOM"},"(0000,1030)":{tag:"(0000,1030)",vr:"AE",name:"MoveOriginatorApplicationEntityTitle",vm:"1",version:"DICOM"},"(0000,1031)":{tag:"(0000,1031)",vr:"US",name:"MoveOriginatorMessageID",vm:"1",version:"DICOM"},"(0002,0000)":{tag:"(0002,0000)",vr:"UL",name:"FileMetaInformationGroupLength",vm:"1",version:"DICOM"},"(0002,0001)":{tag:"(0002,0001)",vr:"OB",name:"FileMetaInformationVersion",vm:"1",version:"DICOM"},"(0002,0002)":{tag:"(0002,0002)",vr:"UI",name:"MediaStorageSOPClassUID",vm:"1",version:"DICOM"},"(0002,0003)":{tag:"(0002,0003)",vr:"UI",name:"MediaStorageSOPInstanceUID",vm:"1",version:"DICOM"},"(0002,0010)":{tag:"(0002,0010)",vr:"UI",name:"TransferSyntaxUID",vm:"1",version:"DICOM"},"(0002,0012)":{tag:"(0002,0012)",vr:"UI",name:"ImplementationClassUID",vm:"1",version:"DICOM"},"(0002,0013)":{tag:"(0002,0013)",vr:"SH",name:"ImplementationVersionName",vm:"1",version:"DICOM"},"(0002,0016)":{tag:"(0002,0016)",vr:"AE",name:"SourceApplicationEntityTitle",vm:"1",version:"DICOM"},"(0002,0017)":{tag:"(0002,0017)",vr:"AE",name:"SendingApplicationEntityTitle",vm:"1",version:"DICOM"},"(0002,0018)":{tag:"(0002,0018)",vr:"AE",name:"ReceivingApplicationEntityTitle",vm:"1",version:"DICOM"},"(0002,0100)":{tag:"(0002,0100)",vr:"UI",name:"PrivateInformationCreatorUID",vm:"1",version:"DICOM"},"(0002,0102)":{tag:"(0002,0102)",vr:"OB",name:"PrivateInformation",vm:"1",version:"DICOM"},"(0004,1130)":{tag:"(0004,1130)",vr:"CS",name:"FileSetID",vm:"1",version:"DICOM"},"(0004,1141)":{tag:"(0004,1141)",vr:"CS",name:"FileSetDescriptorFileID",vm:"1-8",version:"DICOM"},"(0004,1142)":{tag:"(0004,1142)",vr:"CS",name:"SpecificCharacterSetOfFileSetDescriptorFile",vm:"1",version:"DICOM"},"(0004,1200)":{tag:"(0004,1200)",vr:"up",name:"OffsetOfTheFirstDirectoryRecordOfTheRootDirectoryEntity",vm:"1",version:"DICOM"},"(0004,1202)":{tag:"(0004,1202)",vr:"up",name:"OffsetOfTheLastDirectoryRecordOfTheRootDirectoryEntity",vm:"1",version:"DICOM"},"(0004,1212)":{tag:"(0004,1212)",vr:"US",name:"FileSetConsistencyFlag",vm:"1",version:"DICOM"},"(0004,1220)":{tag:"(0004,1220)",vr:"SQ",name:"DirectoryRecordSequence",vm:"1",version:"DICOM"},"(0004,1400)":{tag:"(0004,1400)",vr:"up",name:"OffsetOfTheNextDirectoryRecord",vm:"1",version:"DICOM"},"(0004,1410)":{tag:"(0004,1410)",vr:"US",name:"RecordInUseFlag",vm:"1",version:"DICOM"},"(0004,1420)":{tag:"(0004,1420)",vr:"up",name:"OffsetOfReferencedLowerLevelDirectoryEntity",vm:"1",version:"DICOM"},"(0004,1430)":{tag:"(0004,1430)",vr:"CS",name:"DirectoryRecordType",vm:"1",version:"DICOM"},"(0004,1432)":{tag:"(0004,1432)",vr:"UI",name:"PrivateRecordUID",vm:"1",version:"DICOM"},"(0004,1500)":{tag:"(0004,1500)",vr:"CS",name:"ReferencedFileID",vm:"1-8",version:"DICOM"},"(0004,1510)":{tag:"(0004,1510)",vr:"UI",name:"ReferencedSOPClassUIDInFile",vm:"1",version:"DICOM"},"(0004,1511)":{tag:"(0004,1511)",vr:"UI",name:"ReferencedSOPInstanceUIDInFile",vm:"1",version:"DICOM"},"(0004,1512)":{tag:"(0004,1512)",vr:"UI",name:"ReferencedTransferSyntaxUIDInFile",vm:"1",version:"DICOM"},"(0004,151A)":{tag:"(0004,151A)",vr:"UI",name:"ReferencedRelatedGeneralSOPClassUIDInFile",vm:"1-n",version:"DICOM"},"(0008,0005)":{tag:"(0008,0005)",vr:"CS",name:"SpecificCharacterSet",vm:"1-n",version:"DICOM"},"(0008,0006)":{tag:"(0008,0006)",vr:"SQ",name:"LanguageCodeSequence",vm:"1",version:"DICOM"},"(0008,0008)":{tag:"(0008,0008)",vr:"CS",name:"ImageType",vm:"2-n",version:"DICOM"},"(0008,0012)":{tag:"(0008,0012)",vr:"DA",name:"InstanceCreationDate",vm:"1",version:"DICOM"},"(0008,0013)":{tag:"(0008,0013)",vr:"TM",name:"InstanceCreationTime",vm:"1",version:"DICOM"},"(0008,0014)":{tag:"(0008,0014)",vr:"UI",name:"InstanceCreatorUID",vm:"1",version:"DICOM"},"(0008,0015)":{tag:"(0008,0015)",vr:"DT",name:"InstanceCoercionDateTime",vm:"1",version:"DICOM"},"(0008,0016)":{tag:"(0008,0016)",vr:"UI",name:"SOPClassUID",vm:"1",version:"DICOM"},"(0008,0018)":{tag:"(0008,0018)",vr:"UI",name:"SOPInstanceUID",vm:"1",version:"DICOM"},"(0008,001A)":{tag:"(0008,001A)",vr:"UI",name:"RelatedGeneralSOPClassUID",vm:"1-n",version:"DICOM"},"(0008,001B)":{tag:"(0008,001B)",vr:"UI",name:"OriginalSpecializedSOPClassUID",vm:"1",version:"DICOM"},"(0008,0020)":{tag:"(0008,0020)",vr:"DA",name:"StudyDate",vm:"1",version:"DICOM"},"(0008,0021)":{tag:"(0008,0021)",vr:"DA",name:"SeriesDate",vm:"1",version:"DICOM"},"(0008,0022)":{tag:"(0008,0022)",vr:"DA",name:"AcquisitionDate",vm:"1",version:"DICOM"},"(0008,0023)":{tag:"(0008,0023)",vr:"DA",name:"ContentDate",vm:"1",version:"DICOM"},"(0008,002A)":{tag:"(0008,002A)",vr:"DT",name:"AcquisitionDateTime",vm:"1",version:"DICOM"},"(0008,0030)":{tag:"(0008,0030)",vr:"TM",name:"StudyTime",vm:"1",version:"DICOM"},"(0008,0031)":{tag:"(0008,0031)",vr:"TM",name:"SeriesTime",vm:"1",version:"DICOM"},"(0008,0032)":{tag:"(0008,0032)",vr:"TM",name:"AcquisitionTime",vm:"1",version:"DICOM"},"(0008,0033)":{tag:"(0008,0033)",vr:"TM",name:"ContentTime",vm:"1",version:"DICOM"},"(0008,0050)":{tag:"(0008,0050)",vr:"SH",name:"AccessionNumber",vm:"1",version:"DICOM"},"(0008,0051)":{tag:"(0008,0051)",vr:"SQ",name:"IssuerOfAccessionNumberSequence",vm:"1",version:"DICOM"},"(0008,0052)":{tag:"(0008,0052)",vr:"CS",name:"QueryRetrieveLevel",vm:"1",version:"DICOM"},"(0008,0053)":{tag:"(0008,0053)",vr:"CS",name:"QueryRetrieveView",vm:"1",version:"DICOM"},"(0008,0054)":{tag:"(0008,0054)",vr:"AE",name:"RetrieveAETitle",vm:"1-n",version:"DICOM"},"(0008,0055)":{tag:"(0008,0055)",vr:"AE",name:"StationAETitle",vm:"1",version:"DICOM"},"(0008,0056)":{tag:"(0008,0056)",vr:"CS",name:"InstanceAvailability",vm:"1",version:"DICOM"},"(0008,0058)":{tag:"(0008,0058)",vr:"UI",name:"FailedSOPInstanceUIDList",vm:"1-n",version:"DICOM"},"(0008,0060)":{tag:"(0008,0060)",vr:"CS",name:"Modality",vm:"1",version:"DICOM"},"(0008,0061)":{tag:"(0008,0061)",vr:"CS",name:"ModalitiesInStudy",vm:"1-n",version:"DICOM"},"(0008,0062)":{tag:"(0008,0062)",vr:"UI",name:"SOPClassesInStudy",vm:"1-n",version:"DICOM"},"(0008,0063)":{tag:"(0008,0063)",vr:"SQ",name:"AnatomicRegionsInStudyCodeSequence",vm:"1",version:"DICOM"},"(0008,0064)":{tag:"(0008,0064)",vr:"CS",name:"ConversionType",vm:"1",version:"DICOM"},"(0008,0068)":{tag:"(0008,0068)",vr:"CS",name:"PresentationIntentType",vm:"1",version:"DICOM"},"(0008,0070)":{tag:"(0008,0070)",vr:"LO",name:"Manufacturer",vm:"1",version:"DICOM"},"(0008,0080)":{tag:"(0008,0080)",vr:"LO",name:"InstitutionName",vm:"1",version:"DICOM"},"(0008,0081)":{tag:"(0008,0081)",vr:"ST",name:"InstitutionAddress",vm:"1",version:"DICOM"},"(0008,0082)":{tag:"(0008,0082)",vr:"SQ",name:"InstitutionCodeSequence",vm:"1",version:"DICOM"},"(0008,0090)":{tag:"(0008,0090)",vr:"PN",name:"ReferringPhysicianName",vm:"1",version:"DICOM"},"(0008,0092)":{tag:"(0008,0092)",vr:"ST",name:"ReferringPhysicianAddress",vm:"1",version:"DICOM"},"(0008,0094)":{tag:"(0008,0094)",vr:"SH",name:"ReferringPhysicianTelephoneNumbers",vm:"1-n",version:"DICOM"},"(0008,0096)":{tag:"(0008,0096)",vr:"SQ",name:"ReferringPhysicianIdentificationSequence",vm:"1",version:"DICOM"},"(0008,009C)":{tag:"(0008,009C)",vr:"PN",name:"ConsultingPhysicianName",vm:"1-n",version:"DICOM"},"(0008,009D)":{tag:"(0008,009D)",vr:"SQ",name:"ConsultingPhysicianIdentificationSequence",vm:"1",version:"DICOM"},"(0008,0100)":{tag:"(0008,0100)",vr:"SH",name:"CodeValue",vm:"1",version:"DICOM"},"(0008,0101)":{tag:"(0008,0101)",vr:"LO",name:"ExtendedCodeValue",vm:"1",version:"DICOM/DICOS"},"(0008,0102)":{tag:"(0008,0102)",vr:"SH",name:"CodingSchemeDesignator",vm:"1",version:"DICOM"},"(0008,0103)":{tag:"(0008,0103)",vr:"SH",name:"CodingSchemeVersion",vm:"1",version:"DICOM"},"(0008,0104)":{tag:"(0008,0104)",vr:"LO",name:"CodeMeaning",vm:"1",version:"DICOM"},"(0008,0105)":{tag:"(0008,0105)",vr:"CS",name:"MappingResource",vm:"1",version:"DICOM"},"(0008,0106)":{tag:"(0008,0106)",vr:"DT",name:"ContextGroupVersion",vm:"1",version:"DICOM"},"(0008,0107)":{tag:"(0008,0107)",vr:"DT",name:"ContextGroupLocalVersion",vm:"1",version:"DICOM"},"(0008,0108)":{tag:"(0008,0108)",vr:"LT",name:"ExtendedCodeMeaning",vm:"1",version:"DICOM/DICOS"},"(0008,0109)":{tag:"(0008,0109)",vr:"SQ",name:"CodingSchemeResourcesSequence",vm:"1",version:"DICOM"},"(0008,010A)":{tag:"(0008,010A)",vr:"CS",name:"CodingSchemeURLType",vm:"1",version:"DICOM"},"(0008,010B)":{tag:"(0008,010B)",vr:"CS",name:"ContextGroupExtensionFlag",vm:"1",version:"DICOM"},"(0008,010C)":{tag:"(0008,010C)",vr:"UI",name:"CodingSchemeUID",vm:"1",version:"DICOM"},"(0008,010D)":{tag:"(0008,010D)",vr:"UI",name:"ContextGroupExtensionCreatorUID",vm:"1",version:"DICOM"},"(0008,010E)":{tag:"(0008,010E)",vr:"UR",name:"CodingSchemeURL",vm:"1",version:"DICOM"},"(0008,010F)":{tag:"(0008,010F)",vr:"CS",name:"ContextIdentifier",vm:"1",version:"DICOM"},"(0008,0110)":{tag:"(0008,0110)",vr:"SQ",name:"CodingSchemeIdentificationSequence",vm:"1",version:"DICOM"},"(0008,0112)":{tag:"(0008,0112)",vr:"LO",name:"CodingSchemeRegistry",vm:"1",version:"DICOM"},"(0008,0114)":{tag:"(0008,0114)",vr:"ST",name:"CodingSchemeExternalID",vm:"1",version:"DICOM"},"(0008,0115)":{tag:"(0008,0115)",vr:"ST",name:"CodingSchemeName",vm:"1",version:"DICOM"},"(0008,0116)":{tag:"(0008,0116)",vr:"ST",name:"CodingSchemeResponsibleOrganization",vm:"1",version:"DICOM"},"(0008,0117)":{tag:"(0008,0117)",vr:"UI",name:"ContextUID",vm:"1",version:"DICOM"},"(0008,0118)":{tag:"(0008,0118)",vr:"UI",name:"MappingResourceUID",vm:"1",version:"DICOM"},"(0008,0119)":{tag:"(0008,0119)",vr:"UC",name:"LongCodeValue",vm:"1",version:"DICOM"},"(0008,0120)":{tag:"(0008,0120)",vr:"UR",name:"URNCodeValue",vm:"1",version:"DICOM"},"(0008,0121)":{tag:"(0008,0121)",vr:"SQ",name:"EquivalentCodeSequence",vm:"1",version:"DICOM"},"(0008,0122)":{tag:"(0008,0122)",vr:"LO",name:"MappingResourceName",vm:"1",version:"DICOM"},"(0008,0123)":{tag:"(0008,0123)",vr:"SQ",name:"ContextGroupIdentificationSequence",vm:"1",version:"DICOM"},"(0008,0124)":{tag:"(0008,0124)",vr:"SQ",name:"MappingResourceIdentificationSequence",vm:"1",version:"DICOM"},"(0008,0201)":{tag:"(0008,0201)",vr:"SH",name:"TimezoneOffsetFromUTC",vm:"1",version:"DICOM"},"(0008,0220)":{tag:"(0008,0220)",vr:"SQ",name:"ResponsibleGroupCodeSequence",vm:"1",version:"DICOM"},"(0008,0221)":{tag:"(0008,0221)",vr:"CS",name:"EquipmentModality",vm:"1",version:"DICOM"},"(0008,0222)":{tag:"(0008,0222)",vr:"LO",name:"ManufacturerRelatedModelGroup",vm:"1",version:"DICOM"},"(0008,0300)":{tag:"(0008,0300)",vr:"SQ",name:"PrivateDataElementCharacteristicsSequence",vm:"1",version:"DICOM"},"(0008,0301)":{tag:"(0008,0301)",vr:"US",name:"PrivateGroupReference",vm:"1",version:"DICOM"},"(0008,0302)":{tag:"(0008,0302)",vr:"LO",name:"PrivateCreatorReference",vm:"1",version:"DICOM"},"(0008,0303)":{tag:"(0008,0303)",vr:"CS",name:"BlockIdentifyingInformationStatus",vm:"1",version:"DICOM"},"(0008,0304)":{tag:"(0008,0304)",vr:"US",name:"NonidentifyingPrivateElements",vm:"1-n",version:"DICOM"},"(0008,0305)":{tag:"(0008,0305)",vr:"SQ",name:"DeidentificationActionSequence",vm:"1",version:"DICOM"},"(0008,0306)":{tag:"(0008,0306)",vr:"US",name:"IdentifyingPrivateElements",vm:"1-n",version:"DICOM"},"(0008,0307)":{tag:"(0008,0307)",vr:"CS",name:"DeidentificationAction",vm:"1",version:"DICOM"},"(0008,0308)":{tag:"(0008,0308)",vr:"US",name:"PrivateDataElement",vm:"1",version:"DICOM"},"(0008,0309)":{tag:"(0008,0309)",vr:"UL",name:"PrivateDataElementValueMultiplicity",vm:"1-3",version:"DICOM"},"(0008,030A)":{tag:"(0008,030A)",vr:"CS",name:"PrivateDataElementValueRepresentation",vm:"1",version:"DICOM"},"(0008,030B)":{tag:"(0008,030B)",vr:"UL",name:"PrivateDataElementNumberOfItems",vm:"1-2",version:"DICOM"},"(0008,030C)":{tag:"(0008,030C)",vr:"UC",name:"PrivateDataElementName",vm:"1",version:"DICOM"},"(0008,030D)":{tag:"(0008,030D)",vr:"UC",name:"PrivateDataElementKeyword",vm:"1",version:"DICOM"},"(0008,030E)":{tag:"(0008,030E)",vr:"UT",name:"PrivateDataElementDescription",vm:"1",version:"DICOM"},"(0008,030F)":{tag:"(0008,030F)",vr:"UT",name:"PrivateDataElementEncoding",vm:"1",version:"DICOM"},"(0008,0310)":{tag:"(0008,0310)",vr:"SQ",name:"PrivateDataElementDefinitionSequence",vm:"1",version:"DICOM"},"(0008,1010)":{tag:"(0008,1010)",vr:"SH",name:"StationName",vm:"1",version:"DICOM"},"(0008,1030)":{tag:"(0008,1030)",vr:"LO",name:"StudyDescription",vm:"1",version:"DICOM"},"(0008,1032)":{tag:"(0008,1032)",vr:"SQ",name:"ProcedureCodeSequence",vm:"1",version:"DICOM"},"(0008,103E)":{tag:"(0008,103E)",vr:"LO",name:"SeriesDescription",vm:"1",version:"DICOM"},"(0008,103F)":{tag:"(0008,103F)",vr:"SQ",name:"SeriesDescriptionCodeSequence",vm:"1",version:"DICOM"},"(0008,1040)":{tag:"(0008,1040)",vr:"LO",name:"InstitutionalDepartmentName",vm:"1",version:"DICOM"},"(0008,1041)":{tag:"(0008,1041)",vr:"SQ",name:"InstitutionalDepartmentTypeCodeSequence",vm:"1",version:"DICOM"},"(0008,1048)":{tag:"(0008,1048)",vr:"PN",name:"PhysiciansOfRecord",vm:"1-n",version:"DICOM"},"(0008,1049)":{tag:"(0008,1049)",vr:"SQ",name:"PhysiciansOfRecordIdentificationSequence",vm:"1",version:"DICOM"},"(0008,1050)":{tag:"(0008,1050)",vr:"PN",name:"PerformingPhysicianName",vm:"1-n",version:"DICOM"},"(0008,1052)":{tag:"(0008,1052)",vr:"SQ",name:"PerformingPhysicianIdentificationSequence",vm:"1",version:"DICOM"},"(0008,1060)":{tag:"(0008,1060)",vr:"PN",name:"NameOfPhysiciansReadingStudy",vm:"1-n",version:"DICOM"},"(0008,1062)":{tag:"(0008,1062)",vr:"SQ",name:"PhysiciansReadingStudyIdentificationSequence",vm:"1",version:"DICOM"},"(0008,1070)":{tag:"(0008,1070)",vr:"PN",name:"OperatorsName",vm:"1-n",version:"DICOM"},"(0008,1072)":{tag:"(0008,1072)",vr:"SQ",name:"OperatorIdentificationSequence",vm:"1",version:"DICOM"},"(0008,1080)":{tag:"(0008,1080)",vr:"LO",name:"AdmittingDiagnosesDescription",vm:"1-n",version:"DICOM"},"(0008,1084)":{tag:"(0008,1084)",vr:"SQ",name:"AdmittingDiagnosesCodeSequence",vm:"1",version:"DICOM"},"(0008,1090)":{tag:"(0008,1090)",vr:"LO",name:"ManufacturerModelName",vm:"1",version:"DICOM"},"(0008,1110)":{tag:"(0008,1110)",vr:"SQ",name:"ReferencedStudySequence",vm:"1",version:"DICOM"},"(0008,1111)":{tag:"(0008,1111)",vr:"SQ",name:"ReferencedPerformedProcedureStepSequence",vm:"1",version:"DICOM"},"(0008,1115)":{tag:"(0008,1115)",vr:"SQ",name:"ReferencedSeriesSequence",vm:"1",version:"DICOM"},"(0008,1120)":{tag:"(0008,1120)",vr:"SQ",name:"ReferencedPatientSequence",vm:"1",version:"DICOM"},"(0008,1125)":{tag:"(0008,1125)",vr:"SQ",name:"ReferencedVisitSequence",vm:"1",version:"DICOM"},"(0008,1134)":{tag:"(0008,1134)",vr:"SQ",name:"ReferencedStereometricInstanceSequence",vm:"1",version:"DICOM"},"(0008,113A)":{tag:"(0008,113A)",vr:"SQ",name:"ReferencedWaveformSequence",vm:"1",version:"DICOM"},"(0008,1140)":{tag:"(0008,1140)",vr:"SQ",name:"ReferencedImageSequence",vm:"1",version:"DICOM"},"(0008,114A)":{tag:"(0008,114A)",vr:"SQ",name:"ReferencedInstanceSequence",vm:"1",version:"DICOM"},"(0008,114B)":{tag:"(0008,114B)",vr:"SQ",name:"ReferencedRealWorldValueMappingInstanceSequence",vm:"1",version:"DICOM"},"(0008,1150)":{tag:"(0008,1150)",vr:"UI",name:"ReferencedSOPClassUID",vm:"1",version:"DICOM"},"(0008,1155)":{tag:"(0008,1155)",vr:"UI",name:"ReferencedSOPInstanceUID",vm:"1",version:"DICOM"},"(0008,1156)":{tag:"(0008,1156)",vr:"SQ",name:"DefinitionSourceSequence",vm:"1",version:"DICOM"},"(0008,115A)":{tag:"(0008,115A)",vr:"UI",name:"SOPClassesSupported",vm:"1-n",version:"DICOM"},"(0008,1160)":{tag:"(0008,1160)",vr:"IS",name:"ReferencedFrameNumber",vm:"1-n",version:"DICOM"},"(0008,1161)":{tag:"(0008,1161)",vr:"UL",name:"SimpleFrameList",vm:"1-n",version:"DICOM"},"(0008,1162)":{tag:"(0008,1162)",vr:"UL",name:"CalculatedFrameList",vm:"3-3n",version:"DICOM"},"(0008,1163)":{tag:"(0008,1163)",vr:"FD",name:"TimeRange",vm:"2",version:"DICOM"},"(0008,1164)":{tag:"(0008,1164)",vr:"SQ",name:"FrameExtractionSequence",vm:"1",version:"DICOM"},"(0008,1167)":{tag:"(0008,1167)",vr:"UI",name:"MultiFrameSourceSOPInstanceUID",vm:"1",version:"DICOM"},"(0008,1190)":{tag:"(0008,1190)",vr:"UR",name:"RetrieveURL",vm:"1",version:"DICOM"},"(0008,1195)":{tag:"(0008,1195)",vr:"UI",name:"TransactionUID",vm:"1",version:"DICOM"},"(0008,1196)":{tag:"(0008,1196)",vr:"US",name:"WarningReason",vm:"1",version:"DICOM"},"(0008,1197)":{tag:"(0008,1197)",vr:"US",name:"FailureReason",vm:"1",version:"DICOM"},"(0008,1198)":{tag:"(0008,1198)",vr:"SQ",name:"FailedSOPSequence",vm:"1",version:"DICOM"},"(0008,1199)":{tag:"(0008,1199)",vr:"SQ",name:"ReferencedSOPSequence",vm:"1",version:"DICOM"},"(0008,119A)":{tag:"(0008,119A)",vr:"SQ",name:"OtherFailuresSequence",vm:"1",version:"DICOM"},"(0008,1200)":{tag:"(0008,1200)",vr:"SQ",name:"StudiesContainingOtherReferencedInstancesSequence",vm:"1",version:"DICOM"},"(0008,1250)":{tag:"(0008,1250)",vr:"SQ",name:"RelatedSeriesSequence",vm:"1",version:"DICOM"},"(0008,2111)":{tag:"(0008,2111)",vr:"ST",name:"DerivationDescription",vm:"1",version:"DICOM"},"(0008,2112)":{tag:"(0008,2112)",vr:"SQ",name:"SourceImageSequence",vm:"1",version:"DICOM"},"(0008,2120)":{tag:"(0008,2120)",vr:"SH",name:"StageName",vm:"1",version:"DICOM"},"(0008,2122)":{tag:"(0008,2122)",vr:"IS",name:"StageNumber",vm:"1",version:"DICOM"},"(0008,2124)":{tag:"(0008,2124)",vr:"IS",name:"NumberOfStages",vm:"1",version:"DICOM"},"(0008,2127)":{tag:"(0008,2127)",vr:"SH",name:"ViewName",vm:"1",version:"DICOM"},"(0008,2128)":{tag:"(0008,2128)",vr:"IS",name:"ViewNumber",vm:"1",version:"DICOM"},"(0008,2129)":{tag:"(0008,2129)",vr:"IS",name:"NumberOfEventTimers",vm:"1",version:"DICOM"},"(0008,212A)":{tag:"(0008,212A)",vr:"IS",name:"NumberOfViewsInStage",vm:"1",version:"DICOM"},"(0008,2130)":{tag:"(0008,2130)",vr:"DS",name:"EventElapsedTimes",vm:"1-n",version:"DICOM"},"(0008,2132)":{tag:"(0008,2132)",vr:"LO",name:"EventTimerNames",vm:"1-n",version:"DICOM"},"(0008,2133)":{tag:"(0008,2133)",vr:"SQ",name:"EventTimerSequence",vm:"1",version:"DICOM"},"(0008,2134)":{tag:"(0008,2134)",vr:"FD",name:"EventTimeOffset",vm:"1",version:"DICOM"},"(0008,2135)":{tag:"(0008,2135)",vr:"SQ",name:"EventCodeSequence",vm:"1",version:"DICOM"},"(0008,2142)":{tag:"(0008,2142)",vr:"IS",name:"StartTrim",vm:"1",version:"DICOM"},"(0008,2143)":{tag:"(0008,2143)",vr:"IS",name:"StopTrim",vm:"1",version:"DICOM"},"(0008,2144)":{tag:"(0008,2144)",vr:"IS",name:"RecommendedDisplayFrameRate",vm:"1",version:"DICOM"},"(0008,2218)":{tag:"(0008,2218)",vr:"SQ",name:"AnatomicRegionSequence",vm:"1",version:"DICOM"},"(0008,2220)":{tag:"(0008,2220)",vr:"SQ",name:"AnatomicRegionModifierSequence",vm:"1",version:"DICOM"},"(0008,2228)":{tag:"(0008,2228)",vr:"SQ",name:"PrimaryAnatomicStructureSequence",vm:"1",version:"DICOM"},"(0008,2229)":{tag:"(0008,2229)",vr:"SQ",name:"AnatomicStructureSpaceOrRegionSequence",vm:"1",version:"DICOM"},"(0008,2230)":{tag:"(0008,2230)",vr:"SQ",name:"PrimaryAnatomicStructureModifierSequence",vm:"1",version:"DICOM"},"(0008,3001)":{tag:"(0008,3001)",vr:"SQ",name:"AlternateRepresentationSequence",vm:"1",version:"DICOM"},"(0008,3002)":{tag:"(0008,3002)",vr:"UI",name:"AvailableTransferSyntaxUID",vm:"1-n",version:"DICOM"},"(0008,3010)":{tag:"(0008,3010)",vr:"UI",name:"IrradiationEventUID",vm:"1-n",version:"DICOM"},"(0008,3011)":{tag:"(0008,3011)",vr:"SQ",name:"SourceIrradiationEventSequence",vm:"1",version:"DICOM"},"(0008,3012)":{tag:"(0008,3012)",vr:"UI",name:"RadiopharmaceuticalAdministrationEventUID",vm:"1",version:"DICOM"},"(0008,9007)":{tag:"(0008,9007)",vr:"CS",name:"FrameType",vm:"4",version:"DICOM"},"(0008,9092)":{tag:"(0008,9092)",vr:"SQ",name:"ReferencedImageEvidenceSequence",vm:"1",version:"DICOM"},"(0008,9121)":{tag:"(0008,9121)",vr:"SQ",name:"ReferencedRawDataSequence",vm:"1",version:"DICOM"},"(0008,9123)":{tag:"(0008,9123)",vr:"UI",name:"CreatorVersionUID",vm:"1",version:"DICOM"},"(0008,9124)":{tag:"(0008,9124)",vr:"SQ",name:"DerivationImageSequence",vm:"1",version:"DICOM"},"(0008,9154)":{tag:"(0008,9154)",vr:"SQ",name:"SourceImageEvidenceSequence",vm:"1",version:"DICOM"},"(0008,9205)":{tag:"(0008,9205)",vr:"CS",name:"PixelPresentation",vm:"1",version:"DICOM"},"(0008,9206)":{tag:"(0008,9206)",vr:"CS",name:"VolumetricProperties",vm:"1",version:"DICOM"},"(0008,9207)":{tag:"(0008,9207)",vr:"CS",name:"VolumeBasedCalculationTechnique",vm:"1",version:"DICOM"},"(0008,9208)":{tag:"(0008,9208)",vr:"CS",name:"ComplexImageComponent",vm:"1",version:"DICOM"},"(0008,9209)":{tag:"(0008,9209)",vr:"CS",name:"AcquisitionContrast",vm:"1",version:"DICOM"},"(0008,9215)":{tag:"(0008,9215)",vr:"SQ",name:"DerivationCodeSequence",vm:"1",version:"DICOM"},"(0008,9237)":{tag:"(0008,9237)",vr:"SQ",name:"ReferencedPresentationStateSequence",vm:"1",version:"DICOM"},"(0008,9410)":{tag:"(0008,9410)",vr:"SQ",name:"ReferencedOtherPlaneSequence",vm:"1",version:"DICOM"},"(0008,9458)":{tag:"(0008,9458)",vr:"SQ",name:"FrameDisplaySequence",vm:"1",version:"DICOM"},"(0008,9459)":{tag:"(0008,9459)",vr:"FL",name:"RecommendedDisplayFrameRateInFloat",vm:"1",version:"DICOM"},"(0008,9460)":{tag:"(0008,9460)",vr:"CS",name:"SkipFrameRangeFlag",vm:"1",version:"DICOM"},"(0010,0010)":{tag:"(0010,0010)",vr:"PN",name:"PatientName",vm:"1",version:"DICOM"},"(0010,0020)":{tag:"(0010,0020)",vr:"LO",name:"PatientID",vm:"1",version:"DICOM"},"(0010,0021)":{tag:"(0010,0021)",vr:"LO",name:"IssuerOfPatientID",vm:"1",version:"DICOM"},"(0010,0022)":{tag:"(0010,0022)",vr:"CS",name:"TypeOfPatientID",vm:"1",version:"DICOM"},"(0010,0024)":{tag:"(0010,0024)",vr:"SQ",name:"IssuerOfPatientIDQualifiersSequence",vm:"1",version:"DICOM"},"(0010,0026)":{tag:"(0010,0026)",vr:"SQ",name:"SourcePatientGroupIdentificationSequence",vm:"1",version:"DICOM"},"(0010,0027)":{tag:"(0010,0027)",vr:"SQ",name:"GroupOfPatientsIdentificationSequence",vm:"1",version:"DICOM"},"(0010,0028)":{tag:"(0010,0028)",vr:"US",name:"SubjectRelativePositionInImage",vm:"3",version:"DICOM"},"(0010,0030)":{tag:"(0010,0030)",vr:"DA",name:"PatientBirthDate",vm:"1",version:"DICOM"},"(0010,0032)":{tag:"(0010,0032)",vr:"TM",name:"PatientBirthTime",vm:"1",version:"DICOM"},"(0010,0033)":{tag:"(0010,0033)",vr:"LO",name:"PatientBirthDateInAlternativeCalendar",vm:"1",version:"DICOM"},"(0010,0034)":{tag:"(0010,0034)",vr:"LO",name:"PatientDeathDateInAlternativeCalendar",vm:"1",version:"DICOM"},"(0010,0035)":{tag:"(0010,0035)",vr:"CS",name:"PatientAlternativeCalendar",vm:"1",version:"DICOM"},"(0010,0040)":{tag:"(0010,0040)",vr:"CS",name:"PatientSex",vm:"1",version:"DICOM"},"(0010,0050)":{tag:"(0010,0050)",vr:"SQ",name:"PatientInsurancePlanCodeSequence",vm:"1",version:"DICOM"},"(0010,0101)":{tag:"(0010,0101)",vr:"SQ",name:"PatientPrimaryLanguageCodeSequence",vm:"1",version:"DICOM"},"(0010,0102)":{tag:"(0010,0102)",vr:"SQ",name:"PatientPrimaryLanguageModifierCodeSequence",vm:"1",version:"DICOM"},"(0010,0200)":{tag:"(0010,0200)",vr:"CS",name:"QualityControlSubject",vm:"1",version:"DICOM"},"(0010,0201)":{tag:"(0010,0201)",vr:"SQ",name:"QualityControlSubjectTypeCodeSequence",vm:"1",version:"DICOM"},"(0010,0212)":{tag:"(0010,0212)",vr:"UC",name:"StrainDescription",vm:"1",version:"DICOM"},"(0010,0213)":{tag:"(0010,0213)",vr:"LO",name:"StrainNomenclature",vm:"1",version:"DICOM"},"(0010,0214)":{tag:"(0010,0214)",vr:"LO",name:"StrainStockNumber",vm:"1",version:"DICOM"},"(0010,0215)":{tag:"(0010,0215)",vr:"SQ",name:"StrainSourceRegistryCodeSequence",vm:"1",version:"DICOM"},"(0010,0216)":{tag:"(0010,0216)",vr:"SQ",name:"StrainStockSequence",vm:"1",version:"DICOM"},"(0010,0217)":{tag:"(0010,0217)",vr:"LO",name:"StrainSource",vm:"1",version:"DICOM"},"(0010,0218)":{tag:"(0010,0218)",vr:"UT",name:"StrainAdditionalInformation",vm:"1",version:"DICOM"},"(0010,0219)":{tag:"(0010,0219)",vr:"SQ",name:"StrainCodeSequence",vm:"1",version:"DICOM"},"(0010,0221)":{tag:"(0010,0221)",vr:"SQ",name:"GeneticModificationsSequence",vm:"1",version:"DICOM"},"(0010,0222)":{tag:"(0010,0222)",vr:"UC",name:"GeneticModificationsDescription",vm:"1",version:"DICOM"},"(0010,0223)":{tag:"(0010,0223)",vr:"LO",name:"GeneticModificationsNomenclature",vm:"1",version:"DICOM"},"(0010,0229)":{tag:"(0010,0229)",vr:"SQ",name:"GeneticModificationsCodeSequence",vm:"1",version:"DICOM"},"(0010,1000)":{tag:"(0010,1000)",vr:"LO",name:"OtherPatientIDs",vm:"1-n",version:"DICOM"},"(0010,1001)":{tag:"(0010,1001)",vr:"PN",name:"OtherPatientNames",vm:"1-n",version:"DICOM"},"(0010,1002)":{tag:"(0010,1002)",vr:"SQ",name:"OtherPatientIDsSequence",vm:"1",version:"DICOM"},"(0010,1005)":{tag:"(0010,1005)",vr:"PN",name:"PatientBirthName",vm:"1",version:"DICOM"},"(0010,1010)":{tag:"(0010,1010)",vr:"AS",name:"PatientAge",vm:"1",version:"DICOM"},"(0010,1020)":{tag:"(0010,1020)",vr:"DS",name:"PatientSize",vm:"1",version:"DICOM"},"(0010,1021)":{tag:"(0010,1021)",vr:"SQ",name:"PatientSizeCodeSequence",vm:"1",version:"DICOM"},"(0010,1022)":{tag:"(0010,1022)",vr:"DS",name:"PatientBodyMassIndex",vm:"1",version:"DICOM"},"(0010,1023)":{tag:"(0010,1023)",vr:"DS",name:"MeasuredAPDimension",vm:"1",version:"DICOM"},"(0010,1024)":{tag:"(0010,1024)",vr:"DS",name:"MeasuredLateralDimension",vm:"1",version:"DICOM"},"(0010,1030)":{tag:"(0010,1030)",vr:"DS",name:"PatientWeight",vm:"1",version:"DICOM"},"(0010,1040)":{tag:"(0010,1040)",vr:"LO",name:"PatientAddress",vm:"1",version:"DICOM"},"(0010,1060)":{tag:"(0010,1060)",vr:"PN",name:"PatientMotherBirthName",vm:"1",version:"DICOM"},"(0010,1080)":{tag:"(0010,1080)",vr:"LO",name:"MilitaryRank",vm:"1",version:"DICOM"},"(0010,1081)":{tag:"(0010,1081)",vr:"LO",name:"BranchOfService",vm:"1",version:"DICOM"},"(0010,1090)":{tag:"(0010,1090)",vr:"LO",name:"MedicalRecordLocator",vm:"1",version:"DICOM"},"(0010,1100)":{tag:"(0010,1100)",vr:"SQ",name:"ReferencedPatientPhotoSequence",vm:"1",version:"DICOM"},"(0010,2000)":{tag:"(0010,2000)",vr:"LO",name:"MedicalAlerts",vm:"1-n",version:"DICOM"},"(0010,2110)":{tag:"(0010,2110)",vr:"LO",name:"Allergies",vm:"1-n",version:"DICOM"},"(0010,2150)":{tag:"(0010,2150)",vr:"LO",name:"CountryOfResidence",vm:"1",version:"DICOM"},"(0010,2152)":{tag:"(0010,2152)",vr:"LO",name:"RegionOfResidence",vm:"1",version:"DICOM"},"(0010,2154)":{tag:"(0010,2154)",vr:"SH",name:"PatientTelephoneNumbers",vm:"1-n",version:"DICOM"},"(0010,2155)":{tag:"(0010,2155)",vr:"LT",name:"PatientTelecomInformation",vm:"1",version:"DICOM"},"(0010,2160)":{tag:"(0010,2160)",vr:"SH",name:"EthnicGroup",vm:"1",version:"DICOM"},"(0010,2180)":{tag:"(0010,2180)",vr:"SH",name:"Occupation",vm:"1",version:"DICOM"},"(0010,21A0)":{tag:"(0010,21A0)",vr:"CS",name:"SmokingStatus",vm:"1",version:"DICOM"},"(0010,21B0)":{tag:"(0010,21B0)",vr:"LT",name:"AdditionalPatientHistory",vm:"1",version:"DICOM"},"(0010,21C0)":{tag:"(0010,21C0)",vr:"US",name:"PregnancyStatus",vm:"1",version:"DICOM"},"(0010,21D0)":{tag:"(0010,21D0)",vr:"DA",name:"LastMenstrualDate",vm:"1",version:"DICOM"},"(0010,21F0)":{tag:"(0010,21F0)",vr:"LO",name:"PatientReligiousPreference",vm:"1",version:"DICOM"},"(0010,2201)":{tag:"(0010,2201)",vr:"LO",name:"PatientSpeciesDescription",vm:"1",version:"DICOM"},"(0010,2202)":{tag:"(0010,2202)",vr:"SQ",name:"PatientSpeciesCodeSequence",vm:"1",version:"DICOM"},"(0010,2203)":{tag:"(0010,2203)",vr:"CS",name:"PatientSexNeutered",vm:"1",version:"DICOM"},"(0010,2210)":{tag:"(0010,2210)",vr:"CS",name:"AnatomicalOrientationType",vm:"1",version:"DICOM"},"(0010,2292)":{tag:"(0010,2292)",vr:"LO",name:"PatientBreedDescription",vm:"1",version:"DICOM"},"(0010,2293)":{tag:"(0010,2293)",vr:"SQ",name:"PatientBreedCodeSequence",vm:"1",version:"DICOM"},"(0010,2294)":{tag:"(0010,2294)",vr:"SQ",name:"BreedRegistrationSequence",vm:"1",version:"DICOM"},"(0010,2295)":{tag:"(0010,2295)",vr:"LO",name:"BreedRegistrationNumber",vm:"1",version:"DICOM"},"(0010,2296)":{tag:"(0010,2296)",vr:"SQ",name:"BreedRegistryCodeSequence",vm:"1",version:"DICOM"},"(0010,2297)":{tag:"(0010,2297)",vr:"PN",name:"ResponsiblePerson",vm:"1",version:"DICOM"},"(0010,2298)":{tag:"(0010,2298)",vr:"CS",name:"ResponsiblePersonRole",vm:"1",version:"DICOM"},"(0010,2299)":{tag:"(0010,2299)",vr:"LO",name:"ResponsibleOrganization",vm:"1",version:"DICOM"},"(0010,4000)":{tag:"(0010,4000)",vr:"LT",name:"PatientComments",vm:"1",version:"DICOM"},"(0010,9431)":{tag:"(0010,9431)",vr:"FL",name:"ExaminedBodyThickness",vm:"1",version:"DICOM"},"(0012,0010)":{tag:"(0012,0010)",vr:"LO",name:"ClinicalTrialSponsorName",vm:"1",version:"DICOM"},"(0012,0020)":{tag:"(0012,0020)",vr:"LO",name:"ClinicalTrialProtocolID",vm:"1",version:"DICOM"},"(0012,0021)":{tag:"(0012,0021)",vr:"LO",name:"ClinicalTrialProtocolName",vm:"1",version:"DICOM"},"(0012,0030)":{tag:"(0012,0030)",vr:"LO",name:"ClinicalTrialSiteID",vm:"1",version:"DICOM"},"(0012,0031)":{tag:"(0012,0031)",vr:"LO",name:"ClinicalTrialSiteName",vm:"1",version:"DICOM"},"(0012,0040)":{tag:"(0012,0040)",vr:"LO",name:"ClinicalTrialSubjectID",vm:"1",version:"DICOM"},"(0012,0042)":{tag:"(0012,0042)",vr:"LO",name:"ClinicalTrialSubjectReadingID",vm:"1",version:"DICOM"},"(0012,0050)":{tag:"(0012,0050)",vr:"LO",name:"ClinicalTrialTimePointID",vm:"1",version:"DICOM"},"(0012,0051)":{tag:"(0012,0051)",vr:"ST",name:"ClinicalTrialTimePointDescription",vm:"1",version:"DICOM"},"(0012,0052)":{tag:"(0012,0052)",vr:"FD",name:"LongitudinalTemporalOffsetFromEvent",vm:"1",version:"DICOM"},"(0012,0053)":{tag:"(0012,0053)",vr:"CS",name:"LongitudinalTemporalEventType",vm:"1",version:"DICOM"},"(0012,0060)":{tag:"(0012,0060)",vr:"LO",name:"ClinicalTrialCoordinatingCenterName",vm:"1",version:"DICOM"},"(0012,0062)":{tag:"(0012,0062)",vr:"CS",name:"PatientIdentityRemoved",vm:"1",version:"DICOM"},"(0012,0063)":{tag:"(0012,0063)",vr:"LO",name:"DeidentificationMethod",vm:"1-n",version:"DICOM"},"(0012,0064)":{tag:"(0012,0064)",vr:"SQ",name:"DeidentificationMethodCodeSequence",vm:"1",version:"DICOM"},"(0012,0071)":{tag:"(0012,0071)",vr:"LO",name:"ClinicalTrialSeriesID",vm:"1",version:"DICOM"},"(0012,0072)":{tag:"(0012,0072)",vr:"LO",name:"ClinicalTrialSeriesDescription",vm:"1",version:"DICOM"},"(0012,0081)":{tag:"(0012,0081)",vr:"LO",name:"ClinicalTrialProtocolEthicsCommitteeName",vm:"1",version:"DICOM"},"(0012,0082)":{tag:"(0012,0082)",vr:"LO",name:"ClinicalTrialProtocolEthicsCommitteeApprovalNumber",vm:"1",version:"DICOM"},"(0012,0083)":{tag:"(0012,0083)",vr:"SQ",name:"ConsentForClinicalTrialUseSequence",vm:"1",version:"DICOM"},"(0012,0084)":{tag:"(0012,0084)",vr:"CS",name:"DistributionType",vm:"1",version:"DICOM"},"(0012,0085)":{tag:"(0012,0085)",vr:"CS",name:"ConsentForDistributionFlag",vm:"1",version:"DICOM"},"(0014,0025)":{tag:"(0014,0025)",vr:"ST",name:"ComponentManufacturingProcedure",vm:"1-n",version:"DICOM/DICONDE"},"(0014,0028)":{tag:"(0014,0028)",vr:"ST",name:"ComponentManufacturer",vm:"1-n",version:"DICOM/DICONDE"},"(0014,0030)":{tag:"(0014,0030)",vr:"DS",name:"MaterialThickness",vm:"1-n",version:"DICOM/DICONDE"},"(0014,0032)":{tag:"(0014,0032)",vr:"DS",name:"MaterialPipeDiameter",vm:"1-n",version:"DICOM/DICONDE"},"(0014,0034)":{tag:"(0014,0034)",vr:"DS",name:"MaterialIsolationDiameter",vm:"1-n",version:"DICOM/DICONDE"},"(0014,0042)":{tag:"(0014,0042)",vr:"ST",name:"MaterialGrade",vm:"1-n",version:"DICOM/DICONDE"},"(0014,0044)":{tag:"(0014,0044)",vr:"ST",name:"MaterialPropertiesDescription",vm:"1-n",version:"DICOM/DICONDE"},"(0014,0046)":{tag:"(0014,0046)",vr:"LT",name:"MaterialNotes",vm:"1",version:"DICOM/DICONDE"},"(0014,0050)":{tag:"(0014,0050)",vr:"CS",name:"ComponentShape",vm:"1",version:"DICOM/DICONDE"},"(0014,0052)":{tag:"(0014,0052)",vr:"CS",name:"CurvatureType",vm:"1",version:"DICOM/DICONDE"},"(0014,0054)":{tag:"(0014,0054)",vr:"DS",name:"OuterDiameter",vm:"1",version:"DICOM/DICONDE"},"(0014,0056)":{tag:"(0014,0056)",vr:"DS",name:"InnerDiameter",vm:"1",version:"DICOM/DICONDE"},"(0014,1010)":{tag:"(0014,1010)",vr:"ST",name:"ActualEnvironmentalConditions",vm:"1",version:"DICOM/DICONDE"},"(0014,1020)":{tag:"(0014,1020)",vr:"DA",name:"ExpiryDate",vm:"1",version:"DICOM/DICONDE"},"(0014,1040)":{tag:"(0014,1040)",vr:"ST",name:"EnvironmentalConditions",vm:"1",version:"DICOM/DICONDE"},"(0014,2002)":{tag:"(0014,2002)",vr:"SQ",name:"EvaluatorSequence",vm:"1",version:"DICOM/DICONDE"},"(0014,2004)":{tag:"(0014,2004)",vr:"IS",name:"EvaluatorNumber",vm:"1",version:"DICOM/DICONDE"},"(0014,2006)":{tag:"(0014,2006)",vr:"PN",name:"EvaluatorName",vm:"1",version:"DICOM/DICONDE"},"(0014,2008)":{tag:"(0014,2008)",vr:"IS",name:"EvaluationAttempt",vm:"1",version:"DICOM/DICONDE"},"(0014,2012)":{tag:"(0014,2012)",vr:"SQ",name:"IndicationSequence",vm:"1",version:"DICOM/DICONDE"},"(0014,2014)":{tag:"(0014,2014)",vr:"IS",name:"IndicationNumber",vm:"1",version:"DICOM/DICONDE"},"(0014,2016)":{tag:"(0014,2016)",vr:"SH",name:"IndicationLabel",vm:"1",version:"DICOM/DICONDE"},"(0014,2018)":{tag:"(0014,2018)",vr:"ST",name:"IndicationDescription",vm:"1",version:"DICOM/DICONDE"},"(0014,201A)":{tag:"(0014,201A)",vr:"CS",name:"IndicationType",vm:"1-n",version:"DICOM/DICONDE"},"(0014,201C)":{tag:"(0014,201C)",vr:"CS",name:"IndicationDisposition",vm:"1",version:"DICOM/DICONDE"},"(0014,201E)":{tag:"(0014,201E)",vr:"SQ",name:"IndicationROISequence",vm:"1",version:"DICOM/DICONDE"},"(0014,2030)":{tag:"(0014,2030)",vr:"SQ",name:"IndicationPhysicalPropertySequence",vm:"1",version:"DICOM/DICONDE"},"(0014,2032)":{tag:"(0014,2032)",vr:"SH",name:"PropertyLabel",vm:"1",version:"DICOM/DICONDE"},"(0014,2202)":{tag:"(0014,2202)",vr:"IS",name:"CoordinateSystemNumberOfAxes",vm:"1",version:"DICOM/DICONDE"},"(0014,2204)":{tag:"(0014,2204)",vr:"SQ",name:"CoordinateSystemAxesSequence",vm:"1",version:"DICOM/DICONDE"},"(0014,2206)":{tag:"(0014,2206)",vr:"ST",name:"CoordinateSystemAxisDescription",vm:"1",version:"DICOM/DICONDE"},"(0014,2208)":{tag:"(0014,2208)",vr:"CS",name:"CoordinateSystemDataSetMapping",vm:"1",version:"DICOM/DICONDE"},"(0014,220A)":{tag:"(0014,220A)",vr:"IS",name:"CoordinateSystemAxisNumber",vm:"1",version:"DICOM/DICONDE"},"(0014,220C)":{tag:"(0014,220C)",vr:"CS",name:"CoordinateSystemAxisType",vm:"1",version:"DICOM/DICONDE"},"(0014,220E)":{tag:"(0014,220E)",vr:"CS",name:"CoordinateSystemAxisUnits",vm:"1",version:"DICOM/DICONDE"},"(0014,2210)":{tag:"(0014,2210)",vr:"OB",name:"CoordinateSystemAxisValues",vm:"1",version:"DICOM/DICONDE"},"(0014,2220)":{tag:"(0014,2220)",vr:"SQ",name:"CoordinateSystemTransformSequence",vm:"1",version:"DICOM/DICONDE"},"(0014,2222)":{tag:"(0014,2222)",vr:"ST",name:"TransformDescription",vm:"1",version:"DICOM/DICONDE"},"(0014,2224)":{tag:"(0014,2224)",vr:"IS",name:"TransformNumberOfAxes",vm:"1",version:"DICOM/DICONDE"},"(0014,2226)":{tag:"(0014,2226)",vr:"IS",name:"TransformOrderOfAxes",vm:"1-n",version:"DICOM/DICONDE"},"(0014,2228)":{tag:"(0014,2228)",vr:"CS",name:"TransformedAxisUnits",vm:"1",version:"DICOM/DICONDE"},"(0014,222A)":{tag:"(0014,222A)",vr:"DS",name:"CoordinateSystemTransformRotationAndScaleMatrix",vm:"1-n",version:"DICOM/DICONDE"},"(0014,222C)":{tag:"(0014,222C)",vr:"DS",name:"CoordinateSystemTransformTranslationMatrix",vm:"1-n",version:"DICOM/DICONDE"},"(0014,3011)":{tag:"(0014,3011)",vr:"DS",name:"InternalDetectorFrameTime",vm:"1",version:"DICOM/DICONDE"},"(0014,3012)":{tag:"(0014,3012)",vr:"DS",name:"NumberOfFramesIntegrated",vm:"1",version:"DICOM/DICONDE"},"(0014,3020)":{tag:"(0014,3020)",vr:"SQ",name:"DetectorTemperatureSequence",vm:"1",version:"DICOM/DICONDE"},"(0014,3022)":{tag:"(0014,3022)",vr:"ST",name:"SensorName",vm:"1",version:"DICOM/DICONDE"},"(0014,3024)":{tag:"(0014,3024)",vr:"DS",name:"HorizontalOffsetOfSensor",vm:"1",version:"DICOM/DICONDE"},"(0014,3026)":{tag:"(0014,3026)",vr:"DS",name:"VerticalOffsetOfSensor",vm:"1",version:"DICOM/DICONDE"},"(0014,3028)":{tag:"(0014,3028)",vr:"DS",name:"SensorTemperature",vm:"1",version:"DICOM/DICONDE"},"(0014,3040)":{tag:"(0014,3040)",vr:"SQ",name:"DarkCurrentSequence",vm:"1",version:"DICOM/DICONDE"},"(0014,3050)":{tag:"(0014,3050)",vr:"ox",name:"DarkCurrentCounts",vm:"1",version:"DICOM/DICONDE"},"(0014,3060)":{tag:"(0014,3060)",vr:"SQ",name:"GainCorrectionReferenceSequence",vm:"1",version:"DICOM/DICONDE"},"(0014,3070)":{tag:"(0014,3070)",vr:"ox",name:"AirCounts",vm:"1",version:"DICOM/DICONDE"},"(0014,3071)":{tag:"(0014,3071)",vr:"DS",name:"KVUsedInGainCalibration",vm:"1",version:"DICOM/DICONDE"},"(0014,3072)":{tag:"(0014,3072)",vr:"DS",name:"MAUsedInGainCalibration",vm:"1",version:"DICOM/DICONDE"},"(0014,3073)":{tag:"(0014,3073)",vr:"DS",name:"NumberOfFramesUsedForIntegration",vm:"1",version:"DICOM/DICONDE"},"(0014,3074)":{tag:"(0014,3074)",vr:"LO",name:"FilterMaterialUsedInGainCalibration",vm:"1",version:"DICOM/DICONDE"},"(0014,3075)":{tag:"(0014,3075)",vr:"DS",name:"FilterThicknessUsedInGainCalibration",vm:"1",version:"DICOM/DICONDE"},"(0014,3076)":{tag:"(0014,3076)",vr:"DA",name:"DateOfGainCalibration",vm:"1",version:"DICOM/DICONDE"},"(0014,3077)":{tag:"(0014,3077)",vr:"TM",name:"TimeOfGainCalibration",vm:"1",version:"DICOM/DICONDE"},"(0014,3080)":{tag:"(0014,3080)",vr:"OB",name:"BadPixelImage",vm:"1",version:"DICOM/DICONDE"},"(0014,3099)":{tag:"(0014,3099)",vr:"LT",name:"CalibrationNotes",vm:"1",version:"DICOM/DICONDE"},"(0014,4002)":{tag:"(0014,4002)",vr:"SQ",name:"PulserEquipmentSequence",vm:"1",version:"DICOM/DICONDE"},"(0014,4004)":{tag:"(0014,4004)",vr:"CS",name:"PulserType",vm:"1",version:"DICOM/DICONDE"},"(0014,4006)":{tag:"(0014,4006)",vr:"LT",name:"PulserNotes",vm:"1",version:"DICOM/DICONDE"},"(0014,4008)":{tag:"(0014,4008)",vr:"SQ",name:"ReceiverEquipmentSequence",vm:"1",version:"DICOM/DICONDE"},"(0014,400A)":{tag:"(0014,400A)",vr:"CS",name:"AmplifierType",vm:"1",version:"DICOM/DICONDE"},"(0014,400C)":{tag:"(0014,400C)",vr:"LT",name:"ReceiverNotes",vm:"1",version:"DICOM/DICONDE"},"(0014,400E)":{tag:"(0014,400E)",vr:"SQ",name:"PreAmplifierEquipmentSequence",vm:"1",version:"DICOM/DICONDE"},"(0014,400F)":{tag:"(0014,400F)",vr:"LT",name:"PreAmplifierNotes",vm:"1",version:"DICOM/DICONDE"},"(0014,4010)":{tag:"(0014,4010)",vr:"SQ",name:"TransmitTransducerSequence",vm:"1",version:"DICOM/DICONDE"},"(0014,4011)":{tag:"(0014,4011)",vr:"SQ",name:"ReceiveTransducerSequence",vm:"1",version:"DICOM/DICONDE"},"(0014,4012)":{tag:"(0014,4012)",vr:"US",name:"NumberOfElements",vm:"1",version:"DICOM/DICONDE"},"(0014,4013)":{tag:"(0014,4013)",vr:"CS",name:"ElementShape",vm:"1",version:"DICOM/DICONDE"},"(0014,4014)":{tag:"(0014,4014)",vr:"DS",name:"ElementDimensionA",vm:"1",version:"DICOM/DICONDE"},"(0014,4015)":{tag:"(0014,4015)",vr:"DS",name:"ElementDimensionB",vm:"1",version:"DICOM/DICONDE"},"(0014,4016)":{tag:"(0014,4016)",vr:"DS",name:"ElementPitchA",vm:"1",version:"DICOM/DICONDE"},"(0014,4017)":{tag:"(0014,4017)",vr:"DS",name:"MeasuredBeamDimensionA",vm:"1",version:"DICOM/DICONDE"},"(0014,4018)":{tag:"(0014,4018)",vr:"DS",name:"MeasuredBeamDimensionB",vm:"1",version:"DICOM/DICONDE"},"(0014,4019)":{tag:"(0014,4019)",vr:"DS",name:"LocationOfMeasuredBeamDiameter",vm:"1",version:"DICOM/DICONDE"},"(0014,401A)":{tag:"(0014,401A)",vr:"DS",name:"NominalFrequency",vm:"1",version:"DICOM/DICONDE"},"(0014,401B)":{tag:"(0014,401B)",vr:"DS",name:"MeasuredCenterFrequency",vm:"1",version:"DICOM/DICONDE"},"(0014,401C)":{tag:"(0014,401C)",vr:"DS",name:"MeasuredBandwidth",vm:"1",version:"DICOM/DICONDE"},"(0014,401D)":{tag:"(0014,401D)",vr:"DS",name:"ElementPitchB",vm:"1",version:"DICOM/DICONDE"},"(0014,4020)":{tag:"(0014,4020)",vr:"SQ",name:"PulserSettingsSequence",vm:"1",version:"DICOM/DICONDE"},"(0014,4022)":{tag:"(0014,4022)",vr:"DS",name:"PulseWidth",vm:"1",version:"DICOM/DICONDE"},"(0014,4024)":{tag:"(0014,4024)",vr:"DS",name:"ExcitationFrequency",vm:"1",version:"DICOM/DICONDE"},"(0014,4026)":{tag:"(0014,4026)",vr:"CS",name:"ModulationType",vm:"1",version:"DICOM/DICONDE"},"(0014,4028)":{tag:"(0014,4028)",vr:"DS",name:"Damping",vm:"1",version:"DICOM/DICONDE"},"(0014,4030)":{tag:"(0014,4030)",vr:"SQ",name:"ReceiverSettingsSequence",vm:"1",version:"DICOM/DICONDE"},"(0014,4031)":{tag:"(0014,4031)",vr:"DS",name:"AcquiredSoundpathLength",vm:"1",version:"DICOM/DICONDE"},"(0014,4032)":{tag:"(0014,4032)",vr:"CS",name:"AcquisitionCompressionType",vm:"1",version:"DICOM/DICONDE"},"(0014,4033)":{tag:"(0014,4033)",vr:"IS",name:"AcquisitionSampleSize",vm:"1",version:"DICOM/DICONDE"},"(0014,4034)":{tag:"(0014,4034)",vr:"DS",name:"RectifierSmoothing",vm:"1",version:"DICOM/DICONDE"},"(0014,4035)":{tag:"(0014,4035)",vr:"SQ",name:"DACSequence",vm:"1",version:"DICOM/DICONDE"},"(0014,4036)":{tag:"(0014,4036)",vr:"CS",name:"DACType",vm:"1",version:"DICOM/DICONDE"},"(0014,4038)":{tag:"(0014,4038)",vr:"DS",name:"DACGainPoints",vm:"1-n",version:"DICOM/DICONDE"},"(0014,403A)":{tag:"(0014,403A)",vr:"DS",name:"DACTimePoints",vm:"1-n",version:"DICOM/DICONDE"},"(0014,403C)":{tag:"(0014,403C)",vr:"DS",name:"DACAmplitude",vm:"1-n",version:"DICOM/DICONDE"},"(0014,4040)":{tag:"(0014,4040)",vr:"SQ",name:"PreAmplifierSettingsSequence",vm:"1",version:"DICOM/DICONDE"},"(0014,4050)":{tag:"(0014,4050)",vr:"SQ",name:"TransmitTransducerSettingsSequence",vm:"1",version:"DICOM/DICONDE"},"(0014,4051)":{tag:"(0014,4051)",vr:"SQ",name:"ReceiveTransducerSettingsSequence",vm:"1",version:"DICOM/DICONDE"},"(0014,4052)":{tag:"(0014,4052)",vr:"DS",name:"IncidentAngle",vm:"1",version:"DICOM/DICONDE"},"(0014,4054)":{tag:"(0014,4054)",vr:"ST",name:"CouplingTechnique",vm:"1",version:"DICOM/DICONDE"},"(0014,4056)":{tag:"(0014,4056)",vr:"ST",name:"CouplingMedium",vm:"1",version:"DICOM/DICONDE"},"(0014,4057)":{tag:"(0014,4057)",vr:"DS",name:"CouplingVelocity",vm:"1",version:"DICOM/DICONDE"},"(0014,4058)":{tag:"(0014,4058)",vr:"DS",name:"ProbeCenterLocationX",vm:"1",version:"DICOM/DICONDE"},"(0014,4059)":{tag:"(0014,4059)",vr:"DS",name:"ProbeCenterLocationZ",vm:"1",version:"DICOM/DICONDE"},"(0014,405A)":{tag:"(0014,405A)",vr:"DS",name:"SoundPathLength",vm:"1",version:"DICOM/DICONDE"},"(0014,405C)":{tag:"(0014,405C)",vr:"ST",name:"DelayLawIdentifier",vm:"1",version:"DICOM/DICONDE"},"(0014,4060)":{tag:"(0014,4060)",vr:"SQ",name:"GateSettingsSequence",vm:"1",version:"DICOM/DICONDE"},"(0014,4062)":{tag:"(0014,4062)",vr:"DS",name:"GateThreshold",vm:"1",version:"DICOM/DICONDE"},"(0014,4064)":{tag:"(0014,4064)",vr:"DS",name:"VelocityOfSound",vm:"1",version:"DICOM/DICONDE"},"(0014,4070)":{tag:"(0014,4070)",vr:"SQ",name:"CalibrationSettingsSequence",vm:"1",version:"DICOM/DICONDE"},"(0014,4072)":{tag:"(0014,4072)",vr:"ST",name:"CalibrationProcedure",vm:"1",version:"DICOM/DICONDE"},"(0014,4074)":{tag:"(0014,4074)",vr:"SH",name:"ProcedureVersion",vm:"1",version:"DICOM/DICONDE"},"(0014,4076)":{tag:"(0014,4076)",vr:"DA",name:"ProcedureCreationDate",vm:"1",version:"DICOM/DICONDE"},"(0014,4078)":{tag:"(0014,4078)",vr:"DA",name:"ProcedureExpirationDate",vm:"1",version:"DICOM/DICONDE"},"(0014,407A)":{tag:"(0014,407A)",vr:"DA",name:"ProcedureLastModifiedDate",vm:"1",version:"DICOM/DICONDE"},"(0014,407C)":{tag:"(0014,407C)",vr:"TM",name:"CalibrationTime",vm:"1-n",version:"DICOM/DICONDE"},"(0014,407E)":{tag:"(0014,407E)",vr:"DA",name:"CalibrationDate",vm:"1-n",version:"DICOM/DICONDE"},"(0014,4080)":{tag:"(0014,4080)",vr:"SQ",name:"ProbeDriveEquipmentSequence",vm:"1",version:"DICOM/DICONDE"},"(0014,4081)":{tag:"(0014,4081)",vr:"CS",name:"DriveType",vm:"1",version:"DICOM/DICONDE"},"(0014,4082)":{tag:"(0014,4082)",vr:"LT",name:"ProbeDriveNotes",vm:"1",version:"DICOM/DICONDE"},"(0014,4083)":{tag:"(0014,4083)",vr:"SQ",name:"DriveProbeSequence",vm:"1",version:"DICOM/DICONDE"},"(0014,4084)":{tag:"(0014,4084)",vr:"DS",name:"ProbeInductance",vm:"1",version:"DICOM/DICONDE"},"(0014,4085)":{tag:"(0014,4085)",vr:"DS",name:"ProbeResistance",vm:"1",version:"DICOM/DICONDE"},"(0014,4086)":{tag:"(0014,4086)",vr:"SQ",name:"ReceiveProbeSequence",vm:"1",version:"DICOM/DICONDE"},"(0014,4087)":{tag:"(0014,4087)",vr:"SQ",name:"ProbeDriveSettingsSequence",vm:"1",version:"DICOM/DICONDE"},"(0014,4088)":{tag:"(0014,4088)",vr:"DS",name:"BridgeResistors",vm:"1",version:"DICOM/DICONDE"},"(0014,4089)":{tag:"(0014,4089)",vr:"DS",name:"ProbeOrientationAngle",vm:"1",version:"DICOM/DICONDE"},"(0014,408B)":{tag:"(0014,408B)",vr:"DS",name:"UserSelectedGainY",vm:"1",version:"DICOM/DICONDE"},"(0014,408C)":{tag:"(0014,408C)",vr:"DS",name:"UserSelectedPhase",vm:"1",version:"DICOM/DICONDE"},"(0014,408D)":{tag:"(0014,408D)",vr:"DS",name:"UserSelectedOffsetX",vm:"1",version:"DICOM/DICONDE"},"(0014,408E)":{tag:"(0014,408E)",vr:"DS",name:"UserSelectedOffsetY",vm:"1",version:"DICOM/DICONDE"},"(0014,4091)":{tag:"(0014,4091)",vr:"SQ",name:"ChannelSettingsSequence",vm:"1",version:"DICOM/DICONDE"},"(0014,4092)":{tag:"(0014,4092)",vr:"DS",name:"ChannelThreshold",vm:"1",version:"DICOM/DICONDE"},"(0014,409A)":{tag:"(0014,409A)",vr:"SQ",name:"ScannerSettingsSequence",vm:"1",version:"DICOM/DICONDE"},"(0014,409B)":{tag:"(0014,409B)",vr:"ST",name:"ScanProcedure",vm:"1",version:"DICOM/DICONDE"},"(0014,409C)":{tag:"(0014,409C)",vr:"DS",name:"TranslationRateX",vm:"1",version:"DICOM/DICONDE"},"(0014,409D)":{tag:"(0014,409D)",vr:"DS",name:"TranslationRateY",vm:"1",version:"DICOM/DICONDE"},"(0014,409F)":{tag:"(0014,409F)",vr:"DS",name:"ChannelOverlap",vm:"1",version:"DICOM/DICONDE"},"(0014,40A0)":{tag:"(0014,40A0)",vr:"LO",name:"ImageQualityIndicatorType",vm:"1",version:"DICOM/DICONDE"},"(0014,40A1)":{tag:"(0014,40A1)",vr:"LO",name:"ImageQualityIndicatorMaterial",vm:"1",version:"DICOM/DICONDE"},"(0014,40A2)":{tag:"(0014,40A2)",vr:"LO",name:"ImageQualityIndicatorSize",vm:"1",version:"DICOM/DICONDE"},"(0014,5002)":{tag:"(0014,5002)",vr:"IS",name:"LINACEnergy",vm:"1",version:"DICOM/DICONDE"},"(0014,5004)":{tag:"(0014,5004)",vr:"IS",name:"LINACOutput",vm:"1",version:"DICOM/DICONDE"},"(0014,5100)":{tag:"(0014,5100)",vr:"US",name:"ActiveAperture",vm:"1",version:"DICOM/DICONDE"},"(0014,5101)":{tag:"(0014,5101)",vr:"DS",name:"TotalAperture",vm:"1",version:"DICOM/DICONDE"},"(0014,5102)":{tag:"(0014,5102)",vr:"DS",name:"ApertureElevation",vm:"1",version:"DICOM/DICONDE"},"(0014,5103)":{tag:"(0014,5103)",vr:"DS",name:"MainLobeAngle",vm:"1",version:"DICOM/DICONDE"},"(0014,5104)":{tag:"(0014,5104)",vr:"DS",name:"MainRoofAngle",vm:"1",version:"DICOM/DICONDE"},"(0014,5105)":{tag:"(0014,5105)",vr:"CS",name:"ConnectorType",vm:"1",version:"DICOM/DICONDE"},"(0014,5106)":{tag:"(0014,5106)",vr:"SH",name:"WedgeModelNumber",vm:"1",version:"DICOM/DICONDE"},"(0014,5107)":{tag:"(0014,5107)",vr:"DS",name:"WedgeAngleFloat",vm:"1",version:"DICOM/DICONDE"},"(0014,5108)":{tag:"(0014,5108)",vr:"DS",name:"WedgeRoofAngle",vm:"1",version:"DICOM/DICONDE"},"(0014,5109)":{tag:"(0014,5109)",vr:"CS",name:"WedgeElement1Position",vm:"1",version:"DICOM/DICONDE"},"(0014,510A)":{tag:"(0014,510A)",vr:"DS",name:"WedgeMaterialVelocity",vm:"1",version:"DICOM/DICONDE"},"(0014,510B)":{tag:"(0014,510B)",vr:"SH",name:"WedgeMaterial",vm:"1",version:"DICOM/DICONDE"},"(0014,510C)":{tag:"(0014,510C)",vr:"DS",name:"WedgeOffsetZ",vm:"1",version:"DICOM/DICONDE"},"(0014,510D)":{tag:"(0014,510D)",vr:"DS",name:"WedgeOriginOffsetX",vm:"1",version:"DICOM/DICONDE"},"(0014,510E)":{tag:"(0014,510E)",vr:"DS",name:"WedgeTimeDelay",vm:"1",version:"DICOM/DICONDE"},"(0014,510F)":{tag:"(0014,510F)",vr:"SH",name:"WedgeName",vm:"1",version:"DICOM/DICONDE"},"(0014,5110)":{tag:"(0014,5110)",vr:"SH",name:"WedgeManufacturerName",vm:"1",version:"DICOM/DICONDE"},"(0014,5111)":{tag:"(0014,5111)",vr:"LO",name:"WedgeDescription",vm:"1",version:"DICOM/DICONDE"},"(0014,5112)":{tag:"(0014,5112)",vr:"DS",name:"NominalBeamAngle",vm:"1",version:"DICOM/DICONDE"},"(0014,5113)":{tag:"(0014,5113)",vr:"DS",name:"WedgeOffsetX",vm:"1",version:"DICOM/DICONDE"},"(0014,5114)":{tag:"(0014,5114)",vr:"DS",name:"WedgeOffsetY",vm:"1",version:"DICOM/DICONDE"},"(0014,5115)":{tag:"(0014,5115)",vr:"DS",name:"WedgeTotalLength",vm:"1",version:"DICOM/DICONDE"},"(0014,5116)":{tag:"(0014,5116)",vr:"DS",name:"WedgeInContactLength",vm:"1",version:"DICOM/DICONDE"},"(0014,5117)":{tag:"(0014,5117)",vr:"DS",name:"WedgeFrontGap",vm:"1",version:"DICOM/DICONDE"},"(0014,5118)":{tag:"(0014,5118)",vr:"DS",name:"WedgeTotalHeight",vm:"1",version:"DICOM/DICONDE"},"(0014,5119)":{tag:"(0014,5119)",vr:"DS",name:"WedgeFrontHeight",vm:"1",version:"DICOM/DICONDE"},"(0014,511A)":{tag:"(0014,511A)",vr:"DS",name:"WedgeRearHeight",vm:"1",version:"DICOM/DICONDE"},"(0014,511B)":{tag:"(0014,511B)",vr:"DS",name:"WedgeTotalWidth",vm:"1",version:"DICOM/DICONDE"},"(0014,511C)":{tag:"(0014,511C)",vr:"DS",name:"WedgeInContactWidth",vm:"1",version:"DICOM/DICONDE"},"(0014,511D)":{tag:"(0014,511D)",vr:"DS",name:"WedgeChamferHeight",vm:"1",version:"DICOM/DICONDE"},"(0014,511E)":{tag:"(0014,511E)",vr:"CS",name:"WedgeCurve",vm:"1",version:"DICOM/DICONDE"},"(0014,511F)":{tag:"(0014,511F)",vr:"DS",name:"RadiusAlongWedge",vm:"1",version:"DICOM/DICONDE"},"(0012,0086)":{tag:"(0012,0086)",vr:"DA",name:"EthicsCommitteeApprovalEffectivenessStartDate",vm:"1",version:"DICOM"},"(0012,0087)":{tag:"(0012,0087)",vr:"DA",name:"EthicsCommitteeApprovalEffectivenessEndDate",vm:"1",version:"DICOM"},"(0014,0100)":{tag:"(0014,0100)",vr:"LO",name:"ComponentWelderIDs",vm:"1-n",version:"DICOM"},"(0014,0101)":{tag:"(0014,0101)",vr:"CS",name:"SecondaryApprovalStatus",vm:"1",version:"DICOM"},"(0014,0102)":{tag:"(0014,0102)",vr:"DA",name:"SecondaryReviewDate",vm:"1",version:"DICOM"},"(0014,0103)":{tag:"(0014,0103)",vr:"TM",name:"SecondaryReviewTime",vm:"1",version:"DICOM"},"(0014,0104)":{tag:"(0014,0104)",vr:"PN",name:"SecondaryReviewerName",vm:"1",version:"DICOM"},"(0014,0105)":{tag:"(0014,0105)",vr:"ST",name:"RepairID",vm:"1",version:"DICOM"},"(0014,0106)":{tag:"(0014,0106)",vr:"SQ",name:"MultipleComponentApprovalSequence",vm:"1",version:"DICOM"},"(0014,0107)":{tag:"(0014,0107)",vr:"CS",name:"OtherApprovalStatus",vm:"1-n",version:"DICOM"},"(0014,0108)":{tag:"(0014,0108)",vr:"CS",name:"OtherSecondaryApprovalStatus",vm:"1-n",version:"DICOM"},"(0016,0001)":{tag:"(0016,0001)",vr:"DS",name:"WhitePoint",vm:"1",version:"DICOM"},"(0016,0002)":{tag:"(0016,0002)",vr:"DS",name:"PrimaryChromaticities",vm:"3",version:"DICOM"},"(0016,0003)":{tag:"(0016,0003)",vr:"UT",name:"BatteryLevel",vm:"1",version:"DICOM"},"(0016,0004)":{tag:"(0016,0004)",vr:"DS",name:"ExposureTimeInSeconds",vm:"1",version:"DICOM"},"(0016,0005)":{tag:"(0016,0005)",vr:"DS",name:"FNumber",vm:"1",version:"DICOM"},"(0016,0006)":{tag:"(0016,0006)",vr:"IS",name:"OECFRows",vm:"1",version:"DICOM"},"(0016,0007)":{tag:"(0016,0007)",vr:"IS",name:"OECFColumns",vm:"1",version:"DICOM"},"(0016,0008)":{tag:"(0016,0008)",vr:"UC",name:"OECFColumnNames",vm:"1-n",version:"DICOM"},"(0016,0009)":{tag:"(0016,0009)",vr:"DS",name:"OECFValues",vm:"1-n",version:"DICOM"},"(0016,000A)":{tag:"(0016,000A)",vr:"IS",name:"SpatialFrequencyResponseRows",vm:"1",version:"DICOM"},"(0016,000B)":{tag:"(0016,000B)",vr:"IS",name:"SpatialFrequencyResponseColumns",vm:"1",version:"DICOM"},"(0016,000C)":{tag:"(0016,000C)",vr:"UC",name:"SpatialFrequencyResponseColumnNames",vm:"1-n",version:"DICOM"},"(0016,000D)":{tag:"(0016,000D)",vr:"DS",name:"SpatialFrequencyResponseValues",vm:"1-n",version:"DICOM"},"(0016,000E)":{tag:"(0016,000E)",vr:"IS",name:"ColorFilterArrayPatternRows",vm:"1",version:"DICOM"},"(0016,000F)":{tag:"(0016,000F)",vr:"IS",name:"ColorFilterArrayPatternColumns",vm:"1",version:"DICOM"},"(0016,0010)":{tag:"(0016,0010)",vr:"DS",name:"ColorFilterArrayPatternValues",vm:"1-n",version:"DICOM"},"(0016,0011)":{tag:"(0016,0011)",vr:"US",name:"FlashFiringStatus",vm:"1",version:"DICOM"},"(0016,0012)":{tag:"(0016,0012)",vr:"US",name:"FlashReturnStatus",vm:"1",version:"DICOM"},"(0016,0013)":{tag:"(0016,0013)",vr:"US",name:"FlashMode",vm:"1",version:"DICOM"},"(0016,0014)":{tag:"(0016,0014)",vr:"US",name:"FlashFunctionPresent",vm:"1",version:"DICOM"},"(0016,0015)":{tag:"(0016,0015)",vr:"US",name:"FlashRedEyeMode",vm:"1",version:"DICOM"},"(0016,0016)":{tag:"(0016,0016)",vr:"US",name:"ExposureProgram",vm:"1",version:"DICOM"},"(0016,0017)":{tag:"(0016,0017)",vr:"UT",name:"SpectralSensitivity",vm:"1",version:"DICOM"},"(0016,0018)":{tag:"(0016,0018)",vr:"IS",name:"PhotographicSensitivity",vm:"1",version:"DICOM"},"(0016,0019)":{tag:"(0016,0019)",vr:"IS",name:"SelfTimerMode",vm:"1",version:"DICOM"},"(0016,001A)":{tag:"(0016,001A)",vr:"US",name:"SensitivityType",vm:"1",version:"DICOM"},"(0016,001B)":{tag:"(0016,001B)",vr:"IS",name:"StandardOutputSensitivity",vm:"1",version:"DICOM"},"(0016,001C)":{tag:"(0016,001C)",vr:"IS",name:"RecommendedExposureIndex",vm:"1",version:"DICOM"},"(0016,001D)":{tag:"(0016,001D)",vr:"IS",name:"ISOSpeed",vm:"1",version:"DICOM"},"(0016,001E)":{tag:"(0016,001E)",vr:"IS",name:"ISOSpeedLatitudeyyy",vm:"1",version:"DICOM"},"(0016,001F)":{tag:"(0016,001F)",vr:"IS",name:"ISOSpeedLatitudezzz",vm:"1",version:"DICOM"},"(0016,0020)":{tag:"(0016,0020)",vr:"UT",name:"EXIFVersion",vm:"1",version:"DICOM"},"(0016,0021)":{tag:"(0016,0021)",vr:"DS",name:"ShutterSpeedValue",vm:"1",version:"DICOM"},"(0016,0022)":{tag:"(0016,0022)",vr:"DS",name:"ApertureValue",vm:"1",version:"DICOM"},"(0016,0023)":{tag:"(0016,0023)",vr:"DS",name:"BrightnessValue",vm:"1",version:"DICOM"},"(0016,0024)":{tag:"(0016,0024)",vr:"DS",name:"ExposureBiasValue",vm:"1",version:"DICOM"},"(0016,0025)":{tag:"(0016,0025)",vr:"DS",name:"MaxApertureValue",vm:"1",version:"DICOM"},"(0016,0026)":{tag:"(0016,0026)",vr:"DS",name:"SubjectDistance",vm:"1",version:"DICOM"},"(0016,0027)":{tag:"(0016,0027)",vr:"US",name:"MeteringMode",vm:"1",version:"DICOM"},"(0016,0028)":{tag:"(0016,0028)",vr:"US",name:"LightSource",vm:"1",version:"DICOM"},"(0016,0029)":{tag:"(0016,0029)",vr:"DS",name:"FocalLength",vm:"1",version:"DICOM"},"(0016,002A)":{tag:"(0016,002A)",vr:"IS",name:"SubjectArea",vm:"2-4",version:"DICOM"},"(0016,002B)":{tag:"(0016,002B)",vr:"OB",name:"MakerNote",vm:"1",version:"DICOM"},"(0016,0030)":{tag:"(0016,0030)",vr:"DS",name:"Temperature",vm:"1",version:"DICOM"},"(0016,0031)":{tag:"(0016,0031)",vr:"DS",name:"Humidity",vm:"1",version:"DICOM"},"(0016,0032)":{tag:"(0016,0032)",vr:"DS",name:"Pressure",vm:"1",version:"DICOM"},"(0016,0033)":{tag:"(0016,0033)",vr:"DS",name:"WaterDepth",vm:"1",version:"DICOM"},"(0016,0034)":{tag:"(0016,0034)",vr:"DS",name:"Acceleration",vm:"1",version:"DICOM"},"(0016,0035)":{tag:"(0016,0035)",vr:"DS",name:"CameraElevationAngle",vm:"1",version:"DICOM"},"(0016,0036)":{tag:"(0016,0036)",vr:"DS",name:"FlashEnergy",vm:"1-2",version:"DICOM"},"(0016,0037)":{tag:"(0016,0037)",vr:"IS",name:"SubjectLocation",vm:"2",version:"DICOM"},"(0016,0038)":{tag:"(0016,0038)",vr:"DS",name:"PhotographicExposureIndex",vm:"1",version:"DICOM"},"(0016,0039)":{tag:"(0016,0039)",vr:"US",name:"SensingMethod",vm:"1",version:"DICOM"},"(0016,003A)":{tag:"(0016,003A)",vr:"US",name:"FileSource",vm:"1",version:"DICOM"},"(0016,003B)":{tag:"(0016,003B)",vr:"US",name:"SceneType",vm:"1",version:"DICOM"},"(0016,0041)":{tag:"(0016,0041)",vr:"US",name:"CustomRendered",vm:"1",version:"DICOM"},"(0016,0042)":{tag:"(0016,0042)",vr:"US",name:"ExposureMode",vm:"1",version:"DICOM"},"(0016,0043)":{tag:"(0016,0043)",vr:"US",name:"WhiteBalance",vm:"1",version:"DICOM"},"(0016,0044)":{tag:"(0016,0044)",vr:"DS",name:"DigitalZoomRatio",vm:"1",version:"DICOM"},"(0016,0045)":{tag:"(0016,0045)",vr:"IS",name:"FocalLengthIn35mmFilm",vm:"1",version:"DICOM"},"(0016,0046)":{tag:"(0016,0046)",vr:"US",name:"SceneCaptureType",vm:"1",version:"DICOM"},"(0016,0047)":{tag:"(0016,0047)",vr:"US",name:"GainControl",vm:"1",version:"DICOM"},"(0016,0048)":{tag:"(0016,0048)",vr:"US",name:"Contrast",vm:"1",version:"DICOM"},"(0016,0049)":{tag:"(0016,0049)",vr:"US",name:"Saturation",vm:"1",version:"DICOM"},"(0016,004A)":{tag:"(0016,004A)",vr:"US",name:"Sharpness",vm:"1",version:"DICOM"},"(0016,004B)":{tag:"(0016,004B)",vr:"OB",name:"DeviceSettingDescription",vm:"1",version:"DICOM"},"(0016,004C)":{tag:"(0016,004C)",vr:"US",name:"SubjectDistanceRange",vm:"1",version:"DICOM"},"(0016,004D)":{tag:"(0016,004D)",vr:"UT",name:"CameraOwnerName",vm:"1",version:"DICOM"},"(0016,004E)":{tag:"(0016,004E)",vr:"DS",name:"LensSpecification",vm:"4",version:"DICOM"},"(0016,004F)":{tag:"(0016,004F)",vr:"UT",name:"LensMake",vm:"1",version:"DICOM"},"(0016,0050)":{tag:"(0016,0050)",vr:"UT",name:"LensModel",vm:"1",version:"DICOM"},"(0016,0051)":{tag:"(0016,0051)",vr:"UT",name:"LensSerialNumber",vm:"1",version:"DICOM"},"(0016,0061)":{tag:"(0016,0061)",vr:"CS",name:"InteroperabilityIndex",vm:"1",version:"DICOM"},"(0016,0062)":{tag:"(0016,0062)",vr:"OB",name:"InteroperabilityVersion",vm:"1",version:"DICOM"},"(0016,0070)":{tag:"(0016,0070)",vr:"OB",name:"GPSVersionID",vm:"1",version:"DICOM"},"(0016,0071)":{tag:"(0016,0071)",vr:"CS",name:"GPSLatitudeRef",vm:"1",version:"DICOM"},"(0016,0072)":{tag:"(0016,0072)",vr:"DS",name:"GPSLatitude",vm:"3",version:"DICOM"},"(0016,0073)":{tag:"(0016,0073)",vr:"CS",name:"GPSLongitudeRef",vm:"1",version:"DICOM"},"(0016,0074)":{tag:"(0016,0074)",vr:"DS",name:"GPSLongitude",vm:"3",version:"DICOM"},"(0016,0075)":{tag:"(0016,0075)",vr:"US",name:"GPSAltitudeRef",vm:"1",version:"DICOM"},"(0016,0076)":{tag:"(0016,0076)",vr:"DS",name:"GPSAltitude",vm:"1",version:"DICOM"},"(0016,0077)":{tag:"(0016,0077)",vr:"DT",name:"GPSTimeStamp",vm:"1",version:"DICOM"},"(0016,0078)":{tag:"(0016,0078)",vr:"UT",name:"GPSSatellites",vm:"1",version:"DICOM"},"(0016,0079)":{tag:"(0016,0079)",vr:"CS",name:"GPSStatus",vm:"1",version:"DICOM"},"(0016,007A)":{tag:"(0016,007A)",vr:"CS",name:"GPSMeasureMode",vm:"1",version:"DICOM"},"(0016,007B)":{tag:"(0016,007B)",vr:"DS",name:"GPSDOP",vm:"1",version:"DICOM"},"(0016,007C)":{tag:"(0016,007C)",vr:"CS",name:"GPSSpeedRef",vm:"1",version:"DICOM"},"(0016,007D)":{tag:"(0016,007D)",vr:"DS",name:"GPSSpeed",vm:"1",version:"DICOM"},"(0016,007E)":{tag:"(0016,007E)",vr:"CS",name:"GPSTrackRef",vm:"1",version:"DICOM"},"(0016,007F)":{tag:"(0016,007F)",vr:"DS",name:"GPSTrack",vm:"1",version:"DICOM"},"(0016,0080)":{tag:"(0016,0080)",vr:"CS",name:"GPSImgDirectionRef",vm:"1",version:"DICOM"},"(0016,0081)":{tag:"(0016,0081)",vr:"DS",name:"GPSImgDirection",vm:"1",version:"DICOM"},"(0016,0082)":{tag:"(0016,0082)",vr:"UT",name:"GPSMapDatum",vm:"1",version:"DICOM"},"(0016,0083)":{tag:"(0016,0083)",vr:"CS",name:"GPSDestLatitudeRef",vm:"1",version:"DICOM"},"(0016,0084)":{tag:"(0016,0084)",vr:"DS",name:"GPSDestLatitude",vm:"3",version:"DICOM"},"(0016,0085)":{tag:"(0016,0085)",vr:"CS",name:"GPSDestLongitudeRef",vm:"1",version:"DICOM"},"(0016,0086)":{tag:"(0016,0086)",vr:"DS",name:"GPSDestLongitude",vm:"3",version:"DICOM"},"(0016,0087)":{tag:"(0016,0087)",vr:"CS",name:"GPSDestBearingRef",vm:"1",version:"DICOM"},"(0016,0088)":{tag:"(0016,0088)",vr:"DS",name:"GPSDestBearing",vm:"1",version:"DICOM"},"(0016,0089)":{tag:"(0016,0089)",vr:"CS",name:"GPSDestDistanceRef",vm:"1",version:"DICOM"},"(0016,008A)":{tag:"(0016,008A)",vr:"DS",name:"GPSDestDistance",vm:"1",version:"DICOM"},"(0016,008B)":{tag:"(0016,008B)",vr:"OB",name:"GPSProcessingMethod",vm:"1",version:"DICOM"},"(0016,008C)":{tag:"(0016,008C)",vr:"OB",name:"GPSAreaInformation",vm:"1",version:"DICOM"},"(0016,008D)":{tag:"(0016,008D)",vr:"DT",name:"GPSDateStamp",vm:"1",version:"DICOM"},"(0016,008E)":{tag:"(0016,008E)",vr:"IS",name:"GPSDifferential",vm:"1",version:"DICOM"},"(0016,1001)":{tag:"(0016,1001)",vr:"CS",name:"LightSourcePolarization",vm:"1",version:"DICOM"},"(0016,1002)":{tag:"(0016,1002)",vr:"DS",name:"EmitterColorTemperature",vm:"1",version:"DICOM"},"(0016,1003)":{tag:"(0016,1003)",vr:"CS",name:"ContactMethod",vm:"1",version:"DICOM"},"(0016,1004)":{tag:"(0016,1004)",vr:"CS",name:"ImmersionMedia",vm:"1-n",version:"DICOM"},"(0016,1005)":{tag:"(0016,1005)",vr:"DS",name:"OpticalMagnificationFactor",vm:"1",version:"DICOM"},"(0018,0010)":{tag:"(0018,0010)",vr:"LO",name:"ContrastBolusAgent",vm:"1",version:"DICOM"},"(0018,0012)":{tag:"(0018,0012)",vr:"SQ",name:"ContrastBolusAgentSequence",vm:"1",version:"DICOM"},"(0018,0013)":{tag:"(0018,0013)",vr:"FL",name:"ContrastBolusT1Relaxivity",vm:"1",version:"DICOM"},"(0018,0014)":{tag:"(0018,0014)",vr:"SQ",name:"ContrastBolusAdministrationRouteSequence",vm:"1",version:"DICOM"},"(0018,0015)":{tag:"(0018,0015)",vr:"CS",name:"BodyPartExamined",vm:"1",version:"DICOM"},"(0018,0020)":{tag:"(0018,0020)",vr:"CS",name:"ScanningSequence",vm:"1-n",version:"DICOM"},"(0018,0021)":{tag:"(0018,0021)",vr:"CS",name:"SequenceVariant",vm:"1-n",version:"DICOM"},"(0018,0022)":{tag:"(0018,0022)",vr:"CS",name:"ScanOptions",vm:"1-n",version:"DICOM"},"(0018,0023)":{tag:"(0018,0023)",vr:"CS",name:"MRAcquisitionType",vm:"1",version:"DICOM"},"(0018,0024)":{tag:"(0018,0024)",vr:"SH",name:"SequenceName",vm:"1",version:"DICOM"},"(0018,0025)":{tag:"(0018,0025)",vr:"CS",name:"AngioFlag",vm:"1",version:"DICOM"},"(0018,0026)":{tag:"(0018,0026)",vr:"SQ",name:"InterventionDrugInformationSequence",vm:"1",version:"DICOM"},"(0018,0027)":{tag:"(0018,0027)",vr:"TM",name:"InterventionDrugStopTime",vm:"1",version:"DICOM"},"(0018,0028)":{tag:"(0018,0028)",vr:"DS",name:"InterventionDrugDose",vm:"1",version:"DICOM"},"(0018,0029)":{tag:"(0018,0029)",vr:"SQ",name:"InterventionDrugCodeSequence",vm:"1",version:"DICOM"},"(0018,002A)":{tag:"(0018,002A)",vr:"SQ",name:"AdditionalDrugSequence",vm:"1",version:"DICOM"},"(0018,0031)":{tag:"(0018,0031)",vr:"LO",name:"Radiopharmaceutical",vm:"1",version:"DICOM"},"(0018,0034)":{tag:"(0018,0034)",vr:"LO",name:"InterventionDrugName",vm:"1",version:"DICOM"},"(0018,0035)":{tag:"(0018,0035)",vr:"TM",name:"InterventionDrugStartTime",vm:"1",version:"DICOM"},"(0018,0036)":{tag:"(0018,0036)",vr:"SQ",name:"InterventionSequence",vm:"1",version:"DICOM"},"(0018,0038)":{tag:"(0018,0038)",vr:"CS",name:"InterventionStatus",vm:"1",version:"DICOM"},"(0018,003A)":{tag:"(0018,003A)",vr:"ST",name:"InterventionDescription",vm:"1",version:"DICOM"},"(0018,0040)":{tag:"(0018,0040)",vr:"IS",name:"CineRate",vm:"1",version:"DICOM"},"(0018,0042)":{tag:"(0018,0042)",vr:"CS",name:"InitialCineRunState",vm:"1",version:"DICOM"},"(0018,0050)":{tag:"(0018,0050)",vr:"DS",name:"SliceThickness",vm:"1",version:"DICOM"},"(0018,0060)":{tag:"(0018,0060)",vr:"DS",name:"KVP",vm:"1",version:"DICOM"},"(0018,0070)":{tag:"(0018,0070)",vr:"IS",name:"CountsAccumulated",vm:"1",version:"DICOM"},"(0018,0071)":{tag:"(0018,0071)",vr:"CS",name:"AcquisitionTerminationCondition",vm:"1",version:"DICOM"},"(0018,0072)":{tag:"(0018,0072)",vr:"DS",name:"EffectiveDuration",vm:"1",version:"DICOM"},"(0018,0073)":{tag:"(0018,0073)",vr:"CS",name:"AcquisitionStartCondition",vm:"1",version:"DICOM"},"(0018,0074)":{tag:"(0018,0074)",vr:"IS",name:"AcquisitionStartConditionData",vm:"1",version:"DICOM"},"(0018,0075)":{tag:"(0018,0075)",vr:"IS",name:"AcquisitionTerminationConditionData",vm:"1",version:"DICOM"},"(0018,0080)":{tag:"(0018,0080)",vr:"DS",name:"RepetitionTime",vm:"1",version:"DICOM"},"(0018,0081)":{tag:"(0018,0081)",vr:"DS",name:"EchoTime",vm:"1",version:"DICOM"},"(0018,0082)":{tag:"(0018,0082)",vr:"DS",name:"InversionTime",vm:"1",version:"DICOM"},"(0018,0083)":{tag:"(0018,0083)",vr:"DS",name:"NumberOfAverages",vm:"1",version:"DICOM"},"(0018,0084)":{tag:"(0018,0084)",vr:"DS",name:"ImagingFrequency",vm:"1",version:"DICOM"},"(0018,0085)":{tag:"(0018,0085)",vr:"SH",name:"ImagedNucleus",vm:"1",version:"DICOM"},"(0018,0086)":{tag:"(0018,0086)",vr:"IS",name:"EchoNumbers",vm:"1-n",version:"DICOM"},"(0018,0087)":{tag:"(0018,0087)",vr:"DS",name:"MagneticFieldStrength",vm:"1",version:"DICOM"},"(0018,0088)":{tag:"(0018,0088)",vr:"DS",name:"SpacingBetweenSlices",vm:"1",version:"DICOM"},"(0018,0089)":{tag:"(0018,0089)",vr:"IS",name:"NumberOfPhaseEncodingSteps",vm:"1",version:"DICOM"},"(0018,0090)":{tag:"(0018,0090)",vr:"DS",name:"DataCollectionDiameter",vm:"1",version:"DICOM"},"(0018,0091)":{tag:"(0018,0091)",vr:"IS",name:"EchoTrainLength",vm:"1",version:"DICOM"},"(0018,0093)":{tag:"(0018,0093)",vr:"DS",name:"PercentSampling",vm:"1",version:"DICOM"},"(0018,0094)":{tag:"(0018,0094)",vr:"DS",name:"PercentPhaseFieldOfView",vm:"1",version:"DICOM"},"(0018,0095)":{tag:"(0018,0095)",vr:"DS",name:"PixelBandwidth",vm:"1",version:"DICOM"},"(0018,1000)":{tag:"(0018,1000)",vr:"LO",name:"DeviceSerialNumber",vm:"1",version:"DICOM"},"(0018,1002)":{tag:"(0018,1002)",vr:"UI",name:"DeviceUID",vm:"1",version:"DICOM"},"(0018,1003)":{tag:"(0018,1003)",vr:"LO",name:"DeviceID",vm:"1",version:"DICOM"},"(0018,1004)":{tag:"(0018,1004)",vr:"LO",name:"PlateID",vm:"1",version:"DICOM"},"(0018,1005)":{tag:"(0018,1005)",vr:"LO",name:"GeneratorID",vm:"1",version:"DICOM"},"(0018,1006)":{tag:"(0018,1006)",vr:"LO",name:"GridID",vm:"1",version:"DICOM"},"(0018,1007)":{tag:"(0018,1007)",vr:"LO",name:"CassetteID",vm:"1",version:"DICOM"},"(0018,1008)":{tag:"(0018,1008)",vr:"LO",name:"GantryID",vm:"1",version:"DICOM"},"(0018,1009)":{tag:"(0018,1009)",vr:"UT",name:"UniqueDeviceIdentifier",vm:"1",version:"DICOM"},"(0018,100A)":{tag:"(0018,100A)",vr:"SQ",name:"UDISequence",vm:"1",version:"DICOM"},"(0018,100B)":{tag:"(0018,100B)",vr:"UI",name:"ManufacturerDeviceClassUID",vm:"1-n",version:"DICOM"},"(0018,1010)":{tag:"(0018,1010)",vr:"LO",name:"SecondaryCaptureDeviceID",vm:"1",version:"DICOM"},"(0018,1012)":{tag:"(0018,1012)",vr:"DA",name:"DateOfSecondaryCapture",vm:"1",version:"DICOM"},"(0018,1014)":{tag:"(0018,1014)",vr:"TM",name:"TimeOfSecondaryCapture",vm:"1",version:"DICOM"},"(0018,1016)":{tag:"(0018,1016)",vr:"LO",name:"SecondaryCaptureDeviceManufacturer",vm:"1",version:"DICOM"},"(0018,1018)":{tag:"(0018,1018)",vr:"LO",name:"SecondaryCaptureDeviceManufacturerModelName",vm:"1",version:"DICOM"},"(0018,1019)":{tag:"(0018,1019)",vr:"LO",name:"SecondaryCaptureDeviceSoftwareVersions",vm:"1-n",version:"DICOM"},"(0018,1020)":{tag:"(0018,1020)",vr:"LO",name:"SoftwareVersions",vm:"1-n",version:"DICOM"},"(0018,1022)":{tag:"(0018,1022)",vr:"SH",name:"VideoImageFormatAcquired",vm:"1",version:"DICOM"},"(0018,1023)":{tag:"(0018,1023)",vr:"LO",name:"DigitalImageFormatAcquired",vm:"1",version:"DICOM"},"(0018,1030)":{tag:"(0018,1030)",vr:"LO",name:"ProtocolName",vm:"1",version:"DICOM"},"(0018,1040)":{tag:"(0018,1040)",vr:"LO",name:"ContrastBolusRoute",vm:"1",version:"DICOM"},"(0018,1041)":{tag:"(0018,1041)",vr:"DS",name:"ContrastBolusVolume",vm:"1",version:"DICOM"},"(0018,1042)":{tag:"(0018,1042)",vr:"TM",name:"ContrastBolusStartTime",vm:"1",version:"DICOM"},"(0018,1043)":{tag:"(0018,1043)",vr:"TM",name:"ContrastBolusStopTime",vm:"1",version:"DICOM"},"(0018,1044)":{tag:"(0018,1044)",vr:"DS",name:"ContrastBolusTotalDose",vm:"1",version:"DICOM"},"(0018,1045)":{tag:"(0018,1045)",vr:"IS",name:"SyringeCounts",vm:"1",version:"DICOM"},"(0018,1046)":{tag:"(0018,1046)",vr:"DS",name:"ContrastFlowRate",vm:"1-n",version:"DICOM"},"(0018,1047)":{tag:"(0018,1047)",vr:"DS",name:"ContrastFlowDuration",vm:"1-n",version:"DICOM"},"(0018,1048)":{tag:"(0018,1048)",vr:"CS",name:"ContrastBolusIngredient",vm:"1",version:"DICOM"},"(0018,1049)":{tag:"(0018,1049)",vr:"DS",name:"ContrastBolusIngredientConcentration",vm:"1",version:"DICOM"},"(0018,1050)":{tag:"(0018,1050)",vr:"DS",name:"SpatialResolution",vm:"1",version:"DICOM"},"(0018,1060)":{tag:"(0018,1060)",vr:"DS",name:"TriggerTime",vm:"1",version:"DICOM"},"(0018,1061)":{tag:"(0018,1061)",vr:"LO",name:"TriggerSourceOrType",vm:"1",version:"DICOM"},"(0018,1062)":{tag:"(0018,1062)",vr:"IS",name:"NominalInterval",vm:"1",version:"DICOM"},"(0018,1063)":{tag:"(0018,1063)",vr:"DS",name:"FrameTime",vm:"1",version:"DICOM"},"(0018,1064)":{tag:"(0018,1064)",vr:"LO",name:"CardiacFramingType",vm:"1",version:"DICOM"},"(0018,1065)":{tag:"(0018,1065)",vr:"DS",name:"FrameTimeVector",vm:"1-n",version:"DICOM"},"(0018,1066)":{tag:"(0018,1066)",vr:"DS",name:"FrameDelay",vm:"1",version:"DICOM"},"(0018,1067)":{tag:"(0018,1067)",vr:"DS",name:"ImageTriggerDelay",vm:"1",version:"DICOM"},"(0018,1068)":{tag:"(0018,1068)",vr:"DS",name:"MultiplexGroupTimeOffset",vm:"1",version:"DICOM"},"(0018,1069)":{tag:"(0018,1069)",vr:"DS",name:"TriggerTimeOffset",vm:"1",version:"DICOM"},"(0018,106A)":{tag:"(0018,106A)",vr:"CS",name:"SynchronizationTrigger",vm:"1",version:"DICOM"},"(0018,106C)":{tag:"(0018,106C)",vr:"US",name:"SynchronizationChannel",vm:"2",version:"DICOM"},"(0018,106E)":{tag:"(0018,106E)",vr:"UL",name:"TriggerSamplePosition",vm:"1",version:"DICOM"},"(0018,1070)":{tag:"(0018,1070)",vr:"LO",name:"RadiopharmaceuticalRoute",vm:"1",version:"DICOM"},"(0018,1071)":{tag:"(0018,1071)",vr:"DS",name:"RadiopharmaceuticalVolume",vm:"1",version:"DICOM"},"(0018,1072)":{tag:"(0018,1072)",vr:"TM",name:"RadiopharmaceuticalStartTime",vm:"1",version:"DICOM"},"(0018,1073)":{tag:"(0018,1073)",vr:"TM",name:"RadiopharmaceuticalStopTime",vm:"1",version:"DICOM"},"(0018,1074)":{tag:"(0018,1074)",vr:"DS",name:"RadionuclideTotalDose",vm:"1",version:"DICOM"},"(0018,1075)":{tag:"(0018,1075)",vr:"DS",name:"RadionuclideHalfLife",vm:"1",version:"DICOM"},"(0018,1076)":{tag:"(0018,1076)",vr:"DS",name:"RadionuclidePositronFraction",vm:"1",version:"DICOM"},"(0018,1077)":{tag:"(0018,1077)",vr:"DS",name:"RadiopharmaceuticalSpecificActivity",vm:"1",version:"DICOM"},"(0018,1078)":{tag:"(0018,1078)",vr:"DT",name:"RadiopharmaceuticalStartDateTime",vm:"1",version:"DICOM"},"(0018,1079)":{tag:"(0018,1079)",vr:"DT",name:"RadiopharmaceuticalStopDateTime",vm:"1",version:"DICOM"},"(0018,1080)":{tag:"(0018,1080)",vr:"CS",name:"BeatRejectionFlag",vm:"1",version:"DICOM"},"(0018,1081)":{tag:"(0018,1081)",vr:"IS",name:"LowRRValue",vm:"1",version:"DICOM"},"(0018,1082)":{tag:"(0018,1082)",vr:"IS",name:"HighRRValue",vm:"1",version:"DICOM"},"(0018,1083)":{tag:"(0018,1083)",vr:"IS",name:"IntervalsAcquired",vm:"1",version:"DICOM"},"(0018,1084)":{tag:"(0018,1084)",vr:"IS",name:"IntervalsRejected",vm:"1",version:"DICOM"},"(0018,1085)":{tag:"(0018,1085)",vr:"LO",name:"PVCRejection",vm:"1",version:"DICOM"},"(0018,1086)":{tag:"(0018,1086)",vr:"IS",name:"SkipBeats",vm:"1",version:"DICOM"},"(0018,1088)":{tag:"(0018,1088)",vr:"IS",name:"HeartRate",vm:"1",version:"DICOM"},"(0018,1090)":{tag:"(0018,1090)",vr:"IS",name:"CardiacNumberOfImages",vm:"1",version:"DICOM"},"(0018,1094)":{tag:"(0018,1094)",vr:"IS",name:"TriggerWindow",vm:"1",version:"DICOM"},"(0018,1100)":{tag:"(0018,1100)",vr:"DS",name:"ReconstructionDiameter",vm:"1",version:"DICOM"},"(0018,1110)":{tag:"(0018,1110)",vr:"DS",name:"DistanceSourceToDetector",vm:"1",version:"DICOM"},"(0018,1111)":{tag:"(0018,1111)",vr:"DS",name:"DistanceSourceToPatient",vm:"1",version:"DICOM"},"(0018,1114)":{tag:"(0018,1114)",vr:"DS",name:"EstimatedRadiographicMagnificationFactor",vm:"1",version:"DICOM"},"(0018,1120)":{tag:"(0018,1120)",vr:"DS",name:"GantryDetectorTilt",vm:"1",version:"DICOM"},"(0018,1121)":{tag:"(0018,1121)",vr:"DS",name:"GantryDetectorSlew",vm:"1",version:"DICOM"},"(0018,1130)":{tag:"(0018,1130)",vr:"DS",name:"TableHeight",vm:"1",version:"DICOM"},"(0018,1131)":{tag:"(0018,1131)",vr:"DS",name:"TableTraverse",vm:"1",version:"DICOM"},"(0018,1134)":{tag:"(0018,1134)",vr:"CS",name:"TableMotion",vm:"1",version:"DICOM"},"(0018,1135)":{tag:"(0018,1135)",vr:"DS",name:"TableVerticalIncrement",vm:"1-n",version:"DICOM"},"(0018,1136)":{tag:"(0018,1136)",vr:"DS",name:"TableLateralIncrement",vm:"1-n",version:"DICOM"},"(0018,1137)":{tag:"(0018,1137)",vr:"DS",name:"TableLongitudinalIncrement",vm:"1-n",version:"DICOM"},"(0018,1138)":{tag:"(0018,1138)",vr:"DS",name:"TableAngle",vm:"1",version:"DICOM"},"(0018,113A)":{tag:"(0018,113A)",vr:"CS",name:"TableType",vm:"1",version:"DICOM"},"(0018,1140)":{tag:"(0018,1140)",vr:"CS",name:"RotationDirection",vm:"1",version:"DICOM"},"(0018,1142)":{tag:"(0018,1142)",vr:"DS",name:"RadialPosition",vm:"1-n",version:"DICOM"},"(0018,1143)":{tag:"(0018,1143)",vr:"DS",name:"ScanArc",vm:"1",version:"DICOM"},"(0018,1144)":{tag:"(0018,1144)",vr:"DS",name:"AngularStep",vm:"1",version:"DICOM"},"(0018,1145)":{tag:"(0018,1145)",vr:"DS",name:"CenterOfRotationOffset",vm:"1",version:"DICOM"},"(0018,1147)":{tag:"(0018,1147)",vr:"CS",name:"FieldOfViewShape",vm:"1",version:"DICOM"},"(0018,1149)":{tag:"(0018,1149)",vr:"IS",name:"FieldOfViewDimensions",vm:"1-2",version:"DICOM"},"(0018,1150)":{tag:"(0018,1150)",vr:"IS",name:"ExposureTime",vm:"1",version:"DICOM"},"(0018,1151)":{tag:"(0018,1151)",vr:"IS",name:"XRayTubeCurrent",vm:"1",version:"DICOM"},"(0018,1152)":{tag:"(0018,1152)",vr:"IS",name:"Exposure",vm:"1",version:"DICOM"},"(0018,1153)":{tag:"(0018,1153)",vr:"IS",name:"ExposureInuAs",vm:"1",version:"DICOM"},"(0018,1154)":{tag:"(0018,1154)",vr:"DS",name:"AveragePulseWidth",vm:"1",version:"DICOM"},"(0018,1155)":{tag:"(0018,1155)",vr:"CS",name:"RadiationSetting",vm:"1",version:"DICOM"},"(0018,1156)":{tag:"(0018,1156)",vr:"CS",name:"RectificationType",vm:"1",version:"DICOM"},"(0018,115A)":{tag:"(0018,115A)",vr:"CS",name:"RadiationMode",vm:"1",version:"DICOM"},"(0018,115E)":{tag:"(0018,115E)",vr:"DS",name:"ImageAndFluoroscopyAreaDoseProduct",vm:"1",version:"DICOM"},"(0018,1160)":{tag:"(0018,1160)",vr:"SH",name:"FilterType",vm:"1",version:"DICOM"},"(0018,1161)":{tag:"(0018,1161)",vr:"LO",name:"TypeOfFilters",vm:"1-n",version:"DICOM"},"(0018,1162)":{tag:"(0018,1162)",vr:"DS",name:"IntensifierSize",vm:"1",version:"DICOM"},"(0018,1164)":{tag:"(0018,1164)",vr:"DS",name:"ImagerPixelSpacing",vm:"2",version:"DICOM"},"(0018,1166)":{tag:"(0018,1166)",vr:"CS",name:"Grid",vm:"1-n",version:"DICOM"},"(0018,1170)":{tag:"(0018,1170)",vr:"IS",name:"GeneratorPower",vm:"1",version:"DICOM"},"(0018,1180)":{tag:"(0018,1180)",vr:"SH",name:"CollimatorGridName",vm:"1",version:"DICOM"},"(0018,1181)":{tag:"(0018,1181)",vr:"CS",name:"CollimatorType",vm:"1",version:"DICOM"},"(0018,1182)":{tag:"(0018,1182)",vr:"IS",name:"FocalDistance",vm:"1-2",version:"DICOM"},"(0018,1183)":{tag:"(0018,1183)",vr:"DS",name:"XFocusCenter",vm:"1-2",version:"DICOM"},"(0018,1184)":{tag:"(0018,1184)",vr:"DS",name:"YFocusCenter",vm:"1-2",version:"DICOM"},"(0018,1190)":{tag:"(0018,1190)",vr:"DS",name:"FocalSpots",vm:"1-n",version:"DICOM"},"(0018,1191)":{tag:"(0018,1191)",vr:"CS",name:"AnodeTargetMaterial",vm:"1",version:"DICOM"},"(0018,11A0)":{tag:"(0018,11A0)",vr:"DS",name:"BodyPartThickness",vm:"1",version:"DICOM"},"(0018,11A2)":{tag:"(0018,11A2)",vr:"DS",name:"CompressionForce",vm:"1",version:"DICOM"},"(0018,11A3)":{tag:"(0018,11A3)",vr:"DS",name:"CompressionPressure",vm:"1",version:"DICOM"},"(0018,11A4)":{tag:"(0018,11A4)",vr:"LO",name:"PaddleDescription",vm:"1",version:"DICOM"},"(0018,11A5)":{tag:"(0018,11A5)",vr:"DS",name:"CompressionContactArea",vm:"1",version:"DICOM"},"(0018,11B0)":{tag:"(0018,11B0)",vr:"LO",name:"AcquisitionMode",vm:"1",version:"DICOM"},"(0018,11B1)":{tag:"(0018,11B1)",vr:"LO",name:"DoseModeName",vm:"1",version:"DICOM"},"(0018,11B2)":{tag:"(0018,11B2)",vr:"CS",name:"AcquiredSubtractionMaskFlag",vm:"1",version:"DICOM"},"(0018,11B3)":{tag:"(0018,11B3)",vr:"CS",name:"FluoroscopyPersistenceFlag",vm:"1",version:"DICOM"},"(0018,11B4)":{tag:"(0018,11B4)",vr:"CS",name:"FluoroscopyLastImageHoldPersistenceFlag",vm:"1",version:"DICOM"},"(0018,11B5)":{tag:"(0018,11B5)",vr:"IS",name:"UpperLimitNumberOfPersistentFluoroscopyFrames",vm:"1",version:"DICOM"},"(0018,11B6)":{tag:"(0018,11B6)",vr:"CS",name:"ContrastBolusAutoInjectionTriggerFlag",vm:"1",version:"DICOM"},"(0018,11B7)":{tag:"(0018,11B7)",vr:"FD",name:"ContrastBolusInjectionDelay",vm:"1",version:"DICOM"},"(0018,11B8)":{tag:"(0018,11B8)",vr:"SQ",name:"XAAcquisitionPhaseDetailsSequence",vm:"1",version:"DICOM"},"(0018,11B9)":{tag:"(0018,11B9)",vr:"FD",name:"XAAcquisitionFrameRate",vm:"1",version:"DICOM"},"(0018,11BA)":{tag:"(0018,11BA)",vr:"SQ",name:"XAPlaneDetailsSequence",vm:"1",version:"DICOM"},"(0018,11BB)":{tag:"(0018,11BB)",vr:"LO",name:"AcquisitionFieldOfViewLabel",vm:"1",version:"DICOM"},"(0018,11BC)":{tag:"(0018,11BC)",vr:"SQ",name:"XRayFilterDetailsSequence",vm:"1",version:"DICOM"},"(0018,11BD)":{tag:"(0018,11BD)",vr:"FD",name:"XAAcquisitionDuration",vm:"1",version:"DICOM"},"(0018,11BE)":{tag:"(0018,11BE)",vr:"CS",name:"ReconstructionPipelineType",vm:"1",version:"DICOM"},"(0018,11BF)":{tag:"(0018,11BF)",vr:"SQ",name:"ImageFilterDetailsSequence",vm:"1",version:"DICOM"},"(0018,11C0)":{tag:"(0018,11C0)",vr:"CS",name:"AppliedMaskSubtractionFlag",vm:"1",version:"DICOM"},"(0018,11C1)":{tag:"(0018,11C1)",vr:"SQ",name:"RequestedSeriesDescriptionCodeSequence",vm:"1",version:"DICOM"},"(0018,1200)":{tag:"(0018,1200)",vr:"DA",name:"DateOfLastCalibration",vm:"1-n",version:"DICOM"},"(0018,1201)":{tag:"(0018,1201)",vr:"TM",name:"TimeOfLastCalibration",vm:"1-n",version:"DICOM"},"(0018,1202)":{tag:"(0018,1202)",vr:"DT",name:"DateTimeOfLastCalibration",vm:"1",version:"DICOM"},"(0018,1210)":{tag:"(0018,1210)",vr:"SH",name:"ConvolutionKernel",vm:"1-n",version:"DICOM"},"(0018,1242)":{tag:"(0018,1242)",vr:"IS",name:"ActualFrameDuration",vm:"1",version:"DICOM"},"(0018,1243)":{tag:"(0018,1243)",vr:"IS",name:"CountRate",vm:"1",version:"DICOM"},"(0018,1244)":{tag:"(0018,1244)",vr:"US",name:"PreferredPlaybackSequencing",vm:"1",version:"DICOM"},"(0018,1250)":{tag:"(0018,1250)",vr:"SH",name:"ReceiveCoilName",vm:"1",version:"DICOM"},"(0018,1251)":{tag:"(0018,1251)",vr:"SH",name:"TransmitCoilName",vm:"1",version:"DICOM"},"(0018,1260)":{tag:"(0018,1260)",vr:"SH",name:"PlateType",vm:"1",version:"DICOM"},"(0018,1261)":{tag:"(0018,1261)",vr:"LO",name:"PhosphorType",vm:"1",version:"DICOM"},"(0018,1271)":{tag:"(0018,1271)",vr:"FD",name:"WaterEquivalentDiameter",vm:"1",version:"DICOM"},"(0018,1272)":{tag:"(0018,1272)",vr:"SQ",name:"WaterEquivalentDiameterCalculationMethodCodeSequence",vm:"1",version:"DICOM"},"(0018,1300)":{tag:"(0018,1300)",vr:"DS",name:"ScanVelocity",vm:"1",version:"DICOM"},"(0018,1301)":{tag:"(0018,1301)",vr:"CS",name:"WholeBodyTechnique",vm:"1-n",version:"DICOM"},"(0018,1302)":{tag:"(0018,1302)",vr:"IS",name:"ScanLength",vm:"1",version:"DICOM"},"(0018,1310)":{tag:"(0018,1310)",vr:"US",name:"AcquisitionMatrix",vm:"4",version:"DICOM"},"(0018,1312)":{tag:"(0018,1312)",vr:"CS",name:"InPlanePhaseEncodingDirection",vm:"1",version:"DICOM"},"(0018,1314)":{tag:"(0018,1314)",vr:"DS",name:"FlipAngle",vm:"1",version:"DICOM"},"(0018,1315)":{tag:"(0018,1315)",vr:"CS",name:"VariableFlipAngleFlag",vm:"1",version:"DICOM"},"(0018,1316)":{tag:"(0018,1316)",vr:"DS",name:"SAR",vm:"1",version:"DICOM"},"(0018,1318)":{tag:"(0018,1318)",vr:"DS",name:"dBdt",vm:"1",version:"DICOM"},"(0018,1400)":{tag:"(0018,1400)",vr:"LO",name:"AcquisitionDeviceProcessingDescription",vm:"1",version:"DICOM"},"(0018,1401)":{tag:"(0018,1401)",vr:"LO",name:"AcquisitionDeviceProcessingCode",vm:"1",version:"DICOM"},"(0018,1402)":{tag:"(0018,1402)",vr:"CS",name:"CassetteOrientation",vm:"1",version:"DICOM"},"(0018,1403)":{tag:"(0018,1403)",vr:"CS",name:"CassetteSize",vm:"1",version:"DICOM"},"(0018,1404)":{tag:"(0018,1404)",vr:"US",name:"ExposuresOnPlate",vm:"1",version:"DICOM"},"(0018,1405)":{tag:"(0018,1405)",vr:"IS",name:"RelativeXRayExposure",vm:"1",version:"DICOM"},"(0018,1411)":{tag:"(0018,1411)",vr:"DS",name:"ExposureIndex",vm:"1",version:"DICOM"},"(0018,1412)":{tag:"(0018,1412)",vr:"DS",name:"TargetExposureIndex",vm:"1",version:"DICOM"},"(0018,1413)":{tag:"(0018,1413)",vr:"DS",name:"DeviationIndex",vm:"1",version:"DICOM"},"(0018,1450)":{tag:"(0018,1450)",vr:"DS",name:"ColumnAngulation",vm:"1",version:"DICOM"},"(0018,1460)":{tag:"(0018,1460)",vr:"DS",name:"TomoLayerHeight",vm:"1",version:"DICOM"},"(0018,1470)":{tag:"(0018,1470)",vr:"DS",name:"TomoAngle",vm:"1",version:"DICOM"},"(0018,1480)":{tag:"(0018,1480)",vr:"DS",name:"TomoTime",vm:"1",version:"DICOM"},"(0018,1490)":{tag:"(0018,1490)",vr:"CS",name:"TomoType",vm:"1",version:"DICOM"},"(0018,1491)":{tag:"(0018,1491)",vr:"CS",name:"TomoClass",vm:"1",version:"DICOM"},"(0018,1495)":{tag:"(0018,1495)",vr:"IS",name:"NumberOfTomosynthesisSourceImages",vm:"1",version:"DICOM"},"(0018,1500)":{tag:"(0018,1500)",vr:"CS",name:"PositionerMotion",vm:"1",version:"DICOM"},"(0018,1508)":{tag:"(0018,1508)",vr:"CS",name:"PositionerType",vm:"1",version:"DICOM"},"(0018,1510)":{tag:"(0018,1510)",vr:"DS",name:"PositionerPrimaryAngle",vm:"1",version:"DICOM"},"(0018,1511)":{tag:"(0018,1511)",vr:"DS",name:"PositionerSecondaryAngle",vm:"1",version:"DICOM"},"(0018,1520)":{tag:"(0018,1520)",vr:"DS",name:"PositionerPrimaryAngleIncrement",vm:"1-n",version:"DICOM"},"(0018,1521)":{tag:"(0018,1521)",vr:"DS",name:"PositionerSecondaryAngleIncrement",vm:"1-n",version:"DICOM"},"(0018,1530)":{tag:"(0018,1530)",vr:"DS",name:"DetectorPrimaryAngle",vm:"1",version:"DICOM"},"(0018,1531)":{tag:"(0018,1531)",vr:"DS",name:"DetectorSecondaryAngle",vm:"1",version:"DICOM"},"(0018,1600)":{tag:"(0018,1600)",vr:"CS",name:"ShutterShape",vm:"1-3",version:"DICOM"},"(0018,1602)":{tag:"(0018,1602)",vr:"IS",name:"ShutterLeftVerticalEdge",vm:"1",version:"DICOM"},"(0018,1604)":{tag:"(0018,1604)",vr:"IS",name:"ShutterRightVerticalEdge",vm:"1",version:"DICOM"},"(0018,1606)":{tag:"(0018,1606)",vr:"IS",name:"ShutterUpperHorizontalEdge",vm:"1",version:"DICOM"},"(0018,1608)":{tag:"(0018,1608)",vr:"IS",name:"ShutterLowerHorizontalEdge",vm:"1",version:"DICOM"},"(0018,1610)":{tag:"(0018,1610)",vr:"IS",name:"CenterOfCircularShutter",vm:"2",version:"DICOM"},"(0018,1612)":{tag:"(0018,1612)",vr:"IS",name:"RadiusOfCircularShutter",vm:"1",version:"DICOM"},"(0018,1620)":{tag:"(0018,1620)",vr:"IS",name:"VerticesOfThePolygonalShutter",vm:"2-2n",version:"DICOM"},"(0018,1622)":{tag:"(0018,1622)",vr:"US",name:"ShutterPresentationValue",vm:"1",version:"DICOM"},"(0018,1623)":{tag:"(0018,1623)",vr:"US",name:"ShutterOverlayGroup",vm:"1",version:"DICOM"},"(0018,1624)":{tag:"(0018,1624)",vr:"US",name:"ShutterPresentationColorCIELabValue",vm:"3",version:"DICOM"},"(0018,1630)":{tag:"(0018,1630)",vr:"CS",name:"OutlineShapeType",vm:"1",version:"DICOM"},"(0018,1631)":{tag:"(0018,1631)",vr:"FD",name:"OutlineLeftVerticalEdge",vm:"1",version:"DICOM"},"(0018,1632)":{tag:"(0018,1632)",vr:"FD",name:"OutlineRightVerticalEdge",vm:"1",version:"DICOM"},"(0018,1633)":{tag:"(0018,1633)",vr:"FD",name:"OutlineUpperHorizontalEdge",vm:"1",version:"DICOM"},"(0018,1634)":{tag:"(0018,1634)",vr:"FD",name:"OutlineLowerHorizontalEdge",vm:"1",version:"DICOM"},"(0018,1635)":{tag:"(0018,1635)",vr:"FD",name:"CenterOfCircularOutline",vm:"2",version:"DICOM"},"(0018,1636)":{tag:"(0018,1636)",vr:"FD",name:"DiameterOfCircularOutline",vm:"1",version:"DICOM"},"(0018,1637)":{tag:"(0018,1637)",vr:"UL",name:"NumberOfPolygonalVertices",vm:"1",version:"DICOM"},"(0018,1638)":{tag:"(0018,1638)",vr:"OF",name:"VerticesOfThePolygonalOutline",vm:"1",version:"DICOM"},"(0018,1700)":{tag:"(0018,1700)",vr:"CS",name:"CollimatorShape",vm:"1-3",version:"DICOM"},"(0018,1702)":{tag:"(0018,1702)",vr:"IS",name:"CollimatorLeftVerticalEdge",vm:"1",version:"DICOM"},"(0018,1704)":{tag:"(0018,1704)",vr:"IS",name:"CollimatorRightVerticalEdge",vm:"1",version:"DICOM"},"(0018,1706)":{tag:"(0018,1706)",vr:"IS",name:"CollimatorUpperHorizontalEdge",vm:"1",version:"DICOM"},"(0018,1708)":{tag:"(0018,1708)",vr:"IS",name:"CollimatorLowerHorizontalEdge",vm:"1",version:"DICOM"},"(0018,1710)":{tag:"(0018,1710)",vr:"IS",name:"CenterOfCircularCollimator",vm:"2",version:"DICOM"},"(0018,1712)":{tag:"(0018,1712)",vr:"IS",name:"RadiusOfCircularCollimator",vm:"1",version:"DICOM"},"(0018,1720)":{tag:"(0018,1720)",vr:"IS",name:"VerticesOfThePolygonalCollimator",vm:"2-2n",version:"DICOM"},"(0018,1800)":{tag:"(0018,1800)",vr:"CS",name:"AcquisitionTimeSynchronized",vm:"1",version:"DICOM"},"(0018,1801)":{tag:"(0018,1801)",vr:"SH",name:"TimeSource",vm:"1",version:"DICOM"},"(0018,1802)":{tag:"(0018,1802)",vr:"CS",name:"TimeDistributionProtocol",vm:"1",version:"DICOM"},"(0018,1803)":{tag:"(0018,1803)",vr:"LO",name:"NTPSourceAddress",vm:"1",version:"DICOM"},"(0018,2001)":{tag:"(0018,2001)",vr:"IS",name:"PageNumberVector",vm:"1-n",version:"DICOM"},"(0018,2002)":{tag:"(0018,2002)",vr:"SH",name:"FrameLabelVector",vm:"1-n",version:"DICOM"},"(0018,2003)":{tag:"(0018,2003)",vr:"DS",name:"FramePrimaryAngleVector",vm:"1-n",version:"DICOM"},"(0018,2004)":{tag:"(0018,2004)",vr:"DS",name:"FrameSecondaryAngleVector",vm:"1-n",version:"DICOM"},"(0018,2005)":{tag:"(0018,2005)",vr:"DS",name:"SliceLocationVector",vm:"1-n",version:"DICOM"},"(0018,2006)":{tag:"(0018,2006)",vr:"SH",name:"DisplayWindowLabelVector",vm:"1-n",version:"DICOM"},"(0018,2010)":{tag:"(0018,2010)",vr:"DS",name:"NominalScannedPixelSpacing",vm:"2",version:"DICOM"},"(0018,2020)":{tag:"(0018,2020)",vr:"CS",name:"DigitizingDeviceTransportDirection",vm:"1",version:"DICOM"},"(0018,2030)":{tag:"(0018,2030)",vr:"DS",name:"RotationOfScannedFilm",vm:"1",version:"DICOM"},"(0018,2041)":{tag:"(0018,2041)",vr:"SQ",name:"BiopsyTargetSequence",vm:"1",version:"DICOM"},"(0018,2042)":{tag:"(0018,2042)",vr:"UI",name:"TargetUID",vm:"1",version:"DICOM"},"(0018,2043)":{tag:"(0018,2043)",vr:"FL",name:"LocalizingCursorPosition",vm:"2",version:"DICOM"},"(0018,2044)":{tag:"(0018,2044)",vr:"FL",name:"CalculatedTargetPosition",vm:"3",version:"DICOM"},"(0018,2045)":{tag:"(0018,2045)",vr:"SH",name:"TargetLabel",vm:"1",version:"DICOM"},"(0018,2046)":{tag:"(0018,2046)",vr:"FL",name:"DisplayedZValue",vm:"1",version:"DICOM"},"(0018,3100)":{tag:"(0018,3100)",vr:"CS",name:"IVUSAcquisition",vm:"1",version:"DICOM"},"(0018,3101)":{tag:"(0018,3101)",vr:"DS",name:"IVUSPullbackRate",vm:"1",version:"DICOM"},"(0018,3102)":{tag:"(0018,3102)",vr:"DS",name:"IVUSGatedRate",vm:"1",version:"DICOM"},"(0018,3103)":{tag:"(0018,3103)",vr:"IS",name:"IVUSPullbackStartFrameNumber",vm:"1",version:"DICOM"},"(0018,3104)":{tag:"(0018,3104)",vr:"IS",name:"IVUSPullbackStopFrameNumber",vm:"1",version:"DICOM"},"(0018,3105)":{tag:"(0018,3105)",vr:"IS",name:"LesionNumber",vm:"1-n",version:"DICOM"},"(0018,5000)":{tag:"(0018,5000)",vr:"SH",name:"OutputPower",vm:"1-n",version:"DICOM"},"(0018,5010)":{tag:"(0018,5010)",vr:"LO",name:"TransducerData",vm:"1-n",version:"DICOM"},"(0018,5011)":{tag:"(0018,5011)",vr:"SQ",name:"TransducerIdentificationSequence",vm:"1",version:"DICOM"},"(0018,5012)":{tag:"(0018,5012)",vr:"DS",name:"FocusDepth",vm:"1",version:"DICOM"},"(0018,5020)":{tag:"(0018,5020)",vr:"LO",name:"ProcessingFunction",vm:"1",version:"DICOM"},"(0018,5022)":{tag:"(0018,5022)",vr:"DS",name:"MechanicalIndex",vm:"1",version:"DICOM"},"(0018,5024)":{tag:"(0018,5024)",vr:"DS",name:"BoneThermalIndex",vm:"1",version:"DICOM"},"(0018,5026)":{tag:"(0018,5026)",vr:"DS",name:"CranialThermalIndex",vm:"1",version:"DICOM"},"(0018,5027)":{tag:"(0018,5027)",vr:"DS",name:"SoftTissueThermalIndex",vm:"1",version:"DICOM"},"(0018,5028)":{tag:"(0018,5028)",vr:"DS",name:"SoftTissueFocusThermalIndex",vm:"1",version:"DICOM"},"(0018,5029)":{tag:"(0018,5029)",vr:"DS",name:"SoftTissueSurfaceThermalIndex",vm:"1",version:"DICOM"},"(0018,5050)":{tag:"(0018,5050)",vr:"IS",name:"DepthOfScanField",vm:"1",version:"DICOM"},"(0018,5100)":{tag:"(0018,5100)",vr:"CS",name:"PatientPosition",vm:"1",version:"DICOM"},"(0018,5101)":{tag:"(0018,5101)",vr:"CS",name:"ViewPosition",vm:"1",version:"DICOM"},"(0018,5104)":{tag:"(0018,5104)",vr:"SQ",name:"ProjectionEponymousNameCodeSequence",vm:"1",version:"DICOM"},"(0018,6000)":{tag:"(0018,6000)",vr:"DS",name:"Sensitivity",vm:"1",version:"DICOM"},"(0018,6011)":{tag:"(0018,6011)",vr:"SQ",name:"SequenceOfUltrasoundRegions",vm:"1",version:"DICOM"},"(0018,6012)":{tag:"(0018,6012)",vr:"US",name:"RegionSpatialFormat",vm:"1",version:"DICOM"},"(0018,6014)":{tag:"(0018,6014)",vr:"US",name:"RegionDataType",vm:"1",version:"DICOM"},"(0018,6016)":{tag:"(0018,6016)",vr:"UL",name:"RegionFlags",vm:"1",version:"DICOM"},"(0018,6018)":{tag:"(0018,6018)",vr:"UL",name:"RegionLocationMinX0",vm:"1",version:"DICOM"},"(0018,601A)":{tag:"(0018,601A)",vr:"UL",name:"RegionLocationMinY0",vm:"1",version:"DICOM"},"(0018,601C)":{tag:"(0018,601C)",vr:"UL",name:"RegionLocationMaxX1",vm:"1",version:"DICOM"},"(0018,601E)":{tag:"(0018,601E)",vr:"UL",name:"RegionLocationMaxY1",vm:"1",version:"DICOM"},"(0018,6020)":{tag:"(0018,6020)",vr:"SL",name:"ReferencePixelX0",vm:"1",version:"DICOM"},"(0018,6022)":{tag:"(0018,6022)",vr:"SL",name:"ReferencePixelY0",vm:"1",version:"DICOM"},"(0018,6024)":{tag:"(0018,6024)",vr:"US",name:"PhysicalUnitsXDirection",vm:"1",version:"DICOM"},"(0018,6026)":{tag:"(0018,6026)",vr:"US",name:"PhysicalUnitsYDirection",vm:"1",version:"DICOM"},"(0018,6028)":{tag:"(0018,6028)",vr:"FD",name:"ReferencePixelPhysicalValueX",vm:"1",version:"DICOM"},"(0018,602A)":{tag:"(0018,602A)",vr:"FD",name:"ReferencePixelPhysicalValueY",vm:"1",version:"DICOM"},"(0018,602C)":{tag:"(0018,602C)",vr:"FD",name:"PhysicalDeltaX",vm:"1",version:"DICOM"},"(0018,602E)":{tag:"(0018,602E)",vr:"FD",name:"PhysicalDeltaY",vm:"1",version:"DICOM"},"(0018,6030)":{tag:"(0018,6030)",vr:"UL",name:"TransducerFrequency",vm:"1",version:"DICOM"},"(0018,6031)":{tag:"(0018,6031)",vr:"CS",name:"TransducerType",vm:"1",version:"DICOM"},"(0018,6032)":{tag:"(0018,6032)",vr:"UL",name:"PulseRepetitionFrequency",vm:"1",version:"DICOM"},"(0018,6034)":{tag:"(0018,6034)",vr:"FD",name:"DopplerCorrectionAngle",vm:"1",version:"DICOM"},"(0018,6036)":{tag:"(0018,6036)",vr:"FD",name:"SteeringAngle",vm:"1",version:"DICOM"},"(0018,6039)":{tag:"(0018,6039)",vr:"SL",name:"DopplerSampleVolumeXPosition",vm:"1",version:"DICOM"},"(0018,603B)":{tag:"(0018,603B)",vr:"SL",name:"DopplerSampleVolumeYPosition",vm:"1",version:"DICOM"},"(0018,603D)":{tag:"(0018,603D)",vr:"SL",name:"TMLinePositionX0",vm:"1",version:"DICOM"},"(0018,603F)":{tag:"(0018,603F)",vr:"SL",name:"TMLinePositionY0",vm:"1",version:"DICOM"},"(0018,6041)":{tag:"(0018,6041)",vr:"SL",name:"TMLinePositionX1",vm:"1",version:"DICOM"},"(0018,6043)":{tag:"(0018,6043)",vr:"SL",name:"TMLinePositionY1",vm:"1",version:"DICOM"},"(0018,6044)":{tag:"(0018,6044)",vr:"US",name:"PixelComponentOrganization",vm:"1",version:"DICOM"},"(0018,6046)":{tag:"(0018,6046)",vr:"UL",name:"PixelComponentMask",vm:"1",version:"DICOM"},"(0018,6048)":{tag:"(0018,6048)",vr:"UL",name:"PixelComponentRangeStart",vm:"1",version:"DICOM"},"(0018,604A)":{tag:"(0018,604A)",vr:"UL",name:"PixelComponentRangeStop",vm:"1",version:"DICOM"},"(0018,604C)":{tag:"(0018,604C)",vr:"US",name:"PixelComponentPhysicalUnits",vm:"1",version:"DICOM"},"(0018,604E)":{tag:"(0018,604E)",vr:"US",name:"PixelComponentDataType",vm:"1",version:"DICOM"},"(0018,6050)":{tag:"(0018,6050)",vr:"UL",name:"NumberOfTableBreakPoints",vm:"1",version:"DICOM"},"(0018,6052)":{tag:"(0018,6052)",vr:"UL",name:"TableOfXBreakPoints",vm:"1-n",version:"DICOM"},"(0018,6054)":{tag:"(0018,6054)",vr:"FD",name:"TableOfYBreakPoints",vm:"1-n",version:"DICOM"},"(0018,6056)":{tag:"(0018,6056)",vr:"UL",name:"NumberOfTableEntries",vm:"1",version:"DICOM"},"(0018,6058)":{tag:"(0018,6058)",vr:"UL",name:"TableOfPixelValues",vm:"1-n",version:"DICOM"},"(0018,605A)":{tag:"(0018,605A)",vr:"FL",name:"TableOfParameterValues",vm:"1-n",version:"DICOM"},"(0018,6060)":{tag:"(0018,6060)",vr:"FL",name:"RWaveTimeVector",vm:"1-n",version:"DICOM"},"(0018,6070)":{tag:"(0018,6070)",vr:"US",name:"ActiveImageAreaOverlayGroup",vm:"1",version:"DICOM"},"(0018,7000)":{tag:"(0018,7000)",vr:"CS",name:"DetectorConditionsNominalFlag",vm:"1",version:"DICOM"},"(0018,7001)":{tag:"(0018,7001)",vr:"DS",name:"DetectorTemperature",vm:"1",version:"DICOM"},"(0018,7004)":{tag:"(0018,7004)",vr:"CS",name:"DetectorType",vm:"1",version:"DICOM"},"(0018,7005)":{tag:"(0018,7005)",vr:"CS",name:"DetectorConfiguration",vm:"1",version:"DICOM"},"(0018,7006)":{tag:"(0018,7006)",vr:"LT",name:"DetectorDescription",vm:"1",version:"DICOM"},"(0018,7008)":{tag:"(0018,7008)",vr:"LT",name:"DetectorMode",vm:"1",version:"DICOM"},"(0018,700A)":{tag:"(0018,700A)",vr:"SH",name:"DetectorID",vm:"1",version:"DICOM"},"(0018,700C)":{tag:"(0018,700C)",vr:"DA",name:"DateOfLastDetectorCalibration",vm:"1",version:"DICOM"},"(0018,700E)":{tag:"(0018,700E)",vr:"TM",name:"TimeOfLastDetectorCalibration",vm:"1",version:"DICOM"},"(0018,7010)":{tag:"(0018,7010)",vr:"IS",name:"ExposuresOnDetectorSinceLastCalibration",vm:"1",version:"DICOM"},"(0018,7011)":{tag:"(0018,7011)",vr:"IS",name:"ExposuresOnDetectorSinceManufactured",vm:"1",version:"DICOM"},"(0018,7012)":{tag:"(0018,7012)",vr:"DS",name:"DetectorTimeSinceLastExposure",vm:"1",version:"DICOM"},"(0018,7014)":{tag:"(0018,7014)",vr:"DS",name:"DetectorActiveTime",vm:"1",version:"DICOM"},"(0018,7016)":{tag:"(0018,7016)",vr:"DS",name:"DetectorActivationOffsetFromExposure",vm:"1",version:"DICOM"},"(0018,701A)":{tag:"(0018,701A)",vr:"DS",name:"DetectorBinning",vm:"2",version:"DICOM"},"(0018,7020)":{tag:"(0018,7020)",vr:"DS",name:"DetectorElementPhysicalSize",vm:"2",version:"DICOM"},"(0018,7022)":{tag:"(0018,7022)",vr:"DS",name:"DetectorElementSpacing",vm:"2",version:"DICOM"},"(0018,7024)":{tag:"(0018,7024)",vr:"CS",name:"DetectorActiveShape",vm:"1",version:"DICOM"},"(0018,7026)":{tag:"(0018,7026)",vr:"DS",name:"DetectorActiveDimensions",vm:"1-2",version:"DICOM"},"(0018,7028)":{tag:"(0018,7028)",vr:"DS",name:"DetectorActiveOrigin",vm:"2",version:"DICOM"},"(0018,702A)":{tag:"(0018,702A)",vr:"LO",name:"DetectorManufacturerName",vm:"1",version:"DICOM"},"(0018,702B)":{tag:"(0018,702B)",vr:"LO",name:"DetectorManufacturerModelName",vm:"1",version:"DICOM"},"(0018,7030)":{tag:"(0018,7030)",vr:"DS",name:"FieldOfViewOrigin",vm:"2",version:"DICOM"},"(0018,7032)":{tag:"(0018,7032)",vr:"DS",name:"FieldOfViewRotation",vm:"1",version:"DICOM"},"(0018,7034)":{tag:"(0018,7034)",vr:"CS",name:"FieldOfViewHorizontalFlip",vm:"1",version:"DICOM"},"(0018,7036)":{tag:"(0018,7036)",vr:"FL",name:"PixelDataAreaOriginRelativeToFOV",vm:"2",version:"DICOM"},"(0018,7038)":{tag:"(0018,7038)",vr:"FL",name:"PixelDataAreaRotationAngleRelativeToFOV",vm:"1",version:"DICOM"},"(0018,7040)":{tag:"(0018,7040)",vr:"LT",name:"GridAbsorbingMaterial",vm:"1",version:"DICOM"},"(0018,7041)":{tag:"(0018,7041)",vr:"LT",name:"GridSpacingMaterial",vm:"1",version:"DICOM"},"(0018,7042)":{tag:"(0018,7042)",vr:"DS",name:"GridThickness",vm:"1",version:"DICOM"},"(0018,7044)":{tag:"(0018,7044)",vr:"DS",name:"GridPitch",vm:"1",version:"DICOM"},"(0018,7046)":{tag:"(0018,7046)",vr:"IS",name:"GridAspectRatio",vm:"2",version:"DICOM"},"(0018,7048)":{tag:"(0018,7048)",vr:"DS",name:"GridPeriod",vm:"1",version:"DICOM"},"(0018,704C)":{tag:"(0018,704C)",vr:"DS",name:"GridFocalDistance",vm:"1",version:"DICOM"},"(0018,7050)":{tag:"(0018,7050)",vr:"CS",name:"FilterMaterial",vm:"1-n",version:"DICOM"},"(0018,7052)":{tag:"(0018,7052)",vr:"DS",name:"FilterThicknessMinimum",vm:"1-n",version:"DICOM"},"(0018,7054)":{tag:"(0018,7054)",vr:"DS",name:"FilterThicknessMaximum",vm:"1-n",version:"DICOM"},"(0018,7056)":{tag:"(0018,7056)",vr:"FL",name:"FilterBeamPathLengthMinimum",vm:"1-n",version:"DICOM"},"(0018,7058)":{tag:"(0018,7058)",vr:"FL",name:"FilterBeamPathLengthMaximum",vm:"1-n",version:"DICOM"},"(0018,7060)":{tag:"(0018,7060)",vr:"CS",name:"ExposureControlMode",vm:"1",version:"DICOM"},"(0018,7062)":{tag:"(0018,7062)",vr:"LT",name:"ExposureControlModeDescription",vm:"1",version:"DICOM"},"(0018,7064)":{tag:"(0018,7064)",vr:"CS",name:"ExposureStatus",vm:"1",version:"DICOM"},"(0018,7065)":{tag:"(0018,7065)",vr:"DS",name:"PhototimerSetting",vm:"1",version:"DICOM"},"(0018,8150)":{tag:"(0018,8150)",vr:"DS",name:"ExposureTimeInuS",vm:"1",version:"DICOM"},"(0018,8151)":{tag:"(0018,8151)",vr:"DS",name:"XRayTubeCurrentInuA",vm:"1",version:"DICOM"},"(0018,9004)":{tag:"(0018,9004)",vr:"CS",name:"ContentQualification",vm:"1",version:"DICOM"},"(0018,9005)":{tag:"(0018,9005)",vr:"SH",name:"PulseSequenceName",vm:"1",version:"DICOM"},"(0018,9006)":{tag:"(0018,9006)",vr:"SQ",name:"MRImagingModifierSequence",vm:"1",version:"DICOM"},"(0018,9008)":{tag:"(0018,9008)",vr:"CS",name:"EchoPulseSequence",vm:"1",version:"DICOM"},"(0018,9009)":{tag:"(0018,9009)",vr:"CS",name:"InversionRecovery",vm:"1",version:"DICOM"},"(0018,9010)":{tag:"(0018,9010)",vr:"CS",name:"FlowCompensation",vm:"1",version:"DICOM"},"(0018,9011)":{tag:"(0018,9011)",vr:"CS",name:"MultipleSpinEcho",vm:"1",version:"DICOM"},"(0018,9012)":{tag:"(0018,9012)",vr:"CS",name:"MultiPlanarExcitation",vm:"1",version:"DICOM"},"(0018,9014)":{tag:"(0018,9014)",vr:"CS",name:"PhaseContrast",vm:"1",version:"DICOM"},"(0018,9015)":{tag:"(0018,9015)",vr:"CS",name:"TimeOfFlightContrast",vm:"1",version:"DICOM"},"(0018,9016)":{tag:"(0018,9016)",vr:"CS",name:"Spoiling",vm:"1",version:"DICOM"},"(0018,9017)":{tag:"(0018,9017)",vr:"CS",name:"SteadyStatePulseSequence",vm:"1",version:"DICOM"},"(0018,9018)":{tag:"(0018,9018)",vr:"CS",name:"EchoPlanarPulseSequence",vm:"1",version:"DICOM"},"(0018,9019)":{tag:"(0018,9019)",vr:"FD",name:"TagAngleFirstAxis",vm:"1",version:"DICOM"},"(0018,9020)":{tag:"(0018,9020)",vr:"CS",name:"MagnetizationTransfer",vm:"1",version:"DICOM"},"(0018,9021)":{tag:"(0018,9021)",vr:"CS",name:"T2Preparation",vm:"1",version:"DICOM"},"(0018,9022)":{tag:"(0018,9022)",vr:"CS",name:"BloodSignalNulling",vm:"1",version:"DICOM"},"(0018,9024)":{tag:"(0018,9024)",vr:"CS",name:"SaturationRecovery",vm:"1",version:"DICOM"},"(0018,9025)":{tag:"(0018,9025)",vr:"CS",name:"SpectrallySelectedSuppression",vm:"1",version:"DICOM"},"(0018,9026)":{tag:"(0018,9026)",vr:"CS",name:"SpectrallySelectedExcitation",vm:"1",version:"DICOM"},"(0018,9027)":{tag:"(0018,9027)",vr:"CS",name:"SpatialPresaturation",vm:"1",version:"DICOM"},"(0018,9028)":{tag:"(0018,9028)",vr:"CS",name:"Tagging",vm:"1",version:"DICOM"},"(0018,9029)":{tag:"(0018,9029)",vr:"CS",name:"OversamplingPhase",vm:"1",version:"DICOM"},"(0018,9030)":{tag:"(0018,9030)",vr:"FD",name:"TagSpacingFirstDimension",vm:"1",version:"DICOM"},"(0018,9032)":{tag:"(0018,9032)",vr:"CS",name:"GeometryOfKSpaceTraversal",vm:"1",version:"DICOM"},"(0018,9033)":{tag:"(0018,9033)",vr:"CS",name:"SegmentedKSpaceTraversal",vm:"1",version:"DICOM"},"(0018,9034)":{tag:"(0018,9034)",vr:"CS",name:"RectilinearPhaseEncodeReordering",vm:"1",version:"DICOM"},"(0018,9035)":{tag:"(0018,9035)",vr:"FD",name:"TagThickness",vm:"1",version:"DICOM"},"(0018,9036)":{tag:"(0018,9036)",vr:"CS",name:"PartialFourierDirection",vm:"1",version:"DICOM"},"(0018,9037)":{tag:"(0018,9037)",vr:"CS",name:"CardiacSynchronizationTechnique",vm:"1",version:"DICOM"},"(0018,9041)":{tag:"(0018,9041)",vr:"LO",name:"ReceiveCoilManufacturerName",vm:"1",version:"DICOM"},"(0018,9042)":{tag:"(0018,9042)",vr:"SQ",name:"MRReceiveCoilSequence",vm:"1",version:"DICOM"},"(0018,9043)":{tag:"(0018,9043)",vr:"CS",name:"ReceiveCoilType",vm:"1",version:"DICOM"},"(0018,9044)":{tag:"(0018,9044)",vr:"CS",name:"QuadratureReceiveCoil",vm:"1",version:"DICOM"},"(0018,9045)":{tag:"(0018,9045)",vr:"SQ",name:"MultiCoilDefinitionSequence",vm:"1",version:"DICOM"},"(0018,9046)":{tag:"(0018,9046)",vr:"LO",name:"MultiCoilConfiguration",vm:"1",version:"DICOM"},"(0018,9047)":{tag:"(0018,9047)",vr:"SH",name:"MultiCoilElementName",vm:"1",version:"DICOM"},"(0018,9048)":{tag:"(0018,9048)",vr:"CS",name:"MultiCoilElementUsed",vm:"1",version:"DICOM"},"(0018,9049)":{tag:"(0018,9049)",vr:"SQ",name:"MRTransmitCoilSequence",vm:"1",version:"DICOM"},"(0018,9050)":{tag:"(0018,9050)",vr:"LO",name:"TransmitCoilManufacturerName",vm:"1",version:"DICOM"},"(0018,9051)":{tag:"(0018,9051)",vr:"CS",name:"TransmitCoilType",vm:"1",version:"DICOM"},"(0018,9052)":{tag:"(0018,9052)",vr:"FD",name:"SpectralWidth",vm:"1-2",version:"DICOM"},"(0018,9053)":{tag:"(0018,9053)",vr:"FD",name:"ChemicalShiftReference",vm:"1-2",version:"DICOM"},"(0018,9054)":{tag:"(0018,9054)",vr:"CS",name:"VolumeLocalizationTechnique",vm:"1",version:"DICOM"},"(0018,9058)":{tag:"(0018,9058)",vr:"US",name:"MRAcquisitionFrequencyEncodingSteps",vm:"1",version:"DICOM"},"(0018,9059)":{tag:"(0018,9059)",vr:"CS",name:"Decoupling",vm:"1",version:"DICOM"},"(0018,9060)":{tag:"(0018,9060)",vr:"CS",name:"DecoupledNucleus",vm:"1-2",version:"DICOM"},"(0018,9061)":{tag:"(0018,9061)",vr:"FD",name:"DecouplingFrequency",vm:"1-2",version:"DICOM"},"(0018,9062)":{tag:"(0018,9062)",vr:"CS",name:"DecouplingMethod",vm:"1",version:"DICOM"},"(0018,9063)":{tag:"(0018,9063)",vr:"FD",name:"DecouplingChemicalShiftReference",vm:"1-2",version:"DICOM"},"(0018,9064)":{tag:"(0018,9064)",vr:"CS",name:"KSpaceFiltering",vm:"1",version:"DICOM"},"(0018,9065)":{tag:"(0018,9065)",vr:"CS",name:"TimeDomainFiltering",vm:"1-2",version:"DICOM"},"(0018,9066)":{tag:"(0018,9066)",vr:"US",name:"NumberOfZeroFills",vm:"1-2",version:"DICOM"},"(0018,9067)":{tag:"(0018,9067)",vr:"CS",name:"BaselineCorrection",vm:"1",version:"DICOM"},"(0018,9069)":{tag:"(0018,9069)",vr:"FD",name:"ParallelReductionFactorInPlane",vm:"1",version:"DICOM"},"(0018,9070)":{tag:"(0018,9070)",vr:"FD",name:"CardiacRRIntervalSpecified",vm:"1",version:"DICOM"},"(0018,9073)":{tag:"(0018,9073)",vr:"FD",name:"AcquisitionDuration",vm:"1",version:"DICOM"},"(0018,9074)":{tag:"(0018,9074)",vr:"DT",name:"FrameAcquisitionDateTime",vm:"1",version:"DICOM"},"(0018,9075)":{tag:"(0018,9075)",vr:"CS",name:"DiffusionDirectionality",vm:"1",version:"DICOM"},"(0018,9076)":{tag:"(0018,9076)",vr:"SQ",name:"DiffusionGradientDirectionSequence",vm:"1",version:"DICOM"},"(0018,9077)":{tag:"(0018,9077)",vr:"CS",name:"ParallelAcquisition",vm:"1",version:"DICOM"},"(0018,9078)":{tag:"(0018,9078)",vr:"CS",name:"ParallelAcquisitionTechnique",vm:"1",version:"DICOM"},"(0018,9079)":{tag:"(0018,9079)",vr:"FD",name:"InversionTimes",vm:"1-n",version:"DICOM"},"(0018,9080)":{tag:"(0018,9080)",vr:"ST",name:"MetaboliteMapDescription",vm:"1",version:"DICOM"},"(0018,9081)":{tag:"(0018,9081)",vr:"CS",name:"PartialFourier",vm:"1",version:"DICOM"},"(0018,9082)":{tag:"(0018,9082)",vr:"FD",name:"EffectiveEchoTime",vm:"1",version:"DICOM"},"(0018,9083)":{tag:"(0018,9083)",vr:"SQ",name:"MetaboliteMapCodeSequence",vm:"1",version:"DICOM"},"(0018,9084)":{tag:"(0018,9084)",vr:"SQ",name:"ChemicalShiftSequence",vm:"1",version:"DICOM"},"(0018,9085)":{tag:"(0018,9085)",vr:"CS",name:"CardiacSignalSource",vm:"1",version:"DICOM"},"(0018,9087)":{tag:"(0018,9087)",vr:"FD",name:"DiffusionBValue",vm:"1",version:"DICOM"},"(0018,9089)":{tag:"(0018,9089)",vr:"FD",name:"DiffusionGradientOrientation",vm:"3",version:"DICOM"},"(0018,9090)":{tag:"(0018,9090)",vr:"FD",name:"VelocityEncodingDirection",vm:"3",version:"DICOM"},"(0018,9091)":{tag:"(0018,9091)",vr:"FD",name:"VelocityEncodingMinimumValue",vm:"1",version:"DICOM"},"(0018,9092)":{tag:"(0018,9092)",vr:"SQ",name:"VelocityEncodingAcquisitionSequence",vm:"1",version:"DICOM"},"(0018,9093)":{tag:"(0018,9093)",vr:"US",name:"NumberOfKSpaceTrajectories",vm:"1",version:"DICOM"},"(0018,9094)":{tag:"(0018,9094)",vr:"CS",name:"CoverageOfKSpace",vm:"1",version:"DICOM"},"(0018,9095)":{tag:"(0018,9095)",vr:"UL",name:"SpectroscopyAcquisitionPhaseRows",vm:"1",version:"DICOM"},"(0018,9098)":{tag:"(0018,9098)",vr:"FD",name:"TransmitterFrequency",vm:"1-2",version:"DICOM"},"(0018,9100)":{tag:"(0018,9100)",vr:"CS",name:"ResonantNucleus",vm:"1-2",version:"DICOM"},"(0018,9101)":{tag:"(0018,9101)",vr:"CS",name:"FrequencyCorrection",vm:"1",version:"DICOM"},"(0018,9103)":{tag:"(0018,9103)",vr:"SQ",name:"MRSpectroscopyFOVGeometrySequence",vm:"1",version:"DICOM"},"(0018,9104)":{tag:"(0018,9104)",vr:"FD",name:"SlabThickness",vm:"1",version:"DICOM"},"(0018,9105)":{tag:"(0018,9105)",vr:"FD",name:"SlabOrientation",vm:"3",version:"DICOM"},"(0018,9106)":{tag:"(0018,9106)",vr:"FD",name:"MidSlabPosition",vm:"3",version:"DICOM"},"(0018,9107)":{tag:"(0018,9107)",vr:"SQ",name:"MRSpatialSaturationSequence",vm:"1",version:"DICOM"},"(0018,9112)":{tag:"(0018,9112)",vr:"SQ",name:"MRTimingAndRelatedParametersSequence",vm:"1",version:"DICOM"},"(0018,9114)":{tag:"(0018,9114)",vr:"SQ",name:"MREchoSequence",vm:"1",version:"DICOM"},"(0018,9115)":{tag:"(0018,9115)",vr:"SQ",name:"MRModifierSequence",vm:"1",version:"DICOM"},"(0018,9117)":{tag:"(0018,9117)",vr:"SQ",name:"MRDiffusionSequence",vm:"1",version:"DICOM"},"(0018,9118)":{tag:"(0018,9118)",vr:"SQ",name:"CardiacSynchronizationSequence",vm:"1",version:"DICOM"},"(0018,9119)":{tag:"(0018,9119)",vr:"SQ",name:"MRAveragesSequence",vm:"1",version:"DICOM"},"(0018,9125)":{tag:"(0018,9125)",vr:"SQ",name:"MRFOVGeometrySequence",vm:"1",version:"DICOM"},"(0018,9126)":{tag:"(0018,9126)",vr:"SQ",name:"VolumeLocalizationSequence",vm:"1",version:"DICOM"},"(0018,9127)":{tag:"(0018,9127)",vr:"UL",name:"SpectroscopyAcquisitionDataColumns",vm:"1",version:"DICOM"},"(0018,9147)":{tag:"(0018,9147)",vr:"CS",name:"DiffusionAnisotropyType",vm:"1",version:"DICOM"},"(0018,9151)":{tag:"(0018,9151)",vr:"DT",name:"FrameReferenceDateTime",vm:"1",version:"DICOM"},"(0018,9152)":{tag:"(0018,9152)",vr:"SQ",name:"MRMetaboliteMapSequence",vm:"1",version:"DICOM"},"(0018,9155)":{tag:"(0018,9155)",vr:"FD",name:"ParallelReductionFactorOutOfPlane",vm:"1",version:"DICOM"},"(0018,9159)":{tag:"(0018,9159)",vr:"UL",name:"SpectroscopyAcquisitionOutOfPlanePhaseSteps",vm:"1",version:"DICOM"},"(0018,9168)":{tag:"(0018,9168)",vr:"FD",name:"ParallelReductionFactorSecondInPlane",vm:"1",version:"DICOM"},"(0018,9169)":{tag:"(0018,9169)",vr:"CS",name:"CardiacBeatRejectionTechnique",vm:"1",version:"DICOM"},"(0018,9170)":{tag:"(0018,9170)",vr:"CS",name:"RespiratoryMotionCompensationTechnique",vm:"1",version:"DICOM"},"(0018,9171)":{tag:"(0018,9171)",vr:"CS",name:"RespiratorySignalSource",vm:"1",version:"DICOM"},"(0018,9172)":{tag:"(0018,9172)",vr:"CS",name:"BulkMotionCompensationTechnique",vm:"1",version:"DICOM"},"(0018,9173)":{tag:"(0018,9173)",vr:"CS",name:"BulkMotionSignalSource",vm:"1",version:"DICOM"},"(0018,9174)":{tag:"(0018,9174)",vr:"CS",name:"ApplicableSafetyStandardAgency",vm:"1",version:"DICOM"},"(0018,9175)":{tag:"(0018,9175)",vr:"LO",name:"ApplicableSafetyStandardDescription",vm:"1",version:"DICOM"},"(0018,9176)":{tag:"(0018,9176)",vr:"SQ",name:"OperatingModeSequence",vm:"1",version:"DICOM"},"(0018,9177)":{tag:"(0018,9177)",vr:"CS",name:"OperatingModeType",vm:"1",version:"DICOM"},"(0018,9178)":{tag:"(0018,9178)",vr:"CS",name:"OperatingMode",vm:"1",version:"DICOM"},"(0018,9179)":{tag:"(0018,9179)",vr:"CS",name:"SpecificAbsorptionRateDefinition",vm:"1",version:"DICOM"},"(0018,9180)":{tag:"(0018,9180)",vr:"CS",name:"GradientOutputType",vm:"1",version:"DICOM"},"(0018,9181)":{tag:"(0018,9181)",vr:"FD",name:"SpecificAbsorptionRateValue",vm:"1",version:"DICOM"},"(0018,9182)":{tag:"(0018,9182)",vr:"FD",name:"GradientOutput",vm:"1",version:"DICOM"},"(0018,9183)":{tag:"(0018,9183)",vr:"CS",name:"FlowCompensationDirection",vm:"1",version:"DICOM"},"(0018,9184)":{tag:"(0018,9184)",vr:"FD",name:"TaggingDelay",vm:"1",version:"DICOM"},"(0018,9185)":{tag:"(0018,9185)",vr:"ST",name:"RespiratoryMotionCompensationTechniqueDescription",vm:"1",version:"DICOM"},"(0018,9186)":{tag:"(0018,9186)",vr:"SH",name:"RespiratorySignalSourceID",vm:"1",version:"DICOM"},"(0018,9197)":{tag:"(0018,9197)",vr:"SQ",name:"MRVelocityEncodingSequence",vm:"1",version:"DICOM"},"(0018,9198)":{tag:"(0018,9198)",vr:"CS",name:"FirstOrderPhaseCorrection",vm:"1",version:"DICOM"},"(0018,9199)":{tag:"(0018,9199)",vr:"CS",name:"WaterReferencedPhaseCorrection",vm:"1",version:"DICOM"},"(0018,9200)":{tag:"(0018,9200)",vr:"CS",name:"MRSpectroscopyAcquisitionType",vm:"1",version:"DICOM"},"(0018,9214)":{tag:"(0018,9214)",vr:"CS",name:"RespiratoryCyclePosition",vm:"1",version:"DICOM"},"(0018,9217)":{tag:"(0018,9217)",vr:"FD",name:"VelocityEncodingMaximumValue",vm:"1",version:"DICOM"},"(0018,9218)":{tag:"(0018,9218)",vr:"FD",name:"TagSpacingSecondDimension",vm:"1",version:"DICOM"},"(0018,9219)":{tag:"(0018,9219)",vr:"SS",name:"TagAngleSecondAxis",vm:"1",version:"DICOM"},"(0018,9220)":{tag:"(0018,9220)",vr:"FD",name:"FrameAcquisitionDuration",vm:"1",version:"DICOM"},"(0018,9226)":{tag:"(0018,9226)",vr:"SQ",name:"MRImageFrameTypeSequence",vm:"1",version:"DICOM"},"(0018,9227)":{tag:"(0018,9227)",vr:"SQ",name:"MRSpectroscopyFrameTypeSequence",vm:"1",version:"DICOM"},"(0018,9231)":{tag:"(0018,9231)",vr:"US",name:"MRAcquisitionPhaseEncodingStepsInPlane",vm:"1",version:"DICOM"},"(0018,9232)":{tag:"(0018,9232)",vr:"US",name:"MRAcquisitionPhaseEncodingStepsOutOfPlane",vm:"1",version:"DICOM"},"(0018,9234)":{tag:"(0018,9234)",vr:"UL",name:"SpectroscopyAcquisitionPhaseColumns",vm:"1",version:"DICOM"},"(0018,9236)":{tag:"(0018,9236)",vr:"CS",name:"CardiacCyclePosition",vm:"1",version:"DICOM"},"(0018,9239)":{tag:"(0018,9239)",vr:"SQ",name:"SpecificAbsorptionRateSequence",vm:"1",version:"DICOM"},"(0018,9240)":{tag:"(0018,9240)",vr:"US",name:"RFEchoTrainLength",vm:"1",version:"DICOM"},"(0018,9241)":{tag:"(0018,9241)",vr:"US",name:"GradientEchoTrainLength",vm:"1",version:"DICOM"},"(0018,9250)":{tag:"(0018,9250)",vr:"CS",name:"ArterialSpinLabelingContrast",vm:"1",version:"DICOM"},"(0018,9251)":{tag:"(0018,9251)",vr:"SQ",name:"MRArterialSpinLabelingSequence",vm:"1",version:"DICOM"},"(0018,9252)":{tag:"(0018,9252)",vr:"LO",name:"ASLTechniqueDescription",vm:"1",version:"DICOM"},"(0018,9253)":{tag:"(0018,9253)",vr:"US",name:"ASLSlabNumber",vm:"1",version:"DICOM"},"(0018,9254)":{tag:"(0018,9254)",vr:"FD",name:"ASLSlabThickness",vm:"1",version:"DICOM"},"(0018,9255)":{tag:"(0018,9255)",vr:"FD",name:"ASLSlabOrientation",vm:"3",version:"DICOM"},"(0018,9256)":{tag:"(0018,9256)",vr:"FD",name:"ASLMidSlabPosition",vm:"3",version:"DICOM"},"(0018,9257)":{tag:"(0018,9257)",vr:"CS",name:"ASLContext",vm:"1",version:"DICOM"},"(0018,9258)":{tag:"(0018,9258)",vr:"UL",name:"ASLPulseTrainDuration",vm:"1",version:"DICOM"},"(0018,9259)":{tag:"(0018,9259)",vr:"CS",name:"ASLCrusherFlag",vm:"1",version:"DICOM"},"(0018,925A)":{tag:"(0018,925A)",vr:"FD",name:"ASLCrusherFlowLimit",vm:"1",version:"DICOM"},"(0018,925B)":{tag:"(0018,925B)",vr:"LO",name:"ASLCrusherDescription",vm:"1",version:"DICOM"},"(0018,925C)":{tag:"(0018,925C)",vr:"CS",name:"ASLBolusCutoffFlag",vm:"1",version:"DICOM"},"(0018,925D)":{tag:"(0018,925D)",vr:"SQ",name:"ASLBolusCutoffTimingSequence",vm:"1",version:"DICOM"},"(0018,925E)":{tag:"(0018,925E)",vr:"LO",name:"ASLBolusCutoffTechnique",vm:"1",version:"DICOM"},"(0018,925F)":{tag:"(0018,925F)",vr:"UL",name:"ASLBolusCutoffDelayTime",vm:"1",version:"DICOM"},"(0018,9260)":{tag:"(0018,9260)",vr:"SQ",name:"ASLSlabSequence",vm:"1",version:"DICOM"},"(0018,9295)":{tag:"(0018,9295)",vr:"FD",name:"ChemicalShiftMinimumIntegrationLimitInppm",vm:"1",version:"DICOM"},"(0018,9296)":{tag:"(0018,9296)",vr:"FD",name:"ChemicalShiftMaximumIntegrationLimitInppm",vm:"1",version:"DICOM"},"(0018,9297)":{tag:"(0018,9297)",vr:"CS",name:"WaterReferenceAcquisition",vm:"1",version:"DICOM"},"(0018,9298)":{tag:"(0018,9298)",vr:"IS",name:"EchoPeakPosition",vm:"1",version:"DICOM"},"(0018,9301)":{tag:"(0018,9301)",vr:"SQ",name:"CTAcquisitionTypeSequence",vm:"1",version:"DICOM"},"(0018,9302)":{tag:"(0018,9302)",vr:"CS",name:"AcquisitionType",vm:"1",version:"DICOM"},"(0018,9303)":{tag:"(0018,9303)",vr:"FD",name:"TubeAngle",vm:"1",version:"DICOM"},"(0018,9304)":{tag:"(0018,9304)",vr:"SQ",name:"CTAcquisitionDetailsSequence",vm:"1",version:"DICOM"},"(0018,9305)":{tag:"(0018,9305)",vr:"FD",name:"RevolutionTime",vm:"1",version:"DICOM"},"(0018,9306)":{tag:"(0018,9306)",vr:"FD",name:"SingleCollimationWidth",vm:"1",version:"DICOM"},"(0018,9307)":{tag:"(0018,9307)",vr:"FD",name:"TotalCollimationWidth",vm:"1",version:"DICOM"},"(0018,9308)":{tag:"(0018,9308)",vr:"SQ",name:"CTTableDynamicsSequence",vm:"1",version:"DICOM"},"(0018,9309)":{tag:"(0018,9309)",vr:"FD",name:"TableSpeed",vm:"1",version:"DICOM"},"(0018,9310)":{tag:"(0018,9310)",vr:"FD",name:"TableFeedPerRotation",vm:"1",version:"DICOM"},"(0018,9311)":{tag:"(0018,9311)",vr:"FD",name:"SpiralPitchFactor",vm:"1",version:"DICOM"},"(0018,9312)":{tag:"(0018,9312)",vr:"SQ",name:"CTGeometrySequence",vm:"1",version:"DICOM"},"(0018,9313)":{tag:"(0018,9313)",vr:"FD",name:"DataCollectionCenterPatient",vm:"3",version:"DICOM"},"(0018,9314)":{tag:"(0018,9314)",vr:"SQ",name:"CTReconstructionSequence",vm:"1",version:"DICOM"},"(0018,9315)":{tag:"(0018,9315)",vr:"CS",name:"ReconstructionAlgorithm",vm:"1",version:"DICOM"},"(0018,9316)":{tag:"(0018,9316)",vr:"CS",name:"ConvolutionKernelGroup",vm:"1",version:"DICOM"},"(0018,9317)":{tag:"(0018,9317)",vr:"FD",name:"ReconstructionFieldOfView",vm:"2",version:"DICOM"},"(0018,9318)":{tag:"(0018,9318)",vr:"FD",name:"ReconstructionTargetCenterPatient",vm:"3",version:"DICOM"},"(0018,9319)":{tag:"(0018,9319)",vr:"FD",name:"ReconstructionAngle",vm:"1",version:"DICOM"},"(0018,9320)":{tag:"(0018,9320)",vr:"SH",name:"ImageFilter",vm:"1",version:"DICOM"},"(0018,9321)":{tag:"(0018,9321)",vr:"SQ",name:"CTExposureSequence",vm:"1",version:"DICOM"},"(0018,9322)":{tag:"(0018,9322)",vr:"FD",name:"ReconstructionPixelSpacing",vm:"2",version:"DICOM"},"(0018,9323)":{tag:"(0018,9323)",vr:"CS",name:"ExposureModulationType",vm:"1",version:"DICOM"},"(0018,9324)":{tag:"(0018,9324)",vr:"FD",name:"EstimatedDoseSaving",vm:"1",version:"DICOM"},"(0018,9325)":{tag:"(0018,9325)",vr:"SQ",name:"CTXRayDetailsSequence",vm:"1",version:"DICOM"},"(0018,9326)":{tag:"(0018,9326)",vr:"SQ",name:"CTPositionSequence",vm:"1",version:"DICOM"},"(0018,9327)":{tag:"(0018,9327)",vr:"FD",name:"TablePosition",vm:"1",version:"DICOM"},"(0018,9328)":{tag:"(0018,9328)",vr:"FD",name:"ExposureTimeInms",vm:"1",version:"DICOM"},"(0018,9329)":{tag:"(0018,9329)",vr:"SQ",name:"CTImageFrameTypeSequence",vm:"1",version:"DICOM"},"(0018,9330)":{tag:"(0018,9330)",vr:"FD",name:"XRayTubeCurrentInmA",vm:"1",version:"DICOM"},"(0018,9332)":{tag:"(0018,9332)",vr:"FD",name:"ExposureInmAs",vm:"1",version:"DICOM"},"(0018,9333)":{tag:"(0018,9333)",vr:"CS",name:"ConstantVolumeFlag",vm:"1",version:"DICOM"},"(0018,9334)":{tag:"(0018,9334)",vr:"CS",name:"FluoroscopyFlag",vm:"1",version:"DICOM"},"(0018,9335)":{tag:"(0018,9335)",vr:"FD",name:"DistanceSourceToDataCollectionCenter",vm:"1",version:"DICOM"},"(0018,9337)":{tag:"(0018,9337)",vr:"US",name:"ContrastBolusAgentNumber",vm:"1",version:"DICOM"},"(0018,9338)":{tag:"(0018,9338)",vr:"SQ",name:"ContrastBolusIngredientCodeSequence",vm:"1",version:"DICOM"},"(0018,9340)":{tag:"(0018,9340)",vr:"SQ",name:"ContrastAdministrationProfileSequence",vm:"1",version:"DICOM"},"(0018,9341)":{tag:"(0018,9341)",vr:"SQ",name:"ContrastBolusUsageSequence",vm:"1",version:"DICOM"},"(0018,9342)":{tag:"(0018,9342)",vr:"CS",name:"ContrastBolusAgentAdministered",vm:"1",version:"DICOM"},"(0018,9343)":{tag:"(0018,9343)",vr:"CS",name:"ContrastBolusAgentDetected",vm:"1",version:"DICOM"},"(0018,9344)":{tag:"(0018,9344)",vr:"CS",name:"ContrastBolusAgentPhase",vm:"1",version:"DICOM"},"(0018,9345)":{tag:"(0018,9345)",vr:"FD",name:"CTDIvol",vm:"1",version:"DICOM"},"(0018,9346)":{tag:"(0018,9346)",vr:"SQ",name:"CTDIPhantomTypeCodeSequence",vm:"1",version:"DICOM"},"(0018,9351)":{tag:"(0018,9351)",vr:"FL",name:"CalciumScoringMassFactorPatient",vm:"1",version:"DICOM"},"(0018,9352)":{tag:"(0018,9352)",vr:"FL",name:"CalciumScoringMassFactorDevice",vm:"3",version:"DICOM"},"(0018,9353)":{tag:"(0018,9353)",vr:"FL",name:"EnergyWeightingFactor",vm:"1",version:"DICOM"},"(0018,9360)":{tag:"(0018,9360)",vr:"SQ",name:"CTAdditionalXRaySourceSequence",vm:"1",version:"DICOM"},"(0018,9361)":{tag:"(0018,9361)",vr:"CS",name:"MultienergyCTAcquisition",vm:"1",version:"DICOM"},"(0018,9362)":{tag:"(0018,9362)",vr:"SQ",name:"MultienergyCTAcquisitionSequence",vm:"1",version:"DICOM"},"(0018,9363)":{tag:"(0018,9363)",vr:"SQ",name:"MultienergyCTProcessingSequence",vm:"1",version:"DICOM"},"(0018,9364)":{tag:"(0018,9364)",vr:"SQ",name:"MultienergyCTCharacteristicsSequence",vm:"1",version:"DICOM"},"(0018,9365)":{tag:"(0018,9365)",vr:"SQ",name:"MultienergyCTXRaySourceSequence",vm:"1",version:"DICOM"},"(0018,9366)":{tag:"(0018,9366)",vr:"US",name:"XRaySourceIndex",vm:"1",version:"DICOM"},"(0018,9367)":{tag:"(0018,9367)",vr:"UC",name:"XRaySourceID",vm:"1",version:"DICOM"},"(0018,9368)":{tag:"(0018,9368)",vr:"CS",name:"MultienergySourceTechnique",vm:"1",version:"DICOM"},"(0018,9369)":{tag:"(0018,9369)",vr:"DT",name:"SourceStartDateTime",vm:"1",version:"DICOM"},"(0018,936A)":{tag:"(0018,936A)",vr:"DT",name:"SourceEndDateTime",vm:"1",version:"DICOM"},"(0018,936B)":{tag:"(0018,936B)",vr:"US",name:"SwitchingPhaseNumber",vm:"1",version:"DICOM"},"(0018,936C)":{tag:"(0018,936C)",vr:"DS",name:"SwitchingPhaseNominalDuration",vm:"1",version:"DICOM"},"(0018,936D)":{tag:"(0018,936D)",vr:"DS",name:"SwitchingPhaseTransitionDuration",vm:"1",version:"DICOM"},"(0018,936E)":{tag:"(0018,936E)",vr:"DS",name:"EffectiveBinEnergy",vm:"1",version:"DICOM"},"(0018,936F)":{tag:"(0018,936F)",vr:"SQ",name:"MultienergyCTXRayDetectorSequence",vm:"1",version:"DICOM"},"(0018,9370)":{tag:"(0018,9370)",vr:"US",name:"XRayDetectorIndex",vm:"1",version:"DICOM"},"(0018,9371)":{tag:"(0018,9371)",vr:"UC",name:"XRayDetectorID",vm:"1",version:"DICOM"},"(0018,9372)":{tag:"(0018,9372)",vr:"CS",name:"MultienergyDetectorType",vm:"1",version:"DICOM"},"(0018,9373)":{tag:"(0018,9373)",vr:"ST",name:"XRayDetectorLabel",vm:"1",version:"DICOM"},"(0018,9374)":{tag:"(0018,9374)",vr:"DS",name:"NominalMaxEnergy",vm:"1",version:"DICOM"},"(0018,9375)":{tag:"(0018,9375)",vr:"DS",name:"NominalMinEnergy",vm:"1",version:"DICOM"},"(0018,9376)":{tag:"(0018,9376)",vr:"US",name:"ReferencedXRayDetectorIndex",vm:"1-n",version:"DICOM"},"(0018,9377)":{tag:"(0018,9377)",vr:"US",name:"ReferencedXRaySourceIndex",vm:"1-n",version:"DICOM"},"(0018,9378)":{tag:"(0018,9378)",vr:"US",name:"ReferencedPathIndex",vm:"1-n",version:"DICOM"},"(0018,9379)":{tag:"(0018,9379)",vr:"SQ",name:"MultienergyCTPathSequence",vm:"1",version:"DICOM"},"(0018,937A)":{tag:"(0018,937A)",vr:"US",name:"MultienergyCTPathIndex",vm:"1",version:"DICOM"},"(0018,937B)":{tag:"(0018,937B)",vr:"UT",name:"MultienergyAcquisitionDescription",vm:"1",version:"DICOM"},"(0018,937C)":{tag:"(0018,937C)",vr:"FD",name:"MonoenergeticEnergyEquivalent",vm:"1",version:"DICOM"},"(0018,937D)":{tag:"(0018,937D)",vr:"SQ",name:"MaterialCodeSequence",vm:"1",version:"DICOM"},"(0018,937E)":{tag:"(0018,937E)",vr:"CS",name:"DecompositionMethod",vm:"1",version:"DICOM"},"(0018,937F)":{tag:"(0018,937F)",vr:"UT",name:"DecompositionDescription",vm:"1",version:"DICOM"},"(0018,9380)":{tag:"(0018,9380)",vr:"SQ",name:"DecompositionAlgorithmIdentificationSequence",vm:"1",version:"DICOM"},"(0018,9381)":{tag:"(0018,9381)",vr:"SQ",name:"DecompositionMaterialSequence",vm:"1",version:"DICOM"},"(0018,9382)":{tag:"(0018,9382)",vr:"SQ",name:"MaterialAttenuationSequence",vm:"1",version:"DICOM"},"(0018,9383)":{tag:"(0018,9383)",vr:"DS",name:"PhotonEnergy",vm:"1",version:"DICOM"},"(0018,9384)":{tag:"(0018,9384)",vr:"DS",name:"XRayMassAttenuationCoefficient",vm:"1",version:"DICOM"},"(0018,9401)":{tag:"(0018,9401)",vr:"SQ",name:"ProjectionPixelCalibrationSequence",vm:"1",version:"DICOM"},"(0018,9402)":{tag:"(0018,9402)",vr:"FL",name:"DistanceSourceToIsocenter",vm:"1",version:"DICOM"},"(0018,9403)":{tag:"(0018,9403)",vr:"FL",name:"DistanceObjectToTableTop",vm:"1",version:"DICOM"},"(0018,9404)":{tag:"(0018,9404)",vr:"FL",name:"ObjectPixelSpacingInCenterOfBeam",vm:"2",version:"DICOM"},"(0018,9405)":{tag:"(0018,9405)",vr:"SQ",name:"PositionerPositionSequence",vm:"1",version:"DICOM"},"(0018,9406)":{tag:"(0018,9406)",vr:"SQ",name:"TablePositionSequence",vm:"1",version:"DICOM"},"(0018,9407)":{tag:"(0018,9407)",vr:"SQ",name:"CollimatorShapeSequence",vm:"1",version:"DICOM"},"(0018,9410)":{tag:"(0018,9410)",vr:"CS",name:"PlanesInAcquisition",vm:"1",version:"DICOM"},"(0018,9412)":{tag:"(0018,9412)",vr:"SQ",name:"XAXRFFrameCharacteristicsSequence",vm:"1",version:"DICOM"},"(0018,9417)":{tag:"(0018,9417)",vr:"SQ",name:"FrameAcquisitionSequence",vm:"1",version:"DICOM"},"(0018,9420)":{tag:"(0018,9420)",vr:"CS",name:"XRayReceptorType",vm:"1",version:"DICOM"},"(0018,9423)":{tag:"(0018,9423)",vr:"LO",name:"AcquisitionProtocolName",vm:"1",version:"DICOM"},"(0018,9424)":{tag:"(0018,9424)",vr:"LT",name:"AcquisitionProtocolDescription",vm:"1",version:"DICOM"},"(0018,9425)":{tag:"(0018,9425)",vr:"CS",name:"ContrastBolusIngredientOpaque",vm:"1",version:"DICOM"},"(0018,9426)":{tag:"(0018,9426)",vr:"FL",name:"DistanceReceptorPlaneToDetectorHousing",vm:"1",version:"DICOM"},"(0018,9427)":{tag:"(0018,9427)",vr:"CS",name:"IntensifierActiveShape",vm:"1",version:"DICOM"},"(0018,9428)":{tag:"(0018,9428)",vr:"FL",name:"IntensifierActiveDimensions",vm:"1-2",version:"DICOM"},"(0018,9429)":{tag:"(0018,9429)",vr:"FL",name:"PhysicalDetectorSize",vm:"2",version:"DICOM"},"(0018,9430)":{tag:"(0018,9430)",vr:"FL",name:"PositionOfIsocenterProjection",vm:"2",version:"DICOM"},"(0018,9432)":{tag:"(0018,9432)",vr:"SQ",name:"FieldOfViewSequence",vm:"1",version:"DICOM"},"(0018,9433)":{tag:"(0018,9433)",vr:"LO",name:"FieldOfViewDescription",vm:"1",version:"DICOM"},"(0018,9434)":{tag:"(0018,9434)",vr:"SQ",name:"ExposureControlSensingRegionsSequence",vm:"1",version:"DICOM"},"(0018,9435)":{tag:"(0018,9435)",vr:"CS",name:"ExposureControlSensingRegionShape",vm:"1",version:"DICOM"},"(0018,9436)":{tag:"(0018,9436)",vr:"SS",name:"ExposureControlSensingRegionLeftVerticalEdge",vm:"1",version:"DICOM"},"(0018,9437)":{tag:"(0018,9437)",vr:"SS",name:"ExposureControlSensingRegionRightVerticalEdge",vm:"1",version:"DICOM"},"(0018,9438)":{tag:"(0018,9438)",vr:"SS",name:"ExposureControlSensingRegionUpperHorizontalEdge",vm:"1",version:"DICOM"},"(0018,9439)":{tag:"(0018,9439)",vr:"SS",name:"ExposureControlSensingRegionLowerHorizontalEdge",vm:"1",version:"DICOM"},"(0018,9440)":{tag:"(0018,9440)",vr:"SS",name:"CenterOfCircularExposureControlSensingRegion",vm:"2",version:"DICOM"},"(0018,9441)":{tag:"(0018,9441)",vr:"US",name:"RadiusOfCircularExposureControlSensingRegion",vm:"1",version:"DICOM"},"(0018,9442)":{tag:"(0018,9442)",vr:"SS",name:"VerticesOfThePolygonalExposureControlSensingRegion",vm:"2-n",version:"DICOM"},"(0018,9447)":{tag:"(0018,9447)",vr:"FL",name:"ColumnAngulationPatient",vm:"1",version:"DICOM"},"(0018,9449)":{tag:"(0018,9449)",vr:"FL",name:"BeamAngle",vm:"1",version:"DICOM"},"(0018,9451)":{tag:"(0018,9451)",vr:"SQ",name:"FrameDetectorParametersSequence",vm:"1",version:"DICOM"},"(0018,9452)":{tag:"(0018,9452)",vr:"FL",name:"CalculatedAnatomyThickness",vm:"1",version:"DICOM"},"(0018,9455)":{tag:"(0018,9455)",vr:"SQ",name:"CalibrationSequence",vm:"1",version:"DICOM"},"(0018,9456)":{tag:"(0018,9456)",vr:"SQ",name:"ObjectThicknessSequence",vm:"1",version:"DICOM"},"(0018,9457)":{tag:"(0018,9457)",vr:"CS",name:"PlaneIdentification",vm:"1",version:"DICOM"},"(0018,9461)":{tag:"(0018,9461)",vr:"FL",name:"FieldOfViewDimensionsInFloat",vm:"1-2",version:"DICOM"},"(0018,9462)":{tag:"(0018,9462)",vr:"SQ",name:"IsocenterReferenceSystemSequence",vm:"1",version:"DICOM"},"(0018,9463)":{tag:"(0018,9463)",vr:"FL",name:"PositionerIsocenterPrimaryAngle",vm:"1",version:"DICOM"},"(0018,9464)":{tag:"(0018,9464)",vr:"FL",name:"PositionerIsocenterSecondaryAngle",vm:"1",version:"DICOM"},"(0018,9465)":{tag:"(0018,9465)",vr:"FL",name:"PositionerIsocenterDetectorRotationAngle",vm:"1",version:"DICOM"},"(0018,9466)":{tag:"(0018,9466)",vr:"FL",name:"TableXPositionToIsocenter",vm:"1",version:"DICOM"},"(0018,9467)":{tag:"(0018,9467)",vr:"FL",name:"TableYPositionToIsocenter",vm:"1",version:"DICOM"},"(0018,9468)":{tag:"(0018,9468)",vr:"FL",name:"TableZPositionToIsocenter",vm:"1",version:"DICOM"},"(0018,9469)":{tag:"(0018,9469)",vr:"FL",name:"TableHorizontalRotationAngle",vm:"1",version:"DICOM"},"(0018,9470)":{tag:"(0018,9470)",vr:"FL",name:"TableHeadTiltAngle",vm:"1",version:"DICOM"},"(0018,9471)":{tag:"(0018,9471)",vr:"FL",name:"TableCradleTiltAngle",vm:"1",version:"DICOM"},"(0018,9472)":{tag:"(0018,9472)",vr:"SQ",name:"FrameDisplayShutterSequence",vm:"1",version:"DICOM"},"(0018,9473)":{tag:"(0018,9473)",vr:"FL",name:"AcquiredImageAreaDoseProduct",vm:"1",version:"DICOM"},"(0018,9474)":{tag:"(0018,9474)",vr:"CS",name:"CArmPositionerTabletopRelationship",vm:"1",version:"DICOM"},"(0018,9476)":{tag:"(0018,9476)",vr:"SQ",name:"XRayGeometrySequence",vm:"1",version:"DICOM"},"(0018,9477)":{tag:"(0018,9477)",vr:"SQ",name:"IrradiationEventIdentificationSequence",vm:"1",version:"DICOM"},"(0018,9504)":{tag:"(0018,9504)",vr:"SQ",name:"XRay3DFrameTypeSequence",vm:"1",version:"DICOM"},"(0018,9506)":{tag:"(0018,9506)",vr:"SQ",name:"ContributingSourcesSequence",vm:"1",version:"DICOM"},"(0018,9507)":{tag:"(0018,9507)",vr:"SQ",name:"XRay3DAcquisitionSequence",vm:"1",version:"DICOM"},"(0018,9508)":{tag:"(0018,9508)",vr:"FL",name:"PrimaryPositionerScanArc",vm:"1",version:"DICOM"},"(0018,9509)":{tag:"(0018,9509)",vr:"FL",name:"SecondaryPositionerScanArc",vm:"1",version:"DICOM"},"(0018,9510)":{tag:"(0018,9510)",vr:"FL",name:"PrimaryPositionerScanStartAngle",vm:"1",version:"DICOM"},"(0018,9511)":{tag:"(0018,9511)",vr:"FL",name:"SecondaryPositionerScanStartAngle",vm:"1",version:"DICOM"},"(0018,9514)":{tag:"(0018,9514)",vr:"FL",name:"PrimaryPositionerIncrement",vm:"1",version:"DICOM"},"(0018,9515)":{tag:"(0018,9515)",vr:"FL",name:"SecondaryPositionerIncrement",vm:"1",version:"DICOM"},"(0018,9516)":{tag:"(0018,9516)",vr:"DT",name:"StartAcquisitionDateTime",vm:"1",version:"DICOM"},"(0018,9517)":{tag:"(0018,9517)",vr:"DT",name:"EndAcquisitionDateTime",vm:"1",version:"DICOM"},"(0018,9518)":{tag:"(0018,9518)",vr:"SS",name:"PrimaryPositionerIncrementSign",vm:"1",version:"DICOM"},"(0018,9519)":{tag:"(0018,9519)",vr:"SS",name:"SecondaryPositionerIncrementSign",vm:"1",version:"DICOM"},"(0018,9524)":{tag:"(0018,9524)",vr:"LO",name:"ApplicationName",vm:"1",version:"DICOM"},"(0018,9525)":{tag:"(0018,9525)",vr:"LO",name:"ApplicationVersion",vm:"1",version:"DICOM"},"(0018,9526)":{tag:"(0018,9526)",vr:"LO",name:"ApplicationManufacturer",vm:"1",version:"DICOM"},"(0018,9527)":{tag:"(0018,9527)",vr:"CS",name:"AlgorithmType",vm:"1",version:"DICOM"},"(0018,9528)":{tag:"(0018,9528)",vr:"LO",name:"AlgorithmDescription",vm:"1",version:"DICOM"},"(0018,9530)":{tag:"(0018,9530)",vr:"SQ",name:"XRay3DReconstructionSequence",vm:"1",version:"DICOM"},"(0018,9531)":{tag:"(0018,9531)",vr:"LO",name:"ReconstructionDescription",vm:"1",version:"DICOM"},"(0018,9538)":{tag:"(0018,9538)",vr:"SQ",name:"PerProjectionAcquisitionSequence",vm:"1",version:"DICOM"},"(0018,9541)":{tag:"(0018,9541)",vr:"SQ",name:"DetectorPositionSequence",vm:"1",version:"DICOM"},"(0018,9542)":{tag:"(0018,9542)",vr:"SQ",name:"XRayAcquisitionDoseSequence",vm:"1",version:"DICOM"},"(0018,9543)":{tag:"(0018,9543)",vr:"FD",name:"XRaySourceIsocenterPrimaryAngle",vm:"1",version:"DICOM"},"(0018,9544)":{tag:"(0018,9544)",vr:"FD",name:"XRaySourceIsocenterSecondaryAngle",vm:"1",version:"DICOM"},"(0018,9545)":{tag:"(0018,9545)",vr:"FD",name:"BreastSupportIsocenterPrimaryAngle",vm:"1",version:"DICOM"},"(0018,9546)":{tag:"(0018,9546)",vr:"FD",name:"BreastSupportIsocenterSecondaryAngle",vm:"1",version:"DICOM"},"(0018,9547)":{tag:"(0018,9547)",vr:"FD",name:"BreastSupportXPositionToIsocenter",vm:"1",version:"DICOM"},"(0018,9548)":{tag:"(0018,9548)",vr:"FD",name:"BreastSupportYPositionToIsocenter",vm:"1",version:"DICOM"},"(0018,9549)":{tag:"(0018,9549)",vr:"FD",name:"BreastSupportZPositionToIsocenter",vm:"1",version:"DICOM"},"(0018,9550)":{tag:"(0018,9550)",vr:"FD",name:"DetectorIsocenterPrimaryAngle",vm:"1",version:"DICOM"},"(0018,9551)":{tag:"(0018,9551)",vr:"FD",name:"DetectorIsocenterSecondaryAngle",vm:"1",version:"DICOM"},"(0018,9552)":{tag:"(0018,9552)",vr:"FD",name:"DetectorXPositionToIsocenter",vm:"1",version:"DICOM"},"(0018,9553)":{tag:"(0018,9553)",vr:"FD",name:"DetectorYPositionToIsocenter",vm:"1",version:"DICOM"},"(0018,9554)":{tag:"(0018,9554)",vr:"FD",name:"DetectorZPositionToIsocenter",vm:"1",version:"DICOM"},"(0018,9555)":{tag:"(0018,9555)",vr:"SQ",name:"XRayGridSequence",vm:"1",version:"DICOM"},"(0018,9556)":{tag:"(0018,9556)",vr:"SQ",name:"XRayFilterSequence",vm:"1",version:"DICOM"},"(0018,9557)":{tag:"(0018,9557)",vr:"FD",name:"DetectorActiveAreaTLHCPosition",vm:"3",version:"DICOM"},"(0018,9558)":{tag:"(0018,9558)",vr:"FD",name:"DetectorActiveAreaOrientation",vm:"6",version:"DICOM"},"(0018,9559)":{tag:"(0018,9559)",vr:"CS",name:"PositionerPrimaryAngleDirection",vm:"1",version:"DICOM"},"(0018,9601)":{tag:"(0018,9601)",vr:"SQ",name:"DiffusionBMatrixSequence",vm:"1",version:"DICOM"},"(0018,9602)":{tag:"(0018,9602)",vr:"FD",name:"DiffusionBValueXX",vm:"1",version:"DICOM"},"(0018,9603)":{tag:"(0018,9603)",vr:"FD",name:"DiffusionBValueXY",vm:"1",version:"DICOM"},"(0018,9604)":{tag:"(0018,9604)",vr:"FD",name:"DiffusionBValueXZ",vm:"1",version:"DICOM"},"(0018,9605)":{tag:"(0018,9605)",vr:"FD",name:"DiffusionBValueYY",vm:"1",version:"DICOM"},"(0018,9606)":{tag:"(0018,9606)",vr:"FD",name:"DiffusionBValueYZ",vm:"1",version:"DICOM"},"(0018,9607)":{tag:"(0018,9607)",vr:"FD",name:"DiffusionBValueZZ",vm:"1",version:"DICOM"},"(0018,9621)":{tag:"(0018,9621)",vr:"SQ",name:"FunctionalMRSequence",vm:"1",version:"DICOM"},"(0018,9622)":{tag:"(0018,9622)",vr:"CS",name:"FunctionalSettlingPhaseFramesPresent",vm:"1",version:"DICOM"},"(0018,9623)":{tag:"(0018,9623)",vr:"DT",name:"FunctionalSyncPulse",vm:"1",version:"DICOM"},"(0018,9624)":{tag:"(0018,9624)",vr:"CS",name:"SettlingPhaseFrame",vm:"1",version:"DICOM"},"(0018,9701)":{tag:"(0018,9701)",vr:"DT",name:"DecayCorrectionDateTime",vm:"1",version:"DICOM"},"(0018,9715)":{tag:"(0018,9715)",vr:"FD",name:"StartDensityThreshold",vm:"1",version:"DICOM"},"(0018,9716)":{tag:"(0018,9716)",vr:"FD",name:"StartRelativeDensityDifferenceThreshold",vm:"1",version:"DICOM"},"(0018,9717)":{tag:"(0018,9717)",vr:"FD",name:"StartCardiacTriggerCountThreshold",vm:"1",version:"DICOM"},"(0018,9718)":{tag:"(0018,9718)",vr:"FD",name:"StartRespiratoryTriggerCountThreshold",vm:"1",version:"DICOM"},"(0018,9719)":{tag:"(0018,9719)",vr:"FD",name:"TerminationCountsThreshold",vm:"1",version:"DICOM"},"(0018,9720)":{tag:"(0018,9720)",vr:"FD",name:"TerminationDensityThreshold",vm:"1",version:"DICOM"},"(0018,9721)":{tag:"(0018,9721)",vr:"FD",name:"TerminationRelativeDensityThreshold",vm:"1",version:"DICOM"},"(0018,9722)":{tag:"(0018,9722)",vr:"FD",name:"TerminationTimeThreshold",vm:"1",version:"DICOM"},"(0018,9723)":{tag:"(0018,9723)",vr:"FD",name:"TerminationCardiacTriggerCountThreshold",vm:"1",version:"DICOM"},"(0018,9724)":{tag:"(0018,9724)",vr:"FD",name:"TerminationRespiratoryTriggerCountThreshold",vm:"1",version:"DICOM"},"(0018,9725)":{tag:"(0018,9725)",vr:"CS",name:"DetectorGeometry",vm:"1",version:"DICOM"},"(0018,9726)":{tag:"(0018,9726)",vr:"FD",name:"TransverseDetectorSeparation",vm:"1",version:"DICOM"},"(0018,9727)":{tag:"(0018,9727)",vr:"FD",name:"AxialDetectorDimension",vm:"1",version:"DICOM"},"(0018,9729)":{tag:"(0018,9729)",vr:"US",name:"RadiopharmaceuticalAgentNumber",vm:"1",version:"DICOM"},"(0018,9732)":{tag:"(0018,9732)",vr:"SQ",name:"PETFrameAcquisitionSequence",vm:"1",version:"DICOM"},"(0018,9733)":{tag:"(0018,9733)",vr:"SQ",name:"PETDetectorMotionDetailsSequence",vm:"1",version:"DICOM"},"(0018,9734)":{tag:"(0018,9734)",vr:"SQ",name:"PETTableDynamicsSequence",vm:"1",version:"DICOM"},"(0018,9735)":{tag:"(0018,9735)",vr:"SQ",name:"PETPositionSequence",vm:"1",version:"DICOM"},"(0018,9736)":{tag:"(0018,9736)",vr:"SQ",name:"PETFrameCorrectionFactorsSequence",vm:"1",version:"DICOM"},"(0018,9737)":{tag:"(0018,9737)",vr:"SQ",name:"RadiopharmaceuticalUsageSequence",vm:"1",version:"DICOM"},"(0018,9738)":{tag:"(0018,9738)",vr:"CS",name:"AttenuationCorrectionSource",vm:"1",version:"DICOM"},"(0018,9739)":{tag:"(0018,9739)",vr:"US",name:"NumberOfIterations",vm:"1",version:"DICOM"},"(0018,9740)":{tag:"(0018,9740)",vr:"US",name:"NumberOfSubsets",vm:"1",version:"DICOM"},"(0018,9749)":{tag:"(0018,9749)",vr:"SQ",name:"PETReconstructionSequence",vm:"1",version:"DICOM"},"(0018,9751)":{tag:"(0018,9751)",vr:"SQ",name:"PETFrameTypeSequence",vm:"1",version:"DICOM"},"(0018,9755)":{tag:"(0018,9755)",vr:"CS",name:"TimeOfFlightInformationUsed",vm:"1",version:"DICOM"},"(0018,9756)":{tag:"(0018,9756)",vr:"CS",name:"ReconstructionType",vm:"1",version:"DICOM"},"(0018,9758)":{tag:"(0018,9758)",vr:"CS",name:"DecayCorrected",vm:"1",version:"DICOM"},"(0018,9759)":{tag:"(0018,9759)",vr:"CS",name:"AttenuationCorrected",vm:"1",version:"DICOM"},"(0018,9760)":{tag:"(0018,9760)",vr:"CS",name:"ScatterCorrected",vm:"1",version:"DICOM"},"(0018,9761)":{tag:"(0018,9761)",vr:"CS",name:"DeadTimeCorrected",vm:"1",version:"DICOM"},"(0018,9762)":{tag:"(0018,9762)",vr:"CS",name:"GantryMotionCorrected",vm:"1",version:"DICOM"},"(0018,9763)":{tag:"(0018,9763)",vr:"CS",name:"PatientMotionCorrected",vm:"1",version:"DICOM"},"(0018,9764)":{tag:"(0018,9764)",vr:"CS",name:"CountLossNormalizationCorrected",vm:"1",version:"DICOM"},"(0018,9765)":{tag:"(0018,9765)",vr:"CS",name:"RandomsCorrected",vm:"1",version:"DICOM"},"(0018,9766)":{tag:"(0018,9766)",vr:"CS",name:"NonUniformRadialSamplingCorrected",vm:"1",version:"DICOM"},"(0018,9767)":{tag:"(0018,9767)",vr:"CS",name:"SensitivityCalibrated",vm:"1",version:"DICOM"},"(0018,9768)":{tag:"(0018,9768)",vr:"CS",name:"DetectorNormalizationCorrection",vm:"1",version:"DICOM"},"(0018,9769)":{tag:"(0018,9769)",vr:"CS",name:"IterativeReconstructionMethod",vm:"1",version:"DICOM"},"(0018,9770)":{tag:"(0018,9770)",vr:"CS",name:"AttenuationCorrectionTemporalRelationship",vm:"1",version:"DICOM"},"(0018,9771)":{tag:"(0018,9771)",vr:"SQ",name:"PatientPhysiologicalStateSequence",vm:"1",version:"DICOM"},"(0018,9772)":{tag:"(0018,9772)",vr:"SQ",name:"PatientPhysiologicalStateCodeSequence",vm:"1",version:"DICOM"},"(0018,9801)":{tag:"(0018,9801)",vr:"FD",name:"DepthsOfFocus",vm:"1-n",version:"DICOM"},"(0018,9803)":{tag:"(0018,9803)",vr:"SQ",name:"ExcludedIntervalsSequence",vm:"1",version:"DICOM"},"(0018,9804)":{tag:"(0018,9804)",vr:"DT",name:"ExclusionStartDateTime",vm:"1",version:"DICOM"},"(0018,9805)":{tag:"(0018,9805)",vr:"FD",name:"ExclusionDuration",vm:"1",version:"DICOM"},"(0018,9806)":{tag:"(0018,9806)",vr:"SQ",name:"USImageDescriptionSequence",vm:"1",version:"DICOM"},"(0018,9807)":{tag:"(0018,9807)",vr:"SQ",name:"ImageDataTypeSequence",vm:"1",version:"DICOM"},"(0018,9808)":{tag:"(0018,9808)",vr:"CS",name:"DataType",vm:"1",version:"DICOM"},"(0018,9809)":{tag:"(0018,9809)",vr:"SQ",name:"TransducerScanPatternCodeSequence",vm:"1",version:"DICOM"},"(0018,980B)":{tag:"(0018,980B)",vr:"CS",name:"AliasedDataType",vm:"1",version:"DICOM"},"(0018,980C)":{tag:"(0018,980C)",vr:"CS",name:"PositionMeasuringDeviceUsed",vm:"1",version:"DICOM"},"(0018,980D)":{tag:"(0018,980D)",vr:"SQ",name:"TransducerGeometryCodeSequence",vm:"1",version:"DICOM"},"(0018,980E)":{tag:"(0018,980E)",vr:"SQ",name:"TransducerBeamSteeringCodeSequence",vm:"1",version:"DICOM"},"(0018,980F)":{tag:"(0018,980F)",vr:"SQ",name:"TransducerApplicationCodeSequence",vm:"1",version:"DICOM"},"(0018,9810)":{tag:"(0018,9810)",vr:"xs",name:"ZeroVelocityPixelValue",vm:"1",version:"DICOM"},"(0018,9900)":{tag:"(0018,9900)",vr:"LO",name:"ReferenceLocationLabel",vm:"1",version:"DICOM"},"(0018,9901)":{tag:"(0018,9901)",vr:"UT",name:"ReferenceLocationDescription",vm:"1",version:"DICOM"},"(0018,9902)":{tag:"(0018,9902)",vr:"SQ",name:"ReferenceBasisCodeSequence",vm:"1",version:"DICOM"},"(0018,9903)":{tag:"(0018,9903)",vr:"SQ",name:"ReferenceGeometryCodeSequence",vm:"1",version:"DICOM"},"(0018,9904)":{tag:"(0018,9904)",vr:"DS",name:"OffsetDistance",vm:"1",version:"DICOM"},"(0018,9905)":{tag:"(0018,9905)",vr:"CS",name:"OffsetDirection",vm:"1",version:"DICOM"},"(0018,9906)":{tag:"(0018,9906)",vr:"SQ",name:"PotentialScheduledProtocolCodeSequence",vm:"1",version:"DICOM"},"(0018,9907)":{tag:"(0018,9907)",vr:"SQ",name:"PotentialRequestedProcedureCodeSequence",vm:"1",version:"DICOM"},"(0018,9908)":{tag:"(0018,9908)",vr:"UC",name:"PotentialReasonsForProcedure",vm:"1-n",version:"DICOM"},"(0018,9909)":{tag:"(0018,9909)",vr:"SQ",name:"PotentialReasonsForProcedureCodeSequence",vm:"1",version:"DICOM"},"(0018,990A)":{tag:"(0018,990A)",vr:"UC",name:"PotentialDiagnosticTasks",vm:"1-n",version:"DICOM"},"(0018,990B)":{tag:"(0018,990B)",vr:"SQ",name:"ContraindicationsCodeSequence",vm:"1",version:"DICOM"},"(0018,990C)":{tag:"(0018,990C)",vr:"SQ",name:"ReferencedDefinedProtocolSequence",vm:"1",version:"DICOM"},"(0018,990D)":{tag:"(0018,990D)",vr:"SQ",name:"ReferencedPerformedProtocolSequence",vm:"1",version:"DICOM"},"(0018,990E)":{tag:"(0018,990E)",vr:"SQ",name:"PredecessorProtocolSequence",vm:"1",version:"DICOM"},"(0018,990F)":{tag:"(0018,990F)",vr:"UT",name:"ProtocolPlanningInformation",vm:"1",version:"DICOM"},"(0018,9910)":{tag:"(0018,9910)",vr:"UT",name:"ProtocolDesignRationale",vm:"1",version:"DICOM"},"(0018,9911)":{tag:"(0018,9911)",vr:"SQ",name:"PatientSpecificationSequence",vm:"1",version:"DICOM"},"(0018,9912)":{tag:"(0018,9912)",vr:"SQ",name:"ModelSpecificationSequence",vm:"1",version:"DICOM"},"(0018,9913)":{tag:"(0018,9913)",vr:"SQ",name:"ParametersSpecificationSequence",vm:"1",version:"DICOM"},"(0018,9914)":{tag:"(0018,9914)",vr:"SQ",name:"InstructionSequence",vm:"1",version:"DICOM"},"(0018,9915)":{tag:"(0018,9915)",vr:"US",name:"InstructionIndex",vm:"1",version:"DICOM"},"(0018,9916)":{tag:"(0018,9916)",vr:"LO",name:"InstructionText",vm:"1",version:"DICOM"},"(0018,9917)":{tag:"(0018,9917)",vr:"UT",name:"InstructionDescription",vm:"1",version:"DICOM"},"(0018,9918)":{tag:"(0018,9918)",vr:"CS",name:"InstructionPerformedFlag",vm:"1",version:"DICOM"},"(0018,9919)":{tag:"(0018,9919)",vr:"DT",name:"InstructionPerformedDateTime",vm:"1",version:"DICOM"},"(0018,991A)":{tag:"(0018,991A)",vr:"UT",name:"InstructionPerformanceComment",vm:"1",version:"DICOM"},"(0018,991B)":{tag:"(0018,991B)",vr:"SQ",name:"PatientPositioningInstructionSequence",vm:"1",version:"DICOM"},"(0018,991C)":{tag:"(0018,991C)",vr:"SQ",name:"PositioningMethodCodeSequence",vm:"1",version:"DICOM"},"(0018,991D)":{tag:"(0018,991D)",vr:"SQ",name:"PositioningLandmarkSequence",vm:"1",version:"DICOM"},"(0018,991E)":{tag:"(0018,991E)",vr:"UI",name:"TargetFrameOfReferenceUID",vm:"1",version:"DICOM"},"(0018,991F)":{tag:"(0018,991F)",vr:"SQ",name:"AcquisitionProtocolElementSpecificationSequence",vm:"1",version:"DICOM"},"(0018,9920)":{tag:"(0018,9920)",vr:"SQ",name:"AcquisitionProtocolElementSequence",vm:"1",version:"DICOM"},"(0018,9921)":{tag:"(0018,9921)",vr:"US",name:"ProtocolElementNumber",vm:"1",version:"DICOM"},"(0018,9922)":{tag:"(0018,9922)",vr:"LO",name:"ProtocolElementName",vm:"1",version:"DICOM"},"(0018,9923)":{tag:"(0018,9923)",vr:"UT",name:"ProtocolElementCharacteristicsSummary",vm:"1",version:"DICOM"},"(0018,9924)":{tag:"(0018,9924)",vr:"UT",name:"ProtocolElementPurpose",vm:"1",version:"DICOM"},"(0018,9930)":{tag:"(0018,9930)",vr:"CS",name:"AcquisitionMotion",vm:"1",version:"DICOM"},"(0018,9931)":{tag:"(0018,9931)",vr:"SQ",name:"AcquisitionStartLocationSequence",vm:"1",version:"DICOM"},"(0018,9932)":{tag:"(0018,9932)",vr:"SQ",name:"AcquisitionEndLocationSequence",vm:"1",version:"DICOM"},"(0018,9933)":{tag:"(0018,9933)",vr:"SQ",name:"ReconstructionProtocolElementSpecificationSequence",vm:"1",version:"DICOM"},"(0018,9934)":{tag:"(0018,9934)",vr:"SQ",name:"ReconstructionProtocolElementSequence",vm:"1",version:"DICOM"},"(0018,9935)":{tag:"(0018,9935)",vr:"SQ",name:"StorageProtocolElementSpecificationSequence",vm:"1",version:"DICOM"},"(0018,9936)":{tag:"(0018,9936)",vr:"SQ",name:"StorageProtocolElementSequence",vm:"1",version:"DICOM"},"(0018,9937)":{tag:"(0018,9937)",vr:"LO",name:"RequestedSeriesDescription",vm:"1",version:"DICOM"},"(0018,9938)":{tag:"(0018,9938)",vr:"US",name:"SourceAcquisitionProtocolElementNumber",vm:"1-n",version:"DICOM"},"(0018,9939)":{tag:"(0018,9939)",vr:"US",name:"SourceAcquisitionBeamNumber",vm:"1-n",version:"DICOM"},"(0018,993A)":{tag:"(0018,993A)",vr:"US",name:"SourceReconstructionProtocolElementNumber",vm:"1-n",version:"DICOM"},"(0018,993B)":{tag:"(0018,993B)",vr:"SQ",name:"ReconstructionStartLocationSequence",vm:"1",version:"DICOM"},"(0018,993C)":{tag:"(0018,993C)",vr:"SQ",name:"ReconstructionEndLocationSequence",vm:"1",version:"DICOM"},"(0018,993D)":{tag:"(0018,993D)",vr:"SQ",name:"ReconstructionAlgorithmSequence",vm:"1",version:"DICOM"},"(0018,993E)":{tag:"(0018,993E)",vr:"SQ",name:"ReconstructionTargetCenterLocationSequence",vm:"1",version:"DICOM"},"(0018,9941)":{tag:"(0018,9941)",vr:"UT",name:"ImageFilterDescription",vm:"1",version:"DICOM"},"(0018,9942)":{tag:"(0018,9942)",vr:"FD",name:"CTDIvolNotificationTrigger",vm:"1",version:"DICOM"},"(0018,9943)":{tag:"(0018,9943)",vr:"FD",name:"DLPNotificationTrigger",vm:"1",version:"DICOM"},"(0018,9944)":{tag:"(0018,9944)",vr:"CS",name:"AutoKVPSelectionType",vm:"1",version:"DICOM"},"(0018,9945)":{tag:"(0018,9945)",vr:"FD",name:"AutoKVPUpperBound",vm:"1",version:"DICOM"},"(0018,9946)":{tag:"(0018,9946)",vr:"FD",name:"AutoKVPLowerBound",vm:"1",version:"DICOM"},"(0018,9947)":{tag:"(0018,9947)",vr:"CS",name:"ProtocolDefinedPatientPosition",vm:"1",version:"DICOM"},"(0018,A001)":{tag:"(0018,A001)",vr:"SQ",name:"ContributingEquipmentSequence",vm:"1",version:"DICOM"},"(0018,A002)":{tag:"(0018,A002)",vr:"DT",name:"ContributionDateTime",vm:"1",version:"DICOM"},"(0018,A003)":{tag:"(0018,A003)",vr:"ST",name:"ContributionDescription",vm:"1",version:"DICOM"},"(0020,000D)":{tag:"(0020,000D)",vr:"UI",name:"StudyInstanceUID",vm:"1",version:"DICOM"},"(0020,000E)":{tag:"(0020,000E)",vr:"UI",name:"SeriesInstanceUID",vm:"1",version:"DICOM"},"(0020,0010)":{tag:"(0020,0010)",vr:"SH",name:"StudyID",vm:"1",version:"DICOM"},"(0020,0011)":{tag:"(0020,0011)",vr:"IS",name:"SeriesNumber",vm:"1",version:"DICOM"},"(0020,0012)":{tag:"(0020,0012)",vr:"IS",name:"AcquisitionNumber",vm:"1",version:"DICOM"},"(0020,0013)":{tag:"(0020,0013)",vr:"IS",name:"InstanceNumber",vm:"1",version:"DICOM"},"(0020,0019)":{tag:"(0020,0019)",vr:"IS",name:"ItemNumber",vm:"1",version:"DICOM"},"(0020,0020)":{tag:"(0020,0020)",vr:"CS",name:"PatientOrientation",vm:"2",version:"DICOM"},"(0020,0032)":{tag:"(0020,0032)",vr:"DS",name:"ImagePositionPatient",vm:"3",version:"DICOM"},"(0020,0037)":{tag:"(0020,0037)",vr:"DS",name:"ImageOrientationPatient",vm:"6",version:"DICOM"},"(0020,0052)":{tag:"(0020,0052)",vr:"UI",name:"FrameOfReferenceUID",vm:"1",version:"DICOM"},"(0020,0060)":{tag:"(0020,0060)",vr:"CS",name:"Laterality",vm:"1",version:"DICOM"},"(0020,0062)":{tag:"(0020,0062)",vr:"CS",name:"ImageLaterality",vm:"1",version:"DICOM"},"(0020,0100)":{tag:"(0020,0100)",vr:"IS",name:"TemporalPositionIdentifier",vm:"1",version:"DICOM"},"(0020,0105)":{tag:"(0020,0105)",vr:"IS",name:"NumberOfTemporalPositions",vm:"1",version:"DICOM"},"(0020,0110)":{tag:"(0020,0110)",vr:"DS",name:"TemporalResolution",vm:"1",version:"DICOM"},"(0020,0200)":{tag:"(0020,0200)",vr:"UI",name:"SynchronizationFrameOfReferenceUID",vm:"1",version:"DICOM"},"(0020,0242)":{tag:"(0020,0242)",vr:"UI",name:"SOPInstanceUIDOfConcatenationSource",vm:"1",version:"DICOM"},"(0020,1002)":{tag:"(0020,1002)",vr:"IS",name:"ImagesInAcquisition",vm:"1",version:"DICOM"},"(0020,103F)":{tag:"(0020,103F)",vr:"LO",name:"TargetPositionReferenceIndicator",vm:"1",version:"DICOM"},"(0020,1040)":{tag:"(0020,1040)",vr:"LO",name:"PositionReferenceIndicator",vm:"1",version:"DICOM"},"(0020,1041)":{tag:"(0020,1041)",vr:"DS",name:"SliceLocation",vm:"1",version:"DICOM"},"(0020,1200)":{tag:"(0020,1200)",vr:"IS",name:"NumberOfPatientRelatedStudies",vm:"1",version:"DICOM"},"(0020,1202)":{tag:"(0020,1202)",vr:"IS",name:"NumberOfPatientRelatedSeries",vm:"1",version:"DICOM"},"(0020,1204)":{tag:"(0020,1204)",vr:"IS",name:"NumberOfPatientRelatedInstances",vm:"1",version:"DICOM"},"(0020,1206)":{tag:"(0020,1206)",vr:"IS",name:"NumberOfStudyRelatedSeries",vm:"1",version:"DICOM"},"(0020,1208)":{tag:"(0020,1208)",vr:"IS",name:"NumberOfStudyRelatedInstances",vm:"1",version:"DICOM"},"(0020,1209)":{tag:"(0020,1209)",vr:"IS",name:"NumberOfSeriesRelatedInstances",vm:"1",version:"DICOM"},"(0020,4000)":{tag:"(0020,4000)",vr:"LT",name:"ImageComments",vm:"1",version:"DICOM"},"(0020,9056)":{tag:"(0020,9056)",vr:"SH",name:"StackID",vm:"1",version:"DICOM"},"(0020,9057)":{tag:"(0020,9057)",vr:"UL",name:"InStackPositionNumber",vm:"1",version:"DICOM"},"(0020,9071)":{tag:"(0020,9071)",vr:"SQ",name:"FrameAnatomySequence",vm:"1",version:"DICOM"},"(0020,9072)":{tag:"(0020,9072)",vr:"CS",name:"FrameLaterality",vm:"1",version:"DICOM"},"(0020,9111)":{tag:"(0020,9111)",vr:"SQ",name:"FrameContentSequence",vm:"1",version:"DICOM"},"(0020,9113)":{tag:"(0020,9113)",vr:"SQ",name:"PlanePositionSequence",vm:"1",version:"DICOM"},"(0020,9116)":{tag:"(0020,9116)",vr:"SQ",name:"PlaneOrientationSequence",vm:"1",version:"DICOM"},"(0020,9128)":{tag:"(0020,9128)",vr:"UL",name:"TemporalPositionIndex",vm:"1",version:"DICOM"},"(0020,9153)":{tag:"(0020,9153)",vr:"FD",name:"NominalCardiacTriggerDelayTime",vm:"1",version:"DICOM"},"(0020,9154)":{tag:"(0020,9154)",vr:"FL",name:"NominalCardiacTriggerTimePriorToRPeak",vm:"1",version:"DICOM"},"(0020,9155)":{tag:"(0020,9155)",vr:"FL",name:"ActualCardiacTriggerTimePriorToRPeak",vm:"1",version:"DICOM"},"(0020,9156)":{tag:"(0020,9156)",vr:"US",name:"FrameAcquisitionNumber",vm:"1",version:"DICOM"},"(0020,9157)":{tag:"(0020,9157)",vr:"UL",name:"DimensionIndexValues",vm:"1-n",version:"DICOM"},"(0020,9158)":{tag:"(0020,9158)",vr:"LT",name:"FrameComments",vm:"1",version:"DICOM"},"(0020,9161)":{tag:"(0020,9161)",vr:"UI",name:"ConcatenationUID",vm:"1",version:"DICOM"},"(0020,9162)":{tag:"(0020,9162)",vr:"US",name:"InConcatenationNumber",vm:"1",version:"DICOM"},"(0020,9163)":{tag:"(0020,9163)",vr:"US",name:"InConcatenationTotalNumber",vm:"1",version:"DICOM"},"(0020,9164)":{tag:"(0020,9164)",vr:"UI",name:"DimensionOrganizationUID",vm:"1",version:"DICOM"},"(0020,9165)":{tag:"(0020,9165)",vr:"AT",name:"DimensionIndexPointer",vm:"1",version:"DICOM"},"(0020,9167)":{tag:"(0020,9167)",vr:"AT",name:"FunctionalGroupPointer",vm:"1",version:"DICOM"},"(0020,9170)":{tag:"(0020,9170)",vr:"SQ",name:"UnassignedSharedConvertedAttributesSequence",vm:"1",version:"DICOM"},"(0020,9171)":{tag:"(0020,9171)",vr:"SQ",name:"UnassignedPerFrameConvertedAttributesSequence",vm:"1",version:"DICOM"},"(0020,9172)":{tag:"(0020,9172)",vr:"SQ",name:"ConversionSourceAttributesSequence",vm:"1",version:"DICOM"},"(0020,9213)":{tag:"(0020,9213)",vr:"LO",name:"DimensionIndexPrivateCreator",vm:"1",version:"DICOM"},"(0020,9221)":{tag:"(0020,9221)",vr:"SQ",name:"DimensionOrganizationSequence",vm:"1",version:"DICOM"},"(0020,9222)":{tag:"(0020,9222)",vr:"SQ",name:"DimensionIndexSequence",vm:"1",version:"DICOM"},"(0020,9228)":{tag:"(0020,9228)",vr:"UL",name:"ConcatenationFrameOffsetNumber",vm:"1",version:"DICOM"},"(0020,9238)":{tag:"(0020,9238)",vr:"LO",name:"FunctionalGroupPrivateCreator",vm:"1",version:"DICOM"},"(0020,9241)":{tag:"(0020,9241)",vr:"FL",name:"NominalPercentageOfCardiacPhase",vm:"1",version:"DICOM"},"(0020,9245)":{tag:"(0020,9245)",vr:"FL",name:"NominalPercentageOfRespiratoryPhase",vm:"1",version:"DICOM"},"(0020,9246)":{tag:"(0020,9246)",vr:"FL",name:"StartingRespiratoryAmplitude",vm:"1",version:"DICOM"},"(0020,9247)":{tag:"(0020,9247)",vr:"CS",name:"StartingRespiratoryPhase",vm:"1",version:"DICOM"},"(0020,9248)":{tag:"(0020,9248)",vr:"FL",name:"EndingRespiratoryAmplitude",vm:"1",version:"DICOM"},"(0020,9249)":{tag:"(0020,9249)",vr:"CS",name:"EndingRespiratoryPhase",vm:"1",version:"DICOM"},"(0020,9250)":{tag:"(0020,9250)",vr:"CS",name:"RespiratoryTriggerType",vm:"1",version:"DICOM"},"(0020,9251)":{tag:"(0020,9251)",vr:"FD",name:"RRIntervalTimeNominal",vm:"1",version:"DICOM"},"(0020,9252)":{tag:"(0020,9252)",vr:"FD",name:"ActualCardiacTriggerDelayTime",vm:"1",version:"DICOM"},"(0020,9253)":{tag:"(0020,9253)",vr:"SQ",name:"RespiratorySynchronizationSequence",vm:"1",version:"DICOM"},"(0020,9254)":{tag:"(0020,9254)",vr:"FD",name:"RespiratoryIntervalTime",vm:"1",version:"DICOM"},"(0020,9255)":{tag:"(0020,9255)",vr:"FD",name:"NominalRespiratoryTriggerDelayTime",vm:"1",version:"DICOM"},"(0020,9256)":{tag:"(0020,9256)",vr:"FD",name:"RespiratoryTriggerDelayThreshold",vm:"1",version:"DICOM"},"(0020,9257)":{tag:"(0020,9257)",vr:"FD",name:"ActualRespiratoryTriggerDelayTime",vm:"1",version:"DICOM"},"(0020,9301)":{tag:"(0020,9301)",vr:"FD",name:"ImagePositionVolume",vm:"3",version:"DICOM"},"(0020,9302)":{tag:"(0020,9302)",vr:"FD",name:"ImageOrientationVolume",vm:"6",version:"DICOM"},"(0020,9307)":{tag:"(0020,9307)",vr:"CS",name:"UltrasoundAcquisitionGeometry",vm:"1",version:"DICOM"},"(0020,9308)":{tag:"(0020,9308)",vr:"FD",name:"ApexPosition",vm:"3",version:"DICOM"},"(0020,9309)":{tag:"(0020,9309)",vr:"FD",name:"VolumeToTransducerMappingMatrix",vm:"16",version:"DICOM"},"(0020,930A)":{tag:"(0020,930A)",vr:"FD",name:"VolumeToTableMappingMatrix",vm:"16",version:"DICOM"},"(0020,930B)":{tag:"(0020,930B)",vr:"CS",name:"VolumeToTransducerRelationship",vm:"1",version:"DICOM"},"(0020,930C)":{tag:"(0020,930C)",vr:"CS",name:"PatientFrameOfReferenceSource",vm:"1",version:"DICOM"},"(0020,930D)":{tag:"(0020,930D)",vr:"FD",name:"TemporalPositionTimeOffset",vm:"1",version:"DICOM"},"(0020,930E)":{tag:"(0020,930E)",vr:"SQ",name:"PlanePositionVolumeSequence",vm:"1",version:"DICOM"},"(0020,930F)":{tag:"(0020,930F)",vr:"SQ",name:"PlaneOrientationVolumeSequence",vm:"1",version:"DICOM"},"(0020,9310)":{tag:"(0020,9310)",vr:"SQ",name:"TemporalPositionSequence",vm:"1",version:"DICOM"},"(0020,9311)":{tag:"(0020,9311)",vr:"CS",name:"DimensionOrganizationType",vm:"1",version:"DICOM"},"(0020,9312)":{tag:"(0020,9312)",vr:"UI",name:"VolumeFrameOfReferenceUID",vm:"1",version:"DICOM"},"(0020,9313)":{tag:"(0020,9313)",vr:"UI",name:"TableFrameOfReferenceUID",vm:"1",version:"DICOM"},"(0020,9421)":{tag:"(0020,9421)",vr:"LO",name:"DimensionDescriptionLabel",vm:"1",version:"DICOM"},"(0020,9450)":{tag:"(0020,9450)",vr:"SQ",name:"PatientOrientationInFrameSequence",vm:"1",version:"DICOM"},"(0020,9453)":{tag:"(0020,9453)",vr:"LO",name:"FrameLabel",vm:"1",version:"DICOM"},"(0020,9518)":{tag:"(0020,9518)",vr:"US",name:"AcquisitionIndex",vm:"1-n",version:"DICOM"},"(0020,9529)":{tag:"(0020,9529)",vr:"SQ",name:"ContributingSOPInstancesReferenceSequence",vm:"1",version:"DICOM"},"(0020,9536)":{tag:"(0020,9536)",vr:"US",name:"ReconstructionIndex",vm:"1",version:"DICOM"},"(0022,0001)":{tag:"(0022,0001)",vr:"US",name:"LightPathFilterPassThroughWavelength",vm:"1",version:"DICOM"},"(0022,0002)":{tag:"(0022,0002)",vr:"US",name:"LightPathFilterPassBand",vm:"2",version:"DICOM"},"(0022,0003)":{tag:"(0022,0003)",vr:"US",name:"ImagePathFilterPassThroughWavelength",vm:"1",version:"DICOM"},"(0022,0004)":{tag:"(0022,0004)",vr:"US",name:"ImagePathFilterPassBand",vm:"2",version:"DICOM"},"(0022,0005)":{tag:"(0022,0005)",vr:"CS",name:"PatientEyeMovementCommanded",vm:"1",version:"DICOM"},"(0022,0006)":{tag:"(0022,0006)",vr:"SQ",name:"PatientEyeMovementCommandCodeSequence",vm:"1",version:"DICOM"},"(0022,0007)":{tag:"(0022,0007)",vr:"FL",name:"SphericalLensPower",vm:"1",version:"DICOM"},"(0022,0008)":{tag:"(0022,0008)",vr:"FL",name:"CylinderLensPower",vm:"1",version:"DICOM"},"(0022,0009)":{tag:"(0022,0009)",vr:"FL",name:"CylinderAxis",vm:"1",version:"DICOM"},"(0022,000A)":{tag:"(0022,000A)",vr:"FL",name:"EmmetropicMagnification",vm:"1",version:"DICOM"},"(0022,000B)":{tag:"(0022,000B)",vr:"FL",name:"IntraOcularPressure",vm:"1",version:"DICOM"},"(0022,000C)":{tag:"(0022,000C)",vr:"FL",name:"HorizontalFieldOfView",vm:"1",version:"DICOM"},"(0022,000D)":{tag:"(0022,000D)",vr:"CS",name:"PupilDilated",vm:"1",version:"DICOM"},"(0022,000E)":{tag:"(0022,000E)",vr:"FL",name:"DegreeOfDilation",vm:"1",version:"DICOM"},"(0022,0010)":{tag:"(0022,0010)",vr:"FL",name:"StereoBaselineAngle",vm:"1",version:"DICOM"},"(0022,0011)":{tag:"(0022,0011)",vr:"FL",name:"StereoBaselineDisplacement",vm:"1",version:"DICOM"},"(0022,0012)":{tag:"(0022,0012)",vr:"FL",name:"StereoHorizontalPixelOffset",vm:"1",version:"DICOM"},"(0022,0013)":{tag:"(0022,0013)",vr:"FL",name:"StereoVerticalPixelOffset",vm:"1",version:"DICOM"},"(0022,0014)":{tag:"(0022,0014)",vr:"FL",name:"StereoRotation",vm:"1",version:"DICOM"},"(0022,0015)":{tag:"(0022,0015)",vr:"SQ",name:"AcquisitionDeviceTypeCodeSequence",vm:"1",version:"DICOM"},"(0022,0016)":{tag:"(0022,0016)",vr:"SQ",name:"IlluminationTypeCodeSequence",vm:"1",version:"DICOM"},"(0022,0017)":{tag:"(0022,0017)",vr:"SQ",name:"LightPathFilterTypeStackCodeSequence",vm:"1",version:"DICOM"},"(0022,0018)":{tag:"(0022,0018)",vr:"SQ",name:"ImagePathFilterTypeStackCodeSequence",vm:"1",version:"DICOM"},"(0022,0019)":{tag:"(0022,0019)",vr:"SQ",name:"LensesCodeSequence",vm:"1",version:"DICOM"},"(0022,001A)":{tag:"(0022,001A)",vr:"SQ",name:"ChannelDescriptionCodeSequence",vm:"1",version:"DICOM"},"(0022,001B)":{tag:"(0022,001B)",vr:"SQ",name:"RefractiveStateSequence",vm:"1",version:"DICOM"},"(0022,001C)":{tag:"(0022,001C)",vr:"SQ",name:"MydriaticAgentCodeSequence",vm:"1",version:"DICOM"},"(0022,001D)":{tag:"(0022,001D)",vr:"SQ",name:"RelativeImagePositionCodeSequence",vm:"1",version:"DICOM"},"(0022,001E)":{tag:"(0022,001E)",vr:"FL",name:"CameraAngleOfView",vm:"1",version:"DICOM"},"(0022,0020)":{tag:"(0022,0020)",vr:"SQ",name:"StereoPairsSequence",vm:"1",version:"DICOM"},"(0022,0021)":{tag:"(0022,0021)",vr:"SQ",name:"LeftImageSequence",vm:"1",version:"DICOM"},"(0022,0022)":{tag:"(0022,0022)",vr:"SQ",name:"RightImageSequence",vm:"1",version:"DICOM"},"(0022,0028)":{tag:"(0022,0028)",vr:"CS",name:"StereoPairsPresent",vm:"1",version:"DICOM"},"(0022,0030)":{tag:"(0022,0030)",vr:"FL",name:"AxialLengthOfTheEye",vm:"1",version:"DICOM"},"(0022,0031)":{tag:"(0022,0031)",vr:"SQ",name:"OphthalmicFrameLocationSequence",vm:"1",version:"DICOM"},"(0022,0032)":{tag:"(0022,0032)",vr:"FL",name:"ReferenceCoordinates",vm:"2-2n",version:"DICOM"},"(0022,0035)":{tag:"(0022,0035)",vr:"FL",name:"DepthSpatialResolution",vm:"1",version:"DICOM"},"(0022,0036)":{tag:"(0022,0036)",vr:"FL",name:"MaximumDepthDistortion",vm:"1",version:"DICOM"},"(0022,0037)":{tag:"(0022,0037)",vr:"FL",name:"AlongScanSpatialResolution",vm:"1",version:"DICOM"},"(0022,0038)":{tag:"(0022,0038)",vr:"FL",name:"MaximumAlongScanDistortion",vm:"1",version:"DICOM"},"(0022,0039)":{tag:"(0022,0039)",vr:"CS",name:"OphthalmicImageOrientation",vm:"1",version:"DICOM"},"(0022,0041)":{tag:"(0022,0041)",vr:"FL",name:"DepthOfTransverseImage",vm:"1",version:"DICOM"},"(0022,0042)":{tag:"(0022,0042)",vr:"SQ",name:"MydriaticAgentConcentrationUnitsSequence",vm:"1",version:"DICOM"},"(0022,0048)":{tag:"(0022,0048)",vr:"FL",name:"AcrossScanSpatialResolution",vm:"1",version:"DICOM"},"(0022,0049)":{tag:"(0022,0049)",vr:"FL",name:"MaximumAcrossScanDistortion",vm:"1",version:"DICOM"},"(0022,004E)":{tag:"(0022,004E)",vr:"DS",name:"MydriaticAgentConcentration",vm:"1",version:"DICOM"},"(0022,0055)":{tag:"(0022,0055)",vr:"FL",name:"IlluminationWaveLength",vm:"1",version:"DICOM"},"(0022,0056)":{tag:"(0022,0056)",vr:"FL",name:"IlluminationPower",vm:"1",version:"DICOM"},"(0022,0057)":{tag:"(0022,0057)",vr:"FL",name:"IlluminationBandwidth",vm:"1",version:"DICOM"},"(0022,0058)":{tag:"(0022,0058)",vr:"SQ",name:"MydriaticAgentSequence",vm:"1",version:"DICOM"},"(0022,1007)":{tag:"(0022,1007)",vr:"SQ",name:"OphthalmicAxialMeasurementsRightEyeSequence",vm:"1",version:"DICOM"},"(0022,1008)":{tag:"(0022,1008)",vr:"SQ",name:"OphthalmicAxialMeasurementsLeftEyeSequence",vm:"1",version:"DICOM"},"(0022,1009)":{tag:"(0022,1009)",vr:"CS",name:"OphthalmicAxialMeasurementsDeviceType",vm:"1",version:"DICOM"},"(0022,1010)":{tag:"(0022,1010)",vr:"CS",name:"OphthalmicAxialLengthMeasurementsType",vm:"1",version:"DICOM"},"(0022,1012)":{tag:"(0022,1012)",vr:"SQ",name:"OphthalmicAxialLengthSequence",vm:"1",version:"DICOM"},"(0022,1019)":{tag:"(0022,1019)",vr:"FL",name:"OphthalmicAxialLength",vm:"1",version:"DICOM"},"(0022,1024)":{tag:"(0022,1024)",vr:"SQ",name:"LensStatusCodeSequence",vm:"1",version:"DICOM"},"(0022,1025)":{tag:"(0022,1025)",vr:"SQ",name:"VitreousStatusCodeSequence",vm:"1",version:"DICOM"},"(0022,1028)":{tag:"(0022,1028)",vr:"SQ",name:"IOLFormulaCodeSequence",vm:"1",version:"DICOM"},"(0022,1029)":{tag:"(0022,1029)",vr:"LO",name:"IOLFormulaDetail",vm:"1",version:"DICOM"},"(0022,1033)":{tag:"(0022,1033)",vr:"FL",name:"KeratometerIndex",vm:"1",version:"DICOM"},"(0022,1035)":{tag:"(0022,1035)",vr:"SQ",name:"SourceOfOphthalmicAxialLengthCodeSequence",vm:"1",version:"DICOM"},"(0022,1036)":{tag:"(0022,1036)",vr:"SQ",name:"SourceOfCornealSizeDataCodeSequence",vm:"1",version:"DICOM"},"(0022,1037)":{tag:"(0022,1037)",vr:"FL",name:"TargetRefraction",vm:"1",version:"DICOM"},"(0022,1039)":{tag:"(0022,1039)",vr:"CS",name:"RefractiveProcedureOccurred",vm:"1",version:"DICOM"},"(0022,1040)":{tag:"(0022,1040)",vr:"SQ",name:"RefractiveSurgeryTypeCodeSequence",vm:"1",version:"DICOM"},"(0022,1044)":{tag:"(0022,1044)",vr:"SQ",name:"OphthalmicUltrasoundMethodCodeSequence",vm:"1",version:"DICOM"},"(0022,1045)":{tag:"(0022,1045)",vr:"SQ",name:"SurgicallyInducedAstigmatismSequence",vm:"1",version:"DICOM"},"(0022,1046)":{tag:"(0022,1046)",vr:"CS",name:"TypeOfOpticalCorrection",vm:"1",version:"DICOM"},"(0022,1047)":{tag:"(0022,1047)",vr:"SQ",name:"ToricIOLPowerSequence",vm:"1",version:"DICOM"},"(0022,1048)":{tag:"(0022,1048)",vr:"SQ",name:"PredictedToricErrorSequence",vm:"1",version:"DICOM"},"(0022,1049)":{tag:"(0022,1049)",vr:"CS",name:"PreSelectedForImplantation",vm:"1",version:"DICOM"},"(0022,104A)":{tag:"(0022,104A)",vr:"SQ",name:"ToricIOLPowerForExactEmmetropiaSequence",vm:"1",version:"DICOM"},"(0022,104B)":{tag:"(0022,104B)",vr:"SQ",name:"ToricIOLPowerForExactTargetRefractionSequence",vm:"1",version:"DICOM"},"(0022,1050)":{tag:"(0022,1050)",vr:"SQ",name:"OphthalmicAxialLengthMeasurementsSequence",vm:"1",version:"DICOM"},"(0022,1053)":{tag:"(0022,1053)",vr:"FL",name:"IOLPower",vm:"1",version:"DICOM"},"(0022,1054)":{tag:"(0022,1054)",vr:"FL",name:"PredictedRefractiveError",vm:"1",version:"DICOM"},"(0022,1059)":{tag:"(0022,1059)",vr:"FL",name:"OphthalmicAxialLengthVelocity",vm:"1",version:"DICOM"},"(0022,1065)":{tag:"(0022,1065)",vr:"LO",name:"LensStatusDescription",vm:"1",version:"DICOM"},"(0022,1066)":{tag:"(0022,1066)",vr:"LO",name:"VitreousStatusDescription",vm:"1",version:"DICOM"},"(0022,1090)":{tag:"(0022,1090)",vr:"SQ",name:"IOLPowerSequence",vm:"1",version:"DICOM"},"(0022,1092)":{tag:"(0022,1092)",vr:"SQ",name:"LensConstantSequence",vm:"1",version:"DICOM"},"(0022,1093)":{tag:"(0022,1093)",vr:"LO",name:"IOLManufacturer",vm:"1",version:"DICOM"},"(0022,1095)":{tag:"(0022,1095)",vr:"LO",name:"ImplantName",vm:"1",version:"DICOM"},"(0022,1096)":{tag:"(0022,1096)",vr:"SQ",name:"KeratometryMeasurementTypeCodeSequence",vm:"1",version:"DICOM"},"(0022,1097)":{tag:"(0022,1097)",vr:"LO",name:"ImplantPartNumber",vm:"1",version:"DICOM"},"(0022,1100)":{tag:"(0022,1100)",vr:"SQ",name:"ReferencedOphthalmicAxialMeasurementsSequence",vm:"1",version:"DICOM"},"(0022,1101)":{tag:"(0022,1101)",vr:"SQ",name:"OphthalmicAxialLengthMeasurementsSegmentNameCodeSequence",vm:"1",version:"DICOM"},"(0022,1103)":{tag:"(0022,1103)",vr:"SQ",name:"RefractiveErrorBeforeRefractiveSurgeryCodeSequence",vm:"1",version:"DICOM"},"(0022,1121)":{tag:"(0022,1121)",vr:"FL",name:"IOLPowerForExactEmmetropia",vm:"1",version:"DICOM"},"(0022,1122)":{tag:"(0022,1122)",vr:"FL",name:"IOLPowerForExactTargetRefraction",vm:"1",version:"DICOM"},"(0022,1125)":{tag:"(0022,1125)",vr:"SQ",name:"AnteriorChamberDepthDefinitionCodeSequence",vm:"1",version:"DICOM"},"(0022,1127)":{tag:"(0022,1127)",vr:"SQ",name:"LensThicknessSequence",vm:"1",version:"DICOM"},"(0022,1128)":{tag:"(0022,1128)",vr:"SQ",name:"AnteriorChamberDepthSequence",vm:"1",version:"DICOM"},"(0022,112A)":{tag:"(0022,112A)",vr:"SQ",name:"CalculationCommentSequence",vm:"1",version:"DICOM"},"(0022,112B)":{tag:"(0022,112B)",vr:"CS",name:"CalculationCommentType",vm:"1",version:"DICOM"},"(0022,112C)":{tag:"(0022,112C)",vr:"LT",name:"CalculationComment",vm:"1",version:"DICOM"},"(0022,1130)":{tag:"(0022,1130)",vr:"FL",name:"LensThickness",vm:"1",version:"DICOM"},"(0022,1131)":{tag:"(0022,1131)",vr:"FL",name:"AnteriorChamberDepth",vm:"1",version:"DICOM"},"(0022,1132)":{tag:"(0022,1132)",vr:"SQ",name:"SourceOfLensThicknessDataCodeSequence",vm:"1",version:"DICOM"},"(0022,1133)":{tag:"(0022,1133)",vr:"SQ",name:"SourceOfAnteriorChamberDepthDataCodeSequence",vm:"1",version:"DICOM"},"(0022,1134)":{tag:"(0022,1134)",vr:"SQ",name:"SourceOfRefractiveMeasurementsSequence",vm:"1",version:"DICOM"},"(0022,1135)":{tag:"(0022,1135)",vr:"SQ",name:"SourceOfRefractiveMeasurementsCodeSequence",vm:"1",version:"DICOM"},"(0022,1140)":{tag:"(0022,1140)",vr:"CS",name:"OphthalmicAxialLengthMeasurementModified",vm:"1",version:"DICOM"},"(0022,1150)":{tag:"(0022,1150)",vr:"SQ",name:"OphthalmicAxialLengthDataSourceCodeSequence",vm:"1",version:"DICOM"},"(0022,1155)":{tag:"(0022,1155)",vr:"FL",name:"SignalToNoiseRatio",vm:"1",version:"DICOM"},"(0022,1159)":{tag:"(0022,1159)",vr:"LO",name:"OphthalmicAxialLengthDataSourceDescription",vm:"1",version:"DICOM"},"(0022,1210)":{tag:"(0022,1210)",vr:"SQ",name:"OphthalmicAxialLengthMeasurementsTotalLengthSequence",vm:"1",version:"DICOM"},"(0022,1211)":{tag:"(0022,1211)",vr:"SQ",name:"OphthalmicAxialLengthMeasurementsSegmentalLengthSequence",vm:"1",version:"DICOM"},"(0022,1212)":{tag:"(0022,1212)",vr:"SQ",name:"OphthalmicAxialLengthMeasurementsLengthSummationSequence",vm:"1",version:"DICOM"},"(0022,1220)":{tag:"(0022,1220)",vr:"SQ",name:"UltrasoundOphthalmicAxialLengthMeasurementsSequence",vm:"1",version:"DICOM"},"(0022,1225)":{tag:"(0022,1225)",vr:"SQ",name:"OpticalOphthalmicAxialLengthMeasurementsSequence",vm:"1",version:"DICOM"},"(0022,1230)":{tag:"(0022,1230)",vr:"SQ",name:"UltrasoundSelectedOphthalmicAxialLengthSequence",vm:"1",version:"DICOM"},"(0022,1250)":{tag:"(0022,1250)",vr:"SQ",name:"OphthalmicAxialLengthSelectionMethodCodeSequence",vm:"1",version:"DICOM"},"(0022,1255)":{tag:"(0022,1255)",vr:"SQ",name:"OpticalSelectedOphthalmicAxialLengthSequence",vm:"1",version:"DICOM"},"(0022,1257)":{tag:"(0022,1257)",vr:"SQ",name:"SelectedSegmentalOphthalmicAxialLengthSequence",vm:"1",version:"DICOM"},"(0022,1260)":{tag:"(0022,1260)",vr:"SQ",name:"SelectedTotalOphthalmicAxialLengthSequence",vm:"1",version:"DICOM"},"(0022,1262)":{tag:"(0022,1262)",vr:"SQ",name:"OphthalmicAxialLengthQualityMetricSequence",vm:"1",version:"DICOM"},"(0022,1300)":{tag:"(0022,1300)",vr:"SQ",name:"IntraocularLensCalculationsRightEyeSequence",vm:"1",version:"DICOM"},"(0022,1310)":{tag:"(0022,1310)",vr:"SQ",name:"IntraocularLensCalculationsLeftEyeSequence",vm:"1",version:"DICOM"},"(0022,1330)":{tag:"(0022,1330)",vr:"SQ",name:"ReferencedOphthalmicAxialLengthMeasurementQCImageSequence",vm:"1",version:"DICOM"},"(0022,1415)":{tag:"(0022,1415)",vr:"CS",name:"OphthalmicMappingDeviceType",vm:"1",version:"DICOM"},"(0022,1420)":{tag:"(0022,1420)",vr:"SQ",name:"AcquisitionMethodCodeSequence",vm:"1",version:"DICOM"},"(0022,1423)":{tag:"(0022,1423)",vr:"SQ",name:"AcquisitionMethodAlgorithmSequence",vm:"1",version:"DICOM"},"(0022,1436)":{tag:"(0022,1436)",vr:"SQ",name:"OphthalmicThicknessMapTypeCodeSequence",vm:"1",version:"DICOM"},"(0022,1443)":{tag:"(0022,1443)",vr:"SQ",name:"OphthalmicThicknessMappingNormalsSequence",vm:"1",version:"DICOM"},"(0022,1445)":{tag:"(0022,1445)",vr:"SQ",name:"RetinalThicknessDefinitionCodeSequence",vm:"1",version:"DICOM"},"(0022,1450)":{tag:"(0022,1450)",vr:"SQ",name:"PixelValueMappingToCodedConceptSequence",vm:"1",version:"DICOM"},"(0022,1452)":{tag:"(0022,1452)",vr:"xs",name:"MappedPixelValue",vm:"1",version:"DICOM"},"(0022,1454)":{tag:"(0022,1454)",vr:"LO",name:"PixelValueMappingExplanation",vm:"1",version:"DICOM"},"(0022,1458)":{tag:"(0022,1458)",vr:"SQ",name:"OphthalmicThicknessMapQualityThresholdSequence",vm:"1",version:"DICOM"},"(0022,1460)":{tag:"(0022,1460)",vr:"FL",name:"OphthalmicThicknessMapThresholdQualityRating",vm:"1",version:"DICOM"},"(0022,1463)":{tag:"(0022,1463)",vr:"FL",name:"AnatomicStructureReferencePoint",vm:"2",version:"DICOM"},"(0022,1465)":{tag:"(0022,1465)",vr:"SQ",name:"RegistrationToLocalizerSequence",vm:"1",version:"DICOM"},"(0022,1466)":{tag:"(0022,1466)",vr:"CS",name:"RegisteredLocalizerUnits",vm:"1",version:"DICOM"},"(0022,1467)":{tag:"(0022,1467)",vr:"FL",name:"RegisteredLocalizerTopLeftHandCorner",vm:"2",version:"DICOM"},"(0022,1468)":{tag:"(0022,1468)",vr:"FL",name:"RegisteredLocalizerBottomRightHandCorner",vm:"2",version:"DICOM"},"(0022,1470)":{tag:"(0022,1470)",vr:"SQ",name:"OphthalmicThicknessMapQualityRatingSequence",vm:"1",version:"DICOM"},"(0022,1472)":{tag:"(0022,1472)",vr:"SQ",name:"RelevantOPTAttributesSequence",vm:"1",version:"DICOM"},"(0022,1512)":{tag:"(0022,1512)",vr:"SQ",name:"TransformationMethodCodeSequence",vm:"1",version:"DICOM"},"(0022,1513)":{tag:"(0022,1513)",vr:"SQ",name:"TransformationAlgorithmSequence",vm:"1",version:"DICOM"},"(0022,1515)":{tag:"(0022,1515)",vr:"CS",name:"OphthalmicAxialLengthMethod",vm:"1",version:"DICOM"},"(0022,1517)":{tag:"(0022,1517)",vr:"FL",name:"OphthalmicFOV",vm:"1",version:"DICOM"},"(0022,1518)":{tag:"(0022,1518)",vr:"SQ",name:"TwoDimensionalToThreeDimensionalMapSequence",vm:"1",version:"DICOM"},"(0022,1525)":{tag:"(0022,1525)",vr:"SQ",name:"WideFieldOphthalmicPhotographyQualityRatingSequence",vm:"1",version:"DICOM"},"(0022,1526)":{tag:"(0022,1526)",vr:"SQ",name:"WideFieldOphthalmicPhotographyQualityThresholdSequence",vm:"1",version:"DICOM"},"(0022,1527)":{tag:"(0022,1527)",vr:"FL",name:"WideFieldOphthalmicPhotographyThresholdQualityRating",vm:"1",version:"DICOM"},"(0022,1528)":{tag:"(0022,1528)",vr:"FL",name:"XCoordinatesCenterPixelViewAngle",vm:"1",version:"DICOM"},"(0022,1529)":{tag:"(0022,1529)",vr:"FL",name:"YCoordinatesCenterPixelViewAngle",vm:"1",version:"DICOM"},"(0022,1530)":{tag:"(0022,1530)",vr:"UL",name:"NumberOfMapPoints",vm:"1",version:"DICOM"},"(0022,1531)":{tag:"(0022,1531)",vr:"OF",name:"TwoDimensionalToThreeDimensionalMapData",vm:"1",version:"DICOM"},"(0022,1612)":{tag:"(0022,1612)",vr:"SQ",name:"DerivationAlgorithmSequence",vm:"1",version:"DICOM"},"(0022,1615)":{tag:"(0022,1615)",vr:"SQ",name:"OphthalmicImageTypeCodeSequence",vm:"1",version:"DICOM"},"(0022,1616)":{tag:"(0022,1616)",vr:"LO",name:"OphthalmicImageTypeDescription",vm:"1",version:"DICOM"},"(0022,1618)":{tag:"(0022,1618)",vr:"SQ",name:"ScanPatternTypeCodeSequence",vm:"1",version:"DICOM"},"(0022,1620)":{tag:"(0022,1620)",vr:"SQ",name:"ReferencedSurfaceMeshIdentificationSequence",vm:"1",version:"DICOM"},"(0022,1622)":{tag:"(0022,1622)",vr:"CS",name:"OphthalmicVolumetricPropertiesFlag",vm:"1",version:"DICOM"},"(0022,1624)":{tag:"(0022,1624)",vr:"FL",name:"OphthalmicAnatomicReferencePointXCoordinate",vm:"1",version:"DICOM"},"(0022,1626)":{tag:"(0022,1626)",vr:"FL",name:"OphthalmicAnatomicReferencePointYCoordinate",vm:"1",version:"DICOM"},"(0022,1628)":{tag:"(0022,1628)",vr:"SQ",name:"OphthalmicEnFaceImageQualityRatingSequence",vm:"1",version:"DICOM"},"(0022,1630)":{tag:"(0022,1630)",vr:"DS",name:"QualityThreshold",vm:"1",version:"DICOM"},"(0022,1640)":{tag:"(0022,1640)",vr:"SQ",name:"OCTBscanAnalysisAcquisitionParametersSequence",vm:"1",version:"DICOM"},"(0022,1642)":{tag:"(0022,1642)",vr:"UL",name:"NumberofBscansPerFrame",vm:"1",version:"DICOM"},"(0022,1643)":{tag:"(0022,1643)",vr:"FL",name:"BscanSlabThickness",vm:"1",version:"DICOM"},"(0022,1644)":{tag:"(0022,1644)",vr:"FL",name:"DistanceBetweenBscanSlabs",vm:"1",version:"DICOM"},"(0022,1645)":{tag:"(0022,1645)",vr:"FL",name:"BscanCycleTime",vm:"1",version:"DICOM"},"(0022,1646)":{tag:"(0022,1646)",vr:"FL",name:"BscanCycleTimeVector",vm:"1-n",version:"DICOM"},"(0022,1649)":{tag:"(0022,1649)",vr:"FL",name:"AscanRate",vm:"1",version:"DICOM"},"(0022,1650)":{tag:"(0022,1650)",vr:"FL",name:"BscanRate",vm:"1",version:"DICOM"},"(0022,1658)":{tag:"(0022,1658)",vr:"UL",name:"SurfaceMeshZPixelOffset",vm:"1",version:"DICOM"},"(0024,0010)":{tag:"(0024,0010)",vr:"FL",name:"VisualFieldHorizontalExtent",vm:"1",version:"DICOM"},"(0024,0011)":{tag:"(0024,0011)",vr:"FL",name:"VisualFieldVerticalExtent",vm:"1",version:"DICOM"},"(0024,0012)":{tag:"(0024,0012)",vr:"CS",name:"VisualFieldShape",vm:"1",version:"DICOM"},"(0024,0016)":{tag:"(0024,0016)",vr:"SQ",name:"ScreeningTestModeCodeSequence",vm:"1",version:"DICOM"},"(0024,0018)":{tag:"(0024,0018)",vr:"FL",name:"MaximumStimulusLuminance",vm:"1",version:"DICOM"},"(0024,0020)":{tag:"(0024,0020)",vr:"FL",name:"BackgroundLuminance",vm:"1",version:"DICOM"},"(0024,0021)":{tag:"(0024,0021)",vr:"SQ",name:"StimulusColorCodeSequence",vm:"1",version:"DICOM"},"(0024,0024)":{tag:"(0024,0024)",vr:"SQ",name:"BackgroundIlluminationColorCodeSequence",vm:"1",version:"DICOM"},"(0024,0025)":{tag:"(0024,0025)",vr:"FL",name:"StimulusArea",vm:"1",version:"DICOM"},"(0024,0028)":{tag:"(0024,0028)",vr:"FL",name:"StimulusPresentationTime",vm:"1",version:"DICOM"},"(0024,0032)":{tag:"(0024,0032)",vr:"SQ",name:"FixationSequence",vm:"1",version:"DICOM"},"(0024,0033)":{tag:"(0024,0033)",vr:"SQ",name:"FixationMonitoringCodeSequence",vm:"1",version:"DICOM"},"(0024,0034)":{tag:"(0024,0034)",vr:"SQ",name:"VisualFieldCatchTrialSequence",vm:"1",version:"DICOM"},"(0024,0035)":{tag:"(0024,0035)",vr:"US",name:"FixationCheckedQuantity",vm:"1",version:"DICOM"},"(0024,0036)":{tag:"(0024,0036)",vr:"US",name:"PatientNotProperlyFixatedQuantity",vm:"1",version:"DICOM"},"(0024,0037)":{tag:"(0024,0037)",vr:"CS",name:"PresentedVisualStimuliDataFlag",vm:"1",version:"DICOM"},"(0024,0038)":{tag:"(0024,0038)",vr:"US",name:"NumberOfVisualStimuli",vm:"1",version:"DICOM"},"(0024,0039)":{tag:"(0024,0039)",vr:"CS",name:"ExcessiveFixationLossesDataFlag",vm:"1",version:"DICOM"},"(0024,0040)":{tag:"(0024,0040)",vr:"CS",name:"ExcessiveFixationLosses",vm:"1",version:"DICOM"},"(0024,0042)":{tag:"(0024,0042)",vr:"US",name:"StimuliRetestingQuantity",vm:"1",version:"DICOM"},"(0024,0044)":{tag:"(0024,0044)",vr:"LT",name:"CommentsOnPatientPerformanceOfVisualField",vm:"1",version:"DICOM"},"(0024,0045)":{tag:"(0024,0045)",vr:"CS",name:"FalseNegativesEstimateFlag",vm:"1",version:"DICOM"},"(0024,0046)":{tag:"(0024,0046)",vr:"FL",name:"FalseNegativesEstimate",vm:"1",version:"DICOM"},"(0024,0048)":{tag:"(0024,0048)",vr:"US",name:"NegativeCatchTrialsQuantity",vm:"1",version:"DICOM"},"(0024,0050)":{tag:"(0024,0050)",vr:"US",name:"FalseNegativesQuantity",vm:"1",version:"DICOM"},"(0024,0051)":{tag:"(0024,0051)",vr:"CS",name:"ExcessiveFalseNegativesDataFlag",vm:"1",version:"DICOM"},"(0024,0052)":{tag:"(0024,0052)",vr:"CS",name:"ExcessiveFalseNegatives",vm:"1",version:"DICOM"},"(0024,0053)":{tag:"(0024,0053)",vr:"CS",name:"FalsePositivesEstimateFlag",vm:"1",version:"DICOM"},"(0024,0054)":{tag:"(0024,0054)",vr:"FL",name:"FalsePositivesEstimate",vm:"1",version:"DICOM"},"(0024,0055)":{tag:"(0024,0055)",vr:"CS",name:"CatchTrialsDataFlag",vm:"1",version:"DICOM"},"(0024,0056)":{tag:"(0024,0056)",vr:"US",name:"PositiveCatchTrialsQuantity",vm:"1",version:"DICOM"},"(0024,0057)":{tag:"(0024,0057)",vr:"CS",name:"TestPointNormalsDataFlag",vm:"1",version:"DICOM"},"(0024,0058)":{tag:"(0024,0058)",vr:"SQ",name:"TestPointNormalsSequence",vm:"1",version:"DICOM"},"(0024,0059)":{tag:"(0024,0059)",vr:"CS",name:"GlobalDeviationProbabilityNormalsFlag",vm:"1",version:"DICOM"},"(0024,0060)":{tag:"(0024,0060)",vr:"US",name:"FalsePositivesQuantity",vm:"1",version:"DICOM"},"(0024,0061)":{tag:"(0024,0061)",vr:"CS",name:"ExcessiveFalsePositivesDataFlag",vm:"1",version:"DICOM"},"(0024,0062)":{tag:"(0024,0062)",vr:"CS",name:"ExcessiveFalsePositives",vm:"1",version:"DICOM"},"(0024,0063)":{tag:"(0024,0063)",vr:"CS",name:"VisualFieldTestNormalsFlag",vm:"1",version:"DICOM"},"(0024,0064)":{tag:"(0024,0064)",vr:"SQ",name:"ResultsNormalsSequence",vm:"1",version:"DICOM"},"(0024,0065)":{tag:"(0024,0065)",vr:"SQ",name:"AgeCorrectedSensitivityDeviationAlgorithmSequence",vm:"1",version:"DICOM"},"(0024,0066)":{tag:"(0024,0066)",vr:"FL",name:"GlobalDeviationFromNormal",vm:"1",version:"DICOM"},"(0024,0067)":{tag:"(0024,0067)",vr:"SQ",name:"GeneralizedDefectSensitivityDeviationAlgorithmSequence",vm:"1",version:"DICOM"},"(0024,0068)":{tag:"(0024,0068)",vr:"FL",name:"LocalizedDeviationFromNormal",vm:"1",version:"DICOM"},"(0024,0069)":{tag:"(0024,0069)",vr:"LO",name:"PatientReliabilityIndicator",vm:"1",version:"DICOM"},"(0024,0070)":{tag:"(0024,0070)",vr:"FL",name:"VisualFieldMeanSensitivity",vm:"1",version:"DICOM"},"(0024,0071)":{tag:"(0024,0071)",vr:"FL",name:"GlobalDeviationProbability",vm:"1",version:"DICOM"},"(0024,0072)":{tag:"(0024,0072)",vr:"CS",name:"LocalDeviationProbabilityNormalsFlag",vm:"1",version:"DICOM"},"(0024,0073)":{tag:"(0024,0073)",vr:"FL",name:"LocalizedDeviationProbability",vm:"1",version:"DICOM"},"(0024,0074)":{tag:"(0024,0074)",vr:"CS",name:"ShortTermFluctuationCalculated",vm:"1",version:"DICOM"},"(0024,0075)":{tag:"(0024,0075)",vr:"FL",name:"ShortTermFluctuation",vm:"1",version:"DICOM"},"(0024,0076)":{tag:"(0024,0076)",vr:"CS",name:"ShortTermFluctuationProbabilityCalculated",vm:"1",version:"DICOM"},"(0024,0077)":{tag:"(0024,0077)",vr:"FL",name:"ShortTermFluctuationProbability",vm:"1",version:"DICOM"},"(0024,0078)":{tag:"(0024,0078)",vr:"CS",name:"CorrectedLocalizedDeviationFromNormalCalculated",vm:"1",version:"DICOM"},"(0024,0079)":{tag:"(0024,0079)",vr:"FL",name:"CorrectedLocalizedDeviationFromNormal",vm:"1",version:"DICOM"},"(0024,0080)":{tag:"(0024,0080)",vr:"CS",name:"CorrectedLocalizedDeviationFromNormalProbabilityCalculated",vm:"1",version:"DICOM"},"(0024,0081)":{tag:"(0024,0081)",vr:"FL",name:"CorrectedLocalizedDeviationFromNormalProbability",vm:"1",version:"DICOM"},"(0024,0083)":{tag:"(0024,0083)",vr:"SQ",name:"GlobalDeviationProbabilitySequence",vm:"1",version:"DICOM"},"(0024,0085)":{tag:"(0024,0085)",vr:"SQ",name:"LocalizedDeviationProbabilitySequence",vm:"1",version:"DICOM"},"(0024,0086)":{tag:"(0024,0086)",vr:"CS",name:"FovealSensitivityMeasured",vm:"1",version:"DICOM"},"(0024,0087)":{tag:"(0024,0087)",vr:"FL",name:"FovealSensitivity",vm:"1",version:"DICOM"},"(0024,0088)":{tag:"(0024,0088)",vr:"FL",name:"VisualFieldTestDuration",vm:"1",version:"DICOM"},"(0024,0089)":{tag:"(0024,0089)",vr:"SQ",name:"VisualFieldTestPointSequence",vm:"1",version:"DICOM"},"(0024,0090)":{tag:"(0024,0090)",vr:"FL",name:"VisualFieldTestPointXCoordinate",vm:"1",version:"DICOM"},"(0024,0091)":{tag:"(0024,0091)",vr:"FL",name:"VisualFieldTestPointYCoordinate",vm:"1",version:"DICOM"},"(0024,0092)":{tag:"(0024,0092)",vr:"FL",name:"AgeCorrectedSensitivityDeviationValue",vm:"1",version:"DICOM"},"(0024,0093)":{tag:"(0024,0093)",vr:"CS",name:"StimulusResults",vm:"1",version:"DICOM"},"(0024,0094)":{tag:"(0024,0094)",vr:"FL",name:"SensitivityValue",vm:"1",version:"DICOM"},"(0024,0095)":{tag:"(0024,0095)",vr:"CS",name:"RetestStimulusSeen",vm:"1",version:"DICOM"},"(0024,0096)":{tag:"(0024,0096)",vr:"FL",name:"RetestSensitivityValue",vm:"1",version:"DICOM"},"(0024,0097)":{tag:"(0024,0097)",vr:"SQ",name:"VisualFieldTestPointNormalsSequence",vm:"1",version:"DICOM"},"(0024,0098)":{tag:"(0024,0098)",vr:"FL",name:"QuantifiedDefect",vm:"1",version:"DICOM"},"(0024,0100)":{tag:"(0024,0100)",vr:"FL",name:"AgeCorrectedSensitivityDeviationProbabilityValue",vm:"1",version:"DICOM"},"(0024,0102)":{tag:"(0024,0102)",vr:"CS",name:"GeneralizedDefectCorrectedSensitivityDeviationFlag",vm:"1",version:"DICOM"},"(0024,0103)":{tag:"(0024,0103)",vr:"FL",name:"GeneralizedDefectCorrectedSensitivityDeviationValue",vm:"1",version:"DICOM"},"(0024,0104)":{tag:"(0024,0104)",vr:"FL",name:"GeneralizedDefectCorrectedSensitivityDeviationProbabilityValue",vm:"1",version:"DICOM"},"(0024,0105)":{tag:"(0024,0105)",vr:"FL",name:"MinimumSensitivityValue",vm:"1",version:"DICOM"},"(0024,0106)":{tag:"(0024,0106)",vr:"CS",name:"BlindSpotLocalized",vm:"1",version:"DICOM"},"(0024,0107)":{tag:"(0024,0107)",vr:"FL",name:"BlindSpotXCoordinate",vm:"1",version:"DICOM"},"(0024,0108)":{tag:"(0024,0108)",vr:"FL",name:"BlindSpotYCoordinate",vm:"1",version:"DICOM"},"(0024,0110)":{tag:"(0024,0110)",vr:"SQ",name:"VisualAcuityMeasurementSequence",vm:"1",version:"DICOM"},"(0024,0112)":{tag:"(0024,0112)",vr:"SQ",name:"RefractiveParametersUsedOnPatientSequence",vm:"1",version:"DICOM"},"(0024,0113)":{tag:"(0024,0113)",vr:"CS",name:"MeasurementLaterality",vm:"1",version:"DICOM"},"(0024,0114)":{tag:"(0024,0114)",vr:"SQ",name:"OphthalmicPatientClinicalInformationLeftEyeSequence",vm:"1",version:"DICOM"},"(0024,0115)":{tag:"(0024,0115)",vr:"SQ",name:"OphthalmicPatientClinicalInformationRightEyeSequence",vm:"1",version:"DICOM"},"(0024,0117)":{tag:"(0024,0117)",vr:"CS",name:"FovealPointNormativeDataFlag",vm:"1",version:"DICOM"},"(0024,0118)":{tag:"(0024,0118)",vr:"FL",name:"FovealPointProbabilityValue",vm:"1",version:"DICOM"},"(0024,0120)":{tag:"(0024,0120)",vr:"CS",name:"ScreeningBaselineMeasured",vm:"1",version:"DICOM"},"(0024,0122)":{tag:"(0024,0122)",vr:"SQ",name:"ScreeningBaselineMeasuredSequence",vm:"1",version:"DICOM"},"(0024,0124)":{tag:"(0024,0124)",vr:"CS",name:"ScreeningBaselineType",vm:"1",version:"DICOM"},"(0024,0126)":{tag:"(0024,0126)",vr:"FL",name:"ScreeningBaselineValue",vm:"1",version:"DICOM"},"(0024,0202)":{tag:"(0024,0202)",vr:"LO",name:"AlgorithmSource",vm:"1",version:"DICOM"},"(0024,0306)":{tag:"(0024,0306)",vr:"LO",name:"DataSetName",vm:"1",version:"DICOM"},"(0024,0307)":{tag:"(0024,0307)",vr:"LO",name:"DataSetVersion",vm:"1",version:"DICOM"},"(0024,0308)":{tag:"(0024,0308)",vr:"LO",name:"DataSetSource",vm:"1",version:"DICOM"},"(0024,0309)":{tag:"(0024,0309)",vr:"LO",name:"DataSetDescription",vm:"1",version:"DICOM"},"(0024,0317)":{tag:"(0024,0317)",vr:"SQ",name:"VisualFieldTestReliabilityGlobalIndexSequence",vm:"1",version:"DICOM"},"(0024,0320)":{tag:"(0024,0320)",vr:"SQ",name:"VisualFieldGlobalResultsIndexSequence",vm:"1",version:"DICOM"},"(0024,0325)":{tag:"(0024,0325)",vr:"SQ",name:"DataObservationSequence",vm:"1",version:"DICOM"},"(0024,0338)":{tag:"(0024,0338)",vr:"CS",name:"IndexNormalsFlag",vm:"1",version:"DICOM"},"(0024,0341)":{tag:"(0024,0341)",vr:"FL",name:"IndexProbability",vm:"1",version:"DICOM"},"(0024,0344)":{tag:"(0024,0344)",vr:"SQ",name:"IndexProbabilitySequence",vm:"1",version:"DICOM"},"(0028,0002)":{tag:"(0028,0002)",vr:"US",name:"SamplesPerPixel",vm:"1",version:"DICOM"},"(0028,0003)":{tag:"(0028,0003)",vr:"US",name:"SamplesPerPixelUsed",vm:"1",version:"DICOM"},"(0028,0004)":{tag:"(0028,0004)",vr:"CS",name:"PhotometricInterpretation",vm:"1",version:"DICOM"},"(0028,0006)":{tag:"(0028,0006)",vr:"US",name:"PlanarConfiguration",vm:"1",version:"DICOM"},"(0028,0008)":{tag:"(0028,0008)",vr:"IS",name:"NumberOfFrames",vm:"1",version:"DICOM"},"(0028,0009)":{tag:"(0028,0009)",vr:"AT",name:"FrameIncrementPointer",vm:"1-n",version:"DICOM"},"(0028,000A)":{tag:"(0028,000A)",vr:"AT",name:"FrameDimensionPointer",vm:"1-n",version:"DICOM"},"(0028,0010)":{tag:"(0028,0010)",vr:"US",name:"Rows",vm:"1",version:"DICOM"},"(0028,0011)":{tag:"(0028,0011)",vr:"US",name:"Columns",vm:"1",version:"DICOM"},"(0028,0014)":{tag:"(0028,0014)",vr:"US",name:"UltrasoundColorDataPresent",vm:"1",version:"DICOM"},"(0028,0030)":{tag:"(0028,0030)",vr:"DS",name:"PixelSpacing",vm:"2",version:"DICOM"},"(0028,0031)":{tag:"(0028,0031)",vr:"DS",name:"ZoomFactor",vm:"2",version:"DICOM"},"(0028,0032)":{tag:"(0028,0032)",vr:"DS",name:"ZoomCenter",vm:"2",version:"DICOM"},"(0028,0034)":{tag:"(0028,0034)",vr:"IS",name:"PixelAspectRatio",vm:"2",version:"DICOM"},"(0028,0051)":{tag:"(0028,0051)",vr:"CS",name:"CorrectedImage",vm:"1-n",version:"DICOM"},"(0028,0100)":{tag:"(0028,0100)",vr:"US",name:"BitsAllocated",vm:"1",version:"DICOM"},"(0028,0101)":{tag:"(0028,0101)",vr:"US",name:"BitsStored",vm:"1",version:"DICOM"},"(0028,0102)":{tag:"(0028,0102)",vr:"US",name:"HighBit",vm:"1",version:"DICOM"},"(0028,0103)":{tag:"(0028,0103)",vr:"US",name:"PixelRepresentation",vm:"1",version:"DICOM"},"(0028,0106)":{tag:"(0028,0106)",vr:"xs",name:"SmallestImagePixelValue",vm:"1",version:"DICOM"},"(0028,0107)":{tag:"(0028,0107)",vr:"xs",name:"LargestImagePixelValue",vm:"1",version:"DICOM"},"(0028,0108)":{tag:"(0028,0108)",vr:"xs",name:"SmallestPixelValueInSeries",vm:"1",version:"DICOM"},"(0028,0109)":{tag:"(0028,0109)",vr:"xs",name:"LargestPixelValueInSeries",vm:"1",version:"DICOM"},"(0028,0120)":{tag:"(0028,0120)",vr:"xs",name:"PixelPaddingValue",vm:"1",version:"DICOM"},"(0028,0121)":{tag:"(0028,0121)",vr:"xs",name:"PixelPaddingRangeLimit",vm:"1",version:"DICOM"},"(0028,0122)":{tag:"(0028,0122)",vr:"FL",name:"FloatPixelPaddingValue",vm:"1",version:"DICOM"},"(0028,0123)":{tag:"(0028,0123)",vr:"FD",name:"DoubleFloatPixelPaddingValue",vm:"1",version:"DICOM"},"(0028,0124)":{tag:"(0028,0124)",vr:"FL",name:"FloatPixelPaddingRangeLimit",vm:"1",version:"DICOM"},"(0028,0125)":{tag:"(0028,0125)",vr:"FD",name:"DoubleFloatPixelPaddingRangeLimit",vm:"1",version:"DICOM"},"(0028,0300)":{tag:"(0028,0300)",vr:"CS",name:"QualityControlImage",vm:"1",version:"DICOM"},"(0028,0301)":{tag:"(0028,0301)",vr:"CS",name:"BurnedInAnnotation",vm:"1",version:"DICOM"},"(0028,0302)":{tag:"(0028,0302)",vr:"CS",name:"RecognizableVisualFeatures",vm:"1",version:"DICOM"},"(0028,0303)":{tag:"(0028,0303)",vr:"CS",name:"LongitudinalTemporalInformationModified",vm:"1",version:"DICOM"},"(0028,0304)":{tag:"(0028,0304)",vr:"UI",name:"ReferencedColorPaletteInstanceUID",vm:"1",version:"DICOM"},"(0028,0A02)":{tag:"(0028,0A02)",vr:"CS",name:"PixelSpacingCalibrationType",vm:"1",version:"DICOM"},"(0028,0A04)":{tag:"(0028,0A04)",vr:"LO",name:"PixelSpacingCalibrationDescription",vm:"1",version:"DICOM"},"(0028,1040)":{tag:"(0028,1040)",vr:"CS",name:"PixelIntensityRelationship",vm:"1",version:"DICOM"},"(0028,1041)":{tag:"(0028,1041)",vr:"SS",name:"PixelIntensityRelationshipSign",vm:"1",version:"DICOM"},"(0028,1050)":{tag:"(0028,1050)",vr:"DS",name:"WindowCenter",vm:"1-n",version:"DICOM"},"(0028,1051)":{tag:"(0028,1051)",vr:"DS",name:"WindowWidth",vm:"1-n",version:"DICOM"},"(0028,1052)":{tag:"(0028,1052)",vr:"DS",name:"RescaleIntercept",vm:"1",version:"DICOM"},"(0028,1053)":{tag:"(0028,1053)",vr:"DS",name:"RescaleSlope",vm:"1",version:"DICOM"},"(0028,1054)":{tag:"(0028,1054)",vr:"LO",name:"RescaleType",vm:"1",version:"DICOM"},"(0028,1055)":{tag:"(0028,1055)",vr:"LO",name:"WindowCenterWidthExplanation",vm:"1-n",version:"DICOM"},"(0028,1056)":{tag:"(0028,1056)",vr:"CS",name:"VOILUTFunction",vm:"1",version:"DICOM"},"(0028,1090)":{tag:"(0028,1090)",vr:"CS",name:"RecommendedViewingMode",vm:"1",version:"DICOM"},"(0028,1101)":{tag:"(0028,1101)",vr:"xs",name:"RedPaletteColorLookupTableDescriptor",vm:"3",version:"DICOM"},"(0028,1102)":{tag:"(0028,1102)",vr:"xs",name:"GreenPaletteColorLookupTableDescriptor",vm:"3",version:"DICOM"},"(0028,1103)":{tag:"(0028,1103)",vr:"xs",name:"BluePaletteColorLookupTableDescriptor",vm:"3",version:"DICOM"},"(0028,1104)":{tag:"(0028,1104)",vr:"US",name:"AlphaPaletteColorLookupTableDescriptor",vm:"3",version:"DICOM"},"(0028,1199)":{tag:"(0028,1199)",vr:"UI",name:"PaletteColorLookupTableUID",vm:"1",version:"DICOM"},"(0028,1201)":{tag:"(0028,1201)",vr:"OW",name:"RedPaletteColorLookupTableData",vm:"1",version:"DICOM"},"(0028,1202)":{tag:"(0028,1202)",vr:"OW",name:"GreenPaletteColorLookupTableData",vm:"1",version:"DICOM"},"(0028,1203)":{tag:"(0028,1203)",vr:"OW",name:"BluePaletteColorLookupTableData",vm:"1",version:"DICOM"},"(0028,1204)":{tag:"(0028,1204)",vr:"OW",name:"AlphaPaletteColorLookupTableData",vm:"1",version:"DICOM"},"(0028,1221)":{tag:"(0028,1221)",vr:"OW",name:"SegmentedRedPaletteColorLookupTableData",vm:"1",version:"DICOM"},"(0028,1222)":{tag:"(0028,1222)",vr:"OW",name:"SegmentedGreenPaletteColorLookupTableData",vm:"1",version:"DICOM"},"(0028,1223)":{tag:"(0028,1223)",vr:"OW",name:"SegmentedBluePaletteColorLookupTableData",vm:"1",version:"DICOM"},"(0028,1230)":{tag:"(0028,1230)",vr:"SQ",name:"StoredValueColorRangeSequence",vm:"1",version:"DICOM"},"(0028,1231)":{tag:"(0028,1231)",vr:"FD",name:"MinimumStoredValueMapped",vm:"1",version:"DICOM"},"(0028,1232)":{tag:"(0028,1232)",vr:"FD",name:"MaximumStoredValueMapped",vm:"1",version:"DICOM"},"(0028,1300)":{tag:"(0028,1300)",vr:"CS",name:"BreastImplantPresent",vm:"1",version:"DICOM"},"(0028,1350)":{tag:"(0028,1350)",vr:"CS",name:"PartialView",vm:"1",version:"DICOM"},"(0028,1351)":{tag:"(0028,1351)",vr:"ST",name:"PartialViewDescription",vm:"1",version:"DICOM"},"(0028,1352)":{tag:"(0028,1352)",vr:"SQ",name:"PartialViewCodeSequence",vm:"1",version:"DICOM"},"(0028,135A)":{tag:"(0028,135A)",vr:"CS",name:"SpatialLocationsPreserved",vm:"1",version:"DICOM"},"(0028,1401)":{tag:"(0028,1401)",vr:"SQ",name:"DataFrameAssignmentSequence",vm:"1",version:"DICOM"},"(0028,1402)":{tag:"(0028,1402)",vr:"CS",name:"DataPathAssignment",vm:"1",version:"DICOM"},"(0028,1403)":{tag:"(0028,1403)",vr:"US",name:"BitsMappedToColorLookupTable",vm:"1",version:"DICOM"},"(0028,1404)":{tag:"(0028,1404)",vr:"SQ",name:"BlendingLUT1Sequence",vm:"1",version:"DICOM"},"(0028,1405)":{tag:"(0028,1405)",vr:"CS",name:"BlendingLUT1TransferFunction",vm:"1",version:"DICOM"},"(0028,1406)":{tag:"(0028,1406)",vr:"FD",name:"BlendingWeightConstant",vm:"1",version:"DICOM"},"(0028,1407)":{tag:"(0028,1407)",vr:"US",name:"BlendingLookupTableDescriptor",vm:"3",version:"DICOM"},"(0028,1408)":{tag:"(0028,1408)",vr:"OW",name:"BlendingLookupTableData",vm:"1",version:"DICOM"},"(0028,140B)":{tag:"(0028,140B)",vr:"SQ",name:"EnhancedPaletteColorLookupTableSequence",vm:"1",version:"DICOM"},"(0028,140C)":{tag:"(0028,140C)",vr:"SQ",name:"BlendingLUT2Sequence",vm:"1",version:"DICOM"},"(0028,140D)":{tag:"(0028,140D)",vr:"CS",name:"BlendingLUT2TransferFunction",vm:"1",version:"DICOM"},"(0028,140E)":{tag:"(0028,140E)",vr:"CS",name:"DataPathID",vm:"1",version:"DICOM"},"(0028,140F)":{tag:"(0028,140F)",vr:"CS",name:"RGBLUTTransferFunction",vm:"1",version:"DICOM"},"(0028,1410)":{tag:"(0028,1410)",vr:"CS",name:"AlphaLUTTransferFunction",vm:"1",version:"DICOM"},"(0028,2000)":{tag:"(0028,2000)",vr:"OB",name:"ICCProfile",vm:"1",version:"DICOM"},"(0028,2110)":{tag:"(0028,2110)",vr:"CS",name:"LossyImageCompression",vm:"1",version:"DICOM"},"(0028,2112)":{tag:"(0028,2112)",vr:"DS",name:"LossyImageCompressionRatio",vm:"1-n",version:"DICOM"},"(0028,2114)":{tag:"(0028,2114)",vr:"CS",name:"LossyImageCompressionMethod",vm:"1-n",version:"DICOM"},"(0028,3000)":{tag:"(0028,3000)",vr:"SQ",name:"ModalityLUTSequence",vm:"1",version:"DICOM"},"(0028,3002)":{tag:"(0028,3002)",vr:"xs",name:"LUTDescriptor",vm:"3",version:"DICOM"},"(0028,3003)":{tag:"(0028,3003)",vr:"LO",name:"LUTExplanation",vm:"1",version:"DICOM"},"(0028,3004)":{tag:"(0028,3004)",vr:"LO",name:"ModalityLUTType",vm:"1",version:"DICOM"},"(0028,3006)":{tag:"(0028,3006)",vr:"lt",name:"LUTData",vm:"1-n",version:"DICOM"},"(0028,3010)":{tag:"(0028,3010)",vr:"SQ",name:"VOILUTSequence",vm:"1",version:"DICOM"},"(0028,3110)":{tag:"(0028,3110)",vr:"SQ",name:"SoftcopyVOILUTSequence",vm:"1",version:"DICOM"},"(0028,6010)":{tag:"(0028,6010)",vr:"US",name:"RepresentativeFrameNumber",vm:"1",version:"DICOM"},"(0028,6020)":{tag:"(0028,6020)",vr:"US",name:"FrameNumbersOfInterest",vm:"1-n",version:"DICOM"},"(0028,6022)":{tag:"(0028,6022)",vr:"LO",name:"FrameOfInterestDescription",vm:"1-n",version:"DICOM"},"(0028,6023)":{tag:"(0028,6023)",vr:"CS",name:"FrameOfInterestType",vm:"1-n",version:"DICOM"},"(0028,6040)":{tag:"(0028,6040)",vr:"US",name:"RWavePointer",vm:"1-n",version:"DICOM"},"(0028,6100)":{tag:"(0028,6100)",vr:"SQ",name:"MaskSubtractionSequence",vm:"1",version:"DICOM"},"(0028,6101)":{tag:"(0028,6101)",vr:"CS",name:"MaskOperation",vm:"1",version:"DICOM"},"(0028,6102)":{tag:"(0028,6102)",vr:"US",name:"ApplicableFrameRange",vm:"2-2n",version:"DICOM"},"(0028,6110)":{tag:"(0028,6110)",vr:"US",name:"MaskFrameNumbers",vm:"1-n",version:"DICOM"},"(0028,6112)":{tag:"(0028,6112)",vr:"US",name:"ContrastFrameAveraging",vm:"1",version:"DICOM"},"(0028,6114)":{tag:"(0028,6114)",vr:"FL",name:"MaskSubPixelShift",vm:"2",version:"DICOM"},"(0028,6120)":{tag:"(0028,6120)",vr:"SS",name:"TIDOffset",vm:"1",version:"DICOM"},"(0028,6190)":{tag:"(0028,6190)",vr:"ST",name:"MaskOperationExplanation",vm:"1",version:"DICOM"},"(0028,7000)":{tag:"(0028,7000)",vr:"SQ",name:"EquipmentAdministratorSequence",vm:"1",version:"DICOM"},"(0028,7001)":{tag:"(0028,7001)",vr:"US",name:"NumberOfDisplaySubsystems",vm:"1",version:"DICOM"},"(0028,7002)":{tag:"(0028,7002)",vr:"US",name:"CurrentConfigurationID",vm:"1",version:"DICOM"},"(0028,7003)":{tag:"(0028,7003)",vr:"US",name:"DisplaySubsystemID",vm:"1",version:"DICOM"},"(0028,7004)":{tag:"(0028,7004)",vr:"SH",name:"DisplaySubsystemName",vm:"1",version:"DICOM"},"(0028,7005)":{tag:"(0028,7005)",vr:"LO",name:"DisplaySubsystemDescription",vm:"1",version:"DICOM"},"(0028,7006)":{tag:"(0028,7006)",vr:"CS",name:"SystemStatus",vm:"1",version:"DICOM"},"(0028,7007)":{tag:"(0028,7007)",vr:"LO",name:"SystemStatusComment",vm:"1",version:"DICOM"},"(0028,7008)":{tag:"(0028,7008)",vr:"SQ",name:"TargetLuminanceCharacteristicsSequence",vm:"1",version:"DICOM"},"(0028,7009)":{tag:"(0028,7009)",vr:"US",name:"LuminanceCharacteristicsID",vm:"1",version:"DICOM"},"(0028,700A)":{tag:"(0028,700A)",vr:"SQ",name:"DisplaySubsystemConfigurationSequence",vm:"1",version:"DICOM"},"(0028,700B)":{tag:"(0028,700B)",vr:"US",name:"ConfigurationID",vm:"1",version:"DICOM"},"(0028,700C)":{tag:"(0028,700C)",vr:"SH",name:"ConfigurationName",vm:"1",version:"DICOM"},"(0028,700D)":{tag:"(0028,700D)",vr:"LO",name:"ConfigurationDescription",vm:"1",version:"DICOM"},"(0028,700E)":{tag:"(0028,700E)",vr:"US",name:"ReferencedTargetLuminanceCharacteristicsID",vm:"1",version:"DICOM"},"(0028,700F)":{tag:"(0028,700F)",vr:"SQ",name:"QAResultsSequence",vm:"1",version:"DICOM"},"(0028,7010)":{tag:"(0028,7010)",vr:"SQ",name:"DisplaySubsystemQAResultsSequence",vm:"1",version:"DICOM"},"(0028,7011)":{tag:"(0028,7011)",vr:"SQ",name:"ConfigurationQAResultsSequence",vm:"1",version:"DICOM"},"(0028,7012)":{tag:"(0028,7012)",vr:"SQ",name:"MeasurementEquipmentSequence",vm:"1",version:"DICOM"},"(0028,7013)":{tag:"(0028,7013)",vr:"CS",name:"MeasurementFunctions",vm:"1-n",version:"DICOM"},"(0028,7014)":{tag:"(0028,7014)",vr:"CS",name:"MeasurementEquipmentType",vm:"1",version:"DICOM"},"(0028,7015)":{tag:"(0028,7015)",vr:"SQ",name:"VisualEvaluationResultSequence",vm:"1",version:"DICOM"},"(0028,7016)":{tag:"(0028,7016)",vr:"SQ",name:"DisplayCalibrationResultSequence",vm:"1",version:"DICOM"},"(0028,7017)":{tag:"(0028,7017)",vr:"US",name:"DDLValue",vm:"1",version:"DICOM"},"(0028,7018)":{tag:"(0028,7018)",vr:"FL",name:"CIExyWhitePoint",vm:"2",version:"DICOM"},"(0028,7019)":{tag:"(0028,7019)",vr:"CS",name:"DisplayFunctionType",vm:"1",version:"DICOM"},"(0028,701A)":{tag:"(0028,701A)",vr:"FL",name:"GammaValue",vm:"1",version:"DICOM"},"(0028,701B)":{tag:"(0028,701B)",vr:"US",name:"NumberOfLuminancePoints",vm:"1",version:"DICOM"},"(0028,701C)":{tag:"(0028,701C)",vr:"SQ",name:"LuminanceResponseSequence",vm:"1",version:"DICOM"},"(0028,701D)":{tag:"(0028,701D)",vr:"FL",name:"TargetMinimumLuminance",vm:"1",version:"DICOM"},"(0028,701E)":{tag:"(0028,701E)",vr:"FL",name:"TargetMaximumLuminance",vm:"1",version:"DICOM"},"(0028,701F)":{tag:"(0028,701F)",vr:"FL",name:"LuminanceValue",vm:"1",version:"DICOM"},"(0028,7020)":{tag:"(0028,7020)",vr:"LO",name:"LuminanceResponseDescription",vm:"1",version:"DICOM"},"(0028,7021)":{tag:"(0028,7021)",vr:"CS",name:"WhitePointFlag",vm:"1",version:"DICOM"},"(0028,7022)":{tag:"(0028,7022)",vr:"SQ",name:"DisplayDeviceTypeCodeSequence",vm:"1",version:"DICOM"},"(0028,7023)":{tag:"(0028,7023)",vr:"SQ",name:"DisplaySubsystemSequence",vm:"1",version:"DICOM"},"(0028,7024)":{tag:"(0028,7024)",vr:"SQ",name:"LuminanceResultSequence",vm:"1",version:"DICOM"},"(0028,7025)":{tag:"(0028,7025)",vr:"CS",name:"AmbientLightValueSource",vm:"1",version:"DICOM"},"(0028,7026)":{tag:"(0028,7026)",vr:"CS",name:"MeasuredCharacteristics",vm:"1-n",version:"DICOM"},"(0028,7027)":{tag:"(0028,7027)",vr:"SQ",name:"LuminanceUniformityResultSequence",vm:"1",version:"DICOM"},"(0028,7028)":{tag:"(0028,7028)",vr:"SQ",name:"VisualEvaluationTestSequence",vm:"1",version:"DICOM"},"(0028,7029)":{tag:"(0028,7029)",vr:"CS",name:"TestResult",vm:"1",version:"DICOM"},"(0028,702A)":{tag:"(0028,702A)",vr:"LO",name:"TestResultComment",vm:"1",version:"DICOM"},"(0028,702B)":{tag:"(0028,702B)",vr:"CS",name:"TestImageValidation",vm:"1",version:"DICOM"},"(0028,702C)":{tag:"(0028,702C)",vr:"SQ",name:"TestPatternCodeSequence",vm:"1",version:"DICOM"},"(0028,702D)":{tag:"(0028,702D)",vr:"SQ",name:"MeasurementPatternCodeSequence",vm:"1",version:"DICOM"},"(0028,702E)":{tag:"(0028,702E)",vr:"SQ",name:"VisualEvaluationMethodCodeSequence",vm:"1",version:"DICOM"},"(0028,7FE0)":{tag:"(0028,7FE0)",vr:"UR",name:"PixelDataProviderURL",vm:"1",version:"DICOM"},"(0028,9001)":{tag:"(0028,9001)",vr:"UL",name:"DataPointRows",vm:"1",version:"DICOM"},"(0028,9002)":{tag:"(0028,9002)",vr:"UL",name:"DataPointColumns",vm:"1",version:"DICOM"},"(0028,9003)":{tag:"(0028,9003)",vr:"CS",name:"SignalDomainColumns",vm:"1",version:"DICOM"},"(0028,9108)":{tag:"(0028,9108)",vr:"CS",name:"DataRepresentation",vm:"1",version:"DICOM"},"(0028,9110)":{tag:"(0028,9110)",vr:"SQ",name:"PixelMeasuresSequence",vm:"1",version:"DICOM"},"(0028,9132)":{tag:"(0028,9132)",vr:"SQ",name:"FrameVOILUTSequence",vm:"1",version:"DICOM"},"(0028,9145)":{tag:"(0028,9145)",vr:"SQ",name:"PixelValueTransformationSequence",vm:"1",version:"DICOM"},"(0028,9235)":{tag:"(0028,9235)",vr:"CS",name:"SignalDomainRows",vm:"1",version:"DICOM"},"(0028,9411)":{tag:"(0028,9411)",vr:"FL",name:"DisplayFilterPercentage",vm:"1",version:"DICOM"},"(0028,9415)":{tag:"(0028,9415)",vr:"SQ",name:"FramePixelShiftSequence",vm:"1",version:"DICOM"},"(0028,9416)":{tag:"(0028,9416)",vr:"US",name:"SubtractionItemID",vm:"1",version:"DICOM"},"(0028,9422)":{tag:"(0028,9422)",vr:"SQ",name:"PixelIntensityRelationshipLUTSequence",vm:"1",version:"DICOM"},"(0028,9443)":{tag:"(0028,9443)",vr:"SQ",name:"FramePixelDataPropertiesSequence",vm:"1",version:"DICOM"},"(0028,9444)":{tag:"(0028,9444)",vr:"CS",name:"GeometricalProperties",vm:"1",version:"DICOM"},"(0028,9445)":{tag:"(0028,9445)",vr:"FL",name:"GeometricMaximumDistortion",vm:"1",version:"DICOM"},"(0028,9446)":{tag:"(0028,9446)",vr:"CS",name:"ImageProcessingApplied",vm:"1-n",version:"DICOM"},"(0028,9454)":{tag:"(0028,9454)",vr:"CS",name:"MaskSelectionMode",vm:"1",version:"DICOM"},"(0028,9474)":{tag:"(0028,9474)",vr:"CS",name:"LUTFunction",vm:"1",version:"DICOM"},"(0028,9478)":{tag:"(0028,9478)",vr:"FL",name:"MaskVisibilityPercentage",vm:"1",version:"DICOM"},"(0028,9501)":{tag:"(0028,9501)",vr:"SQ",name:"PixelShiftSequence",vm:"1",version:"DICOM"},"(0028,9502)":{tag:"(0028,9502)",vr:"SQ",name:"RegionPixelShiftSequence",vm:"1",version:"DICOM"},"(0028,9503)":{tag:"(0028,9503)",vr:"SS",name:"VerticesOfTheRegion",vm:"2-2n",version:"DICOM"},"(0028,9505)":{tag:"(0028,9505)",vr:"SQ",name:"MultiFramePresentationSequence",vm:"1",version:"DICOM"},"(0028,9506)":{tag:"(0028,9506)",vr:"US",name:"PixelShiftFrameRange",vm:"2-2n",version:"DICOM"},"(0028,9507)":{tag:"(0028,9507)",vr:"US",name:"LUTFrameRange",vm:"2-2n",version:"DICOM"},"(0028,9520)":{tag:"(0028,9520)",vr:"DS",name:"ImageToEquipmentMappingMatrix",vm:"16",version:"DICOM"},"(0028,9537)":{tag:"(0028,9537)",vr:"CS",name:"EquipmentCoordinateSystemIdentification",vm:"1",version:"DICOM"},"(0032,1031)":{tag:"(0032,1031)",vr:"SQ",name:"RequestingPhysicianIdentificationSequence",vm:"1",version:"DICOM"},"(0032,1032)":{tag:"(0032,1032)",vr:"PN",name:"RequestingPhysician",vm:"1",version:"DICOM"},"(0032,1033)":{tag:"(0032,1033)",vr:"LO",name:"RequestingService",vm:"1",version:"DICOM"},"(0032,1034)":{tag:"(0032,1034)",vr:"SQ",name:"RequestingServiceCodeSequence",vm:"1",version:"DICOM"},"(0032,1060)":{tag:"(0032,1060)",vr:"LO",name:"RequestedProcedureDescription",vm:"1",version:"DICOM"},"(0032,1064)":{tag:"(0032,1064)",vr:"SQ",name:"RequestedProcedureCodeSequence",vm:"1",version:"DICOM"},"(0032,1066)":{tag:"(0032,1066)",vr:"UT",name:"ReasonForVisit",vm:"1",version:"DICOM"},"(0032,1067)":{tag:"(0032,1067)",vr:"SQ",name:"ReasonForVisitCodeSequence",vm:"1",version:"DICOM"},"(0032,1070)":{tag:"(0032,1070)",vr:"LO",name:"RequestedContrastAgent",vm:"1",version:"DICOM"},"(0034,0001)":{tag:"(0034,0001)",vr:"SQ",name:"FlowIdentifierSequence",vm:"1",version:"DICOM"},"(0034,0002)":{tag:"(0034,0002)",vr:"OB",name:"FlowIdentifier",vm:"1",version:"DICOM"},"(0034,0003)":{tag:"(0034,0003)",vr:"UI",name:"FlowTransferSyntaxUID",vm:"1",version:"DICOM"},"(0034,0004)":{tag:"(0034,0004)",vr:"UL",name:"FlowRTPSamplingRate",vm:"1",version:"DICOM"},"(0034,0005)":{tag:"(0034,0005)",vr:"OB",name:"SourceIdentifier",vm:"1",version:"DICOM"},"(0034,0007)":{tag:"(0034,0007)",vr:"OB",name:"FrameOriginTimestamp",vm:"1",version:"DICOM"},"(0034,0008)":{tag:"(0034,0008)",vr:"CS",name:"IncludesImagingSubject",vm:"1",version:"DICOM"},"(0034,0009)":{tag:"(0034,0009)",vr:"SQ",name:"FrameUsefulnessGroupSequence",vm:"1",version:"DICOM"},"(0034,000A)":{tag:"(0034,000A)",vr:"SQ",name:"RealTimeBulkDataFlowSequence",vm:"1",version:"DICOM"},"(0034,000B)":{tag:"(0034,000B)",vr:"SQ",name:"CameraPositionGroupSequence",vm:"1",version:"DICOM"},"(0034,000C)":{tag:"(0034,000C)",vr:"CS",name:"IncludesInformation",vm:"1",version:"DICOM"},"(0034,000D)":{tag:"(0034,000D)",vr:"SQ",name:"TimeOfFrameGroupSequence",vm:"1",version:"DICOM"},"(0038,0004)":{tag:"(0038,0004)",vr:"SQ",name:"ReferencedPatientAliasSequence",vm:"1",version:"DICOM"},"(0038,0008)":{tag:"(0038,0008)",vr:"CS",name:"VisitStatusID",vm:"1",version:"DICOM"},"(0038,0010)":{tag:"(0038,0010)",vr:"LO",name:"AdmissionID",vm:"1",version:"DICOM"},"(0038,0014)":{tag:"(0038,0014)",vr:"SQ",name:"IssuerOfAdmissionIDSequence",vm:"1",version:"DICOM"},"(0038,0016)":{tag:"(0038,0016)",vr:"LO",name:"RouteOfAdmissions",vm:"1",version:"DICOM"},"(0038,0020)":{tag:"(0038,0020)",vr:"DA",name:"AdmittingDate",vm:"1",version:"DICOM"},"(0038,0021)":{tag:"(0038,0021)",vr:"TM",name:"AdmittingTime",vm:"1",version:"DICOM"},"(0038,0050)":{tag:"(0038,0050)",vr:"LO",name:"SpecialNeeds",vm:"1",version:"DICOM"},"(0038,0060)":{tag:"(0038,0060)",vr:"LO",name:"ServiceEpisodeID",vm:"1",version:"DICOM"},"(0038,0062)":{tag:"(0038,0062)",vr:"LO",name:"ServiceEpisodeDescription",vm:"1",version:"DICOM"},"(0038,0064)":{tag:"(0038,0064)",vr:"SQ",name:"IssuerOfServiceEpisodeIDSequence",vm:"1",version:"DICOM"},"(0038,0100)":{tag:"(0038,0100)",vr:"SQ",name:"PertinentDocumentsSequence",vm:"1",version:"DICOM"},"(0038,0101)":{tag:"(0038,0101)",vr:"SQ",name:"PertinentResourcesSequence",vm:"1",version:"DICOM"},"(0038,0102)":{tag:"(0038,0102)",vr:"LO",name:"ResourceDescription",vm:"1",version:"DICOM"},"(0038,0300)":{tag:"(0038,0300)",vr:"LO",name:"CurrentPatientLocation",vm:"1",version:"DICOM"},"(0038,0400)":{tag:"(0038,0400)",vr:"LO",name:"PatientInstitutionResidence",vm:"1",version:"DICOM"},"(0038,0500)":{tag:"(0038,0500)",vr:"LO",name:"PatientState",vm:"1",version:"DICOM"},"(0038,0502)":{tag:"(0038,0502)",vr:"SQ",name:"PatientClinicalTrialParticipationSequence",vm:"1",version:"DICOM"},"(0038,4000)":{tag:"(0038,4000)",vr:"LT",name:"VisitComments",vm:"1",version:"DICOM"},"(003A,0004)":{tag:"(003A,0004)",vr:"CS",name:"WaveformOriginality",vm:"1",version:"DICOM"},"(003A,0005)":{tag:"(003A,0005)",vr:"US",name:"NumberOfWaveformChannels",vm:"1",version:"DICOM"},"(003A,0010)":{tag:"(003A,0010)",vr:"UL",name:"NumberOfWaveformSamples",vm:"1",version:"DICOM"},"(003A,001A)":{tag:"(003A,001A)",vr:"DS",name:"SamplingFrequency",vm:"1",version:"DICOM"},"(003A,0020)":{tag:"(003A,0020)",vr:"SH",name:"MultiplexGroupLabel",vm:"1",version:"DICOM"},"(003A,0200)":{tag:"(003A,0200)",vr:"SQ",name:"ChannelDefinitionSequence",vm:"1",version:"DICOM"},"(003A,0202)":{tag:"(003A,0202)",vr:"IS",name:"WaveformChannelNumber",vm:"1",version:"DICOM"},"(003A,0203)":{tag:"(003A,0203)",vr:"SH",name:"ChannelLabel",vm:"1",version:"DICOM"},"(003A,0205)":{tag:"(003A,0205)",vr:"CS",name:"ChannelStatus",vm:"1-n",version:"DICOM"},"(003A,0208)":{tag:"(003A,0208)",vr:"SQ",name:"ChannelSourceSequence",vm:"1",version:"DICOM"},"(003A,0209)":{tag:"(003A,0209)",vr:"SQ",name:"ChannelSourceModifiersSequence",vm:"1",version:"DICOM"},"(003A,020A)":{tag:"(003A,020A)",vr:"SQ",name:"SourceWaveformSequence",vm:"1",version:"DICOM"},"(003A,020C)":{tag:"(003A,020C)",vr:"LO",name:"ChannelDerivationDescription",vm:"1",version:"DICOM"},"(003A,0210)":{tag:"(003A,0210)",vr:"DS",name:"ChannelSensitivity",vm:"1",version:"DICOM"},"(003A,0211)":{tag:"(003A,0211)",vr:"SQ",name:"ChannelSensitivityUnitsSequence",vm:"1",version:"DICOM"},"(003A,0212)":{tag:"(003A,0212)",vr:"DS",name:"ChannelSensitivityCorrectionFactor",vm:"1",version:"DICOM"},"(003A,0213)":{tag:"(003A,0213)",vr:"DS",name:"ChannelBaseline",vm:"1",version:"DICOM"},"(003A,0214)":{tag:"(003A,0214)",vr:"DS",name:"ChannelTimeSkew",vm:"1",version:"DICOM"},"(003A,0215)":{tag:"(003A,0215)",vr:"DS",name:"ChannelSampleSkew",vm:"1",version:"DICOM"},"(003A,0218)":{tag:"(003A,0218)",vr:"DS",name:"ChannelOffset",vm:"1",version:"DICOM"},"(003A,021A)":{tag:"(003A,021A)",vr:"US",name:"WaveformBitsStored",vm:"1",version:"DICOM"},"(003A,0220)":{tag:"(003A,0220)",vr:"DS",name:"FilterLowFrequency",vm:"1",version:"DICOM"},"(003A,0221)":{tag:"(003A,0221)",vr:"DS",name:"FilterHighFrequency",vm:"1",version:"DICOM"},"(003A,0222)":{tag:"(003A,0222)",vr:"DS",name:"NotchFilterFrequency",vm:"1",version:"DICOM"},"(003A,0223)":{tag:"(003A,0223)",vr:"DS",name:"NotchFilterBandwidth",vm:"1",version:"DICOM"},"(003A,0230)":{tag:"(003A,0230)",vr:"FL",name:"WaveformDataDisplayScale",vm:"1",version:"DICOM"},"(003A,0231)":{tag:"(003A,0231)",vr:"US",name:"WaveformDisplayBackgroundCIELabValue",vm:"3",version:"DICOM"},"(003A,0240)":{tag:"(003A,0240)",vr:"SQ",name:"WaveformPresentationGroupSequence",vm:"1",version:"DICOM"},"(003A,0241)":{tag:"(003A,0241)",vr:"US",name:"PresentationGroupNumber",vm:"1",version:"DICOM"},"(003A,0242)":{tag:"(003A,0242)",vr:"SQ",name:"ChannelDisplaySequence",vm:"1",version:"DICOM"},"(003A,0244)":{tag:"(003A,0244)",vr:"US",name:"ChannelRecommendedDisplayCIELabValue",vm:"3",version:"DICOM"},"(003A,0245)":{tag:"(003A,0245)",vr:"FL",name:"ChannelPosition",vm:"1",version:"DICOM"},"(003A,0246)":{tag:"(003A,0246)",vr:"CS",name:"DisplayShadingFlag",vm:"1",version:"DICOM"},"(003A,0247)":{tag:"(003A,0247)",vr:"FL",name:"FractionalChannelDisplayScale",vm:"1",version:"DICOM"},"(003A,0248)":{tag:"(003A,0248)",vr:"FL",name:"AbsoluteChannelDisplayScale",vm:"1",version:"DICOM"},"(003A,0300)":{tag:"(003A,0300)",vr:"SQ",name:"MultiplexedAudioChannelsDescriptionCodeSequence",vm:"1",version:"DICOM"},"(003A,0301)":{tag:"(003A,0301)",vr:"IS",name:"ChannelIdentificationCode",vm:"1",version:"DICOM"},"(003A,0302)":{tag:"(003A,0302)",vr:"CS",name:"ChannelMode",vm:"1",version:"DICOM"},"(003A,0310)":{tag:"(003A,0310)",vr:"UI",name:"MultiplexGroupUID",vm:"1",version:"DICOM"},"(003A,0311)":{tag:"(003A,0311)",vr:"DS",name:"PowerlineFrequency",vm:"1",version:"DICOM"},"(003A,0312)":{tag:"(003A,0312)",vr:"SQ",name:"ChannelImpedanceSequence",vm:"1",version:"DICOM"},"(003A,0313)":{tag:"(003A,0313)",vr:"DS",name:"ImpedanceValue",vm:"1",version:"DICOM"},"(003A,0314)":{tag:"(003A,0314)",vr:"DT",name:"ImpedanceMeasurementDateTime",vm:"1",version:"DICOM"},"(003A,0315)":{tag:"(003A,0315)",vr:"DS",name:"ImpedanceMeasurementFrequency",vm:"1",version:"DICOM"},"(003A,0316)":{tag:"(003A,0316)",vr:"CS",name:"ImpedanceMeasurementCurrentType",vm:"1",version:"DICOM"},"(0040,0001)":{tag:"(0040,0001)",vr:"AE",name:"ScheduledStationAETitle",vm:"1-n",version:"DICOM"},"(0040,0002)":{tag:"(0040,0002)",vr:"DA",name:"ScheduledProcedureStepStartDate",vm:"1",version:"DICOM"},"(0040,0003)":{tag:"(0040,0003)",vr:"TM",name:"ScheduledProcedureStepStartTime",vm:"1",version:"DICOM"},"(0040,0004)":{tag:"(0040,0004)",vr:"DA",name:"ScheduledProcedureStepEndDate",vm:"1",version:"DICOM"},"(0040,0005)":{tag:"(0040,0005)",vr:"TM",name:"ScheduledProcedureStepEndTime",vm:"1",version:"DICOM"},"(0040,0006)":{tag:"(0040,0006)",vr:"PN",name:"ScheduledPerformingPhysicianName",vm:"1",version:"DICOM"},"(0040,0007)":{tag:"(0040,0007)",vr:"LO",name:"ScheduledProcedureStepDescription",vm:"1",version:"DICOM"},"(0040,0008)":{tag:"(0040,0008)",vr:"SQ",name:"ScheduledProtocolCodeSequence",vm:"1",version:"DICOM"},"(0040,0009)":{tag:"(0040,0009)",vr:"SH",name:"ScheduledProcedureStepID",vm:"1",version:"DICOM"},"(0040,000A)":{tag:"(0040,000A)",vr:"SQ",name:"StageCodeSequence",vm:"1",version:"DICOM"},"(0040,000B)":{tag:"(0040,000B)",vr:"SQ",name:"ScheduledPerformingPhysicianIdentificationSequence",vm:"1",version:"DICOM"},"(0040,0010)":{tag:"(0040,0010)",vr:"SH",name:"ScheduledStationName",vm:"1-n",version:"DICOM"},"(0040,0011)":{tag:"(0040,0011)",vr:"SH",name:"ScheduledProcedureStepLocation",vm:"1",version:"DICOM"},"(0040,0012)":{tag:"(0040,0012)",vr:"LO",name:"PreMedication",vm:"1",version:"DICOM"},"(0040,0020)":{tag:"(0040,0020)",vr:"CS",name:"ScheduledProcedureStepStatus",vm:"1",version:"DICOM"},"(0040,0026)":{tag:"(0040,0026)",vr:"SQ",name:"OrderPlacerIdentifierSequence",vm:"1",version:"DICOM"},"(0040,0027)":{tag:"(0040,0027)",vr:"SQ",name:"OrderFillerIdentifierSequence",vm:"1",version:"DICOM"},"(0040,0031)":{tag:"(0040,0031)",vr:"UT",name:"LocalNamespaceEntityID",vm:"1",version:"DICOM"},"(0040,0032)":{tag:"(0040,0032)",vr:"UT",name:"UniversalEntityID",vm:"1",version:"DICOM"},"(0040,0033)":{tag:"(0040,0033)",vr:"CS",name:"UniversalEntityIDType",vm:"1",version:"DICOM"},"(0040,0035)":{tag:"(0040,0035)",vr:"CS",name:"IdentifierTypeCode",vm:"1",version:"DICOM"},"(0040,0036)":{tag:"(0040,0036)",vr:"SQ",name:"AssigningFacilitySequence",vm:"1",version:"DICOM"},"(0040,0039)":{tag:"(0040,0039)",vr:"SQ",name:"AssigningJurisdictionCodeSequence",vm:"1",version:"DICOM"},"(0040,003A)":{tag:"(0040,003A)",vr:"SQ",name:"AssigningAgencyOrDepartmentCodeSequence",vm:"1",version:"DICOM"},"(0040,0100)":{tag:"(0040,0100)",vr:"SQ",name:"ScheduledProcedureStepSequence",vm:"1",version:"DICOM"},"(0040,0220)":{tag:"(0040,0220)",vr:"SQ",name:"ReferencedNonImageCompositeSOPInstanceSequence",vm:"1",version:"DICOM"},"(0040,0241)":{tag:"(0040,0241)",vr:"AE",name:"PerformedStationAETitle",vm:"1",version:"DICOM"},"(0040,0242)":{tag:"(0040,0242)",vr:"SH",name:"PerformedStationName",vm:"1",version:"DICOM"},"(0040,0243)":{tag:"(0040,0243)",vr:"SH",name:"PerformedLocation",vm:"1",version:"DICOM"},"(0040,0244)":{tag:"(0040,0244)",vr:"DA",name:"PerformedProcedureStepStartDate",vm:"1",version:"DICOM"},"(0040,0245)":{tag:"(0040,0245)",vr:"TM",name:"PerformedProcedureStepStartTime",vm:"1",version:"DICOM"},"(0040,0250)":{tag:"(0040,0250)",vr:"DA",name:"PerformedProcedureStepEndDate",vm:"1",version:"DICOM"},"(0040,0251)":{tag:"(0040,0251)",vr:"TM",name:"PerformedProcedureStepEndTime",vm:"1",version:"DICOM"},"(0040,0252)":{tag:"(0040,0252)",vr:"CS",name:"PerformedProcedureStepStatus",vm:"1",version:"DICOM"},"(0040,0253)":{tag:"(0040,0253)",vr:"SH",name:"PerformedProcedureStepID",vm:"1",version:"DICOM"},"(0040,0254)":{tag:"(0040,0254)",vr:"LO",name:"PerformedProcedureStepDescription",vm:"1",version:"DICOM"},"(0040,0255)":{tag:"(0040,0255)",vr:"LO",name:"PerformedProcedureTypeDescription",vm:"1",version:"DICOM"},"(0040,0260)":{tag:"(0040,0260)",vr:"SQ",name:"PerformedProtocolCodeSequence",vm:"1",version:"DICOM"},"(0040,0261)":{tag:"(0040,0261)",vr:"CS",name:"PerformedProtocolType",vm:"1",version:"DICOM"},"(0040,0270)":{tag:"(0040,0270)",vr:"SQ",name:"ScheduledStepAttributesSequence",vm:"1",version:"DICOM"},"(0040,0275)":{tag:"(0040,0275)",vr:"SQ",name:"RequestAttributesSequence",vm:"1",version:"DICOM"},"(0040,0280)":{tag:"(0040,0280)",vr:"ST",name:"CommentsOnThePerformedProcedureStep",vm:"1",version:"DICOM"},"(0040,0281)":{tag:"(0040,0281)",vr:"SQ",name:"PerformedProcedureStepDiscontinuationReasonCodeSequence",vm:"1",version:"DICOM"},"(0040,0293)":{tag:"(0040,0293)",vr:"SQ",name:"QuantitySequence",vm:"1",version:"DICOM"},"(0040,0294)":{tag:"(0040,0294)",vr:"DS",name:"Quantity",vm:"1",version:"DICOM"},"(0040,0295)":{tag:"(0040,0295)",vr:"SQ",name:"MeasuringUnitsSequence",vm:"1",version:"DICOM"},"(0040,0296)":{tag:"(0040,0296)",vr:"SQ",name:"BillingItemSequence",vm:"1",version:"DICOM"},"(0040,0300)":{tag:"(0040,0300)",vr:"US",name:"TotalTimeOfFluoroscopy",vm:"1",version:"DICOM"},"(0040,0301)":{tag:"(0040,0301)",vr:"US",name:"TotalNumberOfExposures",vm:"1",version:"DICOM"},"(0040,0302)":{tag:"(0040,0302)",vr:"US",name:"EntranceDose",vm:"1",version:"DICOM"},"(0040,0303)":{tag:"(0040,0303)",vr:"US",name:"ExposedArea",vm:"1-2",version:"DICOM"},"(0040,0306)":{tag:"(0040,0306)",vr:"DS",name:"DistanceSourceToEntrance",vm:"1",version:"DICOM"},"(0040,030E)":{tag:"(0040,030E)",vr:"SQ",name:"ExposureDoseSequence",vm:"1",version:"DICOM"},"(0040,0310)":{tag:"(0040,0310)",vr:"ST",name:"CommentsOnRadiationDose",vm:"1",version:"DICOM"},"(0040,0312)":{tag:"(0040,0312)",vr:"DS",name:"XRayOutput",vm:"1",version:"DICOM"},"(0040,0314)":{tag:"(0040,0314)",vr:"DS",name:"HalfValueLayer",vm:"1",version:"DICOM"},"(0040,0316)":{tag:"(0040,0316)",vr:"DS",name:"OrganDose",vm:"1",version:"DICOM"},"(0040,0318)":{tag:"(0040,0318)",vr:"CS",name:"OrganExposed",vm:"1",version:"DICOM"},"(0040,0320)":{tag:"(0040,0320)",vr:"SQ",name:"BillingProcedureStepSequence",vm:"1",version:"DICOM"},"(0040,0321)":{tag:"(0040,0321)",vr:"SQ",name:"FilmConsumptionSequence",vm:"1",version:"DICOM"},"(0040,0324)":{tag:"(0040,0324)",vr:"SQ",name:"BillingSuppliesAndDevicesSequence",vm:"1",version:"DICOM"},"(0040,0340)":{tag:"(0040,0340)",vr:"SQ",name:"PerformedSeriesSequence",vm:"1",version:"DICOM"},"(0040,0400)":{tag:"(0040,0400)",vr:"LT",name:"CommentsOnTheScheduledProcedureStep",vm:"1",version:"DICOM"},"(0040,0440)":{tag:"(0040,0440)",vr:"SQ",name:"ProtocolContextSequence",vm:"1",version:"DICOM"},"(0040,0441)":{tag:"(0040,0441)",vr:"SQ",name:"ContentItemModifierSequence",vm:"1",version:"DICOM"},"(0040,0500)":{tag:"(0040,0500)",vr:"SQ",name:"ScheduledSpecimenSequence",vm:"1",version:"DICOM"},"(0040,0512)":{tag:"(0040,0512)",vr:"LO",name:"ContainerIdentifier",vm:"1",version:"DICOM"},"(0040,0513)":{tag:"(0040,0513)",vr:"SQ",name:"IssuerOfTheContainerIdentifierSequence",vm:"1",version:"DICOM"},"(0040,0515)":{tag:"(0040,0515)",vr:"SQ",name:"AlternateContainerIdentifierSequence",vm:"1",version:"DICOM"},"(0040,0518)":{tag:"(0040,0518)",vr:"SQ",name:"ContainerTypeCodeSequence",vm:"1",version:"DICOM"},"(0040,051A)":{tag:"(0040,051A)",vr:"LO",name:"ContainerDescription",vm:"1",version:"DICOM"},"(0040,0520)":{tag:"(0040,0520)",vr:"SQ",name:"ContainerComponentSequence",vm:"1",version:"DICOM"},"(0040,0551)":{tag:"(0040,0551)",vr:"LO",name:"SpecimenIdentifier",vm:"1",version:"DICOM"},"(0040,0554)":{tag:"(0040,0554)",vr:"UI",name:"SpecimenUID",vm:"1",version:"DICOM"},"(0040,0555)":{tag:"(0040,0555)",vr:"SQ",name:"AcquisitionContextSequence",vm:"1",version:"DICOM"},"(0040,0556)":{tag:"(0040,0556)",vr:"ST",name:"AcquisitionContextDescription",vm:"1",version:"DICOM"},"(0040,0560)":{tag:"(0040,0560)",vr:"SQ",name:"SpecimenDescriptionSequence",vm:"1",version:"DICOM"},"(0040,0562)":{tag:"(0040,0562)",vr:"SQ",name:"IssuerOfTheSpecimenIdentifierSequence",vm:"1",version:"DICOM"},"(0040,059A)":{tag:"(0040,059A)",vr:"SQ",name:"SpecimenTypeCodeSequence",vm:"1",version:"DICOM"},"(0040,0600)":{tag:"(0040,0600)",vr:"LO",name:"SpecimenShortDescription",vm:"1",version:"DICOM"},"(0040,0602)":{tag:"(0040,0602)",vr:"UT",name:"SpecimenDetailedDescription",vm:"1",version:"DICOM"},"(0040,0610)":{tag:"(0040,0610)",vr:"SQ",name:"SpecimenPreparationSequence",vm:"1",version:"DICOM"},"(0040,0612)":{tag:"(0040,0612)",vr:"SQ",name:"SpecimenPreparationStepContentItemSequence",vm:"1",version:"DICOM"},"(0040,0620)":{tag:"(0040,0620)",vr:"SQ",name:"SpecimenLocalizationContentItemSequence",vm:"1",version:"DICOM"},"(0040,0710)":{tag:"(0040,0710)",vr:"SQ",name:"WholeSlideMicroscopyImageFrameTypeSequence",vm:"1",version:"DICOM"},"(0040,071A)":{tag:"(0040,071A)",vr:"SQ",name:"ImageCenterPointCoordinatesSequence",vm:"1",version:"DICOM"},"(0040,072A)":{tag:"(0040,072A)",vr:"DS",name:"XOffsetInSlideCoordinateSystem",vm:"1",version:"DICOM"},"(0040,073A)":{tag:"(0040,073A)",vr:"DS",name:"YOffsetInSlideCoordinateSystem",vm:"1",version:"DICOM"},"(0040,074A)":{tag:"(0040,074A)",vr:"DS",name:"ZOffsetInSlideCoordinateSystem",vm:"1",version:"DICOM"},"(0040,08EA)":{tag:"(0040,08EA)",vr:"SQ",name:"MeasurementUnitsCodeSequence",vm:"1",version:"DICOM"},"(0040,1001)":{tag:"(0040,1001)",vr:"SH",name:"RequestedProcedureID",vm:"1",version:"DICOM"},"(0040,1002)":{tag:"(0040,1002)",vr:"LO",name:"ReasonForTheRequestedProcedure",vm:"1",version:"DICOM"},"(0040,1003)":{tag:"(0040,1003)",vr:"SH",name:"RequestedProcedurePriority",vm:"1",version:"DICOM"},"(0040,1004)":{tag:"(0040,1004)",vr:"LO",name:"PatientTransportArrangements",vm:"1",version:"DICOM"},"(0040,1005)":{tag:"(0040,1005)",vr:"LO",name:"RequestedProcedureLocation",vm:"1",version:"DICOM"},"(0040,1008)":{tag:"(0040,1008)",vr:"LO",name:"ConfidentialityCode",vm:"1",version:"DICOM"},"(0040,1009)":{tag:"(0040,1009)",vr:"SH",name:"ReportingPriority",vm:"1",version:"DICOM"},"(0040,100A)":{tag:"(0040,100A)",vr:"SQ",name:"ReasonForRequestedProcedureCodeSequence",vm:"1",version:"DICOM"},"(0040,1010)":{tag:"(0040,1010)",vr:"PN",name:"NamesOfIntendedRecipientsOfResults",vm:"1-n",version:"DICOM"},"(0040,1011)":{tag:"(0040,1011)",vr:"SQ",name:"IntendedRecipientsOfResultsIdentificationSequence",vm:"1",version:"DICOM"},"(0040,1012)":{tag:"(0040,1012)",vr:"SQ",name:"ReasonForPerformedProcedureCodeSequence",vm:"1",version:"DICOM"},"(0040,1101)":{tag:"(0040,1101)",vr:"SQ",name:"PersonIdentificationCodeSequence",vm:"1",version:"DICOM"},"(0040,1102)":{tag:"(0040,1102)",vr:"ST",name:"PersonAddress",vm:"1",version:"DICOM"},"(0040,1103)":{tag:"(0040,1103)",vr:"LO",name:"PersonTelephoneNumbers",vm:"1-n",version:"DICOM"},"(0040,1104)":{tag:"(0040,1104)",vr:"LT",name:"PersonTelecomInformation",vm:"1",version:"DICOM"},"(0040,1400)":{tag:"(0040,1400)",vr:"LT",name:"RequestedProcedureComments",vm:"1",version:"DICOM"},"(0040,2004)":{tag:"(0040,2004)",vr:"DA",name:"IssueDateOfImagingServiceRequest",vm:"1",version:"DICOM"},"(0040,2005)":{tag:"(0040,2005)",vr:"TM",name:"IssueTimeOfImagingServiceRequest",vm:"1",version:"DICOM"},"(0040,2008)":{tag:"(0040,2008)",vr:"PN",name:"OrderEnteredBy",vm:"1",version:"DICOM"},"(0040,2009)":{tag:"(0040,2009)",vr:"SH",name:"OrderEntererLocation",vm:"1",version:"DICOM"},"(0040,2010)":{tag:"(0040,2010)",vr:"SH",name:"OrderCallbackPhoneNumber",vm:"1",version:"DICOM"},"(0040,2011)":{tag:"(0040,2011)",vr:"LT",name:"OrderCallbackTelecomInformation",vm:"1",version:"DICOM"},"(0040,2016)":{tag:"(0040,2016)",vr:"LO",name:"PlacerOrderNumberImagingServiceRequest",vm:"1",version:"DICOM"},"(0040,2017)":{tag:"(0040,2017)",vr:"LO",name:"FillerOrderNumberImagingServiceRequest",vm:"1",version:"DICOM"},"(0040,2400)":{tag:"(0040,2400)",vr:"LT",name:"ImagingServiceRequestComments",vm:"1",version:"DICOM"},"(0040,3001)":{tag:"(0040,3001)",vr:"LO",name:"ConfidentialityConstraintOnPatientDataDescription",vm:"1",version:"DICOM"},"(0040,4005)":{tag:"(0040,4005)",vr:"DT",name:"ScheduledProcedureStepStartDateTime",vm:"1",version:"DICOM"},"(0040,4007)":{tag:"(0040,4007)",vr:"SQ",name:"PerformedProcessingApplicationsCodeSequence",vm:"1",version:"DICOM"},"(0040,4008)":{tag:"(0040,4008)",vr:"DT",name:"ScheduledProcedureStepExpirationDateTime",vm:"1",version:"DICOM"},"(0040,4009)":{tag:"(0040,4009)",vr:"SQ",name:"HumanPerformerCodeSequence",vm:"1",version:"DICOM"},"(0040,4010)":{tag:"(0040,4010)",vr:"DT",name:"ScheduledProcedureStepModificationDateTime",vm:"1",version:"DICOM"},"(0040,4011)":{tag:"(0040,4011)",vr:"DT",name:"ExpectedCompletionDateTime",vm:"1",version:"DICOM"},"(0040,4018)":{tag:"(0040,4018)",vr:"SQ",name:"ScheduledWorkitemCodeSequence",vm:"1",version:"DICOM"},"(0040,4019)":{tag:"(0040,4019)",vr:"SQ",name:"PerformedWorkitemCodeSequence",vm:"1",version:"DICOM"},"(0040,4020)":{tag:"(0040,4020)",vr:"CS",name:"InputAvailabilityFlag",vm:"1",version:"DICOM"},"(0040,4021)":{tag:"(0040,4021)",vr:"SQ",name:"InputInformationSequence",vm:"1",version:"DICOM"},"(0040,4025)":{tag:"(0040,4025)",vr:"SQ",name:"ScheduledStationNameCodeSequence",vm:"1",version:"DICOM"},"(0040,4026)":{tag:"(0040,4026)",vr:"SQ",name:"ScheduledStationClassCodeSequence",vm:"1",version:"DICOM"},"(0040,4027)":{tag:"(0040,4027)",vr:"SQ",name:"ScheduledStationGeographicLocationCodeSequence",vm:"1",version:"DICOM"},"(0040,4028)":{tag:"(0040,4028)",vr:"SQ",name:"PerformedStationNameCodeSequence",vm:"1",version:"DICOM"},"(0040,4029)":{tag:"(0040,4029)",vr:"SQ",name:"PerformedStationClassCodeSequence",vm:"1",version:"DICOM"},"(0040,4030)":{tag:"(0040,4030)",vr:"SQ",name:"PerformedStationGeographicLocationCodeSequence",vm:"1",version:"DICOM"},"(0040,4033)":{tag:"(0040,4033)",vr:"SQ",name:"OutputInformationSequence",vm:"1",version:"DICOM"},"(0040,4034)":{tag:"(0040,4034)",vr:"SQ",name:"ScheduledHumanPerformersSequence",vm:"1",version:"DICOM"},"(0040,4035)":{tag:"(0040,4035)",vr:"SQ",name:"ActualHumanPerformersSequence",vm:"1",version:"DICOM"},"(0040,4036)":{tag:"(0040,4036)",vr:"LO",name:"HumanPerformerOrganization",vm:"1",version:"DICOM"},"(0040,4037)":{tag:"(0040,4037)",vr:"PN",name:"HumanPerformerName",vm:"1",version:"DICOM"},"(0040,4040)":{tag:"(0040,4040)",vr:"CS",name:"RawDataHandling",vm:"1",version:"DICOM"},"(0040,4041)":{tag:"(0040,4041)",vr:"CS",name:"InputReadinessState",vm:"1",version:"DICOM"},"(0040,4050)":{tag:"(0040,4050)",vr:"DT",name:"PerformedProcedureStepStartDateTime",vm:"1",version:"DICOM"},"(0040,4051)":{tag:"(0040,4051)",vr:"DT",name:"PerformedProcedureStepEndDateTime",vm:"1",version:"DICOM"},"(0040,4052)":{tag:"(0040,4052)",vr:"DT",name:"ProcedureStepCancellationDateTime",vm:"1",version:"DICOM"},"(0040,8302)":{tag:"(0040,8302)",vr:"DS",name:"EntranceDoseInmGy",vm:"1",version:"DICOM"},"(0040,8303)":{tag:"(0040,8303)",vr:"CS",name:"EntranceDoseDerivation",vm:"1",version:"DICOM"},"(0040,9092)":{tag:"(0040,9092)",vr:"SQ",name:"ParametricMapFrameTypeSequence",vm:"1",version:"DICOM"},"(0040,9094)":{tag:"(0040,9094)",vr:"SQ",name:"ReferencedImageRealWorldValueMappingSequence",vm:"1",version:"DICOM"},"(0040,9096)":{tag:"(0040,9096)",vr:"SQ",name:"RealWorldValueMappingSequence",vm:"1",version:"DICOM"},"(0040,9098)":{tag:"(0040,9098)",vr:"SQ",name:"PixelValueMappingCodeSequence",vm:"1",version:"DICOM"},"(0040,9210)":{tag:"(0040,9210)",vr:"SH",name:"LUTLabel",vm:"1",version:"DICOM"},"(0040,9211)":{tag:"(0040,9211)",vr:"xs",name:"RealWorldValueLastValueMapped",vm:"1",version:"DICOM"},"(0040,9212)":{tag:"(0040,9212)",vr:"FD",name:"RealWorldValueLUTData",vm:"1-n",version:"DICOM"},"(0040,9216)":{tag:"(0040,9216)",vr:"xs",name:"RealWorldValueFirstValueMapped",vm:"1",version:"DICOM"},"(0040,9220)":{tag:"(0040,9220)",vr:"SQ",name:"QuantityDefinitionSequence",vm:"1",version:"DICOM"},"(0040,9224)":{tag:"(0040,9224)",vr:"FD",name:"RealWorldValueIntercept",vm:"1",version:"DICOM"},"(0040,9225)":{tag:"(0040,9225)",vr:"FD",name:"RealWorldValueSlope",vm:"1",version:"DICOM"},"(0040,A010)":{tag:"(0040,A010)",vr:"CS",name:"RelationshipType",vm:"1",version:"DICOM"},"(0040,A027)":{tag:"(0040,A027)",vr:"LO",name:"VerifyingOrganization",vm:"1",version:"DICOM"},"(0040,A030)":{tag:"(0040,A030)",vr:"DT",name:"VerificationDateTime",vm:"1",version:"DICOM"},"(0040,A032)":{tag:"(0040,A032)",vr:"DT",name:"ObservationDateTime",vm:"1",version:"DICOM"},"(0040,A033)":{tag:"(0040,A033)",vr:"DT",name:"ObservationStartDateTime",vm:"1",version:"DICOM"},"(0040,A040)":{tag:"(0040,A040)",vr:"CS",name:"ValueType",vm:"1",version:"DICOM"},"(0040,A043)":{tag:"(0040,A043)",vr:"SQ",name:"ConceptNameCodeSequence",vm:"1",version:"DICOM"},"(0040,A050)":{tag:"(0040,A050)",vr:"CS",name:"ContinuityOfContent",vm:"1",version:"DICOM"},"(0040,A073)":{tag:"(0040,A073)",vr:"SQ",name:"VerifyingObserverSequence",vm:"1",version:"DICOM"},"(0040,A075)":{tag:"(0040,A075)",vr:"PN",name:"VerifyingObserverName",vm:"1",version:"DICOM"},"(0040,A078)":{tag:"(0040,A078)",vr:"SQ",name:"AuthorObserverSequence",vm:"1",version:"DICOM"},"(0040,A07A)":{tag:"(0040,A07A)",vr:"SQ",name:"ParticipantSequence",vm:"1",version:"DICOM"},"(0040,A07C)":{tag:"(0040,A07C)",vr:"SQ",name:"CustodialOrganizationSequence",vm:"1",version:"DICOM"},"(0040,A080)":{tag:"(0040,A080)",vr:"CS",name:"ParticipationType",vm:"1",version:"DICOM"},"(0040,A082)":{tag:"(0040,A082)",vr:"DT",name:"ParticipationDateTime",vm:"1",version:"DICOM"},"(0040,A084)":{tag:"(0040,A084)",vr:"CS",name:"ObserverType",vm:"1",version:"DICOM"},"(0040,A088)":{tag:"(0040,A088)",vr:"SQ",name:"VerifyingObserverIdentificationCodeSequence",vm:"1",version:"DICOM"},"(0040,A0B0)":{tag:"(0040,A0B0)",vr:"US",name:"ReferencedWaveformChannels",vm:"2-2n",version:"DICOM"},"(0040,A120)":{tag:"(0040,A120)",vr:"DT",name:"DateTime",vm:"1",version:"DICOM"},"(0040,A121)":{tag:"(0040,A121)",vr:"DA",name:"Date",vm:"1",version:"DICOM"},"(0040,A122)":{tag:"(0040,A122)",vr:"TM",name:"Time",vm:"1",version:"DICOM"},"(0040,A123)":{tag:"(0040,A123)",vr:"PN",name:"PersonName",vm:"1",version:"DICOM"},"(0040,A124)":{tag:"(0040,A124)",vr:"UI",name:"UID",vm:"1",version:"DICOM"},"(0040,A130)":{tag:"(0040,A130)",vr:"CS",name:"TemporalRangeType",vm:"1",version:"DICOM"},"(0040,A132)":{tag:"(0040,A132)",vr:"UL",name:"ReferencedSamplePositions",vm:"1-n",version:"DICOM"},"(0040,A136)":{tag:"(0040,A136)",vr:"US",name:"ReferencedFrameNumbers",vm:"1-n",version:"DICOM"},"(0040,A138)":{tag:"(0040,A138)",vr:"DS",name:"ReferencedTimeOffsets",vm:"1-n",version:"DICOM"},"(0040,A13A)":{tag:"(0040,A13A)",vr:"DT",name:"ReferencedDateTime",vm:"1-n",version:"DICOM"},"(0040,A160)":{tag:"(0040,A160)",vr:"UT",name:"TextValue",vm:"1",version:"DICOM"},"(0040,A161)":{tag:"(0040,A161)",vr:"FD",name:"FloatingPointValue",vm:"1-n",version:"DICOM"},"(0040,A162)":{tag:"(0040,A162)",vr:"SL",name:"RationalNumeratorValue",vm:"1-n",version:"DICOM"},"(0040,A163)":{tag:"(0040,A163)",vr:"UL",name:"RationalDenominatorValue",vm:"1-n",version:"DICOM"},"(0040,A168)":{tag:"(0040,A168)",vr:"SQ",name:"ConceptCodeSequence",vm:"1",version:"DICOM"},"(0040,A170)":{tag:"(0040,A170)",vr:"SQ",name:"PurposeOfReferenceCodeSequence",vm:"1",version:"DICOM"},"(0040,A171)":{tag:"(0040,A171)",vr:"UI",name:"ObservationUID",vm:"1",version:"DICOM"},"(0040,A180)":{tag:"(0040,A180)",vr:"US",name:"AnnotationGroupNumber",vm:"1",version:"DICOM"},"(0040,A195)":{tag:"(0040,A195)",vr:"SQ",name:"ModifierCodeSequence",vm:"1",version:"DICOM"},"(0040,A300)":{tag:"(0040,A300)",vr:"SQ",name:"MeasuredValueSequence",vm:"1",version:"DICOM"},"(0040,A301)":{tag:"(0040,A301)",vr:"SQ",name:"NumericValueQualifierCodeSequence",vm:"1",version:"DICOM"},"(0040,A30A)":{tag:"(0040,A30A)",vr:"DS",name:"NumericValue",vm:"1-n",version:"DICOM"},"(0040,A360)":{tag:"(0040,A360)",vr:"SQ",name:"PredecessorDocumentsSequence",vm:"1",version:"DICOM"},"(0040,A370)":{tag:"(0040,A370)",vr:"SQ",name:"ReferencedRequestSequence",vm:"1",version:"DICOM"},"(0040,A372)":{tag:"(0040,A372)",vr:"SQ",name:"PerformedProcedureCodeSequence",vm:"1",version:"DICOM"},"(0040,A375)":{tag:"(0040,A375)",vr:"SQ",name:"CurrentRequestedProcedureEvidenceSequence",vm:"1",version:"DICOM"},"(0040,A385)":{tag:"(0040,A385)",vr:"SQ",name:"PertinentOtherEvidenceSequence",vm:"1",version:"DICOM"},"(0040,A390)":{tag:"(0040,A390)",vr:"SQ",name:"HL7StructuredDocumentReferenceSequence",vm:"1",version:"DICOM"},"(0040,A491)":{tag:"(0040,A491)",vr:"CS",name:"CompletionFlag",vm:"1",version:"DICOM"},"(0040,A492)":{tag:"(0040,A492)",vr:"LO",name:"CompletionFlagDescription",vm:"1",version:"DICOM"},"(0040,A493)":{tag:"(0040,A493)",vr:"CS",name:"VerificationFlag",vm:"1",version:"DICOM"},"(0040,A494)":{tag:"(0040,A494)",vr:"CS",name:"ArchiveRequested",vm:"1",version:"DICOM"},"(0040,A496)":{tag:"(0040,A496)",vr:"CS",name:"PreliminaryFlag",vm:"1",version:"DICOM"},"(0040,A504)":{tag:"(0040,A504)",vr:"SQ",name:"ContentTemplateSequence",vm:"1",version:"DICOM"},"(0040,A525)":{tag:"(0040,A525)",vr:"SQ",name:"IdenticalDocumentsSequence",vm:"1",version:"DICOM"},"(0040,A730)":{tag:"(0040,A730)",vr:"SQ",name:"ContentSequence",vm:"1",version:"DICOM"},"(0040,A801)":{tag:"(0040,A801)",vr:"SQ",name:"TabulatedValuesSequence",vm:"1",version:"DICOM"},"(0040,A802)":{tag:"(0040,A802)",vr:"UL",name:"NumberOfTableRows",vm:"1",version:"DICOM"},"(0040,A803)":{tag:"(0040,A803)",vr:"UL",name:"NumbeOfTableColumns",vm:"1",version:"DICOM"},"(0040,A804)":{tag:"(0040,A804)",vr:"UL",name:"TableRowNumber",vm:"1",version:"DICOM"},"(0040,A805)":{tag:"(0040,A805)",vr:"UL",name:"TableColumnNumber",vm:"1",version:"DICOM"},"(0040,A806)":{tag:"(0040,A806)",vr:"SQ",name:"TableRowDefinitionSequence",vm:"1",version:"DICOM"},"(0040,A807)":{tag:"(0040,A807)",vr:"SQ",name:"TableColumnDefinitionSequence",vm:"1",version:"DICOM"},"(0040,A808)":{tag:"(0040,A808)",vr:"SQ",name:"CellValuesSequence",vm:"1",version:"DICOM"},"(0040,B020)":{tag:"(0040,B020)",vr:"SQ",name:"WaveformAnnotationSequence",vm:"1",version:"DICOM"},"(0040,DB00)":{tag:"(0040,DB00)",vr:"CS",name:"TemplateIdentifier",vm:"1",version:"DICOM"},"(0040,DB73)":{tag:"(0040,DB73)",vr:"UL",name:"ReferencedContentItemIdentifier",vm:"1-n",version:"DICOM"},"(0040,E001)":{tag:"(0040,E001)",vr:"ST",name:"HL7InstanceIdentifier",vm:"1",version:"DICOM"},"(0040,E004)":{tag:"(0040,E004)",vr:"DT",name:"HL7DocumentEffectiveTime",vm:"1",version:"DICOM"},"(0040,E006)":{tag:"(0040,E006)",vr:"SQ",name:"HL7DocumentTypeCodeSequence",vm:"1",version:"DICOM"},"(0040,E008)":{tag:"(0040,E008)",vr:"SQ",name:"DocumentClassCodeSequence",vm:"1",version:"DICOM"},"(0040,E010)":{tag:"(0040,E010)",vr:"UR",name:"RetrieveURI",vm:"1",version:"DICOM"},"(0040,E011)":{tag:"(0040,E011)",vr:"UI",name:"RetrieveLocationUID",vm:"1",version:"DICOM"},"(0040,E020)":{tag:"(0040,E020)",vr:"CS",name:"TypeOfInstances",vm:"1",version:"DICOM"},"(0040,E021)":{tag:"(0040,E021)",vr:"SQ",name:"DICOMRetrievalSequence",vm:"1",version:"DICOM"},"(0040,E022)":{tag:"(0040,E022)",vr:"SQ",name:"DICOMMediaRetrievalSequence",vm:"1",version:"DICOM"},"(0040,E023)":{tag:"(0040,E023)",vr:"SQ",name:"WADORetrievalSequence",vm:"1",version:"DICOM"},"(0040,E024)":{tag:"(0040,E024)",vr:"SQ",name:"XDSRetrievalSequence",vm:"1",version:"DICOM"},"(0040,E025)":{tag:"(0040,E025)",vr:"SQ",name:"WADORSRetrievalSequence",vm:"1",version:"DICOM"},"(0040,E030)":{tag:"(0040,E030)",vr:"UI",name:"RepositoryUniqueID",vm:"1",version:"DICOM"},"(0040,E031)":{tag:"(0040,E031)",vr:"UI",name:"HomeCommunityID",vm:"1",version:"DICOM"},"(0042,0010)":{tag:"(0042,0010)",vr:"ST",name:"DocumentTitle",vm:"1",version:"DICOM"},"(0042,0011)":{tag:"(0042,0011)",vr:"OB",name:"EncapsulatedDocument",vm:"1",version:"DICOM"},"(0042,0012)":{tag:"(0042,0012)",vr:"LO",name:"MIMETypeOfEncapsulatedDocument",vm:"1",version:"DICOM"},"(0042,0013)":{tag:"(0042,0013)",vr:"SQ",name:"SourceInstanceSequence",vm:"1",version:"DICOM"},"(0042,0014)":{tag:"(0042,0014)",vr:"LO",name:"ListOfMIMETypes",vm:"1-n",version:"DICOM"},"(0042,0015)":{tag:"(0042,0015)",vr:"UL",name:"EncapsulatedDocumentLength",vm:"1",version:"DICOM"},"(0044,0001)":{tag:"(0044,0001)",vr:"ST",name:"ProductPackageIdentifier",vm:"1",version:"DICOM"},"(0044,0002)":{tag:"(0044,0002)",vr:"CS",name:"SubstanceAdministrationApproval",vm:"1",version:"DICOM"},"(0044,0003)":{tag:"(0044,0003)",vr:"LT",name:"ApprovalStatusFurtherDescription",vm:"1",version:"DICOM"},"(0044,0004)":{tag:"(0044,0004)",vr:"DT",name:"ApprovalStatusDateTime",vm:"1",version:"DICOM"},"(0044,0007)":{tag:"(0044,0007)",vr:"SQ",name:"ProductTypeCodeSequence",vm:"1",version:"DICOM"},"(0044,0008)":{tag:"(0044,0008)",vr:"LO",name:"ProductName",vm:"1-n",version:"DICOM"},"(0044,0009)":{tag:"(0044,0009)",vr:"LT",name:"ProductDescription",vm:"1",version:"DICOM"},"(0044,000A)":{tag:"(0044,000A)",vr:"LO",name:"ProductLotIdentifier",vm:"1",version:"DICOM"},"(0044,000B)":{tag:"(0044,000B)",vr:"DT",name:"ProductExpirationDateTime",vm:"1",version:"DICOM"},"(0044,0010)":{tag:"(0044,0010)",vr:"DT",name:"SubstanceAdministrationDateTime",vm:"1",version:"DICOM"},"(0044,0011)":{tag:"(0044,0011)",vr:"LO",name:"SubstanceAdministrationNotes",vm:"1",version:"DICOM"},"(0044,0012)":{tag:"(0044,0012)",vr:"LO",name:"SubstanceAdministrationDeviceID",vm:"1",version:"DICOM"},"(0044,0013)":{tag:"(0044,0013)",vr:"SQ",name:"ProductParameterSequence",vm:"1",version:"DICOM"},"(0044,0019)":{tag:"(0044,0019)",vr:"SQ",name:"SubstanceAdministrationParameterSequence",vm:"1",version:"DICOM"},"(0044,0100)":{tag:"(0044,0100)",vr:"SQ",name:"ApprovalSequence",vm:"1",version:"DICOM"},"(0044,0101)":{tag:"(0044,0101)",vr:"SQ",name:"AssertionCodeSequence",vm:"1",version:"DICOM"},"(0044,0102)":{tag:"(0044,0102)",vr:"UI",name:"AssertionUID",vm:"1",version:"DICOM"},"(0044,0103)":{tag:"(0044,0103)",vr:"SQ",name:"AsserterIdentificationSequence",vm:"1",version:"DICOM"},"(0044,0104)":{tag:"(0044,0104)",vr:"DT",name:"AssertionDateTime",vm:"1",version:"DICOM"},"(0044,0105)":{tag:"(0044,0105)",vr:"DT",name:"AssertionExpirationDateTime",vm:"1",version:"DICOM"},"(0044,0106)":{tag:"(0044,0106)",vr:"UT",name:"AssertionComments",vm:"1",version:"DICOM"},"(0044,0107)":{tag:"(0044,0107)",vr:"SQ",name:"RelatedAssertionSequence",vm:"1",version:"DICOM"},"(0044,0108)":{tag:"(0044,0108)",vr:"UI",name:"ReferencedAssertionUID",vm:"1",version:"DICOM"},"(0044,0109)":{tag:"(0044,0109)",vr:"SQ",name:"ApprovalSubjectSequence",vm:"1",version:"DICOM"},"(0044,010A)":{tag:"(0044,010A)",vr:"SQ",name:"OrganizationalRoleCodeSequence",vm:"1",version:"DICOM"},"(0046,0012)":{tag:"(0046,0012)",vr:"LO",name:"LensDescription",vm:"1",version:"DICOM"},"(0046,0014)":{tag:"(0046,0014)",vr:"SQ",name:"RightLensSequence",vm:"1",version:"DICOM"},"(0046,0015)":{tag:"(0046,0015)",vr:"SQ",name:"LeftLensSequence",vm:"1",version:"DICOM"},"(0046,0016)":{tag:"(0046,0016)",vr:"SQ",name:"UnspecifiedLateralityLensSequence",vm:"1",version:"DICOM"},"(0046,0018)":{tag:"(0046,0018)",vr:"SQ",name:"CylinderSequence",vm:"1",version:"DICOM"},"(0046,0028)":{tag:"(0046,0028)",vr:"SQ",name:"PrismSequence",vm:"1",version:"DICOM"},"(0046,0030)":{tag:"(0046,0030)",vr:"FD",name:"HorizontalPrismPower",vm:"1",version:"DICOM"},"(0046,0032)":{tag:"(0046,0032)",vr:"CS",name:"HorizontalPrismBase",vm:"1",version:"DICOM"},"(0046,0034)":{tag:"(0046,0034)",vr:"FD",name:"VerticalPrismPower",vm:"1",version:"DICOM"},"(0046,0036)":{tag:"(0046,0036)",vr:"CS",name:"VerticalPrismBase",vm:"1",version:"DICOM"},"(0046,0038)":{tag:"(0046,0038)",vr:"CS",name:"LensSegmentType",vm:"1",version:"DICOM"},"(0046,0040)":{tag:"(0046,0040)",vr:"FD",name:"OpticalTransmittance",vm:"1",version:"DICOM"},"(0046,0042)":{tag:"(0046,0042)",vr:"FD",name:"ChannelWidth",vm:"1",version:"DICOM"},"(0046,0044)":{tag:"(0046,0044)",vr:"FD",name:"PupilSize",vm:"1",version:"DICOM"},"(0046,0046)":{tag:"(0046,0046)",vr:"FD",name:"CornealSize",vm:"1",version:"DICOM"},"(0046,0047)":{tag:"(0046,0047)",vr:"SQ",name:"CornealSizeSequence",vm:"1",version:"DICOM"},"(0046,0050)":{tag:"(0046,0050)",vr:"SQ",name:"AutorefractionRightEyeSequence",vm:"1",version:"DICOM"},"(0046,0052)":{tag:"(0046,0052)",vr:"SQ",name:"AutorefractionLeftEyeSequence",vm:"1",version:"DICOM"},"(0046,0060)":{tag:"(0046,0060)",vr:"FD",name:"DistancePupillaryDistance",vm:"1",version:"DICOM"},"(0046,0062)":{tag:"(0046,0062)",vr:"FD",name:"NearPupillaryDistance",vm:"1",version:"DICOM"},"(0046,0063)":{tag:"(0046,0063)",vr:"FD",name:"IntermediatePupillaryDistance",vm:"1",version:"DICOM"},"(0046,0064)":{tag:"(0046,0064)",vr:"FD",name:"OtherPupillaryDistance",vm:"1",version:"DICOM"},"(0046,0070)":{tag:"(0046,0070)",vr:"SQ",name:"KeratometryRightEyeSequence",vm:"1",version:"DICOM"},"(0046,0071)":{tag:"(0046,0071)",vr:"SQ",name:"KeratometryLeftEyeSequence",vm:"1",version:"DICOM"},"(0046,0074)":{tag:"(0046,0074)",vr:"SQ",name:"SteepKeratometricAxisSequence",vm:"1",version:"DICOM"},"(0046,0075)":{tag:"(0046,0075)",vr:"FD",name:"RadiusOfCurvature",vm:"1",version:"DICOM"},"(0046,0076)":{tag:"(0046,0076)",vr:"FD",name:"KeratometricPower",vm:"1",version:"DICOM"},"(0046,0077)":{tag:"(0046,0077)",vr:"FD",name:"KeratometricAxis",vm:"1",version:"DICOM"},"(0046,0080)":{tag:"(0046,0080)",vr:"SQ",name:"FlatKeratometricAxisSequence",vm:"1",version:"DICOM"},"(0046,0092)":{tag:"(0046,0092)",vr:"CS",name:"BackgroundColor",vm:"1",version:"DICOM"},"(0046,0094)":{tag:"(0046,0094)",vr:"CS",name:"Optotype",vm:"1",version:"DICOM"},"(0046,0095)":{tag:"(0046,0095)",vr:"CS",name:"OptotypePresentation",vm:"1",version:"DICOM"},"(0046,0097)":{tag:"(0046,0097)",vr:"SQ",name:"SubjectiveRefractionRightEyeSequence",vm:"1",version:"DICOM"},"(0046,0098)":{tag:"(0046,0098)",vr:"SQ",name:"SubjectiveRefractionLeftEyeSequence",vm:"1",version:"DICOM"},"(0046,0100)":{tag:"(0046,0100)",vr:"SQ",name:"AddNearSequence",vm:"1",version:"DICOM"},"(0046,0101)":{tag:"(0046,0101)",vr:"SQ",name:"AddIntermediateSequence",vm:"1",version:"DICOM"},"(0046,0102)":{tag:"(0046,0102)",vr:"SQ",name:"AddOtherSequence",vm:"1",version:"DICOM"},"(0046,0104)":{tag:"(0046,0104)",vr:"FD",name:"AddPower",vm:"1",version:"DICOM"},"(0046,0106)":{tag:"(0046,0106)",vr:"FD",name:"ViewingDistance",vm:"1",version:"DICOM"},"(0046,0110)":{tag:"(0046,0110)",vr:"SQ",name:"CorneaMeasurementsSequence",vm:"1",version:"DICOM"},"(0046,0111)":{tag:"(0046,0111)",vr:"SQ",name:"SourceOfCorneaMeasurementDataCodeSequence",vm:"1",version:"DICOM"},"(0046,0112)":{tag:"(0046,0112)",vr:"SQ",name:"SteepCornealAxisSequence",vm:"1",version:"DICOM"},"(0046,0113)":{tag:"(0046,0113)",vr:"SQ",name:"FlatCornealAxisSequence",vm:"1",version:"DICOM"},"(0046,0114)":{tag:"(0046,0114)",vr:"FD",name:"CornealPower",vm:"1",version:"DICOM"},"(0046,0115)":{tag:"(0046,0115)",vr:"FD",name:"CornealAxis",vm:"1",version:"DICOM"},"(0046,0116)":{tag:"(0046,0116)",vr:"SQ",name:"CorneaMeasurementMethodCodeSequence",vm:"1",version:"DICOM"},"(0046,0117)":{tag:"(0046,0117)",vr:"FL",name:"RefractiveIndexOfCornea",vm:"1",version:"DICOM"},"(0046,0118)":{tag:"(0046,0118)",vr:"FL",name:"RefractiveIndexOfAqueousHumor",vm:"1",version:"DICOM"},"(0046,0121)":{tag:"(0046,0121)",vr:"SQ",name:"VisualAcuityTypeCodeSequence",vm:"1",version:"DICOM"},"(0046,0122)":{tag:"(0046,0122)",vr:"SQ",name:"VisualAcuityRightEyeSequence",vm:"1",version:"DICOM"},"(0046,0123)":{tag:"(0046,0123)",vr:"SQ",name:"VisualAcuityLeftEyeSequence",vm:"1",version:"DICOM"},"(0046,0124)":{tag:"(0046,0124)",vr:"SQ",name:"VisualAcuityBothEyesOpenSequence",vm:"1",version:"DICOM"},"(0046,0125)":{tag:"(0046,0125)",vr:"CS",name:"ViewingDistanceType",vm:"1",version:"DICOM"},"(0046,0135)":{tag:"(0046,0135)",vr:"SS",name:"VisualAcuityModifiers",vm:"2",version:"DICOM"},"(0046,0137)":{tag:"(0046,0137)",vr:"FD",name:"DecimalVisualAcuity",vm:"1",version:"DICOM"},"(0046,0139)":{tag:"(0046,0139)",vr:"LO",name:"OptotypeDetailedDefinition",vm:"1",version:"DICOM"},"(0046,0145)":{tag:"(0046,0145)",vr:"SQ",name:"ReferencedRefractiveMeasurementsSequence",vm:"1",version:"DICOM"},"(0046,0146)":{tag:"(0046,0146)",vr:"FD",name:"SpherePower",vm:"1",version:"DICOM"},"(0046,0147)":{tag:"(0046,0147)",vr:"FD",name:"CylinderPower",vm:"1",version:"DICOM"},"(0046,0201)":{tag:"(0046,0201)",vr:"CS",name:"CornealTopographySurface",vm:"1",version:"DICOM"},"(0046,0202)":{tag:"(0046,0202)",vr:"FL",name:"CornealVertexLocation",vm:"2",version:"DICOM"},"(0046,0203)":{tag:"(0046,0203)",vr:"FL",name:"PupilCentroidXCoordinate",vm:"1",version:"DICOM"},"(0046,0204)":{tag:"(0046,0204)",vr:"FL",name:"PupilCentroidYCoordinate",vm:"1",version:"DICOM"},"(0046,0205)":{tag:"(0046,0205)",vr:"FL",name:"EquivalentPupilRadius",vm:"1",version:"DICOM"},"(0046,0207)":{tag:"(0046,0207)",vr:"SQ",name:"CornealTopographyMapTypeCodeSequence",vm:"1",version:"DICOM"},"(0046,0208)":{tag:"(0046,0208)",vr:"IS",name:"VerticesOfTheOutlineOfPupil",vm:"2-2n",version:"DICOM"},"(0046,0210)":{tag:"(0046,0210)",vr:"SQ",name:"CornealTopographyMappingNormalsSequence",vm:"1",version:"DICOM"},"(0046,0211)":{tag:"(0046,0211)",vr:"SQ",name:"MaximumCornealCurvatureSequence",vm:"1",version:"DICOM"},"(0046,0212)":{tag:"(0046,0212)",vr:"FL",name:"MaximumCornealCurvature",vm:"1",version:"DICOM"},"(0046,0213)":{tag:"(0046,0213)",vr:"FL",name:"MaximumCornealCurvatureLocation",vm:"2",version:"DICOM"},"(0046,0215)":{tag:"(0046,0215)",vr:"SQ",name:"MinimumKeratometricSequence",vm:"1",version:"DICOM"},"(0046,0218)":{tag:"(0046,0218)",vr:"SQ",name:"SimulatedKeratometricCylinderSequence",vm:"1",version:"DICOM"},"(0046,0220)":{tag:"(0046,0220)",vr:"FL",name:"AverageCornealPower",vm:"1",version:"DICOM"},"(0046,0224)":{tag:"(0046,0224)",vr:"FL",name:"CornealISValue",vm:"1",version:"DICOM"},"(0046,0227)":{tag:"(0046,0227)",vr:"FL",name:"AnalyzedArea",vm:"1",version:"DICOM"},"(0046,0230)":{tag:"(0046,0230)",vr:"FL",name:"SurfaceRegularityIndex",vm:"1",version:"DICOM"},"(0046,0232)":{tag:"(0046,0232)",vr:"FL",name:"SurfaceAsymmetryIndex",vm:"1",version:"DICOM"},"(0046,0234)":{tag:"(0046,0234)",vr:"FL",name:"CornealEccentricityIndex",vm:"1",version:"DICOM"},"(0046,0236)":{tag:"(0046,0236)",vr:"FL",name:"KeratoconusPredictionIndex",vm:"1",version:"DICOM"},"(0046,0238)":{tag:"(0046,0238)",vr:"FL",name:"DecimalPotentialVisualAcuity",vm:"1",version:"DICOM"},"(0046,0242)":{tag:"(0046,0242)",vr:"CS",name:"CornealTopographyMapQualityEvaluation",vm:"1",version:"DICOM"},"(0046,0244)":{tag:"(0046,0244)",vr:"SQ",name:"SourceImageCornealProcessedDataSequence",vm:"1",version:"DICOM"},"(0046,0247)":{tag:"(0046,0247)",vr:"FL",name:"CornealPointLocation",vm:"3",version:"DICOM"},"(0046,0248)":{tag:"(0046,0248)",vr:"CS",name:"CornealPointEstimated",vm:"1",version:"DICOM"},"(0046,0249)":{tag:"(0046,0249)",vr:"FL",name:"AxialPower",vm:"1",version:"DICOM"},"(0046,0250)":{tag:"(0046,0250)",vr:"FL",name:"TangentialPower",vm:"1",version:"DICOM"},"(0046,0251)":{tag:"(0046,0251)",vr:"FL",name:"RefractivePower",vm:"1",version:"DICOM"},"(0046,0252)":{tag:"(0046,0252)",vr:"FL",name:"RelativeElevation",vm:"1",version:"DICOM"},"(0046,0253)":{tag:"(0046,0253)",vr:"FL",name:"CornealWavefront",vm:"1",version:"DICOM"},"(0048,0001)":{tag:"(0048,0001)",vr:"FL",name:"ImagedVolumeWidth",vm:"1",version:"DICOM"},"(0048,0002)":{tag:"(0048,0002)",vr:"FL",name:"ImagedVolumeHeight",vm:"1",version:"DICOM"},"(0048,0003)":{tag:"(0048,0003)",vr:"FL",name:"ImagedVolumeDepth",vm:"1",version:"DICOM"},"(0048,0006)":{tag:"(0048,0006)",vr:"UL",name:"TotalPixelMatrixColumns",vm:"1",version:"DICOM"},"(0048,0007)":{tag:"(0048,0007)",vr:"UL",name:"TotalPixelMatrixRows",vm:"1",version:"DICOM"},"(0048,0008)":{tag:"(0048,0008)",vr:"SQ",name:"TotalPixelMatrixOriginSequence",vm:"1",version:"DICOM"},"(0048,0010)":{tag:"(0048,0010)",vr:"CS",name:"SpecimenLabelInImage",vm:"1",version:"DICOM"},"(0048,0011)":{tag:"(0048,0011)",vr:"CS",name:"FocusMethod",vm:"1",version:"DICOM"},"(0048,0012)":{tag:"(0048,0012)",vr:"CS",name:"ExtendedDepthOfField",vm:"1",version:"DICOM"},"(0048,0013)":{tag:"(0048,0013)",vr:"US",name:"NumberOfFocalPlanes",vm:"1",version:"DICOM"},"(0048,0014)":{tag:"(0048,0014)",vr:"FL",name:"DistanceBetweenFocalPlanes",vm:"1",version:"DICOM"},"(0048,0015)":{tag:"(0048,0015)",vr:"US",name:"RecommendedAbsentPixelCIELabValue",vm:"3",version:"DICOM"},"(0048,0100)":{tag:"(0048,0100)",vr:"SQ",name:"IlluminatorTypeCodeSequence",vm:"1",version:"DICOM"},"(0048,0102)":{tag:"(0048,0102)",vr:"DS",name:"ImageOrientationSlide",vm:"6",version:"DICOM"},"(0048,0105)":{tag:"(0048,0105)",vr:"SQ",name:"OpticalPathSequence",vm:"1",version:"DICOM"},"(0048,0106)":{tag:"(0048,0106)",vr:"SH",name:"OpticalPathIdentifier",vm:"1",version:"DICOM"},"(0048,0107)":{tag:"(0048,0107)",vr:"ST",name:"OpticalPathDescription",vm:"1",version:"DICOM"},"(0048,0108)":{tag:"(0048,0108)",vr:"SQ",name:"IlluminationColorCodeSequence",vm:"1",version:"DICOM"},"(0048,0110)":{tag:"(0048,0110)",vr:"SQ",name:"SpecimenReferenceSequence",vm:"1",version:"DICOM"},"(0048,0111)":{tag:"(0048,0111)",vr:"DS",name:"CondenserLensPower",vm:"1",version:"DICOM"},"(0048,0112)":{tag:"(0048,0112)",vr:"DS",name:"ObjectiveLensPower",vm:"1",version:"DICOM"},"(0048,0113)":{tag:"(0048,0113)",vr:"DS",name:"ObjectiveLensNumericalAperture",vm:"1",version:"DICOM"},"(0048,0120)":{tag:"(0048,0120)",vr:"SQ",name:"PaletteColorLookupTableSequence",vm:"1",version:"DICOM"},"(0048,0200)":{tag:"(0048,0200)",vr:"SQ",name:"ReferencedImageNavigationSequence",vm:"1",version:"DICOM"},"(0048,0201)":{tag:"(0048,0201)",vr:"US",name:"TopLeftHandCornerOfLocalizerArea",vm:"2",version:"DICOM"},"(0048,0202)":{tag:"(0048,0202)",vr:"US",name:"BottomRightHandCornerOfLocalizerArea",vm:"2",version:"DICOM"},"(0048,0207)":{tag:"(0048,0207)",vr:"SQ",name:"OpticalPathIdentificationSequence",vm:"1",version:"DICOM"},"(0048,021A)":{tag:"(0048,021A)",vr:"SQ",name:"PlanePositionSlideSequence",vm:"1",version:"DICOM"},"(0048,021E)":{tag:"(0048,021E)",vr:"SL",name:"ColumnPositionInTotalImagePixelMatrix",vm:"1",version:"DICOM"},"(0048,021F)":{tag:"(0048,021F)",vr:"SL",name:"RowPositionInTotalImagePixelMatrix",vm:"1",version:"DICOM"},"(0048,0301)":{tag:"(0048,0301)",vr:"CS",name:"PixelOriginInterpretation",vm:"1",version:"DICOM"},"(0048,0302)":{tag:"(0048,0302)",vr:"UL",name:"NumberOfOpticalPaths",vm:"1",version:"DICOM"},"(0048,0303)":{tag:"(0048,0303)",vr:"UL",name:"TotalPixelMatrixFocalPlanes",vm:"1",version:"DICOM"},"(0050,0004)":{tag:"(0050,0004)",vr:"CS",name:"CalibrationImage",vm:"1",version:"DICOM"},"(0050,0010)":{tag:"(0050,0010)",vr:"SQ",name:"DeviceSequence",vm:"1",version:"DICOM"},"(0050,0012)":{tag:"(0050,0012)",vr:"SQ",name:"ContainerComponentTypeCodeSequence",vm:"1",version:"DICOM"},"(0050,0013)":{tag:"(0050,0013)",vr:"FD",name:"ContainerComponentThickness",vm:"1",version:"DICOM"},"(0050,0014)":{tag:"(0050,0014)",vr:"DS",name:"DeviceLength",vm:"1",version:"DICOM"},"(0050,0015)":{tag:"(0050,0015)",vr:"FD",name:"ContainerComponentWidth",vm:"1",version:"DICOM"},"(0050,0016)":{tag:"(0050,0016)",vr:"DS",name:"DeviceDiameter",vm:"1",version:"DICOM"},"(0050,0017)":{tag:"(0050,0017)",vr:"CS",name:"DeviceDiameterUnits",vm:"1",version:"DICOM"},"(0050,0018)":{tag:"(0050,0018)",vr:"DS",name:"DeviceVolume",vm:"1",version:"DICOM"},"(0050,0019)":{tag:"(0050,0019)",vr:"DS",name:"InterMarkerDistance",vm:"1",version:"DICOM"},"(0050,001A)":{tag:"(0050,001A)",vr:"CS",name:"ContainerComponentMaterial",vm:"1",version:"DICOM"},"(0050,001B)":{tag:"(0050,001B)",vr:"LO",name:"ContainerComponentID",vm:"1",version:"DICOM"},"(0050,001C)":{tag:"(0050,001C)",vr:"FD",name:"ContainerComponentLength",vm:"1",version:"DICOM"},"(0050,001D)":{tag:"(0050,001D)",vr:"FD",name:"ContainerComponentDiameter",vm:"1",version:"DICOM"},"(0050,001E)":{tag:"(0050,001E)",vr:"LO",name:"ContainerComponentDescription",vm:"1",version:"DICOM"},"(0050,0020)":{tag:"(0050,0020)",vr:"LO",name:"DeviceDescription",vm:"1",version:"DICOM"},"(0050,0021)":{tag:"(0050,0021)",vr:"ST",name:"LongDeviceDescription",vm:"1",version:"DICOM"},"(0052,0001)":{tag:"(0052,0001)",vr:"FL",name:"ContrastBolusIngredientPercentByVolume",vm:"1",version:"DICOM"},"(0052,0002)":{tag:"(0052,0002)",vr:"FD",name:"OCTFocalDistance",vm:"1",version:"DICOM"},"(0052,0003)":{tag:"(0052,0003)",vr:"FD",name:"BeamSpotSize",vm:"1",version:"DICOM"},"(0052,0004)":{tag:"(0052,0004)",vr:"FD",name:"EffectiveRefractiveIndex",vm:"1",version:"DICOM"},"(0052,0006)":{tag:"(0052,0006)",vr:"CS",name:"OCTAcquisitionDomain",vm:"1",version:"DICOM"},"(0052,0007)":{tag:"(0052,0007)",vr:"FD",name:"OCTOpticalCenterWavelength",vm:"1",version:"DICOM"},"(0052,0008)":{tag:"(0052,0008)",vr:"FD",name:"AxialResolution",vm:"1",version:"DICOM"},"(0052,0009)":{tag:"(0052,0009)",vr:"FD",name:"RangingDepth",vm:"1",version:"DICOM"},"(0052,0011)":{tag:"(0052,0011)",vr:"FD",name:"ALineRate",vm:"1",version:"DICOM"},"(0052,0012)":{tag:"(0052,0012)",vr:"US",name:"ALinesPerFrame",vm:"1",version:"DICOM"},"(0052,0013)":{tag:"(0052,0013)",vr:"FD",name:"CatheterRotationalRate",vm:"1",version:"DICOM"},"(0052,0014)":{tag:"(0052,0014)",vr:"FD",name:"ALinePixelSpacing",vm:"1",version:"DICOM"},"(0052,0016)":{tag:"(0052,0016)",vr:"SQ",name:"ModeOfPercutaneousAccessSequence",vm:"1",version:"DICOM"},"(0052,0025)":{tag:"(0052,0025)",vr:"SQ",name:"IntravascularOCTFrameTypeSequence",vm:"1",version:"DICOM"},"(0052,0026)":{tag:"(0052,0026)",vr:"CS",name:"OCTZOffsetApplied",vm:"1",version:"DICOM"},"(0052,0027)":{tag:"(0052,0027)",vr:"SQ",name:"IntravascularFrameContentSequence",vm:"1",version:"DICOM"},"(0052,0028)":{tag:"(0052,0028)",vr:"FD",name:"IntravascularLongitudinalDistance",vm:"1",version:"DICOM"},"(0052,0029)":{tag:"(0052,0029)",vr:"SQ",name:"IntravascularOCTFrameContentSequence",vm:"1",version:"DICOM"},"(0052,0030)":{tag:"(0052,0030)",vr:"SS",name:"OCTZOffsetCorrection",vm:"1",version:"DICOM"},"(0052,0031)":{tag:"(0052,0031)",vr:"CS",name:"CatheterDirectionOfRotation",vm:"1",version:"DICOM"},"(0052,0033)":{tag:"(0052,0033)",vr:"FD",name:"SeamLineLocation",vm:"1",version:"DICOM"},"(0052,0034)":{tag:"(0052,0034)",vr:"FD",name:"FirstALineLocation",vm:"1",version:"DICOM"},"(0052,0036)":{tag:"(0052,0036)",vr:"US",name:"SeamLineIndex",vm:"1",version:"DICOM"},"(0052,0038)":{tag:"(0052,0038)",vr:"US",name:"NumberOfPaddedALines",vm:"1",version:"DICOM"},"(0052,0039)":{tag:"(0052,0039)",vr:"CS",name:"InterpolationType",vm:"1",version:"DICOM"},"(0052,003A)":{tag:"(0052,003A)",vr:"CS",name:"RefractiveIndexApplied",vm:"1",version:"DICOM"},"(0054,0010)":{tag:"(0054,0010)",vr:"US",name:"EnergyWindowVector",vm:"1-n",version:"DICOM"},"(0054,0011)":{tag:"(0054,0011)",vr:"US",name:"NumberOfEnergyWindows",vm:"1",version:"DICOM"},"(0054,0012)":{tag:"(0054,0012)",vr:"SQ",name:"EnergyWindowInformationSequence",vm:"1",version:"DICOM"},"(0054,0013)":{tag:"(0054,0013)",vr:"SQ",name:"EnergyWindowRangeSequence",vm:"1",version:"DICOM"},"(0054,0014)":{tag:"(0054,0014)",vr:"DS",name:"EnergyWindowLowerLimit",vm:"1",version:"DICOM"},"(0054,0015)":{tag:"(0054,0015)",vr:"DS",name:"EnergyWindowUpperLimit",vm:"1",version:"DICOM"},"(0054,0016)":{tag:"(0054,0016)",vr:"SQ",name:"RadiopharmaceuticalInformationSequence",vm:"1",version:"DICOM"},"(0054,0017)":{tag:"(0054,0017)",vr:"IS",name:"ResidualSyringeCounts",vm:"1",version:"DICOM"},"(0054,0018)":{tag:"(0054,0018)",vr:"SH",name:"EnergyWindowName",vm:"1",version:"DICOM"},"(0054,0020)":{tag:"(0054,0020)",vr:"US",name:"DetectorVector",vm:"1-n",version:"DICOM"},"(0054,0021)":{tag:"(0054,0021)",vr:"US",name:"NumberOfDetectors",vm:"1",version:"DICOM"},"(0054,0022)":{tag:"(0054,0022)",vr:"SQ",name:"DetectorInformationSequence",vm:"1",version:"DICOM"},"(0054,0030)":{tag:"(0054,0030)",vr:"US",name:"PhaseVector",vm:"1-n",version:"DICOM"},"(0054,0031)":{tag:"(0054,0031)",vr:"US",name:"NumberOfPhases",vm:"1",version:"DICOM"},"(0054,0032)":{tag:"(0054,0032)",vr:"SQ",name:"PhaseInformationSequence",vm:"1",version:"DICOM"},"(0054,0033)":{tag:"(0054,0033)",vr:"US",name:"NumberOfFramesInPhase",vm:"1",version:"DICOM"},"(0054,0036)":{tag:"(0054,0036)",vr:"IS",name:"PhaseDelay",vm:"1",version:"DICOM"},"(0054,0038)":{tag:"(0054,0038)",vr:"IS",name:"PauseBetweenFrames",vm:"1",version:"DICOM"},"(0054,0039)":{tag:"(0054,0039)",vr:"CS",name:"PhaseDescription",vm:"1",version:"DICOM"},"(0054,0050)":{tag:"(0054,0050)",vr:"US",name:"RotationVector",vm:"1-n",version:"DICOM"},"(0054,0051)":{tag:"(0054,0051)",vr:"US",name:"NumberOfRotations",vm:"1",version:"DICOM"},"(0054,0052)":{tag:"(0054,0052)",vr:"SQ",name:"RotationInformationSequence",vm:"1",version:"DICOM"},"(0054,0053)":{tag:"(0054,0053)",vr:"US",name:"NumberOfFramesInRotation",vm:"1",version:"DICOM"},"(0054,0060)":{tag:"(0054,0060)",vr:"US",name:"RRIntervalVector",vm:"1-n",version:"DICOM"},"(0054,0061)":{tag:"(0054,0061)",vr:"US",name:"NumberOfRRIntervals",vm:"1",version:"DICOM"},"(0054,0062)":{tag:"(0054,0062)",vr:"SQ",name:"GatedInformationSequence",vm:"1",version:"DICOM"},"(0054,0063)":{tag:"(0054,0063)",vr:"SQ",name:"DataInformationSequence",vm:"1",version:"DICOM"},"(0054,0070)":{tag:"(0054,0070)",vr:"US",name:"TimeSlotVector",vm:"1-n",version:"DICOM"},"(0054,0071)":{tag:"(0054,0071)",vr:"US",name:"NumberOfTimeSlots",vm:"1",version:"DICOM"},"(0054,0072)":{tag:"(0054,0072)",vr:"SQ",name:"TimeSlotInformationSequence",vm:"1",version:"DICOM"},"(0054,0073)":{tag:"(0054,0073)",vr:"DS",name:"TimeSlotTime",vm:"1",version:"DICOM"},"(0054,0080)":{tag:"(0054,0080)",vr:"US",name:"SliceVector",vm:"1-n",version:"DICOM"},"(0054,0081)":{tag:"(0054,0081)",vr:"US",name:"NumberOfSlices",vm:"1",version:"DICOM"},"(0054,0090)":{tag:"(0054,0090)",vr:"US",name:"AngularViewVector",vm:"1-n",version:"DICOM"},"(0054,0100)":{tag:"(0054,0100)",vr:"US",name:"TimeSliceVector",vm:"1-n",version:"DICOM"},"(0054,0101)":{tag:"(0054,0101)",vr:"US",name:"NumberOfTimeSlices",vm:"1",version:"DICOM"},"(0054,0200)":{tag:"(0054,0200)",vr:"DS",name:"StartAngle",vm:"1",version:"DICOM"},"(0054,0202)":{tag:"(0054,0202)",vr:"CS",name:"TypeOfDetectorMotion",vm:"1",version:"DICOM"},"(0054,0210)":{tag:"(0054,0210)",vr:"IS",name:"TriggerVector",vm:"1-n",version:"DICOM"},"(0054,0211)":{tag:"(0054,0211)",vr:"US",name:"NumberOfTriggersInPhase",vm:"1",version:"DICOM"},"(0054,0220)":{tag:"(0054,0220)",vr:"SQ",name:"ViewCodeSequence",vm:"1",version:"DICOM"},"(0054,0222)":{tag:"(0054,0222)",vr:"SQ",name:"ViewModifierCodeSequence",vm:"1",version:"DICOM"},"(0054,0300)":{tag:"(0054,0300)",vr:"SQ",name:"RadionuclideCodeSequence",vm:"1",version:"DICOM"},"(0054,0302)":{tag:"(0054,0302)",vr:"SQ",name:"AdministrationRouteCodeSequence",vm:"1",version:"DICOM"},"(0054,0304)":{tag:"(0054,0304)",vr:"SQ",name:"RadiopharmaceuticalCodeSequence",vm:"1",version:"DICOM"},"(0054,0306)":{tag:"(0054,0306)",vr:"SQ",name:"CalibrationDataSequence",vm:"1",version:"DICOM"},"(0054,0308)":{tag:"(0054,0308)",vr:"US",name:"EnergyWindowNumber",vm:"1",version:"DICOM"},"(0054,0400)":{tag:"(0054,0400)",vr:"SH",name:"ImageID",vm:"1",version:"DICOM"},"(0054,0410)":{tag:"(0054,0410)",vr:"SQ",name:"PatientOrientationCodeSequence",vm:"1",version:"DICOM"},"(0054,0412)":{tag:"(0054,0412)",vr:"SQ",name:"PatientOrientationModifierCodeSequence",vm:"1",version:"DICOM"},"(0054,0414)":{tag:"(0054,0414)",vr:"SQ",name:"PatientGantryRelationshipCodeSequence",vm:"1",version:"DICOM"},"(0054,0500)":{tag:"(0054,0500)",vr:"CS",name:"SliceProgressionDirection",vm:"1",version:"DICOM"},"(0054,0501)":{tag:"(0054,0501)",vr:"CS",name:"ScanProgressionDirection",vm:"1",version:"DICOM"},"(0054,1000)":{tag:"(0054,1000)",vr:"CS",name:"SeriesType",vm:"2",version:"DICOM"},"(0054,1001)":{tag:"(0054,1001)",vr:"CS",name:"Units",vm:"1",version:"DICOM"},"(0054,1002)":{tag:"(0054,1002)",vr:"CS",name:"CountsSource",vm:"1",version:"DICOM"},"(0054,1004)":{tag:"(0054,1004)",vr:"CS",name:"ReprojectionMethod",vm:"1",version:"DICOM"},"(0054,1006)":{tag:"(0054,1006)",vr:"CS",name:"SUVType",vm:"1",version:"DICOM"},"(0054,1100)":{tag:"(0054,1100)",vr:"CS",name:"RandomsCorrectionMethod",vm:"1",version:"DICOM"},"(0054,1101)":{tag:"(0054,1101)",vr:"LO",name:"AttenuationCorrectionMethod",vm:"1",version:"DICOM"},"(0054,1102)":{tag:"(0054,1102)",vr:"CS",name:"DecayCorrection",vm:"1",version:"DICOM"},"(0054,1103)":{tag:"(0054,1103)",vr:"LO",name:"ReconstructionMethod",vm:"1",version:"DICOM"},"(0054,1104)":{tag:"(0054,1104)",vr:"LO",name:"DetectorLinesOfResponseUsed",vm:"1",version:"DICOM"},"(0054,1105)":{tag:"(0054,1105)",vr:"LO",name:"ScatterCorrectionMethod",vm:"1",version:"DICOM"},"(0054,1200)":{tag:"(0054,1200)",vr:"DS",name:"AxialAcceptance",vm:"1",version:"DICOM"},"(0054,1201)":{tag:"(0054,1201)",vr:"IS",name:"AxialMash",vm:"2",version:"DICOM"},"(0054,1202)":{tag:"(0054,1202)",vr:"IS",name:"TransverseMash",vm:"1",version:"DICOM"},"(0054,1203)":{tag:"(0054,1203)",vr:"DS",name:"DetectorElementSize",vm:"2",version:"DICOM"},"(0054,1210)":{tag:"(0054,1210)",vr:"DS",name:"CoincidenceWindowWidth",vm:"1",version:"DICOM"},"(0054,1220)":{tag:"(0054,1220)",vr:"CS",name:"SecondaryCountsType",vm:"1-n",version:"DICOM"},"(0054,1300)":{tag:"(0054,1300)",vr:"DS",name:"FrameReferenceTime",vm:"1",version:"DICOM"},"(0054,1310)":{tag:"(0054,1310)",vr:"IS",name:"PrimaryPromptsCountsAccumulated",vm:"1",version:"DICOM"},"(0054,1311)":{tag:"(0054,1311)",vr:"IS",name:"SecondaryCountsAccumulated",vm:"1-n",version:"DICOM"},"(0054,1320)":{tag:"(0054,1320)",vr:"DS",name:"SliceSensitivityFactor",vm:"1",version:"DICOM"},"(0054,1321)":{tag:"(0054,1321)",vr:"DS",name:"DecayFactor",vm:"1",version:"DICOM"},"(0054,1322)":{tag:"(0054,1322)",vr:"DS",name:"DoseCalibrationFactor",vm:"1",version:"DICOM"},"(0054,1323)":{tag:"(0054,1323)",vr:"DS",name:"ScatterFractionFactor",vm:"1",version:"DICOM"},"(0054,1324)":{tag:"(0054,1324)",vr:"DS",name:"DeadTimeFactor",vm:"1",version:"DICOM"},"(0054,1330)":{tag:"(0054,1330)",vr:"US",name:"ImageIndex",vm:"1",version:"DICOM"},"(0060,3000)":{tag:"(0060,3000)",vr:"SQ",name:"HistogramSequence",vm:"1",version:"DICOM"},"(0060,3002)":{tag:"(0060,3002)",vr:"US",name:"HistogramNumberOfBins",vm:"1",version:"DICOM"},"(0060,3004)":{tag:"(0060,3004)",vr:"xs",name:"HistogramFirstBinValue",vm:"1",version:"DICOM"},"(0060,3006)":{tag:"(0060,3006)",vr:"xs",name:"HistogramLastBinValue",vm:"1",version:"DICOM"},"(0060,3008)":{tag:"(0060,3008)",vr:"US",name:"HistogramBinWidth",vm:"1",version:"DICOM"},"(0060,3010)":{tag:"(0060,3010)",vr:"LO",name:"HistogramExplanation",vm:"1",version:"DICOM"},"(0060,3020)":{tag:"(0060,3020)",vr:"UL",name:"HistogramData",vm:"1-n",version:"DICOM"},"(0062,0001)":{tag:"(0062,0001)",vr:"CS",name:"SegmentationType",vm:"1",version:"DICOM"},"(0062,0002)":{tag:"(0062,0002)",vr:"SQ",name:"SegmentSequence",vm:"1",version:"DICOM"},"(0062,0003)":{tag:"(0062,0003)",vr:"SQ",name:"SegmentedPropertyCategoryCodeSequence",vm:"1",version:"DICOM"},"(0062,0004)":{tag:"(0062,0004)",vr:"US",name:"SegmentNumber",vm:"1",version:"DICOM"},"(0062,0005)":{tag:"(0062,0005)",vr:"LO",name:"SegmentLabel",vm:"1",version:"DICOM"},"(0062,0006)":{tag:"(0062,0006)",vr:"ST",name:"SegmentDescription",vm:"1",version:"DICOM"},"(0062,0007)":{tag:"(0062,0007)",vr:"SQ",name:"SegmentationAlgorithmIdentificationSequence",vm:"1",version:"DICOM"},"(0062,0008)":{tag:"(0062,0008)",vr:"CS",name:"SegmentAlgorithmType",vm:"1",version:"DICOM"},"(0062,0009)":{tag:"(0062,0009)",vr:"LO",name:"SegmentAlgorithmName",vm:"1",version:"DICOM"},"(0062,000A)":{tag:"(0062,000A)",vr:"SQ",name:"SegmentIdentificationSequence",vm:"1",version:"DICOM"},"(0062,000B)":{tag:"(0062,000B)",vr:"US",name:"ReferencedSegmentNumber",vm:"1-n",version:"DICOM"},"(0062,000C)":{tag:"(0062,000C)",vr:"US",name:"RecommendedDisplayGrayscaleValue",vm:"1",version:"DICOM"},"(0062,000D)":{tag:"(0062,000D)",vr:"US",name:"RecommendedDisplayCIELabValue",vm:"3",version:"DICOM"},"(0062,000E)":{tag:"(0062,000E)",vr:"US",name:"MaximumFractionalValue",vm:"1",version:"DICOM"},"(0062,000F)":{tag:"(0062,000F)",vr:"SQ",name:"SegmentedPropertyTypeCodeSequence",vm:"1",version:"DICOM"},"(0062,0010)":{tag:"(0062,0010)",vr:"CS",name:"SegmentationFractionalType",vm:"1",version:"DICOM"},"(0062,0011)":{tag:"(0062,0011)",vr:"SQ",name:"SegmentedPropertyTypeModifierCodeSequence",vm:"1",version:"DICOM"},"(0062,0012)":{tag:"(0062,0012)",vr:"SQ",name:"UsedSegmentsSequence",vm:"1",version:"DICOM"},"(0062,0013)":{tag:"(0062,0013)",vr:"CS",name:"SegmentsOverlap",vm:"1",version:"DICOM"},"(0062,0020)":{tag:"(0062,0020)",vr:"UT",name:"TrackingID",vm:"1",version:"DICOM"},"(0062,0021)":{tag:"(0062,0021)",vr:"UI",name:"TrackingUID",vm:"1",version:"DICOM"},"(0064,0002)":{tag:"(0064,0002)",vr:"SQ",name:"DeformableRegistrationSequence",vm:"1",version:"DICOM"},"(0064,0003)":{tag:"(0064,0003)",vr:"UI",name:"SourceFrameOfReferenceUID",vm:"1",version:"DICOM"},"(0064,0005)":{tag:"(0064,0005)",vr:"SQ",name:"DeformableRegistrationGridSequence",vm:"1",version:"DICOM"},"(0064,0007)":{tag:"(0064,0007)",vr:"UL",name:"GridDimensions",vm:"3",version:"DICOM"},"(0064,0008)":{tag:"(0064,0008)",vr:"FD",name:"GridResolution",vm:"3",version:"DICOM"},"(0064,0009)":{tag:"(0064,0009)",vr:"OF",name:"VectorGridData",vm:"1",version:"DICOM"},"(0064,000F)":{tag:"(0064,000F)",vr:"SQ",name:"PreDeformationMatrixRegistrationSequence",vm:"1",version:"DICOM"},"(0064,0010)":{tag:"(0064,0010)",vr:"SQ",name:"PostDeformationMatrixRegistrationSequence",vm:"1",version:"DICOM"},"(0066,0001)":{tag:"(0066,0001)",vr:"UL",name:"NumberOfSurfaces",vm:"1",version:"DICOM"},"(0066,0002)":{tag:"(0066,0002)",vr:"SQ",name:"SurfaceSequence",vm:"1",version:"DICOM"},"(0066,0003)":{tag:"(0066,0003)",vr:"UL",name:"SurfaceNumber",vm:"1",version:"DICOM"},"(0066,0004)":{tag:"(0066,0004)",vr:"LT",name:"SurfaceComments",vm:"1",version:"DICOM"},"(0066,0009)":{tag:"(0066,0009)",vr:"CS",name:"SurfaceProcessing",vm:"1",version:"DICOM"},"(0066,000A)":{tag:"(0066,000A)",vr:"FL",name:"SurfaceProcessingRatio",vm:"1",version:"DICOM"},"(0066,000B)":{tag:"(0066,000B)",vr:"LO",name:"SurfaceProcessingDescription",vm:"1",version:"DICOM"},"(0066,000C)":{tag:"(0066,000C)",vr:"FL",name:"RecommendedPresentationOpacity",vm:"1",version:"DICOM"},"(0066,000D)":{tag:"(0066,000D)",vr:"CS",name:"RecommendedPresentationType",vm:"1",version:"DICOM"},"(0066,000E)":{tag:"(0066,000E)",vr:"CS",name:"FiniteVolume",vm:"1",version:"DICOM"},"(0066,0010)":{tag:"(0066,0010)",vr:"CS",name:"Manifold",vm:"1",version:"DICOM"},"(0066,0011)":{tag:"(0066,0011)",vr:"SQ",name:"SurfacePointsSequence",vm:"1",version:"DICOM"},"(0066,0012)":{tag:"(0066,0012)",vr:"SQ",name:"SurfacePointsNormalsSequence",vm:"1",version:"DICOM"},"(0066,0013)":{tag:"(0066,0013)",vr:"SQ",name:"SurfaceMeshPrimitivesSequence",vm:"1",version:"DICOM"},"(0066,0015)":{tag:"(0066,0015)",vr:"UL",name:"NumberOfSurfacePoints",vm:"1",version:"DICOM"},"(0066,0016)":{tag:"(0066,0016)",vr:"OF",name:"PointCoordinatesData",vm:"1",version:"DICOM"},"(0066,0017)":{tag:"(0066,0017)",vr:"FL",name:"PointPositionAccuracy",vm:"3",version:"DICOM"},"(0066,0018)":{tag:"(0066,0018)",vr:"FL",name:"MeanPointDistance",vm:"1",version:"DICOM"},"(0066,0019)":{tag:"(0066,0019)",vr:"FL",name:"MaximumPointDistance",vm:"1",version:"DICOM"},"(0066,001A)":{tag:"(0066,001A)",vr:"FL",name:"PointsBoundingBoxCoordinates",vm:"6",version:"DICOM"},"(0066,001B)":{tag:"(0066,001B)",vr:"FL",name:"AxisOfRotation",vm:"3",version:"DICOM"},"(0066,001C)":{tag:"(0066,001C)",vr:"FL",name:"CenterOfRotation",vm:"3",version:"DICOM"},"(0066,001E)":{tag:"(0066,001E)",vr:"UL",name:"NumberOfVectors",vm:"1",version:"DICOM"},"(0066,001F)":{tag:"(0066,001F)",vr:"US",name:"VectorDimensionality",vm:"1",version:"DICOM"},"(0066,0020)":{tag:"(0066,0020)",vr:"FL",name:"VectorAccuracy",vm:"1-n",version:"DICOM"},"(0066,0021)":{tag:"(0066,0021)",vr:"OF",name:"VectorCoordinateData",vm:"1",version:"DICOM"},"(0066,0023)":{tag:"(0066,0023)",vr:"OW",name:"TrianglePointIndexList",vm:"1",version:"DICOM"},"(0066,0024)":{tag:"(0066,0024)",vr:"OW",name:"EdgePointIndexList",vm:"1",version:"DICOM"},"(0066,0025)":{tag:"(0066,0025)",vr:"OW",name:"VertexPointIndexList",vm:"1",version:"DICOM"},"(0066,0026)":{tag:"(0066,0026)",vr:"SQ",name:"TriangleStripSequence",vm:"1",version:"DICOM"},"(0066,0027)":{tag:"(0066,0027)",vr:"SQ",name:"TriangleFanSequence",vm:"1",version:"DICOM"},"(0066,0028)":{tag:"(0066,0028)",vr:"SQ",name:"LineSequence",vm:"1",version:"DICOM"},"(0066,0029)":{tag:"(0066,0029)",vr:"OW",name:"PrimitivePointIndexList",vm:"1",version:"DICOM"},"(0066,002A)":{tag:"(0066,002A)",vr:"UL",name:"SurfaceCount",vm:"1",version:"DICOM"},"(0066,002B)":{tag:"(0066,002B)",vr:"SQ",name:"ReferencedSurfaceSequence",vm:"1",version:"DICOM"},"(0066,002C)":{tag:"(0066,002C)",vr:"UL",name:"ReferencedSurfaceNumber",vm:"1",version:"DICOM"},"(0066,002D)":{tag:"(0066,002D)",vr:"SQ",name:"SegmentSurfaceGenerationAlgorithmIdentificationSequence",vm:"1",version:"DICOM"},"(0066,002E)":{tag:"(0066,002E)",vr:"SQ",name:"SegmentSurfaceSourceInstanceSequence",vm:"1",version:"DICOM"},"(0066,002F)":{tag:"(0066,002F)",vr:"SQ",name:"AlgorithmFamilyCodeSequence",vm:"1",version:"DICOM"},"(0066,0030)":{tag:"(0066,0030)",vr:"SQ",name:"AlgorithmNameCodeSequence",vm:"1",version:"DICOM"},"(0066,0031)":{tag:"(0066,0031)",vr:"LO",name:"AlgorithmVersion",vm:"1",version:"DICOM"},"(0066,0032)":{tag:"(0066,0032)",vr:"LT",name:"AlgorithmParameters",vm:"1",version:"DICOM"},"(0066,0034)":{tag:"(0066,0034)",vr:"SQ",name:"FacetSequence",vm:"1",version:"DICOM"},"(0066,0035)":{tag:"(0066,0035)",vr:"SQ",name:"SurfaceProcessingAlgorithmIdentificationSequence",vm:"1",version:"DICOM"},"(0066,0036)":{tag:"(0066,0036)",vr:"LO",name:"AlgorithmName",vm:"1",version:"DICOM"},"(0066,0037)":{tag:"(0066,0037)",vr:"FL",name:"RecommendedPointRadius",vm:"1",version:"DICOM"},"(0066,0038)":{tag:"(0066,0038)",vr:"FL",name:"RecommendedLineThickness",vm:"1",version:"DICOM"},"(0066,0040)":{tag:"(0066,0040)",vr:"UL",name:"LongPrimitivePointIndexList",vm:"1-n",version:"DICOM"},"(0066,0041)":{tag:"(0066,0041)",vr:"UL",name:"LongTrianglePointIndexList",vm:"3-3n",version:"DICOM"},"(0066,0042)":{tag:"(0066,0042)",vr:"UL",name:"LongEdgePointIndexList",vm:"2-2n",version:"DICOM"},"(0066,0043)":{tag:"(0066,0043)",vr:"UL",name:"LongVertexPointIndexList",vm:"1-n",version:"DICOM"},"(0066,0101)":{tag:"(0066,0101)",vr:"SQ",name:"TrackSetSequence",vm:"1",version:"DICOM"},"(0066,0102)":{tag:"(0066,0102)",vr:"SQ",name:"TrackSequence",vm:"1",version:"DICOM"},"(0066,0103)":{tag:"(0066,0103)",vr:"OW",name:"RecommendedDisplayCIELabValueList",vm:"1",version:"DICOM"},"(0066,0104)":{tag:"(0066,0104)",vr:"SQ",name:"TrackingAlgorithmIdentificationSequence",vm:"1",version:"DICOM"},"(0066,0105)":{tag:"(0066,0105)",vr:"UL",name:"TrackSetNumber",vm:"1",version:"DICOM"},"(0066,0106)":{tag:"(0066,0106)",vr:"LO",name:"TrackSetLabel",vm:"1",version:"DICOM"},"(0066,0107)":{tag:"(0066,0107)",vr:"UT",name:"TrackSetDescription",vm:"1",version:"DICOM"},"(0066,0108)":{tag:"(0066,0108)",vr:"SQ",name:"TrackSetAnatomicalTypeCodeSequence",vm:"1",version:"DICOM"},"(0066,0121)":{tag:"(0066,0121)",vr:"SQ",name:"MeasurementsSequence",vm:"1",version:"DICOM"},"(0066,0124)":{tag:"(0066,0124)",vr:"SQ",name:"TrackSetStatisticsSequence",vm:"1",version:"DICOM"},"(0066,0125)":{tag:"(0066,0125)",vr:"OF",name:"FloatingPointValues",vm:"1",version:"DICOM"},"(0066,0129)":{tag:"(0066,0129)",vr:"OL",name:"TrackPointIndexList",vm:"1",version:"DICOM"},"(0066,0130)":{tag:"(0066,0130)",vr:"SQ",name:"TrackStatisticsSequence",vm:"1",version:"DICOM"},"(0066,0132)":{tag:"(0066,0132)",vr:"SQ",name:"MeasurementValuesSequence",vm:"1",version:"DICOM"},"(0066,0133)":{tag:"(0066,0133)",vr:"SQ",name:"DiffusionAcquisitionCodeSequence",vm:"1",version:"DICOM"},"(0066,0134)":{tag:"(0066,0134)",vr:"SQ",name:"DiffusionModelCodeSequence",vm:"1",version:"DICOM"},"(0068,6210)":{tag:"(0068,6210)",vr:"LO",name:"ImplantSize",vm:"1",version:"DICOM"},"(0068,6221)":{tag:"(0068,6221)",vr:"LO",name:"ImplantTemplateVersion",vm:"1",version:"DICOM"},"(0068,6222)":{tag:"(0068,6222)",vr:"SQ",name:"ReplacedImplantTemplateSequence",vm:"1",version:"DICOM"},"(0068,6223)":{tag:"(0068,6223)",vr:"CS",name:"ImplantType",vm:"1",version:"DICOM"},"(0068,6224)":{tag:"(0068,6224)",vr:"SQ",name:"DerivationImplantTemplateSequence",vm:"1",version:"DICOM"},"(0068,6225)":{tag:"(0068,6225)",vr:"SQ",name:"OriginalImplantTemplateSequence",vm:"1",version:"DICOM"},"(0068,6226)":{tag:"(0068,6226)",vr:"DT",name:"EffectiveDateTime",vm:"1",version:"DICOM"},"(0068,6230)":{tag:"(0068,6230)",vr:"SQ",name:"ImplantTargetAnatomySequence",vm:"1",version:"DICOM"},"(0068,6260)":{tag:"(0068,6260)",vr:"SQ",name:"InformationFromManufacturerSequence",vm:"1",version:"DICOM"},"(0068,6265)":{tag:"(0068,6265)",vr:"SQ",name:"NotificationFromManufacturerSequence",vm:"1",version:"DICOM"},"(0068,6270)":{tag:"(0068,6270)",vr:"DT",name:"InformationIssueDateTime",vm:"1",version:"DICOM"},"(0068,6280)":{tag:"(0068,6280)",vr:"ST",name:"InformationSummary",vm:"1",version:"DICOM"},"(0068,62A0)":{tag:"(0068,62A0)",vr:"SQ",name:"ImplantRegulatoryDisapprovalCodeSequence",vm:"1",version:"DICOM"},"(0068,62A5)":{tag:"(0068,62A5)",vr:"FD",name:"OverallTemplateSpatialTolerance",vm:"1",version:"DICOM"},"(0068,62C0)":{tag:"(0068,62C0)",vr:"SQ",name:"HPGLDocumentSequence",vm:"1",version:"DICOM"},"(0068,62D0)":{tag:"(0068,62D0)",vr:"US",name:"HPGLDocumentID",vm:"1",version:"DICOM"},"(0068,62D5)":{tag:"(0068,62D5)",vr:"LO",name:"HPGLDocumentLabel",vm:"1",version:"DICOM"},"(0068,62E0)":{tag:"(0068,62E0)",vr:"SQ",name:"ViewOrientationCodeSequence",vm:"1",version:"DICOM"},"(0068,62F0)":{tag:"(0068,62F0)",vr:"FD",name:"ViewOrientationModifier",vm:"9",version:"DICOM"},"(0068,62F2)":{tag:"(0068,62F2)",vr:"FD",name:"HPGLDocumentScaling",vm:"1",version:"DICOM"},"(0068,6300)":{tag:"(0068,6300)",vr:"OB",name:"HPGLDocument",vm:"1",version:"DICOM"},"(0068,6310)":{tag:"(0068,6310)",vr:"US",name:"HPGLContourPenNumber",vm:"1",version:"DICOM"},"(0068,6320)":{tag:"(0068,6320)",vr:"SQ",name:"HPGLPenSequence",vm:"1",version:"DICOM"},"(0068,6330)":{tag:"(0068,6330)",vr:"US",name:"HPGLPenNumber",vm:"1",version:"DICOM"},"(0068,6340)":{tag:"(0068,6340)",vr:"LO",name:"HPGLPenLabel",vm:"1",version:"DICOM"},"(0068,6345)":{tag:"(0068,6345)",vr:"ST",name:"HPGLPenDescription",vm:"1",version:"DICOM"},"(0068,6346)":{tag:"(0068,6346)",vr:"FD",name:"RecommendedRotationPoint",vm:"2",version:"DICOM"},"(0068,6347)":{tag:"(0068,6347)",vr:"FD",name:"BoundingRectangle",vm:"4",version:"DICOM"},"(0068,6350)":{tag:"(0068,6350)",vr:"US",name:"ImplantTemplate3DModelSurfaceNumber",vm:"1-n",version:"DICOM"},"(0068,6360)":{tag:"(0068,6360)",vr:"SQ",name:"SurfaceModelDescriptionSequence",vm:"1",version:"DICOM"},"(0068,6380)":{tag:"(0068,6380)",vr:"LO",name:"SurfaceModelLabel",vm:"1",version:"DICOM"},"(0068,6390)":{tag:"(0068,6390)",vr:"FD",name:"SurfaceModelScalingFactor",vm:"1",version:"DICOM"},"(0068,63A0)":{tag:"(0068,63A0)",vr:"SQ",name:"MaterialsCodeSequence",vm:"1",version:"DICOM"},"(0068,63A4)":{tag:"(0068,63A4)",vr:"SQ",name:"CoatingMaterialsCodeSequence",vm:"1",version:"DICOM"},"(0068,63A8)":{tag:"(0068,63A8)",vr:"SQ",name:"ImplantTypeCodeSequence",vm:"1",version:"DICOM"},"(0068,63AC)":{tag:"(0068,63AC)",vr:"SQ",name:"FixationMethodCodeSequence",vm:"1",version:"DICOM"},"(0068,63B0)":{tag:"(0068,63B0)",vr:"SQ",name:"MatingFeatureSetsSequence",vm:"1",version:"DICOM"},"(0068,63C0)":{tag:"(0068,63C0)",vr:"US",name:"MatingFeatureSetID",vm:"1",version:"DICOM"},"(0068,63D0)":{tag:"(0068,63D0)",vr:"LO",name:"MatingFeatureSetLabel",vm:"1",version:"DICOM"},"(0068,63E0)":{tag:"(0068,63E0)",vr:"SQ",name:"MatingFeatureSequence",vm:"1",version:"DICOM"},"(0068,63F0)":{tag:"(0068,63F0)",vr:"US",name:"MatingFeatureID",vm:"1",version:"DICOM"},"(0068,6400)":{tag:"(0068,6400)",vr:"SQ",name:"MatingFeatureDegreeOfFreedomSequence",vm:"1",version:"DICOM"},"(0068,6410)":{tag:"(0068,6410)",vr:"US",name:"DegreeOfFreedomID",vm:"1",version:"DICOM"},"(0068,6420)":{tag:"(0068,6420)",vr:"CS",name:"DegreeOfFreedomType",vm:"1",version:"DICOM"},"(0068,6430)":{tag:"(0068,6430)",vr:"SQ",name:"TwoDMatingFeatureCoordinatesSequence",vm:"1",version:"DICOM"},"(0068,6440)":{tag:"(0068,6440)",vr:"US",name:"ReferencedHPGLDocumentID",vm:"1",version:"DICOM"},"(0068,6450)":{tag:"(0068,6450)",vr:"FD",name:"TwoDMatingPoint",vm:"2",version:"DICOM"},"(0068,6460)":{tag:"(0068,6460)",vr:"FD",name:"TwoDMatingAxes",vm:"4",version:"DICOM"},"(0068,6470)":{tag:"(0068,6470)",vr:"SQ",name:"TwoDDegreeOfFreedomSequence",vm:"1",version:"DICOM"},"(0068,6490)":{tag:"(0068,6490)",vr:"FD",name:"ThreeDDegreeOfFreedomAxis",vm:"3",version:"DICOM"},"(0068,64A0)":{tag:"(0068,64A0)",vr:"FD",name:"RangeOfFreedom",vm:"2",version:"DICOM"},"(0068,64C0)":{tag:"(0068,64C0)",vr:"FD",name:"ThreeDMatingPoint",vm:"3",version:"DICOM"},"(0068,64D0)":{tag:"(0068,64D0)",vr:"FD",name:"ThreeDMatingAxes",vm:"9",version:"DICOM"},"(0068,64F0)":{tag:"(0068,64F0)",vr:"FD",name:"TwoDDegreeOfFreedomAxis",vm:"3",version:"DICOM"},"(0068,6500)":{tag:"(0068,6500)",vr:"SQ",name:"PlanningLandmarkPointSequence",vm:"1",version:"DICOM"},"(0068,6510)":{tag:"(0068,6510)",vr:"SQ",name:"PlanningLandmarkLineSequence",vm:"1",version:"DICOM"},"(0068,6520)":{tag:"(0068,6520)",vr:"SQ",name:"PlanningLandmarkPlaneSequence",vm:"1",version:"DICOM"},"(0068,6530)":{tag:"(0068,6530)",vr:"US",name:"PlanningLandmarkID",vm:"1",version:"DICOM"},"(0068,6540)":{tag:"(0068,6540)",vr:"LO",name:"PlanningLandmarkDescription",vm:"1",version:"DICOM"},"(0068,6545)":{tag:"(0068,6545)",vr:"SQ",name:"PlanningLandmarkIdentificationCodeSequence",vm:"1",version:"DICOM"},"(0068,6550)":{tag:"(0068,6550)",vr:"SQ",name:"TwoDPointCoordinatesSequence",vm:"1",version:"DICOM"},"(0068,6560)":{tag:"(0068,6560)",vr:"FD",name:"TwoDPointCoordinates",vm:"2",version:"DICOM"},"(0068,6590)":{tag:"(0068,6590)",vr:"FD",name:"ThreeDPointCoordinates",vm:"3",version:"DICOM"},"(0068,65A0)":{tag:"(0068,65A0)",vr:"SQ",name:"TwoDLineCoordinatesSequence",vm:"1",version:"DICOM"},"(0068,65B0)":{tag:"(0068,65B0)",vr:"FD",name:"TwoDLineCoordinates",vm:"4",version:"DICOM"},"(0068,65D0)":{tag:"(0068,65D0)",vr:"FD",name:"ThreeDLineCoordinates",vm:"6",version:"DICOM"},"(0068,65E0)":{tag:"(0068,65E0)",vr:"SQ",name:"TwoDPlaneCoordinatesSequence",vm:"1",version:"DICOM"},"(0068,65F0)":{tag:"(0068,65F0)",vr:"FD",name:"TwoDPlaneIntersection",vm:"4",version:"DICOM"},"(0068,6610)":{tag:"(0068,6610)",vr:"FD",name:"ThreeDPlaneOrigin",vm:"3",version:"DICOM"},"(0068,6620)":{tag:"(0068,6620)",vr:"FD",name:"ThreeDPlaneNormal",vm:"3",version:"DICOM"},"(0068,7001)":{tag:"(0068,7001)",vr:"CS",name:"ModelModification",vm:"1",version:"DICOM"},"(0068,7002)":{tag:"(0068,7002)",vr:"CS",name:"ModelMirroring",vm:"1",version:"DICOM"},"(0068,7003)":{tag:"(0068,7003)",vr:"SQ",name:"ModelUsageCodeSequence",vm:"1",version:"DICOM"},"(0068,7004)":{tag:"(0068,7004)",vr:"UI",name:"ModelGroupUID",vm:"1",version:"DICOM"},"(0068,7005)":{tag:"(0068,7005)",vr:"UR",name:"RelativeURIReferenceWithinEncapsulatedDocument",vm:"1",version:"DICOM"},"(0070,0001)":{tag:"(0070,0001)",vr:"SQ",name:"GraphicAnnotationSequence",vm:"1",version:"DICOM"},"(0070,0002)":{tag:"(0070,0002)",vr:"CS",name:"GraphicLayer",vm:"1",version:"DICOM"},"(0070,0003)":{tag:"(0070,0003)",vr:"CS",name:"BoundingBoxAnnotationUnits",vm:"1",version:"DICOM"},"(0070,0004)":{tag:"(0070,0004)",vr:"CS",name:"AnchorPointAnnotationUnits",vm:"1",version:"DICOM"},"(0070,0005)":{tag:"(0070,0005)",vr:"CS",name:"GraphicAnnotationUnits",vm:"1",version:"DICOM"},"(0070,0006)":{tag:"(0070,0006)",vr:"ST",name:"UnformattedTextValue",vm:"1",version:"DICOM"},"(0070,0008)":{tag:"(0070,0008)",vr:"SQ",name:"TextObjectSequence",vm:"1",version:"DICOM"},"(0070,0009)":{tag:"(0070,0009)",vr:"SQ",name:"GraphicObjectSequence",vm:"1",version:"DICOM"},"(0070,0010)":{tag:"(0070,0010)",vr:"FL",name:"BoundingBoxTopLeftHandCorner",vm:"2",version:"DICOM"},"(0070,0011)":{tag:"(0070,0011)",vr:"FL",name:"BoundingBoxBottomRightHandCorner",vm:"2",version:"DICOM"},"(0070,0012)":{tag:"(0070,0012)",vr:"CS",name:"BoundingBoxTextHorizontalJustification",vm:"1",version:"DICOM"},"(0070,0014)":{tag:"(0070,0014)",vr:"FL",name:"AnchorPoint",vm:"2",version:"DICOM"},"(0070,0015)":{tag:"(0070,0015)",vr:"CS",name:"AnchorPointVisibility",vm:"1",version:"DICOM"},"(0070,0020)":{tag:"(0070,0020)",vr:"US",name:"GraphicDimensions",vm:"1",version:"DICOM"},"(0070,0021)":{tag:"(0070,0021)",vr:"US",name:"NumberOfGraphicPoints",vm:"1",version:"DICOM"},"(0070,0022)":{tag:"(0070,0022)",vr:"FL",name:"GraphicData",vm:"2-n",version:"DICOM"},"(0070,0023)":{tag:"(0070,0023)",vr:"CS",name:"GraphicType",vm:"1",version:"DICOM"},"(0070,0024)":{tag:"(0070,0024)",vr:"CS",name:"GraphicFilled",vm:"1",version:"DICOM"},"(0070,0041)":{tag:"(0070,0041)",vr:"CS",name:"ImageHorizontalFlip",vm:"1",version:"DICOM"},"(0070,0042)":{tag:"(0070,0042)",vr:"US",name:"ImageRotation",vm:"1",version:"DICOM"},"(0070,0052)":{tag:"(0070,0052)",vr:"SL",name:"DisplayedAreaTopLeftHandCorner",vm:"2",version:"DICOM"},"(0070,0053)":{tag:"(0070,0053)",vr:"SL",name:"DisplayedAreaBottomRightHandCorner",vm:"2",version:"DICOM"},"(0070,005A)":{tag:"(0070,005A)",vr:"SQ",name:"DisplayedAreaSelectionSequence",vm:"1",version:"DICOM"},"(0070,0060)":{tag:"(0070,0060)",vr:"SQ",name:"GraphicLayerSequence",vm:"1",version:"DICOM"},"(0070,0062)":{tag:"(0070,0062)",vr:"IS",name:"GraphicLayerOrder",vm:"1",version:"DICOM"},"(0070,0066)":{tag:"(0070,0066)",vr:"US",name:"GraphicLayerRecommendedDisplayGrayscaleValue",vm:"1",version:"DICOM"},"(0070,0068)":{tag:"(0070,0068)",vr:"LO",name:"GraphicLayerDescription",vm:"1",version:"DICOM"},"(0070,0080)":{tag:"(0070,0080)",vr:"CS",name:"ContentLabel",vm:"1",version:"DICOM"},"(0070,0081)":{tag:"(0070,0081)",vr:"LO",name:"ContentDescription",vm:"1",version:"DICOM"},"(0070,0082)":{tag:"(0070,0082)",vr:"DA",name:"PresentationCreationDate",vm:"1",version:"DICOM"},"(0070,0083)":{tag:"(0070,0083)",vr:"TM",name:"PresentationCreationTime",vm:"1",version:"DICOM"},"(0070,0084)":{tag:"(0070,0084)",vr:"PN",name:"ContentCreatorName",vm:"1",version:"DICOM"},"(0070,0086)":{tag:"(0070,0086)",vr:"SQ",name:"ContentCreatorIdentificationCodeSequence",vm:"1",version:"DICOM"},"(0070,0087)":{tag:"(0070,0087)",vr:"SQ",name:"AlternateContentDescriptionSequence",vm:"1",version:"DICOM"},"(0070,0100)":{tag:"(0070,0100)",vr:"CS",name:"PresentationSizeMode",vm:"1",version:"DICOM"},"(0070,0101)":{tag:"(0070,0101)",vr:"DS",name:"PresentationPixelSpacing",vm:"2",version:"DICOM"},"(0070,0102)":{tag:"(0070,0102)",vr:"IS",name:"PresentationPixelAspectRatio",vm:"2",version:"DICOM"},"(0070,0103)":{tag:"(0070,0103)",vr:"FL",name:"PresentationPixelMagnificationRatio",vm:"1",version:"DICOM"},"(0070,0207)":{tag:"(0070,0207)",vr:"LO",name:"GraphicGroupLabel",vm:"1",version:"DICOM"},"(0070,0208)":{tag:"(0070,0208)",vr:"ST",name:"GraphicGroupDescription",vm:"1",version:"DICOM"},"(0070,0209)":{tag:"(0070,0209)",vr:"SQ",name:"CompoundGraphicSequence",vm:"1",version:"DICOM"},"(0070,0226)":{tag:"(0070,0226)",vr:"UL",name:"CompoundGraphicInstanceID",vm:"1",version:"DICOM"},"(0070,0227)":{tag:"(0070,0227)",vr:"LO",name:"FontName",vm:"1",version:"DICOM"},"(0070,0228)":{tag:"(0070,0228)",vr:"CS",name:"FontNameType",vm:"1",version:"DICOM"},"(0070,0229)":{tag:"(0070,0229)",vr:"LO",name:"CSSFontName",vm:"1",version:"DICOM"},"(0070,0230)":{tag:"(0070,0230)",vr:"FD",name:"RotationAngle",vm:"1",version:"DICOM"},"(0070,0231)":{tag:"(0070,0231)",vr:"SQ",name:"TextStyleSequence",vm:"1",version:"DICOM"},"(0070,0232)":{tag:"(0070,0232)",vr:"SQ",name:"LineStyleSequence",vm:"1",version:"DICOM"},"(0070,0233)":{tag:"(0070,0233)",vr:"SQ",name:"FillStyleSequence",vm:"1",version:"DICOM"},"(0070,0234)":{tag:"(0070,0234)",vr:"SQ",name:"GraphicGroupSequence",vm:"1",version:"DICOM"},"(0070,0241)":{tag:"(0070,0241)",vr:"US",name:"TextColorCIELabValue",vm:"3",version:"DICOM"},"(0070,0242)":{tag:"(0070,0242)",vr:"CS",name:"HorizontalAlignment",vm:"1",version:"DICOM"},"(0070,0243)":{tag:"(0070,0243)",vr:"CS",name:"VerticalAlignment",vm:"1",version:"DICOM"},"(0070,0244)":{tag:"(0070,0244)",vr:"CS",name:"ShadowStyle",vm:"1",version:"DICOM"},"(0070,0245)":{tag:"(0070,0245)",vr:"FL",name:"ShadowOffsetX",vm:"1",version:"DICOM"},"(0070,0246)":{tag:"(0070,0246)",vr:"FL",name:"ShadowOffsetY",vm:"1",version:"DICOM"},"(0070,0247)":{tag:"(0070,0247)",vr:"US",name:"ShadowColorCIELabValue",vm:"3",version:"DICOM"},"(0070,0248)":{tag:"(0070,0248)",vr:"CS",name:"Underlined",vm:"1",version:"DICOM"},"(0070,0249)":{tag:"(0070,0249)",vr:"CS",name:"Bold",vm:"1",version:"DICOM"},"(0070,0250)":{tag:"(0070,0250)",vr:"CS",name:"Italic",vm:"1",version:"DICOM"},"(0070,0251)":{tag:"(0070,0251)",vr:"US",name:"PatternOnColorCIELabValue",vm:"3",version:"DICOM"},"(0070,0252)":{tag:"(0070,0252)",vr:"US",name:"PatternOffColorCIELabValue",vm:"3",version:"DICOM"},"(0070,0253)":{tag:"(0070,0253)",vr:"FL",name:"LineThickness",vm:"1",version:"DICOM"},"(0070,0254)":{tag:"(0070,0254)",vr:"CS",name:"LineDashingStyle",vm:"1",version:"DICOM"},"(0070,0255)":{tag:"(0070,0255)",vr:"UL",name:"LinePattern",vm:"1",version:"DICOM"},"(0070,0256)":{tag:"(0070,0256)",vr:"OB",name:"FillPattern",vm:"1",version:"DICOM"},"(0070,0257)":{tag:"(0070,0257)",vr:"CS",name:"FillMode",vm:"1",version:"DICOM"},"(0070,0258)":{tag:"(0070,0258)",vr:"FL",name:"ShadowOpacity",vm:"1",version:"DICOM"},"(0070,0261)":{tag:"(0070,0261)",vr:"FL",name:"GapLength",vm:"1",version:"DICOM"},"(0070,0262)":{tag:"(0070,0262)",vr:"FL",name:"DiameterOfVisibility",vm:"1",version:"DICOM"},"(0070,0273)":{tag:"(0070,0273)",vr:"FL",name:"RotationPoint",vm:"2",version:"DICOM"},"(0070,0274)":{tag:"(0070,0274)",vr:"CS",name:"TickAlignment",vm:"1",version:"DICOM"},"(0070,0278)":{tag:"(0070,0278)",vr:"CS",name:"ShowTickLabel",vm:"1",version:"DICOM"},"(0070,0279)":{tag:"(0070,0279)",vr:"CS",name:"TickLabelAlignment",vm:"1",version:"DICOM"},"(0070,0282)":{tag:"(0070,0282)",vr:"CS",name:"CompoundGraphicUnits",vm:"1",version:"DICOM"},"(0070,0284)":{tag:"(0070,0284)",vr:"FL",name:"PatternOnOpacity",vm:"1",version:"DICOM"},"(0070,0285)":{tag:"(0070,0285)",vr:"FL",name:"PatternOffOpacity",vm:"1",version:"DICOM"},"(0070,0287)":{tag:"(0070,0287)",vr:"SQ",name:"MajorTicksSequence",vm:"1",version:"DICOM"},"(0070,0288)":{tag:"(0070,0288)",vr:"FL",name:"TickPosition",vm:"1",version:"DICOM"},"(0070,0289)":{tag:"(0070,0289)",vr:"SH",name:"TickLabel",vm:"1",version:"DICOM"},"(0070,0294)":{tag:"(0070,0294)",vr:"CS",name:"CompoundGraphicType",vm:"1",version:"DICOM"},"(0070,0295)":{tag:"(0070,0295)",vr:"UL",name:"GraphicGroupID",vm:"1",version:"DICOM"},"(0070,0306)":{tag:"(0070,0306)",vr:"CS",name:"ShapeType",vm:"1",version:"DICOM"},"(0070,0308)":{tag:"(0070,0308)",vr:"SQ",name:"RegistrationSequence",vm:"1",version:"DICOM"},"(0070,0309)":{tag:"(0070,0309)",vr:"SQ",name:"MatrixRegistrationSequence",vm:"1",version:"DICOM"},"(0070,030A)":{tag:"(0070,030A)",vr:"SQ",name:"MatrixSequence",vm:"1",version:"DICOM"},"(0070,030B)":{tag:"(0070,030B)",vr:"FD",name:"FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix",vm:"16",version:"DICOM"},"(0070,030C)":{tag:"(0070,030C)",vr:"CS",name:"FrameOfReferenceTransformationMatrixType",vm:"1",version:"DICOM"},"(0070,030D)":{tag:"(0070,030D)",vr:"SQ",name:"RegistrationTypeCodeSequence",vm:"1",version:"DICOM"},"(0070,030F)":{tag:"(0070,030F)",vr:"ST",name:"FiducialDescription",vm:"1",version:"DICOM"},"(0070,0310)":{tag:"(0070,0310)",vr:"SH",name:"FiducialIdentifier",vm:"1",version:"DICOM"},"(0070,0311)":{tag:"(0070,0311)",vr:"SQ",name:"FiducialIdentifierCodeSequence",vm:"1",version:"DICOM"},"(0070,0312)":{tag:"(0070,0312)",vr:"FD",name:"ContourUncertaintyRadius",vm:"1",version:"DICOM"},"(0070,0314)":{tag:"(0070,0314)",vr:"SQ",name:"UsedFiducialsSequence",vm:"1",version:"DICOM"},"(0070,0318)":{tag:"(0070,0318)",vr:"SQ",name:"GraphicCoordinatesDataSequence",vm:"1",version:"DICOM"},"(0070,031A)":{tag:"(0070,031A)",vr:"UI",name:"FiducialUID",vm:"1",version:"DICOM"},"(0070,031B)":{tag:"(0070,031B)",vr:"UI",name:"ReferencedFiducialUID",vm:"1",version:"DICOM"},"(0070,031C)":{tag:"(0070,031C)",vr:"SQ",name:"FiducialSetSequence",vm:"1",version:"DICOM"},"(0070,031E)":{tag:"(0070,031E)",vr:"SQ",name:"FiducialSequence",vm:"1",version:"DICOM"},"(0070,031F)":{tag:"(0070,031F)",vr:"SQ",name:"FiducialsPropertyCategoryCodeSequence",vm:"1",version:"DICOM"},"(0070,0401)":{tag:"(0070,0401)",vr:"US",name:"GraphicLayerRecommendedDisplayCIELabValue",vm:"3",version:"DICOM"},"(0070,0402)":{tag:"(0070,0402)",vr:"SQ",name:"BlendingSequence",vm:"1",version:"DICOM"},"(0070,0403)":{tag:"(0070,0403)",vr:"FL",name:"RelativeOpacity",vm:"1",version:"DICOM"},"(0070,0404)":{tag:"(0070,0404)",vr:"SQ",name:"ReferencedSpatialRegistrationSequence",vm:"1",version:"DICOM"},"(0070,0405)":{tag:"(0070,0405)",vr:"CS",name:"BlendingPosition",vm:"1",version:"DICOM"},"(0070,1209)":{tag:"(0070,1209)",vr:"UI",name:"VolumetricPresentationInputSetUID",vm:"1",version:"DICOM"},"(0070,120A)":{tag:"(0070,120A)",vr:"SQ",name:"VolumetricPresentationInputSetSequence",vm:"1",version:"DICOM"},"(0070,120B)":{tag:"(0070,120B)",vr:"CS",name:"GlobalCrop",vm:"1",version:"DICOM"},"(0070,120C)":{tag:"(0070,120C)",vr:"US",name:"GlobalCroppingSpecificationIndex",vm:"1-n",version:"DICOM"},"(0070,120D)":{tag:"(0070,120D)",vr:"CS",name:"RenderingMethod",vm:"1",version:"DICOM"},"(0070,1602)":{tag:"(0070,1602)",vr:"CS",name:"RenderProjection",vm:"1",version:"DICOM"},"(0070,1603)":{tag:"(0070,1603)",vr:"FD",name:"ViewpointPosition",vm:"3",version:"DICOM"},"(0070,1604)":{tag:"(0070,1604)",vr:"FD",name:"ViewpointLookAtPoint",vm:"3",version:"DICOM"},"(0070,1605)":{tag:"(0070,1605)",vr:"FD",name:"ViewpointUpDirection",vm:"3",version:"DICOM"},"(0070,1606)":{tag:"(0070,1606)",vr:"FD",name:"RenderFieldOfView",vm:"6",version:"DICOM"},"(0070,1607)":{tag:"(0070,1607)",vr:"FD",name:"SamplingStepSize",vm:"1",version:"DICOM"},"(0070,1701)":{tag:"(0070,1701)",vr:"CS",name:"ShadingStyle",vm:"1",version:"DICOM"},"(0070,1702)":{tag:"(0070,1702)",vr:"FD",name:"AmbientReflectionIntensity",vm:"1",version:"DICOM"},"(0070,1703)":{tag:"(0070,1703)",vr:"FD",name:"LightDirection",vm:"3",version:"DICOM"},"(0070,1704)":{tag:"(0070,1704)",vr:"FD",name:"DiffuseReflectionIntensity",vm:"1",version:"DICOM"},"(0070,1705)":{tag:"(0070,1705)",vr:"FD",name:"SpecularReflectionIntensity",vm:"1",version:"DICOM"},"(0070,1706)":{tag:"(0070,1706)",vr:"FD",name:"Shininess",vm:"1",version:"DICOM"},"(0070,1A06)":{tag:"(0070,1A06)",vr:"FD",name:"SwivelRange",vm:"1",version:"DICOM"},"(0070,1A07)":{tag:"(0070,1A07)",vr:"OD",name:"VolumetricCurveUpDirections",vm:"1",version:"DICOM"},"(0070,1A08)":{tag:"(0070,1A08)",vr:"SQ",name:"VolumeStreamSequence",vm:"1",version:"DICOM"},"(0070,1A09)":{tag:"(0070,1A09)",vr:"LO",name:"RGBATransferFunctionDescription",vm:"1",version:"DICOM"},"(0070,1B01)":{tag:"(0070,1B01)",vr:"SQ",name:"AdvancedBlendingSequence",vm:"1",version:"DICOM"},"(0070,1B02)":{tag:"(0070,1B02)",vr:"US",name:"BlendingInputNumber",vm:"1",version:"DICOM"},"(0070,1B03)":{tag:"(0070,1B03)",vr:"SQ",name:"BlendingDisplayInputSequence",vm:"1",version:"DICOM"},"(0070,1B04)":{tag:"(0070,1B04)",vr:"SQ",name:"BlendingDisplaySequence",vm:"1",version:"DICOM"},"(0070,1B06)":{tag:"(0070,1B06)",vr:"CS",name:"BlendingMode",vm:"1",version:"DICOM"},"(0070,1B07)":{tag:"(0070,1B07)",vr:"CS",name:"TimeSeriesBlending",vm:"1",version:"DICOM"},"(0070,1B08)":{tag:"(0070,1B08)",vr:"CS",name:"GeometryForDisplay",vm:"1",version:"DICOM"},"(0070,1B11)":{tag:"(0070,1B11)",vr:"SQ",name:"ThresholdSequence",vm:"1",version:"DICOM"},"(0070,1B12)":{tag:"(0070,1B12)",vr:"SQ",name:"ThresholdValueSequence",vm:"1",version:"DICOM"},"(0070,1B13)":{tag:"(0070,1B13)",vr:"CS",name:"ThresholdType",vm:"1",version:"DICOM"},"(0070,1B14)":{tag:"(0070,1B14)",vr:"FD",name:"ThresholdValue",vm:"1",version:"DICOM"},"(0072,0002)":{tag:"(0072,0002)",vr:"SH",name:"HangingProtocolName",vm:"1",version:"DICOM"},"(0072,0004)":{tag:"(0072,0004)",vr:"LO",name:"HangingProtocolDescription",vm:"1",version:"DICOM"},"(0072,0006)":{tag:"(0072,0006)",vr:"CS",name:"HangingProtocolLevel",vm:"1",version:"DICOM"},"(0072,0008)":{tag:"(0072,0008)",vr:"LO",name:"HangingProtocolCreator",vm:"1",version:"DICOM"},"(0072,000A)":{tag:"(0072,000A)",vr:"DT",name:"HangingProtocolCreationDateTime",vm:"1",version:"DICOM"},"(0072,000C)":{tag:"(0072,000C)",vr:"SQ",name:"HangingProtocolDefinitionSequence",vm:"1",version:"DICOM"},"(0072,000E)":{tag:"(0072,000E)",vr:"SQ",name:"HangingProtocolUserIdentificationCodeSequence",vm:"1",version:"DICOM"},"(0072,0010)":{tag:"(0072,0010)",vr:"LO",name:"HangingProtocolUserGroupName",vm:"1",version:"DICOM"},"(0072,0012)":{tag:"(0072,0012)",vr:"SQ",name:"SourceHangingProtocolSequence",vm:"1",version:"DICOM"},"(0072,0014)":{tag:"(0072,0014)",vr:"US",name:"NumberOfPriorsReferenced",vm:"1",version:"DICOM"},"(0072,0020)":{tag:"(0072,0020)",vr:"SQ",name:"ImageSetsSequence",vm:"1",version:"DICOM"},"(0072,0022)":{tag:"(0072,0022)",vr:"SQ",name:"ImageSetSelectorSequence",vm:"1",version:"DICOM"},"(0072,0024)":{tag:"(0072,0024)",vr:"CS",name:"ImageSetSelectorUsageFlag",vm:"1",version:"DICOM"},"(0072,0026)":{tag:"(0072,0026)",vr:"AT",name:"SelectorAttribute",vm:"1",version:"DICOM"},"(0072,0028)":{tag:"(0072,0028)",vr:"US",name:"SelectorValueNumber",vm:"1",version:"DICOM"},"(0072,0030)":{tag:"(0072,0030)",vr:"SQ",name:"TimeBasedImageSetsSequence",vm:"1",version:"DICOM"},"(0072,0032)":{tag:"(0072,0032)",vr:"US",name:"ImageSetNumber",vm:"1",version:"DICOM"},"(0072,0034)":{tag:"(0072,0034)",vr:"CS",name:"ImageSetSelectorCategory",vm:"1",version:"DICOM"},"(0072,0038)":{tag:"(0072,0038)",vr:"US",name:"RelativeTime",vm:"2",version:"DICOM"},"(0072,003A)":{tag:"(0072,003A)",vr:"CS",name:"RelativeTimeUnits",vm:"1",version:"DICOM"},"(0072,003C)":{tag:"(0072,003C)",vr:"SS",name:"AbstractPriorValue",vm:"2",version:"DICOM"},"(0072,003E)":{tag:"(0072,003E)",vr:"SQ",name:"AbstractPriorCodeSequence",vm:"1",version:"DICOM"},"(0072,0040)":{tag:"(0072,0040)",vr:"LO",name:"ImageSetLabel",vm:"1",version:"DICOM"},"(0072,0050)":{tag:"(0072,0050)",vr:"CS",name:"SelectorAttributeVR",vm:"1",version:"DICOM"},"(0072,0052)":{tag:"(0072,0052)",vr:"AT",name:"SelectorSequencePointer",vm:"1-n",version:"DICOM"},"(0072,0054)":{tag:"(0072,0054)",vr:"LO",name:"SelectorSequencePointerPrivateCreator",vm:"1-n",version:"DICOM"},"(0072,0056)":{tag:"(0072,0056)",vr:"LO",name:"SelectorAttributePrivateCreator",vm:"1",version:"DICOM"},"(0072,005E)":{tag:"(0072,005E)",vr:"AE",name:"SelectorAEValue",vm:"1-n",version:"DICOM"},"(0072,005F)":{tag:"(0072,005F)",vr:"AS",name:"SelectorASValue",vm:"1-n",version:"DICOM"},"(0072,0060)":{tag:"(0072,0060)",vr:"AT",name:"SelectorATValue",vm:"1-n",version:"DICOM"},"(0072,0061)":{tag:"(0072,0061)",vr:"DA",name:"SelectorDAValue",vm:"1-n",version:"DICOM"},"(0072,0062)":{tag:"(0072,0062)",vr:"CS",name:"SelectorCSValue",vm:"1-n",version:"DICOM"},"(0072,0063)":{tag:"(0072,0063)",vr:"DT",name:"SelectorDTValue",vm:"1-n",version:"DICOM"},"(0072,0064)":{tag:"(0072,0064)",vr:"IS",name:"SelectorISValue",vm:"1-n",version:"DICOM"},"(0072,0065)":{tag:"(0072,0065)",vr:"OB",name:"SelectorOBValue",vm:"1",version:"DICOM"},"(0072,0066)":{tag:"(0072,0066)",vr:"LO",name:"SelectorLOValue",vm:"1-n",version:"DICOM"},"(0072,0067)":{tag:"(0072,0067)",vr:"OF",name:"SelectorOFValue",vm:"1",version:"DICOM"},"(0072,0068)":{tag:"(0072,0068)",vr:"LT",name:"SelectorLTValue",vm:"1",version:"DICOM"},"(0072,0069)":{tag:"(0072,0069)",vr:"OW",name:"SelectorOWValue",vm:"1",version:"DICOM"},"(0072,006A)":{tag:"(0072,006A)",vr:"PN",name:"SelectorPNValue",vm:"1-n",version:"DICOM"},"(0072,006B)":{tag:"(0072,006B)",vr:"TM",name:"SelectorTMValue",vm:"1-n",version:"DICOM"},"(0072,006C)":{tag:"(0072,006C)",vr:"SH",name:"SelectorSHValue",vm:"1-n",version:"DICOM"},"(0072,006D)":{tag:"(0072,006D)",vr:"UN",name:"SelectorUNValue",vm:"1",version:"DICOM"},"(0072,006E)":{tag:"(0072,006E)",vr:"ST",name:"SelectorSTValue",vm:"1",version:"DICOM"},"(0072,006F)":{tag:"(0072,006F)",vr:"UC",name:"SelectorUCValue",vm:"1-n",version:"DICOM"},"(0072,0070)":{tag:"(0072,0070)",vr:"UT",name:"SelectorUTValue",vm:"1",version:"DICOM"},"(0072,0071)":{tag:"(0072,0071)",vr:"UR",name:"SelectorURValue",vm:"1",version:"DICOM"},"(0072,0072)":{tag:"(0072,0072)",vr:"DS",name:"SelectorDSValue",vm:"1-n",version:"DICOM"},"(0072,0073)":{tag:"(0072,0073)",vr:"OD",name:"SelectorODValue",vm:"1",version:"DICOM"},"(0072,0074)":{tag:"(0072,0074)",vr:"FD",name:"SelectorFDValue",vm:"1-n",version:"DICOM"},"(0072,0075)":{tag:"(0072,0075)",vr:"OL",name:"SelectorOLValue",vm:"1",version:"DICOM"},"(0072,0076)":{tag:"(0072,0076)",vr:"FL",name:"SelectorFLValue",vm:"1-n",version:"DICOM"},"(0072,0078)":{tag:"(0072,0078)",vr:"UL",name:"SelectorULValue",vm:"1-n",version:"DICOM"},"(0072,007A)":{tag:"(0072,007A)",vr:"US",name:"SelectorUSValue",vm:"1-n",version:"DICOM"},"(0072,007C)":{tag:"(0072,007C)",vr:"SL",name:"SelectorSLValue",vm:"1-n",version:"DICOM"},"(0072,007E)":{tag:"(0072,007E)",vr:"SS",name:"SelectorSSValue",vm:"1-n",version:"DICOM"},"(0072,007F)":{tag:"(0072,007F)",vr:"UI",name:"SelectorUIValue",vm:"1-n",version:"DICOM"},"(0072,0080)":{tag:"(0072,0080)",vr:"SQ",name:"SelectorCodeSequenceValue",vm:"1",version:"DICOM"},"(0072,0081)":{tag:"(0072,0081)",vr:"OV",name:"SelectorOVValue",vm:"1",version:"DICOM"},"(0072,0082)":{tag:"(0072,0082)",vr:"SV",name:"SelectorSVValue",vm:"1-n",version:"DICOM"},"(0072,0083)":{tag:"(0072,0083)",vr:"UV",name:"SelectorUVValue",vm:"1-n",version:"DICOM"},"(0072,0100)":{tag:"(0072,0100)",vr:"US",name:"NumberOfScreens",vm:"1",version:"DICOM"},"(0072,0102)":{tag:"(0072,0102)",vr:"SQ",name:"NominalScreenDefinitionSequence",vm:"1",version:"DICOM"},"(0072,0104)":{tag:"(0072,0104)",vr:"US",name:"NumberOfVerticalPixels",vm:"1",version:"DICOM"},"(0072,0106)":{tag:"(0072,0106)",vr:"US",name:"NumberOfHorizontalPixels",vm:"1",version:"DICOM"},"(0072,0108)":{tag:"(0072,0108)",vr:"FD",name:"DisplayEnvironmentSpatialPosition",vm:"4",version:"DICOM"},"(0072,010A)":{tag:"(0072,010A)",vr:"US",name:"ScreenMinimumGrayscaleBitDepth",vm:"1",version:"DICOM"},"(0072,010C)":{tag:"(0072,010C)",vr:"US",name:"ScreenMinimumColorBitDepth",vm:"1",version:"DICOM"},"(0072,010E)":{tag:"(0072,010E)",vr:"US",name:"ApplicationMaximumRepaintTime",vm:"1",version:"DICOM"},"(0072,0200)":{tag:"(0072,0200)",vr:"SQ",name:"DisplaySetsSequence",vm:"1",version:"DICOM"},"(0072,0202)":{tag:"(0072,0202)",vr:"US",name:"DisplaySetNumber",vm:"1",version:"DICOM"},"(0072,0203)":{tag:"(0072,0203)",vr:"LO",name:"DisplaySetLabel",vm:"1",version:"DICOM"},"(0072,0204)":{tag:"(0072,0204)",vr:"US",name:"DisplaySetPresentationGroup",vm:"1",version:"DICOM"},"(0072,0206)":{tag:"(0072,0206)",vr:"LO",name:"DisplaySetPresentationGroupDescription",vm:"1",version:"DICOM"},"(0072,0208)":{tag:"(0072,0208)",vr:"CS",name:"PartialDataDisplayHandling",vm:"1",version:"DICOM"},"(0072,0210)":{tag:"(0072,0210)",vr:"SQ",name:"SynchronizedScrollingSequence",vm:"1",version:"DICOM"},"(0072,0212)":{tag:"(0072,0212)",vr:"US",name:"DisplaySetScrollingGroup",vm:"2-n",version:"DICOM"},"(0072,0214)":{tag:"(0072,0214)",vr:"SQ",name:"NavigationIndicatorSequence",vm:"1",version:"DICOM"},"(0072,0216)":{tag:"(0072,0216)",vr:"US",name:"NavigationDisplaySet",vm:"1",version:"DICOM"},"(0072,0218)":{tag:"(0072,0218)",vr:"US",name:"ReferenceDisplaySets",vm:"1-n",version:"DICOM"},"(0072,0300)":{tag:"(0072,0300)",vr:"SQ",name:"ImageBoxesSequence",vm:"1",version:"DICOM"},"(0072,0302)":{tag:"(0072,0302)",vr:"US",name:"ImageBoxNumber",vm:"1",version:"DICOM"},"(0072,0304)":{tag:"(0072,0304)",vr:"CS",name:"ImageBoxLayoutType",vm:"1",version:"DICOM"},"(0072,0306)":{tag:"(0072,0306)",vr:"US",name:"ImageBoxTileHorizontalDimension",vm:"1",version:"DICOM"},"(0072,0308)":{tag:"(0072,0308)",vr:"US",name:"ImageBoxTileVerticalDimension",vm:"1",version:"DICOM"},"(0072,0310)":{tag:"(0072,0310)",vr:"CS",name:"ImageBoxScrollDirection",vm:"1",version:"DICOM"},"(0072,0312)":{tag:"(0072,0312)",vr:"CS",name:"ImageBoxSmallScrollType",vm:"1",version:"DICOM"},"(0072,0314)":{tag:"(0072,0314)",vr:"US",name:"ImageBoxSmallScrollAmount",vm:"1",version:"DICOM"},"(0072,0316)":{tag:"(0072,0316)",vr:"CS",name:"ImageBoxLargeScrollType",vm:"1",version:"DICOM"},"(0072,0318)":{tag:"(0072,0318)",vr:"US",name:"ImageBoxLargeScrollAmount",vm:"1",version:"DICOM"},"(0072,0320)":{tag:"(0072,0320)",vr:"US",name:"ImageBoxOverlapPriority",vm:"1",version:"DICOM"},"(0072,0330)":{tag:"(0072,0330)",vr:"FD",name:"CineRelativeToRealTime",vm:"1",version:"DICOM"},"(0072,0400)":{tag:"(0072,0400)",vr:"SQ",name:"FilterOperationsSequence",vm:"1",version:"DICOM"},"(0072,0402)":{tag:"(0072,0402)",vr:"CS",name:"FilterByCategory",vm:"1",version:"DICOM"},"(0072,0404)":{tag:"(0072,0404)",vr:"CS",name:"FilterByAttributePresence",vm:"1",version:"DICOM"},"(0072,0406)":{tag:"(0072,0406)",vr:"CS",name:"FilterByOperator",vm:"1",version:"DICOM"},"(0072,0420)":{tag:"(0072,0420)",vr:"US",name:"StructuredDisplayBackgroundCIELabValue",vm:"3",version:"DICOM"},"(0072,0421)":{tag:"(0072,0421)",vr:"US",name:"EmptyImageBoxCIELabValue",vm:"3",version:"DICOM"},"(0072,0422)":{tag:"(0072,0422)",vr:"SQ",name:"StructuredDisplayImageBoxSequence",vm:"1",version:"DICOM"},"(0072,0424)":{tag:"(0072,0424)",vr:"SQ",name:"StructuredDisplayTextBoxSequence",vm:"1",version:"DICOM"},"(0072,0427)":{tag:"(0072,0427)",vr:"SQ",name:"ReferencedFirstFrameSequence",vm:"1",version:"DICOM"},"(0072,0430)":{tag:"(0072,0430)",vr:"SQ",name:"ImageBoxSynchronizationSequence",vm:"1",version:"DICOM"},"(0072,0432)":{tag:"(0072,0432)",vr:"US",name:"SynchronizedImageBoxList",vm:"2-n",version:"DICOM"},"(0072,0434)":{tag:"(0072,0434)",vr:"CS",name:"TypeOfSynchronization",vm:"1",version:"DICOM"},"(0072,0500)":{tag:"(0072,0500)",vr:"CS",name:"BlendingOperationType",vm:"1",version:"DICOM"},"(0072,0510)":{tag:"(0072,0510)",vr:"CS",name:"ReformattingOperationType",vm:"1",version:"DICOM"},"(0072,0512)":{tag:"(0072,0512)",vr:"FD",name:"ReformattingThickness",vm:"1",version:"DICOM"},"(0072,0514)":{tag:"(0072,0514)",vr:"FD",name:"ReformattingInterval",vm:"1",version:"DICOM"},"(0072,0516)":{tag:"(0072,0516)",vr:"CS",name:"ReformattingOperationInitialViewDirection",vm:"1",version:"DICOM"},"(0072,0520)":{tag:"(0072,0520)",vr:"CS",name:"ThreeDRenderingType",vm:"1-n",version:"DICOM"},"(0072,0600)":{tag:"(0072,0600)",vr:"SQ",name:"SortingOperationsSequence",vm:"1",version:"DICOM"},"(0072,0602)":{tag:"(0072,0602)",vr:"CS",name:"SortByCategory",vm:"1",version:"DICOM"},"(0072,0604)":{tag:"(0072,0604)",vr:"CS",name:"SortingDirection",vm:"1",version:"DICOM"},"(0072,0700)":{tag:"(0072,0700)",vr:"CS",name:"DisplaySetPatientOrientation",vm:"2",version:"DICOM"},"(0072,0702)":{tag:"(0072,0702)",vr:"CS",name:"VOIType",vm:"1",version:"DICOM"},"(0072,0704)":{tag:"(0072,0704)",vr:"CS",name:"PseudoColorType",vm:"1",version:"DICOM"},"(0072,0705)":{tag:"(0072,0705)",vr:"SQ",name:"PseudoColorPaletteInstanceReferenceSequence",vm:"1",version:"DICOM"},"(0072,0706)":{tag:"(0072,0706)",vr:"CS",name:"ShowGrayscaleInverted",vm:"1",version:"DICOM"},"(0072,0710)":{tag:"(0072,0710)",vr:"CS",name:"ShowImageTrueSizeFlag",vm:"1",version:"DICOM"},"(0072,0712)":{tag:"(0072,0712)",vr:"CS",name:"ShowGraphicAnnotationFlag",vm:"1",version:"DICOM"},"(0072,0714)":{tag:"(0072,0714)",vr:"CS",name:"ShowPatientDemographicsFlag",vm:"1",version:"DICOM"},"(0072,0716)":{tag:"(0072,0716)",vr:"CS",name:"ShowAcquisitionTechniquesFlag",vm:"1",version:"DICOM"},"(0072,0717)":{tag:"(0072,0717)",vr:"CS",name:"DisplaySetHorizontalJustification",vm:"1",version:"DICOM"},"(0072,0718)":{tag:"(0072,0718)",vr:"CS",name:"DisplaySetVerticalJustification",vm:"1",version:"DICOM"},"(0074,0120)":{tag:"(0074,0120)",vr:"FD",name:"ContinuationStartMeterset",vm:"1",version:"DICOM"},"(0074,0121)":{tag:"(0074,0121)",vr:"FD",name:"ContinuationEndMeterset",vm:"1",version:"DICOM"},"(0074,1000)":{tag:"(0074,1000)",vr:"CS",name:"ProcedureStepState",vm:"1",version:"DICOM"},"(0074,1002)":{tag:"(0074,1002)",vr:"SQ",name:"ProcedureStepProgressInformationSequence",vm:"1",version:"DICOM"},"(0074,1004)":{tag:"(0074,1004)",vr:"DS",name:"ProcedureStepProgress",vm:"1",version:"DICOM"},"(0074,1006)":{tag:"(0074,1006)",vr:"ST",name:"ProcedureStepProgressDescription",vm:"1",version:"DICOM"},"(0074,1007)":{tag:"(0074,1007)",vr:"SQ",name:"ProcedureStepProgressParametersSequence",vm:"1",version:"DICOM"},"(0074,1008)":{tag:"(0074,1008)",vr:"SQ",name:"ProcedureStepCommunicationsURISequence",vm:"1",version:"DICOM"},"(0074,100A)":{tag:"(0074,100A)",vr:"UR",name:"ContactURI",vm:"1",version:"DICOM"},"(0074,100C)":{tag:"(0074,100C)",vr:"LO",name:"ContactDisplayName",vm:"1",version:"DICOM"},"(0074,100E)":{tag:"(0074,100E)",vr:"SQ",name:"ProcedureStepDiscontinuationReasonCodeSequence",vm:"1",version:"DICOM"},"(0074,1020)":{tag:"(0074,1020)",vr:"SQ",name:"BeamTaskSequence",vm:"1",version:"DICOM"},"(0074,1022)":{tag:"(0074,1022)",vr:"CS",name:"BeamTaskType",vm:"1",version:"DICOM"},"(0074,1025)":{tag:"(0074,1025)",vr:"CS",name:"AutosequenceFlag",vm:"1",version:"DICOM"},"(0074,1026)":{tag:"(0074,1026)",vr:"FD",name:"TableTopVerticalAdjustedPosition",vm:"1",version:"DICOM"},"(0074,1027)":{tag:"(0074,1027)",vr:"FD",name:"TableTopLongitudinalAdjustedPosition",vm:"1",version:"DICOM"},"(0074,1028)":{tag:"(0074,1028)",vr:"FD",name:"TableTopLateralAdjustedPosition",vm:"1",version:"DICOM"},"(0074,102A)":{tag:"(0074,102A)",vr:"FD",name:"PatientSupportAdjustedAngle",vm:"1",version:"DICOM"},"(0074,102B)":{tag:"(0074,102B)",vr:"FD",name:"TableTopEccentricAdjustedAngle",vm:"1",version:"DICOM"},"(0074,102C)":{tag:"(0074,102C)",vr:"FD",name:"TableTopPitchAdjustedAngle",vm:"1",version:"DICOM"},"(0074,102D)":{tag:"(0074,102D)",vr:"FD",name:"TableTopRollAdjustedAngle",vm:"1",version:"DICOM"},"(0074,1030)":{tag:"(0074,1030)",vr:"SQ",name:"DeliveryVerificationImageSequence",vm:"1",version:"DICOM"},"(0074,1032)":{tag:"(0074,1032)",vr:"CS",name:"VerificationImageTiming",vm:"1",version:"DICOM"},"(0074,1034)":{tag:"(0074,1034)",vr:"CS",name:"DoubleExposureFlag",vm:"1",version:"DICOM"},"(0074,1036)":{tag:"(0074,1036)",vr:"CS",name:"DoubleExposureOrdering",vm:"1",version:"DICOM"},"(0074,1040)":{tag:"(0074,1040)",vr:"SQ",name:"RelatedReferenceRTImageSequence",vm:"1",version:"DICOM"},"(0074,1042)":{tag:"(0074,1042)",vr:"SQ",name:"GeneralMachineVerificationSequence",vm:"1",version:"DICOM"},"(0074,1044)":{tag:"(0074,1044)",vr:"SQ",name:"ConventionalMachineVerificationSequence",vm:"1",version:"DICOM"},"(0074,1046)":{tag:"(0074,1046)",vr:"SQ",name:"IonMachineVerificationSequence",vm:"1",version:"DICOM"},"(0074,1048)":{tag:"(0074,1048)",vr:"SQ",name:"FailedAttributesSequence",vm:"1",version:"DICOM"},"(0074,104A)":{tag:"(0074,104A)",vr:"SQ",name:"OverriddenAttributesSequence",vm:"1",version:"DICOM"},"(0074,104C)":{tag:"(0074,104C)",vr:"SQ",name:"ConventionalControlPointVerificationSequence",vm:"1",version:"DICOM"},"(0074,104E)":{tag:"(0074,104E)",vr:"SQ",name:"IonControlPointVerificationSequence",vm:"1",version:"DICOM"},"(0074,1050)":{tag:"(0074,1050)",vr:"SQ",name:"AttributeOccurrenceSequence",vm:"1",version:"DICOM"},"(0074,1052)":{tag:"(0074,1052)",vr:"AT",name:"AttributeOccurrencePointer",vm:"1",version:"DICOM"},"(0074,1054)":{tag:"(0074,1054)",vr:"UL",name:"AttributeItemSelector",vm:"1",version:"DICOM"},"(0074,1056)":{tag:"(0074,1056)",vr:"LO",name:"AttributeOccurrencePrivateCreator",vm:"1",version:"DICOM"},"(0074,1057)":{tag:"(0074,1057)",vr:"IS",name:"SelectorSequencePointerItems",vm:"1-n",version:"DICOM"},"(0074,1200)":{tag:"(0074,1200)",vr:"CS",name:"ScheduledProcedureStepPriority",vm:"1",version:"DICOM"},"(0074,1202)":{tag:"(0074,1202)",vr:"LO",name:"WorklistLabel",vm:"1",version:"DICOM"},"(0074,1204)":{tag:"(0074,1204)",vr:"LO",name:"ProcedureStepLabel",vm:"1",version:"DICOM"},"(0074,1210)":{tag:"(0074,1210)",vr:"SQ",name:"ScheduledProcessingParametersSequence",vm:"1",version:"DICOM"},"(0074,1212)":{tag:"(0074,1212)",vr:"SQ",name:"PerformedProcessingParametersSequence",vm:"1",version:"DICOM"},"(0074,1216)":{tag:"(0074,1216)",vr:"SQ",name:"UnifiedProcedureStepPerformedProcedureSequence",vm:"1",version:"DICOM"},"(0074,1224)":{tag:"(0074,1224)",vr:"SQ",name:"ReplacedProcedureStepSequence",vm:"1",version:"DICOM"},"(0074,1230)":{tag:"(0074,1230)",vr:"LO",name:"DeletionLock",vm:"1",version:"DICOM"},"(0074,1234)":{tag:"(0074,1234)",vr:"AE",name:"ReceivingAE",vm:"1",version:"DICOM"},"(0074,1236)":{tag:"(0074,1236)",vr:"AE",name:"RequestingAE",vm:"1",version:"DICOM"},"(0074,1238)":{tag:"(0074,1238)",vr:"LT",name:"ReasonForCancellation",vm:"1",version:"DICOM"},"(0074,1242)":{tag:"(0074,1242)",vr:"CS",name:"SCPStatus",vm:"1",version:"DICOM"},"(0074,1244)":{tag:"(0074,1244)",vr:"CS",name:"SubscriptionListStatus",vm:"1",version:"DICOM"},"(0074,1246)":{tag:"(0074,1246)",vr:"CS",name:"UnifiedProcedureStepListStatus",vm:"1",version:"DICOM"},"(0074,1324)":{tag:"(0074,1324)",vr:"UL",name:"BeamOrderIndex",vm:"1",version:"DICOM"},"(0074,1338)":{tag:"(0074,1338)",vr:"FD",name:"DoubleExposureMeterset",vm:"1",version:"DICOM"},"(0074,133A)":{tag:"(0074,133A)",vr:"FD",name:"DoubleExposureFieldDelta",vm:"4",version:"DICOM"},"(0074,1401)":{tag:"(0074,1401)",vr:"SQ",name:"BrachyTaskSequence",vm:"1",version:"DICOM"},"(0074,1402)":{tag:"(0074,1402)",vr:"DS",name:"ContinuationStartTotalReferenceAirKerma",vm:"1",version:"DICOM"},"(0074,1403)":{tag:"(0074,1403)",vr:"DS",name:"ContinuationEndTotalReferenceAirKerma",vm:"1",version:"DICOM"},"(0074,1404)":{tag:"(0074,1404)",vr:"IS",name:"ContinuationPulseNumber",vm:"1",version:"DICOM"},"(0074,1405)":{tag:"(0074,1405)",vr:"SQ",name:"ChannelDeliveryOrderSequence",vm:"1",version:"DICOM"},"(0074,1406)":{tag:"(0074,1406)",vr:"IS",name:"ReferencedChannelNumber",vm:"1",version:"DICOM"},"(0074,1407)":{tag:"(0074,1407)",vr:"DS",name:"StartCumulativeTimeWeight",vm:"1",version:"DICOM"},"(0074,1408)":{tag:"(0074,1408)",vr:"DS",name:"EndCumulativeTimeWeight",vm:"1",version:"DICOM"},"(0074,1409)":{tag:"(0074,1409)",vr:"SQ",name:"OmittedChannelSequence",vm:"1",version:"DICOM"},"(0074,140A)":{tag:"(0074,140A)",vr:"CS",name:"ReasonForChannelOmission",vm:"1",version:"DICOM"},"(0074,140B)":{tag:"(0074,140B)",vr:"LO",name:"ReasonForChannelOmissionDescription",vm:"1",version:"DICOM"},"(0074,140C)":{tag:"(0074,140C)",vr:"IS",name:"ChannelDeliveryOrderIndex",vm:"1",version:"DICOM"},"(0074,140D)":{tag:"(0074,140D)",vr:"SQ",name:"ChannelDeliveryContinuationSequence",vm:"1",version:"DICOM"},"(0074,140E)":{tag:"(0074,140E)",vr:"SQ",name:"OmittedApplicationSetupSequence",vm:"1",version:"DICOM"},"(0076,0001)":{tag:"(0076,0001)",vr:"LO",name:"ImplantAssemblyTemplateName",vm:"1",version:"DICOM"},"(0076,0003)":{tag:"(0076,0003)",vr:"LO",name:"ImplantAssemblyTemplateIssuer",vm:"1",version:"DICOM"},"(0076,0006)":{tag:"(0076,0006)",vr:"LO",name:"ImplantAssemblyTemplateVersion",vm:"1",version:"DICOM"},"(0076,0008)":{tag:"(0076,0008)",vr:"SQ",name:"ReplacedImplantAssemblyTemplateSequence",vm:"1",version:"DICOM"},"(0076,000A)":{tag:"(0076,000A)",vr:"CS",name:"ImplantAssemblyTemplateType",vm:"1",version:"DICOM"},"(0076,000C)":{tag:"(0076,000C)",vr:"SQ",name:"OriginalImplantAssemblyTemplateSequence",vm:"1",version:"DICOM"},"(0076,000E)":{tag:"(0076,000E)",vr:"SQ",name:"DerivationImplantAssemblyTemplateSequence",vm:"1",version:"DICOM"},"(0076,0010)":{tag:"(0076,0010)",vr:"SQ",name:"ImplantAssemblyTemplateTargetAnatomySequence",vm:"1",version:"DICOM"},"(0076,0020)":{tag:"(0076,0020)",vr:"SQ",name:"ProcedureTypeCodeSequence",vm:"1",version:"DICOM"},"(0076,0030)":{tag:"(0076,0030)",vr:"LO",name:"SurgicalTechnique",vm:"1",version:"DICOM"},"(0076,0032)":{tag:"(0076,0032)",vr:"SQ",name:"ComponentTypesSequence",vm:"1",version:"DICOM"},"(0076,0034)":{tag:"(0076,0034)",vr:"CS",name:"ComponentTypeCodeSequence",vm:"1",version:"DICOM"},"(0076,0036)":{tag:"(0076,0036)",vr:"CS",name:"ExclusiveComponentType",vm:"1",version:"DICOM"},"(0076,0038)":{tag:"(0076,0038)",vr:"CS",name:"MandatoryComponentType",vm:"1",version:"DICOM"},"(0076,0040)":{tag:"(0076,0040)",vr:"SQ",name:"ComponentSequence",vm:"1",version:"DICOM"},"(0076,0055)":{tag:"(0076,0055)",vr:"US",name:"ComponentID",vm:"1",version:"DICOM"},"(0076,0060)":{tag:"(0076,0060)",vr:"SQ",name:"ComponentAssemblySequence",vm:"1",version:"DICOM"},"(0076,0070)":{tag:"(0076,0070)",vr:"US",name:"Component1ReferencedID",vm:"1",version:"DICOM"},"(0076,0080)":{tag:"(0076,0080)",vr:"US",name:"Component1ReferencedMatingFeatureSetID",vm:"1",version:"DICOM"},"(0076,0090)":{tag:"(0076,0090)",vr:"US",name:"Component1ReferencedMatingFeatureID",vm:"1",version:"DICOM"},"(0076,00A0)":{tag:"(0076,00A0)",vr:"US",name:"Component2ReferencedID",vm:"1",version:"DICOM"},"(0076,00B0)":{tag:"(0076,00B0)",vr:"US",name:"Component2ReferencedMatingFeatureSetID",vm:"1",version:"DICOM"},"(0076,00C0)":{tag:"(0076,00C0)",vr:"US",name:"Component2ReferencedMatingFeatureID",vm:"1",version:"DICOM"},"(0078,0001)":{tag:"(0078,0001)",vr:"LO",name:"ImplantTemplateGroupName",vm:"1",version:"DICOM"},"(0078,0010)":{tag:"(0078,0010)",vr:"ST",name:"ImplantTemplateGroupDescription",vm:"1",version:"DICOM"},"(0078,0020)":{tag:"(0078,0020)",vr:"LO",name:"ImplantTemplateGroupIssuer",vm:"1",version:"DICOM"},"(0078,0024)":{tag:"(0078,0024)",vr:"LO",name:"ImplantTemplateGroupVersion",vm:"1",version:"DICOM"},"(0078,0026)":{tag:"(0078,0026)",vr:"SQ",name:"ReplacedImplantTemplateGroupSequence",vm:"1",version:"DICOM"},"(0078,0028)":{tag:"(0078,0028)",vr:"SQ",name:"ImplantTemplateGroupTargetAnatomySequence",vm:"1",version:"DICOM"},"(0078,002A)":{tag:"(0078,002A)",vr:"SQ",name:"ImplantTemplateGroupMembersSequence",vm:"1",version:"DICOM"},"(0078,002E)":{tag:"(0078,002E)",vr:"US",name:"ImplantTemplateGroupMemberID",vm:"1",version:"DICOM"},"(0078,0050)":{tag:"(0078,0050)",vr:"FD",name:"ThreeDImplantTemplateGroupMemberMatchingPoint",vm:"3",version:"DICOM"},"(0078,0060)":{tag:"(0078,0060)",vr:"FD",name:"ThreeDImplantTemplateGroupMemberMatchingAxes",vm:"9",version:"DICOM"},"(0078,0070)":{tag:"(0078,0070)",vr:"SQ",name:"ImplantTemplateGroupMemberMatching2DCoordinatesSequence",vm:"1",version:"DICOM"},"(0078,0090)":{tag:"(0078,0090)",vr:"FD",name:"TwoDImplantTemplateGroupMemberMatchingPoint",vm:"2",version:"DICOM"},"(0078,00A0)":{tag:"(0078,00A0)",vr:"FD",name:"TwoDImplantTemplateGroupMemberMatchingAxes",vm:"4",version:"DICOM"},"(0078,00B0)":{tag:"(0078,00B0)",vr:"SQ",name:"ImplantTemplateGroupVariationDimensionSequence",vm:"1",version:"DICOM"},"(0078,00B2)":{tag:"(0078,00B2)",vr:"LO",name:"ImplantTemplateGroupVariationDimensionName",vm:"1",version:"DICOM"},"(0078,00B4)":{tag:"(0078,00B4)",vr:"SQ",name:"ImplantTemplateGroupVariationDimensionRankSequence",vm:"1",version:"DICOM"},"(0078,00B6)":{tag:"(0078,00B6)",vr:"US",name:"ReferencedImplantTemplateGroupMemberID",vm:"1",version:"DICOM"},"(0078,00B8)":{tag:"(0078,00B8)",vr:"US",name:"ImplantTemplateGroupVariationDimensionRank",vm:"1",version:"DICOM"},"(0080,0001)":{tag:"(0080,0001)",vr:"SQ",name:"SurfaceScanAcquisitionTypeCodeSequence",vm:"1",version:"DICOM"},"(0080,0002)":{tag:"(0080,0002)",vr:"SQ",name:"SurfaceScanModeCodeSequence",vm:"1",version:"DICOM"},"(0080,0003)":{tag:"(0080,0003)",vr:"SQ",name:"RegistrationMethodCodeSequence",vm:"1",version:"DICOM"},"(0080,0004)":{tag:"(0080,0004)",vr:"FD",name:"ShotDurationTime",vm:"1",version:"DICOM"},"(0080,0005)":{tag:"(0080,0005)",vr:"FD",name:"ShotOffsetTime",vm:"1",version:"DICOM"},"(0080,0006)":{tag:"(0080,0006)",vr:"US",name:"SurfacePointPresentationValueData",vm:"1-n",version:"DICOM"},"(0080,0007)":{tag:"(0080,0007)",vr:"US",name:"SurfacePointColorCIELabValueData",vm:"3-3n",version:"DICOM"},"(0080,0008)":{tag:"(0080,0008)",vr:"SQ",name:"UVMappingSequence",vm:"1",version:"DICOM"},"(0080,0009)":{tag:"(0080,0009)",vr:"SH",name:"TextureLabel",vm:"1",version:"DICOM"},"(0080,0010)":{tag:"(0080,0010)",vr:"OF",name:"UValueData",vm:"1-n",version:"DICOM"},"(0080,0011)":{tag:"(0080,0011)",vr:"OF",name:"VValueData",vm:"1-n",version:"DICOM"},"(0080,0012)":{tag:"(0080,0012)",vr:"SQ",name:"ReferencedTextureSequence",vm:"1",version:"DICOM"},"(0080,0013)":{tag:"(0080,0013)",vr:"SQ",name:"ReferencedSurfaceDataSequence",vm:"1",version:"DICOM"},"(0082,0001)":{tag:"(0082,0001)",vr:"CS",name:"AssessmentSummary",vm:"1",version:"DICOM"},"(0082,0003)":{tag:"(0082,0003)",vr:"UT",name:"AssessmentSummaryDescription",vm:"1",version:"DICOM"},"(0082,0004)":{tag:"(0082,0004)",vr:"SQ",name:"AssessedSOPInstanceSequence",vm:"1",version:"DICOM"},"(0082,0005)":{tag:"(0082,0005)",vr:"SQ",name:"ReferencedComparisonSOPInstanceSequence",vm:"1",version:"DICOM"},"(0082,0006)":{tag:"(0082,0006)",vr:"UL",name:"NumberOfAssessmentObservations",vm:"1",version:"DICOM"},"(0082,0007)":{tag:"(0082,0007)",vr:"SQ",name:"AssessmentObservationsSequence",vm:"1",version:"DICOM"},"(0082,0008)":{tag:"(0082,0008)",vr:"CS",name:"ObservationSignificance",vm:"1",version:"DICOM"},"(0082,000A)":{tag:"(0082,000A)",vr:"UT",name:"ObservationDescription",vm:"1",version:"DICOM"},"(0082,000C)":{tag:"(0082,000C)",vr:"SQ",name:"StructuredConstraintObservationSequence",vm:"1",version:"DICOM"},"(0082,0010)":{tag:"(0082,0010)",vr:"SQ",name:"AssessedAttributeValueSequence",vm:"1",version:"DICOM"},"(0082,0016)":{tag:"(0082,0016)",vr:"LO",name:"AssessmentSetID",vm:"1",version:"DICOM"},"(0082,0017)":{tag:"(0082,0017)",vr:"SQ",name:"AssessmentRequesterSequence",vm:"1",version:"DICOM"},"(0082,0018)":{tag:"(0082,0018)",vr:"LO",name:"SelectorAttributeName",vm:"1",version:"DICOM"},"(0082,0019)":{tag:"(0082,0019)",vr:"LO",name:"SelectorAttributeKeyword",vm:"1",version:"DICOM"},"(0082,0021)":{tag:"(0082,0021)",vr:"SQ",name:"AssessmentTypeCodeSequence",vm:"1",version:"DICOM"},"(0082,0022)":{tag:"(0082,0022)",vr:"SQ",name:"ObservationBasisCodeSequence",vm:"1",version:"DICOM"},"(0082,0023)":{tag:"(0082,0023)",vr:"LO",name:"AssessmentLabel",vm:"1",version:"DICOM"},"(0082,0032)":{tag:"(0082,0032)",vr:"CS",name:"ConstraintType",vm:"1",version:"DICOM"},"(0082,0033)":{tag:"(0082,0033)",vr:"UT",name:"SpecificationSelectionGuidance",vm:"1",version:"DICOM"},"(0082,0034)":{tag:"(0082,0034)",vr:"SQ",name:"ConstraintValueSequence",vm:"1",version:"DICOM"},"(0082,0035)":{tag:"(0082,0035)",vr:"SQ",name:"RecommendedDefaultValueSequence",vm:"1",version:"DICOM"},"(0082,0036)":{tag:"(0082,0036)",vr:"CS",name:"ConstraintViolationSignificance",vm:"1",version:"DICOM"},"(0082,0037)":{tag:"(0082,0037)",vr:"UT",name:"ConstraintViolationCondition",vm:"1",version:"DICOM"},"(0082,0038)":{tag:"(0082,0038)",vr:"CS",name:"ModifiableConstraintFlag",vm:"1",version:"DICOM"},"(0088,0130)":{tag:"(0088,0130)",vr:"SH",name:"StorageMediaFileSetID",vm:"1",version:"DICOM"},"(0088,0140)":{tag:"(0088,0140)",vr:"UI",name:"StorageMediaFileSetUID",vm:"1",version:"DICOM"},"(0088,0200)":{tag:"(0088,0200)",vr:"SQ",name:"IconImageSequence",vm:"1",version:"DICOM"},"(0100,0410)":{tag:"(0100,0410)",vr:"CS",name:"SOPInstanceStatus",vm:"1",version:"DICOM"},"(0100,0420)":{tag:"(0100,0420)",vr:"DT",name:"SOPAuthorizationDateTime",vm:"1",version:"DICOM"},"(0100,0424)":{tag:"(0100,0424)",vr:"LT",name:"SOPAuthorizationComment",vm:"1",version:"DICOM"},"(0100,0426)":{tag:"(0100,0426)",vr:"LO",name:"AuthorizationEquipmentCertificationNumber",vm:"1",version:"DICOM"},"(0400,0005)":{tag:"(0400,0005)",vr:"US",name:"MACIDNumber",vm:"1",version:"DICOM"},"(0400,0010)":{tag:"(0400,0010)",vr:"UI",name:"MACCalculationTransferSyntaxUID",vm:"1",version:"DICOM"},"(0400,0015)":{tag:"(0400,0015)",vr:"CS",name:"MACAlgorithm",vm:"1",version:"DICOM"},"(0400,0020)":{tag:"(0400,0020)",vr:"AT",name:"DataElementsSigned",vm:"1-n",version:"DICOM"},"(0400,0100)":{tag:"(0400,0100)",vr:"UI",name:"DigitalSignatureUID",vm:"1",version:"DICOM"},"(0400,0105)":{tag:"(0400,0105)",vr:"DT",name:"DigitalSignatureDateTime",vm:"1",version:"DICOM"},"(0400,0110)":{tag:"(0400,0110)",vr:"CS",name:"CertificateType",vm:"1",version:"DICOM"},"(0400,0115)":{tag:"(0400,0115)",vr:"OB",name:"CertificateOfSigner",vm:"1",version:"DICOM"},"(0400,0120)":{tag:"(0400,0120)",vr:"OB",name:"Signature",vm:"1",version:"DICOM"},"(0400,0305)":{tag:"(0400,0305)",vr:"CS",name:"CertifiedTimestampType",vm:"1",version:"DICOM"},"(0400,0310)":{tag:"(0400,0310)",vr:"OB",name:"CertifiedTimestamp",vm:"1",version:"DICOM"},"(0400,0401)":{tag:"(0400,0401)",vr:"SQ",name:"DigitalSignaturePurposeCodeSequence",vm:"1",version:"DICOM"},"(0400,0402)":{tag:"(0400,0402)",vr:"SQ",name:"ReferencedDigitalSignatureSequence",vm:"1",version:"DICOM"},"(0400,0403)":{tag:"(0400,0403)",vr:"SQ",name:"ReferencedSOPInstanceMACSequence",vm:"1",version:"DICOM"},"(0400,0404)":{tag:"(0400,0404)",vr:"OB",name:"MAC",vm:"1",version:"DICOM"},"(0400,0500)":{tag:"(0400,0500)",vr:"SQ",name:"EncryptedAttributesSequence",vm:"1",version:"DICOM"},"(0400,0510)":{tag:"(0400,0510)",vr:"UI",name:"EncryptedContentTransferSyntaxUID",vm:"1",version:"DICOM"},"(0400,0520)":{tag:"(0400,0520)",vr:"OB",name:"EncryptedContent",vm:"1",version:"DICOM"},"(0400,0550)":{tag:"(0400,0550)",vr:"SQ",name:"ModifiedAttributesSequence",vm:"1",version:"DICOM"},"(0400,0551)":{tag:"(0400,0551)",vr:"SQ",name:"NonconformingModifiedAttributesSequence",vm:"1",version:"DICOM"},"(0400,0552)":{tag:"(0400,0552)",vr:"OB",name:"NonconformingDataElementValue",vm:"1",version:"DICOM"},"(0400,0561)":{tag:"(0400,0561)",vr:"SQ",name:"OriginalAttributesSequence",vm:"1",version:"DICOM"},"(0400,0562)":{tag:"(0400,0562)",vr:"DT",name:"AttributeModificationDateTime",vm:"1",version:"DICOM"},"(0400,0563)":{tag:"(0400,0563)",vr:"LO",name:"ModifyingSystem",vm:"1",version:"DICOM"},"(0400,0564)":{tag:"(0400,0564)",vr:"LO",name:"SourceOfPreviousValues",vm:"1",version:"DICOM"},"(0400,0565)":{tag:"(0400,0565)",vr:"CS",name:"ReasonForTheAttributeModification",vm:"1",version:"DICOM"},"(0400,0600)":{tag:"(0400,0600)",vr:"CS",name:"InstanceOriginStatus",vm:"1",version:"DICOM"},"(2000,0010)":{tag:"(2000,0010)",vr:"IS",name:"NumberOfCopies",vm:"1",version:"DICOM"},"(2000,001E)":{tag:"(2000,001E)",vr:"SQ",name:"PrinterConfigurationSequence",vm:"1",version:"DICOM"},"(2000,0020)":{tag:"(2000,0020)",vr:"CS",name:"PrintPriority",vm:"1",version:"DICOM"},"(2000,0030)":{tag:"(2000,0030)",vr:"CS",name:"MediumType",vm:"1",version:"DICOM"},"(2000,0040)":{tag:"(2000,0040)",vr:"CS",name:"FilmDestination",vm:"1",version:"DICOM"},"(2000,0050)":{tag:"(2000,0050)",vr:"LO",name:"FilmSessionLabel",vm:"1",version:"DICOM"},"(2000,0060)":{tag:"(2000,0060)",vr:"IS",name:"MemoryAllocation",vm:"1",version:"DICOM"},"(2000,0061)":{tag:"(2000,0061)",vr:"IS",name:"MaximumMemoryAllocation",vm:"1",version:"DICOM"},"(2000,00A0)":{tag:"(2000,00A0)",vr:"US",name:"MemoryBitDepth",vm:"1",version:"DICOM"},"(2000,00A1)":{tag:"(2000,00A1)",vr:"US",name:"PrintingBitDepth",vm:"1",version:"DICOM"},"(2000,00A2)":{tag:"(2000,00A2)",vr:"SQ",name:"MediaInstalledSequence",vm:"1",version:"DICOM"},"(2000,00A4)":{tag:"(2000,00A4)",vr:"SQ",name:"OtherMediaAvailableSequence",vm:"1",version:"DICOM"},"(2000,00A8)":{tag:"(2000,00A8)",vr:"SQ",name:"SupportedImageDisplayFormatsSequence",vm:"1",version:"DICOM"},"(2000,0500)":{tag:"(2000,0500)",vr:"SQ",name:"ReferencedFilmBoxSequence",vm:"1",version:"DICOM"},"(2010,0010)":{tag:"(2010,0010)",vr:"ST",name:"ImageDisplayFormat",vm:"1",version:"DICOM"},"(2010,0030)":{tag:"(2010,0030)",vr:"CS",name:"AnnotationDisplayFormatID",vm:"1",version:"DICOM"},"(2010,0040)":{tag:"(2010,0040)",vr:"CS",name:"FilmOrientation",vm:"1",version:"DICOM"},"(2010,0050)":{tag:"(2010,0050)",vr:"CS",name:"FilmSizeID",vm:"1",version:"DICOM"},"(2010,0052)":{tag:"(2010,0052)",vr:"CS",name:"PrinterResolutionID",vm:"1",version:"DICOM"},"(2010,0054)":{tag:"(2010,0054)",vr:"CS",name:"DefaultPrinterResolutionID",vm:"1",version:"DICOM"},"(2010,0060)":{tag:"(2010,0060)",vr:"CS",name:"MagnificationType",vm:"1",version:"DICOM"},"(2010,0080)":{tag:"(2010,0080)",vr:"CS",name:"SmoothingType",vm:"1",version:"DICOM"},"(2010,00A6)":{tag:"(2010,00A6)",vr:"CS",name:"DefaultMagnificationType",vm:"1",version:"DICOM"},"(2010,00A7)":{tag:"(2010,00A7)",vr:"CS",name:"OtherMagnificationTypesAvailable",vm:"1-n",version:"DICOM"},"(2010,00A8)":{tag:"(2010,00A8)",vr:"CS",name:"DefaultSmoothingType",vm:"1",version:"DICOM"},"(2010,00A9)":{tag:"(2010,00A9)",vr:"CS",name:"OtherSmoothingTypesAvailable",vm:"1-n",version:"DICOM"},"(2010,0100)":{tag:"(2010,0100)",vr:"CS",name:"BorderDensity",vm:"1",version:"DICOM"},"(2010,0110)":{tag:"(2010,0110)",vr:"CS",name:"EmptyImageDensity",vm:"1",version:"DICOM"},"(2010,0120)":{tag:"(2010,0120)",vr:"US",name:"MinDensity",vm:"1",version:"DICOM"},"(2010,0130)":{tag:"(2010,0130)",vr:"US",name:"MaxDensity",vm:"1",version:"DICOM"},"(2010,0140)":{tag:"(2010,0140)",vr:"CS",name:"Trim",vm:"1",version:"DICOM"},"(2010,0150)":{tag:"(2010,0150)",vr:"ST",name:"ConfigurationInformation",vm:"1",version:"DICOM"},"(2010,0152)":{tag:"(2010,0152)",vr:"LT",name:"ConfigurationInformationDescription",vm:"1",version:"DICOM"},"(2010,0154)":{tag:"(2010,0154)",vr:"IS",name:"MaximumCollatedFilms",vm:"1",version:"DICOM"},"(2010,015E)":{tag:"(2010,015E)",vr:"US",name:"Illumination",vm:"1",version:"DICOM"},"(2010,0160)":{tag:"(2010,0160)",vr:"US",name:"ReflectedAmbientLight",vm:"1",version:"DICOM"},"(2010,0376)":{tag:"(2010,0376)",vr:"DS",name:"PrinterPixelSpacing",vm:"2",version:"DICOM"},"(2010,0500)":{tag:"(2010,0500)",vr:"SQ",name:"ReferencedFilmSessionSequence",vm:"1",version:"DICOM"},"(2010,0510)":{tag:"(2010,0510)",vr:"SQ",name:"ReferencedImageBoxSequence",vm:"1",version:"DICOM"},"(2010,0520)":{tag:"(2010,0520)",vr:"SQ",name:"ReferencedBasicAnnotationBoxSequence",vm:"1",version:"DICOM"},"(2020,0010)":{tag:"(2020,0010)",vr:"US",name:"ImageBoxPosition",vm:"1",version:"DICOM"},"(2020,0020)":{tag:"(2020,0020)",vr:"CS",name:"Polarity",vm:"1",version:"DICOM"},"(2020,0030)":{tag:"(2020,0030)",vr:"DS",name:"RequestedImageSize",vm:"1",version:"DICOM"},"(2020,0040)":{tag:"(2020,0040)",vr:"CS",name:"RequestedDecimateCropBehavior",vm:"1",version:"DICOM"},"(2020,0050)":{tag:"(2020,0050)",vr:"CS",name:"RequestedResolutionID",vm:"1",version:"DICOM"},"(2020,00A0)":{tag:"(2020,00A0)",vr:"CS",name:"RequestedImageSizeFlag",vm:"1",version:"DICOM"},"(2020,00A2)":{tag:"(2020,00A2)",vr:"CS",name:"DecimateCropResult",vm:"1",version:"DICOM"},"(2020,0110)":{tag:"(2020,0110)",vr:"SQ",name:"BasicGrayscaleImageSequence",vm:"1",version:"DICOM"},"(2020,0111)":{tag:"(2020,0111)",vr:"SQ",name:"BasicColorImageSequence",vm:"1",version:"DICOM"},"(2030,0010)":{tag:"(2030,0010)",vr:"US",name:"AnnotationPosition",vm:"1",version:"DICOM"},"(2030,0020)":{tag:"(2030,0020)",vr:"LO",name:"TextString",vm:"1",version:"DICOM"},"(2050,0010)":{tag:"(2050,0010)",vr:"SQ",name:"PresentationLUTSequence",vm:"1",version:"DICOM"},"(2050,0020)":{tag:"(2050,0020)",vr:"CS",name:"PresentationLUTShape",vm:"1",version:"DICOM"},"(2050,0500)":{tag:"(2050,0500)",vr:"SQ",name:"ReferencedPresentationLUTSequence",vm:"1",version:"DICOM"},"(2100,0020)":{tag:"(2100,0020)",vr:"CS",name:"ExecutionStatus",vm:"1",version:"DICOM"},"(2100,0030)":{tag:"(2100,0030)",vr:"CS",name:"ExecutionStatusInfo",vm:"1",version:"DICOM"},"(2100,0040)":{tag:"(2100,0040)",vr:"DA",name:"CreationDate",vm:"1",version:"DICOM"},"(2100,0050)":{tag:"(2100,0050)",vr:"TM",name:"CreationTime",vm:"1",version:"DICOM"},"(2100,0070)":{tag:"(2100,0070)",vr:"AE",name:"Originator",vm:"1",version:"DICOM"},"(2100,0160)":{tag:"(2100,0160)",vr:"SH",name:"OwnerID",vm:"1",version:"DICOM"},"(2100,0170)":{tag:"(2100,0170)",vr:"IS",name:"NumberOfFilms",vm:"1",version:"DICOM"},"(2110,0010)":{tag:"(2110,0010)",vr:"CS",name:"PrinterStatus",vm:"1",version:"DICOM"},"(2110,0020)":{tag:"(2110,0020)",vr:"CS",name:"PrinterStatusInfo",vm:"1",version:"DICOM"},"(2110,0030)":{tag:"(2110,0030)",vr:"LO",name:"PrinterName",vm:"1",version:"DICOM"},"(2200,0001)":{tag:"(2200,0001)",vr:"CS",name:"LabelUsingInformationExtractedFromInstances",vm:"1",version:"DICOM"},"(2200,0002)":{tag:"(2200,0002)",vr:"UT",name:"LabelText",vm:"1",version:"DICOM"},"(2200,0003)":{tag:"(2200,0003)",vr:"CS",name:"LabelStyleSelection",vm:"1",version:"DICOM"},"(2200,0004)":{tag:"(2200,0004)",vr:"LT",name:"MediaDisposition",vm:"1",version:"DICOM"},"(2200,0005)":{tag:"(2200,0005)",vr:"LT",name:"BarcodeValue",vm:"1",version:"DICOM"},"(2200,0006)":{tag:"(2200,0006)",vr:"CS",name:"BarcodeSymbology",vm:"1",version:"DICOM"},"(2200,0007)":{tag:"(2200,0007)",vr:"CS",name:"AllowMediaSplitting",vm:"1",version:"DICOM"},"(2200,0008)":{tag:"(2200,0008)",vr:"CS",name:"IncludeNonDICOMObjects",vm:"1",version:"DICOM"},"(2200,0009)":{tag:"(2200,0009)",vr:"CS",name:"IncludeDisplayApplication",vm:"1",version:"DICOM"},"(2200,000A)":{tag:"(2200,000A)",vr:"CS",name:"PreserveCompositeInstancesAfterMediaCreation",vm:"1",version:"DICOM"},"(2200,000B)":{tag:"(2200,000B)",vr:"US",name:"TotalNumberOfPiecesOfMediaCreated",vm:"1",version:"DICOM"},"(2200,000C)":{tag:"(2200,000C)",vr:"LO",name:"RequestedMediaApplicationProfile",vm:"1",version:"DICOM"},"(2200,000D)":{tag:"(2200,000D)",vr:"SQ",name:"ReferencedStorageMediaSequence",vm:"1",version:"DICOM"},"(2200,000E)":{tag:"(2200,000E)",vr:"AT",name:"FailureAttributes",vm:"1-n",version:"DICOM"},"(2200,000F)":{tag:"(2200,000F)",vr:"CS",name:"AllowLossyCompression",vm:"1",version:"DICOM"},"(2200,0020)":{tag:"(2200,0020)",vr:"CS",name:"RequestPriority",vm:"1",version:"DICOM"},"(3002,0002)":{tag:"(3002,0002)",vr:"SH",name:"RTImageLabel",vm:"1",version:"DICOM"},"(3002,0003)":{tag:"(3002,0003)",vr:"LO",name:"RTImageName",vm:"1",version:"DICOM"},"(3002,0004)":{tag:"(3002,0004)",vr:"ST",name:"RTImageDescription",vm:"1",version:"DICOM"},"(3002,000A)":{tag:"(3002,000A)",vr:"CS",name:"ReportedValuesOrigin",vm:"1",version:"DICOM"},"(3002,000C)":{tag:"(3002,000C)",vr:"CS",name:"RTImagePlane",vm:"1",version:"DICOM"},"(3002,000D)":{tag:"(3002,000D)",vr:"DS",name:"XRayImageReceptorTranslation",vm:"3",version:"DICOM"},"(3002,000E)":{tag:"(3002,000E)",vr:"DS",name:"XRayImageReceptorAngle",vm:"1",version:"DICOM"},"(3002,0010)":{tag:"(3002,0010)",vr:"DS",name:"RTImageOrientation",vm:"6",version:"DICOM"},"(3002,0011)":{tag:"(3002,0011)",vr:"DS",name:"ImagePlanePixelSpacing",vm:"2",version:"DICOM"},"(3002,0012)":{tag:"(3002,0012)",vr:"DS",name:"RTImagePosition",vm:"2",version:"DICOM"},"(3002,0020)":{tag:"(3002,0020)",vr:"SH",name:"RadiationMachineName",vm:"1",version:"DICOM"},"(3002,0022)":{tag:"(3002,0022)",vr:"DS",name:"RadiationMachineSAD",vm:"1",version:"DICOM"},"(3002,0024)":{tag:"(3002,0024)",vr:"DS",name:"RadiationMachineSSD",vm:"1",version:"DICOM"},"(3002,0026)":{tag:"(3002,0026)",vr:"DS",name:"RTImageSID",vm:"1",version:"DICOM"},"(3002,0028)":{tag:"(3002,0028)",vr:"DS",name:"SourceToReferenceObjectDistance",vm:"1",version:"DICOM"},"(3002,0029)":{tag:"(3002,0029)",vr:"IS",name:"FractionNumber",vm:"1",version:"DICOM"},"(3002,0030)":{tag:"(3002,0030)",vr:"SQ",name:"ExposureSequence",vm:"1",version:"DICOM"},"(3002,0032)":{tag:"(3002,0032)",vr:"DS",name:"MetersetExposure",vm:"1",version:"DICOM"},"(3002,0034)":{tag:"(3002,0034)",vr:"DS",name:"DiaphragmPosition",vm:"4",version:"DICOM"},"(3002,0040)":{tag:"(3002,0040)",vr:"SQ",name:"FluenceMapSequence",vm:"1",version:"DICOM"},"(3002,0041)":{tag:"(3002,0041)",vr:"CS",name:"FluenceDataSource",vm:"1",version:"DICOM"},"(3002,0042)":{tag:"(3002,0042)",vr:"DS",name:"FluenceDataScale",vm:"1",version:"DICOM"},"(3002,0050)":{tag:"(3002,0050)",vr:"SQ",name:"PrimaryFluenceModeSequence",vm:"1",version:"DICOM"},"(3002,0051)":{tag:"(3002,0051)",vr:"CS",name:"FluenceMode",vm:"1",version:"DICOM"},"(3002,0052)":{tag:"(3002,0052)",vr:"SH",name:"FluenceModeID",vm:"1",version:"DICOM"},"(3004,0001)":{tag:"(3004,0001)",vr:"CS",name:"DVHType",vm:"1",version:"DICOM"},"(3004,0002)":{tag:"(3004,0002)",vr:"CS",name:"DoseUnits",vm:"1",version:"DICOM"},"(3004,0004)":{tag:"(3004,0004)",vr:"CS",name:"DoseType",vm:"1",version:"DICOM"},"(3004,0005)":{tag:"(3004,0005)",vr:"CS",name:"SpatialTransformOfDose",vm:"1",version:"DICOM"},"(3004,0006)":{tag:"(3004,0006)",vr:"LO",name:"DoseComment",vm:"1",version:"DICOM"},"(3004,0008)":{tag:"(3004,0008)",vr:"DS",name:"NormalizationPoint",vm:"3",version:"DICOM"},"(3004,000A)":{tag:"(3004,000A)",vr:"CS",name:"DoseSummationType",vm:"1",version:"DICOM"},"(3004,000C)":{tag:"(3004,000C)",vr:"DS",name:"GridFrameOffsetVector",vm:"2-n",version:"DICOM"},"(3004,000E)":{tag:"(3004,000E)",vr:"DS",name:"DoseGridScaling",vm:"1",version:"DICOM"},"(3004,0010)":{tag:"(3004,0010)",vr:"SQ",name:"RTDoseROISequence",vm:"1",version:"DICOM"},"(3004,0012)":{tag:"(3004,0012)",vr:"DS",name:"DoseValue",vm:"1",version:"DICOM"},"(3004,0014)":{tag:"(3004,0014)",vr:"CS",name:"TissueHeterogeneityCorrection",vm:"1-3",version:"DICOM"},"(3004,0040)":{tag:"(3004,0040)",vr:"DS",name:"DVHNormalizationPoint",vm:"3",version:"DICOM"},"(3004,0042)":{tag:"(3004,0042)",vr:"DS",name:"DVHNormalizationDoseValue",vm:"1",version:"DICOM"},"(3004,0050)":{tag:"(3004,0050)",vr:"SQ",name:"DVHSequence",vm:"1",version:"DICOM"},"(3004,0052)":{tag:"(3004,0052)",vr:"DS",name:"DVHDoseScaling",vm:"1",version:"DICOM"},"(3004,0054)":{tag:"(3004,0054)",vr:"CS",name:"DVHVolumeUnits",vm:"1",version:"DICOM"},"(3004,0056)":{tag:"(3004,0056)",vr:"IS",name:"DVHNumberOfBins",vm:"1",version:"DICOM"},"(3004,0058)":{tag:"(3004,0058)",vr:"DS",name:"DVHData",vm:"2-2n",version:"DICOM"},"(3004,0060)":{tag:"(3004,0060)",vr:"SQ",name:"DVHReferencedROISequence",vm:"1",version:"DICOM"},"(3004,0062)":{tag:"(3004,0062)",vr:"CS",name:"DVHROIContributionType",vm:"1",version:"DICOM"},"(3004,0070)":{tag:"(3004,0070)",vr:"DS",name:"DVHMinimumDose",vm:"1",version:"DICOM"},"(3004,0072)":{tag:"(3004,0072)",vr:"DS",name:"DVHMaximumDose",vm:"1",version:"DICOM"},"(3004,0074)":{tag:"(3004,0074)",vr:"DS",name:"DVHMeanDose",vm:"1",version:"DICOM"},"(3006,0002)":{tag:"(3006,0002)",vr:"SH",name:"StructureSetLabel",vm:"1",version:"DICOM"},"(3006,0004)":{tag:"(3006,0004)",vr:"LO",name:"StructureSetName",vm:"1",version:"DICOM"},"(3006,0006)":{tag:"(3006,0006)",vr:"ST",name:"StructureSetDescription",vm:"1",version:"DICOM"},"(3006,0008)":{tag:"(3006,0008)",vr:"DA",name:"StructureSetDate",vm:"1",version:"DICOM"},"(3006,0009)":{tag:"(3006,0009)",vr:"TM",name:"StructureSetTime",vm:"1",version:"DICOM"},"(3006,0010)":{tag:"(3006,0010)",vr:"SQ",name:"ReferencedFrameOfReferenceSequence",vm:"1",version:"DICOM"},"(3006,0012)":{tag:"(3006,0012)",vr:"SQ",name:"RTReferencedStudySequence",vm:"1",version:"DICOM"},"(3006,0014)":{tag:"(3006,0014)",vr:"SQ",name:"RTReferencedSeriesSequence",vm:"1",version:"DICOM"},"(3006,0016)":{tag:"(3006,0016)",vr:"SQ",name:"ContourImageSequence",vm:"1",version:"DICOM"},"(3006,0018)":{tag:"(3006,0018)",vr:"SQ",name:"PredecessorStructureSetSequence",vm:"1",version:"DICOM"},"(3006,0020)":{tag:"(3006,0020)",vr:"SQ",name:"StructureSetROISequence",vm:"1",version:"DICOM"},"(3006,0022)":{tag:"(3006,0022)",vr:"IS",name:"ROINumber",vm:"1",version:"DICOM"},"(3006,0024)":{tag:"(3006,0024)",vr:"UI",name:"ReferencedFrameOfReferenceUID",vm:"1",version:"DICOM"},"(3006,0026)":{tag:"(3006,0026)",vr:"LO",name:"ROIName",vm:"1",version:"DICOM"},"(3006,0028)":{tag:"(3006,0028)",vr:"ST",name:"ROIDescription",vm:"1",version:"DICOM"},"(3006,002A)":{tag:"(3006,002A)",vr:"IS",name:"ROIDisplayColor",vm:"3",version:"DICOM"},"(3006,002C)":{tag:"(3006,002C)",vr:"DS",name:"ROIVolume",vm:"1",version:"DICOM"},"(3006,0030)":{tag:"(3006,0030)",vr:"SQ",name:"RTRelatedROISequence",vm:"1",version:"DICOM"},"(3006,0033)":{tag:"(3006,0033)",vr:"CS",name:"RTROIRelationship",vm:"1",version:"DICOM"},"(3006,0036)":{tag:"(3006,0036)",vr:"CS",name:"ROIGenerationAlgorithm",vm:"1",version:"DICOM"},"(3006,0037)":{tag:"(3006,0037)",vr:"SQ",name:"ROIDerivationAlgorithmIdentificationSequence",vm:"1",version:"DICOM"},"(3006,0038)":{tag:"(3006,0038)",vr:"LO",name:"ROIGenerationDescription",vm:"1",version:"DICOM"},"(3006,0039)":{tag:"(3006,0039)",vr:"SQ",name:"ROIContourSequence",vm:"1",version:"DICOM"},"(3006,0040)":{tag:"(3006,0040)",vr:"SQ",name:"ContourSequence",vm:"1",version:"DICOM"},"(3006,0042)":{tag:"(3006,0042)",vr:"CS",name:"ContourGeometricType",vm:"1",version:"DICOM"},"(3006,0044)":{tag:"(3006,0044)",vr:"DS",name:"ContourSlabThickness",vm:"1",version:"DICOM"},"(3006,0045)":{tag:"(3006,0045)",vr:"DS",name:"ContourOffsetVector",vm:"3",version:"DICOM"},"(3006,0046)":{tag:"(3006,0046)",vr:"IS",name:"NumberOfContourPoints",vm:"1",version:"DICOM"},"(3006,0048)":{tag:"(3006,0048)",vr:"IS",name:"ContourNumber",vm:"1",version:"DICOM"},"(3006,0049)":{tag:"(3006,0049)",vr:"IS",name:"AttachedContours",vm:"1-n",version:"DICOM"},"(3006,004A)":{tag:"(3006,004A)",vr:"SQ",name:"SourcePixelPlanesCharacteristicsSequence",vm:"1",version:"DICOM"},"(3006,0050)":{tag:"(3006,0050)",vr:"DS",name:"ContourData",vm:"3-3n",version:"DICOM"},"(3006,0080)":{tag:"(3006,0080)",vr:"SQ",name:"RTROIObservationsSequence",vm:"1",version:"DICOM"},"(3006,0082)":{tag:"(3006,0082)",vr:"IS",name:"ObservationNumber",vm:"1",version:"DICOM"},"(3006,0084)":{tag:"(3006,0084)",vr:"IS",name:"ReferencedROINumber",vm:"1",version:"DICOM"},"(3006,0085)":{tag:"(3006,0085)",vr:"SH",name:"ROIObservationLabel",vm:"1",version:"DICOM"},"(3006,0086)":{tag:"(3006,0086)",vr:"SQ",name:"RTROIIdentificationCodeSequence",vm:"1",version:"DICOM"},"(3006,0088)":{tag:"(3006,0088)",vr:"ST",name:"ROIObservationDescription",vm:"1",version:"DICOM"},"(3006,00A0)":{tag:"(3006,00A0)",vr:"SQ",name:"RelatedRTROIObservationsSequence",vm:"1",version:"DICOM"},"(3006,00A4)":{tag:"(3006,00A4)",vr:"CS",name:"RTROIInterpretedType",vm:"1",version:"DICOM"},"(3006,00A6)":{tag:"(3006,00A6)",vr:"PN",name:"ROIInterpreter",vm:"1",version:"DICOM"},"(3006,00B0)":{tag:"(3006,00B0)",vr:"SQ",name:"ROIPhysicalPropertiesSequence",vm:"1",version:"DICOM"},"(3006,00B2)":{tag:"(3006,00B2)",vr:"CS",name:"ROIPhysicalProperty",vm:"1",version:"DICOM"},"(3006,00B4)":{tag:"(3006,00B4)",vr:"DS",name:"ROIPhysicalPropertyValue",vm:"1",version:"DICOM"},"(3006,00B6)":{tag:"(3006,00B6)",vr:"SQ",name:"ROIElementalCompositionSequence",vm:"1",version:"DICOM"},"(3006,00B7)":{tag:"(3006,00B7)",vr:"US",name:"ROIElementalCompositionAtomicNumber",vm:"1",version:"DICOM"},"(3006,00B8)":{tag:"(3006,00B8)",vr:"FL",name:"ROIElementalCompositionAtomicMassFraction",vm:"1",version:"DICOM"},"(3006,00B9)":{tag:"(3006,00B9)",vr:"SQ",name:"AdditionalRTROIIdentificationCodeSequence",vm:"1",version:"DICOM"},"(3006,00C6)":{tag:"(3006,00C6)",vr:"DS",name:"FrameOfReferenceTransformationMatrix",vm:"16",version:"DICOM"},"(3006,00C8)":{tag:"(3006,00C8)",vr:"LO",name:"FrameOfReferenceTransformationComment",vm:"1",version:"DICOM"},"(3006,00C9)":{tag:"(3006,00C9)",vr:"SQ",name:"PatientLocationCoordinatesSequence",vm:"1",version:"DICOM"},"(3006,00CA)":{tag:"(3006,00CA)",vr:"SQ",name:"PatientLocationCoordinatesCodeSequence",vm:"1",version:"DICOM"},"(3006,00CB)":{tag:"(3006,00CB)",vr:"SQ",name:"PatientSupportPositionSequence",vm:"1",version:"DICOM"},"(3008,0010)":{tag:"(3008,0010)",vr:"SQ",name:"MeasuredDoseReferenceSequence",vm:"1",version:"DICOM"},"(3008,0012)":{tag:"(3008,0012)",vr:"ST",name:"MeasuredDoseDescription",vm:"1",version:"DICOM"},"(3008,0014)":{tag:"(3008,0014)",vr:"CS",name:"MeasuredDoseType",vm:"1",version:"DICOM"},"(3008,0016)":{tag:"(3008,0016)",vr:"DS",name:"MeasuredDoseValue",vm:"1",version:"DICOM"},"(3008,0020)":{tag:"(3008,0020)",vr:"SQ",name:"TreatmentSessionBeamSequence",vm:"1",version:"DICOM"},"(3008,0021)":{tag:"(3008,0021)",vr:"SQ",name:"TreatmentSessionIonBeamSequence",vm:"1",version:"DICOM"},"(3008,0022)":{tag:"(3008,0022)",vr:"IS",name:"CurrentFractionNumber",vm:"1",version:"DICOM"},"(3008,0024)":{tag:"(3008,0024)",vr:"DA",name:"TreatmentControlPointDate",vm:"1",version:"DICOM"},"(3008,0025)":{tag:"(3008,0025)",vr:"TM",name:"TreatmentControlPointTime",vm:"1",version:"DICOM"},"(3008,002A)":{tag:"(3008,002A)",vr:"CS",name:"TreatmentTerminationStatus",vm:"1",version:"DICOM"},"(3008,002B)":{tag:"(3008,002B)",vr:"SH",name:"TreatmentTerminationCode",vm:"1",version:"DICOM"},"(3008,002C)":{tag:"(3008,002C)",vr:"CS",name:"TreatmentVerificationStatus",vm:"1",version:"DICOM"},"(3008,0030)":{tag:"(3008,0030)",vr:"SQ",name:"ReferencedTreatmentRecordSequence",vm:"1",version:"DICOM"},"(3008,0032)":{tag:"(3008,0032)",vr:"DS",name:"SpecifiedPrimaryMeterset",vm:"1",version:"DICOM"},"(3008,0033)":{tag:"(3008,0033)",vr:"DS",name:"SpecifiedSecondaryMeterset",vm:"1",version:"DICOM"},"(3008,0036)":{tag:"(3008,0036)",vr:"DS",name:"DeliveredPrimaryMeterset",vm:"1",version:"DICOM"},"(3008,0037)":{tag:"(3008,0037)",vr:"DS",name:"DeliveredSecondaryMeterset",vm:"1",version:"DICOM"},"(3008,003A)":{tag:"(3008,003A)",vr:"DS",name:"SpecifiedTreatmentTime",vm:"1",version:"DICOM"},"(3008,003B)":{tag:"(3008,003B)",vr:"DS",name:"DeliveredTreatmentTime",vm:"1",version:"DICOM"},"(3008,0040)":{tag:"(3008,0040)",vr:"SQ",name:"ControlPointDeliverySequence",vm:"1",version:"DICOM"},"(3008,0041)":{tag:"(3008,0041)",vr:"SQ",name:"IonControlPointDeliverySequence",vm:"1",version:"DICOM"},"(3008,0042)":{tag:"(3008,0042)",vr:"DS",name:"SpecifiedMeterset",vm:"1",version:"DICOM"},"(3008,0044)":{tag:"(3008,0044)",vr:"DS",name:"DeliveredMeterset",vm:"1",version:"DICOM"},"(3008,0045)":{tag:"(3008,0045)",vr:"FL",name:"MetersetRateSet",vm:"1",version:"DICOM"},"(3008,0046)":{tag:"(3008,0046)",vr:"FL",name:"MetersetRateDelivered",vm:"1",version:"DICOM"},"(3008,0047)":{tag:"(3008,0047)",vr:"FL",name:"ScanSpotMetersetsDelivered",vm:"1-n",version:"DICOM"},"(3008,0048)":{tag:"(3008,0048)",vr:"DS",name:"DoseRateDelivered",vm:"1",version:"DICOM"},"(3008,0050)":{tag:"(3008,0050)",vr:"SQ",name:"TreatmentSummaryCalculatedDoseReferenceSequence",vm:"1",version:"DICOM"},"(3008,0052)":{tag:"(3008,0052)",vr:"DS",name:"CumulativeDoseToDoseReference",vm:"1",version:"DICOM"},"(3008,0054)":{tag:"(3008,0054)",vr:"DA",name:"FirstTreatmentDate",vm:"1",version:"DICOM"},"(3008,0056)":{tag:"(3008,0056)",vr:"DA",name:"MostRecentTreatmentDate",vm:"1",version:"DICOM"},"(3008,005A)":{tag:"(3008,005A)",vr:"IS",name:"NumberOfFractionsDelivered",vm:"1",version:"DICOM"},"(3008,0060)":{tag:"(3008,0060)",vr:"SQ",name:"OverrideSequence",vm:"1",version:"DICOM"},"(3008,0061)":{tag:"(3008,0061)",vr:"AT",name:"ParameterSequencePointer",vm:"1",version:"DICOM"},"(3008,0062)":{tag:"(3008,0062)",vr:"AT",name:"OverrideParameterPointer",vm:"1",version:"DICOM"},"(3008,0063)":{tag:"(3008,0063)",vr:"IS",name:"ParameterItemIndex",vm:"1",version:"DICOM"},"(3008,0064)":{tag:"(3008,0064)",vr:"IS",name:"MeasuredDoseReferenceNumber",vm:"1",version:"DICOM"},"(3008,0065)":{tag:"(3008,0065)",vr:"AT",name:"ParameterPointer",vm:"1",version:"DICOM"},"(3008,0066)":{tag:"(3008,0066)",vr:"ST",name:"OverrideReason",vm:"1",version:"DICOM"},"(3008,0067)":{tag:"(3008,0067)",vr:"US",name:"ParameterValueNumber",vm:"1",version:"DICOM"},"(3008,0068)":{tag:"(3008,0068)",vr:"SQ",name:"CorrectedParameterSequence",vm:"1",version:"DICOM"},"(3008,006A)":{tag:"(3008,006A)",vr:"FL",name:"CorrectionValue",vm:"1",version:"DICOM"},"(3008,0070)":{tag:"(3008,0070)",vr:"SQ",name:"CalculatedDoseReferenceSequence",vm:"1",version:"DICOM"},"(3008,0072)":{tag:"(3008,0072)",vr:"IS",name:"CalculatedDoseReferenceNumber",vm:"1",version:"DICOM"},"(3008,0074)":{tag:"(3008,0074)",vr:"ST",name:"CalculatedDoseReferenceDescription",vm:"1",version:"DICOM"},"(3008,0076)":{tag:"(3008,0076)",vr:"DS",name:"CalculatedDoseReferenceDoseValue",vm:"1",version:"DICOM"},"(3008,0078)":{tag:"(3008,0078)",vr:"DS",name:"StartMeterset",vm:"1",version:"DICOM"},"(3008,007A)":{tag:"(3008,007A)",vr:"DS",name:"EndMeterset",vm:"1",version:"DICOM"},"(3008,0080)":{tag:"(3008,0080)",vr:"SQ",name:"ReferencedMeasuredDoseReferenceSequence",vm:"1",version:"DICOM"},"(3008,0082)":{tag:"(3008,0082)",vr:"IS",name:"ReferencedMeasuredDoseReferenceNumber",vm:"1",version:"DICOM"},"(3008,0090)":{tag:"(3008,0090)",vr:"SQ",name:"ReferencedCalculatedDoseReferenceSequence",vm:"1",version:"DICOM"},"(3008,0092)":{tag:"(3008,0092)",vr:"IS",name:"ReferencedCalculatedDoseReferenceNumber",vm:"1",version:"DICOM"},"(3008,00A0)":{tag:"(3008,00A0)",vr:"SQ",name:"BeamLimitingDeviceLeafPairsSequence",vm:"1",version:"DICOM"},"(3008,00B0)":{tag:"(3008,00B0)",vr:"SQ",name:"RecordedWedgeSequence",vm:"1",version:"DICOM"},"(3008,00C0)":{tag:"(3008,00C0)",vr:"SQ",name:"RecordedCompensatorSequence",vm:"1",version:"DICOM"},"(3008,00D0)":{tag:"(3008,00D0)",vr:"SQ",name:"RecordedBlockSequence",vm:"1",version:"DICOM"},"(3008,00E0)":{tag:"(3008,00E0)",vr:"SQ",name:"TreatmentSummaryMeasuredDoseReferenceSequence",vm:"1",version:"DICOM"},"(3008,00F0)":{tag:"(3008,00F0)",vr:"SQ",name:"RecordedSnoutSequence",vm:"1",version:"DICOM"},"(3008,00F2)":{tag:"(3008,00F2)",vr:"SQ",name:"RecordedRangeShifterSequence",vm:"1",version:"DICOM"},"(3008,00F4)":{tag:"(3008,00F4)",vr:"SQ",name:"RecordedLateralSpreadingDeviceSequence",vm:"1",version:"DICOM"},"(3008,00F6)":{tag:"(3008,00F6)",vr:"SQ",name:"RecordedRangeModulatorSequence",vm:"1",version:"DICOM"},"(3008,0100)":{tag:"(3008,0100)",vr:"SQ",name:"RecordedSourceSequence",vm:"1",version:"DICOM"},"(3008,0105)":{tag:"(3008,0105)",vr:"LO",name:"SourceSerialNumber",vm:"1",version:"DICOM"},"(3008,0110)":{tag:"(3008,0110)",vr:"SQ",name:"TreatmentSessionApplicationSetupSequence",vm:"1",version:"DICOM"},"(3008,0116)":{tag:"(3008,0116)",vr:"CS",name:"ApplicationSetupCheck",vm:"1",version:"DICOM"},"(3008,0120)":{tag:"(3008,0120)",vr:"SQ",name:"RecordedBrachyAccessoryDeviceSequence",vm:"1",version:"DICOM"},"(3008,0122)":{tag:"(3008,0122)",vr:"IS",name:"ReferencedBrachyAccessoryDeviceNumber",vm:"1",version:"DICOM"},"(3008,0130)":{tag:"(3008,0130)",vr:"SQ",name:"RecordedChannelSequence",vm:"1",version:"DICOM"},"(3008,0132)":{tag:"(3008,0132)",vr:"DS",name:"SpecifiedChannelTotalTime",vm:"1",version:"DICOM"},"(3008,0134)":{tag:"(3008,0134)",vr:"DS",name:"DeliveredChannelTotalTime",vm:"1",version:"DICOM"},"(3008,0136)":{tag:"(3008,0136)",vr:"IS",name:"SpecifiedNumberOfPulses",vm:"1",version:"DICOM"},"(3008,0138)":{tag:"(3008,0138)",vr:"IS",name:"DeliveredNumberOfPulses",vm:"1",version:"DICOM"},"(3008,013A)":{tag:"(3008,013A)",vr:"DS",name:"SpecifiedPulseRepetitionInterval",vm:"1",version:"DICOM"},"(3008,013C)":{tag:"(3008,013C)",vr:"DS",name:"DeliveredPulseRepetitionInterval",vm:"1",version:"DICOM"},"(3008,0140)":{tag:"(3008,0140)",vr:"SQ",name:"RecordedSourceApplicatorSequence",vm:"1",version:"DICOM"},"(3008,0142)":{tag:"(3008,0142)",vr:"IS",name:"ReferencedSourceApplicatorNumber",vm:"1",version:"DICOM"},"(3008,0150)":{tag:"(3008,0150)",vr:"SQ",name:"RecordedChannelShieldSequence",vm:"1",version:"DICOM"},"(3008,0152)":{tag:"(3008,0152)",vr:"IS",name:"ReferencedChannelShieldNumber",vm:"1",version:"DICOM"},"(3008,0160)":{tag:"(3008,0160)",vr:"SQ",name:"BrachyControlPointDeliveredSequence",vm:"1",version:"DICOM"},"(3008,0162)":{tag:"(3008,0162)",vr:"DA",name:"SafePositionExitDate",vm:"1",version:"DICOM"},"(3008,0164)":{tag:"(3008,0164)",vr:"TM",name:"SafePositionExitTime",vm:"1",version:"DICOM"},"(3008,0166)":{tag:"(3008,0166)",vr:"DA",name:"SafePositionReturnDate",vm:"1",version:"DICOM"},"(3008,0168)":{tag:"(3008,0168)",vr:"TM",name:"SafePositionReturnTime",vm:"1",version:"DICOM"},"(3008,0171)":{tag:"(3008,0171)",vr:"SQ",name:"PulseSpecificBrachyControlPointDeliveredSequence",vm:"1",version:"DICOM"},"(3008,0172)":{tag:"(3008,0172)",vr:"US",name:"PulseNumber",vm:"1",version:"DICOM"},"(3008,0173)":{tag:"(3008,0173)",vr:"SQ",name:"BrachyPulseControlPointDeliveredSequence",vm:"1",version:"DICOM"},"(3008,0200)":{tag:"(3008,0200)",vr:"CS",name:"CurrentTreatmentStatus",vm:"1",version:"DICOM"},"(3008,0202)":{tag:"(3008,0202)",vr:"ST",name:"TreatmentStatusComment",vm:"1",version:"DICOM"},"(3008,0220)":{tag:"(3008,0220)",vr:"SQ",name:"FractionGroupSummarySequence",vm:"1",version:"DICOM"},"(3008,0223)":{tag:"(3008,0223)",vr:"IS",name:"ReferencedFractionNumber",vm:"1",version:"DICOM"},"(3008,0224)":{tag:"(3008,0224)",vr:"CS",name:"FractionGroupType",vm:"1",version:"DICOM"},"(3008,0230)":{tag:"(3008,0230)",vr:"CS",name:"BeamStopperPosition",vm:"1",version:"DICOM"},"(3008,0240)":{tag:"(3008,0240)",vr:"SQ",name:"FractionStatusSummarySequence",vm:"1",version:"DICOM"},"(3008,0250)":{tag:"(3008,0250)",vr:"DA",name:"TreatmentDate",vm:"1",version:"DICOM"},"(3008,0251)":{tag:"(3008,0251)",vr:"TM",name:"TreatmentTime",vm:"1",version:"DICOM"},"(300A,0002)":{tag:"(300A,0002)",vr:"SH",name:"RTPlanLabel",vm:"1",version:"DICOM"},"(300A,0003)":{tag:"(300A,0003)",vr:"LO",name:"RTPlanName",vm:"1",version:"DICOM"},"(300A,0004)":{tag:"(300A,0004)",vr:"ST",name:"RTPlanDescription",vm:"1",version:"DICOM"},"(300A,0006)":{tag:"(300A,0006)",vr:"DA",name:"RTPlanDate",vm:"1",version:"DICOM"},"(300A,0007)":{tag:"(300A,0007)",vr:"TM",name:"RTPlanTime",vm:"1",version:"DICOM"},"(300A,0009)":{tag:"(300A,0009)",vr:"LO",name:"TreatmentProtocols",vm:"1-n",version:"DICOM"},"(300A,000A)":{tag:"(300A,000A)",vr:"CS",name:"PlanIntent",vm:"1",version:"DICOM"},"(300A,000B)":{tag:"(300A,000B)",vr:"LO",name:"TreatmentSites",vm:"1-n",version:"DICOM"},"(300A,000C)":{tag:"(300A,000C)",vr:"CS",name:"RTPlanGeometry",vm:"1",version:"DICOM"},"(300A,000E)":{tag:"(300A,000E)",vr:"ST",name:"PrescriptionDescription",vm:"1",version:"DICOM"},"(300A,0010)":{tag:"(300A,0010)",vr:"SQ",name:"DoseReferenceSequence",vm:"1",version:"DICOM"},"(300A,0012)":{tag:"(300A,0012)",vr:"IS",name:"DoseReferenceNumber",vm:"1",version:"DICOM"},"(300A,0013)":{tag:"(300A,0013)",vr:"UI",name:"DoseReferenceUID",vm:"1",version:"DICOM"},"(300A,0014)":{tag:"(300A,0014)",vr:"CS",name:"DoseReferenceStructureType",vm:"1",version:"DICOM"},"(300A,0015)":{tag:"(300A,0015)",vr:"CS",name:"NominalBeamEnergyUnit",vm:"1",version:"DICOM"},"(300A,0016)":{tag:"(300A,0016)",vr:"LO",name:"DoseReferenceDescription",vm:"1",version:"DICOM"},"(300A,0018)":{tag:"(300A,0018)",vr:"DS",name:"DoseReferencePointCoordinates",vm:"3",version:"DICOM"},"(300A,001A)":{tag:"(300A,001A)",vr:"DS",name:"NominalPriorDose",vm:"1",version:"DICOM"},"(300A,0020)":{tag:"(300A,0020)",vr:"CS",name:"DoseReferenceType",vm:"1",version:"DICOM"},"(300A,0021)":{tag:"(300A,0021)",vr:"DS",name:"ConstraintWeight",vm:"1",version:"DICOM"},"(300A,0022)":{tag:"(300A,0022)",vr:"DS",name:"DeliveryWarningDose",vm:"1",version:"DICOM"},"(300A,0023)":{tag:"(300A,0023)",vr:"DS",name:"DeliveryMaximumDose",vm:"1",version:"DICOM"},"(300A,0025)":{tag:"(300A,0025)",vr:"DS",name:"TargetMinimumDose",vm:"1",version:"DICOM"},"(300A,0026)":{tag:"(300A,0026)",vr:"DS",name:"TargetPrescriptionDose",vm:"1",version:"DICOM"},"(300A,0027)":{tag:"(300A,0027)",vr:"DS",name:"TargetMaximumDose",vm:"1",version:"DICOM"},"(300A,0028)":{tag:"(300A,0028)",vr:"DS",name:"TargetUnderdoseVolumeFraction",vm:"1",version:"DICOM"},"(300A,002A)":{tag:"(300A,002A)",vr:"DS",name:"OrganAtRiskFullVolumeDose",vm:"1",version:"DICOM"},"(300A,002B)":{tag:"(300A,002B)",vr:"DS",name:"OrganAtRiskLimitDose",vm:"1",version:"DICOM"},"(300A,002C)":{tag:"(300A,002C)",vr:"DS",name:"OrganAtRiskMaximumDose",vm:"1",version:"DICOM"},"(300A,002D)":{tag:"(300A,002D)",vr:"DS",name:"OrganAtRiskOverdoseVolumeFraction",vm:"1",version:"DICOM"},"(300A,0040)":{tag:"(300A,0040)",vr:"SQ",name:"ToleranceTableSequence",vm:"1",version:"DICOM"},"(300A,0042)":{tag:"(300A,0042)",vr:"IS",name:"ToleranceTableNumber",vm:"1",version:"DICOM"},"(300A,0043)":{tag:"(300A,0043)",vr:"SH",name:"ToleranceTableLabel",vm:"1",version:"DICOM"},"(300A,0044)":{tag:"(300A,0044)",vr:"DS",name:"GantryAngleTolerance",vm:"1",version:"DICOM"},"(300A,0046)":{tag:"(300A,0046)",vr:"DS",name:"BeamLimitingDeviceAngleTolerance",vm:"1",version:"DICOM"},"(300A,0048)":{tag:"(300A,0048)",vr:"SQ",name:"BeamLimitingDeviceToleranceSequence",vm:"1",version:"DICOM"},"(300A,004A)":{tag:"(300A,004A)",vr:"DS",name:"BeamLimitingDevicePositionTolerance",vm:"1",version:"DICOM"},"(300A,004B)":{tag:"(300A,004B)",vr:"FL",name:"SnoutPositionTolerance",vm:"1",version:"DICOM"},"(300A,004C)":{tag:"(300A,004C)",vr:"DS",name:"PatientSupportAngleTolerance",vm:"1",version:"DICOM"},"(300A,004E)":{tag:"(300A,004E)",vr:"DS",name:"TableTopEccentricAngleTolerance",vm:"1",version:"DICOM"},"(300A,004F)":{tag:"(300A,004F)",vr:"FL",name:"TableTopPitchAngleTolerance",vm:"1",version:"DICOM"},"(300A,0050)":{tag:"(300A,0050)",vr:"FL",name:"TableTopRollAngleTolerance",vm:"1",version:"DICOM"},"(300A,0051)":{tag:"(300A,0051)",vr:"DS",name:"TableTopVerticalPositionTolerance",vm:"1",version:"DICOM"},"(300A,0052)":{tag:"(300A,0052)",vr:"DS",name:"TableTopLongitudinalPositionTolerance",vm:"1",version:"DICOM"},"(300A,0053)":{tag:"(300A,0053)",vr:"DS",name:"TableTopLateralPositionTolerance",vm:"1",version:"DICOM"},"(300A,0055)":{tag:"(300A,0055)",vr:"CS",name:"RTPlanRelationship",vm:"1",version:"DICOM"},"(300A,0070)":{tag:"(300A,0070)",vr:"SQ",name:"FractionGroupSequence",vm:"1",version:"DICOM"},"(300A,0071)":{tag:"(300A,0071)",vr:"IS",name:"FractionGroupNumber",vm:"1",version:"DICOM"},"(300A,0072)":{tag:"(300A,0072)",vr:"LO",name:"FractionGroupDescription",vm:"1",version:"DICOM"},"(300A,0078)":{tag:"(300A,0078)",vr:"IS",name:"NumberOfFractionsPlanned",vm:"1",version:"DICOM"},"(300A,0079)":{tag:"(300A,0079)",vr:"IS",name:"NumberOfFractionPatternDigitsPerDay",vm:"1",version:"DICOM"},"(300A,007A)":{tag:"(300A,007A)",vr:"IS",name:"RepeatFractionCycleLength",vm:"1",version:"DICOM"},"(300A,007B)":{tag:"(300A,007B)",vr:"LT",name:"FractionPattern",vm:"1",version:"DICOM"},"(300A,0080)":{tag:"(300A,0080)",vr:"IS",name:"NumberOfBeams",vm:"1",version:"DICOM"},"(300A,0082)":{tag:"(300A,0082)",vr:"DS",name:"BeamDoseSpecificationPoint",vm:"3",version:"DICOM"},"(300A,0083)":{tag:"(300A,0083)",vr:"UI",name:"ReferencedDoseReferenceUID",vm:"1",version:"DICOM"},"(300A,0084)":{tag:"(300A,0084)",vr:"DS",name:"BeamDose",vm:"1",version:"DICOM"},"(300A,0086)":{tag:"(300A,0086)",vr:"DS",name:"BeamMeterset",vm:"1",version:"DICOM"},"(300A,008B)":{tag:"(300A,008B)",vr:"CS",name:"BeamDoseMeaning",vm:"1",version:"DICOM"},"(300A,008C)":{tag:"(300A,008C)",vr:"SQ",name:"BeamDoseVerificationControlPointSequence",vm:"1",version:"DICOM"},"(300A,008D)":{tag:"(300A,008D)",vr:"FL",name:"AverageBeamDosePointDepth",vm:"1",version:"DICOM"},"(300A,008E)":{tag:"(300A,008E)",vr:"FL",name:"AverageBeamDosePointEquivalentDepth",vm:"1",version:"DICOM"},"(300A,008F)":{tag:"(300A,008F)",vr:"FL",name:"AverageBeamDosePointSSD",vm:"1",version:"DICOM"},"(300A,0090)":{tag:"(300A,0090)",vr:"CS",name:"BeamDoseType",vm:"1",version:"DICOM"},"(300A,0091)":{tag:"(300A,0091)",vr:"DS",name:"AlternateBeamDose",vm:"1",version:"DICOM"},"(300A,0092)":{tag:"(300A,0092)",vr:"CS",name:"AlternateBeamDoseType",vm:"1",version:"DICOM"},"(300A,0093)":{tag:"(300A,0093)",vr:"CS",name:"DepthValueAveragingFlag",vm:"1",version:"DICOM"},"(300A,0094)":{tag:"(300A,0094)",vr:"DS",name:"BeamDosePointSourceToExternalContourDistance",vm:"1",version:"DICOM"},"(300A,00A0)":{tag:"(300A,00A0)",vr:"IS",name:"NumberOfBrachyApplicationSetups",vm:"1",version:"DICOM"},"(300A,00A2)":{tag:"(300A,00A2)",vr:"DS",name:"BrachyApplicationSetupDoseSpecificationPoint",vm:"3",version:"DICOM"},"(300A,00A4)":{tag:"(300A,00A4)",vr:"DS",name:"BrachyApplicationSetupDose",vm:"1",version:"DICOM"},"(300A,00B0)":{tag:"(300A,00B0)",vr:"SQ",name:"BeamSequence",vm:"1",version:"DICOM"},"(300A,00B2)":{tag:"(300A,00B2)",vr:"SH",name:"TreatmentMachineName",vm:"1",version:"DICOM"},"(300A,00B3)":{tag:"(300A,00B3)",vr:"CS",name:"PrimaryDosimeterUnit",vm:"1",version:"DICOM"},"(300A,00B4)":{tag:"(300A,00B4)",vr:"DS",name:"SourceAxisDistance",vm:"1",version:"DICOM"},"(300A,00B6)":{tag:"(300A,00B6)",vr:"SQ",name:"BeamLimitingDeviceSequence",vm:"1",version:"DICOM"},"(300A,00B8)":{tag:"(300A,00B8)",vr:"CS",name:"RTBeamLimitingDeviceType",vm:"1",version:"DICOM"},"(300A,00BA)":{tag:"(300A,00BA)",vr:"DS",name:"SourceToBeamLimitingDeviceDistance",vm:"1",version:"DICOM"},"(300A,00BB)":{tag:"(300A,00BB)",vr:"FL",name:"IsocenterToBeamLimitingDeviceDistance",vm:"1",version:"DICOM"},"(300A,00BC)":{tag:"(300A,00BC)",vr:"IS",name:"NumberOfLeafJawPairs",vm:"1",version:"DICOM"},"(300A,00BE)":{tag:"(300A,00BE)",vr:"DS",name:"LeafPositionBoundaries",vm:"3-n",version:"DICOM"},"(300A,00C0)":{tag:"(300A,00C0)",vr:"IS",name:"BeamNumber",vm:"1",version:"DICOM"},"(300A,00C2)":{tag:"(300A,00C2)",vr:"LO",name:"BeamName",vm:"1",version:"DICOM"},"(300A,00C3)":{tag:"(300A,00C3)",vr:"ST",name:"BeamDescription",vm:"1",version:"DICOM"},"(300A,00C4)":{tag:"(300A,00C4)",vr:"CS",name:"BeamType",vm:"1",version:"DICOM"},"(300A,00C5)":{tag:"(300A,00C5)",vr:"FD",name:"BeamDeliveryDurationLimit",vm:"1",version:"DICOM"},"(300A,00C6)":{tag:"(300A,00C6)",vr:"CS",name:"RadiationType",vm:"1",version:"DICOM"},"(300A,00C7)":{tag:"(300A,00C7)",vr:"CS",name:"HighDoseTechniqueType",vm:"1",version:"DICOM"},"(300A,00C8)":{tag:"(300A,00C8)",vr:"IS",name:"ReferenceImageNumber",vm:"1",version:"DICOM"},"(300A,00CA)":{tag:"(300A,00CA)",vr:"SQ",name:"PlannedVerificationImageSequence",vm:"1",version:"DICOM"},"(300A,00CC)":{tag:"(300A,00CC)",vr:"LO",name:"ImagingDeviceSpecificAcquisitionParameters",vm:"1-n",version:"DICOM"},"(300A,00CE)":{tag:"(300A,00CE)",vr:"CS",name:"TreatmentDeliveryType",vm:"1",version:"DICOM"},"(300A,00D0)":{tag:"(300A,00D0)",vr:"IS",name:"NumberOfWedges",vm:"1",version:"DICOM"},"(300A,00D1)":{tag:"(300A,00D1)",vr:"SQ",name:"WedgeSequence",vm:"1",version:"DICOM"},"(300A,00D2)":{tag:"(300A,00D2)",vr:"IS",name:"WedgeNumber",vm:"1",version:"DICOM"},"(300A,00D3)":{tag:"(300A,00D3)",vr:"CS",name:"WedgeType",vm:"1",version:"DICOM"},"(300A,00D4)":{tag:"(300A,00D4)",vr:"SH",name:"WedgeID",vm:"1",version:"DICOM"},"(300A,00D5)":{tag:"(300A,00D5)",vr:"IS",name:"WedgeAngle",vm:"1",version:"DICOM"},"(300A,00D6)":{tag:"(300A,00D6)",vr:"DS",name:"WedgeFactor",vm:"1",version:"DICOM"},"(300A,00D7)":{tag:"(300A,00D7)",vr:"FL",name:"TotalWedgeTrayWaterEquivalentThickness",vm:"1",version:"DICOM"},"(300A,00D8)":{tag:"(300A,00D8)",vr:"DS",name:"WedgeOrientation",vm:"1",version:"DICOM"},"(300A,00D9)":{tag:"(300A,00D9)",vr:"FL",name:"IsocenterToWedgeTrayDistance",vm:"1",version:"DICOM"},"(300A,00DA)":{tag:"(300A,00DA)",vr:"DS",name:"SourceToWedgeTrayDistance",vm:"1",version:"DICOM"},"(300A,00DB)":{tag:"(300A,00DB)",vr:"FL",name:"WedgeThinEdgePosition",vm:"1",version:"DICOM"},"(300A,00DC)":{tag:"(300A,00DC)",vr:"SH",name:"BolusID",vm:"1",version:"DICOM"},"(300A,00DD)":{tag:"(300A,00DD)",vr:"ST",name:"BolusDescription",vm:"1",version:"DICOM"},"(300A,00DE)":{tag:"(300A,00DE)",vr:"DS",name:"EffectiveWedgeAngle",vm:"1",version:"DICOM"},"(300A,00E0)":{tag:"(300A,00E0)",vr:"IS",name:"NumberOfCompensators",vm:"1",version:"DICOM"},"(300A,00E1)":{tag:"(300A,00E1)",vr:"SH",name:"MaterialID",vm:"1",version:"DICOM"},"(300A,00E2)":{tag:"(300A,00E2)",vr:"DS",name:"TotalCompensatorTrayFactor",vm:"1",version:"DICOM"},"(300A,00E3)":{tag:"(300A,00E3)",vr:"SQ",name:"CompensatorSequence",vm:"1",version:"DICOM"},"(300A,00E4)":{tag:"(300A,00E4)",vr:"IS",name:"CompensatorNumber",vm:"1",version:"DICOM"},"(300A,00E5)":{tag:"(300A,00E5)",vr:"SH",name:"CompensatorID",vm:"1",version:"DICOM"},"(300A,00E6)":{tag:"(300A,00E6)",vr:"DS",name:"SourceToCompensatorTrayDistance",vm:"1",version:"DICOM"},"(300A,00E7)":{tag:"(300A,00E7)",vr:"IS",name:"CompensatorRows",vm:"1",version:"DICOM"},"(300A,00E8)":{tag:"(300A,00E8)",vr:"IS",name:"CompensatorColumns",vm:"1",version:"DICOM"},"(300A,00E9)":{tag:"(300A,00E9)",vr:"DS",name:"CompensatorPixelSpacing",vm:"2",version:"DICOM"},"(300A,00EA)":{tag:"(300A,00EA)",vr:"DS",name:"CompensatorPosition",vm:"2",version:"DICOM"},"(300A,00EB)":{tag:"(300A,00EB)",vr:"DS",name:"CompensatorTransmissionData",vm:"1-n",version:"DICOM"},"(300A,00EC)":{tag:"(300A,00EC)",vr:"DS",name:"CompensatorThicknessData",vm:"1-n",version:"DICOM"},"(300A,00ED)":{tag:"(300A,00ED)",vr:"IS",name:"NumberOfBoli",vm:"1",version:"DICOM"},"(300A,00EE)":{tag:"(300A,00EE)",vr:"CS",name:"CompensatorType",vm:"1",version:"DICOM"},"(300A,00EF)":{tag:"(300A,00EF)",vr:"SH",name:"CompensatorTrayID",vm:"1",version:"DICOM"},"(300A,00F0)":{tag:"(300A,00F0)",vr:"IS",name:"NumberOfBlocks",vm:"1",version:"DICOM"},"(300A,00F2)":{tag:"(300A,00F2)",vr:"DS",name:"TotalBlockTrayFactor",vm:"1",version:"DICOM"},"(300A,00F3)":{tag:"(300A,00F3)",vr:"FL",name:"TotalBlockTrayWaterEquivalentThickness",vm:"1",version:"DICOM"},"(300A,00F4)":{tag:"(300A,00F4)",vr:"SQ",name:"BlockSequence",vm:"1",version:"DICOM"},"(300A,00F5)":{tag:"(300A,00F5)",vr:"SH",name:"BlockTrayID",vm:"1",version:"DICOM"},"(300A,00F6)":{tag:"(300A,00F6)",vr:"DS",name:"SourceToBlockTrayDistance",vm:"1",version:"DICOM"},"(300A,00F7)":{tag:"(300A,00F7)",vr:"FL",name:"IsocenterToBlockTrayDistance",vm:"1",version:"DICOM"},"(300A,00F8)":{tag:"(300A,00F8)",vr:"CS",name:"BlockType",vm:"1",version:"DICOM"},"(300A,00F9)":{tag:"(300A,00F9)",vr:"LO",name:"AccessoryCode",vm:"1",version:"DICOM"},"(300A,00FA)":{tag:"(300A,00FA)",vr:"CS",name:"BlockDivergence",vm:"1",version:"DICOM"},"(300A,00FB)":{tag:"(300A,00FB)",vr:"CS",name:"BlockMountingPosition",vm:"1",version:"DICOM"},"(300A,00FC)":{tag:"(300A,00FC)",vr:"IS",name:"BlockNumber",vm:"1",version:"DICOM"},"(300A,00FE)":{tag:"(300A,00FE)",vr:"LO",name:"BlockName",vm:"1",version:"DICOM"},"(300A,0100)":{tag:"(300A,0100)",vr:"DS",name:"BlockThickness",vm:"1",version:"DICOM"},"(300A,0102)":{tag:"(300A,0102)",vr:"DS",name:"BlockTransmission",vm:"1",version:"DICOM"},"(300A,0104)":{tag:"(300A,0104)",vr:"IS",name:"BlockNumberOfPoints",vm:"1",version:"DICOM"},"(300A,0106)":{tag:"(300A,0106)",vr:"DS",name:"BlockData",vm:"2-2n",version:"DICOM"},"(300A,0107)":{tag:"(300A,0107)",vr:"SQ",name:"ApplicatorSequence",vm:"1",version:"DICOM"},"(300A,0108)":{tag:"(300A,0108)",vr:"SH",name:"ApplicatorID",vm:"1",version:"DICOM"},"(300A,0109)":{tag:"(300A,0109)",vr:"CS",name:"ApplicatorType",vm:"1",version:"DICOM"},"(300A,010A)":{tag:"(300A,010A)",vr:"LO",name:"ApplicatorDescription",vm:"1",version:"DICOM"},"(300A,010C)":{tag:"(300A,010C)",vr:"DS",name:"CumulativeDoseReferenceCoefficient",vm:"1",version:"DICOM"},"(300A,010E)":{tag:"(300A,010E)",vr:"DS",name:"FinalCumulativeMetersetWeight",vm:"1",version:"DICOM"},"(300A,0110)":{tag:"(300A,0110)",vr:"IS",name:"NumberOfControlPoints",vm:"1",version:"DICOM"},"(300A,0111)":{tag:"(300A,0111)",vr:"SQ",name:"ControlPointSequence",vm:"1",version:"DICOM"},"(300A,0112)":{tag:"(300A,0112)",vr:"IS",name:"ControlPointIndex",vm:"1",version:"DICOM"},"(300A,0114)":{tag:"(300A,0114)",vr:"DS",name:"NominalBeamEnergy",vm:"1",version:"DICOM"},"(300A,0115)":{tag:"(300A,0115)",vr:"DS",name:"DoseRateSet",vm:"1",version:"DICOM"},"(300A,0116)":{tag:"(300A,0116)",vr:"SQ",name:"WedgePositionSequence",vm:"1",version:"DICOM"},"(300A,0118)":{tag:"(300A,0118)",vr:"CS",name:"WedgePosition",vm:"1",version:"DICOM"},"(300A,011A)":{tag:"(300A,011A)",vr:"SQ",name:"BeamLimitingDevicePositionSequence",vm:"1",version:"DICOM"},"(300A,011C)":{tag:"(300A,011C)",vr:"DS",name:"LeafJawPositions",vm:"2-2n",version:"DICOM"},"(300A,011E)":{tag:"(300A,011E)",vr:"DS",name:"GantryAngle",vm:"1",version:"DICOM"},"(300A,011F)":{tag:"(300A,011F)",vr:"CS",name:"GantryRotationDirection",vm:"1",version:"DICOM"},"(300A,0120)":{tag:"(300A,0120)",vr:"DS",name:"BeamLimitingDeviceAngle",vm:"1",version:"DICOM"},"(300A,0121)":{tag:"(300A,0121)",vr:"CS",name:"BeamLimitingDeviceRotationDirection",vm:"1",version:"DICOM"},"(300A,0122)":{tag:"(300A,0122)",vr:"DS",name:"PatientSupportAngle",vm:"1",version:"DICOM"},"(300A,0123)":{tag:"(300A,0123)",vr:"CS",name:"PatientSupportRotationDirection",vm:"1",version:"DICOM"},"(300A,0124)":{tag:"(300A,0124)",vr:"DS",name:"TableTopEccentricAxisDistance",vm:"1",version:"DICOM"},"(300A,0125)":{tag:"(300A,0125)",vr:"DS",name:"TableTopEccentricAngle",vm:"1",version:"DICOM"},"(300A,0126)":{tag:"(300A,0126)",vr:"CS",name:"TableTopEccentricRotationDirection",vm:"1",version:"DICOM"},"(300A,0128)":{tag:"(300A,0128)",vr:"DS",name:"TableTopVerticalPosition",vm:"1",version:"DICOM"},"(300A,0129)":{tag:"(300A,0129)",vr:"DS",name:"TableTopLongitudinalPosition",vm:"1",version:"DICOM"},"(300A,012A)":{tag:"(300A,012A)",vr:"DS",name:"TableTopLateralPosition",vm:"1",version:"DICOM"},"(300A,012C)":{tag:"(300A,012C)",vr:"DS",name:"IsocenterPosition",vm:"3",version:"DICOM"},"(300A,012E)":{tag:"(300A,012E)",vr:"DS",name:"SurfaceEntryPoint",vm:"3",version:"DICOM"},"(300A,0130)":{tag:"(300A,0130)",vr:"DS",name:"SourceToSurfaceDistance",vm:"1",version:"DICOM"},"(300A,0131)":{tag:"(300A,0131)",vr:"FL",name:"AverageBeamDosePointSourceToExternalContourSurfaceDistance",vm:"1",version:"DICOM"},"(300A,0132)":{tag:"(300A,0132)",vr:"FL",name:"SourceToExternalContourDistance",vm:"1",version:"DICOM"},"(300A,0133)":{tag:"(300A,0133)",vr:"FL",name:"ExternalContourEntryPoint",vm:"3",version:"DICOM"},"(300A,0134)":{tag:"(300A,0134)",vr:"DS",name:"CumulativeMetersetWeight",vm:"1",version:"DICOM"},"(300A,0140)":{tag:"(300A,0140)",vr:"FL",name:"TableTopPitchAngle",vm:"1",version:"DICOM"},"(300A,0142)":{tag:"(300A,0142)",vr:"CS",name:"TableTopPitchRotationDirection",vm:"1",version:"DICOM"},"(300A,0144)":{tag:"(300A,0144)",vr:"FL",name:"TableTopRollAngle",vm:"1",version:"DICOM"},"(300A,0146)":{tag:"(300A,0146)",vr:"CS",name:"TableTopRollRotationDirection",vm:"1",version:"DICOM"},"(300A,0148)":{tag:"(300A,0148)",vr:"FL",name:"HeadFixationAngle",vm:"1",version:"DICOM"},"(300A,014A)":{tag:"(300A,014A)",vr:"FL",name:"GantryPitchAngle",vm:"1",version:"DICOM"},"(300A,014C)":{tag:"(300A,014C)",vr:"CS",name:"GantryPitchRotationDirection",vm:"1",version:"DICOM"},"(300A,014E)":{tag:"(300A,014E)",vr:"FL",name:"GantryPitchAngleTolerance",vm:"1",version:"DICOM"},"(300A,0150)":{tag:"(300A,0150)",vr:"CS",name:"FixationEye",vm:"1",version:"DICOM"},"(300A,0151)":{tag:"(300A,0151)",vr:"DS",name:"ChairHeadFramePosition",vm:"1",version:"DICOM"},"(300A,0152)":{tag:"(300A,0152)",vr:"DS",name:"HeadFixationAngleTolerance",vm:"1",version:"DICOM"},"(300A,0153)":{tag:"(300A,0153)",vr:"DS",name:"ChairHeadFramePositionTolerance",vm:"1",version:"DICOM"},"(300A,0154)":{tag:"(300A,0154)",vr:"DS",name:"FixationLightAzimuthalAngleTolerance",vm:"1",version:"DICOM"},"(300A,0155)":{tag:"(300A,0155)",vr:"DS",name:"FixationLightPolarAngleTolerance",vm:"1",version:"DICOM"},"(300A,0180)":{tag:"(300A,0180)",vr:"SQ",name:"PatientSetupSequence",vm:"1",version:"DICOM"},"(300A,0182)":{tag:"(300A,0182)",vr:"IS",name:"PatientSetupNumber",vm:"1",version:"DICOM"},"(300A,0183)":{tag:"(300A,0183)",vr:"LO",name:"PatientSetupLabel",vm:"1",version:"DICOM"},"(300A,0184)":{tag:"(300A,0184)",vr:"LO",name:"PatientAdditionalPosition",vm:"1",version:"DICOM"},"(300A,0190)":{tag:"(300A,0190)",vr:"SQ",name:"FixationDeviceSequence",vm:"1",version:"DICOM"},"(300A,0192)":{tag:"(300A,0192)",vr:"CS",name:"FixationDeviceType",vm:"1",version:"DICOM"},"(300A,0194)":{tag:"(300A,0194)",vr:"SH",name:"FixationDeviceLabel",vm:"1",version:"DICOM"},"(300A,0196)":{tag:"(300A,0196)",vr:"ST",name:"FixationDeviceDescription",vm:"1",version:"DICOM"},"(300A,0198)":{tag:"(300A,0198)",vr:"SH",name:"FixationDevicePosition",vm:"1",version:"DICOM"},"(300A,0199)":{tag:"(300A,0199)",vr:"FL",name:"FixationDevicePitchAngle",vm:"1",version:"DICOM"},"(300A,019A)":{tag:"(300A,019A)",vr:"FL",name:"FixationDeviceRollAngle",vm:"1",version:"DICOM"},"(300A,01A0)":{tag:"(300A,01A0)",vr:"SQ",name:"ShieldingDeviceSequence",vm:"1",version:"DICOM"},"(300A,01A2)":{tag:"(300A,01A2)",vr:"CS",name:"ShieldingDeviceType",vm:"1",version:"DICOM"},"(300A,01A4)":{tag:"(300A,01A4)",vr:"SH",name:"ShieldingDeviceLabel",vm:"1",version:"DICOM"},"(300A,01A6)":{tag:"(300A,01A6)",vr:"ST",name:"ShieldingDeviceDescription",vm:"1",version:"DICOM"},"(300A,01A8)":{tag:"(300A,01A8)",vr:"SH",name:"ShieldingDevicePosition",vm:"1",version:"DICOM"},"(300A,01B0)":{tag:"(300A,01B0)",vr:"CS",name:"SetupTechnique",vm:"1",version:"DICOM"},"(300A,01B2)":{tag:"(300A,01B2)",vr:"ST",name:"SetupTechniqueDescription",vm:"1",version:"DICOM"},"(300A,01B4)":{tag:"(300A,01B4)",vr:"SQ",name:"SetupDeviceSequence",vm:"1",version:"DICOM"},"(300A,01B6)":{tag:"(300A,01B6)",vr:"CS",name:"SetupDeviceType",vm:"1",version:"DICOM"},"(300A,01B8)":{tag:"(300A,01B8)",vr:"SH",name:"SetupDeviceLabel",vm:"1",version:"DICOM"},"(300A,01BA)":{tag:"(300A,01BA)",vr:"ST",name:"SetupDeviceDescription",vm:"1",version:"DICOM"},"(300A,01BC)":{tag:"(300A,01BC)",vr:"DS",name:"SetupDeviceParameter",vm:"1",version:"DICOM"},"(300A,01D0)":{tag:"(300A,01D0)",vr:"ST",name:"SetupReferenceDescription",vm:"1",version:"DICOM"},"(300A,01D2)":{tag:"(300A,01D2)",vr:"DS",name:"TableTopVerticalSetupDisplacement",vm:"1",version:"DICOM"},"(300A,01D4)":{tag:"(300A,01D4)",vr:"DS",name:"TableTopLongitudinalSetupDisplacement",vm:"1",version:"DICOM"},"(300A,01D6)":{tag:"(300A,01D6)",vr:"DS",name:"TableTopLateralSetupDisplacement",vm:"1",version:"DICOM"},"(300A,0200)":{tag:"(300A,0200)",vr:"CS",name:"BrachyTreatmentTechnique",vm:"1",version:"DICOM"},"(300A,0202)":{tag:"(300A,0202)",vr:"CS",name:"BrachyTreatmentType",vm:"1",version:"DICOM"},"(300A,0206)":{tag:"(300A,0206)",vr:"SQ",name:"TreatmentMachineSequence",vm:"1",version:"DICOM"},"(300A,0210)":{tag:"(300A,0210)",vr:"SQ",name:"SourceSequence",vm:"1",version:"DICOM"},"(300A,0212)":{tag:"(300A,0212)",vr:"IS",name:"SourceNumber",vm:"1",version:"DICOM"},"(300A,0214)":{tag:"(300A,0214)",vr:"CS",name:"SourceType",vm:"1",version:"DICOM"},"(300A,0216)":{tag:"(300A,0216)",vr:"LO",name:"SourceManufacturer",vm:"1",version:"DICOM"},"(300A,0218)":{tag:"(300A,0218)",vr:"DS",name:"ActiveSourceDiameter",vm:"1",version:"DICOM"},"(300A,021A)":{tag:"(300A,021A)",vr:"DS",name:"ActiveSourceLength",vm:"1",version:"DICOM"},"(300A,021B)":{tag:"(300A,021B)",vr:"SH",name:"SourceModelID",vm:"1",version:"DICOM"},"(300A,021C)":{tag:"(300A,021C)",vr:"LO",name:"SourceDescription",vm:"1",version:"DICOM"},"(300A,0222)":{tag:"(300A,0222)",vr:"DS",name:"SourceEncapsulationNominalThickness",vm:"1",version:"DICOM"},"(300A,0224)":{tag:"(300A,0224)",vr:"DS",name:"SourceEncapsulationNominalTransmission",vm:"1",version:"DICOM"},"(300A,0226)":{tag:"(300A,0226)",vr:"LO",name:"SourceIsotopeName",vm:"1",version:"DICOM"},"(300A,0228)":{tag:"(300A,0228)",vr:"DS",name:"SourceIsotopeHalfLife",vm:"1",version:"DICOM"},"(300A,0229)":{tag:"(300A,0229)",vr:"CS",name:"SourceStrengthUnits",vm:"1",version:"DICOM"},"(300A,022A)":{tag:"(300A,022A)",vr:"DS",name:"ReferenceAirKermaRate",vm:"1",version:"DICOM"},"(300A,022B)":{tag:"(300A,022B)",vr:"DS",name:"SourceStrength",vm:"1",version:"DICOM"},"(300A,022C)":{tag:"(300A,022C)",vr:"DA",name:"SourceStrengthReferenceDate",vm:"1",version:"DICOM"},"(300A,022E)":{tag:"(300A,022E)",vr:"TM",name:"SourceStrengthReferenceTime",vm:"1",version:"DICOM"},"(300A,0230)":{tag:"(300A,0230)",vr:"SQ",name:"ApplicationSetupSequence",vm:"1",version:"DICOM"},"(300A,0232)":{tag:"(300A,0232)",vr:"CS",name:"ApplicationSetupType",vm:"1",version:"DICOM"},"(300A,0234)":{tag:"(300A,0234)",vr:"IS",name:"ApplicationSetupNumber",vm:"1",version:"DICOM"},"(300A,0236)":{tag:"(300A,0236)",vr:"LO",name:"ApplicationSetupName",vm:"1",version:"DICOM"},"(300A,0238)":{tag:"(300A,0238)",vr:"LO",name:"ApplicationSetupManufacturer",vm:"1",version:"DICOM"},"(300A,0240)":{tag:"(300A,0240)",vr:"IS",name:"TemplateNumber",vm:"1",version:"DICOM"},"(300A,0242)":{tag:"(300A,0242)",vr:"SH",name:"TemplateType",vm:"1",version:"DICOM"},"(300A,0244)":{tag:"(300A,0244)",vr:"LO",name:"TemplateName",vm:"1",version:"DICOM"},"(300A,0250)":{tag:"(300A,0250)",vr:"DS",name:"TotalReferenceAirKerma",vm:"1",version:"DICOM"},"(300A,0260)":{tag:"(300A,0260)",vr:"SQ",name:"BrachyAccessoryDeviceSequence",vm:"1",version:"DICOM"},"(300A,0262)":{tag:"(300A,0262)",vr:"IS",name:"BrachyAccessoryDeviceNumber",vm:"1",version:"DICOM"},"(300A,0263)":{tag:"(300A,0263)",vr:"SH",name:"BrachyAccessoryDeviceID",vm:"1",version:"DICOM"},"(300A,0264)":{tag:"(300A,0264)",vr:"CS",name:"BrachyAccessoryDeviceType",vm:"1",version:"DICOM"},"(300A,0266)":{tag:"(300A,0266)",vr:"LO",name:"BrachyAccessoryDeviceName",vm:"1",version:"DICOM"},"(300A,026A)":{tag:"(300A,026A)",vr:"DS",name:"BrachyAccessoryDeviceNominalThickness",vm:"1",version:"DICOM"},"(300A,026C)":{tag:"(300A,026C)",vr:"DS",name:"BrachyAccessoryDeviceNominalTransmission",vm:"1",version:"DICOM"},"(300A,0271)":{tag:"(300A,0271)",vr:"DS",name:"ChannelEffectiveLength",vm:"1",version:"DICOM"},"(300A,0272)":{tag:"(300A,0272)",vr:"DS",name:"ChannelInnerLength",vm:"1",version:"DICOM"},"(300A,0273)":{tag:"(300A,0273)",vr:"SH",name:"AfterloaderChannelID",vm:"1",version:"DICOM"},"(300A,0274)":{tag:"(300A,0274)",vr:"DS",name:"SourceApplicatorTipLength",vm:"1",version:"DICOM"},"(300A,0280)":{tag:"(300A,0280)",vr:"SQ",name:"ChannelSequence",vm:"1",version:"DICOM"},"(300A,0282)":{tag:"(300A,0282)",vr:"IS",name:"ChannelNumber",vm:"1",version:"DICOM"},"(300A,0284)":{tag:"(300A,0284)",vr:"DS",name:"ChannelLength",vm:"1",version:"DICOM"},"(300A,0286)":{tag:"(300A,0286)",vr:"DS",name:"ChannelTotalTime",vm:"1",version:"DICOM"},"(300A,0288)":{tag:"(300A,0288)",vr:"CS",name:"SourceMovementType",vm:"1",version:"DICOM"},"(300A,028A)":{tag:"(300A,028A)",vr:"IS",name:"NumberOfPulses",vm:"1",version:"DICOM"},"(300A,028C)":{tag:"(300A,028C)",vr:"DS",name:"PulseRepetitionInterval",vm:"1",version:"DICOM"},"(300A,0290)":{tag:"(300A,0290)",vr:"IS",name:"SourceApplicatorNumber",vm:"1",version:"DICOM"},"(300A,0291)":{tag:"(300A,0291)",vr:"SH",name:"SourceApplicatorID",vm:"1",version:"DICOM"},"(300A,0292)":{tag:"(300A,0292)",vr:"CS",name:"SourceApplicatorType",vm:"1",version:"DICOM"},"(300A,0294)":{tag:"(300A,0294)",vr:"LO",name:"SourceApplicatorName",vm:"1",version:"DICOM"},"(300A,0296)":{tag:"(300A,0296)",vr:"DS",name:"SourceApplicatorLength",vm:"1",version:"DICOM"},"(300A,0298)":{tag:"(300A,0298)",vr:"LO",name:"SourceApplicatorManufacturer",vm:"1",version:"DICOM"},"(300A,029C)":{tag:"(300A,029C)",vr:"DS",name:"SourceApplicatorWallNominalThickness",vm:"1",version:"DICOM"},"(300A,029E)":{tag:"(300A,029E)",vr:"DS",name:"SourceApplicatorWallNominalTransmission",vm:"1",version:"DICOM"},"(300A,02A0)":{tag:"(300A,02A0)",vr:"DS",name:"SourceApplicatorStepSize",vm:"1",version:"DICOM"},"(300A,02A2)":{tag:"(300A,02A2)",vr:"IS",name:"TransferTubeNumber",vm:"1",version:"DICOM"},"(300A,02A4)":{tag:"(300A,02A4)",vr:"DS",name:"TransferTubeLength",vm:"1",version:"DICOM"},"(300A,02B0)":{tag:"(300A,02B0)",vr:"SQ",name:"ChannelShieldSequence",vm:"1",version:"DICOM"},"(300A,02B2)":{tag:"(300A,02B2)",vr:"IS",name:"ChannelShieldNumber",vm:"1",version:"DICOM"},"(300A,02B3)":{tag:"(300A,02B3)",vr:"SH",name:"ChannelShieldID",vm:"1",version:"DICOM"},"(300A,02B4)":{tag:"(300A,02B4)",vr:"LO",name:"ChannelShieldName",vm:"1",version:"DICOM"},"(300A,02B8)":{tag:"(300A,02B8)",vr:"DS",name:"ChannelShieldNominalThickness",vm:"1",version:"DICOM"},"(300A,02BA)":{tag:"(300A,02BA)",vr:"DS",name:"ChannelShieldNominalTransmission",vm:"1",version:"DICOM"},"(300A,02C8)":{tag:"(300A,02C8)",vr:"DS",name:"FinalCumulativeTimeWeight",vm:"1",version:"DICOM"},"(300A,02D0)":{tag:"(300A,02D0)",vr:"SQ",name:"BrachyControlPointSequence",vm:"1",version:"DICOM"},"(300A,02D2)":{tag:"(300A,02D2)",vr:"DS",name:"ControlPointRelativePosition",vm:"1",version:"DICOM"},"(300A,02D4)":{tag:"(300A,02D4)",vr:"DS",name:"ControlPoint3DPosition",vm:"3",version:"DICOM"},"(300A,02D6)":{tag:"(300A,02D6)",vr:"DS",name:"CumulativeTimeWeight",vm:"1",version:"DICOM"},"(300A,02E0)":{tag:"(300A,02E0)",vr:"CS",name:"CompensatorDivergence",vm:"1",version:"DICOM"},"(300A,02E1)":{tag:"(300A,02E1)",vr:"CS",name:"CompensatorMountingPosition",vm:"1",version:"DICOM"},"(300A,02E2)":{tag:"(300A,02E2)",vr:"DS",name:"SourceToCompensatorDistance",vm:"1-n",version:"DICOM"},"(300A,02E3)":{tag:"(300A,02E3)",vr:"FL",name:"TotalCompensatorTrayWaterEquivalentThickness",vm:"1",version:"DICOM"},"(300A,02E4)":{tag:"(300A,02E4)",vr:"FL",name:"IsocenterToCompensatorTrayDistance",vm:"1",version:"DICOM"},"(300A,02E5)":{tag:"(300A,02E5)",vr:"FL",name:"CompensatorColumnOffset",vm:"1",version:"DICOM"},"(300A,02E6)":{tag:"(300A,02E6)",vr:"FL",name:"IsocenterToCompensatorDistances",vm:"1-n",version:"DICOM"},"(300A,02E7)":{tag:"(300A,02E7)",vr:"FL",name:"CompensatorRelativeStoppingPowerRatio",vm:"1",version:"DICOM"},"(300A,02E8)":{tag:"(300A,02E8)",vr:"FL",name:"CompensatorMillingToolDiameter",vm:"1",version:"DICOM"},"(300A,02EA)":{tag:"(300A,02EA)",vr:"SQ",name:"IonRangeCompensatorSequence",vm:"1",version:"DICOM"},"(300A,02EB)":{tag:"(300A,02EB)",vr:"LT",name:"CompensatorDescription",vm:"1",version:"DICOM"},"(300A,0302)":{tag:"(300A,0302)",vr:"IS",name:"RadiationMassNumber",vm:"1",version:"DICOM"},"(300A,0304)":{tag:"(300A,0304)",vr:"IS",name:"RadiationAtomicNumber",vm:"1",version:"DICOM"},"(300A,0306)":{tag:"(300A,0306)",vr:"SS",name:"RadiationChargeState",vm:"1",version:"DICOM"},"(300A,0308)":{tag:"(300A,0308)",vr:"CS",name:"ScanMode",vm:"1",version:"DICOM"},"(300A,0309)":{tag:"(300A,0309)",vr:"CS",name:"ModulatedScanModeType",vm:"1",version:"DICOM"},"(300A,030A)":{tag:"(300A,030A)",vr:"FL",name:"VirtualSourceAxisDistances",vm:"2",version:"DICOM"},"(300A,030C)":{tag:"(300A,030C)",vr:"SQ",name:"SnoutSequence",vm:"1",version:"DICOM"},"(300A,030D)":{tag:"(300A,030D)",vr:"FL",name:"SnoutPosition",vm:"1",version:"DICOM"},"(300A,030F)":{tag:"(300A,030F)",vr:"SH",name:"SnoutID",vm:"1",version:"DICOM"},"(300A,0312)":{tag:"(300A,0312)",vr:"IS",name:"NumberOfRangeShifters",vm:"1",version:"DICOM"},"(300A,0314)":{tag:"(300A,0314)",vr:"SQ",name:"RangeShifterSequence",vm:"1",version:"DICOM"},"(300A,0316)":{tag:"(300A,0316)",vr:"IS",name:"RangeShifterNumber",vm:"1",version:"DICOM"},"(300A,0318)":{tag:"(300A,0318)",vr:"SH",name:"RangeShifterID",vm:"1",version:"DICOM"},"(300A,0320)":{tag:"(300A,0320)",vr:"CS",name:"RangeShifterType",vm:"1",version:"DICOM"},"(300A,0322)":{tag:"(300A,0322)",vr:"LO",name:"RangeShifterDescription",vm:"1",version:"DICOM"},"(300A,0330)":{tag:"(300A,0330)",vr:"IS",name:"NumberOfLateralSpreadingDevices",vm:"1",version:"DICOM"},"(300A,0332)":{tag:"(300A,0332)",vr:"SQ",name:"LateralSpreadingDeviceSequence",vm:"1",version:"DICOM"},"(300A,0334)":{tag:"(300A,0334)",vr:"IS",name:"LateralSpreadingDeviceNumber",vm:"1",version:"DICOM"},"(300A,0336)":{tag:"(300A,0336)",vr:"SH",name:"LateralSpreadingDeviceID",vm:"1",version:"DICOM"},"(300A,0338)":{tag:"(300A,0338)",vr:"CS",name:"LateralSpreadingDeviceType",vm:"1",version:"DICOM"},"(300A,033A)":{tag:"(300A,033A)",vr:"LO",name:"LateralSpreadingDeviceDescription",vm:"1",version:"DICOM"},"(300A,033C)":{tag:"(300A,033C)",vr:"FL",name:"LateralSpreadingDeviceWaterEquivalentThickness",vm:"1",version:"DICOM"},"(300A,0340)":{tag:"(300A,0340)",vr:"IS",name:"NumberOfRangeModulators",vm:"1",version:"DICOM"},"(300A,0342)":{tag:"(300A,0342)",vr:"SQ",name:"RangeModulatorSequence",vm:"1",version:"DICOM"},"(300A,0344)":{tag:"(300A,0344)",vr:"IS",name:"RangeModulatorNumber",vm:"1",version:"DICOM"},"(300A,0346)":{tag:"(300A,0346)",vr:"SH",name:"RangeModulatorID",vm:"1",version:"DICOM"},"(300A,0348)":{tag:"(300A,0348)",vr:"CS",name:"RangeModulatorType",vm:"1",version:"DICOM"},"(300A,034A)":{tag:"(300A,034A)",vr:"LO",name:"RangeModulatorDescription",vm:"1",version:"DICOM"},"(300A,034C)":{tag:"(300A,034C)",vr:"SH",name:"BeamCurrentModulationID",vm:"1",version:"DICOM"},"(300A,0350)":{tag:"(300A,0350)",vr:"CS",name:"PatientSupportType",vm:"1",version:"DICOM"},"(300A,0352)":{tag:"(300A,0352)",vr:"SH",name:"PatientSupportID",vm:"1",version:"DICOM"},"(300A,0354)":{tag:"(300A,0354)",vr:"LO",name:"PatientSupportAccessoryCode",vm:"1",version:"DICOM"},"(300A,0355)":{tag:"(300A,0355)",vr:"LO",name:"TrayAccessoryCode",vm:"1",version:"DICOM"},"(300A,0356)":{tag:"(300A,0356)",vr:"FL",name:"FixationLightAzimuthalAngle",vm:"1",version:"DICOM"},"(300A,0358)":{tag:"(300A,0358)",vr:"FL",name:"FixationLightPolarAngle",vm:"1",version:"DICOM"},"(300A,035A)":{tag:"(300A,035A)",vr:"FL",name:"MetersetRate",vm:"1",version:"DICOM"},"(300A,0360)":{tag:"(300A,0360)",vr:"SQ",name:"RangeShifterSettingsSequence",vm:"1",version:"DICOM"},"(300A,0362)":{tag:"(300A,0362)",vr:"LO",name:"RangeShifterSetting",vm:"1",version:"DICOM"},"(300A,0364)":{tag:"(300A,0364)",vr:"FL",name:"IsocenterToRangeShifterDistance",vm:"1",version:"DICOM"},"(300A,0366)":{tag:"(300A,0366)",vr:"FL",name:"RangeShifterWaterEquivalentThickness",vm:"1",version:"DICOM"},"(300A,0370)":{tag:"(300A,0370)",vr:"SQ",name:"LateralSpreadingDeviceSettingsSequence",vm:"1",version:"DICOM"},"(300A,0372)":{tag:"(300A,0372)",vr:"LO",name:"LateralSpreadingDeviceSetting",vm:"1",version:"DICOM"},"(300A,0374)":{tag:"(300A,0374)",vr:"FL",name:"IsocenterToLateralSpreadingDeviceDistance",vm:"1",version:"DICOM"},"(300A,0380)":{tag:"(300A,0380)",vr:"SQ",name:"RangeModulatorSettingsSequence",vm:"1",version:"DICOM"},"(300A,0382)":{tag:"(300A,0382)",vr:"FL",name:"RangeModulatorGatingStartValue",vm:"1",version:"DICOM"},"(300A,0384)":{tag:"(300A,0384)",vr:"FL",name:"RangeModulatorGatingStopValue",vm:"1",version:"DICOM"},"(300A,0386)":{tag:"(300A,0386)",vr:"FL",name:"RangeModulatorGatingStartWaterEquivalentThickness",vm:"1",version:"DICOM"},"(300A,0388)":{tag:"(300A,0388)",vr:"FL",name:"RangeModulatorGatingStopWaterEquivalentThickness",vm:"1",version:"DICOM"},"(300A,038A)":{tag:"(300A,038A)",vr:"FL",name:"IsocenterToRangeModulatorDistance",vm:"1",version:"DICOM"},"(300A,038F)":{tag:"(300A,038F)",vr:"FL",name:"ScanSpotTimeOffset",vm:"1-n",version:"DICOM"},"(300A,0390)":{tag:"(300A,0390)",vr:"SH",name:"ScanSpotTuneID",vm:"1",version:"DICOM"},"(300A,0391)":{tag:"(300A,0391)",vr:"IS",name:"ScanSpotPrescribedIndices",vm:"1-n",version:"DICOM"},"(300A,0392)":{tag:"(300A,0392)",vr:"IS",name:"NumberOfScanSpotPositions",vm:"1",version:"DICOM"},"(300A,0393)":{tag:"(300A,0393)",vr:"CS",name:"ScanSpotReordered",vm:"1",version:"DICOM"},"(300A,0394)":{tag:"(300A,0394)",vr:"FL",name:"ScanSpotPositionMap",vm:"1-n",version:"DICOM"},"(300A,0395)":{tag:"(300A,0395)",vr:"CS",name:"ScanSpotReorderingAllowed",vm:"1",version:"DICOM"},"(300A,0396)":{tag:"(300A,0396)",vr:"FL",name:"ScanSpotMetersetWeights",vm:"1-n",version:"DICOM"},"(300A,0398)":{tag:"(300A,0398)",vr:"FL",name:"ScanningSpotSize",vm:"2",version:"DICOM"},"(300A,0399)":{tag:"(300A,0399)",vr:"FL",name:"ScanSpotSizesDelivered",vm:"2-2n",version:"DICOM"},"(300A,039A)":{tag:"(300A,039A)",vr:"IS",name:"NumberOfPaintings",vm:"1",version:"DICOM"},"(300A,03A0)":{tag:"(300A,03A0)",vr:"SQ",name:"IonToleranceTableSequence",vm:"1",version:"DICOM"},"(300A,03A2)":{tag:"(300A,03A2)",vr:"SQ",name:"IonBeamSequence",vm:"1",version:"DICOM"},"(300A,03A4)":{tag:"(300A,03A4)",vr:"SQ",name:"IonBeamLimitingDeviceSequence",vm:"1",version:"DICOM"},"(300A,03A6)":{tag:"(300A,03A6)",vr:"SQ",name:"IonBlockSequence",vm:"1",version:"DICOM"},"(300A,03A8)":{tag:"(300A,03A8)",vr:"SQ",name:"IonControlPointSequence",vm:"1",version:"DICOM"},"(300A,03AA)":{tag:"(300A,03AA)",vr:"SQ",name:"IonWedgeSequence",vm:"1",version:"DICOM"},"(300A,03AC)":{tag:"(300A,03AC)",vr:"SQ",name:"IonWedgePositionSequence",vm:"1",version:"DICOM"},"(300A,0401)":{tag:"(300A,0401)",vr:"SQ",name:"ReferencedSetupImageSequence",vm:"1",version:"DICOM"},"(300A,0402)":{tag:"(300A,0402)",vr:"ST",name:"SetupImageComment",vm:"1",version:"DICOM"},"(300A,0410)":{tag:"(300A,0410)",vr:"SQ",name:"MotionSynchronizationSequence",vm:"1",version:"DICOM"},"(300A,0412)":{tag:"(300A,0412)",vr:"FL",name:"ControlPointOrientation",vm:"3",version:"DICOM"},"(300A,0420)":{tag:"(300A,0420)",vr:"SQ",name:"GeneralAccessorySequence",vm:"1",version:"DICOM"},"(300A,0421)":{tag:"(300A,0421)",vr:"SH",name:"GeneralAccessoryID",vm:"1",version:"DICOM"},"(300A,0422)":{tag:"(300A,0422)",vr:"ST",name:"GeneralAccessoryDescription",vm:"1",version:"DICOM"},"(300A,0423)":{tag:"(300A,0423)",vr:"CS",name:"GeneralAccessoryType",vm:"1",version:"DICOM"},"(300A,0424)":{tag:"(300A,0424)",vr:"IS",name:"GeneralAccessoryNumber",vm:"1",version:"DICOM"},"(300A,0425)":{tag:"(300A,0425)",vr:"FL",name:"SourceToGeneralAccessoryDistance",vm:"1",version:"DICOM"},"(300A,0426)":{tag:"(300A,0426)",vr:"DS",name:"IsocenterToGeneralAccessoryDistance",vm:"1",version:"DICOM"},"(300A,0431)":{tag:"(300A,0431)",vr:"SQ",name:"ApplicatorGeometrySequence",vm:"1",version:"DICOM"},"(300A,0432)":{tag:"(300A,0432)",vr:"CS",name:"ApplicatorApertureShape",vm:"1",version:"DICOM"},"(300A,0433)":{tag:"(300A,0433)",vr:"FL",name:"ApplicatorOpening",vm:"1",version:"DICOM"},"(300A,0434)":{tag:"(300A,0434)",vr:"FL",name:"ApplicatorOpeningX",vm:"1",version:"DICOM"},"(300A,0435)":{tag:"(300A,0435)",vr:"FL",name:"ApplicatorOpeningY",vm:"1",version:"DICOM"},"(300A,0436)":{tag:"(300A,0436)",vr:"FL",name:"SourceToApplicatorMountingPositionDistance",vm:"1",version:"DICOM"},"(300A,0440)":{tag:"(300A,0440)",vr:"IS",name:"NumberOfBlockSlabItems",vm:"1",version:"DICOM"},"(300A,0441)":{tag:"(300A,0441)",vr:"SQ",name:"BlockSlabSequence",vm:"1",version:"DICOM"},"(300A,0442)":{tag:"(300A,0442)",vr:"DS",name:"BlockSlabThickness",vm:"1",version:"DICOM"},"(300A,0443)":{tag:"(300A,0443)",vr:"US",name:"BlockSlabNumber",vm:"1",version:"DICOM"},"(300A,0450)":{tag:"(300A,0450)",vr:"SQ",name:"DeviceMotionControlSequence",vm:"1",version:"DICOM"},"(300A,0451)":{tag:"(300A,0451)",vr:"CS",name:"DeviceMotionExecutionMode",vm:"1",version:"DICOM"},"(300A,0452)":{tag:"(300A,0452)",vr:"CS",name:"DeviceMotionObservationMode",vm:"1",version:"DICOM"},"(300A,0453)":{tag:"(300A,0453)",vr:"SQ",name:"DeviceMotionParameterCodeSequence",vm:"1",version:"DICOM"},"(300A,0501)":{tag:"(300A,0501)",vr:"FL",name:"DistalDepthFraction",vm:"1",version:"DICOM"},"(300A,0502)":{tag:"(300A,0502)",vr:"FL",name:"DistalDepth",vm:"1",version:"DICOM"},"(300A,0503)":{tag:"(300A,0503)",vr:"FL",name:"NominalRangeModulationFractions",vm:"2",version:"DICOM"},"(300A,0504)":{tag:"(300A,0504)",vr:"FL",name:"NominalRangeModulatedRegionDepths",vm:"2",version:"DICOM"},"(300A,0505)":{tag:"(300A,0505)",vr:"SQ",name:"DepthDoseParametersSequence",vm:"1",version:"DICOM"},"(300A,0506)":{tag:"(300A,0506)",vr:"SQ",name:"DeliveredDepthDoseParametersSequence",vm:"1",version:"DICOM"},"(300A,0507)":{tag:"(300A,0507)",vr:"FL",name:"DeliveredDistalDepthFraction",vm:"1",version:"DICOM"},"(300A,0508)":{tag:"(300A,0508)",vr:"FL",name:"DeliveredDistalDepth",vm:"1",version:"DICOM"},"(300A,0509)":{tag:"(300A,0509)",vr:"FL",name:"DeliveredNominalRangeModulationFractions",vm:"2",version:"DICOM"},"(300A,0510)":{tag:"(300A,0510)",vr:"FL",name:"DeliveredNominalRangeModulatedRegionDepths",vm:"2",version:"DICOM"},"(300A,0511)":{tag:"(300A,0511)",vr:"CS",name:"DeliveredReferenceDoseDefinition",vm:"1",version:"DICOM"},"(300A,0512)":{tag:"(300A,0512)",vr:"CS",name:"ReferenceDoseDefinition",vm:"1",version:"DICOM"},"(300A,0600)":{tag:"(300A,0600)",vr:"US",name:"RTControlPointIndex",vm:"1",version:"DICOM"},"(300A,0601)":{tag:"(300A,0601)",vr:"US",name:"RadiationGenerationModeIndex",vm:"1",version:"DICOM"},"(300A,0602)":{tag:"(300A,0602)",vr:"US",name:"ReferencedDefinedDeviceIndex",vm:"1",version:"DICOM"},"(300A,0603)":{tag:"(300A,0603)",vr:"US",name:"RadiationDoseIdentificationIndex",vm:"1",version:"DICOM"},"(300A,0604)":{tag:"(300A,0604)",vr:"US",name:"NumberOfRTControlPoints",vm:"1",version:"DICOM"},"(300A,0605)":{tag:"(300A,0605)",vr:"US",name:"ReferencedRadiationGenerationModeIndex",vm:"1",version:"DICOM"},"(300A,0606)":{tag:"(300A,0606)",vr:"US",name:"TreatmentPositionIndex",vm:"1",version:"DICOM"},"(300A,0607)":{tag:"(300A,0607)",vr:"US",name:"ReferencedDeviceIndex",vm:"1",version:"DICOM"},"(300A,0608)":{tag:"(300A,0608)",vr:"LO",name:"TreatmentPositionGroupLabel",vm:"1",version:"DICOM"},"(300A,0609)":{tag:"(300A,0609)",vr:"UI",name:"TreatmentPositionGroupUID",vm:"1",version:"DICOM"},"(300A,060A)":{tag:"(300A,060A)",vr:"SQ",name:"TreatmentPositionGroupSequence",vm:"1",version:"DICOM"},"(300A,060B)":{tag:"(300A,060B)",vr:"US",name:"ReferencedTreatmentPositionIndex",vm:"1",version:"DICOM"},"(300A,060C)":{tag:"(300A,060C)",vr:"US",name:"ReferencedRadiationDoseIdentificationIndex",vm:"1",version:"DICOM"},"(300A,060D)":{tag:"(300A,060D)",vr:"FD",name:"RTAccessoryHolderWaterEquivalentThickness",vm:"1",version:"DICOM"},"(300A,060E)":{tag:"(300A,060E)",vr:"US",name:"ReferencedRTAccessoryHolderDeviceIndex",vm:"1",version:"DICOM"},"(300A,060F)":{tag:"(300A,060F)",vr:"CS",name:"RTAccessoryHolderSlotExistenceFlag",vm:"1",version:"DICOM"},"(300A,0610)":{tag:"(300A,0610)",vr:"SQ",name:"RTAccessoryHolderSlotSequence",vm:"1",version:"DICOM"},"(300A,0611)":{tag:"(300A,0611)",vr:"LO",name:"RTAccessoryHolderSlotID",vm:"1",version:"DICOM"},"(300A,0612)":{tag:"(300A,0612)",vr:"FD",name:"RTAccessoryHolderSlotDistance",vm:"1",version:"DICOM"},"(300A,0613)":{tag:"(300A,0613)",vr:"FD",name:"RTAccessorySlotDistance",vm:"1",version:"DICOM"},"(300A,0614)":{tag:"(300A,0614)",vr:"SQ",name:"RTAccessoryHolderDefinitionSequence",vm:"1",version:"DICOM"},"(300A,0615)":{tag:"(300A,0615)",vr:"LO",name:"RTAccessoryDeviceSlotID",vm:"1",version:"DICOM"},"(300A,0616)":{tag:"(300A,0616)",vr:"SQ",name:"RTRadiationSequence",vm:"1",version:"DICOM"},"(300A,0617)":{tag:"(300A,0617)",vr:"SQ",name:"RadiationDoseSequence",vm:"1",version:"DICOM"},"(300A,0618)":{tag:"(300A,0618)",vr:"SQ",name:"RadiationDoseIdentificationSequence",vm:"1",version:"DICOM"},"(300A,0619)":{tag:"(300A,0619)",vr:"LO",name:"RadiationDoseIdentificationLabel",vm:"1",version:"DICOM"},"(300A,061A)":{tag:"(300A,061A)",vr:"CS",name:"ReferenceDoseType",vm:"1",version:"DICOM"},"(300A,061B)":{tag:"(300A,061B)",vr:"CS",name:"PrimaryDoseValueIndicator",vm:"1",version:"DICOM"},"(300A,061C)":{tag:"(300A,061C)",vr:"SQ",name:"DoseValuesSequence",vm:"1",version:"DICOM"},"(300A,061D)":{tag:"(300A,061D)",vr:"CS",name:"DoseValuePurpose",vm:"1-n",version:"DICOM"},"(300A,061E)":{tag:"(300A,061E)",vr:"FD",name:"ReferenceDosePointCoordinates",vm:"3",version:"DICOM"},"(300A,061F)":{tag:"(300A,061F)",vr:"SQ",name:"RadiationDoseValuesParametersSequence",vm:"1",version:"DICOM"},"(300A,0620)":{tag:"(300A,0620)",vr:"SQ",name:"MetersetToDoseMappingSequence",vm:"1",version:"DICOM"},"(300A,0621)":{tag:"(300A,0621)",vr:"SQ",name:"ExpectedInVivoMeasurementValuesSequence",vm:"1",version:"DICOM"},"(300A,0622)":{tag:"(300A,0622)",vr:"US",name:"ExpectedInVivoMeasurementValueIndex",vm:"1",version:"DICOM"},"(300A,0623)":{tag:"(300A,0623)",vr:"LO",name:"RadiationDoseInVivoMeasurementLabel",vm:"1",version:"DICOM"},"(300A,0624)":{tag:"(300A,0624)",vr:"FD",name:"RadiationDoseCentralAxisDisplacement",vm:"2",version:"DICOM"},"(300A,0625)":{tag:"(300A,0625)",vr:"FD",name:"RadiationDoseValue",vm:"1",version:"DICOM"},"(300A,0626)":{tag:"(300A,0626)",vr:"FD",name:"RadiationDoseSourceToSkinDistance",vm:"1",version:"DICOM"},"(300A,0627)":{tag:"(300A,0627)",vr:"FD",name:"RadiationDoseMeasurementPointCoordinates",vm:"3",version:"DICOM"},"(300A,0628)":{tag:"(300A,0628)",vr:"FD",name:"RadiationDoseSourceToExternalContourDistance",vm:"1",version:"DICOM"},"(300A,0629)":{tag:"(300A,0629)",vr:"SQ",name:"RTToleranceSetSequence",vm:"1",version:"DICOM"},"(300A,062A)":{tag:"(300A,062A)",vr:"LO",name:"RTToleranceSetLabel",vm:"1",version:"DICOM"},"(300A,062B)":{tag:"(300A,062B)",vr:"SQ",name:"AttributeToleranceValuesSequence",vm:"1",version:"DICOM"},"(300A,062C)":{tag:"(300A,062C)",vr:"FD",name:"ToleranceValue",vm:"1",version:"DICOM"},"(300A,062D)":{tag:"(300A,062D)",vr:"SQ",name:"PatientSupportPositionToleranceSequence",vm:"1",version:"DICOM"},"(300A,062E)":{tag:"(300A,062E)",vr:"FD",name:"TreatmentTimeLimit",vm:"1",version:"DICOM"},"(300A,062F)":{tag:"(300A,062F)",vr:"SQ",name:"CArmPhotonElectronControlPointSequence",vm:"1",version:"DICOM"},"(300A,0630)":{tag:"(300A,0630)",vr:"SQ",name:"ReferencedRTRadiationSequence",vm:"1",version:"DICOM"},"(300A,0631)":{tag:"(300A,0631)",vr:"SQ",name:"ReferencedRTInstanceSequence",vm:"1",version:"DICOM"},"(300A,0632)":{tag:"(300A,0632)",vr:"SQ",name:"ReferencedRTPatientSetupSequence",vm:"1",version:"DICOM"},"(300A,0634)":{tag:"(300A,0634)",vr:"FD",name:"SourceToPatientSurfaceDistance",vm:"1",version:"DICOM"},"(300A,0635)":{tag:"(300A,0635)",vr:"SQ",name:"TreatmentMachineSpecialModeCodeSequence",vm:"1",version:"DICOM"},"(300A,0636)":{tag:"(300A,0636)",vr:"US",name:"IntendedNumberOfFractions",vm:"1",version:"DICOM"},"(300A,0637)":{tag:"(300A,0637)",vr:"CS",name:"RTRadiationSetIntent",vm:"1",version:"DICOM"},"(300A,0638)":{tag:"(300A,0638)",vr:"CS",name:"RTRadiationPhysicalAndGeometricContentDetailFlag",vm:"1",version:"DICOM"},"(300A,0639)":{tag:"(300A,0639)",vr:"CS",name:"RTRecordFlag",vm:"1",version:"DICOM"},"(300A,063A)":{tag:"(300A,063A)",vr:"SQ",name:"TreatmentDeviceIdentificationSequence",vm:"1",version:"DICOM"},"(300A,063B)":{tag:"(300A,063B)",vr:"SQ",name:"ReferencedRTPhysicianIntentSequence",vm:"1",version:"DICOM"},"(300A,063C)":{tag:"(300A,063C)",vr:"FD",name:"CumulativeMeterset",vm:"1",version:"DICOM"},"(300A,063D)":{tag:"(300A,063D)",vr:"FD",name:"DeliveryRate",vm:"1",version:"DICOM"},"(300A,063E)":{tag:"(300A,063E)",vr:"SQ",name:"DeliveryRateUnitSequence",vm:"1",version:"DICOM"},"(300A,063F)":{tag:"(300A,063F)",vr:"SQ",name:"TreatmentPositionSequence",vm:"1",version:"DICOM"},"(300A,0640)":{tag:"(300A,0640)",vr:"FD",name:"RadiationSourceAxisDistance",vm:"1",version:"DICOM"},"(300A,0641)":{tag:"(300A,0641)",vr:"US",name:"NumberOfRTBeamLimitingDevices",vm:"1",version:"DICOM"},"(300A,0642)":{tag:"(300A,0642)",vr:"FD",name:"RTBeamLimitingDeviceProximalDistance",vm:"1",version:"DICOM"},"(300A,0643)":{tag:"(300A,0643)",vr:"FD",name:"RTBeamLimitingDeviceDistalDistance",vm:"1",version:"DICOM"},"(300A,0644)":{tag:"(300A,0644)",vr:"SQ",name:"ParallelRTBeamDelimiterDeviceOrientationLabelCodeSequence",vm:"1",version:"DICOM"},"(300A,0645)":{tag:"(300A,0645)",vr:"FD",name:"BeamModifierOrientationAngle",vm:"1",version:"DICOM"},"(300A,0646)":{tag:"(300A,0646)",vr:"SQ",name:"FixedRTBeamDelimiterDeviceSequence",vm:"1",version:"DICOM"},"(300A,0647)":{tag:"(300A,0647)",vr:"SQ",name:"ParallelRTBeamDelimiterDeviceSequence",vm:"1",version:"DICOM"},"(300A,0648)":{tag:"(300A,0648)",vr:"US",name:"NumberOfParallelRTBeamDelimiters",vm:"1",version:"DICOM"},"(300A,0649)":{tag:"(300A,0649)",vr:"FD",name:"ParallelRTBeamDelimiterBoundaries",vm:"2-n",version:"DICOM"},"(300A,064A)":{tag:"(300A,064A)",vr:"FD",name:"ParallelRTBeamDelimiterPositions",vm:"2-n",version:"DICOM"},"(300A,064B)":{tag:"(300A,064B)",vr:"FD",name:"RTBeamLimitingDeviceOffset",vm:"2",version:"DICOM"},"(300A,064C)":{tag:"(300A,064C)",vr:"SQ",name:"RTBeamDelimiterGeometrySequence",vm:"1",version:"DICOM"},"(300A,064D)":{tag:"(300A,064D)",vr:"SQ",name:"RTBeamLimitingDeviceDefinitionSequence",vm:"1",version:"DICOM"},"(300A,064E)":{tag:"(300A,064E)",vr:"CS",name:"ParallelRTBeamDelimiterOpeningMode",vm:"1",version:"DICOM"},"(300A,064F)":{tag:"(300A,064F)",vr:"CS",name:"ParallelRTBeamDelimiterLeafMountingSide",vm:"1-n",version:"DICOM"},"(300A,0650)":{tag:"(300A,0650)",vr:"UI",name:"PatientSetupUID",vm:"1",version:"DICOM"},"(300A,0651)":{tag:"(300A,0651)",vr:"SQ",name:"WedgeDefinitionSequence",vm:"1",version:"DICOM"},"(300A,0652)":{tag:"(300A,0652)",vr:"FD",name:"RadiationBeamWedgeAngle",vm:"1",version:"DICOM"},"(300A,0653)":{tag:"(300A,0653)",vr:"FD",name:"RadiationBeamWedgeThinEdgeDistance",vm:"1",version:"DICOM"},"(300A,0654)":{tag:"(300A,0654)",vr:"FD",name:"RadiationBeamEffectiveWedgeAngle",vm:"1",version:"DICOM"},"(300A,0655)":{tag:"(300A,0655)",vr:"US",name:"NumberOfWedgePositions",vm:"1",version:"DICOM"},"(300A,0656)":{tag:"(300A,0656)",vr:"SQ",name:"RTBeamLimitingDeviceOpeningSequence",vm:"1",version:"DICOM"},"(300A,0657)":{tag:"(300A,0657)",vr:"US",name:"NumberOfRTBeamLimitingDeviceOpenings",vm:"1",version:"DICOM"},"(300A,0658)":{tag:"(300A,0658)",vr:"SQ",name:"RadiationDosimeterUnitSequence",vm:"1",version:"DICOM"},"(300A,0659)":{tag:"(300A,0659)",vr:"SQ",name:"RTDeviceDistanceReferenceLocationCodeSequence",vm:"1",version:"DICOM"},"(300A,065A)":{tag:"(300A,065A)",vr:"SQ",name:"RadiationDeviceConfigurationAndCommissioningKeySequence",vm:"1",version:"DICOM"},"(300A,065B)":{tag:"(300A,065B)",vr:"SQ",name:"PatientSupportPositionParameterSequence",vm:"1",version:"DICOM"},"(300A,065C)":{tag:"(300A,065C)",vr:"CS",name:"PatientSupportPositionSpecificationMethod",vm:"1",version:"DICOM"},"(300A,065D)":{tag:"(300A,065D)",vr:"SQ",name:"PatientSupportPositionDeviceParameterSequence",vm:"1",version:"DICOM"},"(300A,065E)":{tag:"(300A,065E)",vr:"US",name:"DeviceOrderIndex",vm:"1",version:"DICOM"},"(300A,065F)":{tag:"(300A,065F)",vr:"US",name:"PatientSupportPositionParameterOrderIndex",vm:"1",version:"DICOM"},"(300A,0660)":{tag:"(300A,0660)",vr:"SQ",name:"PatientSupportPositionDeviceToleranceSequence",vm:"1",version:"DICOM"},"(300A,0661)":{tag:"(300A,0661)",vr:"US",name:"PatientSupportPositionToleranceOrderIndex",vm:"1",version:"DICOM"},"(300A,0662)":{tag:"(300A,0662)",vr:"SQ",name:"CompensatorDefinitionSequence",vm:"1",version:"DICOM"},"(300A,0663)":{tag:"(300A,0663)",vr:"CS",name:"CompensatorMapOrientation",vm:"1",version:"DICOM"},"(300A,0664)":{tag:"(300A,0664)",vr:"OF",name:"CompensatorProximalThicknessMap",vm:"1",version:"DICOM"},"(300A,0665)":{tag:"(300A,0665)",vr:"OF",name:"CompensatorDistalThicknessMap",vm:"1",version:"DICOM"},"(300A,0666)":{tag:"(300A,0666)",vr:"FD",name:"CompensatorBasePlaneOffset",vm:"1",version:"DICOM"},"(300A,0667)":{tag:"(300A,0667)",vr:"SQ",name:"CompensatorShapeFabricationCodeSequence",vm:"1",version:"DICOM"},"(300A,0668)":{tag:"(300A,0668)",vr:"SQ",name:"CompensatorShapeSequence",vm:"1",version:"DICOM"},"(300A,0669)":{tag:"(300A,0669)",vr:"FD",name:"RadiationBeamCompensatorMillingToolDiameter",vm:"1",version:"DICOM"},"(300A,066A)":{tag:"(300A,066A)",vr:"SQ",name:"BlockDefinitionSequence",vm:"1",version:"DICOM"},"(300A,066B)":{tag:"(300A,066B)",vr:"OF",name:"BlockEdgeData",vm:"1",version:"DICOM"},"(300A,066C)":{tag:"(300A,066C)",vr:"CS",name:"BlockOrientation",vm:"1",version:"DICOM"},"(300A,066D)":{tag:"(300A,066D)",vr:"FD",name:"RadiationBeamBlockThickness",vm:"1",version:"DICOM"},"(300A,066E)":{tag:"(300A,066E)",vr:"FD",name:"RadiationBeamBlockSlabThickness",vm:"1",version:"DICOM"},"(300A,066F)":{tag:"(300A,066F)",vr:"SQ",name:"BlockEdgeDataSequence",vm:"1",version:"DICOM"},"(300A,0670)":{tag:"(300A,0670)",vr:"US",name:"NumberOfRTAccessoryHolders",vm:"1",version:"DICOM"},"(300A,0671)":{tag:"(300A,0671)",vr:"SQ",name:"GeneralAccessoryDefinitionSequence",vm:"1",version:"DICOM"},"(300A,0672)":{tag:"(300A,0672)",vr:"US",name:"NumberOfGeneralAccessories",vm:"1",version:"DICOM"},"(300A,0673)":{tag:"(300A,0673)",vr:"SQ",name:"BolusDefinitionSequence",vm:"1",version:"DICOM"},"(300A,0674)":{tag:"(300A,0674)",vr:"US",name:"NumberOfBoluses",vm:"1",version:"DICOM"},"(300A,0675)":{tag:"(300A,0675)",vr:"UI",name:"EquipmentFrameOfReferenceUID",vm:"1",version:"DICOM"},"(300A,0676)":{tag:"(300A,0676)",vr:"ST",name:"EquipmentFrameOfReferenceDescription",vm:"1",version:"DICOM"},"(300A,0677)":{tag:"(300A,0677)",vr:"SQ",name:"EquipmentReferencePointCoordinatesSequence",vm:"1",version:"DICOM"},"(300A,0678)":{tag:"(300A,0678)",vr:"SQ",name:"EquipmentReferencePointCodeSequence",vm:"1",version:"DICOM"},"(300A,0679)":{tag:"(300A,0679)",vr:"FD",name:"RTBeamLimitingDeviceAngle",vm:"1",version:"DICOM"},"(300A,067A)":{tag:"(300A,067A)",vr:"FD",name:"SourceRollAngle",vm:"1",version:"DICOM"},"(300A,067B)":{tag:"(300A,067B)",vr:"SQ",name:"RadiationGenerationModeSequence",vm:"1",version:"DICOM"},"(300A,067C)":{tag:"(300A,067C)",vr:"SH",name:"RadiationGenerationModeLabel",vm:"1",version:"DICOM"},"(300A,067D)":{tag:"(300A,067D)",vr:"ST",name:"RadiationGenerationModeDescription",vm:"1",version:"DICOM"},"(300A,067E)":{tag:"(300A,067E)",vr:"SQ",name:"RadiationGenerationModeMachineCodeSequence",vm:"1",version:"DICOM"},"(300A,067F)":{tag:"(300A,067F)",vr:"SQ",name:"RadiationTypeCodeSequence",vm:"1",version:"DICOM"},"(300A,0680)":{tag:"(300A,0680)",vr:"DS",name:"NominalEnergy",vm:"1",version:"DICOM"},"(300A,0681)":{tag:"(300A,0681)",vr:"DS",name:"MinimumNominalEnergy",vm:"1",version:"DICOM"},"(300A,0682)":{tag:"(300A,0682)",vr:"DS",name:"MaximumNominalEnergy",vm:"1",version:"DICOM"},"(300A,0683)":{tag:"(300A,0683)",vr:"SQ",name:"RadiationFluenceModifierCodeSequence",vm:"1",version:"DICOM"},"(300A,0684)":{tag:"(300A,0684)",vr:"SQ",name:"EnergyUnitCodeSequence",vm:"1",version:"DICOM"},"(300A,0685)":{tag:"(300A,0685)",vr:"US",name:"NumberOfRadiationGenerationModes",vm:"1",version:"DICOM"},"(300A,0686)":{tag:"(300A,0686)",vr:"SQ",name:"PatientSupportDevicesSequence",vm:"1",version:"DICOM"},"(300A,0687)":{tag:"(300A,0687)",vr:"US",name:"NumberOfPatientSupportDevices",vm:"1",version:"DICOM"},"(300A,0688)":{tag:"(300A,0688)",vr:"FD",name:"RTBeamModifierDefinitionDistance",vm:"1",version:"DICOM"},"(300A,0689)":{tag:"(300A,0689)",vr:"SQ",name:"BeamAreaLimitSequence",vm:"1",version:"DICOM"},"(300A,068A)":{tag:"(300A,068A)",vr:"SQ",name:"ReferencedRTPrescriptionSequence",vm:"1",version:"DICOM"},"(300A,0700)":{tag:"(300A,0700)",vr:"UI",name:"TreatmentSessionUID",vm:"1",version:"DICOM"},"(300A,0701)":{tag:"(300A,0701)",vr:"CS",name:"RTRadiationUsage",vm:"1",version:"DICOM"},"(300A,0702)":{tag:"(300A,0702)",vr:"SQ",name:"ReferencedRTRadiationSetSequence",vm:"1",version:"DICOM"},"(300A,0703)":{tag:"(300A,0703)",vr:"SQ",name:"ReferencedRTRadiationRecordSequence",vm:"1",version:"DICOM"},"(300A,0704)":{tag:"(300A,0704)",vr:"US",name:"RTRadiationSetDeliveryNumber",vm:"1",version:"DICOM"},"(300A,0705)":{tag:"(300A,0705)",vr:"US",name:"ClinicalFractionNumber",vm:"1",version:"DICOM"},"(300A,0706)":{tag:"(300A,0706)",vr:"CS",name:"RTTreatmentFractionCompletionStatus",vm:"1",version:"DICOM"},"(300A,0707)":{tag:"(300A,0707)",vr:"CS",name:"RTRadiationSetUsage",vm:"1",version:"DICOM"},"(300A,0708)":{tag:"(300A,0708)",vr:"CS",name:"TreatmentDeliveryContinuationFlag",vm:"1",version:"DICOM"},"(300A,0709)":{tag:"(300A,0709)",vr:"CS",name:"TreatmentRecordContentOrigin",vm:"1",version:"DICOM"},"(300A,0714)":{tag:"(300A,0714)",vr:"CS",name:"RTTreatmentTerminationStatus",vm:"1",version:"DICOM"},"(300A,0715)":{tag:"(300A,0715)",vr:"SQ",name:"RTTreatmentTerminationReasonCodeSequence",vm:"1",version:"DICOM"},"(300A,0716)":{tag:"(300A,0716)",vr:"SQ",name:"MachineSpecificTreatmentTerminationCodeSequence",vm:"1",version:"DICOM"},"(300A,0722)":{tag:"(300A,0722)",vr:"SQ",name:"RTRadiationSalvageRecordControlPointSequence",vm:"1",version:"DICOM"},"(300A,0723)":{tag:"(300A,0723)",vr:"CS",name:"StartingMetersetValueKnownFlag",vm:"1",version:"DICOM"},"(300A,0730)":{tag:"(300A,0730)",vr:"ST",name:"TreatmentTerminationDescription",vm:"1",version:"DICOM"},"(300A,0731)":{tag:"(300A,0731)",vr:"SQ",name:"TreatmentToleranceViolationSequence",vm:"1",version:"DICOM"},"(300A,0732)":{tag:"(300A,0732)",vr:"CS",name:"TreatmentToleranceViolationCategory",vm:"1",version:"DICOM"},"(300A,0733)":{tag:"(300A,0733)",vr:"SQ",name:"TreatmentToleranceViolationAttributeSequence",vm:"1",version:"DICOM"},"(300A,0734)":{tag:"(300A,0734)",vr:"ST",name:"TreatmentToleranceViolationDescription",vm:"1",version:"DICOM"},"(300A,0735)":{tag:"(300A,0735)",vr:"ST",name:"TreatmentToleranceViolationIdentification",vm:"1",version:"DICOM"},"(300A,0736)":{tag:"(300A,0736)",vr:"DT",name:"TreatmentToleranceViolationDateTime",vm:"1",version:"DICOM"},"(300A,073A)":{tag:"(300A,073A)",vr:"DT",name:"RecordedRTControlPointDateTime",vm:"1",version:"DICOM"},"(300A,073B)":{tag:"(300A,073B)",vr:"US",name:"ReferencedRadiationRTControlPointIndex",vm:"1",version:"DICOM"},"(300A,073E)":{tag:"(300A,073E)",vr:"SQ",name:"AlternateValueSequence",vm:"1",version:"DICOM"},"(300A,073F)":{tag:"(300A,073F)",vr:"SQ",name:"ConfirmationSequence",vm:"1",version:"DICOM"},"(300A,0740)":{tag:"(300A,0740)",vr:"SQ",name:"InterlockSequence",vm:"1",version:"DICOM"},"(300A,0741)":{tag:"(300A,0741)",vr:"DT",name:"InterlockDateTime",vm:"1",version:"DICOM"},"(300A,0742)":{tag:"(300A,0742)",vr:"ST",name:"InterlockDescription",vm:"1",version:"DICOM"},"(300A,0743)":{tag:"(300A,0743)",vr:"SQ",name:"InterlockOriginatingDeviceSequence",vm:"1",version:"DICOM"},"(300A,0744)":{tag:"(300A,0744)",vr:"SQ",name:"InterlockCodeSequence",vm:"1",version:"DICOM"},"(300A,0745)":{tag:"(300A,0745)",vr:"SQ",name:"InterlockResolutionCodeSequence",vm:"1",version:"DICOM"},"(300A,0746)":{tag:"(300A,0746)",vr:"SQ",name:"InterlockResolutionUserSequence",vm:"1",version:"DICOM"},"(300A,0760)":{tag:"(300A,0760)",vr:"DT",name:"OverrideDateTime",vm:"1",version:"DICOM"},"(300A,0761)":{tag:"(300A,0761)",vr:"SQ",name:"TreatmentToleranceViolationTypeCodeSequence",vm:"1",version:"DICOM"},"(300A,0762)":{tag:"(300A,0762)",vr:"SQ",name:"TreatmentToleranceViolationCauseCodeSequence",vm:"1",version:"DICOM"},"(300A,0772)":{tag:"(300A,0772)",vr:"SQ",name:"MeasuredMetersetToDoseMappingSequence",vm:"1",version:"DICOM"},"(300A,0773)":{tag:"(300A,0773)",vr:"US",name:"ReferencedExpectedInVivoMeasurementValueIndex",vm:"1",version:"DICOM"},"(300A,0774)":{tag:"(300A,0774)",vr:"SQ",name:"DoseMeasurementDeviceCodeSequence",vm:"1",version:"DICOM"},"(300A,0780)":{tag:"(300A,0780)",vr:"SQ",name:"AdditionalParameterRecordingInstanceSequence",vm:"1",version:"DICOM"},"(300A,0783)":{tag:"(300A,0783)",vr:"ST",name:"InterlockOriginDescription",vm:"1",version:"DICOM"},"(300C,0002)":{tag:"(300C,0002)",vr:"SQ",name:"ReferencedRTPlanSequence",vm:"1",version:"DICOM"},"(300C,0004)":{tag:"(300C,0004)",vr:"SQ",name:"ReferencedBeamSequence",vm:"1",version:"DICOM"},"(300C,0006)":{tag:"(300C,0006)",vr:"IS",name:"ReferencedBeamNumber",vm:"1",version:"DICOM"},"(300C,0007)":{tag:"(300C,0007)",vr:"IS",name:"ReferencedReferenceImageNumber",vm:"1",version:"DICOM"},"(300C,0008)":{tag:"(300C,0008)",vr:"DS",name:"StartCumulativeMetersetWeight",vm:"1",version:"DICOM"},"(300C,0009)":{tag:"(300C,0009)",vr:"DS",name:"EndCumulativeMetersetWeight",vm:"1",version:"DICOM"},"(300C,000A)":{tag:"(300C,000A)",vr:"SQ",name:"ReferencedBrachyApplicationSetupSequence",vm:"1",version:"DICOM"},"(300C,000C)":{tag:"(300C,000C)",vr:"IS",name:"ReferencedBrachyApplicationSetupNumber",vm:"1",version:"DICOM"},"(300C,000E)":{tag:"(300C,000E)",vr:"IS",name:"ReferencedSourceNumber",vm:"1",version:"DICOM"},"(300C,0020)":{tag:"(300C,0020)",vr:"SQ",name:"ReferencedFractionGroupSequence",vm:"1",version:"DICOM"},"(300C,0022)":{tag:"(300C,0022)",vr:"IS",name:"ReferencedFractionGroupNumber",vm:"1",version:"DICOM"},"(300C,0040)":{tag:"(300C,0040)",vr:"SQ",name:"ReferencedVerificationImageSequence",vm:"1",version:"DICOM"},"(300C,0042)":{tag:"(300C,0042)",vr:"SQ",name:"ReferencedReferenceImageSequence",vm:"1",version:"DICOM"},"(300C,0050)":{tag:"(300C,0050)",vr:"SQ",name:"ReferencedDoseReferenceSequence",vm:"1",version:"DICOM"},"(300C,0051)":{tag:"(300C,0051)",vr:"IS",name:"ReferencedDoseReferenceNumber",vm:"1",version:"DICOM"},"(300C,0055)":{tag:"(300C,0055)",vr:"SQ",name:"BrachyReferencedDoseReferenceSequence",vm:"1",version:"DICOM"},"(300C,0060)":{tag:"(300C,0060)",vr:"SQ",name:"ReferencedStructureSetSequence",vm:"1",version:"DICOM"},"(300C,006A)":{tag:"(300C,006A)",vr:"IS",name:"ReferencedPatientSetupNumber",vm:"1",version:"DICOM"},"(300C,0080)":{tag:"(300C,0080)",vr:"SQ",name:"ReferencedDoseSequence",vm:"1",version:"DICOM"},"(300C,00A0)":{tag:"(300C,00A0)",vr:"IS",name:"ReferencedToleranceTableNumber",vm:"1",version:"DICOM"},"(300C,00B0)":{tag:"(300C,00B0)",vr:"SQ",name:"ReferencedBolusSequence",vm:"1",version:"DICOM"},"(300C,00C0)":{tag:"(300C,00C0)",vr:"IS",name:"ReferencedWedgeNumber",vm:"1",version:"DICOM"},"(300C,00D0)":{tag:"(300C,00D0)",vr:"IS",name:"ReferencedCompensatorNumber",vm:"1",version:"DICOM"},"(300C,00E0)":{tag:"(300C,00E0)",vr:"IS",name:"ReferencedBlockNumber",vm:"1",version:"DICOM"},"(300C,00F0)":{tag:"(300C,00F0)",vr:"IS",name:"ReferencedControlPointIndex",vm:"1",version:"DICOM"},"(300C,00F2)":{tag:"(300C,00F2)",vr:"SQ",name:"ReferencedControlPointSequence",vm:"1",version:"DICOM"},"(300C,00F4)":{tag:"(300C,00F4)",vr:"IS",name:"ReferencedStartControlPointIndex",vm:"1",version:"DICOM"},"(300C,00F6)":{tag:"(300C,00F6)",vr:"IS",name:"ReferencedStopControlPointIndex",vm:"1",version:"DICOM"},"(300C,0100)":{tag:"(300C,0100)",vr:"IS",name:"ReferencedRangeShifterNumber",vm:"1",version:"DICOM"},"(300C,0102)":{tag:"(300C,0102)",vr:"IS",name:"ReferencedLateralSpreadingDeviceNumber",vm:"1",version:"DICOM"},"(300C,0104)":{tag:"(300C,0104)",vr:"IS",name:"ReferencedRangeModulatorNumber",vm:"1",version:"DICOM"},"(300C,0111)":{tag:"(300C,0111)",vr:"SQ",name:"OmittedBeamTaskSequence",vm:"1",version:"DICOM"},"(300C,0112)":{tag:"(300C,0112)",vr:"CS",name:"ReasonForOmission",vm:"1",version:"DICOM"},"(300C,0113)":{tag:"(300C,0113)",vr:"LO",name:"ReasonForOmissionDescription",vm:"1",version:"DICOM"},"(300E,0002)":{tag:"(300E,0002)",vr:"CS",name:"ApprovalStatus",vm:"1",version:"DICOM"},"(300E,0004)":{tag:"(300E,0004)",vr:"DA",name:"ReviewDate",vm:"1",version:"DICOM"},"(300E,0005)":{tag:"(300E,0005)",vr:"TM",name:"ReviewTime",vm:"1",version:"DICOM"},"(300E,0008)":{tag:"(300E,0008)",vr:"PN",name:"ReviewerName",vm:"1",version:"DICOM"},"(4010,0001)":{tag:"(4010,0001)",vr:"CS",name:"LowEnergyDetectors",vm:"1",version:"DICOM/DICOS"},"(4010,0002)":{tag:"(4010,0002)",vr:"CS",name:"HighEnergyDetectors",vm:"1",version:"DICOM/DICOS"},"(4010,0004)":{tag:"(4010,0004)",vr:"SQ",name:"DetectorGeometrySequence",vm:"1",version:"DICOM/DICOS"},"(4010,1001)":{tag:"(4010,1001)",vr:"SQ",name:"ThreatROIVoxelSequence",vm:"1",version:"DICOM/DICOS"},"(4010,1004)":{tag:"(4010,1004)",vr:"FL",name:"ThreatROIBase",vm:"3",version:"DICOM/DICOS"},"(4010,1005)":{tag:"(4010,1005)",vr:"FL",name:"ThreatROIExtents",vm:"3",version:"DICOM/DICOS"},"(4010,1006)":{tag:"(4010,1006)",vr:"OB",name:"ThreatROIBitmap",vm:"1",version:"DICOM/DICOS"},"(4010,1007)":{tag:"(4010,1007)",vr:"SH",name:"RouteSegmentID",vm:"1",version:"DICOM/DICOS"},"(4010,1008)":{tag:"(4010,1008)",vr:"CS",name:"GantryType",vm:"1",version:"DICOM/DICOS"},"(4010,1009)":{tag:"(4010,1009)",vr:"CS",name:"OOIOwnerType",vm:"1",version:"DICOM/DICOS"},"(4010,100A)":{tag:"(4010,100A)",vr:"SQ",name:"RouteSegmentSequence",vm:"1",version:"DICOM/DICOS"},"(4010,1010)":{tag:"(4010,1010)",vr:"US",name:"PotentialThreatObjectID",vm:"1",version:"DICOM/DICOS"},"(4010,1011)":{tag:"(4010,1011)",vr:"SQ",name:"ThreatSequence",vm:"1",version:"DICOM/DICOS"},"(4010,1012)":{tag:"(4010,1012)",vr:"CS",name:"ThreatCategory",vm:"1",version:"DICOM/DICOS"},"(4010,1013)":{tag:"(4010,1013)",vr:"LT",name:"ThreatCategoryDescription",vm:"1",version:"DICOM/DICOS"},"(4010,1014)":{tag:"(4010,1014)",vr:"CS",name:"ATDAbilityAssessment",vm:"1",version:"DICOM/DICOS"},"(4010,1015)":{tag:"(4010,1015)",vr:"CS",name:"ATDAssessmentFlag",vm:"1",version:"DICOM/DICOS"},"(4010,1016)":{tag:"(4010,1016)",vr:"FL",name:"ATDAssessmentProbability",vm:"1",version:"DICOM/DICOS"},"(4010,1017)":{tag:"(4010,1017)",vr:"FL",name:"Mass",vm:"1",version:"DICOM/DICOS"},"(4010,1018)":{tag:"(4010,1018)",vr:"FL",name:"Density",vm:"1",version:"DICOM/DICOS"},"(4010,1019)":{tag:"(4010,1019)",vr:"FL",name:"ZEffective",vm:"1",version:"DICOM/DICOS"},"(4010,101A)":{tag:"(4010,101A)",vr:"SH",name:"BoardingPassID",vm:"1",version:"DICOM/DICOS"},"(4010,101B)":{tag:"(4010,101B)",vr:"FL",name:"CenterOfMass",vm:"3",version:"DICOM/DICOS"},"(4010,101C)":{tag:"(4010,101C)",vr:"FL",name:"CenterOfPTO",vm:"3",version:"DICOM/DICOS"},"(4010,101D)":{tag:"(4010,101D)",vr:"FL",name:"BoundingPolygon",vm:"6-n",version:"DICOM/DICOS"},"(4010,101E)":{tag:"(4010,101E)",vr:"SH",name:"RouteSegmentStartLocationID",vm:"1",version:"DICOM/DICOS"},"(4010,101F)":{tag:"(4010,101F)",vr:"SH",name:"RouteSegmentEndLocationID",vm:"1",version:"DICOM/DICOS"},"(4010,1020)":{tag:"(4010,1020)",vr:"CS",name:"RouteSegmentLocationIDType",vm:"1",version:"DICOM/DICOS"},"(4010,1021)":{tag:"(4010,1021)",vr:"CS",name:"AbortReason",vm:"1-n",version:"DICOM/DICOS"},"(4010,1023)":{tag:"(4010,1023)",vr:"FL",name:"VolumeOfPTO",vm:"1",version:"DICOM/DICOS"},"(4010,1024)":{tag:"(4010,1024)",vr:"CS",name:"AbortFlag",vm:"1",version:"DICOM/DICOS"},"(4010,1025)":{tag:"(4010,1025)",vr:"DT",name:"RouteSegmentStartTime",vm:"1",version:"DICOM/DICOS"},"(4010,1026)":{tag:"(4010,1026)",vr:"DT",name:"RouteSegmentEndTime",vm:"1",version:"DICOM/DICOS"},"(4010,1027)":{tag:"(4010,1027)",vr:"CS",name:"TDRType",vm:"1",version:"DICOM/DICOS"},"(4010,1028)":{tag:"(4010,1028)",vr:"CS",name:"InternationalRouteSegment",vm:"1",version:"DICOM/DICOS"},"(4010,1029)":{tag:"(4010,1029)",vr:"LO",name:"ThreatDetectionAlgorithmandVersion",vm:"1-n",version:"DICOM/DICOS"},"(4010,102A)":{tag:"(4010,102A)",vr:"SH",name:"AssignedLocation",vm:"1",version:"DICOM/DICOS"},"(4010,102B)":{tag:"(4010,102B)",vr:"DT",name:"AlarmDecisionTime",vm:"1",version:"DICOM/DICOS"},"(4010,1031)":{tag:"(4010,1031)",vr:"CS",name:"AlarmDecision",vm:"1",version:"DICOM/DICOS"},"(4010,1033)":{tag:"(4010,1033)",vr:"US",name:"NumberOfTotalObjects",vm:"1",version:"DICOM/DICOS"},"(4010,1034)":{tag:"(4010,1034)",vr:"US",name:"NumberOfAlarmObjects",vm:"1",version:"DICOM/DICOS"},"(4010,1037)":{tag:"(4010,1037)",vr:"SQ",name:"PTORepresentationSequence",vm:"1",version:"DICOM/DICOS"},"(4010,1038)":{tag:"(4010,1038)",vr:"SQ",name:"ATDAssessmentSequence",vm:"1",version:"DICOM/DICOS"},"(4010,1039)":{tag:"(4010,1039)",vr:"CS",name:"TIPType",vm:"1",version:"DICOM/DICOS"},"(4010,103A)":{tag:"(4010,103A)",vr:"CS",name:"DICOSVersion",vm:"1",version:"DICOM/DICOS"},"(4010,1041)":{tag:"(4010,1041)",vr:"DT",name:"OOIOwnerCreationTime",vm:"1",version:"DICOM/DICOS"},"(4010,1042)":{tag:"(4010,1042)",vr:"CS",name:"OOIType",vm:"1",version:"DICOM/DICOS"},"(4010,1043)":{tag:"(4010,1043)",vr:"FL",name:"OOISize",vm:"3",version:"DICOM/DICOS"},"(4010,1044)":{tag:"(4010,1044)",vr:"CS",name:"AcquisitionStatus",vm:"1",version:"DICOM/DICOS"},"(4010,1045)":{tag:"(4010,1045)",vr:"SQ",name:"BasisMaterialsCodeSequence",vm:"1",version:"DICOM/DICOS"},"(4010,1046)":{tag:"(4010,1046)",vr:"CS",name:"PhantomType",vm:"1",version:"DICOM/DICOS"},"(4010,1047)":{tag:"(4010,1047)",vr:"SQ",name:"OOIOwnerSequence",vm:"1",version:"DICOM/DICOS"},"(4010,1048)":{tag:"(4010,1048)",vr:"CS",name:"ScanType",vm:"1",version:"DICOM/DICOS"},"(4010,1051)":{tag:"(4010,1051)",vr:"LO",name:"ItineraryID",vm:"1",version:"DICOM/DICOS"},"(4010,1052)":{tag:"(4010,1052)",vr:"SH",name:"ItineraryIDType",vm:"1",version:"DICOM/DICOS"},"(4010,1053)":{tag:"(4010,1053)",vr:"LO",name:"ItineraryIDAssigningAuthority",vm:"1",version:"DICOM/DICOS"},"(4010,1054)":{tag:"(4010,1054)",vr:"SH",name:"RouteID",vm:"1",version:"DICOM/DICOS"},"(4010,1055)":{tag:"(4010,1055)",vr:"SH",name:"RouteIDAssigningAuthority",vm:"1",version:"DICOM/DICOS"},"(4010,1056)":{tag:"(4010,1056)",vr:"CS",name:"InboundArrivalType",vm:"1",version:"DICOM/DICOS"},"(4010,1058)":{tag:"(4010,1058)",vr:"SH",name:"CarrierID",vm:"1",version:"DICOM/DICOS"},"(4010,1059)":{tag:"(4010,1059)",vr:"CS",name:"CarrierIDAssigningAuthority",vm:"1",version:"DICOM/DICOS"},"(4010,1060)":{tag:"(4010,1060)",vr:"FL",name:"SourceOrientation",vm:"3",version:"DICOM/DICOS"},"(4010,1061)":{tag:"(4010,1061)",vr:"FL",name:"SourcePosition",vm:"3",version:"DICOM/DICOS"},"(4010,1062)":{tag:"(4010,1062)",vr:"FL",name:"BeltHeight",vm:"1",version:"DICOM/DICOS"},"(4010,1064)":{tag:"(4010,1064)",vr:"SQ",name:"AlgorithmRoutingCodeSequence",vm:"1",version:"DICOM/DICOS"},"(4010,1067)":{tag:"(4010,1067)",vr:"CS",name:"TransportClassification",vm:"1",version:"DICOM/DICOS"},"(4010,1068)":{tag:"(4010,1068)",vr:"LT",name:"OOITypeDescriptor",vm:"1",version:"DICOM/DICOS"},"(4010,1069)":{tag:"(4010,1069)",vr:"FL",name:"TotalProcessingTime",vm:"1",version:"DICOM/DICOS"},"(4010,106C)":{tag:"(4010,106C)",vr:"OB",name:"DetectorCalibrationData",vm:"1",version:"DICOM/DICOS"},"(4010,106D)":{tag:"(4010,106D)",vr:"CS",name:"AdditionalScreeningPerformed",vm:"1",version:"DICOM/DICOS"},"(4010,106E)":{tag:"(4010,106E)",vr:"CS",name:"AdditionalInspectionSelectionCriteria",vm:"1",version:"DICOM/DICOS"},"(4010,106F)":{tag:"(4010,106F)",vr:"SQ",name:"AdditionalInspectionMethodSequence",vm:"1",version:"DICOM/DICOS"},"(4010,1070)":{tag:"(4010,1070)",vr:"CS",name:"AITDeviceType",vm:"1",version:"DICOM/DICOS"},"(4010,1071)":{tag:"(4010,1071)",vr:"SQ",name:"QRMeasurementsSequence",vm:"1",version:"DICOM/DICOS"},"(4010,1072)":{tag:"(4010,1072)",vr:"SQ",name:"TargetMaterialSequence",vm:"1",version:"DICOM/DICOS"},"(4010,1073)":{tag:"(4010,1073)",vr:"FD",name:"SNRThreshold",vm:"1",version:"DICOM/DICOS"},"(4010,1075)":{tag:"(4010,1075)",vr:"DS",name:"ImageScaleRepresentation",vm:"1",version:"DICOM/DICOS"},"(4010,1076)":{tag:"(4010,1076)",vr:"SQ",name:"ReferencedPTOSequence",vm:"1",version:"DICOM/DICOS"},"(4010,1077)":{tag:"(4010,1077)",vr:"SQ",name:"ReferencedTDRInstanceSequence",vm:"1",version:"DICOM/DICOS"},"(4010,1078)":{tag:"(4010,1078)",vr:"ST",name:"PTOLocationDescription",vm:"1",version:"DICOM/DICOS"},"(4010,1079)":{tag:"(4010,1079)",vr:"SQ",name:"AnomalyLocatorIndicatorSequence",vm:"1",version:"DICOM/DICOS"},"(4010,107A)":{tag:"(4010,107A)",vr:"FL",name:"AnomalyLocatorIndicator",vm:"3",version:"DICOM/DICOS"},"(4010,107B)":{tag:"(4010,107B)",vr:"SQ",name:"PTORegionSequence",vm:"1",version:"DICOM/DICOS"},"(4010,107C)":{tag:"(4010,107C)",vr:"CS",name:"InspectionSelectionCriteria",vm:"1",version:"DICOM/DICOS"},"(4010,107D)":{tag:"(4010,107D)",vr:"SQ",name:"SecondaryInspectionMethodSequence",vm:"1",version:"DICOM/DICOS"},"(4010,107E)":{tag:"(4010,107E)",vr:"DS",name:"PRCSToRCSOrientation",vm:"6",version:"DICOM/DICOS"},"(3010,0001)":{tag:"(3010,0001)",vr:"SQ",name:"RadiobiologicalDoseEffectSequence",vm:"1",version:"DICOM"},"(3010,0002)":{tag:"(3010,0002)",vr:"CS",name:"RadiobiologicalDoseEffectFlag",vm:"1",version:"DICOM"},"(3010,0003)":{tag:"(3010,0003)",vr:"SQ",name:"EffectiveDoseCalculationMethodCategoryCodeSequence",vm:"1",version:"DICOM"},"(3010,0004)":{tag:"(3010,0004)",vr:"SQ",name:"EffectiveDoseCalculationMethodCodeSequence",vm:"1",version:"DICOM"},"(3010,0005)":{tag:"(3010,0005)",vr:"LO",name:"EffectiveDoseCalculationMethodDescription",vm:"1",version:"DICOM"},"(3010,0006)":{tag:"(3010,0006)",vr:"UI",name:"ConceptualVolumeUID",vm:"1",version:"DICOM"},"(3010,0007)":{tag:"(3010,0007)",vr:"SQ",name:"OriginatingSOPInstanceReferenceSequence",vm:"1",version:"DICOM"},"(3010,0008)":{tag:"(3010,0008)",vr:"SQ",name:"ConceptualVolumeConstituentSequence",vm:"1",version:"DICOM"},"(3010,0009)":{tag:"(3010,0009)",vr:"SQ",name:"EquivalentConceptualVolumeInstanceReferenceSequence",vm:"1",version:"DICOM"},"(3010,000A)":{tag:"(3010,000A)",vr:"SQ",name:"EquivalentConceptualVolumesSequence",vm:"1",version:"DICOM"},"(3010,000B)":{tag:"(3010,000B)",vr:"UI",name:"ReferencedConceptualVolumeUID",vm:"1",version:"DICOM"},"(3010,000C)":{tag:"(3010,000C)",vr:"UT",name:"ConceptualVolumeCombinationExpression",vm:"1",version:"DICOM"},"(3010,000D)":{tag:"(3010,000D)",vr:"US",name:"ConceptualVolumeConstituentIndex",vm:"1",version:"DICOM"},"(3010,000E)":{tag:"(3010,000E)",vr:"CS",name:"ConceptualVolumeCombinationFlag",vm:"1",version:"DICOM"},"(3010,000F)":{tag:"(3010,000F)",vr:"ST",name:"ConceptualVolumeCombinationDescription",vm:"1",version:"DICOM"},"(3010,0010)":{tag:"(3010,0010)",vr:"CS",name:"ConceptualVolumeSegmentationDefinedFlag",vm:"1",version:"DICOM"},"(3010,0011)":{tag:"(3010,0011)",vr:"SQ",name:"ConceptualVolumeSegmentationReferenceSequence",vm:"1",version:"DICOM"},"(3010,0012)":{tag:"(3010,0012)",vr:"SQ",name:"ConceptualVolumeConstituentSegmentationReferenceSequence",vm:"1",version:"DICOM"},"(3010,0013)":{tag:"(3010,0013)",vr:"UI",name:"ConstituentConceptualVolumeUID",vm:"1",version:"DICOM"},"(3010,0014)":{tag:"(3010,0014)",vr:"SQ",name:"DerivationConceptualVolumeSequence",vm:"1",version:"DICOM"},"(3010,0015)":{tag:"(3010,0015)",vr:"UI",name:"SourceConceptualVolumeUID",vm:"1",version:"DICOM"},"(3010,0016)":{tag:"(3010,0016)",vr:"SQ",name:"ConceptualVolumeDerivationAlgorithmSequence",vm:"1",version:"DICOM"},"(3010,0017)":{tag:"(3010,0017)",vr:"ST",name:"ConceptualVolumeDescription",vm:"1",version:"DICOM"},"(3010,0018)":{tag:"(3010,0018)",vr:"SQ",name:"SourceConceptualVolumeSequence",vm:"1",version:"DICOM"},"(3010,0019)":{tag:"(3010,0019)",vr:"SQ",name:"AuthorIdentificationSequence",vm:"1",version:"DICOM"},"(3010,001A)":{tag:"(3010,001A)",vr:"LO",name:"ManufacturerModelVersion",vm:"1",version:"DICOM"},"(3010,001B)":{tag:"(3010,001B)",vr:"UC",name:"DeviceAlternateIdentifier",vm:"1",version:"DICOM"},"(3010,001C)":{tag:"(3010,001C)",vr:"CS",name:"DeviceAlternateIdentifierType",vm:"1",version:"DICOM"},"(3010,001D)":{tag:"(3010,001D)",vr:"LT",name:"DeviceAlternateIdentifierFormat",vm:"1",version:"DICOM"},"(3010,001E)":{tag:"(3010,001E)",vr:"LO",name:"SegmentationCreationTemplateLabel",vm:"1",version:"DICOM"},"(3010,001F)":{tag:"(3010,001F)",vr:"UI",name:"SegmentationTemplateUID",vm:"1",version:"DICOM"},"(3010,0020)":{tag:"(3010,0020)",vr:"US",name:"ReferencedSegmentReferenceIndex",vm:"1",version:"DICOM"},"(3010,0021)":{tag:"(3010,0021)",vr:"SQ",name:"SegmentReferenceSequence",vm:"1",version:"DICOM"},"(3010,0022)":{tag:"(3010,0022)",vr:"US",name:"SegmentReferenceIndex",vm:"1",version:"DICOM"},"(3010,0023)":{tag:"(3010,0023)",vr:"SQ",name:"DirectSegmentReferenceSequence",vm:"1",version:"DICOM"},"(3010,0024)":{tag:"(3010,0024)",vr:"SQ",name:"CombinationSegmentReferenceSequence",vm:"1",version:"DICOM"},"(3010,0025)":{tag:"(3010,0025)",vr:"SQ",name:"ConceptualVolumeSequence",vm:"1",version:"DICOM"},"(3010,0026)":{tag:"(3010,0026)",vr:"SQ",name:"SegmentedRTAccessoryDeviceSequence",vm:"1",version:"DICOM"},"(3010,0027)":{tag:"(3010,0027)",vr:"SQ",name:"SegmentCharacteristicsSequence",vm:"1",version:"DICOM"},"(3010,0028)":{tag:"(3010,0028)",vr:"SQ",name:"RelatedSegmentCharacteristicsSequence",vm:"1",version:"DICOM"},"(3010,0029)":{tag:"(3010,0029)",vr:"US",name:"SegmentCharacteristicsPrecedence",vm:"1",version:"DICOM"},"(3010,002A)":{tag:"(3010,002A)",vr:"SQ",name:"RTSegmentAnnotationSequence",vm:"1",version:"DICOM"},"(3010,002B)":{tag:"(3010,002B)",vr:"SQ",name:"SegmentAnnotationCategoryCodeSequence",vm:"1",version:"DICOM"},"(3010,002C)":{tag:"(3010,002C)",vr:"SQ",name:"SegmentAnnotationTypeCodeSequence",vm:"1",version:"DICOM"},"(3010,002D)":{tag:"(3010,002D)",vr:"LO",name:"DeviceLabel",vm:"1",version:"DICOM"},"(3010,002E)":{tag:"(3010,002E)",vr:"SQ",name:"DeviceTypeCodeSequence",vm:"1",version:"DICOM"},"(3010,002F)":{tag:"(3010,002F)",vr:"SQ",name:"SegmentAnnotationTypeModifierCodeSequence",vm:"1",version:"DICOM"},"(3010,0030)":{tag:"(3010,0030)",vr:"SQ",name:"PatientEquipmentRelationshipCodeSequence",vm:"1",version:"DICOM"},"(3010,0031)":{tag:"(3010,0031)",vr:"UI",name:"ReferencedFiducialsUID",vm:"1",version:"DICOM"},"(3010,0032)":{tag:"(3010,0032)",vr:"SQ",name:"PatientTreatmentOrientationSequence",vm:"1",version:"DICOM"},"(3010,0033)":{tag:"(3010,0033)",vr:"SH",name:"UserContentLabel",vm:"1",version:"DICOM"},"(3010,0034)":{tag:"(3010,0034)",vr:"LO",name:"UserContentLongLabel",vm:"1",version:"DICOM"},"(3010,0035)":{tag:"(3010,0035)",vr:"SH",name:"EntityLabel",vm:"1",version:"DICOM"},"(3010,0036)":{tag:"(3010,0036)",vr:"LO",name:"EntityName",vm:"1",version:"DICOM"},"(3010,0037)":{tag:"(3010,0037)",vr:"ST",name:"EntityDescription",vm:"1",version:"DICOM"},"(3010,0038)":{tag:"(3010,0038)",vr:"LO",name:"EntityLongLabel",vm:"1",version:"DICOM"},"(3010,0039)":{tag:"(3010,0039)",vr:"US",name:"DeviceIndex",vm:"1",version:"DICOM"},"(3010,003A)":{tag:"(3010,003A)",vr:"US",name:"RTTreatmentPhaseIndex",vm:"1",version:"DICOM"},"(3010,003B)":{tag:"(3010,003B)",vr:"UI",name:"RTTreatmentPhaseUID",vm:"1",version:"DICOM"},"(3010,003C)":{tag:"(3010,003C)",vr:"US",name:"RTPrescriptionIndex",vm:"1",version:"DICOM"},"(3010,003D)":{tag:"(3010,003D)",vr:"US",name:"RTSegmentAnnotationIndex",vm:"1",version:"DICOM"},"(3010,003E)":{tag:"(3010,003E)",vr:"US",name:"BasisRTTreatmentPhaseIndex",vm:"1",version:"DICOM"},"(3010,003F)":{tag:"(3010,003F)",vr:"US",name:"RelatedRTTreatmentPhaseIndex",vm:"1",version:"DICOM"},"(3010,0040)":{tag:"(3010,0040)",vr:"US",name:"ReferencedRTTreatmentPhaseIndex",vm:"1",version:"DICOM"},"(3010,0041)":{tag:"(3010,0041)",vr:"US",name:"ReferencedRTPrescriptionIndex",vm:"1",version:"DICOM"},"(3010,0042)":{tag:"(3010,0042)",vr:"US",name:"ReferencedParentRTPrescriptionIndex",vm:"1",version:"DICOM"},"(3010,0043)":{tag:"(3010,0043)",vr:"ST",name:"ManufacturerDeviceIdentifier",vm:"1",version:"DICOM"},"(3010,0044)":{tag:"(3010,0044)",vr:"SQ",name:"InstanceLevelReferencedPerformedProcedureStepSequence",vm:"1",version:"DICOM"},"(3010,0045)":{tag:"(3010,0045)",vr:"CS",name:"RTTreatmentPhaseIntentPresenceFlag",vm:"1",version:"DICOM"},"(3010,0046)":{tag:"(3010,0046)",vr:"CS",name:"RadiotherapyTreatmentType",vm:"1",version:"DICOM"},"(3010,0047)":{tag:"(3010,0047)",vr:"CS",name:"TeletherapyRadiationType",vm:"1-n",version:"DICOM"},"(3010,0048)":{tag:"(3010,0048)",vr:"CS",name:"BrachytherapySourceType",vm:"1-n",version:"DICOM"},"(3010,0049)":{tag:"(3010,0049)",vr:"SQ",name:"ReferencedRTTreatmentPhaseSequence",vm:"1",version:"DICOM"},"(3010,004A)":{tag:"(3010,004A)",vr:"SQ",name:"ReferencedDirectSegmentInstanceSequence",vm:"1",version:"DICOM"},"(3010,004B)":{tag:"(3010,004B)",vr:"SQ",name:"IntendedRTTreatmentPhaseSequence",vm:"1",version:"DICOM"},"(3010,004C)":{tag:"(3010,004C)",vr:"DA",name:"IntendedPhaseStartDate",vm:"1",version:"DICOM"},"(3010,004D)":{tag:"(3010,004D)",vr:"DA",name:"IntendedPhaseEndDate",vm:"1",version:"DICOM"},"(3010,004E)":{tag:"(3010,004E)",vr:"SQ",name:"RTTreatmentPhaseIntervalSequence",vm:"1",version:"DICOM"},"(3010,004F)":{tag:"(3010,004F)",vr:"CS",name:"TemporalRelationshipIntervalAnchor",vm:"1",version:"DICOM"},"(3010,0050)":{tag:"(3010,0050)",vr:"FD",name:"MinimumNumberOfIntervalDays",vm:"1",version:"DICOM"},"(3010,0051)":{tag:"(3010,0051)",vr:"FD",name:"MaximumNumberOfIntervalDays",vm:"1",version:"DICOM"},"(3010,0052)":{tag:"(3010,0052)",vr:"UI",name:"PertinentSOPClassesInStudy",vm:"1-n",version:"DICOM"},"(3010,0053)":{tag:"(3010,0053)",vr:"UI",name:"PertinentSOPClassesInSeries",vm:"1-n",version:"DICOM"},"(3010,0054)":{tag:"(3010,0054)",vr:"LO",name:"RTPrescriptionLabel",vm:"1",version:"DICOM"},"(3010,0055)":{tag:"(3010,0055)",vr:"SQ",name:"RTPhysicianIntentPredecessorSequence",vm:"1",version:"DICOM"},"(3010,0056)":{tag:"(3010,0056)",vr:"LO",name:"RTTreatmentApproachLabel",vm:"1",version:"DICOM"},"(3010,0057)":{tag:"(3010,0057)",vr:"SQ",name:"RTPhysicianIntentSequence",vm:"1",version:"DICOM"},"(3010,0058)":{tag:"(3010,0058)",vr:"US",name:"RTPhysicianIntentIndex",vm:"1",version:"DICOM"},"(3010,0059)":{tag:"(3010,0059)",vr:"CS",name:"RTTreatmentIntentType",vm:"1",version:"DICOM"},"(3010,005A)":{tag:"(3010,005A)",vr:"UT",name:"RTPhysicianIntentNarrative",vm:"1",version:"DICOM"},"(3010,005B)":{tag:"(3010,005B)",vr:"SQ",name:"RTProtocolCodeSequence",vm:"1",version:"DICOM"},"(3010,005C)":{tag:"(3010,005C)",vr:"ST",name:"ReasonForSuperseding",vm:"1",version:"DICOM"},"(3010,005D)":{tag:"(3010,005D)",vr:"SQ",name:"RTDiagnosisCodeSequence",vm:"1",version:"DICOM"},"(3010,005E)":{tag:"(3010,005E)",vr:"US",name:"ReferencedRTPhysicianIntentIndex",vm:"1",version:"DICOM"},"(3010,005F)":{tag:"(3010,005F)",vr:"SQ",name:"RTPhysicianIntentInputInstanceSequence",vm:"1",version:"DICOM"},"(3010,0060)":{tag:"(3010,0060)",vr:"SQ",name:"RTAnatomicPrescriptionSequence",vm:"1",version:"DICOM"},"(3010,0061)":{tag:"(3010,0061)",vr:"UT",name:"PriorTreatmentDoseDescription",vm:"1",version:"DICOM"},"(3010,0062)":{tag:"(3010,0062)",vr:"SQ",name:"PriorTreatmentReferenceSequence",vm:"1",version:"DICOM"},"(3010,0063)":{tag:"(3010,0063)",vr:"CS",name:"DosimetricObjectiveEvaluationScope",vm:"1",version:"DICOM"},"(3010,0064)":{tag:"(3010,0064)",vr:"SQ",name:"TherapeuticRoleCategoryCodeSequence",vm:"1",version:"DICOM"},"(3010,0065)":{tag:"(3010,0065)",vr:"SQ",name:"TherapeuticRoleTypeCodeSequence",vm:"1",version:"DICOM"},"(3010,0066)":{tag:"(3010,0066)",vr:"US",name:"ConceptualVolumeOptimizationPrecedence",vm:"1",version:"DICOM"},"(3010,0067)":{tag:"(3010,0067)",vr:"SQ",name:"ConceptualVolumeCategoryCodeSequence",vm:"1",version:"DICOM"},"(3010,0068)":{tag:"(3010,0068)",vr:"CS",name:"ConceptualVolumeBlockingConstraint",vm:"1",version:"DICOM"},"(3010,0069)":{tag:"(3010,0069)",vr:"SQ",name:"ConceptualVolumeTypeCodeSequence",vm:"1",version:"DICOM"},"(3010,006A)":{tag:"(3010,006A)",vr:"SQ",name:"ConceptualVolumeTypeModifierCodeSequence",vm:"1",version:"DICOM"},"(3010,006B)":{tag:"(3010,006B)",vr:"SQ",name:"RTPrescriptionSequence",vm:"1",version:"DICOM"},"(3010,006C)":{tag:"(3010,006C)",vr:"SQ",name:"DosimetricObjectiveSequence",vm:"1",version:"DICOM"},"(3010,006D)":{tag:"(3010,006D)",vr:"SQ",name:"DosimetricObjectiveTypeCodeSequence",vm:"1",version:"DICOM"},"(3010,006E)":{tag:"(3010,006E)",vr:"UI",name:"DosimetricObjectiveUID",vm:"1",version:"DICOM"},"(3010,006F)":{tag:"(3010,006F)",vr:"UI",name:"ReferencedDosimetricObjectiveUID",vm:"1",version:"DICOM"},"(3010,0070)":{tag:"(3010,0070)",vr:"SQ",name:"DosimetricObjectiveParameterSequence",vm:"1",version:"DICOM"},"(3010,0071)":{tag:"(3010,0071)",vr:"SQ",name:"ReferencedDosimetricObjectivesSequence",vm:"1",version:"DICOM"},"(3010,0073)":{tag:"(3010,0073)",vr:"CS",name:"AbsoluteDosimetricObjectiveFlag",vm:"1",version:"DICOM"},"(3010,0074)":{tag:"(3010,0074)",vr:"FD",name:"DosimetricObjectiveWeight",vm:"1",version:"DICOM"},"(3010,0075)":{tag:"(3010,0075)",vr:"CS",name:"DosimetricObjectivePurpose",vm:"1",version:"DICOM"},"(3010,0076)":{tag:"(3010,0076)",vr:"SQ",name:"PlanningInputInformationSequence",vm:"1",version:"DICOM"},"(3010,0077)":{tag:"(3010,0077)",vr:"LO",name:"TreatmentSite",vm:"1",version:"DICOM"},"(3010,0078)":{tag:"(3010,0078)",vr:"SQ",name:"TreatmentSiteCodeSequence",vm:"1",version:"DICOM"},"(3010,0079)":{tag:"(3010,0079)",vr:"SQ",name:"FractionPatternSequence",vm:"1",version:"DICOM"},"(3010,007A)":{tag:"(3010,007A)",vr:"UT",name:"TreatmentTechniqueNotes",vm:"1",version:"DICOM"},"(3010,007B)":{tag:"(3010,007B)",vr:"UT",name:"PrescriptionNotes",vm:"1",version:"DICOM"},"(3010,007C)":{tag:"(3010,007C)",vr:"IS",name:"NumberOfIntervalFractions",vm:"1",version:"DICOM"},"(3010,007D)":{tag:"(3010,007D)",vr:"US",name:"NumberOfFractions",vm:"1",version:"DICOM"},"(3010,007E)":{tag:"(3010,007E)",vr:"US",name:"IntendedDeliveryDuration",vm:"1",version:"DICOM"},"(3010,007F)":{tag:"(3010,007F)",vr:"UT",name:"FractionationNotes",vm:"1",version:"DICOM"},"(3010,0080)":{tag:"(3010,0080)",vr:"SQ",name:"RTTreatmentTechniqueCodeSequence",vm:"1",version:"DICOM"},"(3010,0081)":{tag:"(3010,0081)",vr:"SQ",name:"PrescriptionNotesSequence",vm:"1",version:"DICOM"},"(3010,0082)":{tag:"(3010,0082)",vr:"SQ",name:"FractionBasedRelationshipSequence",vm:"1",version:"DICOM"},"(3010,0083)":{tag:"(3010,0083)",vr:"CS",name:"FractionBasedRelationshipIntervalAnchor",vm:"1",version:"DICOM"},"(3010,0084)":{tag:"(3010,0084)",vr:"FD",name:"MinimumHoursBetweenFractions",vm:"1",version:"DICOM"},"(3010,0085)":{tag:"(3010,0085)",vr:"TM",name:"IntendedFractionStartTime",vm:"1-n",version:"DICOM"},"(3010,0086)":{tag:"(3010,0086)",vr:"LT",name:"IntendedStartDayOfWeek",vm:"1",version:"DICOM"},"(3010,0087)":{tag:"(3010,0087)",vr:"SQ",name:"WeekdayFractionPatternSequence",vm:"1",version:"DICOM"},"(3010,0088)":{tag:"(3010,0088)",vr:"SQ",name:"DeliveryTimeStructureCodeSequence",vm:"1",version:"DICOM"},"(3010,0089)":{tag:"(3010,0089)",vr:"SQ",name:"TreatmentSiteModifierCodeSequence",vm:"1",version:"DICOM"},"(3010,0090)":{tag:"(3010,0090)",vr:"CS",name:"RoboticBaseLocationIndicator",vm:"1",version:"DICOM"},"(3010,0091)":{tag:"(3010,0091)",vr:"SQ",name:"RoboticPathNodeSetCodeSequence",vm:"1",version:"DICOM"},"(3010,0092)":{tag:"(3010,0092)",vr:"UL",name:"RoboticNodeIdentifier",vm:"1",version:"DICOM"},"(3010,0093)":{tag:"(3010,0093)",vr:"FD",name:"RTTreatmentSourceCoordinates",vm:"3",version:"DICOM"},"(3010,0094)":{tag:"(3010,0094)",vr:"FD",name:"RadiationSourceCoordinateSystemYawAngle",vm:"1",version:"DICOM"},"(3010,0095)":{tag:"(3010,0095)",vr:"FD",name:"RadiationSourceCoordinateSystemRollAngle",vm:"1",version:"DICOM"},"(3010,0096)":{tag:"(3010,0096)",vr:"FD",name:"RadiationSourceCoordinateSystemPitchAngle",vm:"1",version:"DICOM"},"(3010,0097)":{tag:"(3010,0097)",vr:"SQ",name:"RoboticPathControlPointSequence",vm:"1",version:"DICOM"},"(3010,0098)":{tag:"(3010,0098)",vr:"SQ",name:"TomotherapeuticControlPointSequence",vm:"1",version:"DICOM"},"(3010,0099)":{tag:"(3010,0099)",vr:"FD",name:"TomotherapeuticLeafOpenDurations",vm:"1-n",version:"DICOM"},"(3010,009A)":{tag:"(3010,009A)",vr:"FD",name:"TomotherapeuticLeafInitialClosedDurations",vm:"1-n",version:"DICOM"},"(4FFE,0001)":{tag:"(4FFE,0001)",vr:"SQ",name:"MACParametersSequence",vm:"1",version:"DICOM"},"(5200,9229)":{tag:"(5200,9229)",vr:"SQ",name:"SharedFunctionalGroupsSequence",vm:"1",version:"DICOM"},"(5200,9230)":{tag:"(5200,9230)",vr:"SQ",name:"PerFrameFunctionalGroupsSequence",vm:"1",version:"DICOM"},"(5400,0100)":{tag:"(5400,0100)",vr:"SQ",name:"WaveformSequence",vm:"1",version:"DICOM"},"(5400,0110)":{tag:"(5400,0110)",vr:"ox",name:"ChannelMinimumValue",vm:"1",version:"DICOM"},"(5400,0112)":{tag:"(5400,0112)",vr:"ox",name:"ChannelMaximumValue",vm:"1",version:"DICOM"},"(5400,1004)":{tag:"(5400,1004)",vr:"US",name:"WaveformBitsAllocated",vm:"1",version:"DICOM"},"(5400,1006)":{tag:"(5400,1006)",vr:"CS",name:"WaveformSampleInterpretation",vm:"1",version:"DICOM"},"(5400,100A)":{tag:"(5400,100A)",vr:"ox",name:"WaveformPaddingValue",vm:"1",version:"DICOM"},"(5400,1010)":{tag:"(5400,1010)",vr:"ox",name:"WaveformData",vm:"1",version:"DICOM"},"(5600,0010)":{tag:"(5600,0010)",vr:"OF",name:"FirstOrderPhaseCorrectionAngle",vm:"1",version:"DICOM"},"(5600,0020)":{tag:"(5600,0020)",vr:"OF",name:"SpectroscopyData",vm:"1",version:"DICOM"},"(6000-60FF,0010)":{tag:"(6000-60FF,0010)",vr:"US",name:"OverlayRows",vm:"1",version:"DICOM"},"(6000-60FF,0011)":{tag:"(6000-60FF,0011)",vr:"US",name:"OverlayColumns",vm:"1",version:"DICOM"},"(6000-60FF,0015)":{tag:"(6000-60FF,0015)",vr:"IS",name:"NumberOfFramesInOverlay",vm:"1",version:"DICOM"},"(6000-60FF,0022)":{tag:"(6000-60FF,0022)",vr:"LO",name:"OverlayDescription",vm:"1",version:"DICOM"},"(6000-60FF,0040)":{tag:"(6000-60FF,0040)",vr:"CS",name:"OverlayType",vm:"1",version:"DICOM"},"(6000-60FF,0045)":{tag:"(6000-60FF,0045)",vr:"LO",name:"OverlaySubtype",vm:"1",version:"DICOM"},"(6000-60FF,0050)":{tag:"(6000-60FF,0050)",vr:"SS",name:"OverlayOrigin",vm:"2",version:"DICOM"},"(6000-60FF,0051)":{tag:"(6000-60FF,0051)",vr:"US",name:"ImageFrameOrigin",vm:"1",version:"DICOM"},"(6000-60FF,0100)":{tag:"(6000-60FF,0100)",vr:"US",name:"OverlayBitsAllocated",vm:"1",version:"DICOM"},"(6000-60FF,0102)":{tag:"(6000-60FF,0102)",vr:"US",name:"OverlayBitPosition",vm:"1",version:"DICOM"},"(6000-60FF,1001)":{tag:"(6000-60FF,1001)",vr:"CS",name:"OverlayActivationLayer",vm:"1",version:"DICOM"},"(6000-60FF,1301)":{tag:"(6000-60FF,1301)",vr:"IS",name:"ROIArea",vm:"1",version:"DICOM"},"(6000-60FF,1302)":{tag:"(6000-60FF,1302)",vr:"DS",name:"ROIMean",vm:"1",version:"DICOM"},"(6000-60FF,1303)":{tag:"(6000-60FF,1303)",vr:"DS",name:"ROIStandardDeviation",vm:"1",version:"DICOM"},"(6000-60FF,1500)":{tag:"(6000-60FF,1500)",vr:"LO",name:"OverlayLabel",vm:"1",version:"DICOM"},"(6000-60FF,3000)":{tag:"(6000-60FF,3000)",vr:"ox",name:"OverlayData",vm:"1",version:"DICOM"},"(7FE0,0001)":{tag:"(7FE0,0001)",vr:"OV",name:"ExtendedOffsetTable",vm:"1",version:"DICOM"},"(7FE0,0002)":{tag:"(7FE0,0002)",vr:"OV",name:"ExtendedOffsetTableLengths",vm:"1",version:"DICOM"},"(7FE0,0008)":{tag:"(7FE0,0008)",vr:"OF",name:"FloatPixelData",vm:"1",version:"DICOM"},"(7FE0,0009)":{tag:"(7FE0,0009)",vr:"OD",name:"DoubleFloatPixelData",vm:"1",version:"DICOM"},"(7FE0,0010)":{tag:"(7FE0,0010)",vr:"ox",name:"PixelData",vm:"1",version:"DICOM"},"(FFFA,FFFA)":{tag:"(FFFA,FFFA)",vr:"SQ",name:"DigitalSignaturesSequence",vm:"1",version:"DICOM"},"(FFFC,FFFC)":{tag:"(FFFC,FFFC)",vr:"OB",name:"DataSetTrailingPadding",vm:"1",version:"DICOM"},"(FFFE,E000)":{tag:"(FFFE,E000)",vr:"na",name:"Item",vm:"1",version:"DICOM"},"(FFFE,E00D)":{tag:"(FFFE,E00D)",vr:"na",name:"ItemDelimitationItem",vm:"1",version:"DICOM"},"(FFFE,E0DD)":{tag:"(FFFE,E0DD)",vr:"na",name:"SequenceDelimitationItem",vm:"1",version:"DICOM"},"(0028,1224)":{tag:"(0028,1224)",vr:"OW",name:"SegmentedAlphaPaletteColorLookupTableData",vm:"1",version:"Supplement_156"},"(0070,1101)":{tag:"(0070,1101)",vr:"UI",name:"PresentationDisplayCollectionUID",vm:"1",version:"Supplement_156"},"(0070,1102)":{tag:"(0070,1102)",vr:"UI",name:"PresentationSequenceCollectionUID",vm:"1",version:"Supplement_156"},"(0070,1103)":{tag:"(0070,1103)",vr:"US",name:"PresentationSequencePositionIndex",vm:"1",version:"Supplement_156"},"(0070,1104)":{tag:"(0070,1104)",vr:"SQ",name:"RenderedImageReferenceSequence",vm:"1",version:"Supplement_156"},"(0070,1201)":{tag:"(0070,1201)",vr:"SQ",name:"VolumetricPresentationStateInputSequence",vm:"1",version:"Supplement_156"},"(0070,1202)":{tag:"(0070,1202)",vr:"CS",name:"PresentationInputType",vm:"1",version:"Supplement_156"},"(0070,1203)":{tag:"(0070,1203)",vr:"US",name:"InputSequencePositionIndex",vm:"1",version:"Supplement_156"},"(0070,1204)":{tag:"(0070,1204)",vr:"CS",name:"Crop",vm:"1",version:"Supplement_156"},"(0070,1205)":{tag:"(0070,1205)",vr:"US",name:"CroppingSpecificationIndex",vm:"1-n",version:"Supplement_156"},"(0070,1206)":{tag:"(0070,1206)",vr:"CS",name:"CompositingMethod",vm:"1",version:"Supplement_156"},"(0070,1207)":{tag:"(0070,1207)",vr:"US",name:"VolumetricPresentationInputNumber",vm:"1",version:"Supplement_156"},"(0070,1208)":{tag:"(0070,1208)",vr:"CS",name:"ImageVolumeGeometry",vm:"1",version:"Supplement_156"},"(0070,1301)":{tag:"(0070,1301)",vr:"SQ",name:"VolumeCroppingSequence",vm:"1",version:"Supplement_156"},"(0070,1302)":{tag:"(0070,1302)",vr:"CS",name:"VolumeCroppingMethod",vm:"1",version:"Supplement_156"},"(0070,1303)":{tag:"(0070,1303)",vr:"FD",name:"BoundingBoxCrop",vm:"6",version:"Supplement_156"},"(0070,1304)":{tag:"(0070,1304)",vr:"SQ",name:"ObliqueCroppingPlaneSequence",vm:"1",version:"Supplement_156"},"(0070,1305)":{tag:"(0070,1305)",vr:"FD",name:"ObliqueCroppingPlane",vm:"4",version:"Supplement_156"},"(0070,1306)":{tag:"(0070,1306)",vr:"FD",name:"ObliqueCroppingPlaneNormal",vm:"3",version:"Supplement_156"},"(0070,1309)":{tag:"(0070,1309)",vr:"US",name:"CroppingSpecificationNumber",vm:"1",version:"Supplement_156"},"(0070,1501)":{tag:"(0070,1501)",vr:"CS",name:"MultiPlanarReconstructionStyle",vm:"1",version:"Supplement_156"},"(0070,1502)":{tag:"(0070,1502)",vr:"CS",name:"MPRThicknessType",vm:"1",version:"Supplement_156"},"(0070,1503)":{tag:"(0070,1503)",vr:"FD",name:"MPRSlabThickness",vm:"1",version:"Supplement_156"},"(0070,1505)":{tag:"(0070,1505)",vr:"FD",name:"MPRTopLeftHandCorner",vm:"3",version:"Supplement_156"},"(0070,1507)":{tag:"(0070,1507)",vr:"FD",name:"MPRViewWidthDirection",vm:"3",version:"Supplement_156"},"(0070,1508)":{tag:"(0070,1508)",vr:"FD",name:"MPRViewWidth",vm:"1",version:"Supplement_156"},"(0070,150C)":{tag:"(0070,150C)",vr:"FL",name:"NumberOfVolumetricCurvePoints",vm:"1",version:"Supplement_156"},"(0070,150D)":{tag:"(0070,150D)",vr:"OD",name:"VolumetricCurvePoints",vm:"1",version:"Supplement_156"},"(0070,1511)":{tag:"(0070,1511)",vr:"FD",name:"MPRViewHeightDirection",vm:"3",version:"Supplement_156"},"(0070,1512)":{tag:"(0070,1512)",vr:"FD",name:"MPRViewHeight",vm:"1",version:"Supplement_156"},"(0070,1801)":{tag:"(0070,1801)",vr:"SQ",name:"PresentationStateClassificationComponentSequence",vm:"1",version:"Supplement_156"},"(0070,1802)":{tag:"(0070,1802)",vr:"CS",name:"ComponentType",vm:"1",version:"Supplement_156"},"(0070,1803)":{tag:"(0070,1803)",vr:"SQ",name:"ComponentInputSequence",vm:"1",version:"Supplement_156"},"(0070,1804)":{tag:"(0070,1804)",vr:"US",name:"VolumetricPresentationInputIndex",vm:"1",version:"Supplement_156"},"(0070,1805)":{tag:"(0070,1805)",vr:"SQ",name:"PresentationStateCompositorComponentSequence",vm:"1",version:"Supplement_156"},"(0070,1806)":{tag:"(0070,1806)",vr:"SQ",name:"WeightingTransferFunctionSequence",vm:"1",version:"Supplement_156"},"(0070,1807)":{tag:"(0070,1807)",vr:"US",name:"WeightingLookupTableDescriptor",vm:"3",version:"Supplement_156"},"(0070,1808)":{tag:"(0070,1808)",vr:"OB",name:"WeightingLookupTableData",vm:"1",version:"Supplement_156"},"(0070,1901)":{tag:"(0070,1901)",vr:"SQ",name:"VolumetricAnnotationSequence",vm:"1",version:"Supplement_156"},"(0070,1903)":{tag:"(0070,1903)",vr:"SQ",name:"ReferencedStructuredContextSequence",vm:"1",version:"Supplement_156"},"(0070,1904)":{tag:"(0070,1904)",vr:"UI",name:"ReferencedContentItem",vm:"1",version:"Supplement_156"},"(0070,1905)":{tag:"(0070,1905)",vr:"SQ",name:"VolumetricPresentationInputAnnotationSequence",vm:"1",version:"Supplement_156"},"(0070,1907)":{tag:"(0070,1907)",vr:"CS",name:"AnnotationClipping",vm:"1",version:"Supplement_156"},"(0070,1A01)":{tag:"(0070,1A01)",vr:"CS",name:"PresentationAnimationStyle",vm:"1",version:"Supplement_156"},"(0070,1A03)":{tag:"(0070,1A03)",vr:"FD",name:"RecommendedAnimationRate",vm:"1",version:"Supplement_156"},"(0070,1A04)":{tag:"(0070,1A04)",vr:"SQ",name:"AnimationCurveSequence",vm:"1",version:"Supplement_156"},"(0070,1A05)":{tag:"(0070,1A05)",vr:"FD",name:"AnimationStepSize",vm:"1",version:"Supplement_156"},"(0040,4070)":{tag:"(0040,4070)",vr:"SQ",name:"OutputDestinationSequence",vm:"1",version:"CP_1441"},"(0040,4071)":{tag:"(0040,4071)",vr:"SQ",name:"DICOMStorageSequence",vm:"1",version:"CP_1441"},"(0040,4072)":{tag:"(0040,4072)",vr:"SQ",name:"STOWRSStorageSequence",vm:"1",version:"CP_1441"},"(0040,4073)":{tag:"(0040,4073)",vr:"UR",name:"StorageURL",vm:"1",version:"CP_1441"},"(0040,4074)":{tag:"(0040,4074)",vr:"SQ",name:"XDSStorageSequence",vm:"1",version:"CP_1441"},"(0028,2002)":{tag:"(0028,2002)",vr:"CS",name:"ColorSpace",vm:"1",version:"CP_1454"},"(0040,9213)":{tag:"(0040,9213)",vr:"FD",name:"DoubleFloatRealWorldValueLastValueMapped",vm:"1",version:"CP_1458"},"(0040,9214)":{tag:"(0040,9214)",vr:"FD",name:"DoubleFloatRealWorldValueFirstValueMapped",vm:"1",version:"CP_1458"},"(0018,1320)":{tag:"(0018,1320)",vr:"FL",name:"B1rms",vm:"1",version:"CP_1461"},"(0009-o-FFFF,0000)":{tag:"(0009-o-FFFF,0000)",vr:"UL",name:"PrivateGroupLength",vm:"1",version:"PRIVATE"},"(0009-o-FFFF,0010-u-00FF)":{tag:"(0009-o-FFFF,0010-u-00FF)",vr:"LO",name:"PrivateCreator",vm:"1",version:"PRIVATE"},"(0001-o-0007,0000)":{tag:"(0001-o-0007,0000)",vr:"UL",name:"IllegalGroupLength",vm:"1",version:"ILLEGAL"},"(0001-o-0007,0010-u-00FF)":{tag:"(0001-o-0007,0010-u-00FF)",vr:"LO",name:"IllegalPrivateCreator",vm:"1",version:"ILLEGAL"},"(0000-u-FFFF,0000)":{tag:"(0000-u-FFFF,0000)",vr:"UL",name:"GenericGroupLength",vm:"1",version:"GENERIC"},"(0000,0001)":{tag:"(0000,0001)",vr:"UL",name:"RETIRED_CommandLengthToEnd",vm:"1",version:"DICOM/retired"},"(0000,0010)":{tag:"(0000,0010)",vr:"SH",name:"RETIRED_CommandRecognitionCode",vm:"1",version:"DICOM/retired"},"(0000,0200)":{tag:"(0000,0200)",vr:"AE",name:"RETIRED_Initiator",vm:"1",version:"DICOM/retired"},"(0000,0300)":{tag:"(0000,0300)",vr:"AE",name:"RETIRED_Receiver",vm:"1",version:"DICOM/retired"},"(0000,0400)":{tag:"(0000,0400)",vr:"AE",name:"RETIRED_FindLocation",vm:"1",version:"DICOM/retired"},"(0000,0850)":{tag:"(0000,0850)",vr:"US",name:"RETIRED_NumberOfMatches",vm:"1",version:"DICOM/retired"},"(0000,0860)":{tag:"(0000,0860)",vr:"US",name:"RETIRED_ResponseSequenceNumber",vm:"1",version:"DICOM/retired"},"(0000,4000)":{tag:"(0000,4000)",vr:"LT",name:"RETIRED_DialogReceiver",vm:"1",version:"DICOM/retired"},"(0000,4010)":{tag:"(0000,4010)",vr:"LT",name:"RETIRED_TerminalType",vm:"1",version:"DICOM/retired"},"(0000,5010)":{tag:"(0000,5010)",vr:"SH",name:"RETIRED_MessageSetID",vm:"1",version:"DICOM/retired"},"(0000,5020)":{tag:"(0000,5020)",vr:"SH",name:"RETIRED_EndMessageID",vm:"1",version:"DICOM/retired"},"(0000,5110)":{tag:"(0000,5110)",vr:"LT",name:"RETIRED_DisplayFormat",vm:"1",version:"DICOM/retired"},"(0000,5120)":{tag:"(0000,5120)",vr:"LT",name:"RETIRED_PagePositionID",vm:"1",version:"DICOM/retired"},"(0000,5130)":{tag:"(0000,5130)",vr:"CS",name:"RETIRED_TextFormatID",vm:"1",version:"DICOM/retired"},"(0000,5140)":{tag:"(0000,5140)",vr:"CS",name:"RETIRED_NormalReverse",vm:"1",version:"DICOM/retired"},"(0000,5150)":{tag:"(0000,5150)",vr:"CS",name:"RETIRED_AddGrayScale",vm:"1",version:"DICOM/retired"},"(0000,5160)":{tag:"(0000,5160)",vr:"CS",name:"RETIRED_Borders",vm:"1",version:"DICOM/retired"},"(0000,5170)":{tag:"(0000,5170)",vr:"IS",name:"RETIRED_Copies",vm:"1",version:"DICOM/retired"},"(0000,5180)":{tag:"(0000,5180)",vr:"CS",name:"RETIRED_CommandMagnificationType",vm:"1",version:"DICOM/retired"},"(0000,5190)":{tag:"(0000,5190)",vr:"CS",name:"RETIRED_Erase",vm:"1",version:"DICOM/retired"},"(0000,51A0)":{tag:"(0000,51A0)",vr:"CS",name:"RETIRED_Print",vm:"1",version:"DICOM/retired"},"(0000,51B0)":{tag:"(0000,51B0)",vr:"US",name:"RETIRED_Overlays",vm:"1-n",version:"DICOM/retired"},"(0004,1504)":{tag:"(0004,1504)",vr:"up",name:"RETIRED_MRDRDirectoryRecordOffset",vm:"1",version:"DICOM/retired"},"(0004,1600)":{tag:"(0004,1600)",vr:"UL",name:"RETIRED_NumberOfReferences",vm:"1",version:"DICOM/retired"},"(0008,0001)":{tag:"(0008,0001)",vr:"UL",name:"RETIRED_LengthToEnd",vm:"1",version:"DICOM/retired"},"(0008,0010)":{tag:"(0008,0010)",vr:"SH",name:"RETIRED_RecognitionCode",vm:"1",version:"DICOM/retired"},"(0008,0024)":{tag:"(0008,0024)",vr:"DA",name:"RETIRED_OverlayDate",vm:"1",version:"DICOM/retired"},"(0008,0025)":{tag:"(0008,0025)",vr:"DA",name:"RETIRED_CurveDate",vm:"1",version:"DICOM/retired"},"(0008,0034)":{tag:"(0008,0034)",vr:"TM",name:"RETIRED_OverlayTime",vm:"1",version:"DICOM/retired"},"(0008,0035)":{tag:"(0008,0035)",vr:"TM",name:"RETIRED_CurveTime",vm:"1",version:"DICOM/retired"},"(0008,0040)":{tag:"(0008,0040)",vr:"US",name:"RETIRED_DataSetType",vm:"1",version:"DICOM/retired"},"(0008,0041)":{tag:"(0008,0041)",vr:"LO",name:"RETIRED_DataSetSubtype",vm:"1",version:"DICOM/retired"},"(0008,0042)":{tag:"(0008,0042)",vr:"CS",name:"RETIRED_NuclearMedicineSeriesType",vm:"1",version:"DICOM/retired"},"(0008,1000)":{tag:"(0008,1000)",vr:"AE",name:"RETIRED_NetworkID",vm:"1",version:"DICOM/retired"},"(0008,1100)":{tag:"(0008,1100)",vr:"SQ",name:"RETIRED_ReferencedResultsSequence",vm:"1",version:"DICOM/retired"},"(0008,1130)":{tag:"(0008,1130)",vr:"SQ",name:"RETIRED_ReferencedOverlaySequence",vm:"1",version:"DICOM/retired"},"(0008,1145)":{tag:"(0008,1145)",vr:"SQ",name:"RETIRED_ReferencedCurveSequence",vm:"1",version:"DICOM/retired"},"(0008,2110)":{tag:"(0008,2110)",vr:"CS",name:"RETIRED_LossyImageCompressionRetired",vm:"1",version:"DICOM/retired"},"(0008,2200)":{tag:"(0008,2200)",vr:"CS",name:"RETIRED_TransducerPosition",vm:"1",version:"DICOM/retired"},"(0008,2204)":{tag:"(0008,2204)",vr:"CS",name:"RETIRED_TransducerOrientation",vm:"1",version:"DICOM/retired"},"(0008,2208)":{tag:"(0008,2208)",vr:"CS",name:"RETIRED_AnatomicStructure",vm:"1",version:"DICOM/retired"},"(0008,2240)":{tag:"(0008,2240)",vr:"SQ",name:"RETIRED_TransducerPositionSequence",vm:"1",version:"DICOM/retired"},"(0008,2242)":{tag:"(0008,2242)",vr:"SQ",name:"RETIRED_TransducerPositionModifierSequence",vm:"1",version:"DICOM/retired"},"(0008,2244)":{tag:"(0008,2244)",vr:"SQ",name:"RETIRED_TransducerOrientationSequence",vm:"1",version:"DICOM/retired"},"(0008,2246)":{tag:"(0008,2246)",vr:"SQ",name:"RETIRED_TransducerOrientationModifierSequence",vm:"1",version:"DICOM/retired"},"(0008,2251)":{tag:"(0008,2251)",vr:"SQ",name:"RETIRED_AnatomicStructureSpaceOrRegionCodeSequenceTrial",vm:"1",version:"DICOM/retired"},"(0008,2253)":{tag:"(0008,2253)",vr:"SQ",name:"RETIRED_AnatomicPortalOfEntranceCodeSequenceTrial",vm:"1",version:"DICOM/retired"},"(0008,2255)":{tag:"(0008,2255)",vr:"SQ",name:"RETIRED_AnatomicApproachDirectionCodeSequenceTrial",vm:"1",version:"DICOM/retired"},"(0008,2256)":{tag:"(0008,2256)",vr:"ST",name:"RETIRED_AnatomicPerspectiveDescriptionTrial",vm:"1",version:"DICOM/retired"},"(0008,2257)":{tag:"(0008,2257)",vr:"SQ",name:"RETIRED_AnatomicPerspectiveCodeSequenceTrial",vm:"1",version:"DICOM/retired"},"(0008,2258)":{tag:"(0008,2258)",vr:"ST",name:"RETIRED_AnatomicLocationOfExaminingInstrumentDescriptionTrial",vm:"1",version:"DICOM/retired"},"(0008,2259)":{tag:"(0008,2259)",vr:"SQ",name:"RETIRED_AnatomicLocationOfExaminingInstrumentCodeSequenceTrial",vm:"1",version:"DICOM/retired"},"(0008,225A)":{tag:"(0008,225A)",vr:"SQ",name:"RETIRED_AnatomicStructureSpaceOrRegionModifierCodeSequenceTrial",vm:"1",version:"DICOM/retired"},"(0008,225C)":{tag:"(0008,225C)",vr:"SQ",name:"RETIRED_OnAxisBackgroundAnatomicStructureCodeSequenceTrial",vm:"1",version:"DICOM/retired"},"(0008,4000)":{tag:"(0008,4000)",vr:"LT",name:"RETIRED_IdentifyingComments",vm:"1",version:"DICOM/retired"},"(0010,1050)":{tag:"(0010,1050)",vr:"LO",name:"RETIRED_InsurancePlanIdentification",vm:"1-n",version:"DICOM/retired"},"(0014,0023)":{tag:"(0014,0023)",vr:"ST",name:"RETIRED_CADFileFormat",vm:"1-n",version:"DICOM/retired"},"(0014,0024)":{tag:"(0014,0024)",vr:"ST",name:"RETIRED_ComponentReferenceSystem",vm:"1-n",version:"DICOM/retired"},"(0014,0045)":{tag:"(0014,0045)",vr:"ST",name:"RETIRED_MaterialPropertiesFileFormatRetired",vm:"1-n",version:"DICOM/retired"},"(0018,0030)":{tag:"(0018,0030)",vr:"LO",name:"RETIRED_Radionuclide",vm:"1-n",version:"DICOM/retired"},"(0018,0032)":{tag:"(0018,0032)",vr:"DS",name:"RETIRED_EnergyWindowCenterline",vm:"1",version:"DICOM/retired"},"(0018,0033)":{tag:"(0018,0033)",vr:"DS",name:"RETIRED_EnergyWindowTotalWidth",vm:"1-n",version:"DICOM/retired"},"(0018,0037)":{tag:"(0018,0037)",vr:"CS",name:"RETIRED_TherapyType",vm:"1",version:"DICOM/retired"},"(0018,0039)":{tag:"(0018,0039)",vr:"CS",name:"RETIRED_TherapyDescription",vm:"1",version:"DICOM/retired"},"(0018,0061)":{tag:"(0018,0061)",vr:"DS",name:"RETIRED_undefined",vm:"1",version:"DICOM/retired"},"(0018,1011)":{tag:"(0018,1011)",vr:"LO",name:"RETIRED_HardcopyCreationDeviceID",vm:"1",version:"DICOM/retired"},"(0018,1017)":{tag:"(0018,1017)",vr:"LO",name:"RETIRED_HardcopyDeviceManufacturer",vm:"1",version:"DICOM/retired"},"(0018,101A)":{tag:"(0018,101A)",vr:"LO",name:"RETIRED_HardcopyDeviceSoftwareVersion",vm:"1-n",version:"DICOM/retired"},"(0018,101B)":{tag:"(0018,101B)",vr:"LO",name:"RETIRED_HardcopyDeviceManufacturerModelName",vm:"1",version:"DICOM/retired"},"(0018,1141)":{tag:"(0018,1141)",vr:"DS",name:"RETIRED_AngularPosition",vm:"1",version:"DICOM/retired"},"(0018,1146)":{tag:"(0018,1146)",vr:"DS",name:"RETIRED_RotationOffset",vm:"1-n",version:"DICOM/retired"},"(0018,1240)":{tag:"(0018,1240)",vr:"IS",name:"RETIRED_UpperLowerPixelValues",vm:"1-n",version:"DICOM/retired"},"(0018,4000)":{tag:"(0018,4000)",vr:"LT",name:"RETIRED_AcquisitionComments",vm:"1",version:"DICOM/retired"},"(0018,5021)":{tag:"(0018,5021)",vr:"LO",name:"RETIRED_PostprocessingFunction",vm:"1",version:"DICOM/retired"},"(0018,5030)":{tag:"(0018,5030)",vr:"DS",name:"RETIRED_DynamicRange",vm:"1",version:"DICOM/retired"},"(0018,5040)":{tag:"(0018,5040)",vr:"DS",name:"RETIRED_TotalGain",vm:"1",version:"DICOM/retired"},"(0018,5210)":{tag:"(0018,5210)",vr:"DS",name:"RETIRED_ImageTransformationMatrix",vm:"6",version:"DICOM/retired"},"(0018,5212)":{tag:"(0018,5212)",vr:"DS",name:"RETIRED_ImageTranslationVector",vm:"3",version:"DICOM/retired"},"(0018,6038)":{tag:"(0018,6038)",vr:"UL",name:"RETIRED_DopplerSampleVolumeXPositionRetired",vm:"1",version:"DICOM/retired"},"(0018,603A)":{tag:"(0018,603A)",vr:"UL",name:"RETIRED_DopplerSampleVolumeYPositionRetired",vm:"1",version:"DICOM/retired"},"(0018,603C)":{tag:"(0018,603C)",vr:"UL",name:"RETIRED_TMLinePositionX0Retired",vm:"1",version:"DICOM/retired"},"(0018,603E)":{tag:"(0018,603E)",vr:"UL",name:"RETIRED_TMLinePositionY0Retired",vm:"1",version:"DICOM/retired"},"(0018,6040)":{tag:"(0018,6040)",vr:"UL",name:"RETIRED_TMLinePositionX1Retired",vm:"1",version:"DICOM/retired"},"(0018,6042)":{tag:"(0018,6042)",vr:"UL",name:"RETIRED_TMLinePositionY1Retired",vm:"1",version:"DICOM/retired"},"(0018,9096)":{tag:"(0018,9096)",vr:"FD",name:"RETIRED_ParallelReductionFactorInPlaneRetired",vm:"1",version:"DICOM/retired"},"(0018,9166)":{tag:"(0018,9166)",vr:"CS",name:"RETIRED_BulkMotionStatus",vm:"1",version:"DICOM/retired"},"(0018,9195)":{tag:"(0018,9195)",vr:"FD",name:"RETIRED_ChemicalShiftMinimumIntegrationLimitInHz",vm:"1",version:"DICOM/retired"},"(0018,9196)":{tag:"(0018,9196)",vr:"FD",name:"RETIRED_ChemicalShiftMaximumIntegrationLimitInHz",vm:"1",version:"DICOM/retired"},"(0020,0014)":{tag:"(0020,0014)",vr:"IS",name:"RETIRED_IsotopeNumber",vm:"1",version:"DICOM/retired"},"(0020,0015)":{tag:"(0020,0015)",vr:"IS",name:"RETIRED_PhaseNumber",vm:"1",version:"DICOM/retired"},"(0020,0016)":{tag:"(0020,0016)",vr:"IS",name:"RETIRED_IntervalNumber",vm:"1",version:"DICOM/retired"},"(0020,0017)":{tag:"(0020,0017)",vr:"IS",name:"RETIRED_TimeSlotNumber",vm:"1",version:"DICOM/retired"},"(0020,0018)":{tag:"(0020,0018)",vr:"IS",name:"RETIRED_AngleNumber",vm:"1",version:"DICOM/retired"},"(0020,0022)":{tag:"(0020,0022)",vr:"IS",name:"RETIRED_OverlayNumber",vm:"1",version:"DICOM/retired"},"(0020,0024)":{tag:"(0020,0024)",vr:"IS",name:"RETIRED_CurveNumber",vm:"1",version:"DICOM/retired"},"(0020,0026)":{tag:"(0020,0026)",vr:"IS",name:"RETIRED_LUTNumber",vm:"1",version:"DICOM/retired"},"(0020,0030)":{tag:"(0020,0030)",vr:"DS",name:"RETIRED_ImagePosition",vm:"3",version:"DICOM/retired"},"(0020,0035)":{tag:"(0020,0035)",vr:"DS",name:"RETIRED_ImageOrientation",vm:"6",version:"DICOM/retired"},"(0020,0050)":{tag:"(0020,0050)",vr:"DS",name:"RETIRED_Location",vm:"1",version:"DICOM/retired"},"(0020,0070)":{tag:"(0020,0070)",vr:"LO",name:"RETIRED_ImageGeometryType",vm:"1",version:"DICOM/retired"},"(0020,0080)":{tag:"(0020,0080)",vr:"CS",name:"RETIRED_MaskingImage",vm:"1-n",version:"DICOM/retired"},"(0020,00AA)":{tag:"(0020,00AA)",vr:"IS",name:"RETIRED_ReportNumber",vm:"1",version:"DICOM/retired"},"(0020,1000)":{tag:"(0020,1000)",vr:"IS",name:"RETIRED_SeriesInStudy",vm:"1",version:"DICOM/retired"},"(0020,1001)":{tag:"(0020,1001)",vr:"IS",name:"RETIRED_AcquisitionsInSeries",vm:"1",version:"DICOM/retired"},"(0020,1003)":{tag:"(0020,1003)",vr:"IS",name:"RETIRED_ImagesInSeries",vm:"1",version:"DICOM/retired"},"(0020,1004)":{tag:"(0020,1004)",vr:"IS",name:"RETIRED_AcquisitionsInStudy",vm:"1",version:"DICOM/retired"},"(0020,1005)":{tag:"(0020,1005)",vr:"IS",name:"RETIRED_ImagesInStudy",vm:"1",version:"DICOM/retired"},"(0020,1020)":{tag:"(0020,1020)",vr:"LO",name:"RETIRED_Reference",vm:"1-n",version:"DICOM/retired"},"(0020,1070)":{tag:"(0020,1070)",vr:"IS",name:"RETIRED_OtherStudyNumbers",vm:"1-n",version:"DICOM/retired"},"(0020,3100-31FF)":{tag:"(0020,3100-31FF)",vr:"CS",name:"RETIRED_SourceImageIDs",vm:"1-n",version:"DICOM/retired"},"(0020,3401)":{tag:"(0020,3401)",vr:"CS",name:"RETIRED_ModifyingDeviceID",vm:"1",version:"DICOM/retired"},"(0020,3402)":{tag:"(0020,3402)",vr:"CS",name:"RETIRED_ModifiedImageID",vm:"1",version:"DICOM/retired"},"(0020,3403)":{tag:"(0020,3403)",vr:"DA",name:"RETIRED_ModifiedImageDate",vm:"1",version:"DICOM/retired"},"(0020,3404)":{tag:"(0020,3404)",vr:"LO",name:"RETIRED_ModifyingDeviceManufacturer",vm:"1",version:"DICOM/retired"},"(0020,3405)":{tag:"(0020,3405)",vr:"TM",name:"RETIRED_ModifiedImageTime",vm:"1",version:"DICOM/retired"},"(0020,3406)":{tag:"(0020,3406)",vr:"LO",name:"RETIRED_ModifiedImageDescription",vm:"1",version:"DICOM/retired"},"(0020,5000)":{tag:"(0020,5000)",vr:"AT",name:"RETIRED_OriginalImageIdentification",vm:"1-n",version:"DICOM/retired"},"(0020,5002)":{tag:"(0020,5002)",vr:"LO",name:"RETIRED_OriginalImageIdentificationNomenclature",vm:"1-n",version:"DICOM/retired"},"(0022,1094)":{tag:"(0022,1094)",vr:"LO",name:"RETIRED_LensConstantDescription",vm:"1",version:"DICOM/retired"},"(0022,1153)":{tag:"(0022,1153)",vr:"SQ",name:"RETIRED_OphthalmicAxialLengthAcquisitionMethodCodeSequence",vm:"1",version:"DICOM/retired"},"(0022,1265)":{tag:"(0022,1265)",vr:"SQ",name:"RETIRED_OphthalmicAxialLengthQualityMetricTypeCodeSequence",vm:"1",version:"DICOM/retired"},"(0022,1273)":{tag:"(0022,1273)",vr:"LO",name:"RETIRED_OphthalmicAxialLengthQualityMetricTypeDescription",vm:"1",version:"DICOM/retired"},"(0028,0005)":{tag:"(0028,0005)",vr:"US",name:"RETIRED_ImageDimensions",vm:"1",version:"DICOM/retired"},"(0028,0012)":{tag:"(0028,0012)",vr:"US",name:"RETIRED_Planes",vm:"1",version:"DICOM/retired"},"(0028,0040)":{tag:"(0028,0040)",vr:"CS",name:"RETIRED_ImageFormat",vm:"1",version:"DICOM/retired"},"(0028,0050)":{tag:"(0028,0050)",vr:"LO",name:"RETIRED_ManipulatedImage",vm:"1-n",version:"DICOM/retired"},"(0028,005F)":{tag:"(0028,005F)",vr:"LO",name:"RETIRED_CompressionRecognitionCode",vm:"1",version:"DICOM/retired"},"(0028,0060)":{tag:"(0028,0060)",vr:"CS",name:"RETIRED_CompressionCode",vm:"1",version:"DICOM/retired"},"(0028,0061)":{tag:"(0028,0061)",vr:"SH",name:"RETIRED_CompressionOriginator",vm:"1",version:"DICOM/retired"},"(0028,0062)":{tag:"(0028,0062)",vr:"LO",name:"RETIRED_CompressionLabel",vm:"1",version:"DICOM/retired"},"(0028,0063)":{tag:"(0028,0063)",vr:"SH",name:"RETIRED_CompressionDescription",vm:"1",version:"DICOM/retired"},"(0028,0065)":{tag:"(0028,0065)",vr:"CS",name:"RETIRED_CompressionSequence",vm:"1-n",version:"DICOM/retired"},"(0028,0066)":{tag:"(0028,0066)",vr:"AT",name:"RETIRED_CompressionStepPointers",vm:"1-n",version:"DICOM/retired"},"(0028,0068)":{tag:"(0028,0068)",vr:"US",name:"RETIRED_RepeatInterval",vm:"1",version:"DICOM/retired"},"(0028,0069)":{tag:"(0028,0069)",vr:"US",name:"RETIRED_BitsGrouped",vm:"1",version:"DICOM/retired"},"(0028,0070)":{tag:"(0028,0070)",vr:"US",name:"RETIRED_PerimeterTable",vm:"1-n",version:"DICOM/retired"},"(0028,0071)":{tag:"(0028,0071)",vr:"xs",name:"RETIRED_PerimeterValue",vm:"1",version:"DICOM/retired"},"(0028,0080)":{tag:"(0028,0080)",vr:"US",name:"RETIRED_PredictorRows",vm:"1",version:"DICOM/retired"},"(0028,0081)":{tag:"(0028,0081)",vr:"US",name:"RETIRED_PredictorColumns",vm:"1",version:"DICOM/retired"},"(0028,0082)":{tag:"(0028,0082)",vr:"US",name:"RETIRED_PredictorConstants",vm:"1-n",version:"DICOM/retired"},"(0028,0090)":{tag:"(0028,0090)",vr:"CS",name:"RETIRED_BlockedPixels",vm:"1",version:"DICOM/retired"},"(0028,0091)":{tag:"(0028,0091)",vr:"US",name:"RETIRED_BlockRows",vm:"1",version:"DICOM/retired"},"(0028,0092)":{tag:"(0028,0092)",vr:"US",name:"RETIRED_BlockColumns",vm:"1",version:"DICOM/retired"},"(0028,0093)":{tag:"(0028,0093)",vr:"US",name:"RETIRED_RowOverlap",vm:"1",version:"DICOM/retired"},"(0028,0094)":{tag:"(0028,0094)",vr:"US",name:"RETIRED_ColumnOverlap",vm:"1",version:"DICOM/retired"},"(0028,0104)":{tag:"(0028,0104)",vr:"xs",name:"RETIRED_SmallestValidPixelValue",vm:"1",version:"DICOM/retired"},"(0028,0105)":{tag:"(0028,0105)",vr:"xs",name:"RETIRED_LargestValidPixelValue",vm:"1",version:"DICOM/retired"},"(0028,0110)":{tag:"(0028,0110)",vr:"xs",name:"RETIRED_SmallestImagePixelValueInPlane",vm:"1",version:"DICOM/retired"},"(0028,0111)":{tag:"(0028,0111)",vr:"xs",name:"RETIRED_LargestImagePixelValueInPlane",vm:"1",version:"DICOM/retired"},"(0028,0200)":{tag:"(0028,0200)",vr:"US",name:"RETIRED_ImageLocation",vm:"1",version:"DICOM/retired"},"(0028,0400)":{tag:"(0028,0400)",vr:"LO",name:"RETIRED_TransformLabel",vm:"1",version:"DICOM/retired"},"(0028,0401)":{tag:"(0028,0401)",vr:"LO",name:"RETIRED_TransformVersionNumber",vm:"1",version:"DICOM/retired"},"(0028,0402)":{tag:"(0028,0402)",vr:"US",name:"RETIRED_NumberOfTransformSteps",vm:"1",version:"DICOM/retired"},"(0028,0403)":{tag:"(0028,0403)",vr:"LO",name:"RETIRED_SequenceOfCompressedData",vm:"1-n",version:"DICOM/retired"},"(0028,0404)":{tag:"(0028,0404)",vr:"AT",name:"RETIRED_DetailsOfCoefficients",vm:"1-n",version:"DICOM/retired"},"(0028,0410)":{tag:"(0028,0410)",vr:"US",name:"RETIRED_RowsForNthOrderCoefficients",vm:"1",version:"DICOM/retired"},"(0028,0411)":{tag:"(0028,0411)",vr:"US",name:"RETIRED_ColumnsForNthOrderCoefficients",vm:"1",version:"DICOM/retired"},"(0028,0412)":{tag:"(0028,0412)",vr:"LO",name:"RETIRED_CoefficientCoding",vm:"1-n",version:"DICOM/retired"},"(0028,0413)":{tag:"(0028,0413)",vr:"AT",name:"RETIRED_CoefficientCodingPointers",vm:"1-n",version:"DICOM/retired"},"(0028,0700)":{tag:"(0028,0700)",vr:"LO",name:"RETIRED_DCTLabel",vm:"1",version:"DICOM/retired"},"(0028,0701)":{tag:"(0028,0701)",vr:"CS",name:"RETIRED_DataBlockDescription",vm:"1-n",version:"DICOM/retired"},"(0028,0702)":{tag:"(0028,0702)",vr:"AT",name:"RETIRED_DataBlock",vm:"1-n",version:"DICOM/retired"},"(0028,0710)":{tag:"(0028,0710)",vr:"US",name:"RETIRED_NormalizationFactorFormat",vm:"1",version:"DICOM/retired"},"(0028,0720)":{tag:"(0028,0720)",vr:"US",name:"RETIRED_ZonalMapNumberFormat",vm:"1",version:"DICOM/retired"},"(0028,0721)":{tag:"(0028,0721)",vr:"AT",name:"RETIRED_ZonalMapLocation",vm:"1-n",version:"DICOM/retired"},"(0028,0722)":{tag:"(0028,0722)",vr:"US",name:"RETIRED_ZonalMapFormat",vm:"1",version:"DICOM/retired"},"(0028,0730)":{tag:"(0028,0730)",vr:"US",name:"RETIRED_AdaptiveMapFormat",vm:"1",version:"DICOM/retired"},"(0028,0740)":{tag:"(0028,0740)",vr:"US",name:"RETIRED_CodeNumberFormat",vm:"1",version:"DICOM/retired"},"(0028,0800)":{tag:"(0028,0800)",vr:"CS",name:"RETIRED_CodeLabel",vm:"1-n",version:"DICOM/retired"},"(0028,0802)":{tag:"(0028,0802)",vr:"US",name:"RETIRED_NumberOfTables",vm:"1",version:"DICOM/retired"},"(0028,0803)":{tag:"(0028,0803)",vr:"AT",name:"RETIRED_CodeTableLocation",vm:"1-n",version:"DICOM/retired"},"(0028,0804)":{tag:"(0028,0804)",vr:"US",name:"RETIRED_BitsForCodeWord",vm:"1",version:"DICOM/retired"},"(0028,0808)":{tag:"(0028,0808)",vr:"AT",name:"RETIRED_ImageDataLocation",vm:"1-n",version:"DICOM/retired"},"(0028,1080)":{tag:"(0028,1080)",vr:"CS",name:"RETIRED_GrayScale",vm:"1",version:"DICOM/retired"},"(0028,1100)":{tag:"(0028,1100)",vr:"xs",name:"RETIRED_GrayLookupTableDescriptor",vm:"3",version:"DICOM/retired"},"(0028,1111)":{tag:"(0028,1111)",vr:"xs",name:"RETIRED_LargeRedPaletteColorLookupTableDescriptor",vm:"4",version:"DICOM/retired"},"(0028,1112)":{tag:"(0028,1112)",vr:"xs",name:"RETIRED_LargeGreenPaletteColorLookupTableDescriptor",vm:"4",version:"DICOM/retired"},"(0028,1113)":{tag:"(0028,1113)",vr:"xs",name:"RETIRED_LargeBluePaletteColorLookupTableDescriptor",vm:"4",version:"DICOM/retired"},"(0028,1200)":{tag:"(0028,1200)",vr:"lt",name:"RETIRED_GrayLookupTableData",vm:"1-n",version:"DICOM/retired"},"(0028,1211)":{tag:"(0028,1211)",vr:"OW",name:"RETIRED_LargeRedPaletteColorLookupTableData",vm:"1",version:"DICOM/retired"},"(0028,1212)":{tag:"(0028,1212)",vr:"OW",name:"RETIRED_LargeGreenPaletteColorLookupTableData",vm:"1",version:"DICOM/retired"},"(0028,1213)":{tag:"(0028,1213)",vr:"OW",name:"RETIRED_LargeBluePaletteColorLookupTableData",vm:"1",version:"DICOM/retired"},"(0028,1214)":{tag:"(0028,1214)",vr:"UI",name:"RETIRED_LargePaletteColorLookupTableUID",vm:"1",version:"DICOM/retired"},"(0028,4000)":{tag:"(0028,4000)",vr:"LT",name:"RETIRED_ImagePresentationComments",vm:"1",version:"DICOM/retired"},"(0028,5000)":{tag:"(0028,5000)",vr:"SQ",name:"RETIRED_BiPlaneAcquisitionSequence",vm:"1",version:"DICOM/retired"},"(0028,6030)":{tag:"(0028,6030)",vr:"US",name:"RETIRED_MaskPointers",vm:"1-n",version:"DICOM/retired"},"(0028,9099)":{tag:"(0028,9099)",vr:"US",name:"RETIRED_LargestMonochromePixelValue",vm:"1",version:"DICOM/retired"},"(0032,000A)":{tag:"(0032,000A)",vr:"CS",name:"RETIRED_StudyStatusID",vm:"1",version:"DICOM/retired"},"(0032,000C)":{tag:"(0032,000C)",vr:"CS",name:"RETIRED_StudyPriorityID",vm:"1",version:"DICOM/retired"},"(0032,0012)":{tag:"(0032,0012)",vr:"LO",name:"RETIRED_StudyIDIssuer",vm:"1",version:"DICOM/retired"},"(0032,0032)":{tag:"(0032,0032)",vr:"DA",name:"RETIRED_StudyVerifiedDate",vm:"1",version:"DICOM/retired"},"(0032,0033)":{tag:"(0032,0033)",vr:"TM",name:"RETIRED_StudyVerifiedTime",vm:"1",version:"DICOM/retired"},"(0032,0034)":{tag:"(0032,0034)",vr:"DA",name:"RETIRED_StudyReadDate",vm:"1",version:"DICOM/retired"},"(0032,0035)":{tag:"(0032,0035)",vr:"TM",name:"RETIRED_StudyReadTime",vm:"1",version:"DICOM/retired"},"(0032,1000)":{tag:"(0032,1000)",vr:"DA",name:"RETIRED_ScheduledStudyStartDate",vm:"1",version:"DICOM/retired"},"(0032,1001)":{tag:"(0032,1001)",vr:"TM",name:"RETIRED_ScheduledStudyStartTime",vm:"1",version:"DICOM/retired"},"(0032,1010)":{tag:"(0032,1010)",vr:"DA",name:"RETIRED_ScheduledStudyStopDate",vm:"1",version:"DICOM/retired"},"(0032,1011)":{tag:"(0032,1011)",vr:"TM",name:"RETIRED_ScheduledStudyStopTime",vm:"1",version:"DICOM/retired"},"(0032,1020)":{tag:"(0032,1020)",vr:"LO",name:"RETIRED_ScheduledStudyLocation",vm:"1",version:"DICOM/retired"},"(0032,1021)":{tag:"(0032,1021)",vr:"AE",name:"RETIRED_ScheduledStudyLocationAETitle",vm:"1-n",version:"DICOM/retired"},"(0032,1030)":{tag:"(0032,1030)",vr:"LO",name:"RETIRED_ReasonForStudy",vm:"1",version:"DICOM/retired"},"(0032,1040)":{tag:"(0032,1040)",vr:"DA",name:"RETIRED_StudyArrivalDate",vm:"1",version:"DICOM/retired"},"(0032,1041)":{tag:"(0032,1041)",vr:"TM",name:"RETIRED_StudyArrivalTime",vm:"1",version:"DICOM/retired"},"(0032,1050)":{tag:"(0032,1050)",vr:"DA",name:"RETIRED_StudyCompletionDate",vm:"1",version:"DICOM/retired"},"(0032,1051)":{tag:"(0032,1051)",vr:"TM",name:"RETIRED_StudyCompletionTime",vm:"1",version:"DICOM/retired"},"(0032,1055)":{tag:"(0032,1055)",vr:"CS",name:"RETIRED_StudyComponentStatusID",vm:"1",version:"DICOM/retired"},"(0032,4000)":{tag:"(0032,4000)",vr:"LT",name:"RETIRED_StudyComments",vm:"1",version:"DICOM/retired"},"(0038,0011)":{tag:"(0038,0011)",vr:"LO",name:"RETIRED_IssuerOfAdmissionID",vm:"1",version:"DICOM/retired"},"(0038,001A)":{tag:"(0038,001A)",vr:"DA",name:"RETIRED_ScheduledAdmissionDate",vm:"1",version:"DICOM/retired"},"(0038,001B)":{tag:"(0038,001B)",vr:"TM",name:"RETIRED_ScheduledAdmissionTime",vm:"1",version:"DICOM/retired"},"(0038,001C)":{tag:"(0038,001C)",vr:"DA",name:"RETIRED_ScheduledDischargeDate",vm:"1",version:"DICOM/retired"},"(0038,001D)":{tag:"(0038,001D)",vr:"TM",name:"RETIRED_ScheduledDischargeTime",vm:"1",version:"DICOM/retired"},"(0038,001E)":{tag:"(0038,001E)",vr:"LO",name:"RETIRED_ScheduledPatientInstitutionResidence",vm:"1",version:"DICOM/retired"},"(0038,0030)":{tag:"(0038,0030)",vr:"DA",name:"RETIRED_DischargeDate",vm:"1",version:"DICOM/retired"},"(0038,0032)":{tag:"(0038,0032)",vr:"TM",name:"RETIRED_DischargeTime",vm:"1",version:"DICOM/retired"},"(0038,0040)":{tag:"(0038,0040)",vr:"LO",name:"RETIRED_DischargeDiagnosisDescription",vm:"1",version:"DICOM/retired"},"(0038,0044)":{tag:"(0038,0044)",vr:"SQ",name:"RETIRED_DischargeDiagnosisCodeSequence",vm:"1",version:"DICOM/retired"},"(0038,0061)":{tag:"(0038,0061)",vr:"LO",name:"RETIRED_IssuerOfServiceEpisodeID",vm:"1",version:"DICOM/retired"},"(0040,0307)":{tag:"(0040,0307)",vr:"DS",name:"RETIRED_DistanceSourceToSupport",vm:"1",version:"DICOM/retired"},"(0040,0330)":{tag:"(0040,0330)",vr:"SQ",name:"RETIRED_ReferencedProcedureStepSequence",vm:"1",version:"DICOM/retired"},"(0040,050A)":{tag:"(0040,050A)",vr:"LO",name:"RETIRED_SpecimenAccessionNumber",vm:"1",version:"DICOM/retired"},"(0040,0550)":{tag:"(0040,0550)",vr:"SQ",name:"RETIRED_SpecimenSequence",vm:"1",version:"DICOM/retired"},"(0040,0552)":{tag:"(0040,0552)",vr:"SQ",name:"RETIRED_SpecimenDescriptionSequenceTrial",vm:"1",version:"DICOM/retired"},"(0040,0553)":{tag:"(0040,0553)",vr:"ST",name:"RETIRED_SpecimenDescriptionTrial",vm:"1",version:"DICOM/retired"},"(0040,06FA)":{tag:"(0040,06FA)",vr:"LO",name:"RETIRED_SlideIdentifier",vm:"1",version:"DICOM/retired"},"(0040,08D8)":{tag:"(0040,08D8)",vr:"SQ",name:"RETIRED_PixelSpacingSequence",vm:"1",version:"DICOM/retired"},"(0040,08DA)":{tag:"(0040,08DA)",vr:"SQ",name:"RETIRED_CoordinateSystemAxisCodeSequence",vm:"1",version:"DICOM/retired"},"(0040,09F8)":{tag:"(0040,09F8)",vr:"SQ",name:"RETIRED_VitalStainCodeSequenceTrial",vm:"1",version:"DICOM/retired"},"(0040,1006)":{tag:"(0040,1006)",vr:"SH",name:"RETIRED_PlacerOrderNumberProcedure",vm:"1",version:"DICOM/retired"},"(0040,1007)":{tag:"(0040,1007)",vr:"SH",name:"RETIRED_FillerOrderNumberProcedure",vm:"1",version:"DICOM/retired"},"(0040,1060)":{tag:"(0040,1060)",vr:"LO",name:"RETIRED_RequestedProcedureDescriptionTrial",vm:"1",version:"DICOM/retired"},"(0040,2001)":{tag:"(0040,2001)",vr:"LO",name:"RETIRED_ReasonForTheImagingServiceRequest",vm:"1",version:"DICOM/retired"},"(0040,2006)":{tag:"(0040,2006)",vr:"SH",name:"RETIRED_PlacerOrderNumberImagingServiceRequestRetired",vm:"1",version:"DICOM/retired"},"(0040,2007)":{tag:"(0040,2007)",vr:"SH",name:"RETIRED_FillerOrderNumberImagingServiceRequestRetired",vm:"1",version:"DICOM/retired"},"(0040,4001)":{tag:"(0040,4001)",vr:"CS",name:"RETIRED_GeneralPurposeScheduledProcedureStepStatus",vm:"1",version:"DICOM/retired"},"(0040,4002)":{tag:"(0040,4002)",vr:"CS",name:"RETIRED_GeneralPurposePerformedProcedureStepStatus",vm:"1",version:"DICOM/retired"},"(0040,4003)":{tag:"(0040,4003)",vr:"CS",name:"RETIRED_GeneralPurposeScheduledProcedureStepPriority",vm:"1",version:"DICOM/retired"},"(0040,4004)":{tag:"(0040,4004)",vr:"SQ",name:"RETIRED_ScheduledProcessingApplicationsCodeSequence",vm:"1",version:"DICOM/retired"},"(0040,4006)":{tag:"(0040,4006)",vr:"CS",name:"RETIRED_MultipleCopiesFlag",vm:"1",version:"DICOM/retired"},"(0040,4015)":{tag:"(0040,4015)",vr:"SQ",name:"RETIRED_ResultingGeneralPurposePerformedProcedureStepsSequence",vm:"1",version:"DICOM/retired"},"(0040,4016)":{tag:"(0040,4016)",vr:"SQ",name:"RETIRED_ReferencedGeneralPurposeScheduledProcedureStepSequence",vm:"1",version:"DICOM/retired"},"(0040,4022)":{tag:"(0040,4022)",vr:"SQ",name:"RETIRED_RelevantInformationSequence",vm:"1",version:"DICOM/retired"},"(0040,4023)":{tag:"(0040,4023)",vr:"UI",name:"RETIRED_ReferencedGeneralPurposeScheduledProcedureStepTransactionUID",vm:"1",version:"DICOM/retired"},"(0040,4031)":{tag:"(0040,4031)",vr:"SQ",name:"RETIRED_RequestedSubsequentWorkitemCodeSequence",vm:"1",version:"DICOM/retired"},"(0040,4032)":{tag:"(0040,4032)",vr:"SQ",name:"RETIRED_NonDICOMOutputCodeSequence",vm:"1",version:"DICOM/retired"},"(0040,A007)":{tag:"(0040,A007)",vr:"CS",name:"RETIRED_FindingsFlagTrial",vm:"1",version:"DICOM/retired"},"(0040,A020)":{tag:"(0040,A020)",vr:"SQ",name:"RETIRED_FindingsSequenceTrial",vm:"1",version:"DICOM/retired"},"(0040,A021)":{tag:"(0040,A021)",vr:"UI",name:"RETIRED_FindingsGroupUIDTrial",vm:"1",version:"DICOM/retired"},"(0040,A022)":{tag:"(0040,A022)",vr:"UI",name:"RETIRED_ReferencedFindingsGroupUIDTrial",vm:"1",version:"DICOM/retired"},"(0040,A023)":{tag:"(0040,A023)",vr:"DA",name:"RETIRED_FindingsGroupRecordingDateTrial",vm:"1",version:"DICOM/retired"},"(0040,A024)":{tag:"(0040,A024)",vr:"TM",name:"RETIRED_FindingsGroupRecordingTimeTrial",vm:"1",version:"DICOM/retired"},"(0040,A026)":{tag:"(0040,A026)",vr:"SQ",name:"RETIRED_FindingsSourceCategoryCodeSequenceTrial",vm:"1",version:"DICOM/retired"},"(0040,A028)":{tag:"(0040,A028)",vr:"SQ",name:"RETIRED_DocumentingOrganizationIdentifierCodeSequenceTrial",vm:"1",version:"DICOM/retired"},"(0040,A047)":{tag:"(0040,A047)",vr:"LO",name:"RETIRED_MeasurementPrecisionDescriptionTrial",vm:"1",version:"DICOM/retired"},"(0040,A057)":{tag:"(0040,A057)",vr:"CS",name:"RETIRED_UrgencyOrPriorityAlertsTrial",vm:"1-n",version:"DICOM/retired"},"(0040,A060)":{tag:"(0040,A060)",vr:"LO",name:"RETIRED_SequencingIndicatorTrial",vm:"1",version:"DICOM/retired"},"(0040,A066)":{tag:"(0040,A066)",vr:"SQ",name:"RETIRED_DocumentIdentifierCodeSequenceTrial",vm:"1",version:"DICOM/retired"},"(0040,A067)":{tag:"(0040,A067)",vr:"PN",name:"RETIRED_DocumentAuthorTrial",vm:"1",version:"DICOM/retired"},"(0040,A068)":{tag:"(0040,A068)",vr:"SQ",name:"RETIRED_DocumentAuthorIdentifierCodeSequenceTrial",vm:"1",version:"DICOM/retired"},"(0040,A070)":{tag:"(0040,A070)",vr:"SQ",name:"RETIRED_IdentifierCodeSequenceTrial",vm:"1",version:"DICOM/retired"},"(0040,A074)":{tag:"(0040,A074)",vr:"OB",name:"RETIRED_ObjectBinaryIdentifierTrial",vm:"1",version:"DICOM/retired"},"(0040,A076)":{tag:"(0040,A076)",vr:"SQ",name:"RETIRED_DocumentingObserverIdentifierCodeSequenceTrial",vm:"1",version:"DICOM/retired"},"(0040,A085)":{tag:"(0040,A085)",vr:"SQ",name:"RETIRED_ProcedureIdentifierCodeSequenceTrial",vm:"1",version:"DICOM/retired"},"(0040,A089)":{tag:"(0040,A089)",vr:"OB",name:"RETIRED_ObjectDirectoryBinaryIdentifierTrial",vm:"1",version:"DICOM/retired"},"(0040,A090)":{tag:"(0040,A090)",vr:"SQ",name:"RETIRED_EquivalentCDADocumentSequence",vm:"1",version:"DICOM/retired"},"(0040,A110)":{tag:"(0040,A110)",vr:"DA",name:"RETIRED_DateOfDocumentOrVerbalTransactionTrial",vm:"1",version:"DICOM/retired"},"(0040,A112)":{tag:"(0040,A112)",vr:"TM",name:"RETIRED_TimeOfDocumentCreationOrVerbalTransactionTrial",vm:"1",version:"DICOM/retired"},"(0040,A125)":{tag:"(0040,A125)",vr:"CS",name:"RETIRED_ReportStatusIDTrial",vm:"2",version:"DICOM/retired"},"(0040,A167)":{tag:"(0040,A167)",vr:"SQ",name:"RETIRED_ObservationCategoryCodeSequenceTrial",vm:"1",version:"DICOM/retired"},"(0040,A16A)":{tag:"(0040,A16A)",vr:"ST",name:"RETIRED_BibliographicCitationTrial",vm:"1",version:"DICOM/retired"},"(0040,A172)":{tag:"(0040,A172)",vr:"UI",name:"RETIRED_ReferencedObservationUIDTrial",vm:"1",version:"DICOM/retired"},"(0040,A173)":{tag:"(0040,A173)",vr:"CS",name:"RETIRED_ReferencedObservationClassTrial",vm:"1",version:"DICOM/retired"},"(0040,A174)":{tag:"(0040,A174)",vr:"CS",name:"RETIRED_ReferencedObjectObservationClassTrial",vm:"1",version:"DICOM/retired"},"(0040,A192)":{tag:"(0040,A192)",vr:"DA",name:"RETIRED_ObservationDateTrial",vm:"1",version:"DICOM/retired"},"(0040,A193)":{tag:"(0040,A193)",vr:"TM",name:"RETIRED_ObservationTimeTrial",vm:"1",version:"DICOM/retired"},"(0040,A194)":{tag:"(0040,A194)",vr:"CS",name:"RETIRED_MeasurementAutomationTrial",vm:"1",version:"DICOM/retired"},"(0040,A224)":{tag:"(0040,A224)",vr:"ST",name:"RETIRED_IdentificationDescriptionTrial",vm:"1",version:"DICOM/retired"},"(0040,A290)":{tag:"(0040,A290)",vr:"CS",name:"RETIRED_CoordinatesSetGeometricTypeTrial",vm:"1",version:"DICOM/retired"},"(0040,A296)":{tag:"(0040,A296)",vr:"SQ",name:"RETIRED_AlgorithmCodeSequenceTrial",vm:"1",version:"DICOM/retired"},"(0040,A297)":{tag:"(0040,A297)",vr:"ST",name:"RETIRED_AlgorithmDescriptionTrial",vm:"1",version:"DICOM/retired"},"(0040,A29A)":{tag:"(0040,A29A)",vr:"SL",name:"RETIRED_PixelCoordinatesSetTrial",vm:"2-2n",version:"DICOM/retired"},"(0040,A307)":{tag:"(0040,A307)",vr:"PN",name:"RETIRED_CurrentObserverTrial",vm:"1",version:"DICOM/retired"},"(0040,A313)":{tag:"(0040,A313)",vr:"SQ",name:"RETIRED_ReferencedAccessionSequenceTrial",vm:"1",version:"DICOM/retired"},"(0040,A33A)":{tag:"(0040,A33A)",vr:"ST",name:"RETIRED_ReportStatusCommentTrial",vm:"1",version:"DICOM/retired"},"(0040,A340)":{tag:"(0040,A340)",vr:"SQ",name:"RETIRED_ProcedureContextSequenceTrial",vm:"1",version:"DICOM/retired"},"(0040,A352)":{tag:"(0040,A352)",vr:"PN",name:"RETIRED_VerbalSourceTrial",vm:"1",version:"DICOM/retired"},"(0040,A353)":{tag:"(0040,A353)",vr:"ST",name:"RETIRED_AddressTrial",vm:"1",version:"DICOM/retired"},"(0040,A354)":{tag:"(0040,A354)",vr:"LO",name:"RETIRED_TelephoneNumberTrial",vm:"1",version:"DICOM/retired"},"(0040,A358)":{tag:"(0040,A358)",vr:"SQ",name:"RETIRED_VerbalSourceIdentifierCodeSequenceTrial",vm:"1",version:"DICOM/retired"},"(0040,A380)":{tag:"(0040,A380)",vr:"SQ",name:"RETIRED_ReportDetailSequenceTrial",vm:"1",version:"DICOM/retired"},"(0040,A402)":{tag:"(0040,A402)",vr:"UI",name:"RETIRED_ObservationSubjectUIDTrial",vm:"1",version:"DICOM/retired"},"(0040,A403)":{tag:"(0040,A403)",vr:"CS",name:"RETIRED_ObservationSubjectClassTrial",vm:"1",version:"DICOM/retired"},"(0040,A404)":{tag:"(0040,A404)",vr:"SQ",name:"RETIRED_ObservationSubjectTypeCodeSequenceTrial",vm:"1",version:"DICOM/retired"},"(0040,A600)":{tag:"(0040,A600)",vr:"CS",name:"RETIRED_ObservationSubjectContextFlagTrial",vm:"1",version:"DICOM/retired"},"(0040,A601)":{tag:"(0040,A601)",vr:"CS",name:"RETIRED_ObserverContextFlagTrial",vm:"1",version:"DICOM/retired"},"(0040,A603)":{tag:"(0040,A603)",vr:"CS",name:"RETIRED_ProcedureContextFlagTrial",vm:"1",version:"DICOM/retired"},"(0040,A731)":{tag:"(0040,A731)",vr:"SQ",name:"RETIRED_RelationshipSequenceTrial",vm:"1",version:"DICOM/retired"},"(0040,A732)":{tag:"(0040,A732)",vr:"SQ",name:"RETIRED_RelationshipTypeCodeSequenceTrial",vm:"1",version:"DICOM/retired"},"(0040,A744)":{tag:"(0040,A744)",vr:"SQ",name:"RETIRED_LanguageCodeSequenceTrial",vm:"1",version:"DICOM/retired"},"(0040,A992)":{tag:"(0040,A992)",vr:"ST",name:"RETIRED_UniformResourceLocatorTrial",vm:"1",version:"DICOM/retired"},"(0040,DB06)":{tag:"(0040,DB06)",vr:"DT",name:"RETIRED_TemplateVersion",vm:"1",version:"DICOM/retired"},"(0040,DB07)":{tag:"(0040,DB07)",vr:"DT",name:"RETIRED_TemplateLocalVersion",vm:"1",version:"DICOM/retired"},"(0040,DB0B)":{tag:"(0040,DB0B)",vr:"CS",name:"RETIRED_TemplateExtensionFlag",vm:"1",version:"DICOM/retired"},"(0040,DB0C)":{tag:"(0040,DB0C)",vr:"UI",name:"RETIRED_TemplateExtensionOrganizationUID",vm:"1",version:"DICOM/retired"},"(0040,DB0D)":{tag:"(0040,DB0D)",vr:"UI",name:"RETIRED_TemplateExtensionCreatorUID",vm:"1",version:"DICOM/retired"},"(0054,1400)":{tag:"(0054,1400)",vr:"CS",name:"RETIRED_CountsIncluded",vm:"1-n",version:"DICOM/retired"},"(0054,1401)":{tag:"(0054,1401)",vr:"CS",name:"RETIRED_DeadTimeCorrectionFlag",vm:"1",version:"DICOM/retired"},"(0070,0040)":{tag:"(0070,0040)",vr:"IS",name:"RETIRED_ImageRotationRetired",vm:"1",version:"DICOM/retired"},"(0070,0050)":{tag:"(0070,0050)",vr:"US",name:"RETIRED_DisplayedAreaTopLeftHandCornerTrial",vm:"2",version:"DICOM/retired"},"(0070,0051)":{tag:"(0070,0051)",vr:"US",name:"RETIRED_DisplayedAreaBottomRightHandCornerTrial",vm:"2",version:"DICOM/retired"},"(0070,0067)":{tag:"(0070,0067)",vr:"US",name:"RETIRED_GraphicLayerRecommendedDisplayRGBValue",vm:"3",version:"DICOM/retired"},"(0074,1024)":{tag:"(0074,1024)",vr:"IS",name:"RETIRED_BeamOrderIndexTrial",vm:"1",version:"DICOM/retired"},"(0074,1038)":{tag:"(0074,1038)",vr:"DS",name:"RETIRED_DoubleExposureMetersetTrial",vm:"1",version:"DICOM/retired"},"(0074,103A)":{tag:"(0074,103A)",vr:"DS",name:"RETIRED_DoubleExposureFieldDeltaTrial",vm:"4",version:"DICOM/retired"},"(0074,1220)":{tag:"(0074,1220)",vr:"SQ",name:"RETIRED_RelatedProcedureStepSequence",vm:"1",version:"DICOM/retired"},"(0074,1222)":{tag:"(0074,1222)",vr:"LO",name:"RETIRED_ProcedureStepRelationshipType",vm:"1",version:"DICOM/retired"},"(0088,0904)":{tag:"(0088,0904)",vr:"LO",name:"RETIRED_TopicTitle",vm:"1",version:"DICOM/retired"},"(0088,0906)":{tag:"(0088,0906)",vr:"ST",name:"RETIRED_TopicSubject",vm:"1",version:"DICOM/retired"},"(0088,0910)":{tag:"(0088,0910)",vr:"LO",name:"RETIRED_TopicAuthor",vm:"1",version:"DICOM/retired"},"(0088,0912)":{tag:"(0088,0912)",vr:"LO",name:"RETIRED_TopicKeywords",vm:"1-32",version:"DICOM/retired"},"(0400,0315)":{tag:"(0400,0315)",vr:"FL",name:"RETIRED_undefined",vm:"1",version:"DICOM/retired"},"(1000,0010)":{tag:"(1000,0010)",vr:"US",name:"RETIRED_EscapeTriplet",vm:"3",version:"DICOM/retired"},"(1000,0011)":{tag:"(1000,0011)",vr:"US",name:"RETIRED_RunLengthTriplet",vm:"3",version:"DICOM/retired"},"(1000,0012)":{tag:"(1000,0012)",vr:"US",name:"RETIRED_HuffmanTableSize",vm:"1",version:"DICOM/retired"},"(1000,0013)":{tag:"(1000,0013)",vr:"US",name:"RETIRED_HuffmanTableTriplet",vm:"3",version:"DICOM/retired"},"(1000,0014)":{tag:"(1000,0014)",vr:"US",name:"RETIRED_ShiftTableSize",vm:"1",version:"DICOM/retired"},"(1000,0015)":{tag:"(1000,0015)",vr:"US",name:"RETIRED_ShiftTableTriplet",vm:"3",version:"DICOM/retired"},"(1010,0004)":{tag:"(1010,0004)",vr:"US",name:"RETIRED_ZonalMap",vm:"1-n",version:"DICOM/retired"},"(2000,0062)":{tag:"(2000,0062)",vr:"CS",name:"RETIRED_ColorImagePrintingFlag",vm:"1",version:"DICOM/retired"},"(2000,0063)":{tag:"(2000,0063)",vr:"CS",name:"RETIRED_CollationFlag",vm:"1",version:"DICOM/retired"},"(2000,0065)":{tag:"(2000,0065)",vr:"CS",name:"RETIRED_AnnotationFlag",vm:"1",version:"DICOM/retired"},"(2000,0067)":{tag:"(2000,0067)",vr:"CS",name:"RETIRED_ImageOverlayFlag",vm:"1",version:"DICOM/retired"},"(2000,0069)":{tag:"(2000,0069)",vr:"CS",name:"RETIRED_PresentationLUTFlag",vm:"1",version:"DICOM/retired"},"(2000,006A)":{tag:"(2000,006A)",vr:"CS",name:"RETIRED_ImageBoxPresentationLUTFlag",vm:"1",version:"DICOM/retired"},"(2000,0510)":{tag:"(2000,0510)",vr:"SQ",name:"RETIRED_ReferencedStoredPrintSequence",vm:"1",version:"DICOM/retired"},"(2020,0130)":{tag:"(2020,0130)",vr:"SQ",name:"RETIRED_ReferencedImageOverlayBoxSequence",vm:"1",version:"DICOM/retired"},"(2020,0140)":{tag:"(2020,0140)",vr:"SQ",name:"RETIRED_ReferencedVOILUTBoxSequence",vm:"1",version:"DICOM/retired"},"(2040,0010)":{tag:"(2040,0010)",vr:"SQ",name:"RETIRED_ReferencedOverlayPlaneSequence",vm:"1",version:"DICOM/retired"},"(2040,0011)":{tag:"(2040,0011)",vr:"US",name:"RETIRED_ReferencedOverlayPlaneGroups",vm:"1-99",version:"DICOM/retired"},"(2040,0020)":{tag:"(2040,0020)",vr:"SQ",name:"RETIRED_OverlayPixelDataSequence",vm:"1",version:"DICOM/retired"},"(2040,0060)":{tag:"(2040,0060)",vr:"CS",name:"RETIRED_OverlayMagnificationType",vm:"1",version:"DICOM/retired"},"(2040,0070)":{tag:"(2040,0070)",vr:"CS",name:"RETIRED_OverlaySmoothingType",vm:"1",version:"DICOM/retired"},"(2040,0072)":{tag:"(2040,0072)",vr:"CS",name:"RETIRED_OverlayOrImageMagnification",vm:"1",version:"DICOM/retired"},"(2040,0074)":{tag:"(2040,0074)",vr:"US",name:"RETIRED_MagnifyToNumberOfColumns",vm:"1",version:"DICOM/retired"},"(2040,0080)":{tag:"(2040,0080)",vr:"CS",name:"RETIRED_OverlayForegroundDensity",vm:"1",version:"DICOM/retired"},"(2040,0082)":{tag:"(2040,0082)",vr:"CS",name:"RETIRED_OverlayBackgroundDensity",vm:"1",version:"DICOM/retired"},"(2040,0090)":{tag:"(2040,0090)",vr:"CS",name:"RETIRED_OverlayMode",vm:"1",version:"DICOM/retired"},"(2040,0100)":{tag:"(2040,0100)",vr:"CS",name:"RETIRED_ThresholdDensity",vm:"1",version:"DICOM/retired"},"(2040,0500)":{tag:"(2040,0500)",vr:"SQ",name:"RETIRED_ReferencedImageBoxSequenceRetired",vm:"1",version:"DICOM/retired"},"(2100,0010)":{tag:"(2100,0010)",vr:"SH",name:"RETIRED_PrintJobID",vm:"1",version:"DICOM/retired"},"(2100,0140)":{tag:"(2100,0140)",vr:"AE",name:"RETIRED_DestinationAE",vm:"1",version:"DICOM/retired"},"(2100,0500)":{tag:"(2100,0500)",vr:"SQ",name:"RETIRED_ReferencedPrintJobSequencePullStoredPrint",vm:"1",version:"DICOM/retired"},"(2110,0099)":{tag:"(2110,0099)",vr:"SH",name:"RETIRED_PrintQueueID",vm:"1",version:"DICOM/retired"},"(2120,0010)":{tag:"(2120,0010)",vr:"CS",name:"RETIRED_QueueStatus",vm:"1",version:"DICOM/retired"},"(2120,0050)":{tag:"(2120,0050)",vr:"SQ",name:"RETIRED_PrintJobDescriptionSequence",vm:"1",version:"DICOM/retired"},"(2120,0070)":{tag:"(2120,0070)",vr:"SQ",name:"RETIRED_ReferencedPrintJobSequence",vm:"1",version:"DICOM/retired"},"(2130,0010)":{tag:"(2130,0010)",vr:"SQ",name:"RETIRED_PrintManagementCapabilitiesSequence",vm:"1",version:"DICOM/retired"},"(2130,0015)":{tag:"(2130,0015)",vr:"SQ",name:"RETIRED_PrinterCharacteristicsSequence",vm:"1",version:"DICOM/retired"},"(2130,0030)":{tag:"(2130,0030)",vr:"SQ",name:"RETIRED_FilmBoxContentSequence",vm:"1",version:"DICOM/retired"},"(2130,0040)":{tag:"(2130,0040)",vr:"SQ",name:"RETIRED_ImageBoxContentSequence",vm:"1",version:"DICOM/retired"},"(2130,0050)":{tag:"(2130,0050)",vr:"SQ",name:"RETIRED_AnnotationContentSequence",vm:"1",version:"DICOM/retired"},"(2130,0060)":{tag:"(2130,0060)",vr:"SQ",name:"RETIRED_ImageOverlayBoxContentSequence",vm:"1",version:"DICOM/retired"},"(2130,0080)":{tag:"(2130,0080)",vr:"SQ",name:"RETIRED_PresentationLUTContentSequence",vm:"1",version:"DICOM/retired"},"(2130,00A0)":{tag:"(2130,00A0)",vr:"SQ",name:"RETIRED_ProposedStudySequence",vm:"1",version:"DICOM/retired"},"(2130,00C0)":{tag:"(2130,00C0)",vr:"SQ",name:"RETIRED_OriginalImageSequence",vm:"1",version:"DICOM/retired"},"(3006,00C0)":{tag:"(3006,00C0)",vr:"SQ",name:"RETIRED_FrameOfReferenceRelationshipSequence",vm:"1",version:"DICOM/retired"},"(3006,00C2)":{tag:"(3006,00C2)",vr:"UI",name:"RETIRED_RelatedFrameOfReferenceUID",vm:"1",version:"DICOM/retired"},"(3006,00C4)":{tag:"(3006,00C4)",vr:"CS",name:"RETIRED_FrameOfReferenceTransformationType",vm:"1",version:"DICOM/retired"},"(300A,0088)":{tag:"(300A,0088)",vr:"FL",name:"RETIRED_BeamDosePointDepth",vm:"1",version:"DICOM/retired"},"(300A,0089)":{tag:"(300A,0089)",vr:"FL",name:"RETIRED_BeamDosePointEquivalentDepth",vm:"1",version:"DICOM/retired"},"(300A,008A)":{tag:"(300A,008A)",vr:"FL",name:"RETIRED_BeamDosePointSSD",vm:"1",version:"DICOM/retired"},"(300A,0782)":{tag:"(300A,0782)",vr:"US",name:"RETIRED_undefined",vm:"1",version:"DICOM/retired"},"(4000,0010)":{tag:"(4000,0010)",vr:"LT",name:"RETIRED_Arbitrary",vm:"1",version:"DICOM/retired"},"(4000,4000)":{tag:"(4000,4000)",vr:"LT",name:"RETIRED_TextComments",vm:"1",version:"DICOM/retired"},"(4008,0040)":{tag:"(4008,0040)",vr:"SH",name:"RETIRED_ResultsID",vm:"1",version:"DICOM/retired"},"(4008,0042)":{tag:"(4008,0042)",vr:"LO",name:"RETIRED_ResultsIDIssuer",vm:"1",version:"DICOM/retired"},"(4008,0050)":{tag:"(4008,0050)",vr:"SQ",name:"RETIRED_ReferencedInterpretationSequence",vm:"1",version:"DICOM/retired"},"(4008,00FF)":{tag:"(4008,00FF)",vr:"CS",name:"RETIRED_ReportProductionStatusTrial",vm:"1",version:"DICOM/retired"},"(4008,0100)":{tag:"(4008,0100)",vr:"DA",name:"RETIRED_InterpretationRecordedDate",vm:"1",version:"DICOM/retired"},"(4008,0101)":{tag:"(4008,0101)",vr:"TM",name:"RETIRED_InterpretationRecordedTime",vm:"1",version:"DICOM/retired"},"(4008,0102)":{tag:"(4008,0102)",vr:"PN",name:"RETIRED_InterpretationRecorder",vm:"1",version:"DICOM/retired"},"(4008,0103)":{tag:"(4008,0103)",vr:"LO",name:"RETIRED_ReferenceToRecordedSound",vm:"1",version:"DICOM/retired"},"(4008,0108)":{tag:"(4008,0108)",vr:"DA",name:"RETIRED_InterpretationTranscriptionDate",vm:"1",version:"DICOM/retired"},"(4008,0109)":{tag:"(4008,0109)",vr:"TM",name:"RETIRED_InterpretationTranscriptionTime",vm:"1",version:"DICOM/retired"},"(4008,010A)":{tag:"(4008,010A)",vr:"PN",name:"RETIRED_InterpretationTranscriber",vm:"1",version:"DICOM/retired"},"(4008,010B)":{tag:"(4008,010B)",vr:"ST",name:"RETIRED_InterpretationText",vm:"1",version:"DICOM/retired"},"(4008,010C)":{tag:"(4008,010C)",vr:"PN",name:"RETIRED_InterpretationAuthor",vm:"1",version:"DICOM/retired"},"(4008,0111)":{tag:"(4008,0111)",vr:"SQ",name:"RETIRED_InterpretationApproverSequence",vm:"1",version:"DICOM/retired"},"(4008,0112)":{tag:"(4008,0112)",vr:"DA",name:"RETIRED_InterpretationApprovalDate",vm:"1",version:"DICOM/retired"},"(4008,0113)":{tag:"(4008,0113)",vr:"TM",name:"RETIRED_InterpretationApprovalTime",vm:"1",version:"DICOM/retired"},"(4008,0114)":{tag:"(4008,0114)",vr:"PN",name:"RETIRED_PhysicianApprovingInterpretation",vm:"1",version:"DICOM/retired"},"(4008,0115)":{tag:"(4008,0115)",vr:"LT",name:"RETIRED_InterpretationDiagnosisDescription",vm:"1",version:"DICOM/retired"},"(4008,0117)":{tag:"(4008,0117)",vr:"SQ",name:"RETIRED_InterpretationDiagnosisCodeSequence",vm:"1",version:"DICOM/retired"},"(4008,0118)":{tag:"(4008,0118)",vr:"SQ",name:"RETIRED_ResultsDistributionListSequence",vm:"1",version:"DICOM/retired"},"(4008,0119)":{tag:"(4008,0119)",vr:"PN",name:"RETIRED_DistributionName",vm:"1",version:"DICOM/retired"},"(4008,011A)":{tag:"(4008,011A)",vr:"LO",name:"RETIRED_DistributionAddress",vm:"1",version:"DICOM/retired"},"(4008,0200)":{tag:"(4008,0200)",vr:"SH",name:"RETIRED_InterpretationID",vm:"1",version:"DICOM/retired"},"(4008,0202)":{tag:"(4008,0202)",vr:"LO",name:"RETIRED_InterpretationIDIssuer",vm:"1",version:"DICOM/retired"},"(4008,0210)":{tag:"(4008,0210)",vr:"CS",name:"RETIRED_InterpretationTypeID",vm:"1",version:"DICOM/retired"},"(4008,0212)":{tag:"(4008,0212)",vr:"CS",name:"RETIRED_InterpretationStatusID",vm:"1",version:"DICOM/retired"},"(4008,0300)":{tag:"(4008,0300)",vr:"ST",name:"RETIRED_Impressions",vm:"1",version:"DICOM/retired"},"(4008,4000)":{tag:"(4008,4000)",vr:"ST",name:"RETIRED_ResultsComments",vm:"1",version:"DICOM/retired"},"(5000-50FF,0005)":{tag:"(5000-50FF,0005)",vr:"US",name:"RETIRED_CurveDimensions",vm:"1",version:"DICOM/retired"},"(5000-50FF,0010)":{tag:"(5000-50FF,0010)",vr:"US",name:"RETIRED_NumberOfPoints",vm:"1",version:"DICOM/retired"},"(5000-50FF,0020)":{tag:"(5000-50FF,0020)",vr:"CS",name:"RETIRED_TypeOfData",vm:"1",version:"DICOM/retired"},"(5000-50FF,0022)":{tag:"(5000-50FF,0022)",vr:"LO",name:"RETIRED_CurveDescription",vm:"1",version:"DICOM/retired"},"(5000-50FF,0030)":{tag:"(5000-50FF,0030)",vr:"SH",name:"RETIRED_AxisUnits",vm:"1-n",version:"DICOM/retired"},"(5000-50FF,0040)":{tag:"(5000-50FF,0040)",vr:"SH",name:"RETIRED_AxisLabels",vm:"1-n",version:"DICOM/retired"},"(5000-50FF,0103)":{tag:"(5000-50FF,0103)",vr:"US",name:"RETIRED_DataValueRepresentation",vm:"1",version:"DICOM/retired"},"(5000-50FF,0104)":{tag:"(5000-50FF,0104)",vr:"US",name:"RETIRED_MinimumCoordinateValue",vm:"1-n",version:"DICOM/retired"},"(5000-50FF,0105)":{tag:"(5000-50FF,0105)",vr:"US",name:"RETIRED_MaximumCoordinateValue",vm:"1-n",version:"DICOM/retired"},"(5000-50FF,0106)":{tag:"(5000-50FF,0106)",vr:"SH",name:"RETIRED_CurveRange",vm:"1-n",version:"DICOM/retired"},"(5000-50FF,0110)":{tag:"(5000-50FF,0110)",vr:"US",name:"RETIRED_CurveDataDescriptor",vm:"1-n",version:"DICOM/retired"},"(5000-50FF,0112)":{tag:"(5000-50FF,0112)",vr:"US",name:"RETIRED_CoordinateStartValue",vm:"1-n",version:"DICOM/retired"},"(5000-50FF,0114)":{tag:"(5000-50FF,0114)",vr:"US",name:"RETIRED_CoordinateStepValue",vm:"1-n",version:"DICOM/retired"},"(5000-50FF,1001)":{tag:"(5000-50FF,1001)",vr:"CS",name:"RETIRED_CurveActivationLayer",vm:"1",version:"DICOM/retired"},"(5000-50FF,2000)":{tag:"(5000-50FF,2000)",vr:"US",name:"RETIRED_AudioType",vm:"1",version:"DICOM/retired"},"(5000-50FF,2002)":{tag:"(5000-50FF,2002)",vr:"US",name:"RETIRED_AudioSampleFormat",vm:"1",version:"DICOM/retired"},"(5000-50FF,2004)":{tag:"(5000-50FF,2004)",vr:"US",name:"RETIRED_NumberOfChannels",vm:"1",version:"DICOM/retired"},"(5000-50FF,2006)":{tag:"(5000-50FF,2006)",vr:"UL",name:"RETIRED_NumberOfSamples",vm:"1",version:"DICOM/retired"},"(5000-50FF,2008)":{tag:"(5000-50FF,2008)",vr:"UL",name:"RETIRED_SampleRate",vm:"1",version:"DICOM/retired"},"(5000-50FF,200A)":{tag:"(5000-50FF,200A)",vr:"UL",name:"RETIRED_TotalTime",vm:"1",version:"DICOM/retired"},"(5000-50FF,200C)":{tag:"(5000-50FF,200C)",vr:"ox",name:"RETIRED_AudioSampleData",vm:"1",version:"DICOM/retired"},"(5000-50FF,200E)":{tag:"(5000-50FF,200E)",vr:"LT",name:"RETIRED_AudioComments",vm:"1",version:"DICOM/retired"},"(5000-50FF,2500)":{tag:"(5000-50FF,2500)",vr:"LO",name:"RETIRED_CurveLabel",vm:"1",version:"DICOM/retired"},"(5000-50FF,2600)":{tag:"(5000-50FF,2600)",vr:"SQ",name:"RETIRED_CurveReferencedOverlaySequence",vm:"1",version:"DICOM/retired"},"(5000-50FF,2610)":{tag:"(5000-50FF,2610)",vr:"US",name:"RETIRED_CurveReferencedOverlayGroup",vm:"1",version:"DICOM/retired"},"(5000-50FF,3000)":{tag:"(5000-50FF,3000)",vr:"ox",name:"RETIRED_CurveData",vm:"1",version:"DICOM/retired"},"(6000-60FF,0012)":{tag:"(6000-60FF,0012)",vr:"US",name:"RETIRED_OverlayPlanes",vm:"1",version:"DICOM/retired"},"(6000-60FF,0052)":{tag:"(6000-60FF,0052)",vr:"US",name:"RETIRED_OverlayPlaneOrigin",vm:"1",version:"DICOM/retired"},"(6000-60FF,0060)":{tag:"(6000-60FF,0060)",vr:"CS",name:"RETIRED_OverlayCompressionCode",vm:"1",version:"DICOM/retired"},"(6000-60FF,0061)":{tag:"(6000-60FF,0061)",vr:"SH",name:"RETIRED_OverlayCompressionOriginator",vm:"1",version:"DICOM/retired"},"(6000-60FF,0062)":{tag:"(6000-60FF,0062)",vr:"SH",name:"RETIRED_OverlayCompressionLabel",vm:"1",version:"DICOM/retired"},"(6000-60FF,0063)":{tag:"(6000-60FF,0063)",vr:"CS",name:"RETIRED_OverlayCompressionDescription",vm:"1",version:"DICOM/retired"},"(6000-60FF,0066)":{tag:"(6000-60FF,0066)",vr:"AT",name:"RETIRED_OverlayCompressionStepPointers",vm:"1-n",version:"DICOM/retired"},"(6000-60FF,0068)":{tag:"(6000-60FF,0068)",vr:"US",name:"RETIRED_OverlayRepeatInterval",vm:"1",version:"DICOM/retired"},"(6000-60FF,0069)":{tag:"(6000-60FF,0069)",vr:"US",name:"RETIRED_OverlayBitsGrouped",vm:"1",version:"DICOM/retired"},"(6000-60FF,0110)":{tag:"(6000-60FF,0110)",vr:"CS",name:"RETIRED_OverlayFormat",vm:"1",version:"DICOM/retired"},"(6000-60FF,0200)":{tag:"(6000-60FF,0200)",vr:"US",name:"RETIRED_OverlayLocation",vm:"1",version:"DICOM/retired"},"(6000-60FF,0800)":{tag:"(6000-60FF,0800)",vr:"CS",name:"RETIRED_OverlayCodeLabel",vm:"1-n",version:"DICOM/retired"},"(6000-60FF,0802)":{tag:"(6000-60FF,0802)",vr:"US",name:"RETIRED_OverlayNumberOfTables",vm:"1",version:"DICOM/retired"},"(6000-60FF,0803)":{tag:"(6000-60FF,0803)",vr:"AT",name:"RETIRED_OverlayCodeTableLocation",vm:"1-n",version:"DICOM/retired"},"(6000-60FF,0804)":{tag:"(6000-60FF,0804)",vr:"US",name:"RETIRED_OverlayBitsForCodeWord",vm:"1",version:"DICOM/retired"},"(6000-60FF,1100)":{tag:"(6000-60FF,1100)",vr:"US",name:"RETIRED_OverlayDescriptorGray",vm:"1",version:"DICOM/retired"},"(6000-60FF,1101)":{tag:"(6000-60FF,1101)",vr:"US",name:"RETIRED_OverlayDescriptorRed",vm:"1",version:"DICOM/retired"},"(6000-60FF,1102)":{tag:"(6000-60FF,1102)",vr:"US",name:"RETIRED_OverlayDescriptorGreen",vm:"1",version:"DICOM/retired"},"(6000-60FF,1103)":{tag:"(6000-60FF,1103)",vr:"US",name:"RETIRED_OverlayDescriptorBlue",vm:"1",version:"DICOM/retired"},"(6000-60FF,1200)":{tag:"(6000-60FF,1200)",vr:"US",name:"RETIRED_OverlaysGray",vm:"1-n",version:"DICOM/retired"},"(6000-60FF,1201)":{tag:"(6000-60FF,1201)",vr:"US",name:"RETIRED_OverlaysRed",vm:"1-n",version:"DICOM/retired"},"(6000-60FF,1202)":{tag:"(6000-60FF,1202)",vr:"US",name:"RETIRED_OverlaysGreen",vm:"1-n",version:"DICOM/retired"},"(6000-60FF,1203)":{tag:"(6000-60FF,1203)",vr:"US",name:"RETIRED_OverlaysBlue",vm:"1-n",version:"DICOM/retired"},"(6000-60FF,4000)":{tag:"(6000-60FF,4000)",vr:"LT",name:"RETIRED_OverlayComments",vm:"1",version:"DICOM/retired"},"(7FE0,0020)":{tag:"(7FE0,0020)",vr:"OW",name:"RETIRED_CoefficientsSDVN",vm:"1",version:"DICOM/retired"},"(7FE0,0030)":{tag:"(7FE0,0030)",vr:"OW",name:"RETIRED_CoefficientsSDHN",vm:"1",version:"DICOM/retired"},"(7FE0,0040)":{tag:"(7FE0,0040)",vr:"OW",name:"RETIRED_CoefficientsSDDN",vm:"1",version:"DICOM/retired"},"(7F00-7FFF,0010)":{tag:"(7F00-7FFF,0010)",vr:"ox",name:"RETIRED_VariablePixelData",vm:"1",version:"DICOM/retired"},"(7F00-7FFF,0011)":{tag:"(7F00-7FFF,0011)",vr:"US",name:"RETIRED_VariableNextDataGroup",vm:"1",version:"DICOM/retired"},"(7F00-7FFF,0020)":{tag:"(7F00-7FFF,0020)",vr:"OW",name:"RETIRED_VariableCoefficientsSDVN",vm:"1",version:"DICOM/retired"},"(7F00-7FFF,0030)":{tag:"(7F00-7FFF,0030)",vr:"OW",name:"RETIRED_VariableCoefficientsSDHN",vm:"1",version:"DICOM/retired"},"(7F00-7FFF,0040)":{tag:"(7F00-7FFF,0040)",vr:"OW",name:"RETIRED_VariableCoefficientsSDDN",vm:"1",version:"DICOM/retired"},"":{tag:""},'(0019,"1.2.840.113681",10)':{tag:'(0019,"1.2.840.113681",10)',vr:"ST",name:"CRImageParamsCommon",vm:"1",version:"PrivateTag"},'(0019,"1.2.840.113681",11)':{tag:'(0019,"1.2.840.113681",11)',vr:"ST",name:"CRImageIPParamsSingle",vm:"1",version:"PrivateTag"},'(0019,"1.2.840.113681",12)':{tag:'(0019,"1.2.840.113681",12)',vr:"ST",name:"CRImageIPParamsLeft",vm:"1",version:"PrivateTag"},'(0019,"1.2.840.113681",13)':{tag:'(0019,"1.2.840.113681",13)',vr:"ST",name:"CRImageIPParamsRight",vm:"1",version:"PrivateTag"},'(0087,"1.2.840.113708.794.1.1.2.0",10)':{tag:'(0087,"1.2.840.113708.794.1.1.2.0",10)',vr:"CS",name:"MediaType",vm:"1",version:"PrivateTag"},'(0087,"1.2.840.113708.794.1.1.2.0",20)':{tag:'(0087,"1.2.840.113708.794.1.1.2.0",20)',vr:"CS",name:"MediaLocation",vm:"1",version:"PrivateTag"},'(0087,"1.2.840.113708.794.1.1.2.0",50)':{tag:'(0087,"1.2.840.113708.794.1.1.2.0",50)',vr:"IS",name:"EstimatedRetrieveTime",vm:"1",version:"PrivateTag"},'(0009,"ACUSON",00)':{tag:'(0009,"ACUSON",00)',vr:"IS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0009,"ACUSON",01)':{tag:'(0009,"ACUSON",01)',vr:"IS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0009,"ACUSON",02)':{tag:'(0009,"ACUSON",02)',vr:"UN",name:"Unknown",vm:"1",version:"PrivateTag"},'(0009,"ACUSON",03)':{tag:'(0009,"ACUSON",03)',vr:"UN",name:"Unknown",vm:"1",version:"PrivateTag"},'(0009,"ACUSON",04)':{tag:'(0009,"ACUSON",04)',vr:"UN",name:"Unknown",vm:"1",version:"PrivateTag"},'(0009,"ACUSON",05)':{tag:'(0009,"ACUSON",05)',vr:"UN",name:"Unknown",vm:"1",version:"PrivateTag"},'(0009,"ACUSON",06)':{tag:'(0009,"ACUSON",06)',vr:"UN",name:"Unknown",vm:"1",version:"PrivateTag"},'(0009,"ACUSON",07)':{tag:'(0009,"ACUSON",07)',vr:"UN",name:"Unknown",vm:"1",version:"PrivateTag"},'(0009,"ACUSON",08)':{tag:'(0009,"ACUSON",08)',vr:"LT",name:"Unknown",vm:"1",version:"PrivateTag"},'(0009,"ACUSON",09)':{tag:'(0009,"ACUSON",09)',vr:"LT",name:"Unknown",vm:"1",version:"PrivateTag"},'(0009,"ACUSON",0a)':{tag:'(0009,"ACUSON",0a)',vr:"IS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0009,"ACUSON",0b)':{tag:'(0009,"ACUSON",0b)',vr:"IS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0009,"ACUSON",0c)':{tag:'(0009,"ACUSON",0c)',vr:"IS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0009,"ACUSON",0d)':{tag:'(0009,"ACUSON",0d)',vr:"IS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0009,"ACUSON",0e)':{tag:'(0009,"ACUSON",0e)',vr:"IS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0009,"ACUSON",0f)':{tag:'(0009,"ACUSON",0f)',vr:"UN",name:"Unknown",vm:"1",version:"PrivateTag"},'(0009,"ACUSON",10)':{tag:'(0009,"ACUSON",10)',vr:"IS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0009,"ACUSON",11)':{tag:'(0009,"ACUSON",11)',vr:"UN",name:"Unknown",vm:"1",version:"PrivateTag"},'(0009,"ACUSON",12)':{tag:'(0009,"ACUSON",12)',vr:"IS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0009,"ACUSON",13)':{tag:'(0009,"ACUSON",13)',vr:"IS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0009,"ACUSON",14)':{tag:'(0009,"ACUSON",14)',vr:"LT",name:"Unknown",vm:"1",version:"PrivateTag"},'(0009,"ACUSON",15)':{tag:'(0009,"ACUSON",15)',vr:"UN",name:"Unknown",vm:"1",version:"PrivateTag"},'(0003,"AEGIS_DICOM_2.00",00)':{tag:'(0003,"AEGIS_DICOM_2.00",00)',vr:"US",name:"Unknown",vm:"1-n",version:"PrivateTag"},'(0005,"AEGIS_DICOM_2.00",00)':{tag:'(0005,"AEGIS_DICOM_2.00",00)',vr:"US",name:"Unknown",vm:"1-n",version:"PrivateTag"},'(0009,"AEGIS_DICOM_2.00",00)':{tag:'(0009,"AEGIS_DICOM_2.00",00)',vr:"US",name:"Unknown",vm:"1-n",version:"PrivateTag"},'(0019,"AEGIS_DICOM_2.00",00)':{tag:'(0019,"AEGIS_DICOM_2.00",00)',vr:"US",name:"Unknown",vm:"1-n",version:"PrivateTag"},'(0029,"AEGIS_DICOM_2.00",00)':{tag:'(0029,"AEGIS_DICOM_2.00",00)',vr:"US",name:"Unknown",vm:"1-n",version:"PrivateTag"},'(1369,"AEGIS_DICOM_2.00",00)':{tag:'(1369,"AEGIS_DICOM_2.00",00)',vr:"US",name:"Unknown",vm:"1-n",version:"PrivateTag"},'(0009,"AGFA",10)':{tag:'(0009,"AGFA",10)',vr:"LO",name:"Unknown",vm:"1",version:"PrivateTag"},'(0009,"AGFA",11)':{tag:'(0009,"AGFA",11)',vr:"LO",name:"Unknown",vm:"1",version:"PrivateTag"},'(0009,"AGFA",13)':{tag:'(0009,"AGFA",13)',vr:"LO",name:"Unknown",vm:"1",version:"PrivateTag"},'(0009,"AGFA",14)':{tag:'(0009,"AGFA",14)',vr:"LO",name:"Unknown",vm:"1",version:"PrivateTag"},'(0009,"AGFA",15)':{tag:'(0009,"AGFA",15)',vr:"LO",name:"Unknown",vm:"1",version:"PrivateTag"},'(0031,"AGFA PACS Archive Mirroring 1.0",00)':{tag:'(0031,"AGFA PACS Archive Mirroring 1.0",00)',vr:"CS",name:"StudyStatus",vm:"1",version:"PrivateTag"},'(0031,"AGFA PACS Archive Mirroring 1.0",01)':{tag:'(0031,"AGFA PACS Archive Mirroring 1.0",01)',vr:"UL",name:"DateTimeVerified",vm:"1",version:"PrivateTag"},'(0029,"CAMTRONICS IP",10)':{tag:'(0029,"CAMTRONICS IP",10)',vr:"LT",name:"Unknown",vm:"1",version:"PrivateTag"},'(0029,"CAMTRONICS IP",20)':{tag:'(0029,"CAMTRONICS IP",20)',vr:"UN",name:"Unknown",vm:"1",version:"PrivateTag"},'(0029,"CAMTRONICS IP",30)':{tag:'(0029,"CAMTRONICS IP",30)',vr:"UN",name:"Unknown",vm:"1",version:"PrivateTag"},'(0029,"CAMTRONICS IP",40)':{tag:'(0029,"CAMTRONICS IP",40)',vr:"UN",name:"Unknown",vm:"1",version:"PrivateTag"},'(0029,"CAMTRONICS",10)':{tag:'(0029,"CAMTRONICS",10)',vr:"LT",name:"Commentline",vm:"1",version:"PrivateTag"},'(0029,"CAMTRONICS",20)':{tag:'(0029,"CAMTRONICS",20)',vr:"DS",name:"EdgeEnhancementCoefficient",vm:"1",version:"PrivateTag"},'(0029,"CAMTRONICS",50)':{tag:'(0029,"CAMTRONICS",50)',vr:"LT",name:"SceneText",vm:"1",version:"PrivateTag"},'(0029,"CAMTRONICS",60)':{tag:'(0029,"CAMTRONICS",60)',vr:"LT",name:"ImageText",vm:"1",version:"PrivateTag"},'(0029,"CAMTRONICS",70)':{tag:'(0029,"CAMTRONICS",70)',vr:"IS",name:"PixelShiftHorizontal",vm:"1",version:"PrivateTag"},'(0029,"CAMTRONICS",80)':{tag:'(0029,"CAMTRONICS",80)',vr:"IS",name:"PixelShiftVertical",vm:"1",version:"PrivateTag"},'(0029,"CAMTRONICS",90)':{tag:'(0029,"CAMTRONICS",90)',vr:"IS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0009,"CARDIO-D.R. 1.0",00)':{tag:'(0009,"CARDIO-D.R. 1.0",00)',vr:"UL",name:"FileLocation",vm:"1",version:"PrivateTag"},'(0009,"CARDIO-D.R. 1.0",01)':{tag:'(0009,"CARDIO-D.R. 1.0",01)',vr:"UL",name:"FileSize",vm:"1",version:"PrivateTag"},'(0009,"CARDIO-D.R. 1.0",40)':{tag:'(0009,"CARDIO-D.R. 1.0",40)',vr:"SQ",name:"AlternateImageSequence",vm:"1",version:"PrivateTag"},'(0019,"CARDIO-D.R. 1.0",00)':{tag:'(0019,"CARDIO-D.R. 1.0",00)',vr:"CS",name:"ImageBlankingShape",vm:"1",version:"PrivateTag"},'(0019,"CARDIO-D.R. 1.0",02)':{tag:'(0019,"CARDIO-D.R. 1.0",02)',vr:"IS",name:"ImageBlankingLeftVerticalEdge",vm:"1",version:"PrivateTag"},'(0019,"CARDIO-D.R. 1.0",04)':{tag:'(0019,"CARDIO-D.R. 1.0",04)',vr:"IS",name:"ImageBlankingRightVerticalEdge",vm:"1",version:"PrivateTag"},'(0019,"CARDIO-D.R. 1.0",06)':{tag:'(0019,"CARDIO-D.R. 1.0",06)',vr:"IS",name:"ImageBlankingUpperHorizontalEdge",vm:"1",version:"PrivateTag"},'(0019,"CARDIO-D.R. 1.0",08)':{tag:'(0019,"CARDIO-D.R. 1.0",08)',vr:"IS",name:"ImageBlankingLowerHorizontalEdge",vm:"1",version:"PrivateTag"},'(0019,"CARDIO-D.R. 1.0",10)':{tag:'(0019,"CARDIO-D.R. 1.0",10)',vr:"IS",name:"CenterOfCircularImageBlanking",vm:"1",version:"PrivateTag"},'(0019,"CARDIO-D.R. 1.0",12)':{tag:'(0019,"CARDIO-D.R. 1.0",12)',vr:"IS",name:"RadiusOfCircularImageBlanking",vm:"1",version:"PrivateTag"},'(0019,"CARDIO-D.R. 1.0",30)':{tag:'(0019,"CARDIO-D.R. 1.0",30)',vr:"UL",name:"MaximumImageFrameSize",vm:"1",version:"PrivateTag"},'(0021,"CARDIO-D.R. 1.0",13)':{tag:'(0021,"CARDIO-D.R. 1.0",13)',vr:"IS",name:"ImageSequenceNumber",vm:"1",version:"PrivateTag"},'(0029,"CARDIO-D.R. 1.0",00)':{tag:'(0029,"CARDIO-D.R. 1.0",00)',vr:"SQ",name:"EdgeEnhancementSequence",vm:"1",version:"PrivateTag"},'(0029,"CARDIO-D.R. 1.0",01)':{tag:'(0029,"CARDIO-D.R. 1.0",01)',vr:"US",name:"ConvolutionKernelSize",vm:"2",version:"PrivateTag"},'(0029,"CARDIO-D.R. 1.0",02)':{tag:'(0029,"CARDIO-D.R. 1.0",02)',vr:"DS",name:"ConvolutionKernelCoefficients",vm:"1-n",version:"PrivateTag"},'(0029,"CARDIO-D.R. 1.0",03)':{tag:'(0029,"CARDIO-D.R. 1.0",03)',vr:"DS",name:"EdgeEnhancementGain",vm:"1",version:"PrivateTag"},'(0025,"CMR42 CIRCLECVI",1010)':{tag:'(0025,"CMR42 CIRCLECVI",1010)',vr:"LO",name:"WorkspaceID",vm:"1",version:"PrivateTag"},'(0025,"CMR42 CIRCLECVI",1020)':{tag:'(0025,"CMR42 CIRCLECVI",1020)',vr:"LO",name:"WorkspaceTimeString",vm:"1",version:"PrivateTag"},'(0025,"CMR42 CIRCLECVI",1030)':{tag:'(0025,"CMR42 CIRCLECVI",1030)',vr:"OB",name:"WorkspaceStream",vm:"1",version:"PrivateTag"},'(0009,"DCMTK_ANONYMIZER",00)':{tag:'(0009,"DCMTK_ANONYMIZER",00)',vr:"SQ",name:"AnonymizerUIDMap",vm:"1",version:"PrivateTag"},'(0009,"DCMTK_ANONYMIZER",10)':{tag:'(0009,"DCMTK_ANONYMIZER",10)',vr:"UI",name:"AnonymizerUIDKey",vm:"1",version:"PrivateTag"},'(0009,"DCMTK_ANONYMIZER",20)':{tag:'(0009,"DCMTK_ANONYMIZER",20)',vr:"UI",name:"AnonymizerUIDValue",vm:"1",version:"PrivateTag"},'(0009,"DCMTK_ANONYMIZER",30)':{tag:'(0009,"DCMTK_ANONYMIZER",30)',vr:"SQ",name:"AnonymizerPatientIDMap",vm:"1",version:"PrivateTag"},'(0009,"DCMTK_ANONYMIZER",40)':{tag:'(0009,"DCMTK_ANONYMIZER",40)',vr:"LO",name:"AnonymizerPatientIDKey",vm:"1",version:"PrivateTag"},'(0009,"DCMTK_ANONYMIZER",50)':{tag:'(0009,"DCMTK_ANONYMIZER",50)',vr:"LO",name:"AnonymizerPatientIDValue",vm:"1",version:"PrivateTag"},'(0019,"DIDI TO PCR 1.1",22)':{tag:'(0019,"DIDI TO PCR 1.1",22)',vr:"UN",name:"RouteAET",vm:"1",version:"PrivateTag"},'(0019,"DIDI TO PCR 1.1",23)':{tag:'(0019,"DIDI TO PCR 1.1",23)',vr:"DS",name:"PCRPrintScale",vm:"1",version:"PrivateTag"},'(0019,"DIDI TO PCR 1.1",24)':{tag:'(0019,"DIDI TO PCR 1.1",24)',vr:"UN",name:"PCRPrintJobEnd",vm:"1",version:"PrivateTag"},'(0019,"DIDI TO PCR 1.1",25)':{tag:'(0019,"DIDI TO PCR 1.1",25)',vr:"IS",name:"PCRNoFilmCopies",vm:"1",version:"PrivateTag"},'(0019,"DIDI TO PCR 1.1",26)':{tag:'(0019,"DIDI TO PCR 1.1",26)',vr:"IS",name:"PCRFilmLayoutPosition",vm:"1",version:"PrivateTag"},'(0019,"DIDI TO PCR 1.1",27)':{tag:'(0019,"DIDI TO PCR 1.1",27)',vr:"UN",name:"PCRPrintReportName",vm:"1",version:"PrivateTag"},'(0019,"DIDI TO PCR 1.1",70)':{tag:'(0019,"DIDI TO PCR 1.1",70)',vr:"UN",name:"RADProtocolPrinter",vm:"1",version:"PrivateTag"},'(0019,"DIDI TO PCR 1.1",71)':{tag:'(0019,"DIDI TO PCR 1.1",71)',vr:"UN",name:"RADProtocolMedium",vm:"1",version:"PrivateTag"},'(0019,"DIDI TO PCR 1.1",90)':{tag:'(0019,"DIDI TO PCR 1.1",90)',vr:"LO",name:"UnprocessedFlag",vm:"1",version:"PrivateTag"},'(0019,"DIDI TO PCR 1.1",91)':{tag:'(0019,"DIDI TO PCR 1.1",91)',vr:"UN",name:"KeyValues",vm:"1",version:"PrivateTag"},'(0019,"DIDI TO PCR 1.1",92)':{tag:'(0019,"DIDI TO PCR 1.1",92)',vr:"UN",name:"DestinationPostprocessingFunction",vm:"1",version:"PrivateTag"},'(0019,"DIDI TO PCR 1.1",A0)':{tag:'(0019,"DIDI TO PCR 1.1",A0)',vr:"UN",name:"Version",vm:"1",version:"PrivateTag"},'(0019,"DIDI TO PCR 1.1",A1)':{tag:'(0019,"DIDI TO PCR 1.1",A1)',vr:"UN",name:"RangingMode",vm:"1",version:"PrivateTag"},'(0019,"DIDI TO PCR 1.1",A2)':{tag:'(0019,"DIDI TO PCR 1.1",A2)',vr:"UN",name:"AbdomenBrightness",vm:"1",version:"PrivateTag"},'(0019,"DIDI TO PCR 1.1",A3)':{tag:'(0019,"DIDI TO PCR 1.1",A3)',vr:"UN",name:"FixedBrightness",vm:"1",version:"PrivateTag"},'(0019,"DIDI TO PCR 1.1",A4)':{tag:'(0019,"DIDI TO PCR 1.1",A4)',vr:"UN",name:"DetailContrast",vm:"1",version:"PrivateTag"},'(0019,"DIDI TO PCR 1.1",A5)':{tag:'(0019,"DIDI TO PCR 1.1",A5)',vr:"UN",name:"ContrastBalance",vm:"1",version:"PrivateTag"},'(0019,"DIDI TO PCR 1.1",A6)':{tag:'(0019,"DIDI TO PCR 1.1",A6)',vr:"UN",name:"StructureBoost",vm:"1",version:"PrivateTag"},'(0019,"DIDI TO PCR 1.1",A7)':{tag:'(0019,"DIDI TO PCR 1.1",A7)',vr:"UN",name:"StructurePreference",vm:"1",version:"PrivateTag"},'(0019,"DIDI TO PCR 1.1",A8)':{tag:'(0019,"DIDI TO PCR 1.1",A8)',vr:"UN",name:"NoiseRobustness",vm:"1",version:"PrivateTag"},'(0019,"DIDI TO PCR 1.1",A9)':{tag:'(0019,"DIDI TO PCR 1.1",A9)',vr:"UN",name:"NoiseDoseLimit",vm:"1",version:"PrivateTag"},'(0019,"DIDI TO PCR 1.1",AA)':{tag:'(0019,"DIDI TO PCR 1.1",AA)',vr:"UN",name:"NoiseDoseStep",vm:"1",version:"PrivateTag"},'(0019,"DIDI TO PCR 1.1",AB)':{tag:'(0019,"DIDI TO PCR 1.1",AB)',vr:"UN",name:"NoiseFrequencyLimit",vm:"1",version:"PrivateTag"},'(0019,"DIDI TO PCR 1.1",AC)':{tag:'(0019,"DIDI TO PCR 1.1",AC)',vr:"UN",name:"WeakContrastLimit",vm:"1",version:"PrivateTag"},'(0019,"DIDI TO PCR 1.1",AD)':{tag:'(0019,"DIDI TO PCR 1.1",AD)',vr:"UN",name:"StrongContrastLimit",vm:"1",version:"PrivateTag"},'(0019,"DIDI TO PCR 1.1",AE)':{tag:'(0019,"DIDI TO PCR 1.1",AE)',vr:"UN",name:"StructureBoostOffset",vm:"1",version:"PrivateTag"},'(0019,"DIDI TO PCR 1.1",AF)':{tag:'(0019,"DIDI TO PCR 1.1",AF)',vr:"UN",name:"SmoothGain",vm:"1",version:"PrivateTag"},'(0019,"DIDI TO PCR 1.1",B0)':{tag:'(0019,"DIDI TO PCR 1.1",B0)',vr:"UN",name:"MeasureField1",vm:"1",version:"PrivateTag"},'(0019,"DIDI TO PCR 1.1",B1)':{tag:'(0019,"DIDI TO PCR 1.1",B1)',vr:"UN",name:"MeasureField2",vm:"1",version:"PrivateTag"},'(0019,"DIDI TO PCR 1.1",B2)':{tag:'(0019,"DIDI TO PCR 1.1",B2)',vr:"UN",name:"KeyPercentile1",vm:"1",version:"PrivateTag"},'(0019,"DIDI TO PCR 1.1",B3)':{tag:'(0019,"DIDI TO PCR 1.1",B3)',vr:"UN",name:"KeyPercentile2",vm:"1",version:"PrivateTag"},'(0019,"DIDI TO PCR 1.1",B4)':{tag:'(0019,"DIDI TO PCR 1.1",B4)',vr:"UN",name:"DensityLUT",vm:"1",version:"PrivateTag"},'(0019,"DIDI TO PCR 1.1",B5)':{tag:'(0019,"DIDI TO PCR 1.1",B5)',vr:"UN",name:"Brightness",vm:"1",version:"PrivateTag"},'(0019,"DIDI TO PCR 1.1",B6)':{tag:'(0019,"DIDI TO PCR 1.1",B6)',vr:"UN",name:"Gamma",vm:"1",version:"PrivateTag"},'(0089,"DIDI TO PCR 1.1",10)':{tag:'(0089,"DIDI TO PCR 1.1",10)',vr:"SQ",name:"Unknown",vm:"1",version:"PrivateTag"},'(0029,"DIGISCAN IMAGE",31)':{tag:'(0029,"DIGISCAN IMAGE",31)',vr:"US",name:"Unknown",vm:"1-n",version:"PrivateTag"},'(0029,"DIGISCAN IMAGE",32)':{tag:'(0029,"DIGISCAN IMAGE",32)',vr:"US",name:"Unknown",vm:"1-n",version:"PrivateTag"},'(0029,"DIGISCAN IMAGE",33)':{tag:'(0029,"DIGISCAN IMAGE",33)',vr:"LT",name:"Unknown",vm:"1",version:"PrivateTag"},'(0029,"DIGISCAN IMAGE",34)':{tag:'(0029,"DIGISCAN IMAGE",34)',vr:"LT",name:"Unknown",vm:"1",version:"PrivateTag"},'(7001-o-70ff,"DLX_ANNOT_01",04)':{tag:'(7001-o-70ff,"DLX_ANNOT_01",04)',vr:"ST",name:"TextAnnotation",vm:"1",version:"PrivateTag"},'(7001-o-70ff,"DLX_ANNOT_01",05)':{tag:'(7001-o-70ff,"DLX_ANNOT_01",05)',vr:"IS",name:"Box",vm:"2",version:"PrivateTag"},'(7001-o-70ff,"DLX_ANNOT_01",07)':{tag:'(7001-o-70ff,"DLX_ANNOT_01",07)',vr:"IS",name:"ArrowEnd",vm:"2",version:"PrivateTag"},'(0015,"DLX_EXAMS_01",01)':{tag:'(0015,"DLX_EXAMS_01",01)',vr:"DS",name:"StenosisCalibrationRatio",vm:"1",version:"PrivateTag"},'(0015,"DLX_EXAMS_01",02)':{tag:'(0015,"DLX_EXAMS_01",02)',vr:"DS",name:"StenosisMagnification",vm:"1",version:"PrivateTag"},'(0015,"DLX_EXAMS_01",03)':{tag:'(0015,"DLX_EXAMS_01",03)',vr:"DS",name:"CardiacCalibrationRatio",vm:"1",version:"PrivateTag"},'(6001-o-60ff,"DLX_LKUP_01",01)':{tag:'(6001-o-60ff,"DLX_LKUP_01",01)',vr:"US",name:"GrayPaletteColorLookupTableDescriptor",vm:"3",version:"PrivateTag"},'(6001-o-60ff,"DLX_LKUP_01",02)':{tag:'(6001-o-60ff,"DLX_LKUP_01",02)',vr:"US",name:"GrayPaletteColorLookupTableData",vm:"1",version:"PrivateTag"},'(0011,"DLX_PATNT_01",01)':{tag:'(0011,"DLX_PATNT_01",01)',vr:"LT",name:"PatientDOB",vm:"1",version:"PrivateTag"},'(0019,"DLX_SERIE_01",01)':{tag:'(0019,"DLX_SERIE_01",01)',vr:"DS",name:"AngleValueLArm",vm:"1",version:"PrivateTag"},'(0019,"DLX_SERIE_01",02)':{tag:'(0019,"DLX_SERIE_01",02)',vr:"DS",name:"AngleValuePArm",vm:"1",version:"PrivateTag"},'(0019,"DLX_SERIE_01",03)':{tag:'(0019,"DLX_SERIE_01",03)',vr:"DS",name:"AngleValueCArm",vm:"1",version:"PrivateTag"},'(0019,"DLX_SERIE_01",04)':{tag:'(0019,"DLX_SERIE_01",04)',vr:"CS",name:"AngleLabelLArm",vm:"1",version:"PrivateTag"},'(0019,"DLX_SERIE_01",05)':{tag:'(0019,"DLX_SERIE_01",05)',vr:"CS",name:"AngleLabelPArm",vm:"1",version:"PrivateTag"},'(0019,"DLX_SERIE_01",06)':{tag:'(0019,"DLX_SERIE_01",06)',vr:"CS",name:"AngleLabelCArm",vm:"1",version:"PrivateTag"},'(0019,"DLX_SERIE_01",07)':{tag:'(0019,"DLX_SERIE_01",07)',vr:"ST",name:"ProcedureName",vm:"1",version:"PrivateTag"},'(0019,"DLX_SERIE_01",08)':{tag:'(0019,"DLX_SERIE_01",08)',vr:"ST",name:"ExamName",vm:"1",version:"PrivateTag"},'(0019,"DLX_SERIE_01",09)':{tag:'(0019,"DLX_SERIE_01",09)',vr:"SH",name:"PatientSize",vm:"1",version:"PrivateTag"},'(0019,"DLX_SERIE_01",0a)':{tag:'(0019,"DLX_SERIE_01",0a)',vr:"IS",name:"RecordView",vm:"1",version:"PrivateTag"},'(0019,"DLX_SERIE_01",10)':{tag:'(0019,"DLX_SERIE_01",10)',vr:"DS",name:"InjectorDelay",vm:"1",version:"PrivateTag"},'(0019,"DLX_SERIE_01",11)':{tag:'(0019,"DLX_SERIE_01",11)',vr:"CS",name:"AutoInject",vm:"1",version:"PrivateTag"},'(0019,"DLX_SERIE_01",14)':{tag:'(0019,"DLX_SERIE_01",14)',vr:"IS",name:"AcquisitionMode",vm:"1",version:"PrivateTag"},'(0019,"DLX_SERIE_01",15)':{tag:'(0019,"DLX_SERIE_01",15)',vr:"CS",name:"CameraRotationEnabled",vm:"1",version:"PrivateTag"},'(0019,"DLX_SERIE_01",16)':{tag:'(0019,"DLX_SERIE_01",16)',vr:"CS",name:"ReverseSweep",vm:"1",version:"PrivateTag"},'(0019,"DLX_SERIE_01",17)':{tag:'(0019,"DLX_SERIE_01",17)',vr:"IS",name:"SpatialFilterStrength",vm:"1",version:"PrivateTag"},'(0019,"DLX_SERIE_01",18)':{tag:'(0019,"DLX_SERIE_01",18)',vr:"IS",name:"ZoomFactor",vm:"1",version:"PrivateTag"},'(0019,"DLX_SERIE_01",19)':{tag:'(0019,"DLX_SERIE_01",19)',vr:"IS",name:"XZoomCenter",vm:"1",version:"PrivateTag"},'(0019,"DLX_SERIE_01",1a)':{tag:'(0019,"DLX_SERIE_01",1a)',vr:"IS",name:"YZoomCenter",vm:"1",version:"PrivateTag"},'(0019,"DLX_SERIE_01",1b)':{tag:'(0019,"DLX_SERIE_01",1b)',vr:"DS",name:"Focus",vm:"1",version:"PrivateTag"},'(0019,"DLX_SERIE_01",1c)':{tag:'(0019,"DLX_SERIE_01",1c)',vr:"CS",name:"Dose",vm:"1",version:"PrivateTag"},'(0019,"DLX_SERIE_01",1d)':{tag:'(0019,"DLX_SERIE_01",1d)',vr:"IS",name:"SideMark",vm:"1",version:"PrivateTag"},'(0019,"DLX_SERIE_01",1e)':{tag:'(0019,"DLX_SERIE_01",1e)',vr:"IS",name:"PercentageLandscape",vm:"1",version:"PrivateTag"},'(0019,"DLX_SERIE_01",1f)':{tag:'(0019,"DLX_SERIE_01",1f)',vr:"DS",name:"ExposureDuration",vm:"1",version:"PrivateTag"},'(00E1,"ELSCINT1",01)':{tag:'(00E1,"ELSCINT1",01)',vr:"US",name:"DataDictionaryVersion",vm:"1",version:"PrivateTag"},'(00E1,"ELSCINT1",14)':{tag:'(00E1,"ELSCINT1",14)',vr:"LT",name:"Unknown",vm:"1",version:"PrivateTag"},'(00E1,"ELSCINT1",22)':{tag:'(00E1,"ELSCINT1",22)',vr:"DS",name:"Unknown",vm:"2",version:"PrivateTag"},'(00E1,"ELSCINT1",23)':{tag:'(00E1,"ELSCINT1",23)',vr:"DS",name:"Unknown",vm:"2",version:"PrivateTag"},'(00E1,"ELSCINT1",24)':{tag:'(00E1,"ELSCINT1",24)',vr:"LT",name:"Unknown",vm:"1",version:"PrivateTag"},'(00E1,"ELSCINT1",25)':{tag:'(00E1,"ELSCINT1",25)',vr:"LT",name:"Unknown",vm:"1",version:"PrivateTag"},'(00E1,"ELSCINT1",40)':{tag:'(00E1,"ELSCINT1",40)',vr:"SH",name:"OffsetFromCTMRImages",vm:"1",version:"PrivateTag"},'(0601,"ELSCINT1",00)':{tag:'(0601,"ELSCINT1",00)',vr:"SH",name:"ImplementationVersion",vm:"1",version:"PrivateTag"},'(0601,"ELSCINT1",20)':{tag:'(0601,"ELSCINT1",20)',vr:"DS",name:"RelativeTablePosition",vm:"1",version:"PrivateTag"},'(0601,"ELSCINT1",21)':{tag:'(0601,"ELSCINT1",21)',vr:"DS",name:"RelativeTableHeight",vm:"1",version:"PrivateTag"},'(0601,"ELSCINT1",30)':{tag:'(0601,"ELSCINT1",30)',vr:"SH",name:"SurviewDirection",vm:"1",version:"PrivateTag"},'(0601,"ELSCINT1",31)':{tag:'(0601,"ELSCINT1",31)',vr:"DS",name:"SurviewLength",vm:"1",version:"PrivateTag"},'(0601,"ELSCINT1",50)':{tag:'(0601,"ELSCINT1",50)',vr:"SH",name:"ImageViewType",vm:"1",version:"PrivateTag"},'(0601,"ELSCINT1",70)':{tag:'(0601,"ELSCINT1",70)',vr:"DS",name:"BatchNumber",vm:"1",version:"PrivateTag"},'(0601,"ELSCINT1",71)':{tag:'(0601,"ELSCINT1",71)',vr:"DS",name:"BatchSize",vm:"1",version:"PrivateTag"},'(0601,"ELSCINT1",72)':{tag:'(0601,"ELSCINT1",72)',vr:"DS",name:"BatchSliceNumber",vm:"1",version:"PrivateTag"},'(0009,"FDMS 1.0",04)':{tag:'(0009,"FDMS 1.0",04)',vr:"SH",name:"ImageControlUnit",vm:"1",version:"PrivateTag"},'(0009,"FDMS 1.0",05)':{tag:'(0009,"FDMS 1.0",05)',vr:"OW",name:"ImageUID",vm:"1",version:"PrivateTag"},'(0009,"FDMS 1.0",06)':{tag:'(0009,"FDMS 1.0",06)',vr:"OW",name:"RouteImageUID",vm:"1",version:"PrivateTag"},'(0009,"FDMS 1.0",08)':{tag:'(0009,"FDMS 1.0",08)',vr:"UL",name:"ImageDisplayInformationVersionNo",vm:"1",version:"PrivateTag"},'(0009,"FDMS 1.0",09)':{tag:'(0009,"FDMS 1.0",09)',vr:"UL",name:"PatientInformationVersionNo",vm:"1",version:"PrivateTag"},'(0009,"FDMS 1.0",0C)':{tag:'(0009,"FDMS 1.0",0C)',vr:"OW",name:"FilmUID",vm:"1",version:"PrivateTag"},'(0009,"FDMS 1.0",10)':{tag:'(0009,"FDMS 1.0",10)',vr:"CS",name:"ExposureUnitTypeCode",vm:"1",version:"PrivateTag"},'(0009,"FDMS 1.0",80)':{tag:'(0009,"FDMS 1.0",80)',vr:"LO",name:"KanjiHospitalName",vm:"1",version:"PrivateTag"},'(0009,"FDMS 1.0",90)':{tag:'(0009,"FDMS 1.0",90)',vr:"ST",name:"DistributionCode",vm:"1",version:"PrivateTag"},'(0009,"FDMS 1.0",92)':{tag:'(0009,"FDMS 1.0",92)',vr:"SH",name:"KanjiDepartmentName",vm:"1",version:"PrivateTag"},'(0009,"FDMS 1.0",F0)':{tag:'(0009,"FDMS 1.0",F0)',vr:"CS",name:"BlackeningProcessFlag",vm:"1",version:"PrivateTag"},'(0019,"FDMS 1.0",15)':{tag:'(0019,"FDMS 1.0",15)',vr:"LO",name:"KanjiBodyPartForExposure",vm:"1",version:"PrivateTag"},'(0019,"FDMS 1.0",32)':{tag:'(0019,"FDMS 1.0",32)',vr:"LO",name:"KanjiMenuName",vm:"1",version:"PrivateTag"},'(0019,"FDMS 1.0",40)':{tag:'(0019,"FDMS 1.0",40)',vr:"CS",name:"ImageProcessingType",vm:"1",version:"PrivateTag"},'(0019,"FDMS 1.0",50)':{tag:'(0019,"FDMS 1.0",50)',vr:"CS",name:"EDRMode",vm:"1",version:"PrivateTag"},'(0019,"FDMS 1.0",60)':{tag:'(0019,"FDMS 1.0",60)',vr:"SH",name:"RadiographersCode",vm:"1",version:"PrivateTag"},'(0019,"FDMS 1.0",70)':{tag:'(0019,"FDMS 1.0",70)',vr:"IS",name:"SplitExposureFormat",vm:"1",version:"PrivateTag"},'(0019,"FDMS 1.0",71)':{tag:'(0019,"FDMS 1.0",71)',vr:"IS",name:"NoOfSplitExposureFrames",vm:"1",version:"PrivateTag"},'(0019,"FDMS 1.0",80)':{tag:'(0019,"FDMS 1.0",80)',vr:"IS",name:"ReadingPositionSpecification",vm:"1",version:"PrivateTag"},'(0019,"FDMS 1.0",81)':{tag:'(0019,"FDMS 1.0",81)',vr:"IS",name:"ReadingSensitivityCenter",vm:"1",version:"PrivateTag"},'(0019,"FDMS 1.0",90)':{tag:'(0019,"FDMS 1.0",90)',vr:"SH",name:"FilmAnnotationCharacterString1",vm:"1",version:"PrivateTag"},'(0019,"FDMS 1.0",91)':{tag:'(0019,"FDMS 1.0",91)',vr:"SH",name:"FilmAnnotationCharacterString2",vm:"1",version:"PrivateTag"},'(0021,"FDMS 1.0",10)':{tag:'(0021,"FDMS 1.0",10)',vr:"CS",name:"FCRImageID",vm:"1",version:"PrivateTag"},'(0021,"FDMS 1.0",30)':{tag:'(0021,"FDMS 1.0",30)',vr:"CS",name:"SetNo",vm:"1",version:"PrivateTag"},'(0021,"FDMS 1.0",40)':{tag:'(0021,"FDMS 1.0",40)',vr:"IS",name:"ImageNoInTheSet",vm:"1",version:"PrivateTag"},'(0021,"FDMS 1.0",50)':{tag:'(0021,"FDMS 1.0",50)',vr:"CS",name:"PairProcessingInformation",vm:"1",version:"PrivateTag"},'(0021,"FDMS 1.0",80)':{tag:'(0021,"FDMS 1.0",80)',vr:"OB",name:"EquipmentTypeSpecificInformation",vm:"1",version:"PrivateTag"},'(0023,"FDMS 1.0",10)':{tag:'(0023,"FDMS 1.0",10)',vr:"SQ",name:"Unknown",vm:"1",version:"PrivateTag"},'(0023,"FDMS 1.0",20)':{tag:'(0023,"FDMS 1.0",20)',vr:"SQ",name:"Unknown",vm:"1",version:"PrivateTag"},'(0023,"FDMS 1.0",30)':{tag:'(0023,"FDMS 1.0",30)',vr:"SQ",name:"Unknown",vm:"1",version:"PrivateTag"},'(0025,"FDMS 1.0",10)':{tag:'(0025,"FDMS 1.0",10)',vr:"US",name:"RelativeLightEmissionAmountSk",vm:"1",version:"PrivateTag"},'(0025,"FDMS 1.0",11)':{tag:'(0025,"FDMS 1.0",11)',vr:"US",name:"TermOfCorrectionForEachIPTypeSt",vm:"1",version:"PrivateTag"},'(0025,"FDMS 1.0",12)':{tag:'(0025,"FDMS 1.0",12)',vr:"US",name:"ReadingGainGp",vm:"1",version:"PrivateTag"},'(0025,"FDMS 1.0",13)':{tag:'(0025,"FDMS 1.0",13)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0025,"FDMS 1.0",15)':{tag:'(0025,"FDMS 1.0",15)',vr:"CS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0025,"FDMS 1.0",20)':{tag:'(0025,"FDMS 1.0",20)',vr:"US",name:"Unknown",vm:"2",version:"PrivateTag"},'(0025,"FDMS 1.0",21)':{tag:'(0025,"FDMS 1.0",21)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0025,"FDMS 1.0",30)':{tag:'(0025,"FDMS 1.0",30)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0025,"FDMS 1.0",31)':{tag:'(0025,"FDMS 1.0",31)',vr:"SS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0025,"FDMS 1.0",32)':{tag:'(0025,"FDMS 1.0",32)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0025,"FDMS 1.0",33)':{tag:'(0025,"FDMS 1.0",33)',vr:"SS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0025,"FDMS 1.0",34)':{tag:'(0025,"FDMS 1.0",34)',vr:"SS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0025,"FDMS 1.0",40)':{tag:'(0025,"FDMS 1.0",40)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0025,"FDMS 1.0",41)':{tag:'(0025,"FDMS 1.0",41)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0025,"FDMS 1.0",42)':{tag:'(0025,"FDMS 1.0",42)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0025,"FDMS 1.0",43)':{tag:'(0025,"FDMS 1.0",43)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0025,"FDMS 1.0",50)':{tag:'(0025,"FDMS 1.0",50)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0025,"FDMS 1.0",51)':{tag:'(0025,"FDMS 1.0",51)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0025,"FDMS 1.0",52)':{tag:'(0025,"FDMS 1.0",52)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0025,"FDMS 1.0",53)':{tag:'(0025,"FDMS 1.0",53)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0025,"FDMS 1.0",60)':{tag:'(0025,"FDMS 1.0",60)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0025,"FDMS 1.0",61)':{tag:'(0025,"FDMS 1.0",61)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0025,"FDMS 1.0",62)':{tag:'(0025,"FDMS 1.0",62)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0025,"FDMS 1.0",63)':{tag:'(0025,"FDMS 1.0",63)',vr:"CS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0025,"FDMS 1.0",70)':{tag:'(0025,"FDMS 1.0",70)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0025,"FDMS 1.0",71)':{tag:'(0025,"FDMS 1.0",71)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0025,"FDMS 1.0",72)':{tag:'(0025,"FDMS 1.0",72)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0025,"FDMS 1.0",73)':{tag:'(0025,"FDMS 1.0",73)',vr:"US",name:"Unknown",vm:"1-n",version:"PrivateTag"},'(0025,"FDMS 1.0",74)':{tag:'(0025,"FDMS 1.0",74)',vr:"US",name:"Unknown",vm:"1-n",version:"PrivateTag"},'(0025,"FDMS 1.0",80)':{tag:'(0025,"FDMS 1.0",80)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0025,"FDMS 1.0",81)':{tag:'(0025,"FDMS 1.0",81)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0025,"FDMS 1.0",82)':{tag:'(0025,"FDMS 1.0",82)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0025,"FDMS 1.0",83)':{tag:'(0025,"FDMS 1.0",83)',vr:"US",name:"Unknown",vm:"1-n",version:"PrivateTag"},'(0025,"FDMS 1.0",84)':{tag:'(0025,"FDMS 1.0",84)',vr:"US",name:"Unknown",vm:"1-n",version:"PrivateTag"},'(0025,"FDMS 1.0",90)':{tag:'(0025,"FDMS 1.0",90)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0025,"FDMS 1.0",91)':{tag:'(0025,"FDMS 1.0",91)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0025,"FDMS 1.0",92)':{tag:'(0025,"FDMS 1.0",92)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0025,"FDMS 1.0",93)':{tag:'(0025,"FDMS 1.0",93)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0025,"FDMS 1.0",94)':{tag:'(0025,"FDMS 1.0",94)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0025,"FDMS 1.0",95)':{tag:'(0025,"FDMS 1.0",95)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0025,"FDMS 1.0",96)':{tag:'(0025,"FDMS 1.0",96)',vr:"CS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0025,"FDMS 1.0",a0)':{tag:'(0025,"FDMS 1.0",a0)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0025,"FDMS 1.0",a1)':{tag:'(0025,"FDMS 1.0",a1)',vr:"SS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0025,"FDMS 1.0",a2)':{tag:'(0025,"FDMS 1.0",a2)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0025,"FDMS 1.0",a3)':{tag:'(0025,"FDMS 1.0",a3)',vr:"SS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0027,"FDMS 1.0",10)':{tag:'(0027,"FDMS 1.0",10)',vr:"SQ",name:"Unknown",vm:"1",version:"PrivateTag"},'(0027,"FDMS 1.0",20)':{tag:'(0027,"FDMS 1.0",20)',vr:"SQ",name:"Unknown",vm:"1",version:"PrivateTag"},'(0027,"FDMS 1.0",30)':{tag:'(0027,"FDMS 1.0",30)',vr:"SQ",name:"Unknown",vm:"1",version:"PrivateTag"},'(0027,"FDMS 1.0",40)':{tag:'(0027,"FDMS 1.0",40)',vr:"SQ",name:"Unknown",vm:"1",version:"PrivateTag"},'(0027,"FDMS 1.0",50)':{tag:'(0027,"FDMS 1.0",50)',vr:"SQ",name:"Unknown",vm:"1",version:"PrivateTag"},'(0027,"FDMS 1.0",60)':{tag:'(0027,"FDMS 1.0",60)',vr:"SQ",name:"Unknown",vm:"1",version:"PrivateTag"},'(0027,"FDMS 1.0",70)':{tag:'(0027,"FDMS 1.0",70)',vr:"SQ",name:"Unknown",vm:"1",version:"PrivateTag"},'(0027,"FDMS 1.0",80)':{tag:'(0027,"FDMS 1.0",80)',vr:"SQ",name:"Unknown",vm:"1",version:"PrivateTag"},'(0027,"FDMS 1.0",a0)':{tag:'(0027,"FDMS 1.0",a0)',vr:"IS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0027,"FDMS 1.0",a1)':{tag:'(0027,"FDMS 1.0",a1)',vr:"CS",name:"Unknown",vm:"2",version:"PrivateTag"},'(0027,"FDMS 1.0",a2)':{tag:'(0027,"FDMS 1.0",a2)',vr:"CS",name:"Unknown",vm:"2",version:"PrivateTag"},'(0027,"FDMS 1.0",a3)':{tag:'(0027,"FDMS 1.0",a3)',vr:"SS",name:"Unknown",vm:"1-n",version:"PrivateTag"},'(0029,"FDMS 1.0",20)':{tag:'(0029,"FDMS 1.0",20)',vr:"CS",name:"ImageScanningDirection",vm:"1",version:"PrivateTag"},'(0029,"FDMS 1.0",30)':{tag:'(0029,"FDMS 1.0",30)',vr:"CS",name:"ExtendedReadingSizeValue",vm:"1",version:"PrivateTag"},'(0029,"FDMS 1.0",34)':{tag:'(0029,"FDMS 1.0",34)',vr:"US",name:"MagnificationReductionRatio",vm:"1",version:"PrivateTag"},'(0029,"FDMS 1.0",44)':{tag:'(0029,"FDMS 1.0",44)',vr:"CS",name:"LineDensityCode",vm:"1",version:"PrivateTag"},'(0029,"FDMS 1.0",50)':{tag:'(0029,"FDMS 1.0",50)',vr:"CS",name:"DataCompressionCode",vm:"1",version:"PrivateTag"},'(2011,"FDMS 1.0",11)':{tag:'(2011,"FDMS 1.0",11)',vr:"CS",name:"ImagePosition SpecifyingFlag",vm:"1",version:"PrivateTag"},'(50F1,"FDMS 1.0",06)':{tag:'(50F1,"FDMS 1.0",06)',vr:"CS",name:"EnergySubtractionParam",vm:"1",version:"PrivateTag"},'(50F1,"FDMS 1.0",07)':{tag:'(50F1,"FDMS 1.0",07)',vr:"CS",name:"SubtractionRegistrationResult",vm:"1",version:"PrivateTag"},'(50F1,"FDMS 1.0",08)':{tag:'(50F1,"FDMS 1.0",08)',vr:"CS",name:"EnergySubtractionParam2",vm:"1",version:"PrivateTag"},'(50F1,"FDMS 1.0",09)':{tag:'(50F1,"FDMS 1.0",09)',vr:"SL",name:"AfinConversionCoefficient",vm:"1",version:"PrivateTag"},'(50F1,"FDMS 1.0",10)':{tag:'(50F1,"FDMS 1.0",10)',vr:"CS",name:"FilmOutputFormat",vm:"1",version:"PrivateTag"},'(50F1,"FDMS 1.0",20)':{tag:'(50F1,"FDMS 1.0",20)',vr:"CS",name:"ImageProcessingModificationFlag",vm:"1",version:"PrivateTag"},'(0009,"FFP DATA",01)':{tag:'(0009,"FFP DATA",01)',vr:"UN",name:"CRHeaderInformation",vm:"1",version:"PrivateTag"},'(0019,"GE ??? From Adantage Review CS",30)':{tag:'(0019,"GE ??? From Adantage Review CS",30)',vr:"LO",name:"CREDRMode",vm:"1",version:"PrivateTag"},'(0019,"GE ??? From Adantage Review CS",40)':{tag:'(0019,"GE ??? From Adantage Review CS",40)',vr:"LO",name:"CRLatitude",vm:"1",version:"PrivateTag"},'(0019,"GE ??? From Adantage Review CS",50)':{tag:'(0019,"GE ??? From Adantage Review CS",50)',vr:"LO",name:"CRGroupNumber",vm:"1",version:"PrivateTag"},'(0019,"GE ??? From Adantage Review CS",70)':{tag:'(0019,"GE ??? From Adantage Review CS",70)',vr:"LO",name:"CRImageSerialNumber",vm:"1",version:"PrivateTag"},'(0019,"GE ??? From Adantage Review CS",80)':{tag:'(0019,"GE ??? From Adantage Review CS",80)',vr:"LO",name:"CRBarCodeNumber",vm:"1",version:"PrivateTag"},'(0019,"GE ??? From Adantage Review CS",90)':{tag:'(0019,"GE ??? From Adantage Review CS",90)',vr:"LO",name:"CRFilmOutputExposures",vm:"1",version:"PrivateTag"},'(0009,"GEMS_ACQU_01",24)':{tag:'(0009,"GEMS_ACQU_01",24)',vr:"DS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0009,"GEMS_ACQU_01",25)':{tag:'(0009,"GEMS_ACQU_01",25)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0009,"GEMS_ACQU_01",3e)':{tag:'(0009,"GEMS_ACQU_01",3e)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0009,"GEMS_ACQU_01",3f)':{tag:'(0009,"GEMS_ACQU_01",3f)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0009,"GEMS_ACQU_01",42)':{tag:'(0009,"GEMS_ACQU_01",42)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0009,"GEMS_ACQU_01",43)':{tag:'(0009,"GEMS_ACQU_01",43)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0009,"GEMS_ACQU_01",f8)':{tag:'(0009,"GEMS_ACQU_01",f8)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0009,"GEMS_ACQU_01",fb)':{tag:'(0009,"GEMS_ACQU_01",fb)',vr:"IS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",01)':{tag:'(0019,"GEMS_ACQU_01",01)',vr:"LT",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",02)':{tag:'(0019,"GEMS_ACQU_01",02)',vr:"SL",name:"NumberOfCellsInDetector",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",03)':{tag:'(0019,"GEMS_ACQU_01",03)',vr:"DS",name:"CellNumberAtTheta",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",04)':{tag:'(0019,"GEMS_ACQU_01",04)',vr:"DS",name:"CellSpacing",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",05)':{tag:'(0019,"GEMS_ACQU_01",05)',vr:"LT",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",06)':{tag:'(0019,"GEMS_ACQU_01",06)',vr:"UN",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",0e)':{tag:'(0019,"GEMS_ACQU_01",0e)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",0f)':{tag:'(0019,"GEMS_ACQU_01",0f)',vr:"DS",name:"HorizontalFrameOfReference",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",11)':{tag:'(0019,"GEMS_ACQU_01",11)',vr:"SS",name:"SeriesContrast",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",12)':{tag:'(0019,"GEMS_ACQU_01",12)',vr:"SS",name:"LastPseq",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",13)':{tag:'(0019,"GEMS_ACQU_01",13)',vr:"SS",name:"StartNumberForBaseline",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",14)':{tag:'(0019,"GEMS_ACQU_01",14)',vr:"SS",name:"End NumberForBaseline",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",15)':{tag:'(0019,"GEMS_ACQU_01",15)',vr:"SS",name:"StartNumberForEnhancedScans",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",16)':{tag:'(0019,"GEMS_ACQU_01",16)',vr:"SS",name:"EndNumberForEnhancedScans",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",17)':{tag:'(0019,"GEMS_ACQU_01",17)',vr:"SS",name:"SeriesPlane",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",18)':{tag:'(0019,"GEMS_ACQU_01",18)',vr:"LO",name:"FirstScanRAS",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",19)':{tag:'(0019,"GEMS_ACQU_01",19)',vr:"DS",name:"FirstScanLocation",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",1a)':{tag:'(0019,"GEMS_ACQU_01",1a)',vr:"LO",name:"LastScanRAS",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",1b)':{tag:'(0019,"GEMS_ACQU_01",1b)',vr:"DS",name:"LastScanLocation",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",1e)':{tag:'(0019,"GEMS_ACQU_01",1e)',vr:"DS",name:"DisplayFieldOfView",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",20)':{tag:'(0019,"GEMS_ACQU_01",20)',vr:"DS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",22)':{tag:'(0019,"GEMS_ACQU_01",22)',vr:"DS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",23)':{tag:'(0019,"GEMS_ACQU_01",23)',vr:"DS",name:"TableSpeed",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",24)':{tag:'(0019,"GEMS_ACQU_01",24)',vr:"DS",name:"MidScanTime",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",25)':{tag:'(0019,"GEMS_ACQU_01",25)',vr:"SS",name:"MidScanFlag",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",26)':{tag:'(0019,"GEMS_ACQU_01",26)',vr:"SL",name:"DegreesOfAzimuth",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",27)':{tag:'(0019,"GEMS_ACQU_01",27)',vr:"DS",name:"GantryPeriod",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",2a)':{tag:'(0019,"GEMS_ACQU_01",2a)',vr:"DS",name:"XrayOnPosition",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",2b)':{tag:'(0019,"GEMS_ACQU_01",2b)',vr:"DS",name:"XrayOffPosition",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",2c)':{tag:'(0019,"GEMS_ACQU_01",2c)',vr:"SL",name:"NumberOfTriggers",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",2d)':{tag:'(0019,"GEMS_ACQU_01",2d)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",2e)':{tag:'(0019,"GEMS_ACQU_01",2e)',vr:"DS",name:"AngleOfFirstView",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",2f)':{tag:'(0019,"GEMS_ACQU_01",2f)',vr:"DS",name:"TriggerFrequency",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",39)':{tag:'(0019,"GEMS_ACQU_01",39)',vr:"SS",name:"ScanFOVType",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",3a)':{tag:'(0019,"GEMS_ACQU_01",3a)',vr:"IS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",3b)':{tag:'(0019,"GEMS_ACQU_01",3b)',vr:"LT",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",3c)':{tag:'(0019,"GEMS_ACQU_01",3c)',vr:"UN",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",3e)':{tag:'(0019,"GEMS_ACQU_01",3e)',vr:"UN",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",3f)':{tag:'(0019,"GEMS_ACQU_01",3f)',vr:"UN",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",40)':{tag:'(0019,"GEMS_ACQU_01",40)',vr:"SS",name:"StatReconFlag",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",41)':{tag:'(0019,"GEMS_ACQU_01",41)',vr:"SS",name:"ComputeType",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",42)':{tag:'(0019,"GEMS_ACQU_01",42)',vr:"SS",name:"SegmentNumber",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",43)':{tag:'(0019,"GEMS_ACQU_01",43)',vr:"SS",name:"TotalSegmentsRequested",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",44)':{tag:'(0019,"GEMS_ACQU_01",44)',vr:"DS",name:"InterscanDelay",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",47)':{tag:'(0019,"GEMS_ACQU_01",47)',vr:"SS",name:"ViewCompressionFactor",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",48)':{tag:'(0019,"GEMS_ACQU_01",48)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",49)':{tag:'(0019,"GEMS_ACQU_01",49)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",4a)':{tag:'(0019,"GEMS_ACQU_01",4a)',vr:"SS",name:"TotalNumberOfRefChannels",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",4b)':{tag:'(0019,"GEMS_ACQU_01",4b)',vr:"SL",name:"DataSizeForScanData",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",52)':{tag:'(0019,"GEMS_ACQU_01",52)',vr:"SS",name:"ReconPostProcessingFlag",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",54)':{tag:'(0019,"GEMS_ACQU_01",54)',vr:"UN",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",57)':{tag:'(0019,"GEMS_ACQU_01",57)',vr:"SS",name:"CTWaterNumber",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",58)':{tag:'(0019,"GEMS_ACQU_01",58)',vr:"SS",name:"CTBoneNumber",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",5a)':{tag:'(0019,"GEMS_ACQU_01",5a)',vr:"FL",name:"AcquisitionDuration",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",5d)':{tag:'(0019,"GEMS_ACQU_01",5d)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",5e)':{tag:'(0019,"GEMS_ACQU_01",5e)',vr:"SL",name:"NumberOfChannels1To512",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",5f)':{tag:'(0019,"GEMS_ACQU_01",5f)',vr:"SL",name:"IncrementBetweenChannels",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",60)':{tag:'(0019,"GEMS_ACQU_01",60)',vr:"SL",name:"StartingView",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",61)':{tag:'(0019,"GEMS_ACQU_01",61)',vr:"SL",name:"NumberOfViews",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",62)':{tag:'(0019,"GEMS_ACQU_01",62)',vr:"SL",name:"IncrementBetweenViews",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",6a)':{tag:'(0019,"GEMS_ACQU_01",6a)',vr:"SS",name:"DependantOnNumberOfViewsProcessed",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",6b)':{tag:'(0019,"GEMS_ACQU_01",6b)',vr:"SS",name:"FieldOfViewInDetectorCells",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",70)':{tag:'(0019,"GEMS_ACQU_01",70)',vr:"SS",name:"ValueOfBackProjectionButton",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",71)':{tag:'(0019,"GEMS_ACQU_01",71)',vr:"SS",name:"SetIfFatqEstimatesWereUsed",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",72)':{tag:'(0019,"GEMS_ACQU_01",72)',vr:"DS",name:"ZChannelAvgOverViews",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",73)':{tag:'(0019,"GEMS_ACQU_01",73)',vr:"DS",name:"AvgOfLeftRefChannelsOverViews",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",74)':{tag:'(0019,"GEMS_ACQU_01",74)',vr:"DS",name:"MaxLeftChannelOverViews",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",75)':{tag:'(0019,"GEMS_ACQU_01",75)',vr:"DS",name:"AvgOfRightRefChannelsOverViews",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",76)':{tag:'(0019,"GEMS_ACQU_01",76)',vr:"DS",name:"MaxRightChannelOverViews",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",7d)':{tag:'(0019,"GEMS_ACQU_01",7d)',vr:"DS",name:"SecondEcho",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",7e)':{tag:'(0019,"GEMS_ACQU_01",7e)',vr:"SS",name:"NumberOfEchos",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",7f)':{tag:'(0019,"GEMS_ACQU_01",7f)',vr:"DS",name:"TableDelta",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",81)':{tag:'(0019,"GEMS_ACQU_01",81)',vr:"SS",name:"Contiguous",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",82)':{tag:'(0019,"GEMS_ACQU_01",82)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",83)':{tag:'(0019,"GEMS_ACQU_01",83)',vr:"DS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",84)':{tag:'(0019,"GEMS_ACQU_01",84)',vr:"DS",name:"PeakSAR",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",85)':{tag:'(0019,"GEMS_ACQU_01",85)',vr:"SS",name:"MonitorSAR",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",86)':{tag:'(0019,"GEMS_ACQU_01",86)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",87)':{tag:'(0019,"GEMS_ACQU_01",87)',vr:"DS",name:"CardiacRepetition Time",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",88)':{tag:'(0019,"GEMS_ACQU_01",88)',vr:"SS",name:"ImagesPerCardiacCycle",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",8a)':{tag:'(0019,"GEMS_ACQU_01",8a)',vr:"SS",name:"ActualReceiveGainAnalog",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",8b)':{tag:'(0019,"GEMS_ACQU_01",8b)',vr:"SS",name:"ActualReceiveGainDigital",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",8d)':{tag:'(0019,"GEMS_ACQU_01",8d)',vr:"DS",name:"DelayAfterTrigger",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",8f)':{tag:'(0019,"GEMS_ACQU_01",8f)',vr:"SS",name:"SwapPhaseFrequency",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",90)':{tag:'(0019,"GEMS_ACQU_01",90)',vr:"SS",name:"PauseInterval",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",91)':{tag:'(0019,"GEMS_ACQU_01",91)',vr:"DS",name:"PulseTime",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",92)':{tag:'(0019,"GEMS_ACQU_01",92)',vr:"SL",name:"SliceOffsetOnFrequencyAxis",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",93)':{tag:'(0019,"GEMS_ACQU_01",93)',vr:"DS",name:"CenterFrequency",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",94)':{tag:'(0019,"GEMS_ACQU_01",94)',vr:"SS",name:"TransmitGain",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",95)':{tag:'(0019,"GEMS_ACQU_01",95)',vr:"SS",name:"AnalogReceiverGain",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",96)':{tag:'(0019,"GEMS_ACQU_01",96)',vr:"SS",name:"DigitalReceiverGain",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",97)':{tag:'(0019,"GEMS_ACQU_01",97)',vr:"SL",name:"BitmapDefiningCVs",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",98)':{tag:'(0019,"GEMS_ACQU_01",98)',vr:"SS",name:"CenterFrequencyMethod",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",99)':{tag:'(0019,"GEMS_ACQU_01",99)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",9b)':{tag:'(0019,"GEMS_ACQU_01",9b)',vr:"SS",name:"PulseSequenceMode",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",9c)':{tag:'(0019,"GEMS_ACQU_01",9c)',vr:"LO",name:"PulseSequenceName",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",9d)':{tag:'(0019,"GEMS_ACQU_01",9d)',vr:"DT",name:"PulseSequenceDate",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",9e)':{tag:'(0019,"GEMS_ACQU_01",9e)',vr:"LO",name:"InternalPulseSequenceName",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",9f)':{tag:'(0019,"GEMS_ACQU_01",9f)',vr:"SS",name:"TransmittingCoil",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",a0)':{tag:'(0019,"GEMS_ACQU_01",a0)',vr:"SS",name:"SurfaceCoilType",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",a1)':{tag:'(0019,"GEMS_ACQU_01",a1)',vr:"SS",name:"ExtremityCoilFlag",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",a2)':{tag:'(0019,"GEMS_ACQU_01",a2)',vr:"SL",name:"RawDataRunNumber",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",a3)':{tag:'(0019,"GEMS_ACQU_01",a3)',vr:"UL",name:"CalibratedFieldStrength",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",a4)':{tag:'(0019,"GEMS_ACQU_01",a4)',vr:"SS",name:"SATFatWaterBone",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",a5)':{tag:'(0019,"GEMS_ACQU_01",a5)',vr:"DS",name:"ReceiveBandwidth",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",a7)':{tag:'(0019,"GEMS_ACQU_01",a7)',vr:"DS",name:"UserData",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",a8)':{tag:'(0019,"GEMS_ACQU_01",a8)',vr:"DS",name:"UserData",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",a9)':{tag:'(0019,"GEMS_ACQU_01",a9)',vr:"DS",name:"UserData",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",aa)':{tag:'(0019,"GEMS_ACQU_01",aa)',vr:"DS",name:"UserData",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",ab)':{tag:'(0019,"GEMS_ACQU_01",ab)',vr:"DS",name:"UserData",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",ac)':{tag:'(0019,"GEMS_ACQU_01",ac)',vr:"DS",name:"UserData",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",ad)':{tag:'(0019,"GEMS_ACQU_01",ad)',vr:"DS",name:"UserData",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",ae)':{tag:'(0019,"GEMS_ACQU_01",ae)',vr:"DS",name:"UserData",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",af)':{tag:'(0019,"GEMS_ACQU_01",af)',vr:"DS",name:"UserData",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",b0)':{tag:'(0019,"GEMS_ACQU_01",b0)',vr:"DS",name:"UserData",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",b1)':{tag:'(0019,"GEMS_ACQU_01",b1)',vr:"DS",name:"UserData",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",b2)':{tag:'(0019,"GEMS_ACQU_01",b2)',vr:"DS",name:"UserData",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",b3)':{tag:'(0019,"GEMS_ACQU_01",b3)',vr:"DS",name:"UserData",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",b4)':{tag:'(0019,"GEMS_ACQU_01",b4)',vr:"DS",name:"UserData",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",b5)':{tag:'(0019,"GEMS_ACQU_01",b5)',vr:"DS",name:"UserData",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",b6)':{tag:'(0019,"GEMS_ACQU_01",b6)',vr:"DS",name:"UserData",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",b7)':{tag:'(0019,"GEMS_ACQU_01",b7)',vr:"DS",name:"UserData",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",b8)':{tag:'(0019,"GEMS_ACQU_01",b8)',vr:"DS",name:"UserData",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",b9)':{tag:'(0019,"GEMS_ACQU_01",b9)',vr:"DS",name:"UserData",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",ba)':{tag:'(0019,"GEMS_ACQU_01",ba)',vr:"DS",name:"UserData",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",bb)':{tag:'(0019,"GEMS_ACQU_01",bb)',vr:"DS",name:"UserData",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",bc)':{tag:'(0019,"GEMS_ACQU_01",bc)',vr:"DS",name:"UserData",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",bd)':{tag:'(0019,"GEMS_ACQU_01",bd)',vr:"DS",name:"UserData",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",be)':{tag:'(0019,"GEMS_ACQU_01",be)',vr:"DS",name:"ProjectionAngle",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",c0)':{tag:'(0019,"GEMS_ACQU_01",c0)',vr:"SS",name:"SaturationPlanes",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",c1)':{tag:'(0019,"GEMS_ACQU_01",c1)',vr:"SS",name:"SurfaceCoilIntensityCorrectionFlag",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",c2)':{tag:'(0019,"GEMS_ACQU_01",c2)',vr:"SS",name:"SATLocationR",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",c3)':{tag:'(0019,"GEMS_ACQU_01",c3)',vr:"SS",name:"SATLocationL",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",c4)':{tag:'(0019,"GEMS_ACQU_01",c4)',vr:"SS",name:"SATLocationA",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",c5)':{tag:'(0019,"GEMS_ACQU_01",c5)',vr:"SS",name:"SATLocationP",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",c6)':{tag:'(0019,"GEMS_ACQU_01",c6)',vr:"SS",name:"SATLocationH",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",c7)':{tag:'(0019,"GEMS_ACQU_01",c7)',vr:"SS",name:"SATLocationF",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",c8)':{tag:'(0019,"GEMS_ACQU_01",c8)',vr:"SS",name:"SATThicknessRL",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",c9)':{tag:'(0019,"GEMS_ACQU_01",c9)',vr:"SS",name:"SATThicknessAP",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",ca)':{tag:'(0019,"GEMS_ACQU_01",ca)',vr:"SS",name:"SATThicknessHF",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",cb)':{tag:'(0019,"GEMS_ACQU_01",cb)',vr:"SS",name:"PrescribedFlowAxis",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",cc)':{tag:'(0019,"GEMS_ACQU_01",cc)',vr:"SS",name:"VelocityEncoding",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",cd)':{tag:'(0019,"GEMS_ACQU_01",cd)',vr:"SS",name:"ThicknessDisclaimer",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",ce)':{tag:'(0019,"GEMS_ACQU_01",ce)',vr:"SS",name:"PrescanType",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",cf)':{tag:'(0019,"GEMS_ACQU_01",cf)',vr:"SS",name:"PrescanStatus",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",d0)':{tag:'(0019,"GEMS_ACQU_01",d0)',vr:"SH",name:"RawDataType",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",d2)':{tag:'(0019,"GEMS_ACQU_01",d2)',vr:"SS",name:"ProjectionAlgorithm",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",d3)':{tag:'(0019,"GEMS_ACQU_01",d3)',vr:"SH",name:"ProjectionAlgorithm",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",d4)':{tag:'(0019,"GEMS_ACQU_01",d4)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",d5)':{tag:'(0019,"GEMS_ACQU_01",d5)',vr:"SS",name:"FractionalEcho",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",d6)':{tag:'(0019,"GEMS_ACQU_01",d6)',vr:"SS",name:"PrepPulse",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",d7)':{tag:'(0019,"GEMS_ACQU_01",d7)',vr:"SS",name:"CardiacPhases",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",d8)':{tag:'(0019,"GEMS_ACQU_01",d8)',vr:"SS",name:"VariableEchoFlag",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",d9)':{tag:'(0019,"GEMS_ACQU_01",d9)',vr:"DS",name:"ConcatenatedSAT",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",da)':{tag:'(0019,"GEMS_ACQU_01",da)',vr:"SS",name:"ReferenceChannelUsed",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",db)':{tag:'(0019,"GEMS_ACQU_01",db)',vr:"DS",name:"BackProjectorCoefficient",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",dc)':{tag:'(0019,"GEMS_ACQU_01",dc)',vr:"SS",name:"PrimarySpeedCorrectionUsed",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",dd)':{tag:'(0019,"GEMS_ACQU_01",dd)',vr:"SS",name:"OverrangeCorrectionUsed",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",de)':{tag:'(0019,"GEMS_ACQU_01",de)',vr:"DS",name:"DynamicZAlphaValue",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",df)':{tag:'(0019,"GEMS_ACQU_01",df)',vr:"DS",name:"UserData",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",e0)':{tag:'(0019,"GEMS_ACQU_01",e0)',vr:"DS",name:"UserData",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",e1)':{tag:'(0019,"GEMS_ACQU_01",e1)',vr:"DS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",e2)':{tag:'(0019,"GEMS_ACQU_01",e2)',vr:"DS",name:"VelocityEncodeScale",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",e3)':{tag:'(0019,"GEMS_ACQU_01",e3)',vr:"LT",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",e4)':{tag:'(0019,"GEMS_ACQU_01",e4)',vr:"LT",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",e5)':{tag:'(0019,"GEMS_ACQU_01",e5)',vr:"IS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",e6)':{tag:'(0019,"GEMS_ACQU_01",e6)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",e8)':{tag:'(0019,"GEMS_ACQU_01",e8)',vr:"DS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",e9)':{tag:'(0019,"GEMS_ACQU_01",e9)',vr:"DS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",eb)':{tag:'(0019,"GEMS_ACQU_01",eb)',vr:"DS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",ec)':{tag:'(0019,"GEMS_ACQU_01",ec)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",f0)':{tag:'(0019,"GEMS_ACQU_01",f0)',vr:"UN",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",f1)':{tag:'(0019,"GEMS_ACQU_01",f1)',vr:"LT",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",f2)':{tag:'(0019,"GEMS_ACQU_01",f2)',vr:"SS",name:"FastPhases",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",f3)':{tag:'(0019,"GEMS_ACQU_01",f3)',vr:"LT",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",f4)':{tag:'(0019,"GEMS_ACQU_01",f4)',vr:"LT",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"GEMS_ACQU_01",f9)':{tag:'(0019,"GEMS_ACQU_01",f9)',vr:"DS",name:"TransmitGain",vm:"1",version:"PrivateTag"},'(0023,"GEMS_ACRQA_1.0 BLOCK1",00)':{tag:'(0023,"GEMS_ACRQA_1.0 BLOCK1",00)',vr:"LO",name:"CRExposureMenuCode",vm:"1",version:"PrivateTag"},'(0023,"GEMS_ACRQA_1.0 BLOCK1",10)':{tag:'(0023,"GEMS_ACRQA_1.0 BLOCK1",10)',vr:"LO",name:"CRExposureMenuString",vm:"1",version:"PrivateTag"},'(0023,"GEMS_ACRQA_1.0 BLOCK1",20)':{tag:'(0023,"GEMS_ACRQA_1.0 BLOCK1",20)',vr:"LO",name:"CREDRMode",vm:"1",version:"PrivateTag"},'(0023,"GEMS_ACRQA_1.0 BLOCK1",30)':{tag:'(0023,"GEMS_ACRQA_1.0 BLOCK1",30)',vr:"LO",name:"CRLatitude",vm:"1",version:"PrivateTag"},'(0023,"GEMS_ACRQA_1.0 BLOCK1",40)':{tag:'(0023,"GEMS_ACRQA_1.0 BLOCK1",40)',vr:"LO",name:"CRGroupNumber",vm:"1",version:"PrivateTag"},'(0023,"GEMS_ACRQA_1.0 BLOCK1",50)':{tag:'(0023,"GEMS_ACRQA_1.0 BLOCK1",50)',vr:"US",name:"CRImageSerialNumber",vm:"1",version:"PrivateTag"},'(0023,"GEMS_ACRQA_1.0 BLOCK1",60)':{tag:'(0023,"GEMS_ACRQA_1.0 BLOCK1",60)',vr:"LO",name:"CRBarCodeNumber",vm:"1",version:"PrivateTag"},'(0023,"GEMS_ACRQA_1.0 BLOCK1",70)':{tag:'(0023,"GEMS_ACRQA_1.0 BLOCK1",70)',vr:"LO",name:"CRFilmOutputExposure",vm:"1",version:"PrivateTag"},'(0023,"GEMS_ACRQA_1.0 BLOCK1",80)':{tag:'(0023,"GEMS_ACRQA_1.0 BLOCK1",80)',vr:"LO",name:"CRFilmFormat",vm:"1",version:"PrivateTag"},'(0023,"GEMS_ACRQA_1.0 BLOCK1",90)':{tag:'(0023,"GEMS_ACRQA_1.0 BLOCK1",90)',vr:"LO",name:"CRSShiftString",vm:"1",version:"PrivateTag"},'(0023,"GEMS_ACRQA_1.0 BLOCK2",00)':{tag:'(0023,"GEMS_ACRQA_1.0 BLOCK2",00)',vr:"US",name:"CRSShift",vm:"1",version:"PrivateTag"},'(0023,"GEMS_ACRQA_1.0 BLOCK2",10)':{tag:'(0023,"GEMS_ACRQA_1.0 BLOCK2",10)',vr:"DS",name:"CRCShift",vm:"1",version:"PrivateTag"},'(0023,"GEMS_ACRQA_1.0 BLOCK2",20)':{tag:'(0023,"GEMS_ACRQA_1.0 BLOCK2",20)',vr:"DS",name:"CRGT",vm:"1",version:"PrivateTag"},'(0023,"GEMS_ACRQA_1.0 BLOCK2",30)':{tag:'(0023,"GEMS_ACRQA_1.0 BLOCK2",30)',vr:"DS",name:"CRGA",vm:"1",version:"PrivateTag"},'(0023,"GEMS_ACRQA_1.0 BLOCK2",40)':{tag:'(0023,"GEMS_ACRQA_1.0 BLOCK2",40)',vr:"DS",name:"CRGC",vm:"1",version:"PrivateTag"},'(0023,"GEMS_ACRQA_1.0 BLOCK2",50)':{tag:'(0023,"GEMS_ACRQA_1.0 BLOCK2",50)',vr:"DS",name:"CRGS",vm:"1",version:"PrivateTag"},'(0023,"GEMS_ACRQA_1.0 BLOCK2",60)':{tag:'(0023,"GEMS_ACRQA_1.0 BLOCK2",60)',vr:"DS",name:"CRRT",vm:"1",version:"PrivateTag"},'(0023,"GEMS_ACRQA_1.0 BLOCK2",70)':{tag:'(0023,"GEMS_ACRQA_1.0 BLOCK2",70)',vr:"DS",name:"CRRE",vm:"1",version:"PrivateTag"},'(0023,"GEMS_ACRQA_1.0 BLOCK2",80)':{tag:'(0023,"GEMS_ACRQA_1.0 BLOCK2",80)',vr:"US",name:"CRRN",vm:"1",version:"PrivateTag"},'(0023,"GEMS_ACRQA_1.0 BLOCK2",90)':{tag:'(0023,"GEMS_ACRQA_1.0 BLOCK2",90)',vr:"DS",name:"CRDRT",vm:"1",version:"PrivateTag"},'(0023,"GEMS_ACRQA_1.0 BLOCK3",00)':{tag:'(0023,"GEMS_ACRQA_1.0 BLOCK3",00)',vr:"DS",name:"CRDRE",vm:"1",version:"PrivateTag"},'(0023,"GEMS_ACRQA_1.0 BLOCK3",10)':{tag:'(0023,"GEMS_ACRQA_1.0 BLOCK3",10)',vr:"US",name:"CRDRN",vm:"1",version:"PrivateTag"},'(0023,"GEMS_ACRQA_1.0 BLOCK3",20)':{tag:'(0023,"GEMS_ACRQA_1.0 BLOCK3",20)',vr:"DS",name:"CRORE",vm:"1",version:"PrivateTag"},'(0023,"GEMS_ACRQA_1.0 BLOCK3",30)':{tag:'(0023,"GEMS_ACRQA_1.0 BLOCK3",30)',vr:"US",name:"CRORN",vm:"1",version:"PrivateTag"},'(0023,"GEMS_ACRQA_1.0 BLOCK3",40)':{tag:'(0023,"GEMS_ACRQA_1.0 BLOCK3",40)',vr:"US",name:"CRORD",vm:"1",version:"PrivateTag"},'(0023,"GEMS_ACRQA_1.0 BLOCK3",50)':{tag:'(0023,"GEMS_ACRQA_1.0 BLOCK3",50)',vr:"LO",name:"CRCassetteSize",vm:"1",version:"PrivateTag"},'(0023,"GEMS_ACRQA_1.0 BLOCK3",60)':{tag:'(0023,"GEMS_ACRQA_1.0 BLOCK3",60)',vr:"LO",name:"CRMachineID",vm:"1",version:"PrivateTag"},'(0023,"GEMS_ACRQA_1.0 BLOCK3",70)':{tag:'(0023,"GEMS_ACRQA_1.0 BLOCK3",70)',vr:"LO",name:"CRMachineType",vm:"1",version:"PrivateTag"},'(0023,"GEMS_ACRQA_1.0 BLOCK3",80)':{tag:'(0023,"GEMS_ACRQA_1.0 BLOCK3",80)',vr:"LO",name:"CRTechnicianCode",vm:"1",version:"PrivateTag"},'(0023,"GEMS_ACRQA_1.0 BLOCK3",90)':{tag:'(0023,"GEMS_ACRQA_1.0 BLOCK3",90)',vr:"LO",name:"CREnergySubtractionParameters",vm:"1",version:"PrivateTag"},'(0023,"GEMS_ACRQA_2.0 BLOCK1",00)':{tag:'(0023,"GEMS_ACRQA_2.0 BLOCK1",00)',vr:"LO",name:"CRExposureMenuCode",vm:"1",version:"PrivateTag"},'(0023,"GEMS_ACRQA_2.0 BLOCK1",10)':{tag:'(0023,"GEMS_ACRQA_2.0 BLOCK1",10)',vr:"LO",name:"CRExposureMenuString",vm:"1",version:"PrivateTag"},'(0023,"GEMS_ACRQA_2.0 BLOCK1",20)':{tag:'(0023,"GEMS_ACRQA_2.0 BLOCK1",20)',vr:"LO",name:"CREDRMode",vm:"1",version:"PrivateTag"},'(0023,"GEMS_ACRQA_2.0 BLOCK1",30)':{tag:'(0023,"GEMS_ACRQA_2.0 BLOCK1",30)',vr:"LO",name:"CRLatitude",vm:"1",version:"PrivateTag"},'(0023,"GEMS_ACRQA_2.0 BLOCK1",40)':{tag:'(0023,"GEMS_ACRQA_2.0 BLOCK1",40)',vr:"LO",name:"CRGroupNumber",vm:"1",version:"PrivateTag"},'(0023,"GEMS_ACRQA_2.0 BLOCK1",50)':{tag:'(0023,"GEMS_ACRQA_2.0 BLOCK1",50)',vr:"US",name:"CRImageSerialNumber",vm:"1",version:"PrivateTag"},'(0023,"GEMS_ACRQA_2.0 BLOCK1",60)':{tag:'(0023,"GEMS_ACRQA_2.0 BLOCK1",60)',vr:"LO",name:"CRBarCodeNumber",vm:"1",version:"PrivateTag"},'(0023,"GEMS_ACRQA_2.0 BLOCK1",70)':{tag:'(0023,"GEMS_ACRQA_2.0 BLOCK1",70)',vr:"LO",name:"CRFilmOutputExposure",vm:"1",version:"PrivateTag"},'(0023,"GEMS_ACRQA_2.0 BLOCK1",80)':{tag:'(0023,"GEMS_ACRQA_2.0 BLOCK1",80)',vr:"LO",name:"CRFilmFormat",vm:"1",version:"PrivateTag"},'(0023,"GEMS_ACRQA_2.0 BLOCK1",90)':{tag:'(0023,"GEMS_ACRQA_2.0 BLOCK1",90)',vr:"LO",name:"CRSShiftString",vm:"1",version:"PrivateTag"},'(0023,"GEMS_ACRQA_2.0 BLOCK2",00)':{tag:'(0023,"GEMS_ACRQA_2.0 BLOCK2",00)',vr:"US",name:"CRSShift",vm:"1",version:"PrivateTag"},'(0023,"GEMS_ACRQA_2.0 BLOCK2",10)':{tag:'(0023,"GEMS_ACRQA_2.0 BLOCK2",10)',vr:"LO",name:"CRCShift",vm:"1",version:"PrivateTag"},'(0023,"GEMS_ACRQA_2.0 BLOCK2",20)':{tag:'(0023,"GEMS_ACRQA_2.0 BLOCK2",20)',vr:"LO",name:"CRGT",vm:"1",version:"PrivateTag"},'(0023,"GEMS_ACRQA_2.0 BLOCK2",30)':{tag:'(0023,"GEMS_ACRQA_2.0 BLOCK2",30)',vr:"DS",name:"CRGA",vm:"1",version:"PrivateTag"},'(0023,"GEMS_ACRQA_2.0 BLOCK2",40)':{tag:'(0023,"GEMS_ACRQA_2.0 BLOCK2",40)',vr:"DS",name:"CRGC",vm:"1",version:"PrivateTag"},'(0023,"GEMS_ACRQA_2.0 BLOCK2",50)':{tag:'(0023,"GEMS_ACRQA_2.0 BLOCK2",50)',vr:"DS",name:"CRGS",vm:"1",version:"PrivateTag"},'(0023,"GEMS_ACRQA_2.0 BLOCK2",60)':{tag:'(0023,"GEMS_ACRQA_2.0 BLOCK2",60)',vr:"LO",name:"CRRT",vm:"1",version:"PrivateTag"},'(0023,"GEMS_ACRQA_2.0 BLOCK2",70)':{tag:'(0023,"GEMS_ACRQA_2.0 BLOCK2",70)',vr:"DS",name:"CRRE",vm:"1",version:"PrivateTag"},'(0023,"GEMS_ACRQA_2.0 BLOCK2",80)':{tag:'(0023,"GEMS_ACRQA_2.0 BLOCK2",80)',vr:"US",name:"CRRN",vm:"1",version:"PrivateTag"},'(0023,"GEMS_ACRQA_2.0 BLOCK2",90)':{tag:'(0023,"GEMS_ACRQA_2.0 BLOCK2",90)',vr:"DS",name:"CRDRT",vm:"1",version:"PrivateTag"},'(0023,"GEMS_ACRQA_2.0 BLOCK3",00)':{tag:'(0023,"GEMS_ACRQA_2.0 BLOCK3",00)',vr:"DS",name:"CRDRE",vm:"1",version:"PrivateTag"},'(0023,"GEMS_ACRQA_2.0 BLOCK3",10)':{tag:'(0023,"GEMS_ACRQA_2.0 BLOCK3",10)',vr:"US",name:"CRDRN",vm:"1",version:"PrivateTag"},'(0023,"GEMS_ACRQA_2.0 BLOCK3",20)':{tag:'(0023,"GEMS_ACRQA_2.0 BLOCK3",20)',vr:"DS",name:"CRORE",vm:"1",version:"PrivateTag"},'(0023,"GEMS_ACRQA_2.0 BLOCK3",30)':{tag:'(0023,"GEMS_ACRQA_2.0 BLOCK3",30)',vr:"US",name:"CRORN",vm:"1",version:"PrivateTag"},'(0023,"GEMS_ACRQA_2.0 BLOCK3",40)':{tag:'(0023,"GEMS_ACRQA_2.0 BLOCK3",40)',vr:"US",name:"CRORD",vm:"1",version:"PrivateTag"},'(0023,"GEMS_ACRQA_2.0 BLOCK3",50)':{tag:'(0023,"GEMS_ACRQA_2.0 BLOCK3",50)',vr:"LO",name:"CRCassetteSize",vm:"1",version:"PrivateTag"},'(0023,"GEMS_ACRQA_2.0 BLOCK3",60)':{tag:'(0023,"GEMS_ACRQA_2.0 BLOCK3",60)',vr:"LO",name:"CRMachineID",vm:"1",version:"PrivateTag"},'(0023,"GEMS_ACRQA_2.0 BLOCK3",70)':{tag:'(0023,"GEMS_ACRQA_2.0 BLOCK3",70)',vr:"LO",name:"CRMachineType",vm:"1",version:"PrivateTag"},'(0023,"GEMS_ACRQA_2.0 BLOCK3",80)':{tag:'(0023,"GEMS_ACRQA_2.0 BLOCK3",80)',vr:"LO",name:"CRTechnicianCode",vm:"1",version:"PrivateTag"},'(0023,"GEMS_ACRQA_2.0 BLOCK3",90)':{tag:'(0023,"GEMS_ACRQA_2.0 BLOCK3",90)',vr:"LO",name:"CREnergySubtractionParameters",vm:"1",version:"PrivateTag"},'(0023,"GEMS_ACRQA_2.0 BLOCK3",f0)':{tag:'(0023,"GEMS_ACRQA_2.0 BLOCK3",f0)',vr:"LO",name:"CRDistributionCode",vm:"1",version:"PrivateTag"},'(0023,"GEMS_ACRQA_2.0 BLOCK3",ff)':{tag:'(0023,"GEMS_ACRQA_2.0 BLOCK3",ff)',vr:"US",name:"CRShuttersApplied",vm:"1",version:"PrivateTag"},'(0047,"GEMS_ADWSoft_3D1",01)':{tag:'(0047,"GEMS_ADWSoft_3D1",01)',vr:"SQ",name:"Reconstruction Parameters Sequence",vm:"1",version:"PrivateTag"},'(0047,"GEMS_ADWSoft_3D1",50)':{tag:'(0047,"GEMS_ADWSoft_3D1",50)',vr:"UL",name:"VolumeVoxelCount",vm:"1",version:"PrivateTag"},'(0047,"GEMS_ADWSoft_3D1",51)':{tag:'(0047,"GEMS_ADWSoft_3D1",51)',vr:"UL",name:"VolumeSegmentCount",vm:"1",version:"PrivateTag"},'(0047,"GEMS_ADWSoft_3D1",53)':{tag:'(0047,"GEMS_ADWSoft_3D1",53)',vr:"US",name:"VolumeSliceSize",vm:"1",version:"PrivateTag"},'(0047,"GEMS_ADWSoft_3D1",54)':{tag:'(0047,"GEMS_ADWSoft_3D1",54)',vr:"US",name:"VolumeSliceCount",vm:"1",version:"PrivateTag"},'(0047,"GEMS_ADWSoft_3D1",55)':{tag:'(0047,"GEMS_ADWSoft_3D1",55)',vr:"SL",name:"VolumeThresholdValue",vm:"1",version:"PrivateTag"},'(0047,"GEMS_ADWSoft_3D1",57)':{tag:'(0047,"GEMS_ADWSoft_3D1",57)',vr:"DS",name:"VolumeVoxelRatio",vm:"1",version:"PrivateTag"},'(0047,"GEMS_ADWSoft_3D1",58)':{tag:'(0047,"GEMS_ADWSoft_3D1",58)',vr:"DS",name:"VolumeVoxelSize",vm:"1",version:"PrivateTag"},'(0047,"GEMS_ADWSoft_3D1",59)':{tag:'(0047,"GEMS_ADWSoft_3D1",59)',vr:"US",name:"VolumeZPositionSize",vm:"1",version:"PrivateTag"},'(0047,"GEMS_ADWSoft_3D1",60)':{tag:'(0047,"GEMS_ADWSoft_3D1",60)',vr:"DS",name:"VolumeBaseLine",vm:"9",version:"PrivateTag"},'(0047,"GEMS_ADWSoft_3D1",61)':{tag:'(0047,"GEMS_ADWSoft_3D1",61)',vr:"DS",name:"VolumeCenterPoint",vm:"3",version:"PrivateTag"},'(0047,"GEMS_ADWSoft_3D1",63)':{tag:'(0047,"GEMS_ADWSoft_3D1",63)',vr:"SL",name:"VolumeSkewBase",vm:"1",version:"PrivateTag"},'(0047,"GEMS_ADWSoft_3D1",64)':{tag:'(0047,"GEMS_ADWSoft_3D1",64)',vr:"DS",name:"VolumeRegistrationTransformRotationMatrix",vm:"9",version:"PrivateTag"},'(0047,"GEMS_ADWSoft_3D1",65)':{tag:'(0047,"GEMS_ADWSoft_3D1",65)',vr:"DS",name:"VolumeRegistrationTransformTranslationVector",vm:"3",version:"PrivateTag"},'(0047,"GEMS_ADWSoft_3D1",70)':{tag:'(0047,"GEMS_ADWSoft_3D1",70)',vr:"DS",name:"KVPList",vm:"1-n",version:"PrivateTag"},'(0047,"GEMS_ADWSoft_3D1",71)':{tag:'(0047,"GEMS_ADWSoft_3D1",71)',vr:"IS",name:"XRayTubeCurrentList",vm:"1-n",version:"PrivateTag"},'(0047,"GEMS_ADWSoft_3D1",72)':{tag:'(0047,"GEMS_ADWSoft_3D1",72)',vr:"IS",name:"ExposureList",vm:"1-n",version:"PrivateTag"},'(0047,"GEMS_ADWSoft_3D1",80)':{tag:'(0047,"GEMS_ADWSoft_3D1",80)',vr:"LO",name:"AcquisitionDLXIdentifier",vm:"1",version:"PrivateTag"},'(0047,"GEMS_ADWSoft_3D1",85)':{tag:'(0047,"GEMS_ADWSoft_3D1",85)',vr:"SQ",name:"AcquisitionDLX2DSeriesSequence",vm:"1",version:"PrivateTag"},'(0047,"GEMS_ADWSoft_3D1",89)':{tag:'(0047,"GEMS_ADWSoft_3D1",89)',vr:"DS",name:"ContrastAgentVolumeList",vm:"1-n",version:"PrivateTag"},'(0047,"GEMS_ADWSoft_3D1",8A)':{tag:'(0047,"GEMS_ADWSoft_3D1",8A)',vr:"US",name:"NumberOfInjections",vm:"1",version:"PrivateTag"},'(0047,"GEMS_ADWSoft_3D1",8B)':{tag:'(0047,"GEMS_ADWSoft_3D1",8B)',vr:"US",name:"FrameCount",vm:"1",version:"PrivateTag"},'(0047,"GEMS_ADWSoft_3D1",91)':{tag:'(0047,"GEMS_ADWSoft_3D1",91)',vr:"LO",name:"XA3DReconstructionAlgorithmName",vm:"1",version:"PrivateTag"},'(0047,"GEMS_ADWSoft_3D1",92)':{tag:'(0047,"GEMS_ADWSoft_3D1",92)',vr:"CS",name:"XA3DReconstructionAlgorithmVersion",vm:"1",version:"PrivateTag"},'(0047,"GEMS_ADWSoft_3D1",93)':{tag:'(0047,"GEMS_ADWSoft_3D1",93)',vr:"DA",name:"DLXCalibrationDate",vm:"1",version:"PrivateTag"},'(0047,"GEMS_ADWSoft_3D1",94)':{tag:'(0047,"GEMS_ADWSoft_3D1",94)',vr:"TM",name:"DLXCalibrationTime",vm:"1",version:"PrivateTag"},'(0047,"GEMS_ADWSoft_3D1",95)':{tag:'(0047,"GEMS_ADWSoft_3D1",95)',vr:"CS",name:"DLXCalibrationStatus",vm:"1",version:"PrivateTag"},'(0047,"GEMS_ADWSoft_3D1",96)':{tag:'(0047,"GEMS_ADWSoft_3D1",96)',vr:"IS",name:"UsedFrames",vm:"1-n",version:"PrivateTag"},'(0047,"GEMS_ADWSoft_3D1",98)':{tag:'(0047,"GEMS_ADWSoft_3D1",98)',vr:"US",name:"TransformCount",vm:"1",version:"PrivateTag"},'(0047,"GEMS_ADWSoft_3D1",99)':{tag:'(0047,"GEMS_ADWSoft_3D1",99)',vr:"SQ",name:"TransformSequence",vm:"1",version:"PrivateTag"},'(0047,"GEMS_ADWSoft_3D1",9A)':{tag:'(0047,"GEMS_ADWSoft_3D1",9A)',vr:"DS",name:"TransformRotationMatrix",vm:"9",version:"PrivateTag"},'(0047,"GEMS_ADWSoft_3D1",9B)':{tag:'(0047,"GEMS_ADWSoft_3D1",9B)',vr:"DS",name:"TransformTranslationVector",vm:"3",version:"PrivateTag"},'(0047,"GEMS_ADWSoft_3D1",9C)':{tag:'(0047,"GEMS_ADWSoft_3D1",9C)',vr:"LO",name:"TransformLabel",vm:"1",version:"PrivateTag"},'(0047,"GEMS_ADWSoft_3D1",B0)':{tag:'(0047,"GEMS_ADWSoft_3D1",B0)',vr:"SQ",name:"WireframeList",vm:"1",version:"PrivateTag"},'(0047,"GEMS_ADWSoft_3D1",B1)':{tag:'(0047,"GEMS_ADWSoft_3D1",B1)',vr:"US",name:"WireframeCount",vm:"1",version:"PrivateTag"},'(0047,"GEMS_ADWSoft_3D1",B2)':{tag:'(0047,"GEMS_ADWSoft_3D1",B2)',vr:"US",name:"LocationSystem",vm:"1",version:"PrivateTag"},'(0047,"GEMS_ADWSoft_3D1",B5)':{tag:'(0047,"GEMS_ADWSoft_3D1",B5)',vr:"LO",name:"WireframeName",vm:"1",version:"PrivateTag"},'(0047,"GEMS_ADWSoft_3D1",B6)':{tag:'(0047,"GEMS_ADWSoft_3D1",B6)',vr:"LO",name:"WireframeGroupName",vm:"1",version:"PrivateTag"},'(0047,"GEMS_ADWSoft_3D1",B7)':{tag:'(0047,"GEMS_ADWSoft_3D1",B7)',vr:"LO",name:"WireframeColor",vm:"1",version:"PrivateTag"},'(0047,"GEMS_ADWSoft_3D1",B8)':{tag:'(0047,"GEMS_ADWSoft_3D1",B8)',vr:"SL",name:"WireframeAttributes",vm:"1",version:"PrivateTag"},'(0047,"GEMS_ADWSoft_3D1",B9)':{tag:'(0047,"GEMS_ADWSoft_3D1",B9)',vr:"SL",name:"WireframePointCount",vm:"1",version:"PrivateTag"},'(0047,"GEMS_ADWSoft_3D1",BA)':{tag:'(0047,"GEMS_ADWSoft_3D1",BA)',vr:"SL",name:"WireframeTimestamp",vm:"1",version:"PrivateTag"},'(0047,"GEMS_ADWSoft_3D1",BB)':{tag:'(0047,"GEMS_ADWSoft_3D1",BB)',vr:"SQ",name:"WireframePointList",vm:"1",version:"PrivateTag"},'(0047,"GEMS_ADWSoft_3D1",BC)':{tag:'(0047,"GEMS_ADWSoft_3D1",BC)',vr:"DS",name:"WireframePointsCoordinates",vm:"3",version:"PrivateTag"},'(0047,"GEMS_ADWSoft_3D1",C0)':{tag:'(0047,"GEMS_ADWSoft_3D1",C0)',vr:"DS",name:"VolumeUpperLeftHighCornerRAS",vm:"3",version:"PrivateTag"},'(0047,"GEMS_ADWSoft_3D1",C1)':{tag:'(0047,"GEMS_ADWSoft_3D1",C1)',vr:"DS",name:"VolumeSliceToRASRotationMatrix",vm:"9",version:"PrivateTag"},'(0047,"GEMS_ADWSoft_3D1",C2)':{tag:'(0047,"GEMS_ADWSoft_3D1",C2)',vr:"DS",name:"VolumeUpperLeftHighCornerTLOC",vm:"1",version:"PrivateTag"},'(0047,"GEMS_ADWSoft_3D1",D1)':{tag:'(0047,"GEMS_ADWSoft_3D1",D1)',vr:"OB",name:"VolumeSegmentList",vm:"1",version:"PrivateTag"},'(0047,"GEMS_ADWSoft_3D1",D2)':{tag:'(0047,"GEMS_ADWSoft_3D1",D2)',vr:"OB",name:"VolumeGradientList",vm:"1",version:"PrivateTag"},'(0047,"GEMS_ADWSoft_3D1",D3)':{tag:'(0047,"GEMS_ADWSoft_3D1",D3)',vr:"OB",name:"VolumeDensityList",vm:"1",version:"PrivateTag"},'(0047,"GEMS_ADWSoft_3D1",D4)':{tag:'(0047,"GEMS_ADWSoft_3D1",D4)',vr:"OB",name:"VolumeZPositionList",vm:"1",version:"PrivateTag"},'(0047,"GEMS_ADWSoft_3D1",D5)':{tag:'(0047,"GEMS_ADWSoft_3D1",D5)',vr:"OB",name:"VolumeOriginalIndexList",vm:"1",version:"PrivateTag"},'(0039,"GEMS_ADWSoft_DPO",80)':{tag:'(0039,"GEMS_ADWSoft_DPO",80)',vr:"IS",name:"PrivateEntityNumber",vm:"1",version:"PrivateTag"},'(0039,"GEMS_ADWSoft_DPO",85)':{tag:'(0039,"GEMS_ADWSoft_DPO",85)',vr:"DA",name:"PrivateEntityDate",vm:"1",version:"PrivateTag"},'(0039,"GEMS_ADWSoft_DPO",90)':{tag:'(0039,"GEMS_ADWSoft_DPO",90)',vr:"TM",name:"PrivateEntityTime",vm:"1",version:"PrivateTag"},'(0039,"GEMS_ADWSoft_DPO",95)':{tag:'(0039,"GEMS_ADWSoft_DPO",95)',vr:"LO",name:"PrivateEntityLaunchCommand",vm:"1",version:"PrivateTag"},'(0039,"GEMS_ADWSoft_DPO",AA)':{tag:'(0039,"GEMS_ADWSoft_DPO",AA)',vr:"CS",name:"PrivateEntityType",vm:"1",version:"PrivateTag"},'(0033,"GEMS_CTHD_01",02)':{tag:'(0033,"GEMS_CTHD_01",02)',vr:"UN",name:"Unknown",vm:"1",version:"PrivateTag"},'(0037,"GEMS_DRS_1",10)':{tag:'(0037,"GEMS_DRS_1",10)',vr:"LO",name:"ReferringDepartment",vm:"1",version:"PrivateTag"},'(0037,"GEMS_DRS_1",20)':{tag:'(0037,"GEMS_DRS_1",20)',vr:"US",name:"ScreenNumber",vm:"1",version:"PrivateTag"},'(0037,"GEMS_DRS_1",40)':{tag:'(0037,"GEMS_DRS_1",40)',vr:"SH",name:"LeftOrientation",vm:"1",version:"PrivateTag"},'(0037,"GEMS_DRS_1",42)':{tag:'(0037,"GEMS_DRS_1",42)',vr:"SH",name:"RightOrientation",vm:"1",version:"PrivateTag"},'(0037,"GEMS_DRS_1",50)':{tag:'(0037,"GEMS_DRS_1",50)',vr:"CS",name:"Inversion",vm:"1",version:"PrivateTag"},'(0037,"GEMS_DRS_1",60)':{tag:'(0037,"GEMS_DRS_1",60)',vr:"US",name:"DSA",vm:"1",version:"PrivateTag"},'(0009,"GEMS_GENIE_1",10)':{tag:'(0009,"GEMS_GENIE_1",10)',vr:"LO",name:"Unknown",vm:"1",version:"PrivateTag"},'(0009,"GEMS_GENIE_1",11)':{tag:'(0009,"GEMS_GENIE_1",11)',vr:"SL",name:"StudyFlags",vm:"1",version:"PrivateTag"},'(0009,"GEMS_GENIE_1",12)':{tag:'(0009,"GEMS_GENIE_1",12)',vr:"SL",name:"StudyType",vm:"1",version:"PrivateTag"},'(0009,"GEMS_GENIE_1",1e)':{tag:'(0009,"GEMS_GENIE_1",1e)',vr:"UI",name:"Unknown",vm:"1",version:"PrivateTag"},'(0009,"GEMS_GENIE_1",20)':{tag:'(0009,"GEMS_GENIE_1",20)',vr:"LO",name:"Unknown",vm:"1",version:"PrivateTag"},'(0009,"GEMS_GENIE_1",21)':{tag:'(0009,"GEMS_GENIE_1",21)',vr:"SL",name:"SeriesFlags",vm:"1",version:"PrivateTag"},'(0009,"GEMS_GENIE_1",22)':{tag:'(0009,"GEMS_GENIE_1",22)',vr:"SH",name:"UserOrientation",vm:"1",version:"PrivateTag"},'(0009,"GEMS_GENIE_1",23)':{tag:'(0009,"GEMS_GENIE_1",23)',vr:"SL",name:"InitiationType",vm:"1",version:"PrivateTag"},'(0009,"GEMS_GENIE_1",24)':{tag:'(0009,"GEMS_GENIE_1",24)',vr:"SL",name:"InitiationDelay",vm:"1",version:"PrivateTag"},'(0009,"GEMS_GENIE_1",25)':{tag:'(0009,"GEMS_GENIE_1",25)',vr:"SL",name:"InitiationCountRate",vm:"1",version:"PrivateTag"},'(0009,"GEMS_GENIE_1",26)':{tag:'(0009,"GEMS_GENIE_1",26)',vr:"SL",name:"NumberEnergySets",vm:"1",version:"PrivateTag"},'(0009,"GEMS_GENIE_1",27)':{tag:'(0009,"GEMS_GENIE_1",27)',vr:"SL",name:"NumberDetectors",vm:"1",version:"PrivateTag"},'(0009,"GEMS_GENIE_1",29)':{tag:'(0009,"GEMS_GENIE_1",29)',vr:"SL",name:"Unknown",vm:"1",version:"PrivateTag"},'(0009,"GEMS_GENIE_1",2a)':{tag:'(0009,"GEMS_GENIE_1",2a)',vr:"SL",name:"Unknown",vm:"1",version:"PrivateTag"},'(0009,"GEMS_GENIE_1",2c)':{tag:'(0009,"GEMS_GENIE_1",2c)',vr:"LO",name:"SeriesComments",vm:"1",version:"PrivateTag"},'(0009,"GEMS_GENIE_1",2d)':{tag:'(0009,"GEMS_GENIE_1",2d)',vr:"SL",name:"TrackBeatAverage",vm:"1",version:"PrivateTag"},'(0009,"GEMS_GENIE_1",2e)':{tag:'(0009,"GEMS_GENIE_1",2e)',vr:"FD",name:"DistancePrescribed",vm:"1",version:"PrivateTag"},'(0009,"GEMS_GENIE_1",30)':{tag:'(0009,"GEMS_GENIE_1",30)',vr:"LO",name:"Unknown",vm:"1",version:"PrivateTag"},'(0009,"GEMS_GENIE_1",35)':{tag:'(0009,"GEMS_GENIE_1",35)',vr:"SL",name:"GantryLocusType",vm:"1",version:"PrivateTag"},'(0009,"GEMS_GENIE_1",37)':{tag:'(0009,"GEMS_GENIE_1",37)',vr:"SL",name:"StartingHeartRate",vm:"1",version:"PrivateTag"},'(0009,"GEMS_GENIE_1",38)':{tag:'(0009,"GEMS_GENIE_1",38)',vr:"SL",name:"RRWindowWidth",vm:"1",version:"PrivateTag"},'(0009,"GEMS_GENIE_1",39)':{tag:'(0009,"GEMS_GENIE_1",39)',vr:"SL",name:"RRWindowOffset",vm:"1",version:"PrivateTag"},'(0009,"GEMS_GENIE_1",3a)':{tag:'(0009,"GEMS_GENIE_1",3a)',vr:"SL",name:"PercentCycleImaged",vm:"1",version:"PrivateTag"},'(0009,"GEMS_GENIE_1",40)':{tag:'(0009,"GEMS_GENIE_1",40)',vr:"LO",name:"Unknown",vm:"1",version:"PrivateTag"},'(0009,"GEMS_GENIE_1",41)':{tag:'(0009,"GEMS_GENIE_1",41)',vr:"SL",name:"PatientFlags",vm:"1",version:"PrivateTag"},'(0009,"GEMS_GENIE_1",42)':{tag:'(0009,"GEMS_GENIE_1",42)',vr:"DA",name:"PatientCreationDate",vm:"1",version:"PrivateTag"},'(0009,"GEMS_GENIE_1",43)':{tag:'(0009,"GEMS_GENIE_1",43)',vr:"TM",name:"PatientCreationTime",vm:"1",version:"PrivateTag"},'(0011,"GEMS_GENIE_1",0a)':{tag:'(0011,"GEMS_GENIE_1",0a)',vr:"SL",name:"SeriesType",vm:"1",version:"PrivateTag"},'(0011,"GEMS_GENIE_1",0b)':{tag:'(0011,"GEMS_GENIE_1",0b)',vr:"SL",name:"EffectiveSeriesDuration",vm:"1",version:"PrivateTag"},'(0011,"GEMS_GENIE_1",0c)':{tag:'(0011,"GEMS_GENIE_1",0c)',vr:"SL",name:"NumBeats",vm:"1",version:"PrivateTag"},'(0011,"GEMS_GENIE_1",0d)':{tag:'(0011,"GEMS_GENIE_1",0d)',vr:"LO",name:"RadioNuclideName",vm:"1",version:"PrivateTag"},'(0011,"GEMS_GENIE_1",10)':{tag:'(0011,"GEMS_GENIE_1",10)',vr:"LO",name:"Unknown",vm:"1",version:"PrivateTag"},'(0011,"GEMS_GENIE_1",12)':{tag:'(0011,"GEMS_GENIE_1",12)',vr:"LO",name:"DatasetName",vm:"1",version:"PrivateTag"},'(0011,"GEMS_GENIE_1",13)':{tag:'(0011,"GEMS_GENIE_1",13)',vr:"SL",name:"DatasetType",vm:"1",version:"PrivateTag"},'(0011,"GEMS_GENIE_1",15)':{tag:'(0011,"GEMS_GENIE_1",15)',vr:"SL",name:"DetectorNumber",vm:"1",version:"PrivateTag"},'(0011,"GEMS_GENIE_1",16)':{tag:'(0011,"GEMS_GENIE_1",16)',vr:"SL",name:"EnergyNumber",vm:"1",version:"PrivateTag"},'(0011,"GEMS_GENIE_1",17)':{tag:'(0011,"GEMS_GENIE_1",17)',vr:"SL",name:"RRIntervalWindowNumber",vm:"1",version:"PrivateTag"},'(0011,"GEMS_GENIE_1",18)':{tag:'(0011,"GEMS_GENIE_1",18)',vr:"SL",name:"MGBinNumber",vm:"1",version:"PrivateTag"},'(0011,"GEMS_GENIE_1",19)':{tag:'(0011,"GEMS_GENIE_1",19)',vr:"FD",name:"RadiusOfRotation",vm:"1",version:"PrivateTag"},'(0011,"GEMS_GENIE_1",1a)':{tag:'(0011,"GEMS_GENIE_1",1a)',vr:"SL",name:"DetectorCountZone",vm:"1",version:"PrivateTag"},'(0011,"GEMS_GENIE_1",1b)':{tag:'(0011,"GEMS_GENIE_1",1b)',vr:"SL",name:"NumEnergyWindows",vm:"1",version:"PrivateTag"},'(0011,"GEMS_GENIE_1",1c)':{tag:'(0011,"GEMS_GENIE_1",1c)',vr:"SL",name:"EnergyOffset",vm:"4",version:"PrivateTag"},'(0011,"GEMS_GENIE_1",1d)':{tag:'(0011,"GEMS_GENIE_1",1d)',vr:"SL",name:"EnergyRange",vm:"1",version:"PrivateTag"},'(0011,"GEMS_GENIE_1",1f)':{tag:'(0011,"GEMS_GENIE_1",1f)',vr:"SL",name:"ImageOrientation",vm:"1",version:"PrivateTag"},'(0011,"GEMS_GENIE_1",23)':{tag:'(0011,"GEMS_GENIE_1",23)',vr:"SL",name:"UseFOVMask",vm:"1",version:"PrivateTag"},'(0011,"GEMS_GENIE_1",24)':{tag:'(0011,"GEMS_GENIE_1",24)',vr:"SL",name:"FOVMaskYCutoffAngle",vm:"1",version:"PrivateTag"},'(0011,"GEMS_GENIE_1",25)':{tag:'(0011,"GEMS_GENIE_1",25)',vr:"SL",name:"FOVMaskCutoffAngle",vm:"1",version:"PrivateTag"},'(0011,"GEMS_GENIE_1",26)':{tag:'(0011,"GEMS_GENIE_1",26)',vr:"SL",name:"TableOrientation",vm:"1",version:"PrivateTag"},'(0011,"GEMS_GENIE_1",27)':{tag:'(0011,"GEMS_GENIE_1",27)',vr:"SL",name:"ROITopLeft",vm:"2",version:"PrivateTag"},'(0011,"GEMS_GENIE_1",28)':{tag:'(0011,"GEMS_GENIE_1",28)',vr:"SL",name:"ROIBottomRight",vm:"2",version:"PrivateTag"},'(0011,"GEMS_GENIE_1",30)':{tag:'(0011,"GEMS_GENIE_1",30)',vr:"LO",name:"Unknown",vm:"1",version:"PrivateTag"},'(0011,"GEMS_GENIE_1",33)':{tag:'(0011,"GEMS_GENIE_1",33)',vr:"LO",name:"EnergyCorrectName",vm:"1",version:"PrivateTag"},'(0011,"GEMS_GENIE_1",34)':{tag:'(0011,"GEMS_GENIE_1",34)',vr:"LO",name:"SpatialCorrectName",vm:"1",version:"PrivateTag"},'(0011,"GEMS_GENIE_1",35)':{tag:'(0011,"GEMS_GENIE_1",35)',vr:"LO",name:"TuningCalibName",vm:"1",version:"PrivateTag"},'(0011,"GEMS_GENIE_1",36)':{tag:'(0011,"GEMS_GENIE_1",36)',vr:"LO",name:"UniformityCorrectName",vm:"1",version:"PrivateTag"},'(0011,"GEMS_GENIE_1",37)':{tag:'(0011,"GEMS_GENIE_1",37)',vr:"LO",name:"AcquisitionSpecificCorrectName",vm:"1",version:"PrivateTag"},'(0011,"GEMS_GENIE_1",38)':{tag:'(0011,"GEMS_GENIE_1",38)',vr:"SL",name:"ByteOrder",vm:"1",version:"PrivateTag"},'(0011,"GEMS_GENIE_1",3a)':{tag:'(0011,"GEMS_GENIE_1",3a)',vr:"SL",name:"PictureFormat",vm:"1",version:"PrivateTag"},'(0011,"GEMS_GENIE_1",3b)':{tag:'(0011,"GEMS_GENIE_1",3b)',vr:"FD",name:"PixelScale",vm:"1",version:"PrivateTag"},'(0011,"GEMS_GENIE_1",3c)':{tag:'(0011,"GEMS_GENIE_1",3c)',vr:"FD",name:"PixelOffset",vm:"1",version:"PrivateTag"},'(0011,"GEMS_GENIE_1",3e)':{tag:'(0011,"GEMS_GENIE_1",3e)',vr:"SL",name:"FOVShape",vm:"1",version:"PrivateTag"},'(0011,"GEMS_GENIE_1",3f)':{tag:'(0011,"GEMS_GENIE_1",3f)',vr:"SL",name:"DatasetFlags",vm:"1",version:"PrivateTag"},'(0011,"GEMS_GENIE_1",44)':{tag:'(0011,"GEMS_GENIE_1",44)',vr:"FD",name:"ThresholdCenter",vm:"1",version:"PrivateTag"},'(0011,"GEMS_GENIE_1",45)':{tag:'(0011,"GEMS_GENIE_1",45)',vr:"FD",name:"ThresholdWidth",vm:"1",version:"PrivateTag"},'(0011,"GEMS_GENIE_1",46)':{tag:'(0011,"GEMS_GENIE_1",46)',vr:"SL",name:"InterpolationType",vm:"1",version:"PrivateTag"},'(0011,"GEMS_GENIE_1",55)':{tag:'(0011,"GEMS_GENIE_1",55)',vr:"FD",name:"Period",vm:"1",version:"PrivateTag"},'(0011,"GEMS_GENIE_1",56)':{tag:'(0011,"GEMS_GENIE_1",56)',vr:"FD",name:"ElapsedTime",vm:"1",version:"PrivateTag"},'(0013,"GEMS_GENIE_1",10)':{tag:'(0013,"GEMS_GENIE_1",10)',vr:"FD",name:"DigitalFOV",vm:"2",version:"PrivateTag"},'(0013,"GEMS_GENIE_1",11)':{tag:'(0013,"GEMS_GENIE_1",11)',vr:"SL",name:"Unknown",vm:"1",version:"PrivateTag"},'(0013,"GEMS_GENIE_1",12)':{tag:'(0013,"GEMS_GENIE_1",12)',vr:"SL",name:"Unknown",vm:"1",version:"PrivateTag"},'(0013,"GEMS_GENIE_1",16)':{tag:'(0013,"GEMS_GENIE_1",16)',vr:"SL",name:"AutoTrackPeak",vm:"1",version:"PrivateTag"},'(0013,"GEMS_GENIE_1",17)':{tag:'(0013,"GEMS_GENIE_1",17)',vr:"SL",name:"AutoTrackWidth",vm:"1",version:"PrivateTag"},'(0013,"GEMS_GENIE_1",18)':{tag:'(0013,"GEMS_GENIE_1",18)',vr:"FD",name:"TransmissionScanTime",vm:"1",version:"PrivateTag"},'(0013,"GEMS_GENIE_1",19)':{tag:'(0013,"GEMS_GENIE_1",19)',vr:"FD",name:"TransmissionMaskWidth",vm:"1",version:"PrivateTag"},'(0013,"GEMS_GENIE_1",1a)':{tag:'(0013,"GEMS_GENIE_1",1a)',vr:"FD",name:"CopperAttenuatorThickness",vm:"1",version:"PrivateTag"},'(0013,"GEMS_GENIE_1",1c)':{tag:'(0013,"GEMS_GENIE_1",1c)',vr:"FD",name:"Unknown",vm:"1",version:"PrivateTag"},'(0013,"GEMS_GENIE_1",1d)':{tag:'(0013,"GEMS_GENIE_1",1d)',vr:"FD",name:"Unknown",vm:"1",version:"PrivateTag"},'(0013,"GEMS_GENIE_1",1e)':{tag:'(0013,"GEMS_GENIE_1",1e)',vr:"FD",name:"TomoViewOffset",vm:"1-n",version:"PrivateTag"},'(0013,"GEMS_GENIE_1",26)':{tag:'(0013,"GEMS_GENIE_1",26)',vr:"LT",name:"StudyComments",vm:"1",version:"PrivateTag"},'(0033,"GEMS_GNHD_01",01)':{tag:'(0033,"GEMS_GNHD_01",01)',vr:"UN",name:"Unknown",vm:"1",version:"PrivateTag"},'(0033,"GEMS_GNHD_01",02)':{tag:'(0033,"GEMS_GNHD_01",02)',vr:"UN",name:"Unknown",vm:"1",version:"PrivateTag"},'(0009,"GEMS_IDEN_01",01)':{tag:'(0009,"GEMS_IDEN_01",01)',vr:"LO",name:"FullFidelity",vm:"1",version:"PrivateTag"},'(0009,"GEMS_IDEN_01",02)':{tag:'(0009,"GEMS_IDEN_01",02)',vr:"SH",name:"SuiteId",vm:"1",version:"PrivateTag"},'(0009,"GEMS_IDEN_01",04)':{tag:'(0009,"GEMS_IDEN_01",04)',vr:"SH",name:"ProductId",vm:"1",version:"PrivateTag"},'(0009,"GEMS_IDEN_01",17)':{tag:'(0009,"GEMS_IDEN_01",17)',vr:"LT",name:"Unknown",vm:"1",version:"PrivateTag"},'(0009,"GEMS_IDEN_01",1a)':{tag:'(0009,"GEMS_IDEN_01",1a)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0009,"GEMS_IDEN_01",20)':{tag:'(0009,"GEMS_IDEN_01",20)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0009,"GEMS_IDEN_01",27)':{tag:'(0009,"GEMS_IDEN_01",27)',vr:"SL",name:"ImageActualDate",vm:"1",version:"PrivateTag"},'(0009,"GEMS_IDEN_01",2f)':{tag:'(0009,"GEMS_IDEN_01",2f)',vr:"LT",name:"Unknown",vm:"1",version:"PrivateTag"},'(0009,"GEMS_IDEN_01",30)':{tag:'(0009,"GEMS_IDEN_01",30)',vr:"SH",name:"ServiceId",vm:"1",version:"PrivateTag"},'(0009,"GEMS_IDEN_01",31)':{tag:'(0009,"GEMS_IDEN_01",31)',vr:"SH",name:"MobileLocationNumber",vm:"1",version:"PrivateTag"},'(0009,"GEMS_IDEN_01",e2)':{tag:'(0009,"GEMS_IDEN_01",e2)',vr:"LT",name:"Unknown",vm:"1",version:"PrivateTag"},'(0009,"GEMS_IDEN_01",e3)':{tag:'(0009,"GEMS_IDEN_01",e3)',vr:"UI",name:"EquipmentUID",vm:"1",version:"PrivateTag"},'(0009,"GEMS_IDEN_01",e6)':{tag:'(0009,"GEMS_IDEN_01",e6)',vr:"SH",name:"GenesisVersionNow",vm:"1",version:"PrivateTag"},'(0009,"GEMS_IDEN_01",e7)':{tag:'(0009,"GEMS_IDEN_01",e7)',vr:"UL",name:"ExamRecordChecksum",vm:"1",version:"PrivateTag"},'(0009,"GEMS_IDEN_01",e8)':{tag:'(0009,"GEMS_IDEN_01",e8)',vr:"UL",name:"Unknown",vm:"1",version:"PrivateTag"},'(0009,"GEMS_IDEN_01",e9)':{tag:'(0009,"GEMS_IDEN_01",e9)',vr:"SL",name:"ActualSeriesDataTimeStamp",vm:"1",version:"PrivateTag"},'(0027,"GEMS_IMAG_01",06)':{tag:'(0027,"GEMS_IMAG_01",06)',vr:"SL",name:"ImageArchiveFlag",vm:"1",version:"PrivateTag"},'(0027,"GEMS_IMAG_01",10)':{tag:'(0027,"GEMS_IMAG_01",10)',vr:"SS",name:"ScoutType",vm:"1",version:"PrivateTag"},'(0027,"GEMS_IMAG_01",1c)':{tag:'(0027,"GEMS_IMAG_01",1c)',vr:"SL",name:"VmaMamp",vm:"1",version:"PrivateTag"},'(0027,"GEMS_IMAG_01",1d)':{tag:'(0027,"GEMS_IMAG_01",1d)',vr:"SS",name:"VmaPhase",vm:"1",version:"PrivateTag"},'(0027,"GEMS_IMAG_01",1e)':{tag:'(0027,"GEMS_IMAG_01",1e)',vr:"SL",name:"VmaMod",vm:"1",version:"PrivateTag"},'(0027,"GEMS_IMAG_01",1f)':{tag:'(0027,"GEMS_IMAG_01",1f)',vr:"SL",name:"VmaClip",vm:"1",version:"PrivateTag"},'(0027,"GEMS_IMAG_01",20)':{tag:'(0027,"GEMS_IMAG_01",20)',vr:"SS",name:"SmartScanOnOffFlag",vm:"1",version:"PrivateTag"},'(0027,"GEMS_IMAG_01",30)':{tag:'(0027,"GEMS_IMAG_01",30)',vr:"SH",name:"ForeignImageRevision",vm:"1",version:"PrivateTag"},'(0027,"GEMS_IMAG_01",31)':{tag:'(0027,"GEMS_IMAG_01",31)',vr:"SS",name:"ImagingMode",vm:"1",version:"PrivateTag"},'(0027,"GEMS_IMAG_01",32)':{tag:'(0027,"GEMS_IMAG_01",32)',vr:"SS",name:"PulseSequence",vm:"1",version:"PrivateTag"},'(0027,"GEMS_IMAG_01",33)':{tag:'(0027,"GEMS_IMAG_01",33)',vr:"SL",name:"ImagingOptions",vm:"1",version:"PrivateTag"},'(0027,"GEMS_IMAG_01",35)':{tag:'(0027,"GEMS_IMAG_01",35)',vr:"SS",name:"PlaneType",vm:"1",version:"PrivateTag"},'(0027,"GEMS_IMAG_01",36)':{tag:'(0027,"GEMS_IMAG_01",36)',vr:"SL",name:"ObliquePlane",vm:"1",version:"PrivateTag"},'(0027,"GEMS_IMAG_01",40)':{tag:'(0027,"GEMS_IMAG_01",40)',vr:"SH",name:"RASLetterOfImageLocation",vm:"1",version:"PrivateTag"},'(0027,"GEMS_IMAG_01",41)':{tag:'(0027,"GEMS_IMAG_01",41)',vr:"FL",name:"ImageLocation",vm:"1",version:"PrivateTag"},'(0027,"GEMS_IMAG_01",42)':{tag:'(0027,"GEMS_IMAG_01",42)',vr:"FL",name:"CenterRCoordOfPlaneImage",vm:"1",version:"PrivateTag"},'(0027,"GEMS_IMAG_01",43)':{tag:'(0027,"GEMS_IMAG_01",43)',vr:"FL",name:"CenterACoordOfPlaneImage",vm:"1",version:"PrivateTag"},'(0027,"GEMS_IMAG_01",44)':{tag:'(0027,"GEMS_IMAG_01",44)',vr:"FL",name:"CenterSCoordOfPlaneImage",vm:"1",version:"PrivateTag"},'(0027,"GEMS_IMAG_01",45)':{tag:'(0027,"GEMS_IMAG_01",45)',vr:"FL",name:"NormalRCoord",vm:"1",version:"PrivateTag"},'(0027,"GEMS_IMAG_01",46)':{tag:'(0027,"GEMS_IMAG_01",46)',vr:"FL",name:"NormalACoord",vm:"1",version:"PrivateTag"},'(0027,"GEMS_IMAG_01",47)':{tag:'(0027,"GEMS_IMAG_01",47)',vr:"FL",name:"NormalSCoord",vm:"1",version:"PrivateTag"},'(0027,"GEMS_IMAG_01",48)':{tag:'(0027,"GEMS_IMAG_01",48)',vr:"FL",name:"RCoordOfTopRightCorner",vm:"1",version:"PrivateTag"},'(0027,"GEMS_IMAG_01",49)':{tag:'(0027,"GEMS_IMAG_01",49)',vr:"FL",name:"ACoordOfTopRightCorner",vm:"1",version:"PrivateTag"},'(0027,"GEMS_IMAG_01",4a)':{tag:'(0027,"GEMS_IMAG_01",4a)',vr:"FL",name:"SCoordOfTopRightCorner",vm:"1",version:"PrivateTag"},'(0027,"GEMS_IMAG_01",4b)':{tag:'(0027,"GEMS_IMAG_01",4b)',vr:"FL",name:"RCoordOfBottomRightCorner",vm:"1",version:"PrivateTag"},'(0027,"GEMS_IMAG_01",4c)':{tag:'(0027,"GEMS_IMAG_01",4c)',vr:"FL",name:"ACoordOfBottomRightCorner",vm:"1",version:"PrivateTag"},'(0027,"GEMS_IMAG_01",4d)':{tag:'(0027,"GEMS_IMAG_01",4d)',vr:"FL",name:"SCoordOfBottomRightCorner",vm:"1",version:"PrivateTag"},'(0027,"GEMS_IMAG_01",50)':{tag:'(0027,"GEMS_IMAG_01",50)',vr:"FL",name:"TableStartLocation",vm:"1",version:"PrivateTag"},'(0027,"GEMS_IMAG_01",51)':{tag:'(0027,"GEMS_IMAG_01",51)',vr:"FL",name:"TableEndLocation",vm:"1",version:"PrivateTag"},'(0027,"GEMS_IMAG_01",52)':{tag:'(0027,"GEMS_IMAG_01",52)',vr:"SH",name:"RASLetterForSideOfImage",vm:"1",version:"PrivateTag"},'(0027,"GEMS_IMAG_01",53)':{tag:'(0027,"GEMS_IMAG_01",53)',vr:"SH",name:"RASLetterForAnteriorPosterior",vm:"1",version:"PrivateTag"},'(0027,"GEMS_IMAG_01",54)':{tag:'(0027,"GEMS_IMAG_01",54)',vr:"SH",name:"RASLetterForScoutStartLoc",vm:"1",version:"PrivateTag"},'(0027,"GEMS_IMAG_01",55)':{tag:'(0027,"GEMS_IMAG_01",55)',vr:"SH",name:"RASLetterForScoutEndLoc",vm:"1",version:"PrivateTag"},'(0027,"GEMS_IMAG_01",60)':{tag:'(0027,"GEMS_IMAG_01",60)',vr:"FL",name:"ImageDimensionX",vm:"1",version:"PrivateTag"},'(0027,"GEMS_IMAG_01",61)':{tag:'(0027,"GEMS_IMAG_01",61)',vr:"FL",name:"ImageDimensionY",vm:"1",version:"PrivateTag"},'(0027,"GEMS_IMAG_01",62)':{tag:'(0027,"GEMS_IMAG_01",62)',vr:"FL",name:"NumberOfExcitations",vm:"1",version:"PrivateTag"},'(0029,"GEMS_IMPS_01",04)':{tag:'(0029,"GEMS_IMPS_01",04)',vr:"SL",name:"LowerRangeOfPixels",vm:"1",version:"PrivateTag"},'(0029,"GEMS_IMPS_01",05)':{tag:'(0029,"GEMS_IMPS_01",05)',vr:"DS",name:"LowerRangeOfPixels",vm:"1",version:"PrivateTag"},'(0029,"GEMS_IMPS_01",06)':{tag:'(0029,"GEMS_IMPS_01",06)',vr:"DS",name:"LowerRangeOfPixels",vm:"1",version:"PrivateTag"},'(0029,"GEMS_IMPS_01",07)':{tag:'(0029,"GEMS_IMPS_01",07)',vr:"SL",name:"LowerRangeOfPixels",vm:"1",version:"PrivateTag"},'(0029,"GEMS_IMPS_01",08)':{tag:'(0029,"GEMS_IMPS_01",08)',vr:"SH",name:"LowerRangeOfPixels",vm:"1",version:"PrivateTag"},'(0029,"GEMS_IMPS_01",09)':{tag:'(0029,"GEMS_IMPS_01",09)',vr:"SH",name:"LowerRangeOfPixels",vm:"1",version:"PrivateTag"},'(0029,"GEMS_IMPS_01",0a)':{tag:'(0029,"GEMS_IMPS_01",0a)',vr:"SS",name:"LowerRangeOfPixels",vm:"1",version:"PrivateTag"},'(0029,"GEMS_IMPS_01",15)':{tag:'(0029,"GEMS_IMPS_01",15)',vr:"SL",name:"LowerRangeOfPixels",vm:"1",version:"PrivateTag"},'(0029,"GEMS_IMPS_01",16)':{tag:'(0029,"GEMS_IMPS_01",16)',vr:"SL",name:"LowerRangeOfPixels",vm:"1",version:"PrivateTag"},'(0029,"GEMS_IMPS_01",17)':{tag:'(0029,"GEMS_IMPS_01",17)',vr:"SL",name:"LowerRangeOfPixels",vm:"1",version:"PrivateTag"},'(0029,"GEMS_IMPS_01",18)':{tag:'(0029,"GEMS_IMPS_01",18)',vr:"SL",name:"UpperRangeOfPixels",vm:"1",version:"PrivateTag"},'(0029,"GEMS_IMPS_01",1a)':{tag:'(0029,"GEMS_IMPS_01",1a)',vr:"SL",name:"LengthOfTotalHeaderInBytes",vm:"1",version:"PrivateTag"},'(0029,"GEMS_IMPS_01",26)':{tag:'(0029,"GEMS_IMPS_01",26)',vr:"SS",name:"VersionOfHeaderStructure",vm:"1",version:"PrivateTag"},'(0029,"GEMS_IMPS_01",34)':{tag:'(0029,"GEMS_IMPS_01",34)',vr:"SL",name:"AdvantageCompOverflow",vm:"1",version:"PrivateTag"},'(0029,"GEMS_IMPS_01",35)':{tag:'(0029,"GEMS_IMPS_01",35)',vr:"SL",name:"AdvantageCompUnderflow",vm:"1",version:"PrivateTag"},'(0043,"GEMS_PARM_01",01)':{tag:'(0043,"GEMS_PARM_01",01)',vr:"SS",name:"BitmapOfPrescanOptions",vm:"1",version:"PrivateTag"},'(0043,"GEMS_PARM_01",02)':{tag:'(0043,"GEMS_PARM_01",02)',vr:"SS",name:"GradientOffsetInX",vm:"1",version:"PrivateTag"},'(0043,"GEMS_PARM_01",03)':{tag:'(0043,"GEMS_PARM_01",03)',vr:"SS",name:"GradientOffsetInY",vm:"1",version:"PrivateTag"},'(0043,"GEMS_PARM_01",04)':{tag:'(0043,"GEMS_PARM_01",04)',vr:"SS",name:"GradientOffsetInZ",vm:"1",version:"PrivateTag"},'(0043,"GEMS_PARM_01",05)':{tag:'(0043,"GEMS_PARM_01",05)',vr:"SS",name:"ImageIsOriginalOrUnoriginal",vm:"1",version:"PrivateTag"},'(0043,"GEMS_PARM_01",06)':{tag:'(0043,"GEMS_PARM_01",06)',vr:"SS",name:"NumberOfEPIShots",vm:"1",version:"PrivateTag"},'(0043,"GEMS_PARM_01",07)':{tag:'(0043,"GEMS_PARM_01",07)',vr:"SS",name:"ViewsPerSegment",vm:"1",version:"PrivateTag"},'(0043,"GEMS_PARM_01",08)':{tag:'(0043,"GEMS_PARM_01",08)',vr:"SS",name:"RespiratoryRateInBPM",vm:"1",version:"PrivateTag"},'(0043,"GEMS_PARM_01",09)':{tag:'(0043,"GEMS_PARM_01",09)',vr:"SS",name:"RespiratoryTriggerPoint",vm:"1",version:"PrivateTag"},'(0043,"GEMS_PARM_01",0a)':{tag:'(0043,"GEMS_PARM_01",0a)',vr:"SS",name:"TypeOfReceiverUsed",vm:"1",version:"PrivateTag"},'(0043,"GEMS_PARM_01",0b)':{tag:'(0043,"GEMS_PARM_01",0b)',vr:"DS",name:"PeakRateOfChangeOfGradientField",vm:"1",version:"PrivateTag"},'(0043,"GEMS_PARM_01",0c)':{tag:'(0043,"GEMS_PARM_01",0c)',vr:"DS",name:"LimitsInUnitsOfPercent",vm:"1",version:"PrivateTag"},'(0043,"GEMS_PARM_01",0d)':{tag:'(0043,"GEMS_PARM_01",0d)',vr:"DS",name:"PSDEstimatedLimit",vm:"1",version:"PrivateTag"},'(0043,"GEMS_PARM_01",0e)':{tag:'(0043,"GEMS_PARM_01",0e)',vr:"DS",name:"PSDEstimatedLimitInTeslaPerSecond",vm:"1",version:"PrivateTag"},'(0043,"GEMS_PARM_01",0f)':{tag:'(0043,"GEMS_PARM_01",0f)',vr:"DS",name:"SARAvgHead",vm:"1",version:"PrivateTag"},'(0043,"GEMS_PARM_01",10)':{tag:'(0043,"GEMS_PARM_01",10)',vr:"US",name:"WindowValue",vm:"1",version:"PrivateTag"},'(0043,"GEMS_PARM_01",11)':{tag:'(0043,"GEMS_PARM_01",11)',vr:"US",name:"TotalInputViews",vm:"1",version:"PrivateTag"},'(0043,"GEMS_PARM_01",12)':{tag:'(0043,"GEMS_PARM_01",12)',vr:"SS",name:"XrayChain",vm:"3",version:"PrivateTag"},'(0043,"GEMS_PARM_01",13)':{tag:'(0043,"GEMS_PARM_01",13)',vr:"SS",name:"ReconKernelParameters",vm:"5",version:"PrivateTag"},'(0043,"GEMS_PARM_01",14)':{tag:'(0043,"GEMS_PARM_01",14)',vr:"SS",name:"CalibrationParameters",vm:"3",version:"PrivateTag"},'(0043,"GEMS_PARM_01",15)':{tag:'(0043,"GEMS_PARM_01",15)',vr:"SS",name:"TotalOutputViews",vm:"3",version:"PrivateTag"},'(0043,"GEMS_PARM_01",16)':{tag:'(0043,"GEMS_PARM_01",16)',vr:"SS",name:"NumberOfOverranges",vm:"5",version:"PrivateTag"},'(0043,"GEMS_PARM_01",17)':{tag:'(0043,"GEMS_PARM_01",17)',vr:"DS",name:"IBHImageScaleFactors",vm:"1",version:"PrivateTag"},'(0043,"GEMS_PARM_01",18)':{tag:'(0043,"GEMS_PARM_01",18)',vr:"DS",name:"BBHCoefficients",vm:"3",version:"PrivateTag"},'(0043,"GEMS_PARM_01",19)':{tag:'(0043,"GEMS_PARM_01",19)',vr:"SS",name:"NumberOfBBHChainsToBlend",vm:"1",version:"PrivateTag"},'(0043,"GEMS_PARM_01",1a)':{tag:'(0043,"GEMS_PARM_01",1a)',vr:"SL",name:"StartingChannelNumber",vm:"1",version:"PrivateTag"},'(0043,"GEMS_PARM_01",1b)':{tag:'(0043,"GEMS_PARM_01",1b)',vr:"SS",name:"PPScanParameters",vm:"1",version:"PrivateTag"},'(0043,"GEMS_PARM_01",1c)':{tag:'(0043,"GEMS_PARM_01",1c)',vr:"SS",name:"GEImageIntegrity",vm:"1",version:"PrivateTag"},'(0043,"GEMS_PARM_01",1d)':{tag:'(0043,"GEMS_PARM_01",1d)',vr:"SS",name:"LevelValue",vm:"1",version:"PrivateTag"},'(0043,"GEMS_PARM_01",1e)':{tag:'(0043,"GEMS_PARM_01",1e)',vr:"DS",name:"DeltaStartTime",vm:"1",version:"PrivateTag"},'(0043,"GEMS_PARM_01",1f)':{tag:'(0043,"GEMS_PARM_01",1f)',vr:"SL",name:"MaxOverrangesInAView",vm:"1",version:"PrivateTag"},'(0043,"GEMS_PARM_01",20)':{tag:'(0043,"GEMS_PARM_01",20)',vr:"DS",name:"AvgOverrangesAllViews",vm:"1",version:"PrivateTag"},'(0043,"GEMS_PARM_01",21)':{tag:'(0043,"GEMS_PARM_01",21)',vr:"SS",name:"CorrectedAfterglowTerms",vm:"1",version:"PrivateTag"},'(0043,"GEMS_PARM_01",25)':{tag:'(0043,"GEMS_PARM_01",25)',vr:"SS",name:"ReferenceChannels",vm:"6",version:"PrivateTag"},'(0043,"GEMS_PARM_01",26)':{tag:'(0043,"GEMS_PARM_01",26)',vr:"US",name:"NoViewsRefChannelsBlocked",vm:"6",version:"PrivateTag"},'(0043,"GEMS_PARM_01",27)':{tag:'(0043,"GEMS_PARM_01",27)',vr:"SH",name:"ScanPitchRatio",vm:"1",version:"PrivateTag"},'(0043,"GEMS_PARM_01",28)':{tag:'(0043,"GEMS_PARM_01",28)',vr:"OB",name:"UniqueImageIdentifier",vm:"1",version:"PrivateTag"},'(0043,"GEMS_PARM_01",29)':{tag:'(0043,"GEMS_PARM_01",29)',vr:"OB",name:"HistogramTables",vm:"1",version:"PrivateTag"},'(0043,"GEMS_PARM_01",2a)':{tag:'(0043,"GEMS_PARM_01",2a)',vr:"OB",name:"UserDefinedData",vm:"1",version:"PrivateTag"},'(0043,"GEMS_PARM_01",2b)':{tag:'(0043,"GEMS_PARM_01",2b)',vr:"SS",name:"PrivateScanOptions",vm:"4",version:"PrivateTag"},'(0043,"GEMS_PARM_01",2c)':{tag:'(0043,"GEMS_PARM_01",2c)',vr:"SS",name:"EffectiveEchoSpacing",vm:"1",version:"PrivateTag"},'(0043,"GEMS_PARM_01",2d)':{tag:'(0043,"GEMS_PARM_01",2d)',vr:"SH",name:"StringSlopField1",vm:"1",version:"PrivateTag"},'(0043,"GEMS_PARM_01",2e)':{tag:'(0043,"GEMS_PARM_01",2e)',vr:"SH",name:"StringSlopField2",vm:"1",version:"PrivateTag"},'(0043,"GEMS_PARM_01",2f)':{tag:'(0043,"GEMS_PARM_01",2f)',vr:"SS",name:"RawDataType",vm:"1",version:"PrivateTag"},'(0043,"GEMS_PARM_01",30)':{tag:'(0043,"GEMS_PARM_01",30)',vr:"SS",name:"RawDataType",vm:"1",version:"PrivateTag"},'(0043,"GEMS_PARM_01",31)':{tag:'(0043,"GEMS_PARM_01",31)',vr:"DS",name:"RACoordOfTargetReconCentre",vm:"2",version:"PrivateTag"},'(0043,"GEMS_PARM_01",32)':{tag:'(0043,"GEMS_PARM_01",32)',vr:"SS",name:"RawDataType",vm:"1",version:"PrivateTag"},'(0043,"GEMS_PARM_01",33)':{tag:'(0043,"GEMS_PARM_01",33)',vr:"FL",name:"NegScanSpacing",vm:"1",version:"PrivateTag"},'(0043,"GEMS_PARM_01",34)':{tag:'(0043,"GEMS_PARM_01",34)',vr:"IS",name:"OffsetFrequency",vm:"1",version:"PrivateTag"},'(0043,"GEMS_PARM_01",35)':{tag:'(0043,"GEMS_PARM_01",35)',vr:"UL",name:"UserUsageTag",vm:"1",version:"PrivateTag"},'(0043,"GEMS_PARM_01",36)':{tag:'(0043,"GEMS_PARM_01",36)',vr:"UL",name:"UserFillMapMSW",vm:"1",version:"PrivateTag"},'(0043,"GEMS_PARM_01",37)':{tag:'(0043,"GEMS_PARM_01",37)',vr:"UL",name:"UserFillMapLSW",vm:"1",version:"PrivateTag"},'(0043,"GEMS_PARM_01",38)':{tag:'(0043,"GEMS_PARM_01",38)',vr:"FL",name:"User25ToUser48",vm:"24",version:"PrivateTag"},'(0043,"GEMS_PARM_01",39)':{tag:'(0043,"GEMS_PARM_01",39)',vr:"IS",name:"SlopInteger6ToSlopInteger9",vm:"4",version:"PrivateTag"},'(0043,"GEMS_PARM_01",40)':{tag:'(0043,"GEMS_PARM_01",40)',vr:"FL",name:"TriggerOnPosition",vm:"4",version:"PrivateTag"},'(0043,"GEMS_PARM_01",41)':{tag:'(0043,"GEMS_PARM_01",41)',vr:"FL",name:"DegreeOfRotation",vm:"4",version:"PrivateTag"},'(0043,"GEMS_PARM_01",42)':{tag:'(0043,"GEMS_PARM_01",42)',vr:"SL",name:"DASTriggerSource",vm:"4",version:"PrivateTag"},'(0043,"GEMS_PARM_01",43)':{tag:'(0043,"GEMS_PARM_01",43)',vr:"SL",name:"DASFpaGain",vm:"4",version:"PrivateTag"},'(0043,"GEMS_PARM_01",44)':{tag:'(0043,"GEMS_PARM_01",44)',vr:"SL",name:"DASOutputSource",vm:"4",version:"PrivateTag"},'(0043,"GEMS_PARM_01",45)':{tag:'(0043,"GEMS_PARM_01",45)',vr:"SL",name:"DASAdInput",vm:"4",version:"PrivateTag"},'(0043,"GEMS_PARM_01",46)':{tag:'(0043,"GEMS_PARM_01",46)',vr:"SL",name:"DASCalMode",vm:"4",version:"PrivateTag"},'(0043,"GEMS_PARM_01",47)':{tag:'(0043,"GEMS_PARM_01",47)',vr:"SL",name:"DASCalFrequency",vm:"4",version:"PrivateTag"},'(0043,"GEMS_PARM_01",48)':{tag:'(0043,"GEMS_PARM_01",48)',vr:"SL",name:"DASRegXm",vm:"4",version:"PrivateTag"},'(0043,"GEMS_PARM_01",49)':{tag:'(0043,"GEMS_PARM_01",49)',vr:"SL",name:"DASAutoZero",vm:"4",version:"PrivateTag"},'(0043,"GEMS_PARM_01",4a)':{tag:'(0043,"GEMS_PARM_01",4a)',vr:"SS",name:"StartingChannelOfView",vm:"4",version:"PrivateTag"},'(0043,"GEMS_PARM_01",4b)':{tag:'(0043,"GEMS_PARM_01",4b)',vr:"SL",name:"DASXmPattern",vm:"4",version:"PrivateTag"},'(0043,"GEMS_PARM_01",4c)':{tag:'(0043,"GEMS_PARM_01",4c)',vr:"SS",name:"TGGCTriggerMode",vm:"4",version:"PrivateTag"},'(0043,"GEMS_PARM_01",4d)':{tag:'(0043,"GEMS_PARM_01",4d)',vr:"FL",name:"StartScanToXrayOnDelay",vm:"4",version:"PrivateTag"},'(0043,"GEMS_PARM_01",4e)':{tag:'(0043,"GEMS_PARM_01",4e)',vr:"FL",name:"DurationOfXrayOn",vm:"4",version:"PrivateTag"},'(0043,"GEMS_PARM_01",60)':{tag:'(0043,"GEMS_PARM_01",60)',vr:"IS",name:"SlopInteger10ToSlopInteger17",vm:"8",version:"PrivateTag"},'(0043,"GEMS_PARM_01",61)':{tag:'(0043,"GEMS_PARM_01",61)',vr:"UI",name:"ScannerStudyEntityUID",vm:"1",version:"PrivateTag"},'(0043,"GEMS_PARM_01",62)':{tag:'(0043,"GEMS_PARM_01",62)',vr:"SH",name:"ScannerStudyID",vm:"1",version:"PrivateTag"},'(0043,"GEMS_PARM_01",6f)':{tag:'(0043,"GEMS_PARM_01",6f)',vr:"DS",name:"ScannerTableEntry",vm:"3",version:"PrivateTag"},'(0043,"GEMS_PARM_01",70)':{tag:'(0043,"GEMS_PARM_01",70)',vr:"LO",name:"ParadigmName",vm:"1",version:"PrivateTag"},'(0043,"GEMS_PARM_01",71)':{tag:'(0043,"GEMS_PARM_01",71)',vr:"ST",name:"ParadigmDescription",vm:"1",version:"PrivateTag"},'(0043,"GEMS_PARM_01",72)':{tag:'(0043,"GEMS_PARM_01",72)',vr:"UI",name:"ParadigmUID",vm:"1",version:"PrivateTag"},'(0043,"GEMS_PARM_01",73)':{tag:'(0043,"GEMS_PARM_01",73)',vr:"US",name:"ExperimentType",vm:"1",version:"PrivateTag"},'(0043,"GEMS_PARM_01",74)':{tag:'(0043,"GEMS_PARM_01",74)',vr:"US",name:"NumberOfRestVolumes",vm:"1",version:"PrivateTag"},'(0043,"GEMS_PARM_01",75)':{tag:'(0043,"GEMS_PARM_01",75)',vr:"US",name:"NumberOfActiveVolumes",vm:"1",version:"PrivateTag"},'(0043,"GEMS_PARM_01",76)':{tag:'(0043,"GEMS_PARM_01",76)',vr:"US",name:"NumberOfDummyScans",vm:"1",version:"PrivateTag"},'(0043,"GEMS_PARM_01",77)':{tag:'(0043,"GEMS_PARM_01",77)',vr:"SH",name:"ApplicationName",vm:"1",version:"PrivateTag"},'(0043,"GEMS_PARM_01",78)':{tag:'(0043,"GEMS_PARM_01",78)',vr:"SH",name:"ApplicationVersion",vm:"1",version:"PrivateTag"},'(0043,"GEMS_PARM_01",79)':{tag:'(0043,"GEMS_PARM_01",79)',vr:"US",name:"SlicesPerVolume",vm:"1",version:"PrivateTag"},'(0043,"GEMS_PARM_01",7a)':{tag:'(0043,"GEMS_PARM_01",7a)',vr:"US",name:"ExpectedTimePoints",vm:"1",version:"PrivateTag"},'(0043,"GEMS_PARM_01",7b)':{tag:'(0043,"GEMS_PARM_01",7b)',vr:"FL",name:"RegressorValues",vm:"1-n",version:"PrivateTag"},'(0043,"GEMS_PARM_01",7c)':{tag:'(0043,"GEMS_PARM_01",7c)',vr:"FL",name:"DelayAfterSliceGroup",vm:"1",version:"PrivateTag"},'(0043,"GEMS_PARM_01",7d)':{tag:'(0043,"GEMS_PARM_01",7d)',vr:"US",name:"ReconModeFlagWord",vm:"1",version:"PrivateTag"},'(0043,"GEMS_PARM_01",7e)':{tag:'(0043,"GEMS_PARM_01",7e)',vr:"LO",name:"PACCSpecificInformation",vm:"1-n",version:"PrivateTag"},'(0043,"GEMS_PARM_01",7f)':{tag:'(0043,"GEMS_PARM_01",7f)',vr:"DS",name:"EDWIScaleFactor",vm:"1-n",version:"PrivateTag"},'(0043,"GEMS_PARM_01",80)':{tag:'(0043,"GEMS_PARM_01",80)',vr:"LO",name:"CoilIDData",vm:"1-n",version:"PrivateTag"},'(0043,"GEMS_PARM_01",81)':{tag:'(0043,"GEMS_PARM_01",81)',vr:"LO",name:"GECoilName",vm:"1",version:"PrivateTag"},'(0043,"GEMS_PARM_01",82)':{tag:'(0043,"GEMS_PARM_01",82)',vr:"LO",name:"SystemConfigurationInformation",vm:"1-n",version:"PrivateTag"},'(0043,"GEMS_PARM_01",83)':{tag:'(0043,"GEMS_PARM_01",83)',vr:"DS",name:"AssetRFactors",vm:"1-2",version:"PrivateTag"},'(0043,"GEMS_PARM_01",84)':{tag:'(0043,"GEMS_PARM_01",84)',vr:"LO",name:"AdditionalAssetData",vm:"5-n",version:"PrivateTag"},'(0043,"GEMS_PARM_01",85)':{tag:'(0043,"GEMS_PARM_01",85)',vr:"UT",name:"DebugDataTextFormat",vm:"1",version:"PrivateTag"},'(0043,"GEMS_PARM_01",86)':{tag:'(0043,"GEMS_PARM_01",86)',vr:"OB",name:"DebugDataBinaryFormat",vm:"1",version:"PrivateTag"},'(0043,"GEMS_PARM_01",87)':{tag:'(0043,"GEMS_PARM_01",87)',vr:"UT",name:"ScannerSoftwareVersionLongForm",vm:"1",version:"PrivateTag"},'(0043,"GEMS_PARM_01",88)':{tag:'(0043,"GEMS_PARM_01",88)',vr:"UI",name:"PUREAcquisitionCalibrationSeriesUID",vm:"1",version:"PrivateTag"},'(0043,"GEMS_PARM_01",89)':{tag:'(0043,"GEMS_PARM_01",89)',vr:"LO",name:"GoverningBodydBdtAndSARDefinition",vm:"3",version:"PrivateTag"},'(0043,"GEMS_PARM_01",8a)':{tag:'(0043,"GEMS_PARM_01",8a)',vr:"CS",name:"PrivateInPlanePhaseEncodingDirection",vm:"1",version:"PrivateTag"},'(0043,"GEMS_PARM_01",8b)':{tag:'(0043,"GEMS_PARM_01",8b)',vr:"OB",name:"FMRIBinaryDataBlock",vm:"1",version:"PrivateTag"},'(0043,"GEMS_PARM_01",8c)':{tag:'(0043,"GEMS_PARM_01",8c)',vr:"DS",name:"VoxelLocation",vm:"6",version:"PrivateTag"},'(0043,"GEMS_PARM_01",8d)':{tag:'(0043,"GEMS_PARM_01",8d)',vr:"DS",name:"SATBandLocations",vm:"7-7n",version:"PrivateTag"},'(0043,"GEMS_PARM_01",8e)':{tag:'(0043,"GEMS_PARM_01",8e)',vr:"DS",name:"SpectroPrescanValues",vm:"3",version:"PrivateTag"},'(0043,"GEMS_PARM_01",8f)':{tag:'(0043,"GEMS_PARM_01",8f)',vr:"DS",name:"SpectroParameters",vm:"3",version:"PrivateTag"},'(0043,"GEMS_PARM_01",90)':{tag:'(0043,"GEMS_PARM_01",90)',vr:"LO",name:"SARDefinition",vm:"1-n",version:"PrivateTag"},'(0043,"GEMS_PARM_01",91)':{tag:'(0043,"GEMS_PARM_01",91)',vr:"DS",name:"SARValue",vm:"1-n",version:"PrivateTag"},'(0043,"GEMS_PARM_01",92)':{tag:'(0043,"GEMS_PARM_01",92)',vr:"LO",name:"ImageErrorText",vm:"1",version:"PrivateTag"},'(0043,"GEMS_PARM_01",93)':{tag:'(0043,"GEMS_PARM_01",93)',vr:"DS",name:"SpectroQuantitationValues",vm:"1-n",version:"PrivateTag"},'(0043,"GEMS_PARM_01",94)':{tag:'(0043,"GEMS_PARM_01",94)',vr:"DS",name:"SpectroRatioValues",vm:"1-n",version:"PrivateTag"},'(0043,"GEMS_PARM_01",95)':{tag:'(0043,"GEMS_PARM_01",95)',vr:"LO",name:"PrescanReuseString",vm:"1",version:"PrivateTag"},'(0043,"GEMS_PARM_01",96)':{tag:'(0043,"GEMS_PARM_01",96)',vr:"CS",name:"ContentQualification",vm:"1",version:"PrivateTag"},'(0043,"GEMS_PARM_01",97)':{tag:'(0043,"GEMS_PARM_01",97)',vr:"LO",name:"ImageFilteringParameters",vm:"9",version:"PrivateTag"},'(0043,"GEMS_PARM_01",98)':{tag:'(0043,"GEMS_PARM_01",98)',vr:"UI",name:"ASSETAcquisitionCalibrationSeriesUID",vm:"1",version:"PrivateTag"},'(0043,"GEMS_PARM_01",99)':{tag:'(0043,"GEMS_PARM_01",99)',vr:"LO",name:"ExtendedOptions",vm:"1-n",version:"PrivateTag"},'(0043,"GEMS_PARM_01",9a)':{tag:'(0043,"GEMS_PARM_01",9a)',vr:"IS",name:"RxStackIdentification",vm:"1",version:"PrivateTag"},'(0043,"GEMS_PARM_01",9b)':{tag:'(0043,"GEMS_PARM_01",9b)',vr:"DS",name:"NPWFactor",vm:"1",version:"PrivateTag"},'(0043,"GEMS_PARM_01",9c)':{tag:'(0043,"GEMS_PARM_01",9c)',vr:"OB",name:"ResearchTag1",vm:"1",version:"PrivateTag"},'(0043,"GEMS_PARM_01",9d)':{tag:'(0043,"GEMS_PARM_01",9d)',vr:"OB",name:"ResearchTag2",vm:"1",version:"PrivateTag"},'(0043,"GEMS_PARM_01",9e)':{tag:'(0043,"GEMS_PARM_01",9e)',vr:"OB",name:"ResearchTag3",vm:"1",version:"PrivateTag"},'(0043,"GEMS_PARM_01",9f)':{tag:'(0043,"GEMS_PARM_01",9f)',vr:"OB",name:"ResearchTag4",vm:"1",version:"PrivateTag"},'(0011,"GEMS_PATI_01",10)':{tag:'(0011,"GEMS_PATI_01",10)',vr:"SS",name:"PatientStatus",vm:"1",version:"PrivateTag"},'(0021,"GEMS_RELA_01",03)':{tag:'(0021,"GEMS_RELA_01",03)',vr:"SS",name:"SeriesFromWhichPrescribed",vm:"1",version:"PrivateTag"},'(0021,"GEMS_RELA_01",05)':{tag:'(0021,"GEMS_RELA_01",05)',vr:"SH",name:"GenesisVersionNow",vm:"1",version:"PrivateTag"},'(0021,"GEMS_RELA_01",07)':{tag:'(0021,"GEMS_RELA_01",07)',vr:"UL",name:"SeriesRecordChecksum",vm:"1",version:"PrivateTag"},'(0021,"GEMS_RELA_01",15)':{tag:'(0021,"GEMS_RELA_01",15)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0021,"GEMS_RELA_01",16)':{tag:'(0021,"GEMS_RELA_01",16)',vr:"SS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0021,"GEMS_RELA_01",18)':{tag:'(0021,"GEMS_RELA_01",18)',vr:"SH",name:"GenesisVersionNow",vm:"1",version:"PrivateTag"},'(0021,"GEMS_RELA_01",19)':{tag:'(0021,"GEMS_RELA_01",19)',vr:"UL",name:"AcqReconRecordChecksum",vm:"1",version:"PrivateTag"},'(0021,"GEMS_RELA_01",20)':{tag:'(0021,"GEMS_RELA_01",20)',vr:"DS",name:"TableStartLocation",vm:"1",version:"PrivateTag"},'(0021,"GEMS_RELA_01",35)':{tag:'(0021,"GEMS_RELA_01",35)',vr:"SS",name:"SeriesFromWhichPrescribed",vm:"1",version:"PrivateTag"},'(0021,"GEMS_RELA_01",36)':{tag:'(0021,"GEMS_RELA_01",36)',vr:"SS",name:"ImageFromWhichPrescribed",vm:"1",version:"PrivateTag"},'(0021,"GEMS_RELA_01",37)':{tag:'(0021,"GEMS_RELA_01",37)',vr:"SS",name:"ScreenFormat",vm:"1",version:"PrivateTag"},'(0021,"GEMS_RELA_01",4a)':{tag:'(0021,"GEMS_RELA_01",4a)',vr:"LO",name:"AnatomicalReferenceForScout",vm:"1",version:"PrivateTag"},'(0021,"GEMS_RELA_01",4e)':{tag:'(0021,"GEMS_RELA_01",4e)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0021,"GEMS_RELA_01",4f)':{tag:'(0021,"GEMS_RELA_01",4f)',vr:"SS",name:"LocationsInAcquisition",vm:"1",version:"PrivateTag"},'(0021,"GEMS_RELA_01",50)':{tag:'(0021,"GEMS_RELA_01",50)',vr:"SS",name:"GraphicallyPrescribed",vm:"1",version:"PrivateTag"},'(0021,"GEMS_RELA_01",51)':{tag:'(0021,"GEMS_RELA_01",51)',vr:"DS",name:"RotationFromSourceXRot",vm:"1",version:"PrivateTag"},'(0021,"GEMS_RELA_01",52)':{tag:'(0021,"GEMS_RELA_01",52)',vr:"DS",name:"RotationFromSourceYRot",vm:"1",version:"PrivateTag"},'(0021,"GEMS_RELA_01",53)':{tag:'(0021,"GEMS_RELA_01",53)',vr:"DS",name:"RotationFromSourceZRot",vm:"1",version:"PrivateTag"},'(0021,"GEMS_RELA_01",54)':{tag:'(0021,"GEMS_RELA_01",54)',vr:"SH",name:"ImagePosition",vm:"3",version:"PrivateTag"},'(0021,"GEMS_RELA_01",55)':{tag:'(0021,"GEMS_RELA_01",55)',vr:"SH",name:"ImageOrientation",vm:"6",version:"PrivateTag"},'(0021,"GEMS_RELA_01",56)':{tag:'(0021,"GEMS_RELA_01",56)',vr:"SL",name:"IntegerSlop",vm:"1",version:"PrivateTag"},'(0021,"GEMS_RELA_01",57)':{tag:'(0021,"GEMS_RELA_01",57)',vr:"SL",name:"IntegerSlop",vm:"1",version:"PrivateTag"},'(0021,"GEMS_RELA_01",58)':{tag:'(0021,"GEMS_RELA_01",58)',vr:"SL",name:"IntegerSlop",vm:"1",version:"PrivateTag"},'(0021,"GEMS_RELA_01",59)':{tag:'(0021,"GEMS_RELA_01",59)',vr:"SL",name:"IntegerSlop",vm:"1",version:"PrivateTag"},'(0021,"GEMS_RELA_01",5a)':{tag:'(0021,"GEMS_RELA_01",5a)',vr:"SL",name:"IntegerSlop",vm:"1",version:"PrivateTag"},'(0021,"GEMS_RELA_01",5b)':{tag:'(0021,"GEMS_RELA_01",5b)',vr:"DS",name:"FloatSlop",vm:"1",version:"PrivateTag"},'(0021,"GEMS_RELA_01",5c)':{tag:'(0021,"GEMS_RELA_01",5c)',vr:"DS",name:"FloatSlop",vm:"1",version:"PrivateTag"},'(0021,"GEMS_RELA_01",5d)':{tag:'(0021,"GEMS_RELA_01",5d)',vr:"DS",name:"FloatSlop",vm:"1",version:"PrivateTag"},'(0021,"GEMS_RELA_01",5e)':{tag:'(0021,"GEMS_RELA_01",5e)',vr:"DS",name:"FloatSlop",vm:"1",version:"PrivateTag"},'(0021,"GEMS_RELA_01",5f)':{tag:'(0021,"GEMS_RELA_01",5f)',vr:"DS",name:"FloatSlop",vm:"1",version:"PrivateTag"},'(0021,"GEMS_RELA_01",70)':{tag:'(0021,"GEMS_RELA_01",70)',vr:"LT",name:"Unknown",vm:"1",version:"PrivateTag"},'(0021,"GEMS_RELA_01",71)':{tag:'(0021,"GEMS_RELA_01",71)',vr:"LT",name:"Unknown",vm:"1",version:"PrivateTag"},'(0021,"GEMS_RELA_01",81)':{tag:'(0021,"GEMS_RELA_01",81)',vr:"DS",name:"AutoWindowLevelAlpha",vm:"1",version:"PrivateTag"},'(0021,"GEMS_RELA_01",82)':{tag:'(0021,"GEMS_RELA_01",82)',vr:"DS",name:"AutoWindowLevelBeta",vm:"1",version:"PrivateTag"},'(0021,"GEMS_RELA_01",83)':{tag:'(0021,"GEMS_RELA_01",83)',vr:"DS",name:"AutoWindowLevelWindow",vm:"1",version:"PrivateTag"},'(0021,"GEMS_RELA_01",84)':{tag:'(0021,"GEMS_RELA_01",84)',vr:"DS",name:"AutoWindowLevelLevel",vm:"1",version:"PrivateTag"},'(0021,"GEMS_RELA_01",90)':{tag:'(0021,"GEMS_RELA_01",90)',vr:"SS",name:"TubeFocalSpotPosition",vm:"1",version:"PrivateTag"},'(0021,"GEMS_RELA_01",91)':{tag:'(0021,"GEMS_RELA_01",91)',vr:"SS",name:"BiopsyPosition",vm:"1",version:"PrivateTag"},'(0021,"GEMS_RELA_01",92)':{tag:'(0021,"GEMS_RELA_01",92)',vr:"FL",name:"BiopsyTLocation",vm:"1",version:"PrivateTag"},'(0021,"GEMS_RELA_01",93)':{tag:'(0021,"GEMS_RELA_01",93)',vr:"FL",name:"BiopsyRefLocation",vm:"1",version:"PrivateTag"},'(0045,"GEMS_SENO_02",04)':{tag:'(0045,"GEMS_SENO_02",04)',vr:"CS",name:"AES",vm:"1",version:"PrivateTag"},'(0045,"GEMS_SENO_02",06)':{tag:'(0045,"GEMS_SENO_02",06)',vr:"DS",name:"Angulation",vm:"1",version:"PrivateTag"},'(0045,"GEMS_SENO_02",09)':{tag:'(0045,"GEMS_SENO_02",09)',vr:"DS",name:"RealMagnificationFactor",vm:"1",version:"PrivateTag"},'(0045,"GEMS_SENO_02",0b)':{tag:'(0045,"GEMS_SENO_02",0b)',vr:"CS",name:"SenographType",vm:"1",version:"PrivateTag"},'(0045,"GEMS_SENO_02",0c)':{tag:'(0045,"GEMS_SENO_02",0c)',vr:"DS",name:"IntegrationTime",vm:"1",version:"PrivateTag"},'(0045,"GEMS_SENO_02",0d)':{tag:'(0045,"GEMS_SENO_02",0d)',vr:"DS",name:"ROIOriginXY",vm:"1",version:"PrivateTag"},'(0045,"GEMS_SENO_02",11)':{tag:'(0045,"GEMS_SENO_02",11)',vr:"DS",name:"ReceptorSizeCmXY",vm:"2",version:"PrivateTag"},'(0045,"GEMS_SENO_02",12)':{tag:'(0045,"GEMS_SENO_02",12)',vr:"IS",name:"ReceptorSizePixelsXY",vm:"2",version:"PrivateTag"},'(0045,"GEMS_SENO_02",13)':{tag:'(0045,"GEMS_SENO_02",13)',vr:"ST",name:"Screen",vm:"1",version:"PrivateTag"},'(0045,"GEMS_SENO_02",14)':{tag:'(0045,"GEMS_SENO_02",14)',vr:"DS",name:"PixelPitchMicrons",vm:"1",version:"PrivateTag"},'(0045,"GEMS_SENO_02",15)':{tag:'(0045,"GEMS_SENO_02",15)',vr:"IS",name:"PixelDepthBits",vm:"1",version:"PrivateTag"},'(0045,"GEMS_SENO_02",16)':{tag:'(0045,"GEMS_SENO_02",16)',vr:"IS",name:"BinningFactorXY",vm:"2",version:"PrivateTag"},'(0045,"GEMS_SENO_02",1B)':{tag:'(0045,"GEMS_SENO_02",1B)',vr:"CS",name:"ClinicalView",vm:"1",version:"PrivateTag"},'(0045,"GEMS_SENO_02",1D)':{tag:'(0045,"GEMS_SENO_02",1D)',vr:"DS",name:"MeanOfRawGrayLevels",vm:"1",version:"PrivateTag"},'(0045,"GEMS_SENO_02",1E)':{tag:'(0045,"GEMS_SENO_02",1E)',vr:"DS",name:"MeanOfOffsetGrayLevels",vm:"1",version:"PrivateTag"},'(0045,"GEMS_SENO_02",1F)':{tag:'(0045,"GEMS_SENO_02",1F)',vr:"DS",name:"MeanOfCorrectedGrayLevels",vm:"1",version:"PrivateTag"},'(0045,"GEMS_SENO_02",20)':{tag:'(0045,"GEMS_SENO_02",20)',vr:"DS",name:"MeanOfRegionGrayLevels",vm:"1",version:"PrivateTag"},'(0045,"GEMS_SENO_02",21)':{tag:'(0045,"GEMS_SENO_02",21)',vr:"DS",name:"MeanOfLogRegionGrayLevels",vm:"1",version:"PrivateTag"},'(0045,"GEMS_SENO_02",22)':{tag:'(0045,"GEMS_SENO_02",22)',vr:"DS",name:"StandardDeviationOfRawGrayLevels",vm:"1",version:"PrivateTag"},'(0045,"GEMS_SENO_02",23)':{tag:'(0045,"GEMS_SENO_02",23)',vr:"DS",name:"StandardDeviationOfCorrectedGrayLevels",vm:"1",version:"PrivateTag"},'(0045,"GEMS_SENO_02",24)':{tag:'(0045,"GEMS_SENO_02",24)',vr:"DS",name:"StandardDeviationOfRegionGrayLevels",vm:"1",version:"PrivateTag"},'(0045,"GEMS_SENO_02",25)':{tag:'(0045,"GEMS_SENO_02",25)',vr:"DS",name:"StandardDeviationOfLogRegionGrayLevels",vm:"1",version:"PrivateTag"},'(0045,"GEMS_SENO_02",26)':{tag:'(0045,"GEMS_SENO_02",26)',vr:"OB",name:"MAOBuffer",vm:"1",version:"PrivateTag"},'(0045,"GEMS_SENO_02",27)':{tag:'(0045,"GEMS_SENO_02",27)',vr:"IS",name:"SetNumber",vm:"1",version:"PrivateTag"},'(0045,"GEMS_SENO_02",28)':{tag:'(0045,"GEMS_SENO_02",28)',vr:"CS",name:"WindowingType",vm:"1",version:"PrivateTag"},'(0045,"GEMS_SENO_02",29)':{tag:'(0045,"GEMS_SENO_02",29)',vr:"DS",name:"WindowingParameters",vm:"1-n",version:"PrivateTag"},'(0045,"GEMS_SENO_02",2a)':{tag:'(0045,"GEMS_SENO_02",2a)',vr:"IS",name:"CrosshairCursorXCoordinates",vm:"1",version:"PrivateTag"},'(0045,"GEMS_SENO_02",2b)':{tag:'(0045,"GEMS_SENO_02",2b)',vr:"IS",name:"CrosshairCursorYCoordinates",vm:"1",version:"PrivateTag"},'(0045,"GEMS_SENO_02",39)':{tag:'(0045,"GEMS_SENO_02",39)',vr:"US",name:"VignetteRows",vm:"1",version:"PrivateTag"},'(0045,"GEMS_SENO_02",3a)':{tag:'(0045,"GEMS_SENO_02",3a)',vr:"US",name:"VignetteColumns",vm:"1",version:"PrivateTag"},'(0045,"GEMS_SENO_02",3b)':{tag:'(0045,"GEMS_SENO_02",3b)',vr:"US",name:"VignetteBitsAllocated",vm:"1",version:"PrivateTag"},'(0045,"GEMS_SENO_02",3c)':{tag:'(0045,"GEMS_SENO_02",3c)',vr:"US",name:"VignetteBitsStored",vm:"1",version:"PrivateTag"},'(0045,"GEMS_SENO_02",3d)':{tag:'(0045,"GEMS_SENO_02",3d)',vr:"US",name:"VignetteHighBit",vm:"1",version:"PrivateTag"},'(0045,"GEMS_SENO_02",3e)':{tag:'(0045,"GEMS_SENO_02",3e)',vr:"US",name:"VignettePixelRepresentation",vm:"1",version:"PrivateTag"},'(0045,"GEMS_SENO_02",3f)':{tag:'(0045,"GEMS_SENO_02",3f)',vr:"OB",name:"VignettePixelData",vm:"1",version:"PrivateTag"},'(0025,"GEMS_SERS_01",06)':{tag:'(0025,"GEMS_SERS_01",06)',vr:"SS",name:"LastPulseSequenceUsed",vm:"1",version:"PrivateTag"},'(0025,"GEMS_SERS_01",07)':{tag:'(0025,"GEMS_SERS_01",07)',vr:"SL",name:"ImagesInSeries",vm:"1",version:"PrivateTag"},'(0025,"GEMS_SERS_01",10)':{tag:'(0025,"GEMS_SERS_01",10)',vr:"SL",name:"LandmarkCounter",vm:"1",version:"PrivateTag"},'(0025,"GEMS_SERS_01",11)':{tag:'(0025,"GEMS_SERS_01",11)',vr:"SS",name:"NumberOfAcquisitions",vm:"1",version:"PrivateTag"},'(0025,"GEMS_SERS_01",14)':{tag:'(0025,"GEMS_SERS_01",14)',vr:"SL",name:"IndicatesNumberOfUpdatesToHeader",vm:"1",version:"PrivateTag"},'(0025,"GEMS_SERS_01",17)':{tag:'(0025,"GEMS_SERS_01",17)',vr:"SL",name:"SeriesCompleteFlag",vm:"1",version:"PrivateTag"},'(0025,"GEMS_SERS_01",18)':{tag:'(0025,"GEMS_SERS_01",18)',vr:"SL",name:"NumberOfImagesArchived",vm:"1",version:"PrivateTag"},'(0025,"GEMS_SERS_01",19)':{tag:'(0025,"GEMS_SERS_01",19)',vr:"SL",name:"LastImageNumberUsed",vm:"1",version:"PrivateTag"},'(0025,"GEMS_SERS_01",1a)':{tag:'(0025,"GEMS_SERS_01",1a)',vr:"SH",name:"PrimaryReceiverSuiteAndHost",vm:"1",version:"PrivateTag"},'(0023,"GEMS_STDY_01",01)':{tag:'(0023,"GEMS_STDY_01",01)',vr:"SL",name:"NumberOfSeriesInStudy",vm:"1",version:"PrivateTag"},'(0023,"GEMS_STDY_01",02)':{tag:'(0023,"GEMS_STDY_01",02)',vr:"SL",name:"NumberOfUnarchivedSeries",vm:"1",version:"PrivateTag"},'(0023,"GEMS_STDY_01",10)':{tag:'(0023,"GEMS_STDY_01",10)',vr:"SS",name:"ReferenceImageField",vm:"1",version:"PrivateTag"},'(0023,"GEMS_STDY_01",50)':{tag:'(0023,"GEMS_STDY_01",50)',vr:"SS",name:"SummaryImage",vm:"1",version:"PrivateTag"},'(0023,"GEMS_STDY_01",70)':{tag:'(0023,"GEMS_STDY_01",70)',vr:"FD",name:"StartTimeSecsInFirstAxial",vm:"1",version:"PrivateTag"},'(0023,"GEMS_STDY_01",74)':{tag:'(0023,"GEMS_STDY_01",74)',vr:"SL",name:"NumberOfUpdatesToHeader",vm:"1",version:"PrivateTag"},'(0023,"GEMS_STDY_01",7d)':{tag:'(0023,"GEMS_STDY_01",7d)',vr:"SS",name:"IndicatesIfStudyHasCompleteInfo",vm:"1",version:"PrivateTag"},'(0033,"GEMS_YMHD_01",05)':{tag:'(0033,"GEMS_YMHD_01",05)',vr:"UN",name:"Unknown",vm:"1",version:"PrivateTag"},'(0033,"GEMS_YMHD_01",06)':{tag:'(0033,"GEMS_YMHD_01",06)',vr:"UN",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"GE_GENESIS_REV3.0",39)':{tag:'(0019,"GE_GENESIS_REV3.0",39)',vr:"SS",name:"AxialType",vm:"1",version:"PrivateTag"},'(0019,"GE_GENESIS_REV3.0",8f)':{tag:'(0019,"GE_GENESIS_REV3.0",8f)',vr:"SS",name:"SwapPhaseFrequency",vm:"1",version:"PrivateTag"},'(0019,"GE_GENESIS_REV3.0",9c)':{tag:'(0019,"GE_GENESIS_REV3.0",9c)',vr:"SS",name:"PulseSequenceName",vm:"1",version:"PrivateTag"},'(0019,"GE_GENESIS_REV3.0",9f)':{tag:'(0019,"GE_GENESIS_REV3.0",9f)',vr:"SS",name:"CoilType",vm:"1",version:"PrivateTag"},'(0019,"GE_GENESIS_REV3.0",a4)':{tag:'(0019,"GE_GENESIS_REV3.0",a4)',vr:"SS",name:"SATFatWaterBone",vm:"1",version:"PrivateTag"},'(0019,"GE_GENESIS_REV3.0",c0)':{tag:'(0019,"GE_GENESIS_REV3.0",c0)',vr:"SS",name:"BitmapOfSATSelections",vm:"1",version:"PrivateTag"},'(0019,"GE_GENESIS_REV3.0",c1)':{tag:'(0019,"GE_GENESIS_REV3.0",c1)',vr:"SS",name:"SurfaceCoilIntensityCorrectionFlag",vm:"1",version:"PrivateTag"},'(0019,"GE_GENESIS_REV3.0",cb)':{tag:'(0019,"GE_GENESIS_REV3.0",cb)',vr:"SS",name:"PhaseContrastFlowAxis",vm:"1",version:"PrivateTag"},'(0019,"GE_GENESIS_REV3.0",cc)':{tag:'(0019,"GE_GENESIS_REV3.0",cc)',vr:"SS",name:"PhaseContrastVelocityEncoding",vm:"1",version:"PrivateTag"},'(0019,"GE_GENESIS_REV3.0",d5)':{tag:'(0019,"GE_GENESIS_REV3.0",d5)',vr:"SS",name:"FractionalEcho",vm:"1",version:"PrivateTag"},'(0019,"GE_GENESIS_REV3.0",d8)':{tag:'(0019,"GE_GENESIS_REV3.0",d8)',vr:"SS",name:"VariableEchoFlag",vm:"1",version:"PrivateTag"},'(0019,"GE_GENESIS_REV3.0",d9)':{tag:'(0019,"GE_GENESIS_REV3.0",d9)',vr:"DS",name:"ConcatenatedSat",vm:"1",version:"PrivateTag"},'(0019,"GE_GENESIS_REV3.0",f2)':{tag:'(0019,"GE_GENESIS_REV3.0",f2)',vr:"SS",name:"NumberOfPhases",vm:"1",version:"PrivateTag"},'(0043,"GE_GENESIS_REV3.0",1e)':{tag:'(0043,"GE_GENESIS_REV3.0",1e)',vr:"DS",name:"DeltaStartTime",vm:"1",version:"PrivateTag"},'(0043,"GE_GENESIS_REV3.0",27)':{tag:'(0043,"GE_GENESIS_REV3.0",27)',vr:"SH",name:"ScanPitchRatio",vm:"1",version:"PrivateTag"},'(0029,"INTELERAD MEDICAL SYSTEMS",01)':{tag:'(0029,"INTELERAD MEDICAL SYSTEMS",01)',vr:"FD",name:"ImageCompressionFraction",vm:"1",version:"PrivateTag"},'(0029,"INTELERAD MEDICAL SYSTEMS",02)':{tag:'(0029,"INTELERAD MEDICAL SYSTEMS",02)',vr:"FD",name:"ImageQuality",vm:"1",version:"PrivateTag"},'(0029,"INTELERAD MEDICAL SYSTEMS",03)':{tag:'(0029,"INTELERAD MEDICAL SYSTEMS",03)',vr:"FD",name:"ImageBytesTransferred",vm:"1",version:"PrivateTag"},'(0029,"INTELERAD MEDICAL SYSTEMS",10)':{tag:'(0029,"INTELERAD MEDICAL SYSTEMS",10)',vr:"SH",name:"J2cParameterType",vm:"1",version:"PrivateTag"},'(0029,"INTELERAD MEDICAL SYSTEMS",11)':{tag:'(0029,"INTELERAD MEDICAL SYSTEMS",11)',vr:"US",name:"J2cPixelRepresentation",vm:"1",version:"PrivateTag"},'(0029,"INTELERAD MEDICAL SYSTEMS",12)':{tag:'(0029,"INTELERAD MEDICAL SYSTEMS",12)',vr:"US",name:"J2cBitsAllocated",vm:"1",version:"PrivateTag"},'(0029,"INTELERAD MEDICAL SYSTEMS",13)':{tag:'(0029,"INTELERAD MEDICAL SYSTEMS",13)',vr:"US",name:"J2cPixelShiftValue",vm:"1",version:"PrivateTag"},'(0029,"INTELERAD MEDICAL SYSTEMS",14)':{tag:'(0029,"INTELERAD MEDICAL SYSTEMS",14)',vr:"US",name:"J2cPlanarConfiguration",vm:"1",version:"PrivateTag"},'(0029,"INTELERAD MEDICAL SYSTEMS",15)':{tag:'(0029,"INTELERAD MEDICAL SYSTEMS",15)',vr:"DS",name:"J2cRescaleIntercept",vm:"1",version:"PrivateTag"},'(0029,"INTELERAD MEDICAL SYSTEMS",20)':{tag:'(0029,"INTELERAD MEDICAL SYSTEMS",20)',vr:"LO",name:"PixelDataMD5SumPerFrame",vm:"1",version:"PrivateTag"},'(0029,"INTELERAD MEDICAL SYSTEMS",21)':{tag:'(0029,"INTELERAD MEDICAL SYSTEMS",21)',vr:"US",name:"HistogramPercentileLabels",vm:"1",version:"PrivateTag"},'(0029,"INTELERAD MEDICAL SYSTEMS",22)':{tag:'(0029,"INTELERAD MEDICAL SYSTEMS",22)',vr:"FD",name:"HistogramPercentileValues",vm:"1",version:"PrivateTag"},'(3f01,"INTELERAD MEDICAL SYSTEMS",01)':{tag:'(3f01,"INTELERAD MEDICAL SYSTEMS",01)',vr:"LO",name:"InstitutionCode",vm:"1",version:"PrivateTag"},'(3f01,"INTELERAD MEDICAL SYSTEMS",02)':{tag:'(3f01,"INTELERAD MEDICAL SYSTEMS",02)',vr:"LO",name:"RoutedTransferAE",vm:"1",version:"PrivateTag"},'(3f01,"INTELERAD MEDICAL SYSTEMS",03)':{tag:'(3f01,"INTELERAD MEDICAL SYSTEMS",03)',vr:"LO",name:"SourceAE",vm:"1",version:"PrivateTag"},'(3f01,"INTELERAD MEDICAL SYSTEMS",04)':{tag:'(3f01,"INTELERAD MEDICAL SYSTEMS",04)',vr:"SH",name:"DeferredValidation",vm:"1",version:"PrivateTag"},'(3f01,"INTELERAD MEDICAL SYSTEMS",05)':{tag:'(3f01,"INTELERAD MEDICAL SYSTEMS",05)',vr:"LO",name:"SeriesOwner",vm:"1",version:"PrivateTag"},'(3f01,"INTELERAD MEDICAL SYSTEMS",06)':{tag:'(3f01,"INTELERAD MEDICAL SYSTEMS",06)',vr:"LO",name:"OrderGroupNumber",vm:"1",version:"PrivateTag"},'(3f01,"INTELERAD MEDICAL SYSTEMS",07)':{tag:'(3f01,"INTELERAD MEDICAL SYSTEMS",07)',vr:"SH",name:"StrippedPixelData",vm:"1",version:"PrivateTag"},'(3f01,"INTELERAD MEDICAL SYSTEMS",08)':{tag:'(3f01,"INTELERAD MEDICAL SYSTEMS",08)',vr:"SH",name:"PendingMoveRequest",vm:"1",version:"PrivateTag"},'(0041,"INTEGRIS 1.0",20)':{tag:'(0041,"INTEGRIS 1.0",20)',vr:"FL",name:"AccumulatedFluoroscopyDose",vm:"1",version:"PrivateTag"},'(0041,"INTEGRIS 1.0",30)':{tag:'(0041,"INTEGRIS 1.0",30)',vr:"FL",name:"AccumulatedExposureDose",vm:"1",version:"PrivateTag"},'(0041,"INTEGRIS 1.0",40)':{tag:'(0041,"INTEGRIS 1.0",40)',vr:"FL",name:"TotalDose",vm:"1",version:"PrivateTag"},'(0041,"INTEGRIS 1.0",41)':{tag:'(0041,"INTEGRIS 1.0",41)',vr:"FL",name:"TotalNumberOfFrames",vm:"1",version:"PrivateTag"},'(0041,"INTEGRIS 1.0",50)':{tag:'(0041,"INTEGRIS 1.0",50)',vr:"SQ",name:"ExposureInformationSequence",vm:"1",version:"PrivateTag"},'(0009,"INTEGRIS 1.0",08)':{tag:'(0009,"INTEGRIS 1.0",08)',vr:"CS",name:"ExposureChannel",vm:"1-n",version:"PrivateTag"},'(0009,"INTEGRIS 1.0",32)':{tag:'(0009,"INTEGRIS 1.0",32)',vr:"TM",name:"ExposureStartTime",vm:"1",version:"PrivateTag"},'(0019,"INTEGRIS 1.0",00)':{tag:'(0019,"INTEGRIS 1.0",00)',vr:"LO",name:"APRName",vm:"1",version:"PrivateTag"},'(0019,"INTEGRIS 1.0",40)':{tag:'(0019,"INTEGRIS 1.0",40)',vr:"DS",name:"FrameRate",vm:"1",version:"PrivateTag"},'(0021,"INTEGRIS 1.0",12)':{tag:'(0021,"INTEGRIS 1.0",12)',vr:"IS",name:"ExposureNumber",vm:"1",version:"PrivateTag"},'(0029,"INTEGRIS 1.0",08)':{tag:'(0029,"INTEGRIS 1.0",08)',vr:"IS",name:"NumberOfExposureResults",vm:"1",version:"PrivateTag"},'(0029,"ISG shadow",70)':{tag:'(0029,"ISG shadow",70)',vr:"IS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0029,"ISG shadow",80)':{tag:'(0029,"ISG shadow",80)',vr:"IS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0029,"ISG shadow",90)':{tag:'(0029,"ISG shadow",90)',vr:"IS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0009,"ISI",01)':{tag:'(0009,"ISI",01)',vr:"UN",name:"SIENETGeneralPurposeIMGEF",vm:"1",version:"PrivateTag"},'(0009,"MERGE TECHNOLOGIES, INC.",00)':{tag:'(0009,"MERGE TECHNOLOGIES, INC.",00)',vr:"OB",name:"Unknown",vm:"1",version:"PrivateTag"},'(0029,"OCULUS Optikgeraete GmbH",1010)':{tag:'(0029,"OCULUS Optikgeraete GmbH",1010)',vr:"OB",name:"OriginalMeasuringData",vm:"1",version:"PrivateTag"},'(0029,"OCULUS Optikgeraete GmbH",1012)':{tag:'(0029,"OCULUS Optikgeraete GmbH",1012)',vr:"UL",name:"OriginalMeasuringDataLength",vm:"1",version:"PrivateTag"},'(0029,"OCULUS Optikgeraete GmbH",1020)':{tag:'(0029,"OCULUS Optikgeraete GmbH",1020)',vr:"OB",name:"OriginalMeasuringRawData",vm:"1",version:"PrivateTag"},'(0029,"OCULUS Optikgeraete GmbH",1022)':{tag:'(0029,"OCULUS Optikgeraete GmbH",1022)',vr:"UL",name:"OriginalMeasuringRawDataLength",vm:"1",version:"PrivateTag"},'(0041,"PAPYRUS 3.0",00)':{tag:'(0041,"PAPYRUS 3.0",00)',vr:"LT",name:"PapyrusComments",vm:"1",version:"PrivateTag"},'(0041,"PAPYRUS 3.0",10)':{tag:'(0041,"PAPYRUS 3.0",10)',vr:"SQ",name:"PointerSequence",vm:"1",version:"PrivateTag"},'(0041,"PAPYRUS 3.0",11)':{tag:'(0041,"PAPYRUS 3.0",11)',vr:"UL",name:"ImagePointer",vm:"1",version:"PrivateTag"},'(0041,"PAPYRUS 3.0",12)':{tag:'(0041,"PAPYRUS 3.0",12)',vr:"UL",name:"PixelOffset",vm:"1",version:"PrivateTag"},'(0041,"PAPYRUS 3.0",13)':{tag:'(0041,"PAPYRUS 3.0",13)',vr:"SQ",name:"ImageIdentifierSequence",vm:"1",version:"PrivateTag"},'(0041,"PAPYRUS 3.0",14)':{tag:'(0041,"PAPYRUS 3.0",14)',vr:"SQ",name:"ExternalFileReferenceSequence",vm:"1",version:"PrivateTag"},'(0041,"PAPYRUS 3.0",15)':{tag:'(0041,"PAPYRUS 3.0",15)',vr:"US",name:"NumberOfImages",vm:"1",version:"PrivateTag"},'(0041,"PAPYRUS 3.0",21)':{tag:'(0041,"PAPYRUS 3.0",21)',vr:"UI",name:"ReferencedSOPClassUID",vm:"1",version:"PrivateTag"},'(0041,"PAPYRUS 3.0",22)':{tag:'(0041,"PAPYRUS 3.0",22)',vr:"UI",name:"ReferencedSOPInstanceUID",vm:"1",version:"PrivateTag"},'(0041,"PAPYRUS 3.0",31)':{tag:'(0041,"PAPYRUS 3.0",31)',vr:"LT",name:"ReferencedFileName",vm:"1",version:"PrivateTag"},'(0041,"PAPYRUS 3.0",32)':{tag:'(0041,"PAPYRUS 3.0",32)',vr:"LT",name:"ReferencedFilePath",vm:"1-n",version:"PrivateTag"},'(0041,"PAPYRUS 3.0",41)':{tag:'(0041,"PAPYRUS 3.0",41)',vr:"UI",name:"ReferencedImageSOPClassUID",vm:"1",version:"PrivateTag"},'(0041,"PAPYRUS 3.0",42)':{tag:'(0041,"PAPYRUS 3.0",42)',vr:"UI",name:"ReferencedImageSOPInstanceUID",vm:"1",version:"PrivateTag"},'(0041,"PAPYRUS 3.0",50)':{tag:'(0041,"PAPYRUS 3.0",50)',vr:"SQ",name:"ImageSequence",vm:"1",version:"PrivateTag"},'(6001-o-60ff,"PAPYRUS 3.0",00)':{tag:'(6001-o-60ff,"PAPYRUS 3.0",00)',vr:"IS",name:"OverlayID",vm:"1",version:"PrivateTag"},'(6001-o-60ff,"PAPYRUS 3.0",01)':{tag:'(6001-o-60ff,"PAPYRUS 3.0",01)',vr:"LT",name:"LinkedOverlays",vm:"1-n",version:"PrivateTag"},'(6001-o-60ff,"PAPYRUS 3.0",10)':{tag:'(6001-o-60ff,"PAPYRUS 3.0",10)',vr:"US",name:"OverlayRows",vm:"1",version:"PrivateTag"},'(6001-o-60ff,"PAPYRUS 3.0",11)':{tag:'(6001-o-60ff,"PAPYRUS 3.0",11)',vr:"US",name:"OverlayColumns",vm:"1",version:"PrivateTag"},'(6001-o-60ff,"PAPYRUS 3.0",40)':{tag:'(6001-o-60ff,"PAPYRUS 3.0",40)',vr:"LO",name:"OverlayType",vm:"1",version:"PrivateTag"},'(6001-o-60ff,"PAPYRUS 3.0",50)':{tag:'(6001-o-60ff,"PAPYRUS 3.0",50)',vr:"US",name:"OverlayOrigin",vm:"1-n",version:"PrivateTag"},'(6001-o-60ff,"PAPYRUS 3.0",60)':{tag:'(6001-o-60ff,"PAPYRUS 3.0",60)',vr:"LO",name:"Editable",vm:"1",version:"PrivateTag"},'(6001-o-60ff,"PAPYRUS 3.0",70)':{tag:'(6001-o-60ff,"PAPYRUS 3.0",70)',vr:"LO",name:"OverlayFont",vm:"1",version:"PrivateTag"},'(6001-o-60ff,"PAPYRUS 3.0",72)':{tag:'(6001-o-60ff,"PAPYRUS 3.0",72)',vr:"LO",name:"OverlayStyle",vm:"1",version:"PrivateTag"},'(6001-o-60ff,"PAPYRUS 3.0",74)':{tag:'(6001-o-60ff,"PAPYRUS 3.0",74)',vr:"US",name:"OverlayFontSize",vm:"1",version:"PrivateTag"},'(6001-o-60ff,"PAPYRUS 3.0",76)':{tag:'(6001-o-60ff,"PAPYRUS 3.0",76)',vr:"LO",name:"OverlayColor",vm:"1",version:"PrivateTag"},'(6001-o-60ff,"PAPYRUS 3.0",78)':{tag:'(6001-o-60ff,"PAPYRUS 3.0",78)',vr:"US",name:"ShadowSize",vm:"1",version:"PrivateTag"},'(6001-o-60ff,"PAPYRUS 3.0",80)':{tag:'(6001-o-60ff,"PAPYRUS 3.0",80)',vr:"LO",name:"FillPattern",vm:"1",version:"PrivateTag"},'(6001-o-60ff,"PAPYRUS 3.0",82)':{tag:'(6001-o-60ff,"PAPYRUS 3.0",82)',vr:"US",name:"OverlayPenSize",vm:"1",version:"PrivateTag"},'(6001-o-60ff,"PAPYRUS 3.0",a0)':{tag:'(6001-o-60ff,"PAPYRUS 3.0",a0)',vr:"LO",name:"Label",vm:"1",version:"PrivateTag"},'(6001-o-60ff,"PAPYRUS 3.0",a2)':{tag:'(6001-o-60ff,"PAPYRUS 3.0",a2)',vr:"LT",name:"PostItText",vm:"1",version:"PrivateTag"},'(6001-o-60ff,"PAPYRUS 3.0",a4)':{tag:'(6001-o-60ff,"PAPYRUS 3.0",a4)',vr:"US",name:"AnchorPoint",vm:"2",version:"PrivateTag"},'(6001-o-60ff,"PAPYRUS 3.0",b0)':{tag:'(6001-o-60ff,"PAPYRUS 3.0",b0)',vr:"LO",name:"ROIType",vm:"1",version:"PrivateTag"},'(6001-o-60ff,"PAPYRUS 3.0",b2)':{tag:'(6001-o-60ff,"PAPYRUS 3.0",b2)',vr:"LT",name:"AttachedAnnotation",vm:"1",version:"PrivateTag"},'(6001-o-60ff,"PAPYRUS 3.0",ba)':{tag:'(6001-o-60ff,"PAPYRUS 3.0",ba)',vr:"US",name:"ContourPoints",vm:"1-n",version:"PrivateTag"},'(6001-o-60ff,"PAPYRUS 3.0",bc)':{tag:'(6001-o-60ff,"PAPYRUS 3.0",bc)',vr:"US",name:"MaskData",vm:"1-n",version:"PrivateTag"},'(6001-o-60ff,"PAPYRUS 3.0",c0)':{tag:'(6001-o-60ff,"PAPYRUS 3.0",c0)',vr:"SQ",name:"UINOverlaySequence",vm:"1",version:"PrivateTag"},'(0009,"PAPYRUS",00)':{tag:'(0009,"PAPYRUS",00)',vr:"LT",name:"OriginalFileName",vm:"1",version:"PrivateTag"},'(0009,"PAPYRUS",10)':{tag:'(0009,"PAPYRUS",10)',vr:"LT",name:"OriginalFileLocation",vm:"1",version:"PrivateTag"},'(0009,"PAPYRUS",18)':{tag:'(0009,"PAPYRUS",18)',vr:"LT",name:"DataSetIdentifier",vm:"1",version:"PrivateTag"},'(0041,"PAPYRUS",00)':{tag:'(0041,"PAPYRUS",00)',vr:"LT",name:"PapyrusComments",vm:"1-n",version:"PrivateTag"},'(0041,"PAPYRUS",10)':{tag:'(0041,"PAPYRUS",10)',vr:"US",name:"FolderType",vm:"1",version:"PrivateTag"},'(0041,"PAPYRUS",11)':{tag:'(0041,"PAPYRUS",11)',vr:"LT",name:"PatientFolderDataSetID",vm:"1",version:"PrivateTag"},'(0041,"PAPYRUS",20)':{tag:'(0041,"PAPYRUS",20)',vr:"LT",name:"FolderName",vm:"1",version:"PrivateTag"},'(0041,"PAPYRUS",30)':{tag:'(0041,"PAPYRUS",30)',vr:"DA",name:"CreationDate",vm:"1",version:"PrivateTag"},'(0041,"PAPYRUS",32)':{tag:'(0041,"PAPYRUS",32)',vr:"TM",name:"CreationTime",vm:"1",version:"PrivateTag"},'(0041,"PAPYRUS",34)':{tag:'(0041,"PAPYRUS",34)',vr:"DA",name:"ModifiedDate",vm:"1",version:"PrivateTag"},'(0041,"PAPYRUS",36)':{tag:'(0041,"PAPYRUS",36)',vr:"TM",name:"ModifiedTime",vm:"1",version:"PrivateTag"},'(0041,"PAPYRUS",40)':{tag:'(0041,"PAPYRUS",40)',vr:"LT",name:"OwnerName",vm:"1-n",version:"PrivateTag"},'(0041,"PAPYRUS",50)':{tag:'(0041,"PAPYRUS",50)',vr:"LT",name:"FolderStatus",vm:"1",version:"PrivateTag"},'(0041,"PAPYRUS",60)':{tag:'(0041,"PAPYRUS",60)',vr:"UL",name:"NumberOfImages",vm:"1",version:"PrivateTag"},'(0041,"PAPYRUS",62)':{tag:'(0041,"PAPYRUS",62)',vr:"UL",name:"NumberOfOther",vm:"1",version:"PrivateTag"},'(0041,"PAPYRUS",a0)':{tag:'(0041,"PAPYRUS",a0)',vr:"LT",name:"ExternalFolderElementDSID",vm:"1-n",version:"PrivateTag"},'(0041,"PAPYRUS",a1)':{tag:'(0041,"PAPYRUS",a1)',vr:"US",name:"ExternalFolderElementDataSetType",vm:"1-n",version:"PrivateTag"},'(0041,"PAPYRUS",a2)':{tag:'(0041,"PAPYRUS",a2)',vr:"LT",name:"ExternalFolderElementFileLocation",vm:"1-n",version:"PrivateTag"},'(0041,"PAPYRUS",a3)':{tag:'(0041,"PAPYRUS",a3)',vr:"UL",name:"ExternalFolderElementLength",vm:"1-n",version:"PrivateTag"},'(0041,"PAPYRUS",b0)':{tag:'(0041,"PAPYRUS",b0)',vr:"LT",name:"InternalFolderElementDSID",vm:"1-n",version:"PrivateTag"},'(0041,"PAPYRUS",b1)':{tag:'(0041,"PAPYRUS",b1)',vr:"US",name:"InternalFolderElementDataSetType",vm:"1-n",version:"PrivateTag"},'(0041,"PAPYRUS",b2)':{tag:'(0041,"PAPYRUS",b2)',vr:"UL",name:"InternalOffsetToDataSet",vm:"1-n",version:"PrivateTag"},'(0041,"PAPYRUS",b3)':{tag:'(0041,"PAPYRUS",b3)',vr:"UL",name:"InternalOffsetToImage",vm:"1-n",version:"PrivateTag"},'(2001,"Philips Imaging DD 001",01)':{tag:'(2001,"Philips Imaging DD 001",01)',vr:"FL",name:"ChemicalShift",vm:"1",version:"PrivateTag"},'(2001,"Philips Imaging DD 001",02)':{tag:'(2001,"Philips Imaging DD 001",02)',vr:"IS",name:"ChemicalShiftNumberMR",vm:"1",version:"PrivateTag"},'(2001,"Philips Imaging DD 001",03)':{tag:'(2001,"Philips Imaging DD 001",03)',vr:"FL",name:"DiffusionBFactor",vm:"1",version:"PrivateTag"},'(2001,"Philips Imaging DD 001",04)':{tag:'(2001,"Philips Imaging DD 001",04)',vr:"CS",name:"DiffusionDirection",vm:"1",version:"PrivateTag"},'(2001,"Philips Imaging DD 001",06)':{tag:'(2001,"Philips Imaging DD 001",06)',vr:"CS",name:"ImageEnhanced",vm:"1",version:"PrivateTag"},'(2001,"Philips Imaging DD 001",07)':{tag:'(2001,"Philips Imaging DD 001",07)',vr:"CS",name:"ImageTypeEDES",vm:"1",version:"PrivateTag"},'(2001,"Philips Imaging DD 001",08)':{tag:'(2001,"Philips Imaging DD 001",08)',vr:"IS",name:"PhaseNumber",vm:"1",version:"PrivateTag"},'(2001,"Philips Imaging DD 001",09)':{tag:'(2001,"Philips Imaging DD 001",09)',vr:"FL",name:"ImagePrepulseDelay",vm:"1",version:"PrivateTag"},'(2001,"Philips Imaging DD 001",0a)':{tag:'(2001,"Philips Imaging DD 001",0a)',vr:"IS",name:"SliceNumberMR",vm:"1",version:"PrivateTag"},'(2001,"Philips Imaging DD 001",0b)':{tag:'(2001,"Philips Imaging DD 001",0b)',vr:"CS",name:"SliceOrientation",vm:"1",version:"PrivateTag"},'(2001,"Philips Imaging DD 001",0c)':{tag:'(2001,"Philips Imaging DD 001",0c)',vr:"CS",name:"ArrhythmiaRejection",vm:"1",version:"PrivateTag"},'(2001,"Philips Imaging DD 001",0e)':{tag:'(2001,"Philips Imaging DD 001",0e)',vr:"CS",name:"CardiacCycled",vm:"1",version:"PrivateTag"},'(2001,"Philips Imaging DD 001",0f)':{tag:'(2001,"Philips Imaging DD 001",0f)',vr:"SS",name:"CardiacGateWidth",vm:"1",version:"PrivateTag"},'(2001,"Philips Imaging DD 001",10)':{tag:'(2001,"Philips Imaging DD 001",10)',vr:"CS",name:"CardiacSync",vm:"1",version:"PrivateTag"},'(2001,"Philips Imaging DD 001",11)':{tag:'(2001,"Philips Imaging DD 001",11)',vr:"FL",name:"DiffusionEchoTime",vm:"1",version:"PrivateTag"},'(2001,"Philips Imaging DD 001",12)':{tag:'(2001,"Philips Imaging DD 001",12)',vr:"CS",name:"DynamicSeries",vm:"1",version:"PrivateTag"},'(2001,"Philips Imaging DD 001",13)':{tag:'(2001,"Philips Imaging DD 001",13)',vr:"SL",name:"EPIFactor",vm:"1",version:"PrivateTag"},'(2001,"Philips Imaging DD 001",14)':{tag:'(2001,"Philips Imaging DD 001",14)',vr:"SL",name:"NumberOfEchoes",vm:"1",version:"PrivateTag"},'(2001,"Philips Imaging DD 001",15)':{tag:'(2001,"Philips Imaging DD 001",15)',vr:"SS",name:"NumberOfLocations",vm:"1",version:"PrivateTag"},'(2001,"Philips Imaging DD 001",16)':{tag:'(2001,"Philips Imaging DD 001",16)',vr:"SS",name:"NumberOfPCDirections",vm:"1",version:"PrivateTag"},'(2001,"Philips Imaging DD 001",17)':{tag:'(2001,"Philips Imaging DD 001",17)',vr:"SL",name:"NumberOfPhasesMR",vm:"1",version:"PrivateTag"},'(2001,"Philips Imaging DD 001",18)':{tag:'(2001,"Philips Imaging DD 001",18)',vr:"SL",name:"NumberOfSlicesMR",vm:"1",version:"PrivateTag"},'(2001,"Philips Imaging DD 001",19)':{tag:'(2001,"Philips Imaging DD 001",19)',vr:"CS",name:"PartialMatrixScanned",vm:"1",version:"PrivateTag"},'(2001,"Philips Imaging DD 001",1a)':{tag:'(2001,"Philips Imaging DD 001",1a)',vr:"FL",name:"PCVelocity",vm:"1-n",version:"PrivateTag"},'(2001,"Philips Imaging DD 001",1b)':{tag:'(2001,"Philips Imaging DD 001",1b)',vr:"FL",name:"PrepulseDelay",vm:"1",version:"PrivateTag"},'(2001,"Philips Imaging DD 001",1c)':{tag:'(2001,"Philips Imaging DD 001",1c)',vr:"CS",name:"PrepulseType",vm:"1",version:"PrivateTag"},'(2001,"Philips Imaging DD 001",1d)':{tag:'(2001,"Philips Imaging DD 001",1d)',vr:"IS",name:"ReconstructionNumberMR",vm:"1",version:"PrivateTag"},'(2001,"Philips Imaging DD 001",1f)':{tag:'(2001,"Philips Imaging DD 001",1f)',vr:"CS",name:"RespirationSync",vm:"1",version:"PrivateTag"},'(2001,"Philips Imaging DD 001",20)':{tag:'(2001,"Philips Imaging DD 001",20)',vr:"LO",name:"ScanningTechnique",vm:"1",version:"PrivateTag"},'(2001,"Philips Imaging DD 001",21)':{tag:'(2001,"Philips Imaging DD 001",21)',vr:"CS",name:"SPIR",vm:"1",version:"PrivateTag"},'(2001,"Philips Imaging DD 001",22)':{tag:'(2001,"Philips Imaging DD 001",22)',vr:"FL",name:"WaterFatShift",vm:"1",version:"PrivateTag"},'(2001,"Philips Imaging DD 001",23)':{tag:'(2001,"Philips Imaging DD 001",23)',vr:"DS",name:"FlipAnglePhilips",vm:"1",version:"PrivateTag"},'(2001,"Philips Imaging DD 001",24)':{tag:'(2001,"Philips Imaging DD 001",24)',vr:"CS",name:"SeriesIsInteractive",vm:"1",version:"PrivateTag"},'(2001,"Philips Imaging DD 001",25)':{tag:'(2001,"Philips Imaging DD 001",25)',vr:"SH",name:"EchoTimeDisplayMR",vm:"1",version:"PrivateTag"},'(2001,"Philips Imaging DD 001",26)':{tag:'(2001,"Philips Imaging DD 001",26)',vr:"CS",name:"PresentationStateSubtractionActive",vm:"1",version:"PrivateTag"},'(2001,"Philips Imaging DD 001",2d)':{tag:'(2001,"Philips Imaging DD 001",2d)',vr:"SS",name:"StackNumberOfSlices",vm:"1",version:"PrivateTag"},'(2001,"Philips Imaging DD 001",32)':{tag:'(2001,"Philips Imaging DD 001",32)',vr:"FL",name:"StackRadialAngle",vm:"1",version:"PrivateTag"},'(2001,"Philips Imaging DD 001",33)':{tag:'(2001,"Philips Imaging DD 001",33)',vr:"CS",name:"StackRadialAxis",vm:"1",version:"PrivateTag"},'(2001,"Philips Imaging DD 001",35)':{tag:'(2001,"Philips Imaging DD 001",35)',vr:"SS",name:"StackSliceNumber",vm:"1",version:"PrivateTag"},'(2001,"Philips Imaging DD 001",36)':{tag:'(2001,"Philips Imaging DD 001",36)',vr:"CS",name:"StackType",vm:"1",version:"PrivateTag"},'(2001,"Philips Imaging DD 001",3f)':{tag:'(2001,"Philips Imaging DD 001",3f)',vr:"CS",name:"ZoomMode",vm:"1",version:"PrivateTag"},'(2001,"Philips Imaging DD 001",58)':{tag:'(2001,"Philips Imaging DD 001",58)',vr:"UL",name:"ContrastTransferTaste",vm:"1",version:"PrivateTag"},'(2001,"Philips Imaging DD 001",5f)':{tag:'(2001,"Philips Imaging DD 001",5f)',vr:"SQ",name:"StackSequence",vm:"1",version:"PrivateTag"},'(2001,"Philips Imaging DD 001",60)':{tag:'(2001,"Philips Imaging DD 001",60)',vr:"SL",name:"NumberOfStacks",vm:"1",version:"PrivateTag"},'(2001,"Philips Imaging DD 001",61)':{tag:'(2001,"Philips Imaging DD 001",61)',vr:"CS",name:"SeriesTransmitted",vm:"1",version:"PrivateTag"},'(2001,"Philips Imaging DD 001",62)':{tag:'(2001,"Philips Imaging DD 001",62)',vr:"CS",name:"SeriesCommitted",vm:"1",version:"PrivateTag"},'(2001,"Philips Imaging DD 001",63)':{tag:'(2001,"Philips Imaging DD 001",63)',vr:"CS",name:"ExaminationSource",vm:"1",version:"PrivateTag"},'(2001,"Philips Imaging DD 001",67)':{tag:'(2001,"Philips Imaging DD 001",67)',vr:"CS",name:"LinearPresentationGLTrafoShapeSub",vm:"1",version:"PrivateTag"},'(2001,"Philips Imaging DD 001",77)':{tag:'(2001,"Philips Imaging DD 001",77)',vr:"CS",name:"GLTrafoType",vm:"1",version:"PrivateTag"},'(2001,"Philips Imaging DD 001",7b)':{tag:'(2001,"Philips Imaging DD 001",7b)',vr:"IS",name:"AcquisitionNumber",vm:"1",version:"PrivateTag"},'(2001,"Philips Imaging DD 001",81)':{tag:'(2001,"Philips Imaging DD 001",81)',vr:"IS",name:"NumberOfDynamicScans",vm:"1",version:"PrivateTag"},'(2001,"Philips Imaging DD 001",9f)':{tag:'(2001,"Philips Imaging DD 001",9f)',vr:"US",name:"PixelProcessingKernelSize",vm:"1",version:"PrivateTag"},'(2001,"Philips Imaging DD 001",a1)':{tag:'(2001,"Philips Imaging DD 001",a1)',vr:"CS",name:"IsRawImage",vm:"1",version:"PrivateTag"},'(2001,"Philips Imaging DD 001",f1)':{tag:'(2001,"Philips Imaging DD 001",f1)',vr:"FL",name:"ProspectiveMotionCorrection",vm:"1",version:"PrivateTag"},'(2001,"Philips Imaging DD 001",f2)':{tag:'(2001,"Philips Imaging DD 001",f2)',vr:"FL",name:"RetrospectiveMotionCorrection",vm:"1",version:"PrivateTag"},'(2001,"PHILIPS IMAGING DD 001",01)':{tag:'(2001,"PHILIPS IMAGING DD 001",01)',vr:"FL",name:"ChemicalShift",vm:"1",version:"PrivateTag"},'(2001,"PHILIPS IMAGING DD 001",02)':{tag:'(2001,"PHILIPS IMAGING DD 001",02)',vr:"IS",name:"ChemicalShiftNumberMR",vm:"1",version:"PrivateTag"},'(2001,"PHILIPS IMAGING DD 001",03)':{tag:'(2001,"PHILIPS IMAGING DD 001",03)',vr:"FL",name:"DiffusionBFactor",vm:"1",version:"PrivateTag"},'(2001,"PHILIPS IMAGING DD 001",04)':{tag:'(2001,"PHILIPS IMAGING DD 001",04)',vr:"CS",name:"DiffusionDirection",vm:"1",version:"PrivateTag"},'(2001,"PHILIPS IMAGING DD 001",06)':{tag:'(2001,"PHILIPS IMAGING DD 001",06)',vr:"CS",name:"ImageEnhanced",vm:"1",version:"PrivateTag"},'(2001,"PHILIPS IMAGING DD 001",07)':{tag:'(2001,"PHILIPS IMAGING DD 001",07)',vr:"CS",name:"ImageTypeEDES",vm:"1",version:"PrivateTag"},'(2001,"PHILIPS IMAGING DD 001",08)':{tag:'(2001,"PHILIPS IMAGING DD 001",08)',vr:"IS",name:"PhaseNumber",vm:"1",version:"PrivateTag"},'(2001,"PHILIPS IMAGING DD 001",09)':{tag:'(2001,"PHILIPS IMAGING DD 001",09)',vr:"FL",name:"ImagePrepulseDelay",vm:"1",version:"PrivateTag"},'(2001,"PHILIPS IMAGING DD 001",0a)':{tag:'(2001,"PHILIPS IMAGING DD 001",0a)',vr:"IS",name:"SliceNumberMR",vm:"1",version:"PrivateTag"},'(2001,"PHILIPS IMAGING DD 001",0b)':{tag:'(2001,"PHILIPS IMAGING DD 001",0b)',vr:"CS",name:"SliceOrientation",vm:"1",version:"PrivateTag"},'(2001,"PHILIPS IMAGING DD 001",0c)':{tag:'(2001,"PHILIPS IMAGING DD 001",0c)',vr:"CS",name:"ArrhythmiaRejection",vm:"1",version:"PrivateTag"},'(2001,"PHILIPS IMAGING DD 001",0e)':{tag:'(2001,"PHILIPS IMAGING DD 001",0e)',vr:"CS",name:"CardiacCycled",vm:"1",version:"PrivateTag"},'(2001,"PHILIPS IMAGING DD 001",0f)':{tag:'(2001,"PHILIPS IMAGING DD 001",0f)',vr:"SS",name:"CardiacGateWidth",vm:"1",version:"PrivateTag"},'(2001,"PHILIPS IMAGING DD 001",10)':{tag:'(2001,"PHILIPS IMAGING DD 001",10)',vr:"CS",name:"CardiacSync",vm:"1",version:"PrivateTag"},'(2001,"PHILIPS IMAGING DD 001",11)':{tag:'(2001,"PHILIPS IMAGING DD 001",11)',vr:"FL",name:"DiffusionEchoTime",vm:"1",version:"PrivateTag"},'(2001,"PHILIPS IMAGING DD 001",12)':{tag:'(2001,"PHILIPS IMAGING DD 001",12)',vr:"CS",name:"DynamicSeries",vm:"1",version:"PrivateTag"},'(2001,"PHILIPS IMAGING DD 001",13)':{tag:'(2001,"PHILIPS IMAGING DD 001",13)',vr:"SL",name:"EPIFactor",vm:"1",version:"PrivateTag"},'(2001,"PHILIPS IMAGING DD 001",14)':{tag:'(2001,"PHILIPS IMAGING DD 001",14)',vr:"SL",name:"NumberOfEchoes",vm:"1",version:"PrivateTag"},'(2001,"PHILIPS IMAGING DD 001",15)':{tag:'(2001,"PHILIPS IMAGING DD 001",15)',vr:"SS",name:"NumberOfLocations",vm:"1",version:"PrivateTag"},'(2001,"PHILIPS IMAGING DD 001",16)':{tag:'(2001,"PHILIPS IMAGING DD 001",16)',vr:"SS",name:"NumberOfPCDirections",vm:"1",version:"PrivateTag"},'(2001,"PHILIPS IMAGING DD 001",17)':{tag:'(2001,"PHILIPS IMAGING DD 001",17)',vr:"SL",name:"NumberOfPhasesMR",vm:"1",version:"PrivateTag"},'(2001,"PHILIPS IMAGING DD 001",18)':{tag:'(2001,"PHILIPS IMAGING DD 001",18)',vr:"SL",name:"NumberOfSlicesMR",vm:"1",version:"PrivateTag"},'(2001,"PHILIPS IMAGING DD 001",19)':{tag:'(2001,"PHILIPS IMAGING DD 001",19)',vr:"CS",name:"PartialMatrixScanned",vm:"1",version:"PrivateTag"},'(2001,"PHILIPS IMAGING DD 001",1a)':{tag:'(2001,"PHILIPS IMAGING DD 001",1a)',vr:"FL",name:"PCVelocity",vm:"1-n",version:"PrivateTag"},'(2001,"PHILIPS IMAGING DD 001",1b)':{tag:'(2001,"PHILIPS IMAGING DD 001",1b)',vr:"FL",name:"PrepulseDelay",vm:"1",version:"PrivateTag"},'(2001,"PHILIPS IMAGING DD 001",1c)':{tag:'(2001,"PHILIPS IMAGING DD 001",1c)',vr:"CS",name:"PrepulseType",vm:"1",version:"PrivateTag"},'(2001,"PHILIPS IMAGING DD 001",1d)':{tag:'(2001,"PHILIPS IMAGING DD 001",1d)',vr:"IS",name:"ReconstructionNumberMR",vm:"1",version:"PrivateTag"},'(2001,"PHILIPS IMAGING DD 001",1f)':{tag:'(2001,"PHILIPS IMAGING DD 001",1f)',vr:"CS",name:"RespirationSync",vm:"1",version:"PrivateTag"},'(2001,"PHILIPS IMAGING DD 001",20)':{tag:'(2001,"PHILIPS IMAGING DD 001",20)',vr:"LO",name:"ScanningTechnique",vm:"1",version:"PrivateTag"},'(2001,"PHILIPS IMAGING DD 001",21)':{tag:'(2001,"PHILIPS IMAGING DD 001",21)',vr:"CS",name:"SPIR",vm:"1",version:"PrivateTag"},'(2001,"PHILIPS IMAGING DD 001",22)':{tag:'(2001,"PHILIPS IMAGING DD 001",22)',vr:"FL",name:"WaterFatShift",vm:"1",version:"PrivateTag"},'(2001,"PHILIPS IMAGING DD 001",23)':{tag:'(2001,"PHILIPS IMAGING DD 001",23)',vr:"DS",name:"FlipAnglePhilips",vm:"1",version:"PrivateTag"},'(2001,"PHILIPS IMAGING DD 001",24)':{tag:'(2001,"PHILIPS IMAGING DD 001",24)',vr:"CS",name:"SeriesIsInteractive",vm:"1",version:"PrivateTag"},'(2001,"PHILIPS IMAGING DD 001",25)':{tag:'(2001,"PHILIPS IMAGING DD 001",25)',vr:"SH",name:"EchoTimeDisplayMR",vm:"1",version:"PrivateTag"},'(2001,"PHILIPS IMAGING DD 001",26)':{tag:'(2001,"PHILIPS IMAGING DD 001",26)',vr:"CS",name:"PresentationStateSubtractionActive",vm:"1",version:"PrivateTag"},'(2001,"PHILIPS IMAGING DD 001",2d)':{tag:'(2001,"PHILIPS IMAGING DD 001",2d)',vr:"SS",name:"StackNumberOfSlices",vm:"1",version:"PrivateTag"},'(2001,"PHILIPS IMAGING DD 001",32)':{tag:'(2001,"PHILIPS IMAGING DD 001",32)',vr:"FL",name:"StackRadialAngle",vm:"1",version:"PrivateTag"},'(2001,"PHILIPS IMAGING DD 001",33)':{tag:'(2001,"PHILIPS IMAGING DD 001",33)',vr:"CS",name:"StackRadialAxis",vm:"1",version:"PrivateTag"},'(2001,"PHILIPS IMAGING DD 001",35)':{tag:'(2001,"PHILIPS IMAGING DD 001",35)',vr:"SS",name:"StackSliceNumber",vm:"1",version:"PrivateTag"},'(2001,"PHILIPS IMAGING DD 001",36)':{tag:'(2001,"PHILIPS IMAGING DD 001",36)',vr:"CS",name:"StackType",vm:"1",version:"PrivateTag"},'(2001,"PHILIPS IMAGING DD 001",3f)':{tag:'(2001,"PHILIPS IMAGING DD 001",3f)',vr:"CS",name:"ZoomMode",vm:"1",version:"PrivateTag"},'(2001,"PHILIPS IMAGING DD 001",58)':{tag:'(2001,"PHILIPS IMAGING DD 001",58)',vr:"UL",name:"ContrastTransferTaste",vm:"1",version:"PrivateTag"},'(2001,"PHILIPS IMAGING DD 001",5f)':{tag:'(2001,"PHILIPS IMAGING DD 001",5f)',vr:"SQ",name:"StackSequence",vm:"1",version:"PrivateTag"},'(2001,"PHILIPS IMAGING DD 001",60)':{tag:'(2001,"PHILIPS IMAGING DD 001",60)',vr:"SL",name:"NumberOfStacks",vm:"1",version:"PrivateTag"},'(2001,"PHILIPS IMAGING DD 001",61)':{tag:'(2001,"PHILIPS IMAGING DD 001",61)',vr:"CS",name:"SeriesTransmitted",vm:"1",version:"PrivateTag"},'(2001,"PHILIPS IMAGING DD 001",62)':{tag:'(2001,"PHILIPS IMAGING DD 001",62)',vr:"CS",name:"SeriesCommitted",vm:"1",version:"PrivateTag"},'(2001,"PHILIPS IMAGING DD 001",63)':{tag:'(2001,"PHILIPS IMAGING DD 001",63)',vr:"CS",name:"ExaminationSource",vm:"1",version:"PrivateTag"},'(2001,"PHILIPS IMAGING DD 001",67)':{tag:'(2001,"PHILIPS IMAGING DD 001",67)',vr:"CS",name:"LinearPresentationGLTrafoShapeSub",vm:"1",version:"PrivateTag"},'(2001,"PHILIPS IMAGING DD 001",77)':{tag:'(2001,"PHILIPS IMAGING DD 001",77)',vr:"CS",name:"GLTrafoType",vm:"1",version:"PrivateTag"},'(2001,"PHILIPS IMAGING DD 001",7b)':{tag:'(2001,"PHILIPS IMAGING DD 001",7b)',vr:"IS",name:"AcquisitionNumber",vm:"1",version:"PrivateTag"},'(2001,"PHILIPS IMAGING DD 001",81)':{tag:'(2001,"PHILIPS IMAGING DD 001",81)',vr:"IS",name:"NumberOfDynamicScans",vm:"1",version:"PrivateTag"},'(2001,"PHILIPS IMAGING DD 001",9f)':{tag:'(2001,"PHILIPS IMAGING DD 001",9f)',vr:"US",name:"PixelProcessingKernelSize",vm:"1",version:"PrivateTag"},'(2001,"PHILIPS IMAGING DD 001",a1)':{tag:'(2001,"PHILIPS IMAGING DD 001",a1)',vr:"CS",name:"IsRawImage",vm:"1",version:"PrivateTag"},'(2001,"PHILIPS IMAGING DD 001",f1)':{tag:'(2001,"PHILIPS IMAGING DD 001",f1)',vr:"FL",name:"ProspectiveMotionCorrection",vm:"1",version:"PrivateTag"},'(2001,"PHILIPS IMAGING DD 001",f2)':{tag:'(2001,"PHILIPS IMAGING DD 001",f2)',vr:"FL",name:"RetrospectiveMotionCorrection",vm:"1",version:"PrivateTag"},'(2005,"Philips MR Imaging DD 001",05)':{tag:'(2005,"Philips MR Imaging DD 001",05)',vr:"CS",name:"SynergyReconstructionType",vm:"1",version:"PrivateTag"},'(2005,"Philips MR Imaging DD 001",1e)':{tag:'(2005,"Philips MR Imaging DD 001",1e)',vr:"SH",name:"MIPProtocol",vm:"1",version:"PrivateTag"},'(2005,"Philips MR Imaging DD 001",1f)':{tag:'(2005,"Philips MR Imaging DD 001",1f)',vr:"SH",name:"MPRProtocol",vm:"1",version:"PrivateTag"},'(2005,"Philips MR Imaging DD 001",20)':{tag:'(2005,"Philips MR Imaging DD 001",20)',vr:"SL",name:"NumberOfChemicalShifts",vm:"1",version:"PrivateTag"},'(2005,"Philips MR Imaging DD 001",2d)':{tag:'(2005,"Philips MR Imaging DD 001",2d)',vr:"SS",name:"NumberOfStackSlices",vm:"1",version:"PrivateTag"},'(2005,"Philips MR Imaging DD 001",83)':{tag:'(2005,"Philips MR Imaging DD 001",83)',vr:"SQ",name:"Unknown",vm:"1",version:"PrivateTag"},'(2005,"Philips MR Imaging DD 001",a1)':{tag:'(2005,"Philips MR Imaging DD 001",a1)',vr:"CS",name:"SyncraScanType",vm:"1",version:"PrivateTag"},'(2005,"Philips MR Imaging DD 001",b0)':{tag:'(2005,"Philips MR Imaging DD 001",b0)',vr:"FL",name:"DiffusionDirectionRL",vm:"1",version:"PrivateTag"},'(2005,"Philips MR Imaging DD 001",b1)':{tag:'(2005,"Philips MR Imaging DD 001",b1)',vr:"FL",name:"DiffusionDirectionAP",vm:"1",version:"PrivateTag"},'(2005,"Philips MR Imaging DD 001",b2)':{tag:'(2005,"Philips MR Imaging DD 001",b2)',vr:"FL",name:"DiffusionDirectionFH",vm:"1",version:"PrivateTag"},'(2005,"Philips MR Imaging DD 005",02)':{tag:'(2005,"Philips MR Imaging DD 005",02)',vr:"SQ",name:"Unknown",vm:"1",version:"PrivateTag"},'(2005,"PHILIPS MR IMAGING DD 001",05)':{tag:'(2005,"PHILIPS MR IMAGING DD 001",05)',vr:"CS",name:"SynergyReconstructionType",vm:"1",version:"PrivateTag"},'(2005,"PHILIPS MR IMAGING DD 001",1e)':{tag:'(2005,"PHILIPS MR IMAGING DD 001",1e)',vr:"SH",name:"MIPProtocol",vm:"1",version:"PrivateTag"},'(2005,"PHILIPS MR IMAGING DD 001",1f)':{tag:'(2005,"PHILIPS MR IMAGING DD 001",1f)',vr:"SH",name:"MPRProtocol",vm:"1",version:"PrivateTag"},'(2005,"PHILIPS MR IMAGING DD 001",20)':{tag:'(2005,"PHILIPS MR IMAGING DD 001",20)',vr:"SL",name:"NumberOfChemicalShifts",vm:"1",version:"PrivateTag"},'(2005,"PHILIPS MR IMAGING DD 001",2d)':{tag:'(2005,"PHILIPS MR IMAGING DD 001",2d)',vr:"SS",name:"NumberOfStackSlices",vm:"1",version:"PrivateTag"},'(2005,"PHILIPS MR IMAGING DD 001",83)':{tag:'(2005,"PHILIPS MR IMAGING DD 001",83)',vr:"SQ",name:"Unknown",vm:"1",version:"PrivateTag"},'(2005,"PHILIPS MR IMAGING DD 001",a1)':{tag:'(2005,"PHILIPS MR IMAGING DD 001",a1)',vr:"CS",name:"SyncraScanType",vm:"1",version:"PrivateTag"},'(2005,"PHILIPS MR IMAGING DD 001",b0)':{tag:'(2005,"PHILIPS MR IMAGING DD 001",b0)',vr:"FL",name:"DiffusionDirectionRL",vm:"1",version:"PrivateTag"},'(2005,"PHILIPS MR IMAGING DD 001",b1)':{tag:'(2005,"PHILIPS MR IMAGING DD 001",b1)',vr:"FL",name:"DiffusionDirectionAP",vm:"1",version:"PrivateTag"},'(2005,"PHILIPS MR IMAGING DD 001",b2)':{tag:'(2005,"PHILIPS MR IMAGING DD 001",b2)',vr:"FL",name:"DiffusionDirectionFH",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR R5.5/PART",1000)':{tag:'(0019,"PHILIPS MR R5.5/PART",1000)',vr:"DS",name:"FieldOfView",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR R5.6/PART",1000)':{tag:'(0019,"PHILIPS MR R5.6/PART",1000)',vr:"DS",name:"FieldOfView",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR SPECTRO;1",01)':{tag:'(0019,"PHILIPS MR SPECTRO;1",01)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR SPECTRO;1",02)':{tag:'(0019,"PHILIPS MR SPECTRO;1",02)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR SPECTRO;1",03)':{tag:'(0019,"PHILIPS MR SPECTRO;1",03)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR SPECTRO;1",04)':{tag:'(0019,"PHILIPS MR SPECTRO;1",04)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR SPECTRO;1",05)':{tag:'(0019,"PHILIPS MR SPECTRO;1",05)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR SPECTRO;1",06)':{tag:'(0019,"PHILIPS MR SPECTRO;1",06)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR SPECTRO;1",07)':{tag:'(0019,"PHILIPS MR SPECTRO;1",07)',vr:"IS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR SPECTRO;1",08)':{tag:'(0019,"PHILIPS MR SPECTRO;1",08)',vr:"IS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR SPECTRO;1",09)':{tag:'(0019,"PHILIPS MR SPECTRO;1",09)',vr:"IS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR SPECTRO;1",10)':{tag:'(0019,"PHILIPS MR SPECTRO;1",10)',vr:"IS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR SPECTRO;1",12)':{tag:'(0019,"PHILIPS MR SPECTRO;1",12)',vr:"IS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR SPECTRO;1",13)':{tag:'(0019,"PHILIPS MR SPECTRO;1",13)',vr:"IS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR SPECTRO;1",14)':{tag:'(0019,"PHILIPS MR SPECTRO;1",14)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR SPECTRO;1",15)':{tag:'(0019,"PHILIPS MR SPECTRO;1",15)',vr:"US",name:"Unknown",vm:"1-n",version:"PrivateTag"},'(0019,"PHILIPS MR SPECTRO;1",16)':{tag:'(0019,"PHILIPS MR SPECTRO;1",16)',vr:"IS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR SPECTRO;1",17)':{tag:'(0019,"PHILIPS MR SPECTRO;1",17)',vr:"IS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR SPECTRO;1",18)':{tag:'(0019,"PHILIPS MR SPECTRO;1",18)',vr:"UN",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR SPECTRO;1",20)':{tag:'(0019,"PHILIPS MR SPECTRO;1",20)',vr:"IS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR SPECTRO;1",21)':{tag:'(0019,"PHILIPS MR SPECTRO;1",21)',vr:"IS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR SPECTRO;1",22)':{tag:'(0019,"PHILIPS MR SPECTRO;1",22)',vr:"IS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR SPECTRO;1",23)':{tag:'(0019,"PHILIPS MR SPECTRO;1",23)',vr:"IS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR SPECTRO;1",24)':{tag:'(0019,"PHILIPS MR SPECTRO;1",24)',vr:"IS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR SPECTRO;1",25)':{tag:'(0019,"PHILIPS MR SPECTRO;1",25)',vr:"IS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR SPECTRO;1",26)':{tag:'(0019,"PHILIPS MR SPECTRO;1",26)',vr:"IS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR SPECTRO;1",27)':{tag:'(0019,"PHILIPS MR SPECTRO;1",27)',vr:"IS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR SPECTRO;1",28)':{tag:'(0019,"PHILIPS MR SPECTRO;1",28)',vr:"IS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR SPECTRO;1",29)':{tag:'(0019,"PHILIPS MR SPECTRO;1",29)',vr:"IS",name:"Unknown",vm:"1-n",version:"PrivateTag"},'(0019,"PHILIPS MR SPECTRO;1",31)':{tag:'(0019,"PHILIPS MR SPECTRO;1",31)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR SPECTRO;1",32)':{tag:'(0019,"PHILIPS MR SPECTRO;1",32)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR SPECTRO;1",41)':{tag:'(0019,"PHILIPS MR SPECTRO;1",41)',vr:"LT",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR SPECTRO;1",42)':{tag:'(0019,"PHILIPS MR SPECTRO;1",42)',vr:"IS",name:"Unknown",vm:"2",version:"PrivateTag"},'(0019,"PHILIPS MR SPECTRO;1",43)':{tag:'(0019,"PHILIPS MR SPECTRO;1",43)',vr:"IS",name:"Unknown",vm:"2",version:"PrivateTag"},'(0019,"PHILIPS MR SPECTRO;1",45)':{tag:'(0019,"PHILIPS MR SPECTRO;1",45)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR SPECTRO;1",46)':{tag:'(0019,"PHILIPS MR SPECTRO;1",46)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR SPECTRO;1",47)':{tag:'(0019,"PHILIPS MR SPECTRO;1",47)',vr:"IS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR SPECTRO;1",48)':{tag:'(0019,"PHILIPS MR SPECTRO;1",48)',vr:"IS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR SPECTRO;1",49)':{tag:'(0019,"PHILIPS MR SPECTRO;1",49)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR SPECTRO;1",50)':{tag:'(0019,"PHILIPS MR SPECTRO;1",50)',vr:"UN",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR SPECTRO;1",60)':{tag:'(0019,"PHILIPS MR SPECTRO;1",60)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR SPECTRO;1",61)':{tag:'(0019,"PHILIPS MR SPECTRO;1",61)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR SPECTRO;1",70)':{tag:'(0019,"PHILIPS MR SPECTRO;1",70)',vr:"UN",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR SPECTRO;1",71)':{tag:'(0019,"PHILIPS MR SPECTRO;1",71)',vr:"IS",name:"Unknown",vm:"1-n",version:"PrivateTag"},'(0019,"PHILIPS MR SPECTRO;1",72)':{tag:'(0019,"PHILIPS MR SPECTRO;1",72)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR SPECTRO;1",73)':{tag:'(0019,"PHILIPS MR SPECTRO;1",73)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR SPECTRO;1",74)':{tag:'(0019,"PHILIPS MR SPECTRO;1",74)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR SPECTRO;1",76)':{tag:'(0019,"PHILIPS MR SPECTRO;1",76)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR SPECTRO;1",77)':{tag:'(0019,"PHILIPS MR SPECTRO;1",77)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR SPECTRO;1",78)':{tag:'(0019,"PHILIPS MR SPECTRO;1",78)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR SPECTRO;1",79)':{tag:'(0019,"PHILIPS MR SPECTRO;1",79)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR SPECTRO;1",80)':{tag:'(0019,"PHILIPS MR SPECTRO;1",80)',vr:"IS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0009,"PHILIPS MR",10)':{tag:'(0009,"PHILIPS MR",10)',vr:"LO",name:"SPIRelease",vm:"1",version:"PrivateTag"},'(0009,"PHILIPS MR",12)':{tag:'(0009,"PHILIPS MR",12)',vr:"LO",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR/LAST",09)':{tag:'(0019,"PHILIPS MR/LAST",09)',vr:"DS",name:"MainMagneticField",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR/LAST",0e)':{tag:'(0019,"PHILIPS MR/LAST",0e)',vr:"IS",name:"FlowCompensation",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR/LAST",b1)':{tag:'(0019,"PHILIPS MR/LAST",b1)',vr:"IS",name:"MinimumRRInterval",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR/LAST",b2)':{tag:'(0019,"PHILIPS MR/LAST",b2)',vr:"IS",name:"MaximumRRInterval",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR/LAST",b3)':{tag:'(0019,"PHILIPS MR/LAST",b3)',vr:"IS",name:"NumberOfRejections",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR/LAST",b4)':{tag:'(0019,"PHILIPS MR/LAST",b4)',vr:"IS",name:"NumberOfRRIntervals",vm:"1-n",version:"PrivateTag"},'(0019,"PHILIPS MR/LAST",b5)':{tag:'(0019,"PHILIPS MR/LAST",b5)',vr:"IS",name:"ArrhythmiaRejection",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR/LAST",c0)':{tag:'(0019,"PHILIPS MR/LAST",c0)',vr:"DS",name:"Unknown",vm:"1-n",version:"PrivateTag"},'(0019,"PHILIPS MR/LAST",c6)':{tag:'(0019,"PHILIPS MR/LAST",c6)',vr:"IS",name:"CycledMultipleSlice",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR/LAST",ce)':{tag:'(0019,"PHILIPS MR/LAST",ce)',vr:"IS",name:"REST",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR/LAST",d5)':{tag:'(0019,"PHILIPS MR/LAST",d5)',vr:"DS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR/LAST",d6)':{tag:'(0019,"PHILIPS MR/LAST",d6)',vr:"IS",name:"FourierInterpolation",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR/LAST",d9)':{tag:'(0019,"PHILIPS MR/LAST",d9)',vr:"IS",name:"Unknown",vm:"1-n",version:"PrivateTag"},'(0019,"PHILIPS MR/LAST",e0)':{tag:'(0019,"PHILIPS MR/LAST",e0)',vr:"IS",name:"Prepulse",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR/LAST",e1)':{tag:'(0019,"PHILIPS MR/LAST",e1)',vr:"DS",name:"PrepulseDelay",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR/LAST",e2)':{tag:'(0019,"PHILIPS MR/LAST",e2)',vr:"IS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR/LAST",e3)':{tag:'(0019,"PHILIPS MR/LAST",e3)',vr:"DS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR/LAST",f0)':{tag:'(0019,"PHILIPS MR/LAST",f0)',vr:"LT",name:"WSProtocolString1",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR/LAST",f1)':{tag:'(0019,"PHILIPS MR/LAST",f1)',vr:"LT",name:"WSProtocolString2",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR/LAST",f2)':{tag:'(0019,"PHILIPS MR/LAST",f2)',vr:"LT",name:"WSProtocolString3",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR/LAST",f3)':{tag:'(0019,"PHILIPS MR/LAST",f3)',vr:"LT",name:"WSProtocolString4",vm:"1",version:"PrivateTag"},'(0021,"PHILIPS MR/LAST",00)':{tag:'(0021,"PHILIPS MR/LAST",00)',vr:"IS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0021,"PHILIPS MR/LAST",10)':{tag:'(0021,"PHILIPS MR/LAST",10)',vr:"IS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0021,"PHILIPS MR/LAST",20)':{tag:'(0021,"PHILIPS MR/LAST",20)',vr:"IS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0021,"PHILIPS MR/LAST",21)':{tag:'(0021,"PHILIPS MR/LAST",21)',vr:"DS",name:"SliceGap",vm:"1",version:"PrivateTag"},'(0021,"PHILIPS MR/LAST",22)':{tag:'(0021,"PHILIPS MR/LAST",22)',vr:"DS",name:"StackRadialAngle",vm:"1",version:"PrivateTag"},'(0027,"PHILIPS MR/LAST",00)':{tag:'(0027,"PHILIPS MR/LAST",00)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0027,"PHILIPS MR/LAST",11)':{tag:'(0027,"PHILIPS MR/LAST",11)',vr:"US",name:"Unknown",vm:"1-n",version:"PrivateTag"},'(0027,"PHILIPS MR/LAST",12)':{tag:'(0027,"PHILIPS MR/LAST",12)',vr:"DS",name:"Unknown",vm:"1-n",version:"PrivateTag"},'(0027,"PHILIPS MR/LAST",13)':{tag:'(0027,"PHILIPS MR/LAST",13)',vr:"DS",name:"Unknown",vm:"1-n",version:"PrivateTag"},'(0027,"PHILIPS MR/LAST",14)':{tag:'(0027,"PHILIPS MR/LAST",14)',vr:"DS",name:"Unknown",vm:"1-n",version:"PrivateTag"},'(0027,"PHILIPS MR/LAST",15)':{tag:'(0027,"PHILIPS MR/LAST",15)',vr:"DS",name:"Unknown",vm:"1-n",version:"PrivateTag"},'(0027,"PHILIPS MR/LAST",16)':{tag:'(0027,"PHILIPS MR/LAST",16)',vr:"LO",name:"Unknown",vm:"1",version:"PrivateTag"},'(0029,"PHILIPS MR/LAST",10)':{tag:'(0029,"PHILIPS MR/LAST",10)',vr:"DS",name:"FPMin",vm:"1",version:"PrivateTag"},'(0029,"PHILIPS MR/LAST",20)':{tag:'(0029,"PHILIPS MR/LAST",20)',vr:"DS",name:"FPMax",vm:"1",version:"PrivateTag"},'(0029,"PHILIPS MR/LAST",30)':{tag:'(0029,"PHILIPS MR/LAST",30)',vr:"DS",name:"ScaledMinimum",vm:"1",version:"PrivateTag"},'(0029,"PHILIPS MR/LAST",40)':{tag:'(0029,"PHILIPS MR/LAST",40)',vr:"DS",name:"ScaledMaximum",vm:"1",version:"PrivateTag"},'(0029,"PHILIPS MR/LAST",50)':{tag:'(0029,"PHILIPS MR/LAST",50)',vr:"DS",name:"WindowMinimum",vm:"1",version:"PrivateTag"},'(0029,"PHILIPS MR/LAST",60)':{tag:'(0029,"PHILIPS MR/LAST",60)',vr:"DS",name:"WindowMaximum",vm:"1",version:"PrivateTag"},'(0029,"PHILIPS MR/LAST",61)':{tag:'(0029,"PHILIPS MR/LAST",61)',vr:"IS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0029,"PHILIPS MR/LAST",70)':{tag:'(0029,"PHILIPS MR/LAST",70)',vr:"DS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0029,"PHILIPS MR/LAST",71)':{tag:'(0029,"PHILIPS MR/LAST",71)',vr:"DS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0029,"PHILIPS MR/LAST",72)':{tag:'(0029,"PHILIPS MR/LAST",72)',vr:"IS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0029,"PHILIPS MR/LAST",80)':{tag:'(0029,"PHILIPS MR/LAST",80)',vr:"IS",name:"ViewCenter",vm:"1",version:"PrivateTag"},'(0029,"PHILIPS MR/LAST",81)':{tag:'(0029,"PHILIPS MR/LAST",81)',vr:"IS",name:"ViewSize",vm:"1",version:"PrivateTag"},'(0029,"PHILIPS MR/LAST",82)':{tag:'(0029,"PHILIPS MR/LAST",82)',vr:"IS",name:"ViewZoom",vm:"1",version:"PrivateTag"},'(0029,"PHILIPS MR/LAST",83)':{tag:'(0029,"PHILIPS MR/LAST",83)',vr:"IS",name:"ViewTransform",vm:"1",version:"PrivateTag"},'(6001,"PHILIPS MR/LAST",00)':{tag:'(6001,"PHILIPS MR/LAST",00)',vr:"LT",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR/PART",1000)':{tag:'(0019,"PHILIPS MR/PART",1000)',vr:"DS",name:"FieldOfView",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR/PART",1005)':{tag:'(0019,"PHILIPS MR/PART",1005)',vr:"DS",name:"CCAngulation",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR/PART",1006)':{tag:'(0019,"PHILIPS MR/PART",1006)',vr:"DS",name:"APAngulation",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR/PART",1007)':{tag:'(0019,"PHILIPS MR/PART",1007)',vr:"DS",name:"LRAngulation",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR/PART",1008)':{tag:'(0019,"PHILIPS MR/PART",1008)',vr:"IS",name:"PatientPosition",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR/PART",1009)':{tag:'(0019,"PHILIPS MR/PART",1009)',vr:"IS",name:"PatientOrientation",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR/PART",100a)':{tag:'(0019,"PHILIPS MR/PART",100a)',vr:"IS",name:"SliceOrientation",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR/PART",100b)':{tag:'(0019,"PHILIPS MR/PART",100b)',vr:"DS",name:"LROffcenter",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR/PART",100c)':{tag:'(0019,"PHILIPS MR/PART",100c)',vr:"DS",name:"CCOffcenter",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR/PART",100d)':{tag:'(0019,"PHILIPS MR/PART",100d)',vr:"DS",name:"APOffcenter",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR/PART",100e)':{tag:'(0019,"PHILIPS MR/PART",100e)',vr:"DS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR/PART",100f)':{tag:'(0019,"PHILIPS MR/PART",100f)',vr:"IS",name:"NumberOfSlices",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR/PART",1010)':{tag:'(0019,"PHILIPS MR/PART",1010)',vr:"DS",name:"SliceFactor",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR/PART",1011)':{tag:'(0019,"PHILIPS MR/PART",1011)',vr:"DS",name:"EchoTimes",vm:"1-n",version:"PrivateTag"},'(0019,"PHILIPS MR/PART",1015)':{tag:'(0019,"PHILIPS MR/PART",1015)',vr:"IS",name:"DynamicStudy",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR/PART",1018)':{tag:'(0019,"PHILIPS MR/PART",1018)',vr:"DS",name:"HeartbeatInterval",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR/PART",1019)':{tag:'(0019,"PHILIPS MR/PART",1019)',vr:"DS",name:"RepetitionTimeFFE",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR/PART",101a)':{tag:'(0019,"PHILIPS MR/PART",101a)',vr:"DS",name:"FFEFlipAngle",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR/PART",101b)':{tag:'(0019,"PHILIPS MR/PART",101b)',vr:"IS",name:"NumberOfScans",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR/PART",1021)':{tag:'(0019,"PHILIPS MR/PART",1021)',vr:"DS",name:"Unknown",vm:"1-n",version:"PrivateTag"},'(0019,"PHILIPS MR/PART",1022)':{tag:'(0019,"PHILIPS MR/PART",1022)',vr:"DS",name:"DynamicScanTimeBegin",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR/PART",1024)':{tag:'(0019,"PHILIPS MR/PART",1024)',vr:"IS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR/PART",1064)':{tag:'(0019,"PHILIPS MR/PART",1064)',vr:"DS",name:"RepetitionTimeSE",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR/PART",1065)':{tag:'(0019,"PHILIPS MR/PART",1065)',vr:"DS",name:"RepetitionTimeIR",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR/PART",1069)':{tag:'(0019,"PHILIPS MR/PART",1069)',vr:"IS",name:"NumberOfPhases",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR/PART",106a)':{tag:'(0019,"PHILIPS MR/PART",106a)',vr:"IS",name:"CardiacFrequency",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR/PART",106b)':{tag:'(0019,"PHILIPS MR/PART",106b)',vr:"DS",name:"InversionDelay",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR/PART",106c)':{tag:'(0019,"PHILIPS MR/PART",106c)',vr:"DS",name:"GateDelay",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR/PART",106d)':{tag:'(0019,"PHILIPS MR/PART",106d)',vr:"DS",name:"GateWidth",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR/PART",106e)':{tag:'(0019,"PHILIPS MR/PART",106e)',vr:"DS",name:"TriggerDelayTime",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR/PART",1080)':{tag:'(0019,"PHILIPS MR/PART",1080)',vr:"IS",name:"NumberOfChemicalShifts",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR/PART",1081)':{tag:'(0019,"PHILIPS MR/PART",1081)',vr:"DS",name:"ChemicalShift",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR/PART",1084)':{tag:'(0019,"PHILIPS MR/PART",1084)',vr:"IS",name:"NumberOfRows",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR/PART",1085)':{tag:'(0019,"PHILIPS MR/PART",1085)',vr:"IS",name:"NumberOfSamples",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR/PART",1094)':{tag:'(0019,"PHILIPS MR/PART",1094)',vr:"LO",name:"MagnetizationTransferContrast",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR/PART",1095)':{tag:'(0019,"PHILIPS MR/PART",1095)',vr:"LO",name:"SpectralPresaturationWithInversionRecovery",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR/PART",1096)':{tag:'(0019,"PHILIPS MR/PART",1096)',vr:"IS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR/PART",1097)':{tag:'(0019,"PHILIPS MR/PART",1097)',vr:"LO",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR/PART",10a0)':{tag:'(0019,"PHILIPS MR/PART",10a0)',vr:"IS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR/PART",10a1)':{tag:'(0019,"PHILIPS MR/PART",10a1)',vr:"DS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR/PART",10a3)':{tag:'(0019,"PHILIPS MR/PART",10a3)',vr:"DS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR/PART",10a4)':{tag:'(0019,"PHILIPS MR/PART",10a4)',vr:"CS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR/PART",10c8)':{tag:'(0019,"PHILIPS MR/PART",10c8)',vr:"IS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR/PART",10c9)':{tag:'(0019,"PHILIPS MR/PART",10c9)',vr:"IS",name:"FoldoverDirectionTransverse",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR/PART",10ca)':{tag:'(0019,"PHILIPS MR/PART",10ca)',vr:"IS",name:"FoldoverDirectionSagittal",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR/PART",10cb)':{tag:'(0019,"PHILIPS MR/PART",10cb)',vr:"IS",name:"FoldoverDirectionCoronal",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR/PART",10cc)':{tag:'(0019,"PHILIPS MR/PART",10cc)',vr:"IS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR/PART",10cd)':{tag:'(0019,"PHILIPS MR/PART",10cd)',vr:"IS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR/PART",10ce)':{tag:'(0019,"PHILIPS MR/PART",10ce)',vr:"IS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR/PART",10cf)':{tag:'(0019,"PHILIPS MR/PART",10cf)',vr:"IS",name:"NumberOfEchoes",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR/PART",10d0)':{tag:'(0019,"PHILIPS MR/PART",10d0)',vr:"IS",name:"ScanResolution",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR/PART",10d2)':{tag:'(0019,"PHILIPS MR/PART",10d2)',vr:"LO",name:"WaterFatShift",vm:"2",version:"PrivateTag"},'(0019,"PHILIPS MR/PART",10d4)':{tag:'(0019,"PHILIPS MR/PART",10d4)',vr:"IS",name:"ArtifactReduction",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR/PART",10d5)':{tag:'(0019,"PHILIPS MR/PART",10d5)',vr:"IS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR/PART",10d6)':{tag:'(0019,"PHILIPS MR/PART",10d6)',vr:"IS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR/PART",10d7)':{tag:'(0019,"PHILIPS MR/PART",10d7)',vr:"DS",name:"ScanPercentage",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR/PART",10d8)':{tag:'(0019,"PHILIPS MR/PART",10d8)',vr:"IS",name:"Halfscan",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR/PART",10d9)':{tag:'(0019,"PHILIPS MR/PART",10d9)',vr:"IS",name:"EPIFactor",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR/PART",10da)':{tag:'(0019,"PHILIPS MR/PART",10da)',vr:"IS",name:"TurboFactor",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR/PART",10db)':{tag:'(0019,"PHILIPS MR/PART",10db)',vr:"IS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR/PART",10e0)':{tag:'(0019,"PHILIPS MR/PART",10e0)',vr:"IS",name:"PercentageOfScanCompleted",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR/PART",10e1)':{tag:'(0019,"PHILIPS MR/PART",10e1)',vr:"IS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR/PART",1100)':{tag:'(0019,"PHILIPS MR/PART",1100)',vr:"IS",name:"NumberOfStacks",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR/PART",1101)':{tag:'(0019,"PHILIPS MR/PART",1101)',vr:"IS",name:"StackType",vm:"1-n",version:"PrivateTag"},'(0019,"PHILIPS MR/PART",1102)':{tag:'(0019,"PHILIPS MR/PART",1102)',vr:"IS",name:"Unknown",vm:"1-n",version:"PrivateTag"},'(0019,"PHILIPS MR/PART",110b)':{tag:'(0019,"PHILIPS MR/PART",110b)',vr:"DS",name:"LROffcenter",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR/PART",110c)':{tag:'(0019,"PHILIPS MR/PART",110c)',vr:"DS",name:"CCOffcenter",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR/PART",110d)':{tag:'(0019,"PHILIPS MR/PART",110d)',vr:"DS",name:"APOffcenter",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR/PART",1145)':{tag:'(0019,"PHILIPS MR/PART",1145)',vr:"IS",name:"ReconstructionResolution",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR/PART",11fc)':{tag:'(0019,"PHILIPS MR/PART",11fc)',vr:"IS",name:"ResonanceFrequency",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR/PART",12c0)':{tag:'(0019,"PHILIPS MR/PART",12c0)',vr:"DS",name:"TriggerDelayTimes",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR/PART",12e0)':{tag:'(0019,"PHILIPS MR/PART",12e0)',vr:"IS",name:"PrepulseType",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR/PART",12e1)':{tag:'(0019,"PHILIPS MR/PART",12e1)',vr:"DS",name:"PrepulseDelay",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS MR/PART",12e3)':{tag:'(0019,"PHILIPS MR/PART",12e3)',vr:"DS",name:"PhaseContrastVelocity",vm:"1",version:"PrivateTag"},'(0021,"PHILIPS MR/PART",1000)':{tag:'(0021,"PHILIPS MR/PART",1000)',vr:"IS",name:"ReconstructionNumber",vm:"1",version:"PrivateTag"},'(0021,"PHILIPS MR/PART",1010)':{tag:'(0021,"PHILIPS MR/PART",1010)',vr:"IS",name:"ImageType",vm:"1",version:"PrivateTag"},'(0021,"PHILIPS MR/PART",1020)':{tag:'(0021,"PHILIPS MR/PART",1020)',vr:"IS",name:"SliceNumber",vm:"1",version:"PrivateTag"},'(0021,"PHILIPS MR/PART",1030)':{tag:'(0021,"PHILIPS MR/PART",1030)',vr:"IS",name:"EchoNumber",vm:"1",version:"PrivateTag"},'(0021,"PHILIPS MR/PART",1031)':{tag:'(0021,"PHILIPS MR/PART",1031)',vr:"DS",name:"PatientReferenceID",vm:"1",version:"PrivateTag"},'(0021,"PHILIPS MR/PART",1035)':{tag:'(0021,"PHILIPS MR/PART",1035)',vr:"IS",name:"ChemicalShiftNumber",vm:"1",version:"PrivateTag"},'(0021,"PHILIPS MR/PART",1040)':{tag:'(0021,"PHILIPS MR/PART",1040)',vr:"IS",name:"PhaseNumber",vm:"1",version:"PrivateTag"},'(0021,"PHILIPS MR/PART",1050)':{tag:'(0021,"PHILIPS MR/PART",1050)',vr:"IS",name:"DynamicScanNumber",vm:"1",version:"PrivateTag"},'(0021,"PHILIPS MR/PART",1060)':{tag:'(0021,"PHILIPS MR/PART",1060)',vr:"IS",name:"NumberOfRowsInObject",vm:"1",version:"PrivateTag"},'(0021,"PHILIPS MR/PART",1061)':{tag:'(0021,"PHILIPS MR/PART",1061)',vr:"IS",name:"RowNumber",vm:"1-n",version:"PrivateTag"},'(0021,"PHILIPS MR/PART",1062)':{tag:'(0021,"PHILIPS MR/PART",1062)',vr:"IS",name:"Unknown",vm:"1-n",version:"PrivateTag"},'(0021,"PHILIPS MR/PART",1100)':{tag:'(0021,"PHILIPS MR/PART",1100)',vr:"DA",name:"ScanDate",vm:"1",version:"PrivateTag"},'(0021,"PHILIPS MR/PART",1110)':{tag:'(0021,"PHILIPS MR/PART",1110)',vr:"TM",name:"ScanTime",vm:"1",version:"PrivateTag"},'(0021,"PHILIPS MR/PART",1221)':{tag:'(0021,"PHILIPS MR/PART",1221)',vr:"IS",name:"SliceGap",vm:"1",version:"PrivateTag"},'(0029,"PHILIPS MR/PART",00)':{tag:'(0029,"PHILIPS MR/PART",00)',vr:"DS",name:"Unknown",vm:"2",version:"PrivateTag"},'(0029,"PHILIPS MR/PART",04)':{tag:'(0029,"PHILIPS MR/PART",04)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0029,"PHILIPS MR/PART",10)':{tag:'(0029,"PHILIPS MR/PART",10)',vr:"DS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0029,"PHILIPS MR/PART",11)':{tag:'(0029,"PHILIPS MR/PART",11)',vr:"DS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0029,"PHILIPS MR/PART",20)':{tag:'(0029,"PHILIPS MR/PART",20)',vr:"LO",name:"Unknown",vm:"1",version:"PrivateTag"},'(0029,"PHILIPS MR/PART",31)':{tag:'(0029,"PHILIPS MR/PART",31)',vr:"DS",name:"Unknown",vm:"2",version:"PrivateTag"},'(0029,"PHILIPS MR/PART",32)':{tag:'(0029,"PHILIPS MR/PART",32)',vr:"DS",name:"Unknown",vm:"2",version:"PrivateTag"},'(0029,"PHILIPS MR/PART",c3)':{tag:'(0029,"PHILIPS MR/PART",c3)',vr:"IS",name:"ScanResolution",vm:"1",version:"PrivateTag"},'(0029,"PHILIPS MR/PART",c4)':{tag:'(0029,"PHILIPS MR/PART",c4)',vr:"IS",name:"FieldOfView",vm:"1",version:"PrivateTag"},'(0029,"PHILIPS MR/PART",d5)':{tag:'(0029,"PHILIPS MR/PART",d5)',vr:"LT",name:"SliceThickness",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS-MR-1",11)':{tag:'(0019,"PHILIPS-MR-1",11)',vr:"IS",name:"ChemicalShiftNumber",vm:"1",version:"PrivateTag"},'(0019,"PHILIPS-MR-1",12)':{tag:'(0019,"PHILIPS-MR-1",12)',vr:"IS",name:"PhaseNumber",vm:"1",version:"PrivateTag"},'(0021,"PHILIPS-MR-1",01)':{tag:'(0021,"PHILIPS-MR-1",01)',vr:"IS",name:"ReconstructionNumber",vm:"1",version:"PrivateTag"},'(0021,"PHILIPS-MR-1",02)':{tag:'(0021,"PHILIPS-MR-1",02)',vr:"IS",name:"SliceNumber",vm:"1",version:"PrivateTag"},'(7001,"Picker NM Private Group",01)':{tag:'(7001,"Picker NM Private Group",01)',vr:"UI",name:"Unknown",vm:"1",version:"PrivateTag"},'(7001,"Picker NM Private Group",02)':{tag:'(7001,"Picker NM Private Group",02)',vr:"OB",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS CM VA0 ACQU",10)':{tag:'(0019,"SIEMENS CM VA0 ACQU",10)',vr:"LT",name:"ParameterFileName",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS CM VA0 ACQU",11)':{tag:'(0019,"SIEMENS CM VA0 ACQU",11)',vr:"LO",name:"SequenceFileName",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS CM VA0 ACQU",12)':{tag:'(0019,"SIEMENS CM VA0 ACQU",12)',vr:"LT",name:"SequenceFileOwner",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS CM VA0 ACQU",13)':{tag:'(0019,"SIEMENS CM VA0 ACQU",13)',vr:"LT",name:"SequenceDescription",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS CM VA0 ACQU",14)':{tag:'(0019,"SIEMENS CM VA0 ACQU",14)',vr:"LT",name:"EPIFileName",vm:"1",version:"PrivateTag"},'(0009,"SIEMENS CM VA0 CMS",00)':{tag:'(0009,"SIEMENS CM VA0 CMS",00)',vr:"DS",name:"NumberOfMeasurements",vm:"1",version:"PrivateTag"},'(0009,"SIEMENS CM VA0 CMS",10)':{tag:'(0009,"SIEMENS CM VA0 CMS",10)',vr:"LT",name:"StorageMode",vm:"1",version:"PrivateTag"},'(0009,"SIEMENS CM VA0 CMS",12)':{tag:'(0009,"SIEMENS CM VA0 CMS",12)',vr:"UL",name:"EvaluationMaskImage",vm:"1",version:"PrivateTag"},'(0009,"SIEMENS CM VA0 CMS",26)':{tag:'(0009,"SIEMENS CM VA0 CMS",26)',vr:"DA",name:"LastMoveDate",vm:"1",version:"PrivateTag"},'(0009,"SIEMENS CM VA0 CMS",27)':{tag:'(0009,"SIEMENS CM VA0 CMS",27)',vr:"TM",name:"LastMoveTime",vm:"1",version:"PrivateTag"},'(0011,"SIEMENS CM VA0 CMS",0a)':{tag:'(0011,"SIEMENS CM VA0 CMS",0a)',vr:"LT",name:"Unknown",vm:"1",version:"PrivateTag"},'(0011,"SIEMENS CM VA0 CMS",10)':{tag:'(0011,"SIEMENS CM VA0 CMS",10)',vr:"DA",name:"RegistrationDate",vm:"1",version:"PrivateTag"},'(0011,"SIEMENS CM VA0 CMS",11)':{tag:'(0011,"SIEMENS CM VA0 CMS",11)',vr:"TM",name:"RegistrationTime",vm:"1",version:"PrivateTag"},'(0011,"SIEMENS CM VA0 CMS",22)':{tag:'(0011,"SIEMENS CM VA0 CMS",22)',vr:"LT",name:"Unknown",vm:"1",version:"PrivateTag"},'(0011,"SIEMENS CM VA0 CMS",23)':{tag:'(0011,"SIEMENS CM VA0 CMS",23)',vr:"DS",name:"UsedPatientWeight",vm:"1",version:"PrivateTag"},'(0011,"SIEMENS CM VA0 CMS",40)':{tag:'(0011,"SIEMENS CM VA0 CMS",40)',vr:"IS",name:"OrganCode",vm:"1",version:"PrivateTag"},'(0013,"SIEMENS CM VA0 CMS",00)':{tag:'(0013,"SIEMENS CM VA0 CMS",00)',vr:"LT",name:"ModifyingPhysician",vm:"1",version:"PrivateTag"},'(0013,"SIEMENS CM VA0 CMS",10)':{tag:'(0013,"SIEMENS CM VA0 CMS",10)',vr:"DA",name:"ModificationDate",vm:"1",version:"PrivateTag"},'(0013,"SIEMENS CM VA0 CMS",12)':{tag:'(0013,"SIEMENS CM VA0 CMS",12)',vr:"TM",name:"ModificationTime",vm:"1",version:"PrivateTag"},'(0013,"SIEMENS CM VA0 CMS",20)':{tag:'(0013,"SIEMENS CM VA0 CMS",20)',vr:"LO",name:"PatientName",vm:"1",version:"PrivateTag"},'(0013,"SIEMENS CM VA0 CMS",22)':{tag:'(0013,"SIEMENS CM VA0 CMS",22)',vr:"LO",name:"PatientId",vm:"1",version:"PrivateTag"},'(0013,"SIEMENS CM VA0 CMS",30)':{tag:'(0013,"SIEMENS CM VA0 CMS",30)',vr:"DA",name:"PatientBirthdate",vm:"1",version:"PrivateTag"},'(0013,"SIEMENS CM VA0 CMS",31)':{tag:'(0013,"SIEMENS CM VA0 CMS",31)',vr:"DS",name:"PatientWeight",vm:"1",version:"PrivateTag"},'(0013,"SIEMENS CM VA0 CMS",32)':{tag:'(0013,"SIEMENS CM VA0 CMS",32)',vr:"LT",name:"PatientsMaidenName",vm:"1",version:"PrivateTag"},'(0013,"SIEMENS CM VA0 CMS",33)':{tag:'(0013,"SIEMENS CM VA0 CMS",33)',vr:"LT",name:"ReferringPhysician",vm:"1",version:"PrivateTag"},'(0013,"SIEMENS CM VA0 CMS",34)':{tag:'(0013,"SIEMENS CM VA0 CMS",34)',vr:"LT",name:"AdmittingDiagnosis",vm:"1",version:"PrivateTag"},'(0013,"SIEMENS CM VA0 CMS",35)':{tag:'(0013,"SIEMENS CM VA0 CMS",35)',vr:"LO",name:"PatientSex",vm:"1",version:"PrivateTag"},'(0013,"SIEMENS CM VA0 CMS",40)':{tag:'(0013,"SIEMENS CM VA0 CMS",40)',vr:"LO",name:"ProcedureDescription",vm:"1",version:"PrivateTag"},'(0013,"SIEMENS CM VA0 CMS",42)':{tag:'(0013,"SIEMENS CM VA0 CMS",42)',vr:"LO",name:"RestDirection",vm:"1",version:"PrivateTag"},'(0013,"SIEMENS CM VA0 CMS",44)':{tag:'(0013,"SIEMENS CM VA0 CMS",44)',vr:"LO",name:"PatientPosition",vm:"1",version:"PrivateTag"},'(0013,"SIEMENS CM VA0 CMS",46)':{tag:'(0013,"SIEMENS CM VA0 CMS",46)',vr:"LT",name:"ViewDirection",vm:"1",version:"PrivateTag"},'(0013,"SIEMENS CM VA0 CMS",50)':{tag:'(0013,"SIEMENS CM VA0 CMS",50)',vr:"LT",name:"Unknown",vm:"1",version:"PrivateTag"},'(0013,"SIEMENS CM VA0 CMS",51)':{tag:'(0013,"SIEMENS CM VA0 CMS",51)',vr:"LT",name:"Unknown",vm:"1",version:"PrivateTag"},'(0013,"SIEMENS CM VA0 CMS",52)':{tag:'(0013,"SIEMENS CM VA0 CMS",52)',vr:"LT",name:"Unknown",vm:"1",version:"PrivateTag"},'(0013,"SIEMENS CM VA0 CMS",53)':{tag:'(0013,"SIEMENS CM VA0 CMS",53)',vr:"LT",name:"Unknown",vm:"1",version:"PrivateTag"},'(0013,"SIEMENS CM VA0 CMS",54)':{tag:'(0013,"SIEMENS CM VA0 CMS",54)',vr:"LT",name:"Unknown",vm:"1",version:"PrivateTag"},'(0013,"SIEMENS CM VA0 CMS",55)':{tag:'(0013,"SIEMENS CM VA0 CMS",55)',vr:"LT",name:"Unknown",vm:"1",version:"PrivateTag"},'(0013,"SIEMENS CM VA0 CMS",56)':{tag:'(0013,"SIEMENS CM VA0 CMS",56)',vr:"LT",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS CM VA0 CMS",10)':{tag:'(0019,"SIEMENS CM VA0 CMS",10)',vr:"DS",name:"NetFrequency",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS CM VA0 CMS",20)':{tag:'(0019,"SIEMENS CM VA0 CMS",20)',vr:"LT",name:"MeasurementMode",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS CM VA0 CMS",30)':{tag:'(0019,"SIEMENS CM VA0 CMS",30)',vr:"LT",name:"CalculationMode",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS CM VA0 CMS",50)':{tag:'(0019,"SIEMENS CM VA0 CMS",50)',vr:"IS",name:"NoiseLevel",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS CM VA0 CMS",60)':{tag:'(0019,"SIEMENS CM VA0 CMS",60)',vr:"IS",name:"NumberOfDataBytes",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS CM VA0 CMS",20)':{tag:'(0021,"SIEMENS CM VA0 CMS",20)',vr:"DS",name:"FoV",vm:"2",version:"PrivateTag"},'(0021,"SIEMENS CM VA0 CMS",22)':{tag:'(0021,"SIEMENS CM VA0 CMS",22)',vr:"DS",name:"ImageMagnificationFactor",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS CM VA0 CMS",24)':{tag:'(0021,"SIEMENS CM VA0 CMS",24)',vr:"DS",name:"ImageScrollOffset",vm:"2",version:"PrivateTag"},'(0021,"SIEMENS CM VA0 CMS",26)':{tag:'(0021,"SIEMENS CM VA0 CMS",26)',vr:"IS",name:"ImagePixelOffset",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS CM VA0 CMS",30)':{tag:'(0021,"SIEMENS CM VA0 CMS",30)',vr:"LT",name:"ViewDirection",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS CM VA0 CMS",32)':{tag:'(0021,"SIEMENS CM VA0 CMS",32)',vr:"CS",name:"PatientRestDirection",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS CM VA0 CMS",60)':{tag:'(0021,"SIEMENS CM VA0 CMS",60)',vr:"DS",name:"ImagePosition",vm:"3",version:"PrivateTag"},'(0021,"SIEMENS CM VA0 CMS",61)':{tag:'(0021,"SIEMENS CM VA0 CMS",61)',vr:"DS",name:"ImageNormal",vm:"3",version:"PrivateTag"},'(0021,"SIEMENS CM VA0 CMS",63)':{tag:'(0021,"SIEMENS CM VA0 CMS",63)',vr:"DS",name:"ImageDistance",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS CM VA0 CMS",65)':{tag:'(0021,"SIEMENS CM VA0 CMS",65)',vr:"US",name:"ImagePositioningHistoryMask",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS CM VA0 CMS",6a)':{tag:'(0021,"SIEMENS CM VA0 CMS",6a)',vr:"DS",name:"ImageRow",vm:"3",version:"PrivateTag"},'(0021,"SIEMENS CM VA0 CMS",6b)':{tag:'(0021,"SIEMENS CM VA0 CMS",6b)',vr:"DS",name:"ImageColumn",vm:"3",version:"PrivateTag"},'(0021,"SIEMENS CM VA0 CMS",70)':{tag:'(0021,"SIEMENS CM VA0 CMS",70)',vr:"LT",name:"PatientOrientationSet1",vm:"3",version:"PrivateTag"},'(0021,"SIEMENS CM VA0 CMS",71)':{tag:'(0021,"SIEMENS CM VA0 CMS",71)',vr:"LT",name:"PatientOrientationSet2",vm:"3",version:"PrivateTag"},'(0021,"SIEMENS CM VA0 CMS",80)':{tag:'(0021,"SIEMENS CM VA0 CMS",80)',vr:"LT",name:"StudyName",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS CM VA0 CMS",82)':{tag:'(0021,"SIEMENS CM VA0 CMS",82)',vr:"LT",name:"StudyType",vm:"3",version:"PrivateTag"},'(0029,"SIEMENS CM VA0 CMS",10)':{tag:'(0029,"SIEMENS CM VA0 CMS",10)',vr:"LT",name:"WindowStyle",vm:"1",version:"PrivateTag"},'(0029,"SIEMENS CM VA0 CMS",11)':{tag:'(0029,"SIEMENS CM VA0 CMS",11)',vr:"LT",name:"Unknown",vm:"1",version:"PrivateTag"},'(0029,"SIEMENS CM VA0 CMS",13)':{tag:'(0029,"SIEMENS CM VA0 CMS",13)',vr:"LT",name:"Unknown",vm:"1",version:"PrivateTag"},'(0029,"SIEMENS CM VA0 CMS",20)':{tag:'(0029,"SIEMENS CM VA0 CMS",20)',vr:"LT",name:"PixelQualityCode",vm:"3",version:"PrivateTag"},'(0029,"SIEMENS CM VA0 CMS",22)':{tag:'(0029,"SIEMENS CM VA0 CMS",22)',vr:"IS",name:"PixelQualityValue",vm:"3",version:"PrivateTag"},'(0029,"SIEMENS CM VA0 CMS",50)':{tag:'(0029,"SIEMENS CM VA0 CMS",50)',vr:"LT",name:"ArchiveCode",vm:"1",version:"PrivateTag"},'(0029,"SIEMENS CM VA0 CMS",51)':{tag:'(0029,"SIEMENS CM VA0 CMS",51)',vr:"LT",name:"ExposureCode",vm:"1",version:"PrivateTag"},'(0029,"SIEMENS CM VA0 CMS",52)':{tag:'(0029,"SIEMENS CM VA0 CMS",52)',vr:"LT",name:"SortCode",vm:"1",version:"PrivateTag"},'(0029,"SIEMENS CM VA0 CMS",53)':{tag:'(0029,"SIEMENS CM VA0 CMS",53)',vr:"LT",name:"Unknown",vm:"1",version:"PrivateTag"},'(0029,"SIEMENS CM VA0 CMS",60)':{tag:'(0029,"SIEMENS CM VA0 CMS",60)',vr:"LT",name:"Splash",vm:"1",version:"PrivateTag"},'(0051,"SIEMENS CM VA0 CMS",10)':{tag:'(0051,"SIEMENS CM VA0 CMS",10)',vr:"LT",name:"ImageText",vm:"1-n",version:"PrivateTag"},'(6021,"SIEMENS CM VA0 CMS",00)':{tag:'(6021,"SIEMENS CM VA0 CMS",00)',vr:"LT",name:"ImageGraphicsFormatCode",vm:"1",version:"PrivateTag"},'(6021,"SIEMENS CM VA0 CMS",10)':{tag:'(6021,"SIEMENS CM VA0 CMS",10)',vr:"LT",name:"ImageGraphics",vm:"1",version:"PrivateTag"},'(7fe1,"SIEMENS CM VA0 CMS",00)':{tag:'(7fe1,"SIEMENS CM VA0 CMS",00)',vr:"OB",name:"BinaryData",vm:"1-n",version:"PrivateTag"},'(0009,"SIEMENS CM VA0 LAB",10)':{tag:'(0009,"SIEMENS CM VA0 LAB",10)',vr:"LT",name:"GeneratorIdentificationLabel",vm:"1",version:"PrivateTag"},'(0009,"SIEMENS CM VA0 LAB",11)':{tag:'(0009,"SIEMENS CM VA0 LAB",11)',vr:"LT",name:"GantryIdentificationLabel",vm:"1",version:"PrivateTag"},'(0009,"SIEMENS CM VA0 LAB",12)':{tag:'(0009,"SIEMENS CM VA0 LAB",12)',vr:"LT",name:"X-RayTubeIdentificationLabel",vm:"1",version:"PrivateTag"},'(0009,"SIEMENS CM VA0 LAB",13)':{tag:'(0009,"SIEMENS CM VA0 LAB",13)',vr:"LT",name:"DetectorIdentificationLabel",vm:"1",version:"PrivateTag"},'(0009,"SIEMENS CM VA0 LAB",14)':{tag:'(0009,"SIEMENS CM VA0 LAB",14)',vr:"LT",name:"DASIdentificationLabel",vm:"1",version:"PrivateTag"},'(0009,"SIEMENS CM VA0 LAB",15)':{tag:'(0009,"SIEMENS CM VA0 LAB",15)',vr:"LT",name:"SMIIdentificationLabel",vm:"1",version:"PrivateTag"},'(0009,"SIEMENS CM VA0 LAB",16)':{tag:'(0009,"SIEMENS CM VA0 LAB",16)',vr:"LT",name:"CPUIdentificationLabel",vm:"1",version:"PrivateTag"},'(0009,"SIEMENS CM VA0 LAB",20)':{tag:'(0009,"SIEMENS CM VA0 LAB",20)',vr:"LT",name:"HeaderVersion",vm:"1",version:"PrivateTag"},'(0029,"SIEMENS CSA HEADER",08)':{tag:'(0029,"SIEMENS CSA HEADER",08)',vr:"CS",name:"CSAImageHeaderType",vm:"1",version:"PrivateTag"},'(0029,"SIEMENS CSA HEADER",09)':{tag:'(0029,"SIEMENS CSA HEADER",09)',vr:"LO",name:"CSAImageHeaderVersion",vm:"1",version:"PrivateTag"},'(0029,"SIEMENS CSA HEADER",10)':{tag:'(0029,"SIEMENS CSA HEADER",10)',vr:"OB",name:"CSAImageHeaderInfo",vm:"1",version:"PrivateTag"},'(0029,"SIEMENS CSA HEADER",18)':{tag:'(0029,"SIEMENS CSA HEADER",18)',vr:"CS",name:"CSASeriesHeaderType",vm:"1",version:"PrivateTag"},'(0029,"SIEMENS CSA HEADER",19)':{tag:'(0029,"SIEMENS CSA HEADER",19)',vr:"LO",name:"CSASeriesHeaderVersion",vm:"1",version:"PrivateTag"},'(0029,"SIEMENS CSA HEADER",20)':{tag:'(0029,"SIEMENS CSA HEADER",20)',vr:"OB",name:"CSASeriesHeaderInfo",vm:"1",version:"PrivateTag"},'(0029,"SIEMENS CSA NON-IMAGE",08)':{tag:'(0029,"SIEMENS CSA NON-IMAGE",08)',vr:"CS",name:"CSADataType",vm:"1",version:"PrivateTag"},'(0029,"SIEMENS CSA NON-IMAGE",09)':{tag:'(0029,"SIEMENS CSA NON-IMAGE",09)',vr:"LO",name:"CSADataVersion",vm:"1",version:"PrivateTag"},'(0029,"SIEMENS CSA NON-IMAGE",10)':{tag:'(0029,"SIEMENS CSA NON-IMAGE",10)',vr:"OB",name:"CSADataInfo",vm:"1",version:"PrivateTag"},'(7FE1,"SIEMENS CSA NON-IMAGE",10)':{tag:'(7FE1,"SIEMENS CSA NON-IMAGE",10)',vr:"OB",name:"CSAData",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS CT VA0 COAD",10)':{tag:'(0019,"SIEMENS CT VA0 COAD",10)',vr:"DS",name:"DistanceSourceToSourceSideCollimator",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS CT VA0 COAD",11)':{tag:'(0019,"SIEMENS CT VA0 COAD",11)',vr:"DS",name:"DistanceSourceToDetectorSideCollimator",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS CT VA0 COAD",20)':{tag:'(0019,"SIEMENS CT VA0 COAD",20)',vr:"IS",name:"NumberOfPossibleChannels",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS CT VA0 COAD",21)':{tag:'(0019,"SIEMENS CT VA0 COAD",21)',vr:"IS",name:"MeanChannelNumber",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS CT VA0 COAD",22)':{tag:'(0019,"SIEMENS CT VA0 COAD",22)',vr:"DS",name:"DetectorSpacing",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS CT VA0 COAD",23)':{tag:'(0019,"SIEMENS CT VA0 COAD",23)',vr:"DS",name:"DetectorCenter",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS CT VA0 COAD",24)':{tag:'(0019,"SIEMENS CT VA0 COAD",24)',vr:"DS",name:"ReadingIntegrationTime",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS CT VA0 COAD",50)':{tag:'(0019,"SIEMENS CT VA0 COAD",50)',vr:"DS",name:"DetectorAlignment",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS CT VA0 COAD",52)':{tag:'(0019,"SIEMENS CT VA0 COAD",52)',vr:"DS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS CT VA0 COAD",54)':{tag:'(0019,"SIEMENS CT VA0 COAD",54)',vr:"DS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS CT VA0 COAD",60)':{tag:'(0019,"SIEMENS CT VA0 COAD",60)',vr:"DS",name:"FocusAlignment",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS CT VA0 COAD",65)':{tag:'(0019,"SIEMENS CT VA0 COAD",65)',vr:"UL",name:"FocalSpotDeflectionAmplitude",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS CT VA0 COAD",66)':{tag:'(0019,"SIEMENS CT VA0 COAD",66)',vr:"UL",name:"FocalSpotDeflectionPhase",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS CT VA0 COAD",67)':{tag:'(0019,"SIEMENS CT VA0 COAD",67)',vr:"UL",name:"FocalSpotDeflectionOffset",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS CT VA0 COAD",70)':{tag:'(0019,"SIEMENS CT VA0 COAD",70)',vr:"DS",name:"WaterScalingFactor",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS CT VA0 COAD",71)':{tag:'(0019,"SIEMENS CT VA0 COAD",71)',vr:"DS",name:"InterpolationFactor",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS CT VA0 COAD",80)':{tag:'(0019,"SIEMENS CT VA0 COAD",80)',vr:"LT",name:"PatientRegion",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS CT VA0 COAD",82)':{tag:'(0019,"SIEMENS CT VA0 COAD",82)',vr:"LT",name:"PatientPhaseOfLife",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS CT VA0 COAD",90)':{tag:'(0019,"SIEMENS CT VA0 COAD",90)',vr:"DS",name:"OsteoOffset",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS CT VA0 COAD",92)':{tag:'(0019,"SIEMENS CT VA0 COAD",92)',vr:"DS",name:"OsteoRegressionLineSlope",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS CT VA0 COAD",93)':{tag:'(0019,"SIEMENS CT VA0 COAD",93)',vr:"DS",name:"OsteoRegressionLineIntercept",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS CT VA0 COAD",94)':{tag:'(0019,"SIEMENS CT VA0 COAD",94)',vr:"DS",name:"OsteoStandardizationCode",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS CT VA0 COAD",96)':{tag:'(0019,"SIEMENS CT VA0 COAD",96)',vr:"IS",name:"OsteoPhantomNumber",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS CT VA0 COAD",A3)':{tag:'(0019,"SIEMENS CT VA0 COAD",A3)',vr:"US",name:"Unknown",vm:"1-n",version:"PrivateTag"},'(0019,"SIEMENS CT VA0 COAD",A4)':{tag:'(0019,"SIEMENS CT VA0 COAD",A4)',vr:"DS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS CT VA0 COAD",A5)':{tag:'(0019,"SIEMENS CT VA0 COAD",A5)',vr:"DS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS CT VA0 COAD",A6)':{tag:'(0019,"SIEMENS CT VA0 COAD",A6)',vr:"US",name:"Unknown",vm:"1-n",version:"PrivateTag"},'(0019,"SIEMENS CT VA0 COAD",A7)':{tag:'(0019,"SIEMENS CT VA0 COAD",A7)',vr:"US",name:"Unknown",vm:"1-n",version:"PrivateTag"},'(0019,"SIEMENS CT VA0 COAD",A8)':{tag:'(0019,"SIEMENS CT VA0 COAD",A8)',vr:"US",name:"Unknown",vm:"1-n",version:"PrivateTag"},'(0019,"SIEMENS CT VA0 COAD",A9)':{tag:'(0019,"SIEMENS CT VA0 COAD",A9)',vr:"DS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS CT VA0 COAD",AA)':{tag:'(0019,"SIEMENS CT VA0 COAD",AA)',vr:"LT",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS CT VA0 COAD",AB)':{tag:'(0019,"SIEMENS CT VA0 COAD",AB)',vr:"DS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS CT VA0 COAD",AC)':{tag:'(0019,"SIEMENS CT VA0 COAD",AC)',vr:"DS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS CT VA0 COAD",AD)':{tag:'(0019,"SIEMENS CT VA0 COAD",AD)',vr:"DS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS CT VA0 COAD",AE)':{tag:'(0019,"SIEMENS CT VA0 COAD",AE)',vr:"DS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS CT VA0 COAD",AF)':{tag:'(0019,"SIEMENS CT VA0 COAD",AF)',vr:"DS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS CT VA0 COAD",B0)':{tag:'(0019,"SIEMENS CT VA0 COAD",B0)',vr:"DS",name:"FeedPerRotation",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS CT VA0 COAD",BD)':{tag:'(0019,"SIEMENS CT VA0 COAD",BD)',vr:"IS",name:"PulmoTriggerLevel",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS CT VA0 COAD",BE)':{tag:'(0019,"SIEMENS CT VA0 COAD",BE)',vr:"DS",name:"ExpiratoricReserveVolume",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS CT VA0 COAD",BF)':{tag:'(0019,"SIEMENS CT VA0 COAD",BF)',vr:"DS",name:"VitalCapacity",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS CT VA0 COAD",C0)':{tag:'(0019,"SIEMENS CT VA0 COAD",C0)',vr:"DS",name:"PulmoWater",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS CT VA0 COAD",C1)':{tag:'(0019,"SIEMENS CT VA0 COAD",C1)',vr:"DS",name:"PulmoAir",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS CT VA0 COAD",C2)':{tag:'(0019,"SIEMENS CT VA0 COAD",C2)',vr:"DA",name:"PulmoDate",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS CT VA0 COAD",C3)':{tag:'(0019,"SIEMENS CT VA0 COAD",C3)',vr:"TM",name:"PulmoTime",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS CT VA0 GEN",10)':{tag:'(0019,"SIEMENS CT VA0 GEN",10)',vr:"DS",name:"SourceSideCollimatorAperture",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS CT VA0 GEN",11)':{tag:'(0019,"SIEMENS CT VA0 GEN",11)',vr:"DS",name:"DetectorSideCollimatorAperture",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS CT VA0 GEN",20)':{tag:'(0019,"SIEMENS CT VA0 GEN",20)',vr:"DS",name:"ExposureTime",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS CT VA0 GEN",21)':{tag:'(0019,"SIEMENS CT VA0 GEN",21)',vr:"DS",name:"ExposureCurrent",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS CT VA0 GEN",25)':{tag:'(0019,"SIEMENS CT VA0 GEN",25)',vr:"DS",name:"KVPGeneratorPowerCurrent",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS CT VA0 GEN",26)':{tag:'(0019,"SIEMENS CT VA0 GEN",26)',vr:"DS",name:"GeneratorVoltage",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS CT VA0 GEN",40)':{tag:'(0019,"SIEMENS CT VA0 GEN",40)',vr:"UL",name:"MasterControlMask",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS CT VA0 GEN",42)':{tag:'(0019,"SIEMENS CT VA0 GEN",42)',vr:"US",name:"ProcessingMask",vm:"5",version:"PrivateTag"},'(0019,"SIEMENS CT VA0 GEN",44)':{tag:'(0019,"SIEMENS CT VA0 GEN",44)',vr:"US",name:"Unknown",vm:"1-n",version:"PrivateTag"},'(0019,"SIEMENS CT VA0 GEN",45)':{tag:'(0019,"SIEMENS CT VA0 GEN",45)',vr:"US",name:"Unknown",vm:"1-n",version:"PrivateTag"},'(0019,"SIEMENS CT VA0 GEN",62)':{tag:'(0019,"SIEMENS CT VA0 GEN",62)',vr:"IS",name:"NumberOfVirtuellChannels",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS CT VA0 GEN",70)':{tag:'(0019,"SIEMENS CT VA0 GEN",70)',vr:"IS",name:"NumberOfReadings",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS CT VA0 GEN",71)':{tag:'(0019,"SIEMENS CT VA0 GEN",71)',vr:"LT",name:"Unknown",vm:"1-n",version:"PrivateTag"},'(0019,"SIEMENS CT VA0 GEN",74)':{tag:'(0019,"SIEMENS CT VA0 GEN",74)',vr:"IS",name:"NumberOfProjections",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS CT VA0 GEN",75)':{tag:'(0019,"SIEMENS CT VA0 GEN",75)',vr:"IS",name:"NumberOfBytes",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS CT VA0 GEN",80)':{tag:'(0019,"SIEMENS CT VA0 GEN",80)',vr:"LT",name:"ReconstructionAlgorithmSet",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS CT VA0 GEN",81)':{tag:'(0019,"SIEMENS CT VA0 GEN",81)',vr:"LT",name:"ReconstructionAlgorithmIndex",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS CT VA0 GEN",82)':{tag:'(0019,"SIEMENS CT VA0 GEN",82)',vr:"LT",name:"RegenerationSoftwareVersion",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS CT VA0 GEN",88)':{tag:'(0019,"SIEMENS CT VA0 GEN",88)',vr:"DS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS CT VA0 GEN",10)':{tag:'(0021,"SIEMENS CT VA0 GEN",10)',vr:"IS",name:"RotationAngle",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS CT VA0 GEN",11)':{tag:'(0021,"SIEMENS CT VA0 GEN",11)',vr:"IS",name:"StartAngle",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS CT VA0 GEN",20)':{tag:'(0021,"SIEMENS CT VA0 GEN",20)',vr:"US",name:"Unknown",vm:"1-n",version:"PrivateTag"},'(0021,"SIEMENS CT VA0 GEN",30)':{tag:'(0021,"SIEMENS CT VA0 GEN",30)',vr:"IS",name:"TopogramTubePosition",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS CT VA0 GEN",32)':{tag:'(0021,"SIEMENS CT VA0 GEN",32)',vr:"DS",name:"LengthOfTopogram",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS CT VA0 GEN",34)':{tag:'(0021,"SIEMENS CT VA0 GEN",34)',vr:"DS",name:"TopogramCorrectionFactor",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS CT VA0 GEN",36)':{tag:'(0021,"SIEMENS CT VA0 GEN",36)',vr:"DS",name:"MaximumTablePosition",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS CT VA0 GEN",40)':{tag:'(0021,"SIEMENS CT VA0 GEN",40)',vr:"IS",name:"TableMoveDirectionCode",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS CT VA0 GEN",45)':{tag:'(0021,"SIEMENS CT VA0 GEN",45)',vr:"IS",name:"VOIStartRow",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS CT VA0 GEN",46)':{tag:'(0021,"SIEMENS CT VA0 GEN",46)',vr:"IS",name:"VOIStopRow",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS CT VA0 GEN",47)':{tag:'(0021,"SIEMENS CT VA0 GEN",47)',vr:"IS",name:"VOIStartColumn",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS CT VA0 GEN",48)':{tag:'(0021,"SIEMENS CT VA0 GEN",48)',vr:"IS",name:"VOIStopColumn",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS CT VA0 GEN",49)':{tag:'(0021,"SIEMENS CT VA0 GEN",49)',vr:"IS",name:"VOIStartSlice",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS CT VA0 GEN",4a)':{tag:'(0021,"SIEMENS CT VA0 GEN",4a)',vr:"IS",name:"VOIStopSlice",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS CT VA0 GEN",50)':{tag:'(0021,"SIEMENS CT VA0 GEN",50)',vr:"IS",name:"VectorStartRow",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS CT VA0 GEN",51)':{tag:'(0021,"SIEMENS CT VA0 GEN",51)',vr:"IS",name:"VectorRowStep",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS CT VA0 GEN",52)':{tag:'(0021,"SIEMENS CT VA0 GEN",52)',vr:"IS",name:"VectorStartColumn",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS CT VA0 GEN",53)':{tag:'(0021,"SIEMENS CT VA0 GEN",53)',vr:"IS",name:"VectorColumnStep",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS CT VA0 GEN",60)':{tag:'(0021,"SIEMENS CT VA0 GEN",60)',vr:"IS",name:"RangeTypeCode",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS CT VA0 GEN",62)':{tag:'(0021,"SIEMENS CT VA0 GEN",62)',vr:"IS",name:"ReferenceTypeCode",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS CT VA0 GEN",70)':{tag:'(0021,"SIEMENS CT VA0 GEN",70)',vr:"DS",name:"ObjectOrientation",vm:"3",version:"PrivateTag"},'(0021,"SIEMENS CT VA0 GEN",72)':{tag:'(0021,"SIEMENS CT VA0 GEN",72)',vr:"DS",name:"LightOrientation",vm:"3",version:"PrivateTag"},'(0021,"SIEMENS CT VA0 GEN",75)':{tag:'(0021,"SIEMENS CT VA0 GEN",75)',vr:"DS",name:"LightBrightness",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS CT VA0 GEN",76)':{tag:'(0021,"SIEMENS CT VA0 GEN",76)',vr:"DS",name:"LightContrast",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS CT VA0 GEN",7a)':{tag:'(0021,"SIEMENS CT VA0 GEN",7a)',vr:"IS",name:"OverlayThreshold",vm:"2",version:"PrivateTag"},'(0021,"SIEMENS CT VA0 GEN",7b)':{tag:'(0021,"SIEMENS CT VA0 GEN",7b)',vr:"IS",name:"SurfaceThreshold",vm:"2",version:"PrivateTag"},'(0021,"SIEMENS CT VA0 GEN",7c)':{tag:'(0021,"SIEMENS CT VA0 GEN",7c)',vr:"IS",name:"GreyScaleThreshold",vm:"2",version:"PrivateTag"},'(0021,"SIEMENS CT VA0 GEN",a0)':{tag:'(0021,"SIEMENS CT VA0 GEN",a0)',vr:"DS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS CT VA0 GEN",a2)':{tag:'(0021,"SIEMENS CT VA0 GEN",a2)',vr:"LT",name:"Unknown",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS CT VA0 GEN",a7)':{tag:'(0021,"SIEMENS CT VA0 GEN",a7)',vr:"LT",name:"Unknown",vm:"1",version:"PrivateTag"},'(0009,"SIEMENS CT VA0 IDE",10)':{tag:'(0009,"SIEMENS CT VA0 IDE",10)',vr:"LT",name:"Unknown",vm:"1",version:"PrivateTag"},'(0009,"SIEMENS CT VA0 IDE",30)':{tag:'(0009,"SIEMENS CT VA0 IDE",30)',vr:"LT",name:"Unknown",vm:"1",version:"PrivateTag"},'(0009,"SIEMENS CT VA0 IDE",31)':{tag:'(0009,"SIEMENS CT VA0 IDE",31)',vr:"LT",name:"Unknown",vm:"1",version:"PrivateTag"},'(0009,"SIEMENS CT VA0 IDE",32)':{tag:'(0009,"SIEMENS CT VA0 IDE",32)',vr:"LT",name:"Unknown",vm:"1",version:"PrivateTag"},'(0009,"SIEMENS CT VA0 IDE",34)':{tag:'(0009,"SIEMENS CT VA0 IDE",34)',vr:"LT",name:"Unknown",vm:"1",version:"PrivateTag"},'(0009,"SIEMENS CT VA0 IDE",40)':{tag:'(0009,"SIEMENS CT VA0 IDE",40)',vr:"LT",name:"Unknown",vm:"1",version:"PrivateTag"},'(0009,"SIEMENS CT VA0 IDE",42)':{tag:'(0009,"SIEMENS CT VA0 IDE",42)',vr:"LT",name:"Unknown",vm:"1",version:"PrivateTag"},'(0009,"SIEMENS CT VA0 IDE",50)':{tag:'(0009,"SIEMENS CT VA0 IDE",50)',vr:"LT",name:"Unknown",vm:"1",version:"PrivateTag"},'(0009,"SIEMENS CT VA0 IDE",51)':{tag:'(0009,"SIEMENS CT VA0 IDE",51)',vr:"LT",name:"Unknown",vm:"1",version:"PrivateTag"},'(0009,"SIEMENS CT VA0 ORI",20)':{tag:'(0009,"SIEMENS CT VA0 ORI",20)',vr:"LT",name:"Unknown",vm:"1",version:"PrivateTag"},'(0009,"SIEMENS CT VA0 ORI",30)':{tag:'(0009,"SIEMENS CT VA0 ORI",30)',vr:"LT",name:"Unknown",vm:"1",version:"PrivateTag"},'(6021,"SIEMENS CT VA0 OST",00)':{tag:'(6021,"SIEMENS CT VA0 OST",00)',vr:"LT",name:"OsteoContourComment",vm:"1",version:"PrivateTag"},'(6021,"SIEMENS CT VA0 OST",10)':{tag:'(6021,"SIEMENS CT VA0 OST",10)',vr:"US",name:"OsteoContourBuffer",vm:"256",version:"PrivateTag"},'(0021,"SIEMENS CT VA0 RAW",10)':{tag:'(0021,"SIEMENS CT VA0 RAW",10)',vr:"UL",name:"CreationMask",vm:"2",version:"PrivateTag"},'(0021,"SIEMENS CT VA0 RAW",20)':{tag:'(0021,"SIEMENS CT VA0 RAW",20)',vr:"UL",name:"EvaluationMask",vm:"2",version:"PrivateTag"},'(0021,"SIEMENS CT VA0 RAW",30)':{tag:'(0021,"SIEMENS CT VA0 RAW",30)',vr:"US",name:"ExtendedProcessingMask",vm:"7",version:"PrivateTag"},'(0021,"SIEMENS CT VA0 RAW",40)':{tag:'(0021,"SIEMENS CT VA0 RAW",40)',vr:"US",name:"Unknown",vm:"1-n",version:"PrivateTag"},'(0021,"SIEMENS CT VA0 RAW",41)':{tag:'(0021,"SIEMENS CT VA0 RAW",41)',vr:"US",name:"Unknown",vm:"1-n",version:"PrivateTag"},'(0021,"SIEMENS CT VA0 RAW",42)':{tag:'(0021,"SIEMENS CT VA0 RAW",42)',vr:"US",name:"Unknown",vm:"1-n",version:"PrivateTag"},'(0021,"SIEMENS CT VA0 RAW",43)':{tag:'(0021,"SIEMENS CT VA0 RAW",43)',vr:"US",name:"Unknown",vm:"1-n",version:"PrivateTag"},'(0021,"SIEMENS CT VA0 RAW",44)':{tag:'(0021,"SIEMENS CT VA0 RAW",44)',vr:"US",name:"Unknown",vm:"1-n",version:"PrivateTag"},'(0021,"SIEMENS CT VA0 RAW",50)':{tag:'(0021,"SIEMENS CT VA0 RAW",50)',vr:"LT",name:"Unknown",vm:"1",version:"PrivateTag"},'(0009,"SIEMENS DICOM",10)':{tag:'(0009,"SIEMENS DICOM",10)',vr:"UN",name:"Unknown",vm:"1",version:"PrivateTag"},'(0009,"SIEMENS DICOM",12)':{tag:'(0009,"SIEMENS DICOM",12)',vr:"LT",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS DLR.01",10)':{tag:'(0019,"SIEMENS DLR.01",10)',vr:"LT",name:"MeasurementMode",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS DLR.01",11)':{tag:'(0019,"SIEMENS DLR.01",11)',vr:"LT",name:"ImageType",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS DLR.01",15)':{tag:'(0019,"SIEMENS DLR.01",15)',vr:"LT",name:"SoftwareVersion",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS DLR.01",20)':{tag:'(0019,"SIEMENS DLR.01",20)',vr:"LT",name:"MPMCode",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS DLR.01",21)':{tag:'(0019,"SIEMENS DLR.01",21)',vr:"LT",name:"Latitude",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS DLR.01",22)':{tag:'(0019,"SIEMENS DLR.01",22)',vr:"LT",name:"Sensitivity",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS DLR.01",23)':{tag:'(0019,"SIEMENS DLR.01",23)',vr:"LT",name:"EDR",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS DLR.01",24)':{tag:'(0019,"SIEMENS DLR.01",24)',vr:"LT",name:"LFix",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS DLR.01",25)':{tag:'(0019,"SIEMENS DLR.01",25)',vr:"LT",name:"SFix",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS DLR.01",26)':{tag:'(0019,"SIEMENS DLR.01",26)',vr:"LT",name:"PresetMode",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS DLR.01",27)':{tag:'(0019,"SIEMENS DLR.01",27)',vr:"LT",name:"Region",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS DLR.01",28)':{tag:'(0019,"SIEMENS DLR.01",28)',vr:"LT",name:"Subregion",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS DLR.01",30)':{tag:'(0019,"SIEMENS DLR.01",30)',vr:"LT",name:"Orientation",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS DLR.01",31)':{tag:'(0019,"SIEMENS DLR.01",31)',vr:"LT",name:"MarkOnFilm",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS DLR.01",32)':{tag:'(0019,"SIEMENS DLR.01",32)',vr:"LT",name:"RotationOnDRC",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS DLR.01",40)':{tag:'(0019,"SIEMENS DLR.01",40)',vr:"LT",name:"ReaderType",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS DLR.01",41)':{tag:'(0019,"SIEMENS DLR.01",41)',vr:"LT",name:"SubModality",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS DLR.01",42)':{tag:'(0019,"SIEMENS DLR.01",42)',vr:"LT",name:"ReaderSerialNumber",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS DLR.01",50)':{tag:'(0019,"SIEMENS DLR.01",50)',vr:"LT",name:"CassetteScale",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS DLR.01",51)':{tag:'(0019,"SIEMENS DLR.01",51)',vr:"LT",name:"CassetteMatrix",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS DLR.01",52)':{tag:'(0019,"SIEMENS DLR.01",52)',vr:"LT",name:"CassetteSubmatrix",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS DLR.01",53)':{tag:'(0019,"SIEMENS DLR.01",53)',vr:"LT",name:"Barcode",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS DLR.01",60)':{tag:'(0019,"SIEMENS DLR.01",60)',vr:"LT",name:"ContrastType",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS DLR.01",61)':{tag:'(0019,"SIEMENS DLR.01",61)',vr:"LT",name:"RotationAmount",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS DLR.01",62)':{tag:'(0019,"SIEMENS DLR.01",62)',vr:"LT",name:"RotationCenter",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS DLR.01",63)':{tag:'(0019,"SIEMENS DLR.01",63)',vr:"LT",name:"DensityShift",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS DLR.01",64)':{tag:'(0019,"SIEMENS DLR.01",64)',vr:"US",name:"FrequencyRank",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS DLR.01",65)':{tag:'(0019,"SIEMENS DLR.01",65)',vr:"LT",name:"FrequencyEnhancement",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS DLR.01",66)':{tag:'(0019,"SIEMENS DLR.01",66)',vr:"LT",name:"FrequencyType",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS DLR.01",67)':{tag:'(0019,"SIEMENS DLR.01",67)',vr:"LT",name:"KernelLength",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS DLR.01",68)':{tag:'(0019,"SIEMENS DLR.01",68)',vr:"UL",name:"KernelMode",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS DLR.01",69)':{tag:'(0019,"SIEMENS DLR.01",69)',vr:"UL",name:"ConvolutionMode",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS DLR.01",70)':{tag:'(0019,"SIEMENS DLR.01",70)',vr:"LT",name:"PLASource",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS DLR.01",71)':{tag:'(0019,"SIEMENS DLR.01",71)',vr:"LT",name:"PLADestination",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS DLR.01",75)':{tag:'(0019,"SIEMENS DLR.01",75)',vr:"LT",name:"UIDOriginalImage",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS DLR.01",76)':{tag:'(0019,"SIEMENS DLR.01",76)',vr:"LT",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS DLR.01",80)':{tag:'(0019,"SIEMENS DLR.01",80)',vr:"LT",name:"ReaderHeader",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS DLR.01",90)':{tag:'(0019,"SIEMENS DLR.01",90)',vr:"LT",name:"PLAOfSecondaryDestination",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS DLR.01",a0)':{tag:'(0019,"SIEMENS DLR.01",a0)',vr:"DS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS DLR.01",a1)':{tag:'(0019,"SIEMENS DLR.01",a1)',vr:"DS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0041,"SIEMENS DLR.01",10)':{tag:'(0041,"SIEMENS DLR.01",10)',vr:"US",name:"NumberOfHardcopies",vm:"1",version:"PrivateTag"},'(0041,"SIEMENS DLR.01",20)':{tag:'(0041,"SIEMENS DLR.01",20)',vr:"LT",name:"FilmFormat",vm:"1",version:"PrivateTag"},'(0041,"SIEMENS DLR.01",30)':{tag:'(0041,"SIEMENS DLR.01",30)',vr:"LT",name:"FilmSize",vm:"1",version:"PrivateTag"},'(0041,"SIEMENS DLR.01",31)':{tag:'(0041,"SIEMENS DLR.01",31)',vr:"LT",name:"FullFilmFormat",vm:"1",version:"PrivateTag"},'(0003,"SIEMENS ISI",08)':{tag:'(0003,"SIEMENS ISI",08)',vr:"US",name:"ISICommandField",vm:"1",version:"PrivateTag"},'(0003,"SIEMENS ISI",11)':{tag:'(0003,"SIEMENS ISI",11)',vr:"US",name:"AttachIDApplicationCode",vm:"1",version:"PrivateTag"},'(0003,"SIEMENS ISI",12)':{tag:'(0003,"SIEMENS ISI",12)',vr:"UL",name:"AttachIDMessageCount",vm:"1",version:"PrivateTag"},'(0003,"SIEMENS ISI",13)':{tag:'(0003,"SIEMENS ISI",13)',vr:"DA",name:"AttachIDDate",vm:"1",version:"PrivateTag"},'(0003,"SIEMENS ISI",14)':{tag:'(0003,"SIEMENS ISI",14)',vr:"TM",name:"AttachIDTime",vm:"1",version:"PrivateTag"},'(0003,"SIEMENS ISI",20)':{tag:'(0003,"SIEMENS ISI",20)',vr:"US",name:"MessageType",vm:"1",version:"PrivateTag"},'(0003,"SIEMENS ISI",30)':{tag:'(0003,"SIEMENS ISI",30)',vr:"DA",name:"MaxWaitingDate",vm:"1",version:"PrivateTag"},'(0003,"SIEMENS ISI",31)':{tag:'(0003,"SIEMENS ISI",31)',vr:"TM",name:"MaxWaitingTime",vm:"1",version:"PrivateTag"},'(0009,"SIEMENS ISI",01)':{tag:'(0009,"SIEMENS ISI",01)',vr:"UN",name:"RISPatientInfoIMGEF",vm:"1",version:"PrivateTag"},'(0011,"SIEMENS ISI",03)':{tag:'(0011,"SIEMENS ISI",03)',vr:"LT",name:"PatientUID",vm:"1",version:"PrivateTag"},'(0011,"SIEMENS ISI",04)':{tag:'(0011,"SIEMENS ISI",04)',vr:"LT",name:"PatientID",vm:"1",version:"PrivateTag"},'(0011,"SIEMENS ISI",0a)':{tag:'(0011,"SIEMENS ISI",0a)',vr:"LT",name:"CaseID",vm:"1",version:"PrivateTag"},'(0011,"SIEMENS ISI",22)':{tag:'(0011,"SIEMENS ISI",22)',vr:"LT",name:"RequestID",vm:"1",version:"PrivateTag"},'(0011,"SIEMENS ISI",23)':{tag:'(0011,"SIEMENS ISI",23)',vr:"LT",name:"ExaminationUID",vm:"1",version:"PrivateTag"},'(0011,"SIEMENS ISI",a1)':{tag:'(0011,"SIEMENS ISI",a1)',vr:"DA",name:"PatientRegistrationDate",vm:"1",version:"PrivateTag"},'(0011,"SIEMENS ISI",a2)':{tag:'(0011,"SIEMENS ISI",a2)',vr:"TM",name:"PatientRegistrationTime",vm:"1",version:"PrivateTag"},'(0011,"SIEMENS ISI",b0)':{tag:'(0011,"SIEMENS ISI",b0)',vr:"LT",name:"PatientLastName",vm:"1",version:"PrivateTag"},'(0011,"SIEMENS ISI",b2)':{tag:'(0011,"SIEMENS ISI",b2)',vr:"LT",name:"PatientFirstName",vm:"1",version:"PrivateTag"},'(0011,"SIEMENS ISI",b4)':{tag:'(0011,"SIEMENS ISI",b4)',vr:"LT",name:"PatientHospitalStatus",vm:"1",version:"PrivateTag"},'(0011,"SIEMENS ISI",bc)':{tag:'(0011,"SIEMENS ISI",bc)',vr:"TM",name:"CurrentLocationTime",vm:"1",version:"PrivateTag"},'(0011,"SIEMENS ISI",c0)':{tag:'(0011,"SIEMENS ISI",c0)',vr:"LT",name:"PatientInsuranceStatus",vm:"1",version:"PrivateTag"},'(0011,"SIEMENS ISI",d0)':{tag:'(0011,"SIEMENS ISI",d0)',vr:"LT",name:"PatientBillingType",vm:"1",version:"PrivateTag"},'(0011,"SIEMENS ISI",d2)':{tag:'(0011,"SIEMENS ISI",d2)',vr:"LT",name:"PatientBillingAddress",vm:"1",version:"PrivateTag"},'(0031,"SIEMENS ISI",12)':{tag:'(0031,"SIEMENS ISI",12)',vr:"LT",name:"ExaminationReason",vm:"1",version:"PrivateTag"},'(0031,"SIEMENS ISI",30)':{tag:'(0031,"SIEMENS ISI",30)',vr:"DA",name:"RequestedDate",vm:"1",version:"PrivateTag"},'(0031,"SIEMENS ISI",32)':{tag:'(0031,"SIEMENS ISI",32)',vr:"TM",name:"WorklistRequestStartTime",vm:"1",version:"PrivateTag"},'(0031,"SIEMENS ISI",33)':{tag:'(0031,"SIEMENS ISI",33)',vr:"TM",name:"WorklistRequestEndTime",vm:"1",version:"PrivateTag"},'(0031,"SIEMENS ISI",4a)':{tag:'(0031,"SIEMENS ISI",4a)',vr:"TM",name:"RequestedTime",vm:"1",version:"PrivateTag"},'(0031,"SIEMENS ISI",80)':{tag:'(0031,"SIEMENS ISI",80)',vr:"LT",name:"RequestedLocation",vm:"1",version:"PrivateTag"},'(0055,"SIEMENS ISI",46)':{tag:'(0055,"SIEMENS ISI",46)',vr:"LT",name:"CurrentWard",vm:"1",version:"PrivateTag"},'(0193,"SIEMENS ISI",02)':{tag:'(0193,"SIEMENS ISI",02)',vr:"DS",name:"RISKey",vm:"1",version:"PrivateTag"},'(0307,"SIEMENS ISI",01)':{tag:'(0307,"SIEMENS ISI",01)',vr:"UN",name:"RISWorklistIMGEF",vm:"1",version:"PrivateTag"},'(0309,"SIEMENS ISI",01)':{tag:'(0309,"SIEMENS ISI",01)',vr:"UN",name:"RISReportIMGEF",vm:"1",version:"PrivateTag"},'(4009,"SIEMENS ISI",01)':{tag:'(4009,"SIEMENS ISI",01)',vr:"LT",name:"ReportID",vm:"1",version:"PrivateTag"},'(4009,"SIEMENS ISI",20)':{tag:'(4009,"SIEMENS ISI",20)',vr:"LT",name:"ReportStatus",vm:"1",version:"PrivateTag"},'(4009,"SIEMENS ISI",30)':{tag:'(4009,"SIEMENS ISI",30)',vr:"DA",name:"ReportCreationDate",vm:"1",version:"PrivateTag"},'(4009,"SIEMENS ISI",70)':{tag:'(4009,"SIEMENS ISI",70)',vr:"LT",name:"ReportApprovingPhysician",vm:"1",version:"PrivateTag"},'(4009,"SIEMENS ISI",e0)':{tag:'(4009,"SIEMENS ISI",e0)',vr:"LT",name:"ReportText",vm:"1",version:"PrivateTag"},'(4009,"SIEMENS ISI",e1)':{tag:'(4009,"SIEMENS ISI",e1)',vr:"LT",name:"ReportAuthor",vm:"1",version:"PrivateTag"},'(4009,"SIEMENS ISI",e3)':{tag:'(4009,"SIEMENS ISI",e3)',vr:"LT",name:"ReportingRadiologist",vm:"1",version:"PrivateTag"},'(0029,"SIEMENS MED DISPLAY",04)':{tag:'(0029,"SIEMENS MED DISPLAY",04)',vr:"LT",name:"PhotometricInterpretation",vm:"1",version:"PrivateTag"},'(0029,"SIEMENS MED DISPLAY",10)':{tag:'(0029,"SIEMENS MED DISPLAY",10)',vr:"US",name:"RowsOfSubmatrix",vm:"1",version:"PrivateTag"},'(0029,"SIEMENS MED DISPLAY",11)':{tag:'(0029,"SIEMENS MED DISPLAY",11)',vr:"US",name:"ColumnsOfSubmatrix",vm:"1",version:"PrivateTag"},'(0029,"SIEMENS MED DISPLAY",20)':{tag:'(0029,"SIEMENS MED DISPLAY",20)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0029,"SIEMENS MED DISPLAY",21)':{tag:'(0029,"SIEMENS MED DISPLAY",21)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0029,"SIEMENS MED DISPLAY",50)':{tag:'(0029,"SIEMENS MED DISPLAY",50)',vr:"US",name:"OriginOfSubmatrix",vm:"1",version:"PrivateTag"},'(0029,"SIEMENS MED DISPLAY",99)':{tag:'(0029,"SIEMENS MED DISPLAY",99)',vr:"LT",name:"ShutterType",vm:"1",version:"PrivateTag"},'(0029,"SIEMENS MED DISPLAY",a0)':{tag:'(0029,"SIEMENS MED DISPLAY",a0)',vr:"US",name:"RowsOfRectangularShutter",vm:"1",version:"PrivateTag"},'(0029,"SIEMENS MED DISPLAY",a1)':{tag:'(0029,"SIEMENS MED DISPLAY",a1)',vr:"US",name:"ColumnsOfRectangularShutter",vm:"1",version:"PrivateTag"},'(0029,"SIEMENS MED DISPLAY",a2)':{tag:'(0029,"SIEMENS MED DISPLAY",a2)',vr:"US",name:"OriginOfRectangularShutter",vm:"1",version:"PrivateTag"},'(0029,"SIEMENS MED DISPLAY",b0)':{tag:'(0029,"SIEMENS MED DISPLAY",b0)',vr:"US",name:"RadiusOfCircularShutter",vm:"1",version:"PrivateTag"},'(0029,"SIEMENS MED DISPLAY",b2)':{tag:'(0029,"SIEMENS MED DISPLAY",b2)',vr:"US",name:"OriginOfCircularShutter",vm:"1",version:"PrivateTag"},'(0029,"SIEMENS MED DISPLAY",c1)':{tag:'(0029,"SIEMENS MED DISPLAY",c1)',vr:"US",name:"ContourOfIrregularShutter",vm:"1",version:"PrivateTag"},'(0029,"SIEMENS MED HG",10)':{tag:'(0029,"SIEMENS MED HG",10)',vr:"US",name:"ListOfGroupNumbers",vm:"1",version:"PrivateTag"},'(0029,"SIEMENS MED HG",15)':{tag:'(0029,"SIEMENS MED HG",15)',vr:"LT",name:"ListOfShadowOwnerCodes",vm:"1",version:"PrivateTag"},'(0029,"SIEMENS MED HG",20)':{tag:'(0029,"SIEMENS MED HG",20)',vr:"US",name:"ListOfElementNumbers",vm:"1",version:"PrivateTag"},'(0029,"SIEMENS MED HG",30)':{tag:'(0029,"SIEMENS MED HG",30)',vr:"US",name:"ListOfTotalDisplayLength",vm:"1",version:"PrivateTag"},'(0029,"SIEMENS MED HG",40)':{tag:'(0029,"SIEMENS MED HG",40)',vr:"LT",name:"ListOfDisplayPrefix",vm:"1",version:"PrivateTag"},'(0029,"SIEMENS MED HG",50)':{tag:'(0029,"SIEMENS MED HG",50)',vr:"LT",name:"ListOfDisplayPostfix",vm:"1",version:"PrivateTag"},'(0029,"SIEMENS MED HG",60)':{tag:'(0029,"SIEMENS MED HG",60)',vr:"US",name:"ListOfTextPosition",vm:"1",version:"PrivateTag"},'(0029,"SIEMENS MED HG",70)':{tag:'(0029,"SIEMENS MED HG",70)',vr:"LT",name:"ListOfTextConcatenation",vm:"1",version:"PrivateTag"},'(0029,"SIEMENS MED MG",10)':{tag:'(0029,"SIEMENS MED MG",10)',vr:"US",name:"ListOfGroupNumbers",vm:"1",version:"PrivateTag"},'(0029,"SIEMENS MED MG",15)':{tag:'(0029,"SIEMENS MED MG",15)',vr:"LT",name:"ListOfShadowOwnerCodes",vm:"1",version:"PrivateTag"},'(0029,"SIEMENS MED MG",20)':{tag:'(0029,"SIEMENS MED MG",20)',vr:"US",name:"ListOfElementNumbers",vm:"1",version:"PrivateTag"},'(0029,"SIEMENS MED MG",30)':{tag:'(0029,"SIEMENS MED MG",30)',vr:"US",name:"ListOfTotalDisplayLength",vm:"1",version:"PrivateTag"},'(0029,"SIEMENS MED MG",40)':{tag:'(0029,"SIEMENS MED MG",40)',vr:"LT",name:"ListOfDisplayPrefix",vm:"1",version:"PrivateTag"},'(0029,"SIEMENS MED MG",50)':{tag:'(0029,"SIEMENS MED MG",50)',vr:"LT",name:"ListOfDisplayPostfix",vm:"1",version:"PrivateTag"},'(0029,"SIEMENS MED MG",60)':{tag:'(0029,"SIEMENS MED MG",60)',vr:"US",name:"ListOfTextPosition",vm:"1",version:"PrivateTag"},'(0029,"SIEMENS MED MG",70)':{tag:'(0029,"SIEMENS MED MG",70)',vr:"LT",name:"ListOfTextConcatenation",vm:"1",version:"PrivateTag"},'(0009,"SIEMENS MED",10)':{tag:'(0009,"SIEMENS MED",10)',vr:"LO",name:"RecognitionCode",vm:"1",version:"PrivateTag"},'(0009,"SIEMENS MED",30)':{tag:'(0009,"SIEMENS MED",30)',vr:"UL",name:"ByteOffsetOfOriginalHeader",vm:"1",version:"PrivateTag"},'(0009,"SIEMENS MED",31)':{tag:'(0009,"SIEMENS MED",31)',vr:"UL",name:"LengthOfOriginalHeader",vm:"1",version:"PrivateTag"},'(0009,"SIEMENS MED",40)':{tag:'(0009,"SIEMENS MED",40)',vr:"UL",name:"ByteOffsetOfPixelmatrix",vm:"1",version:"PrivateTag"},'(0009,"SIEMENS MED",41)':{tag:'(0009,"SIEMENS MED",41)',vr:"UL",name:"LengthOfPixelmatrixInBytes",vm:"1",version:"PrivateTag"},'(0009,"SIEMENS MED",50)':{tag:'(0009,"SIEMENS MED",50)',vr:"LT",name:"Unknown",vm:"1",version:"PrivateTag"},'(0009,"SIEMENS MED",51)':{tag:'(0009,"SIEMENS MED",51)',vr:"LT",name:"Unknown",vm:"1",version:"PrivateTag"},'(0009,"SIEMENS MED",f5)':{tag:'(0009,"SIEMENS MED",f5)',vr:"LT",name:"PDMEFIDPlaceholder",vm:"1",version:"PrivateTag"},'(0009,"SIEMENS MED",f6)':{tag:'(0009,"SIEMENS MED",f6)',vr:"LT",name:"PDMDataObjectTypeExtension",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS MED",10)':{tag:'(0021,"SIEMENS MED",10)',vr:"DS",name:"Zoom",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS MED",11)':{tag:'(0021,"SIEMENS MED",11)',vr:"DS",name:"Target",vm:"2",version:"PrivateTag"},'(0021,"SIEMENS MED",12)':{tag:'(0021,"SIEMENS MED",12)',vr:"IS",name:"TubeAngle",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS MED",20)':{tag:'(0021,"SIEMENS MED",20)',vr:"US",name:"ROIMask",vm:"1",version:"PrivateTag"},'(7001,"SIEMENS MED",10)':{tag:'(7001,"SIEMENS MED",10)',vr:"LT",name:"Dummy",vm:"1",version:"PrivateTag"},'(7003,"SIEMENS MED",10)':{tag:'(7003,"SIEMENS MED",10)',vr:"LT",name:"Header",vm:"1",version:"PrivateTag"},'(7005,"SIEMENS MED",10)':{tag:'(7005,"SIEMENS MED",10)',vr:"LT",name:"Dummy",vm:"1",version:"PrivateTag"},'(0029,"SIEMENS MEDCOM HEADER",08)':{tag:'(0029,"SIEMENS MEDCOM HEADER",08)',vr:"CS",name:"MedComHeaderType",vm:"1",version:"PrivateTag"},'(0029,"SIEMENS MEDCOM HEADER",09)':{tag:'(0029,"SIEMENS MEDCOM HEADER",09)',vr:"LO",name:"MedComHeaderVersion",vm:"1",version:"PrivateTag"},'(0029,"SIEMENS MEDCOM HEADER",10)':{tag:'(0029,"SIEMENS MEDCOM HEADER",10)',vr:"OB",name:"MedComHeaderInfo",vm:"1",version:"PrivateTag"},'(0029,"SIEMENS MEDCOM HEADER",20)':{tag:'(0029,"SIEMENS MEDCOM HEADER",20)',vr:"OB",name:"MedComHistoryInformation",vm:"1",version:"PrivateTag"},'(0029,"SIEMENS MEDCOM HEADER",31)':{tag:'(0029,"SIEMENS MEDCOM HEADER",31)',vr:"LO",name:"PMTFInformation1",vm:"1",version:"PrivateTag"},'(0029,"SIEMENS MEDCOM HEADER",32)':{tag:'(0029,"SIEMENS MEDCOM HEADER",32)',vr:"UL",name:"PMTFInformation2",vm:"1",version:"PrivateTag"},'(0029,"SIEMENS MEDCOM HEADER",33)':{tag:'(0029,"SIEMENS MEDCOM HEADER",33)',vr:"UL",name:"PMTFInformation3",vm:"1",version:"PrivateTag"},'(0029,"SIEMENS MEDCOM HEADER",34)':{tag:'(0029,"SIEMENS MEDCOM HEADER",34)',vr:"CS",name:"PMTFInformation4",vm:"1",version:"PrivateTag"},'(0029,"SIEMENS MEDCOM HEADER",35)':{tag:'(0029,"SIEMENS MEDCOM HEADER",35)',vr:"UL",name:"PMTFInformation5",vm:"1",version:"PrivateTag"},'(0029,"SIEMENS MEDCOM HEADER",40)':{tag:'(0029,"SIEMENS MEDCOM HEADER",40)',vr:"SQ",name:"ApplicationHeaderSequence",vm:"1",version:"PrivateTag"},'(0029,"SIEMENS MEDCOM HEADER",41)':{tag:'(0029,"SIEMENS MEDCOM HEADER",41)',vr:"CS",name:"ApplicationHeaderType",vm:"1",version:"PrivateTag"},'(0029,"SIEMENS MEDCOM HEADER",42)':{tag:'(0029,"SIEMENS MEDCOM HEADER",42)',vr:"LO",name:"ApplicationHeaderID",vm:"1",version:"PrivateTag"},'(0029,"SIEMENS MEDCOM HEADER",43)':{tag:'(0029,"SIEMENS MEDCOM HEADER",43)',vr:"LO",name:"ApplicationHeaderVersion",vm:"1",version:"PrivateTag"},'(0029,"SIEMENS MEDCOM HEADER",44)':{tag:'(0029,"SIEMENS MEDCOM HEADER",44)',vr:"OB",name:"ApplicationHeaderInfo",vm:"1",version:"PrivateTag"},'(0029,"SIEMENS MEDCOM HEADER",50)':{tag:'(0029,"SIEMENS MEDCOM HEADER",50)',vr:"LO",name:"WorkflowControlFlags",vm:"8",version:"PrivateTag"},'(0029,"SIEMENS MEDCOM HEADER",51)':{tag:'(0029,"SIEMENS MEDCOM HEADER",51)',vr:"CS",name:"ArchiveManagementFlagKeepOnline",vm:"1",version:"PrivateTag"},'(0029,"SIEMENS MEDCOM HEADER",52)':{tag:'(0029,"SIEMENS MEDCOM HEADER",52)',vr:"CS",name:"ArchiveManagementFlagDoNotArchive",vm:"1",version:"PrivateTag"},'(0029,"SIEMENS MEDCOM HEADER",53)':{tag:'(0029,"SIEMENS MEDCOM HEADER",53)',vr:"CS",name:"ImageLocationStatus",vm:"1",version:"PrivateTag"},'(0029,"SIEMENS MEDCOM HEADER",54)':{tag:'(0029,"SIEMENS MEDCOM HEADER",54)',vr:"DS",name:"EstimatedRetrieveTime",vm:"1",version:"PrivateTag"},'(0029,"SIEMENS MEDCOM HEADER",55)':{tag:'(0029,"SIEMENS MEDCOM HEADER",55)',vr:"DS",name:"DataSizeOfRetrievedImages",vm:"1",version:"PrivateTag"},'(0029,"SIEMENS MEDCOM HEADER",70)':{tag:'(0029,"SIEMENS MEDCOM HEADER",70)',vr:"SQ",name:"SiemensLinkSequence",vm:"1",version:"PrivateTag"},'(0029,"SIEMENS MEDCOM HEADER",71)':{tag:'(0029,"SIEMENS MEDCOM HEADER",71)',vr:"AT",name:"ReferencedTag",vm:"1",version:"PrivateTag"},'(0029,"SIEMENS MEDCOM HEADER",72)':{tag:'(0029,"SIEMENS MEDCOM HEADER",72)',vr:"CS",name:"ReferencedTagType",vm:"1",version:"PrivateTag"},'(0029,"SIEMENS MEDCOM HEADER",73)':{tag:'(0029,"SIEMENS MEDCOM HEADER",73)',vr:"UL",name:"ReferencedValueLength",vm:"1",version:"PrivateTag"},'(0029,"SIEMENS MEDCOM HEADER",74)':{tag:'(0029,"SIEMENS MEDCOM HEADER",74)',vr:"CS",name:"ReferencedObjectDeviceType",vm:"1",version:"PrivateTag"},'(0029,"SIEMENS MEDCOM HEADER",75)':{tag:'(0029,"SIEMENS MEDCOM HEADER",75)',vr:"OB",name:"ReferencedObjectDeviceLocation",vm:"1",version:"PrivateTag"},'(0029,"SIEMENS MEDCOM HEADER",76)':{tag:'(0029,"SIEMENS MEDCOM HEADER",76)',vr:"OB",name:"ReferencedObjectDeviceID",vm:"1",version:"PrivateTag"},'(0029,"SIEMENS MEDCOM HEADER2",60)':{tag:'(0029,"SIEMENS MEDCOM HEADER2",60)',vr:"LO",name:"SeriesWorkflowStatus",vm:"1",version:"PrivateTag"},'(0029,"SIEMENS MEDCOM OOG",08)':{tag:'(0029,"SIEMENS MEDCOM OOG",08)',vr:"CS",name:"MEDCOMOOGType",vm:"1",version:"PrivateTag"},'(0029,"SIEMENS MEDCOM OOG",09)':{tag:'(0029,"SIEMENS MEDCOM OOG",09)',vr:"LO",name:"MEDCOMOOGVersion",vm:"1",version:"PrivateTag"},'(0029,"SIEMENS MEDCOM OOG",10)':{tag:'(0029,"SIEMENS MEDCOM OOG",10)',vr:"OB",name:"MEDCOMOOGInfo",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS MR VA0 COAD",12)':{tag:'(0019,"SIEMENS MR VA0 COAD",12)',vr:"DS",name:"MagneticFieldStrength",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS MR VA0 COAD",14)':{tag:'(0019,"SIEMENS MR VA0 COAD",14)',vr:"DS",name:"ADCVoltage",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS MR VA0 COAD",16)':{tag:'(0019,"SIEMENS MR VA0 COAD",16)',vr:"DS",name:"ADCOffset",vm:"2",version:"PrivateTag"},'(0019,"SIEMENS MR VA0 COAD",20)':{tag:'(0019,"SIEMENS MR VA0 COAD",20)',vr:"DS",name:"TransmitterAmplitude",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS MR VA0 COAD",21)':{tag:'(0019,"SIEMENS MR VA0 COAD",21)',vr:"IS",name:"NumberOfTransmitterAmplitudes",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS MR VA0 COAD",22)':{tag:'(0019,"SIEMENS MR VA0 COAD",22)',vr:"DS",name:"TransmitterAttenuator",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS MR VA0 COAD",24)':{tag:'(0019,"SIEMENS MR VA0 COAD",24)',vr:"DS",name:"TransmitterCalibration",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS MR VA0 COAD",26)':{tag:'(0019,"SIEMENS MR VA0 COAD",26)',vr:"DS",name:"TransmitterReference",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS MR VA0 COAD",50)':{tag:'(0019,"SIEMENS MR VA0 COAD",50)',vr:"DS",name:"ReceiverTotalGain",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS MR VA0 COAD",51)':{tag:'(0019,"SIEMENS MR VA0 COAD",51)',vr:"DS",name:"ReceiverAmplifierGain",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS MR VA0 COAD",52)':{tag:'(0019,"SIEMENS MR VA0 COAD",52)',vr:"DS",name:"ReceiverPreamplifierGain",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS MR VA0 COAD",54)':{tag:'(0019,"SIEMENS MR VA0 COAD",54)',vr:"DS",name:"ReceiverCableAttenuation",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS MR VA0 COAD",55)':{tag:'(0019,"SIEMENS MR VA0 COAD",55)',vr:"DS",name:"ReceiverReferenceGain",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS MR VA0 COAD",56)':{tag:'(0019,"SIEMENS MR VA0 COAD",56)',vr:"DS",name:"ReceiverFilterFrequency",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS MR VA0 COAD",60)':{tag:'(0019,"SIEMENS MR VA0 COAD",60)',vr:"DS",name:"ReconstructionScaleFactor",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS MR VA0 COAD",62)':{tag:'(0019,"SIEMENS MR VA0 COAD",62)',vr:"DS",name:"ReferenceScaleFactor",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS MR VA0 COAD",70)':{tag:'(0019,"SIEMENS MR VA0 COAD",70)',vr:"DS",name:"PhaseGradientAmplitude",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS MR VA0 COAD",71)':{tag:'(0019,"SIEMENS MR VA0 COAD",71)',vr:"DS",name:"ReadoutGradientAmplitude",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS MR VA0 COAD",72)':{tag:'(0019,"SIEMENS MR VA0 COAD",72)',vr:"DS",name:"SelectionGradientAmplitude",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS MR VA0 COAD",80)':{tag:'(0019,"SIEMENS MR VA0 COAD",80)',vr:"DS",name:"GradientDelayTime",vm:"3",version:"PrivateTag"},'(0019,"SIEMENS MR VA0 COAD",82)':{tag:'(0019,"SIEMENS MR VA0 COAD",82)',vr:"DS",name:"TotalGradientDelayTime",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS MR VA0 COAD",90)':{tag:'(0019,"SIEMENS MR VA0 COAD",90)',vr:"LT",name:"SensitivityCorrectionLabel",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS MR VA0 COAD",91)':{tag:'(0019,"SIEMENS MR VA0 COAD",91)',vr:"DS",name:"SaturationPhaseEncodingVectorCoronalComponent",vm:"6",version:"PrivateTag"},'(0019,"SIEMENS MR VA0 COAD",92)':{tag:'(0019,"SIEMENS MR VA0 COAD",92)',vr:"DS",name:"SaturationReadoutVectorCoronalComponent",vm:"6",version:"PrivateTag"},'(0019,"SIEMENS MR VA0 COAD",a0)':{tag:'(0019,"SIEMENS MR VA0 COAD",a0)',vr:"US",name:"RFWatchdogMask",vm:"3",version:"PrivateTag"},'(0019,"SIEMENS MR VA0 COAD",a1)':{tag:'(0019,"SIEMENS MR VA0 COAD",a1)',vr:"DS",name:"EPIReconstructionSlope",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS MR VA0 COAD",a2)':{tag:'(0019,"SIEMENS MR VA0 COAD",a2)',vr:"DS",name:"RFPowerErrorIndicator",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS MR VA0 COAD",a5)':{tag:'(0019,"SIEMENS MR VA0 COAD",a5)',vr:"DS",name:"SpecificAbsorptionRateWholeBody",vm:"3",version:"PrivateTag"},'(0019,"SIEMENS MR VA0 COAD",a6)':{tag:'(0019,"SIEMENS MR VA0 COAD",a6)',vr:"DS",name:"SpecificEnergyDose",vm:"3",version:"PrivateTag"},'(0019,"SIEMENS MR VA0 COAD",b0)':{tag:'(0019,"SIEMENS MR VA0 COAD",b0)',vr:"UL",name:"AdjustmentStatusMask",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS MR VA0 COAD",c1)':{tag:'(0019,"SIEMENS MR VA0 COAD",c1)',vr:"DS",name:"EPICapacity",vm:"6",version:"PrivateTag"},'(0019,"SIEMENS MR VA0 COAD",c2)':{tag:'(0019,"SIEMENS MR VA0 COAD",c2)',vr:"DS",name:"EPIInductance",vm:"3",version:"PrivateTag"},'(0019,"SIEMENS MR VA0 COAD",c3)':{tag:'(0019,"SIEMENS MR VA0 COAD",c3)',vr:"IS",name:"EPISwitchConfigurationCode",vm:"1-n",version:"PrivateTag"},'(0019,"SIEMENS MR VA0 COAD",c4)':{tag:'(0019,"SIEMENS MR VA0 COAD",c4)',vr:"IS",name:"EPISwitchHardwareCode",vm:"1-n",version:"PrivateTag"},'(0019,"SIEMENS MR VA0 COAD",c5)':{tag:'(0019,"SIEMENS MR VA0 COAD",c5)',vr:"DS",name:"EPISwitchDelayTime",vm:"1-n",version:"PrivateTag"},'(0019,"SIEMENS MR VA0 COAD",d1)':{tag:'(0019,"SIEMENS MR VA0 COAD",d1)',vr:"DS",name:"FlowSensitivity",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS MR VA0 COAD",d2)':{tag:'(0019,"SIEMENS MR VA0 COAD",d2)',vr:"LT",name:"CalculationSubmode",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS MR VA0 COAD",d3)':{tag:'(0019,"SIEMENS MR VA0 COAD",d3)',vr:"DS",name:"FieldOfViewRatio",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS MR VA0 COAD",d4)':{tag:'(0019,"SIEMENS MR VA0 COAD",d4)',vr:"IS",name:"BaseRawMatrixSize",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS MR VA0 COAD",d5)':{tag:'(0019,"SIEMENS MR VA0 COAD",d5)',vr:"IS",name:"2DOversamplingLines",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS MR VA0 COAD",d6)':{tag:'(0019,"SIEMENS MR VA0 COAD",d6)',vr:"IS",name:"3DPhaseOversamplingPartitions",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS MR VA0 COAD",d7)':{tag:'(0019,"SIEMENS MR VA0 COAD",d7)',vr:"IS",name:"EchoLinePosition",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS MR VA0 COAD",d8)':{tag:'(0019,"SIEMENS MR VA0 COAD",d8)',vr:"IS",name:"EchoColumnPosition",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS MR VA0 COAD",d9)':{tag:'(0019,"SIEMENS MR VA0 COAD",d9)',vr:"IS",name:"LinesPerSegment",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS MR VA0 COAD",da)':{tag:'(0019,"SIEMENS MR VA0 COAD",da)',vr:"LT",name:"PhaseCodingDirection",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS MR VA0 GEN",10)':{tag:'(0019,"SIEMENS MR VA0 GEN",10)',vr:"DS",name:"TotalMeasurementTimeNominal",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS MR VA0 GEN",11)':{tag:'(0019,"SIEMENS MR VA0 GEN",11)',vr:"DS",name:"TotalMeasurementTimeCurrent",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS MR VA0 GEN",12)':{tag:'(0019,"SIEMENS MR VA0 GEN",12)',vr:"DS",name:"StartDelayTime",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS MR VA0 GEN",13)':{tag:'(0019,"SIEMENS MR VA0 GEN",13)',vr:"DS",name:"DwellTime",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS MR VA0 GEN",14)':{tag:'(0019,"SIEMENS MR VA0 GEN",14)',vr:"IS",name:"NumberOfPhases",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS MR VA0 GEN",16)':{tag:'(0019,"SIEMENS MR VA0 GEN",16)',vr:"UL",name:"SequenceControlMask",vm:"2",version:"PrivateTag"},'(0019,"SIEMENS MR VA0 GEN",18)':{tag:'(0019,"SIEMENS MR VA0 GEN",18)',vr:"UL",name:"MeasurementStatusMask",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS MR VA0 GEN",20)':{tag:'(0019,"SIEMENS MR VA0 GEN",20)',vr:"IS",name:"NumberOfFourierLinesNominal",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS MR VA0 GEN",21)':{tag:'(0019,"SIEMENS MR VA0 GEN",21)',vr:"IS",name:"NumberOfFourierLinesCurrent",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS MR VA0 GEN",26)':{tag:'(0019,"SIEMENS MR VA0 GEN",26)',vr:"IS",name:"NumberOfFourierLinesAfterZero",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS MR VA0 GEN",28)':{tag:'(0019,"SIEMENS MR VA0 GEN",28)',vr:"IS",name:"FirstMeasuredFourierLine",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS MR VA0 GEN",30)':{tag:'(0019,"SIEMENS MR VA0 GEN",30)',vr:"IS",name:"AcquisitionColumns",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS MR VA0 GEN",31)':{tag:'(0019,"SIEMENS MR VA0 GEN",31)',vr:"IS",name:"ReconstructionColumns",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS MR VA0 GEN",40)':{tag:'(0019,"SIEMENS MR VA0 GEN",40)',vr:"IS",name:"ArrayCoilElementNumber",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS MR VA0 GEN",41)':{tag:'(0019,"SIEMENS MR VA0 GEN",41)',vr:"UL",name:"ArrayCoilElementSelectMask",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS MR VA0 GEN",42)':{tag:'(0019,"SIEMENS MR VA0 GEN",42)',vr:"UL",name:"ArrayCoilElementDataMask",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS MR VA0 GEN",43)':{tag:'(0019,"SIEMENS MR VA0 GEN",43)',vr:"IS",name:"ArrayCoilElementToADCConnect",vm:"1-n",version:"PrivateTag"},'(0019,"SIEMENS MR VA0 GEN",44)':{tag:'(0019,"SIEMENS MR VA0 GEN",44)',vr:"DS",name:"ArrayCoilElementNoiseLevel",vm:"1-n",version:"PrivateTag"},'(0019,"SIEMENS MR VA0 GEN",45)':{tag:'(0019,"SIEMENS MR VA0 GEN",45)',vr:"IS",name:"ArrayCoilADCPairNumber",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS MR VA0 GEN",46)':{tag:'(0019,"SIEMENS MR VA0 GEN",46)',vr:"UL",name:"ArrayCoilCombinationMask",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS MR VA0 GEN",50)':{tag:'(0019,"SIEMENS MR VA0 GEN",50)',vr:"IS",name:"NumberOfAverages",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS MR VA0 GEN",60)':{tag:'(0019,"SIEMENS MR VA0 GEN",60)',vr:"DS",name:"FlipAngle",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS MR VA0 GEN",70)':{tag:'(0019,"SIEMENS MR VA0 GEN",70)',vr:"IS",name:"NumberOfPrescans",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS MR VA0 GEN",81)':{tag:'(0019,"SIEMENS MR VA0 GEN",81)',vr:"LT",name:"FilterTypeForRawData",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS MR VA0 GEN",82)':{tag:'(0019,"SIEMENS MR VA0 GEN",82)',vr:"DS",name:"FilterParameterForRawData",vm:"1-n",version:"PrivateTag"},'(0019,"SIEMENS MR VA0 GEN",83)':{tag:'(0019,"SIEMENS MR VA0 GEN",83)',vr:"LT",name:"FilterTypeForImageData",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS MR VA0 GEN",84)':{tag:'(0019,"SIEMENS MR VA0 GEN",84)',vr:"DS",name:"FilterParameterForImageData",vm:"1-n",version:"PrivateTag"},'(0019,"SIEMENS MR VA0 GEN",85)':{tag:'(0019,"SIEMENS MR VA0 GEN",85)',vr:"LT",name:"FilterTypeForPhaseCorrection",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS MR VA0 GEN",86)':{tag:'(0019,"SIEMENS MR VA0 GEN",86)',vr:"DS",name:"FilterParameterForPhaseCorrection",vm:"1-n",version:"PrivateTag"},'(0019,"SIEMENS MR VA0 GEN",87)':{tag:'(0019,"SIEMENS MR VA0 GEN",87)',vr:"LT",name:"NormalizationFilterTypeForImageData",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS MR VA0 GEN",88)':{tag:'(0019,"SIEMENS MR VA0 GEN",88)',vr:"DS",name:"NormalizationFilterParameterForImageData",vm:"1-n",version:"PrivateTag"},'(0019,"SIEMENS MR VA0 GEN",90)':{tag:'(0019,"SIEMENS MR VA0 GEN",90)',vr:"IS",name:"NumberOfSaturationRegions",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS MR VA0 GEN",91)':{tag:'(0019,"SIEMENS MR VA0 GEN",91)',vr:"DS",name:"SaturationPhaseEncodingVectorSagittalComponent",vm:"6",version:"PrivateTag"},'(0019,"SIEMENS MR VA0 GEN",92)':{tag:'(0019,"SIEMENS MR VA0 GEN",92)',vr:"DS",name:"SaturationReadoutVectorSagittalComponent",vm:"6",version:"PrivateTag"},'(0019,"SIEMENS MR VA0 GEN",93)':{tag:'(0019,"SIEMENS MR VA0 GEN",93)',vr:"DS",name:"EPIStimulationMonitorMode",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS MR VA0 GEN",94)':{tag:'(0019,"SIEMENS MR VA0 GEN",94)',vr:"DS",name:"ImageRotationAngle",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS MR VA0 GEN",96)':{tag:'(0019,"SIEMENS MR VA0 GEN",96)',vr:"UL",name:"CoilIDMask",vm:"3",version:"PrivateTag"},'(0019,"SIEMENS MR VA0 GEN",97)':{tag:'(0019,"SIEMENS MR VA0 GEN",97)',vr:"UL",name:"CoilClassMask",vm:"2",version:"PrivateTag"},'(0019,"SIEMENS MR VA0 GEN",98)':{tag:'(0019,"SIEMENS MR VA0 GEN",98)',vr:"DS",name:"CoilPosition",vm:"3",version:"PrivateTag"},'(0019,"SIEMENS MR VA0 GEN",a0)':{tag:'(0019,"SIEMENS MR VA0 GEN",a0)',vr:"DS",name:"EPIReconstructionPhase",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS MR VA0 GEN",a1)':{tag:'(0019,"SIEMENS MR VA0 GEN",a1)',vr:"DS",name:"EPIReconstructionSlope",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS MR VA0 GEN",20)':{tag:'(0021,"SIEMENS MR VA0 GEN",20)',vr:"IS",name:"PhaseCorrectionRowsSequence",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS MR VA0 GEN",21)':{tag:'(0021,"SIEMENS MR VA0 GEN",21)',vr:"IS",name:"PhaseCorrectionColumnsSequence",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS MR VA0 GEN",22)':{tag:'(0021,"SIEMENS MR VA0 GEN",22)',vr:"IS",name:"PhaseCorrectionRowsReconstruction",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS MR VA0 GEN",24)':{tag:'(0021,"SIEMENS MR VA0 GEN",24)',vr:"IS",name:"PhaseCorrectionColumnsReconstruction",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS MR VA0 GEN",30)':{tag:'(0021,"SIEMENS MR VA0 GEN",30)',vr:"IS",name:"NumberOf3DRawPartitionsNominal",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS MR VA0 GEN",31)':{tag:'(0021,"SIEMENS MR VA0 GEN",31)',vr:"IS",name:"NumberOf3DRawPartitionsCurrent",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS MR VA0 GEN",34)':{tag:'(0021,"SIEMENS MR VA0 GEN",34)',vr:"IS",name:"NumberOf3DImagePartitions",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS MR VA0 GEN",36)':{tag:'(0021,"SIEMENS MR VA0 GEN",36)',vr:"IS",name:"Actual3DImagePartitionNumber",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS MR VA0 GEN",39)':{tag:'(0021,"SIEMENS MR VA0 GEN",39)',vr:"DS",name:"SlabThickness",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS MR VA0 GEN",40)':{tag:'(0021,"SIEMENS MR VA0 GEN",40)',vr:"IS",name:"NumberOfSlicesNominal",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS MR VA0 GEN",41)':{tag:'(0021,"SIEMENS MR VA0 GEN",41)',vr:"IS",name:"NumberOfSlicesCurrent",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS MR VA0 GEN",42)':{tag:'(0021,"SIEMENS MR VA0 GEN",42)',vr:"IS",name:"CurrentSliceNumber",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS MR VA0 GEN",43)':{tag:'(0021,"SIEMENS MR VA0 GEN",43)',vr:"IS",name:"CurrentGroupNumber",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS MR VA0 GEN",44)':{tag:'(0021,"SIEMENS MR VA0 GEN",44)',vr:"DS",name:"CurrentSliceDistanceFactor",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS MR VA0 GEN",45)':{tag:'(0021,"SIEMENS MR VA0 GEN",45)',vr:"IS",name:"MIPStartRow",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS MR VA0 GEN",46)':{tag:'(0021,"SIEMENS MR VA0 GEN",46)',vr:"IS",name:"MIPStopRow",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS MR VA0 GEN",47)':{tag:'(0021,"SIEMENS MR VA0 GEN",47)',vr:"IS",name:"MIPStartColumn",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS MR VA0 GEN",48)':{tag:'(0021,"SIEMENS MR VA0 GEN",48)',vr:"IS",name:"MIPStartColumn",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS MR VA0 GEN",49)':{tag:'(0021,"SIEMENS MR VA0 GEN",49)',vr:"IS",name:"MIPStartSlice Name=",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS MR VA0 GEN",4a)':{tag:'(0021,"SIEMENS MR VA0 GEN",4a)',vr:"IS",name:"MIPStartSlice",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS MR VA0 GEN",4f)':{tag:'(0021,"SIEMENS MR VA0 GEN",4f)',vr:"LT",name:"OrderofSlices",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS MR VA0 GEN",50)':{tag:'(0021,"SIEMENS MR VA0 GEN",50)',vr:"US",name:"SignalMask",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS MR VA0 GEN",52)':{tag:'(0021,"SIEMENS MR VA0 GEN",52)',vr:"DS",name:"DelayAfterTrigger",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS MR VA0 GEN",53)':{tag:'(0021,"SIEMENS MR VA0 GEN",53)',vr:"IS",name:"RRInterval",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS MR VA0 GEN",54)':{tag:'(0021,"SIEMENS MR VA0 GEN",54)',vr:"DS",name:"NumberOfTriggerPulses",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS MR VA0 GEN",56)':{tag:'(0021,"SIEMENS MR VA0 GEN",56)',vr:"DS",name:"RepetitionTimeEffective",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS MR VA0 GEN",57)':{tag:'(0021,"SIEMENS MR VA0 GEN",57)',vr:"LT",name:"GatePhase",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS MR VA0 GEN",58)':{tag:'(0021,"SIEMENS MR VA0 GEN",58)',vr:"DS",name:"GateThreshold",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS MR VA0 GEN",59)':{tag:'(0021,"SIEMENS MR VA0 GEN",59)',vr:"DS",name:"GatedRatio",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS MR VA0 GEN",60)':{tag:'(0021,"SIEMENS MR VA0 GEN",60)',vr:"IS",name:"NumberOfInterpolatedImages",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS MR VA0 GEN",70)':{tag:'(0021,"SIEMENS MR VA0 GEN",70)',vr:"IS",name:"NumberOfEchoes",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS MR VA0 GEN",72)':{tag:'(0021,"SIEMENS MR VA0 GEN",72)',vr:"DS",name:"SecondEchoTime",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS MR VA0 GEN",73)':{tag:'(0021,"SIEMENS MR VA0 GEN",73)',vr:"DS",name:"SecondRepetitionTime",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS MR VA0 GEN",80)':{tag:'(0021,"SIEMENS MR VA0 GEN",80)',vr:"IS",name:"CardiacCode",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS MR VA0 GEN",91)':{tag:'(0021,"SIEMENS MR VA0 GEN",91)',vr:"DS",name:"SaturationPhaseEncodingVectorTransverseComponent",vm:"6",version:"PrivateTag"},'(0021,"SIEMENS MR VA0 GEN",92)':{tag:'(0021,"SIEMENS MR VA0 GEN",92)',vr:"DS",name:"SaturationReadoutVectorTransverseComponent",vm:"6",version:"PrivateTag"},'(0021,"SIEMENS MR VA0 GEN",93)':{tag:'(0021,"SIEMENS MR VA0 GEN",93)',vr:"DS",name:"EPIChangeValueOfMagnitude",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS MR VA0 GEN",94)':{tag:'(0021,"SIEMENS MR VA0 GEN",94)',vr:"DS",name:"EPIChangeValueOfXComponent",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS MR VA0 GEN",95)':{tag:'(0021,"SIEMENS MR VA0 GEN",95)',vr:"DS",name:"EPIChangeValueOfYComponent",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS MR VA0 GEN",96)':{tag:'(0021,"SIEMENS MR VA0 GEN",96)',vr:"DS",name:"EPIChangeValueOfZComponent",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS MR VA0 RAW",00)':{tag:'(0021,"SIEMENS MR VA0 RAW",00)',vr:"LT",name:"SequenceType",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS MR VA0 RAW",01)':{tag:'(0021,"SIEMENS MR VA0 RAW",01)',vr:"IS",name:"VectorSizeOriginal",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS MR VA0 RAW",02)':{tag:'(0021,"SIEMENS MR VA0 RAW",02)',vr:"IS",name:"VectorSizeExtended",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS MR VA0 RAW",03)':{tag:'(0021,"SIEMENS MR VA0 RAW",03)',vr:"DS",name:"AcquiredSpectralRange",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS MR VA0 RAW",04)':{tag:'(0021,"SIEMENS MR VA0 RAW",04)',vr:"DS",name:"VOIPosition",vm:"3",version:"PrivateTag"},'(0021,"SIEMENS MR VA0 RAW",05)':{tag:'(0021,"SIEMENS MR VA0 RAW",05)',vr:"DS",name:"VOISize",vm:"3",version:"PrivateTag"},'(0021,"SIEMENS MR VA0 RAW",06)':{tag:'(0021,"SIEMENS MR VA0 RAW",06)',vr:"IS",name:"CSIMatrixSizeOriginal",vm:"3",version:"PrivateTag"},'(0021,"SIEMENS MR VA0 RAW",07)':{tag:'(0021,"SIEMENS MR VA0 RAW",07)',vr:"IS",name:"CSIMatrixSizeExtended",vm:"3",version:"PrivateTag"},'(0021,"SIEMENS MR VA0 RAW",08)':{tag:'(0021,"SIEMENS MR VA0 RAW",08)',vr:"DS",name:"SpatialGridShift",vm:"3",version:"PrivateTag"},'(0021,"SIEMENS MR VA0 RAW",09)':{tag:'(0021,"SIEMENS MR VA0 RAW",09)',vr:"DS",name:"SignalLimitsMinimum",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS MR VA0 RAW",10)':{tag:'(0021,"SIEMENS MR VA0 RAW",10)',vr:"DS",name:"SignalLimitsMaximum",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS MR VA0 RAW",11)':{tag:'(0021,"SIEMENS MR VA0 RAW",11)',vr:"DS",name:"SpecInfoMask",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS MR VA0 RAW",12)':{tag:'(0021,"SIEMENS MR VA0 RAW",12)',vr:"DS",name:"EPITimeRateOfChangeOfMagnitude",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS MR VA0 RAW",13)':{tag:'(0021,"SIEMENS MR VA0 RAW",13)',vr:"DS",name:"EPITimeRateOfChangeOfXComponent",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS MR VA0 RAW",14)':{tag:'(0021,"SIEMENS MR VA0 RAW",14)',vr:"DS",name:"EPITimeRateOfChangeOfYComponent",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS MR VA0 RAW",15)':{tag:'(0021,"SIEMENS MR VA0 RAW",15)',vr:"DS",name:"EPITimeRateOfChangeOfZComponent",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS MR VA0 RAW",16)':{tag:'(0021,"SIEMENS MR VA0 RAW",16)',vr:"DS",name:"EPITimeRateOfChangeLegalLimit1",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS MR VA0 RAW",17)':{tag:'(0021,"SIEMENS MR VA0 RAW",17)',vr:"DS",name:"EPIOperationModeFlag",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS MR VA0 RAW",18)':{tag:'(0021,"SIEMENS MR VA0 RAW",18)',vr:"DS",name:"EPIFieldCalculationSafetyFactor",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS MR VA0 RAW",19)':{tag:'(0021,"SIEMENS MR VA0 RAW",19)',vr:"DS",name:"EPILegalLimit1OfChangeValue",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS MR VA0 RAW",20)':{tag:'(0021,"SIEMENS MR VA0 RAW",20)',vr:"DS",name:"EPILegalLimit2OfChangeValue",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS MR VA0 RAW",21)':{tag:'(0021,"SIEMENS MR VA0 RAW",21)',vr:"DS",name:"EPIRiseTime",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS MR VA0 RAW",30)':{tag:'(0021,"SIEMENS MR VA0 RAW",30)',vr:"DS",name:"ArrayCoilADCOffset",vm:"16",version:"PrivateTag"},'(0021,"SIEMENS MR VA0 RAW",31)':{tag:'(0021,"SIEMENS MR VA0 RAW",31)',vr:"DS",name:"ArrayCoilPreamplifierGain",vm:"16",version:"PrivateTag"},'(0021,"SIEMENS MR VA0 RAW",50)':{tag:'(0021,"SIEMENS MR VA0 RAW",50)',vr:"LT",name:"SaturationType",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS MR VA0 RAW",51)':{tag:'(0021,"SIEMENS MR VA0 RAW",51)',vr:"DS",name:"SaturationNormalVector",vm:"3",version:"PrivateTag"},'(0021,"SIEMENS MR VA0 RAW",52)':{tag:'(0021,"SIEMENS MR VA0 RAW",52)',vr:"DS",name:"SaturationPositionVector",vm:"3",version:"PrivateTag"},'(0021,"SIEMENS MR VA0 RAW",53)':{tag:'(0021,"SIEMENS MR VA0 RAW",53)',vr:"DS",name:"SaturationThickness",vm:"6",version:"PrivateTag"},'(0021,"SIEMENS MR VA0 RAW",54)':{tag:'(0021,"SIEMENS MR VA0 RAW",54)',vr:"DS",name:"SaturationWidth",vm:"6",version:"PrivateTag"},'(0021,"SIEMENS MR VA0 RAW",55)':{tag:'(0021,"SIEMENS MR VA0 RAW",55)',vr:"DS",name:"SaturationDistance",vm:"6",version:"PrivateTag"},'(7fe3,"SIEMENS NUMARIS II",00)':{tag:'(7fe3,"SIEMENS NUMARIS II",00)',vr:"LT",name:"ImageGraphicsFormatCode",vm:"1",version:"PrivateTag"},'(7fe3,"SIEMENS NUMARIS II",10)':{tag:'(7fe3,"SIEMENS NUMARIS II",10)',vr:"OB",name:"ImageGraphics",vm:"1",version:"PrivateTag"},'(7fe3,"SIEMENS NUMARIS II",20)':{tag:'(7fe3,"SIEMENS NUMARIS II",20)',vr:"OB",name:"ImageGraphicsDummy",vm:"1",version:"PrivateTag"},'(0011,"SIEMENS RA GEN",20)':{tag:'(0011,"SIEMENS RA GEN",20)',vr:"SL",name:"FluoroTimer",vm:"1",version:"PrivateTag"},'(0011,"SIEMENS RA GEN",25)':{tag:'(0011,"SIEMENS RA GEN",25)',vr:"SL",name:"PtopDoseAreaProduct",vm:"1",version:"PrivateTag"},'(0011,"SIEMENS RA GEN",26)':{tag:'(0011,"SIEMENS RA GEN",26)',vr:"SL",name:"PtopTotalSkinDose",vm:"1",version:"PrivateTag"},'(0011,"SIEMENS RA GEN",30)':{tag:'(0011,"SIEMENS RA GEN",30)',vr:"LT",name:"Unknown",vm:"1",version:"PrivateTag"},'(0011,"SIEMENS RA GEN",35)':{tag:'(0011,"SIEMENS RA GEN",35)',vr:"LO",name:"PatientInitialPuckCounter",vm:"1",version:"PrivateTag"},'(0011,"SIEMENS RA GEN",40)':{tag:'(0011,"SIEMENS RA GEN",40)',vr:"SS",name:"SPIDataObjectType",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA GEN",15)':{tag:'(0019,"SIEMENS RA GEN",15)',vr:"LO",name:"AcquiredPlane",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA GEN",1f)':{tag:'(0019,"SIEMENS RA GEN",1f)',vr:"SS",name:"DefaultTableIsoCenterHeight",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA GEN",20)':{tag:'(0019,"SIEMENS RA GEN",20)',vr:"SL",name:"SceneFlag",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA GEN",22)':{tag:'(0019,"SIEMENS RA GEN",22)',vr:"SL",name:"RefPhotofileFlag",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA GEN",24)':{tag:'(0019,"SIEMENS RA GEN",24)',vr:"LO",name:"SceneName",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA GEN",26)':{tag:'(0019,"SIEMENS RA GEN",26)',vr:"SS",name:"AcquisitionIndex",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA GEN",28)':{tag:'(0019,"SIEMENS RA GEN",28)',vr:"SS",name:"MixedPulseMode",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA GEN",2a)':{tag:'(0019,"SIEMENS RA GEN",2a)',vr:"SS",name:"NoOfPositions",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA GEN",2c)':{tag:'(0019,"SIEMENS RA GEN",2c)',vr:"SS",name:"NoOfPhases",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA GEN",2e)':{tag:'(0019,"SIEMENS RA GEN",2e)',vr:"SS",name:"FrameRateForPositions",vm:"1-n",version:"PrivateTag"},'(0019,"SIEMENS RA GEN",30)':{tag:'(0019,"SIEMENS RA GEN",30)',vr:"SS",name:"NoOfFramesForPositions",vm:"1-n",version:"PrivateTag"},'(0019,"SIEMENS RA GEN",32)':{tag:'(0019,"SIEMENS RA GEN",32)',vr:"SS",name:"SteppingDirection",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA GEN",34)':{tag:'(0019,"SIEMENS RA GEN",34)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA GEN",36)':{tag:'(0019,"SIEMENS RA GEN",36)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA GEN",38)':{tag:'(0019,"SIEMENS RA GEN",38)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA GEN",3a)':{tag:'(0019,"SIEMENS RA GEN",3a)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA GEN",3c)':{tag:'(0019,"SIEMENS RA GEN",3c)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA GEN",3e)':{tag:'(0019,"SIEMENS RA GEN",3e)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA GEN",40)':{tag:'(0019,"SIEMENS RA GEN",40)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA GEN",42)':{tag:'(0019,"SIEMENS RA GEN",42)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA GEN",44)':{tag:'(0019,"SIEMENS RA GEN",44)',vr:"SS",name:"ImageTransferDelay",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA GEN",46)':{tag:'(0019,"SIEMENS RA GEN",46)',vr:"SL",name:"InversFlag",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA GEN",48)':{tag:'(0019,"SIEMENS RA GEN",48)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA GEN",4a)':{tag:'(0019,"SIEMENS RA GEN",4a)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA GEN",4c)':{tag:'(0019,"SIEMENS RA GEN",4c)',vr:"SS",name:"BlankingCircleDiameter",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA GEN",50)':{tag:'(0019,"SIEMENS RA GEN",50)',vr:"SL",name:"StandDataValid",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA GEN",52)':{tag:'(0019,"SIEMENS RA GEN",52)',vr:"SS",name:"TableTilt",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA GEN",54)':{tag:'(0019,"SIEMENS RA GEN",54)',vr:"SS",name:"TableAxisRotation",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA GEN",56)':{tag:'(0019,"SIEMENS RA GEN",56)',vr:"SS",name:"TableLongitudalPosition",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA GEN",58)':{tag:'(0019,"SIEMENS RA GEN",58)',vr:"SS",name:"TableSideOffset",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA GEN",5a)':{tag:'(0019,"SIEMENS RA GEN",5a)',vr:"SS",name:"TableIsoCenterHeight",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA GEN",5c)':{tag:'(0019,"SIEMENS RA GEN",5c)',vr:"UN",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA GEN",5e)':{tag:'(0019,"SIEMENS RA GEN",5e)',vr:"SL",name:"CollimationDataValid",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA GEN",60)':{tag:'(0019,"SIEMENS RA GEN",60)',vr:"SL",name:"PeriSequenceNo",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA GEN",62)':{tag:'(0019,"SIEMENS RA GEN",62)',vr:"SL",name:"PeriTotalScenes",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA GEN",64)':{tag:'(0019,"SIEMENS RA GEN",64)',vr:"SL",name:"PeriOverlapTop",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA GEN",66)':{tag:'(0019,"SIEMENS RA GEN",66)',vr:"SL",name:"PeriOverlapBottom",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA GEN",68)':{tag:'(0019,"SIEMENS RA GEN",68)',vr:"SL",name:"RawImageNumber",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA GEN",6a)':{tag:'(0019,"SIEMENS RA GEN",6a)',vr:"SL",name:"XRayDataValid",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA GEN",70)':{tag:'(0019,"SIEMENS RA GEN",70)',vr:"US",name:"Unknown",vm:"1-n",version:"PrivateTag"},'(0019,"SIEMENS RA GEN",72)':{tag:'(0019,"SIEMENS RA GEN",72)',vr:"US",name:"Unknown",vm:"1-n",version:"PrivateTag"},'(0019,"SIEMENS RA GEN",74)':{tag:'(0019,"SIEMENS RA GEN",74)',vr:"US",name:"Unknown",vm:"1-n",version:"PrivateTag"},'(0019,"SIEMENS RA GEN",76)':{tag:'(0019,"SIEMENS RA GEN",76)',vr:"SL",name:"FillingAverageFactor",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA GEN",78)':{tag:'(0019,"SIEMENS RA GEN",78)',vr:"US",name:"Unknown",vm:"1-n",version:"PrivateTag"},'(0019,"SIEMENS RA GEN",7a)':{tag:'(0019,"SIEMENS RA GEN",7a)',vr:"US",name:"Unknown",vm:"1-n",version:"PrivateTag"},'(0019,"SIEMENS RA GEN",7c)':{tag:'(0019,"SIEMENS RA GEN",7c)',vr:"US",name:"Unknown",vm:"1-n",version:"PrivateTag"},'(0019,"SIEMENS RA GEN",7e)':{tag:'(0019,"SIEMENS RA GEN",7e)',vr:"US",name:"Unknown",vm:"1-n",version:"PrivateTag"},'(0019,"SIEMENS RA GEN",80)':{tag:'(0019,"SIEMENS RA GEN",80)',vr:"US",name:"Unknown",vm:"1-n",version:"PrivateTag"},'(0019,"SIEMENS RA GEN",82)':{tag:'(0019,"SIEMENS RA GEN",82)',vr:"US",name:"Unknown",vm:"1-n",version:"PrivateTag"},'(0019,"SIEMENS RA GEN",84)':{tag:'(0019,"SIEMENS RA GEN",84)',vr:"US",name:"Unknown",vm:"1-n",version:"PrivateTag"},'(0019,"SIEMENS RA GEN",86)':{tag:'(0019,"SIEMENS RA GEN",86)',vr:"US",name:"Unknown",vm:"1-n",version:"PrivateTag"},'(0019,"SIEMENS RA GEN",88)':{tag:'(0019,"SIEMENS RA GEN",88)',vr:"US",name:"Unknown",vm:"1-n",version:"PrivateTag"},'(0019,"SIEMENS RA GEN",8a)':{tag:'(0019,"SIEMENS RA GEN",8a)',vr:"US",name:"Unknown",vm:"1-n",version:"PrivateTag"},'(0019,"SIEMENS RA GEN",8c)':{tag:'(0019,"SIEMENS RA GEN",8c)',vr:"US",name:"Unknown",vm:"1-n",version:"PrivateTag"},'(0019,"SIEMENS RA GEN",8e)':{tag:'(0019,"SIEMENS RA GEN",8e)',vr:"US",name:"Unknown",vm:"1-n",version:"PrivateTag"},'(0019,"SIEMENS RA GEN",92)':{tag:'(0019,"SIEMENS RA GEN",92)',vr:"US",name:"Unknown",vm:"1-n",version:"PrivateTag"},'(0019,"SIEMENS RA GEN",94)':{tag:'(0019,"SIEMENS RA GEN",94)',vr:"US",name:"Unknown",vm:"1-n",version:"PrivateTag"},'(0019,"SIEMENS RA GEN",96)':{tag:'(0019,"SIEMENS RA GEN",96)',vr:"US",name:"Unknown",vm:"1-n",version:"PrivateTag"},'(0019,"SIEMENS RA GEN",98)':{tag:'(0019,"SIEMENS RA GEN",98)',vr:"US",name:"Unknown",vm:"1-n",version:"PrivateTag"},'(0019,"SIEMENS RA GEN",9a)':{tag:'(0019,"SIEMENS RA GEN",9a)',vr:"US",name:"Unknown",vm:"1-n",version:"PrivateTag"},'(0019,"SIEMENS RA GEN",9c)':{tag:'(0019,"SIEMENS RA GEN",9c)',vr:"SL",name:"IntensifierLevelCalibrationFactor",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA GEN",9e)':{tag:'(0019,"SIEMENS RA GEN",9e)',vr:"SL",name:"NativeReviewFlag",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA GEN",a2)':{tag:'(0019,"SIEMENS RA GEN",a2)',vr:"SL",name:"SceneNumber",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA GEN",a4)':{tag:'(0019,"SIEMENS RA GEN",a4)',vr:"SS",name:"AcquisitionMode",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA GEN",a5)':{tag:'(0019,"SIEMENS RA GEN",a5)',vr:"SS",name:"AcquisitonFrameRate",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA GEN",a6)':{tag:'(0019,"SIEMENS RA GEN",a6)',vr:"SL",name:"ECGFlag",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA GEN",a7)':{tag:'(0019,"SIEMENS RA GEN",a7)',vr:"SL",name:"AdditionalSceneData",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA GEN",a8)':{tag:'(0019,"SIEMENS RA GEN",a8)',vr:"SL",name:"FileCopyFlag",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA GEN",a9)':{tag:'(0019,"SIEMENS RA GEN",a9)',vr:"SL",name:"PhlebovisionFlag",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA GEN",aa)':{tag:'(0019,"SIEMENS RA GEN",aa)',vr:"SL",name:"Co2Flag",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA GEN",ab)':{tag:'(0019,"SIEMENS RA GEN",ab)',vr:"SS",name:"MaxSpeed",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA GEN",ac)':{tag:'(0019,"SIEMENS RA GEN",ac)',vr:"SS",name:"StepWidth",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA GEN",ad)':{tag:'(0019,"SIEMENS RA GEN",ad)',vr:"SL",name:"DigitalAcquisitionZoom",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA GEN",ff)':{tag:'(0019,"SIEMENS RA GEN",ff)',vr:"SS",name:"Internal",vm:"1-n",version:"PrivateTag"},'(0021,"SIEMENS RA GEN",15)':{tag:'(0021,"SIEMENS RA GEN",15)',vr:"SS",name:"ImagesInStudy",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS RA GEN",20)':{tag:'(0021,"SIEMENS RA GEN",20)',vr:"SS",name:"ScenesInStudy",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS RA GEN",25)':{tag:'(0021,"SIEMENS RA GEN",25)',vr:"SS",name:"ImagesInPhotofile",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS RA GEN",27)':{tag:'(0021,"SIEMENS RA GEN",27)',vr:"SS",name:"PlaneBImagesExist",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS RA GEN",28)':{tag:'(0021,"SIEMENS RA GEN",28)',vr:"SS",name:"NoOf2MBChunks",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS RA GEN",30)':{tag:'(0021,"SIEMENS RA GEN",30)',vr:"SS",name:"ImagesInAllScenes",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS RA GEN",40)':{tag:'(0021,"SIEMENS RA GEN",40)',vr:"SS",name:"ArchiveSWInternalVersion",vm:"1",version:"PrivateTag"},'(0011,"SIEMENS RA PLANE A",28)':{tag:'(0011,"SIEMENS RA PLANE A",28)',vr:"SL",name:"FluoroTimerA",vm:"1",version:"PrivateTag"},'(0011,"SIEMENS RA PLANE A",29)':{tag:'(0011,"SIEMENS RA PLANE A",29)',vr:"SL",name:"FluoroSkinDoseA",vm:"1",version:"PrivateTag"},'(0011,"SIEMENS RA PLANE A",2a)':{tag:'(0011,"SIEMENS RA PLANE A",2a)',vr:"SL",name:"TotalSkinDoseA",vm:"1",version:"PrivateTag"},'(0011,"SIEMENS RA PLANE A",2b)':{tag:'(0011,"SIEMENS RA PLANE A",2b)',vr:"SL",name:"FluoroDoseAreaProductA",vm:"1",version:"PrivateTag"},'(0011,"SIEMENS RA PLANE A",2c)':{tag:'(0011,"SIEMENS RA PLANE A",2c)',vr:"SL",name:"TotalDoseAreaProductA",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",15)':{tag:'(0019,"SIEMENS RA PLANE A",15)',vr:"LT",name:"OfflineUID",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",18)':{tag:'(0019,"SIEMENS RA PLANE A",18)',vr:"SS",name:"Internal",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",19)':{tag:'(0019,"SIEMENS RA PLANE A",19)',vr:"SS",name:"Internal",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",1a)':{tag:'(0019,"SIEMENS RA PLANE A",1a)',vr:"SS",name:"Internal",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",1b)':{tag:'(0019,"SIEMENS RA PLANE A",1b)',vr:"SS",name:"Internal",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",1c)':{tag:'(0019,"SIEMENS RA PLANE A",1c)',vr:"SS",name:"Internal",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",1d)':{tag:'(0019,"SIEMENS RA PLANE A",1d)',vr:"SS",name:"Internal",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",1e)':{tag:'(0019,"SIEMENS RA PLANE A",1e)',vr:"SS",name:"Internal",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",1f)':{tag:'(0019,"SIEMENS RA PLANE A",1f)',vr:"SS",name:"Internal",vm:"1-n",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",20)':{tag:'(0019,"SIEMENS RA PLANE A",20)',vr:"SS",name:"SystemCalibFactorPlaneA",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",22)':{tag:'(0019,"SIEMENS RA PLANE A",22)',vr:"SS",name:"XRayParameterSetNo",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",24)':{tag:'(0019,"SIEMENS RA PLANE A",24)',vr:"SS",name:"XRaySystem",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",26)':{tag:'(0019,"SIEMENS RA PLANE A",26)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",28)':{tag:'(0019,"SIEMENS RA PLANE A",28)',vr:"SS",name:"AcquiredDisplayMode",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",2a)':{tag:'(0019,"SIEMENS RA PLANE A",2a)',vr:"SS",name:"AcquisitionDelay",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",2c)':{tag:'(0019,"SIEMENS RA PLANE A",2c)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",2e)':{tag:'(0019,"SIEMENS RA PLANE A",2e)',vr:"SS",name:"MaxFramesLimit",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",30)':{tag:'(0019,"SIEMENS RA PLANE A",30)',vr:"US",name:"MaximumFrameSizeNIU",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",32)':{tag:'(0019,"SIEMENS RA PLANE A",32)',vr:"SS",name:"SubtractedFilterType",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",34)':{tag:'(0019,"SIEMENS RA PLANE A",34)',vr:"SS",name:"FilterFactorNative",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",36)':{tag:'(0019,"SIEMENS RA PLANE A",36)',vr:"SS",name:"AnatomicBackgroundFactor",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",38)':{tag:'(0019,"SIEMENS RA PLANE A",38)',vr:"SS",name:"WindowUpperLimitNative",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",3a)':{tag:'(0019,"SIEMENS RA PLANE A",3a)',vr:"SS",name:"WindowLowerLimitNative",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",3c)':{tag:'(0019,"SIEMENS RA PLANE A",3c)',vr:"SS",name:"WindowBrightnessPhase1",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",3e)':{tag:'(0019,"SIEMENS RA PLANE A",3e)',vr:"SS",name:"WindowBrightnessPhase2",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",40)':{tag:'(0019,"SIEMENS RA PLANE A",40)',vr:"SS",name:"WindowContrastPhase1",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",42)':{tag:'(0019,"SIEMENS RA PLANE A",42)',vr:"SS",name:"WindowContrastPhase2",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",44)':{tag:'(0019,"SIEMENS RA PLANE A",44)',vr:"SS",name:"FilterFactorSub",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",46)':{tag:'(0019,"SIEMENS RA PLANE A",46)',vr:"SS",name:"PeakOpacified",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",48)':{tag:'(0019,"SIEMENS RA PLANE A",48)',vr:"SL",name:"MaskFrame",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",4a)':{tag:'(0019,"SIEMENS RA PLANE A",4a)',vr:"SL",name:"BIHFrame",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",4c)':{tag:'(0019,"SIEMENS RA PLANE A",4c)',vr:"SS",name:"CentBeamAngulationCaudCran",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",4e)':{tag:'(0019,"SIEMENS RA PLANE A",4e)',vr:"SS",name:"CentBeamAngulationLRAnterior",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",50)':{tag:'(0019,"SIEMENS RA PLANE A",50)',vr:"SS",name:"LongitudinalPosition",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",52)':{tag:'(0019,"SIEMENS RA PLANE A",52)',vr:"SS",name:"SideOffset",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",54)':{tag:'(0019,"SIEMENS RA PLANE A",54)',vr:"SS",name:"IsoCenterHeight",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",56)':{tag:'(0019,"SIEMENS RA PLANE A",56)',vr:"SS",name:"ImageTwist",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",58)':{tag:'(0019,"SIEMENS RA PLANE A",58)',vr:"SS",name:"SourceImageDistance",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",5a)':{tag:'(0019,"SIEMENS RA PLANE A",5a)',vr:"SS",name:"MechanicalMagnificationFactor",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",5c)':{tag:'(0019,"SIEMENS RA PLANE A",5c)',vr:"SL",name:"CalibrationFlag",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",5e)':{tag:'(0019,"SIEMENS RA PLANE A",5e)',vr:"SL",name:"CalibrationAngleCranCaud",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",60)':{tag:'(0019,"SIEMENS RA PLANE A",60)',vr:"SL",name:"CalibrationAngleRAOLAO",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",62)':{tag:'(0019,"SIEMENS RA PLANE A",62)',vr:"SL",name:"CalibrationTableToFloorDist",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",64)':{tag:'(0019,"SIEMENS RA PLANE A",64)',vr:"SL",name:"CalibrationIsocenterToFloorDist",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",66)':{tag:'(0019,"SIEMENS RA PLANE A",66)',vr:"SL",name:"CalibrationIsocenterToSourceDist",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",68)':{tag:'(0019,"SIEMENS RA PLANE A",68)',vr:"SL",name:"CalibrationSourceToII",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",6a)':{tag:'(0019,"SIEMENS RA PLANE A",6a)',vr:"SL",name:"CalibrationIIZoom",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",6c)':{tag:'(0019,"SIEMENS RA PLANE A",6c)',vr:"SL",name:"CalibrationIIField",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",6e)':{tag:'(0019,"SIEMENS RA PLANE A",6e)',vr:"SL",name:"CalibrationFactor",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",70)':{tag:'(0019,"SIEMENS RA PLANE A",70)',vr:"SL",name:"CalibrationObjectToImageDistance",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",72)':{tag:'(0019,"SIEMENS RA PLANE A",72)',vr:"SL",name:"CalibrationSystemFactor",vm:"1-n",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",74)':{tag:'(0019,"SIEMENS RA PLANE A",74)',vr:"SL",name:"CalibrationSystemCorrection",vm:"1-n",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",76)':{tag:'(0019,"SIEMENS RA PLANE A",76)',vr:"SL",name:"CalibrationSystemIIFormats",vm:"1-n",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",78)':{tag:'(0019,"SIEMENS RA PLANE A",78)',vr:"SL",name:"CalibrationGantryDataValid",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",7a)':{tag:'(0019,"SIEMENS RA PLANE A",7a)',vr:"SS",name:"CollimatorSquareBreadth",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",7c)':{tag:'(0019,"SIEMENS RA PLANE A",7c)',vr:"SS",name:"CollimatorSquareHeight",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",7e)':{tag:'(0019,"SIEMENS RA PLANE A",7e)',vr:"SS",name:"CollimatorSquareDiameter",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",80)':{tag:'(0019,"SIEMENS RA PLANE A",80)',vr:"SS",name:"CollimaterFingerTurnAngle",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",82)':{tag:'(0019,"SIEMENS RA PLANE A",82)',vr:"SS",name:"CollimaterFingerPosition",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",84)':{tag:'(0019,"SIEMENS RA PLANE A",84)',vr:"SS",name:"CollimaterDiaphragmTurnAngle",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",86)':{tag:'(0019,"SIEMENS RA PLANE A",86)',vr:"SS",name:"CollimaterDiaphragmPosition1",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",88)':{tag:'(0019,"SIEMENS RA PLANE A",88)',vr:"SS",name:"CollimaterDiaphragmPosition2",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",8a)':{tag:'(0019,"SIEMENS RA PLANE A",8a)',vr:"SS",name:"CollimaterDiaphragmMode",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",8c)':{tag:'(0019,"SIEMENS RA PLANE A",8c)',vr:"SS",name:"CollimaterBeamLimitBreadth",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",8e)':{tag:'(0019,"SIEMENS RA PLANE A",8e)',vr:"SS",name:"CollimaterBeamLimitHeight",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",90)':{tag:'(0019,"SIEMENS RA PLANE A",90)',vr:"SS",name:"CollimaterBeamLimitDiameter",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",92)':{tag:'(0019,"SIEMENS RA PLANE A",92)',vr:"SS",name:"X-RayControlMOde",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",94)':{tag:'(0019,"SIEMENS RA PLANE A",94)',vr:"SS",name:"X-RaySystem",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",96)':{tag:'(0019,"SIEMENS RA PLANE A",96)',vr:"SS",name:"FocalSpot",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",98)':{tag:'(0019,"SIEMENS RA PLANE A",98)',vr:"SS",name:"ExposureControl",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",9a)':{tag:'(0019,"SIEMENS RA PLANE A",9a)',vr:"SL",name:"XRayVoltage",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",9c)':{tag:'(0019,"SIEMENS RA PLANE A",9c)',vr:"SL",name:"XRayCurrent",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",9e)':{tag:'(0019,"SIEMENS RA PLANE A",9e)',vr:"SL",name:"XRayCurrentTimeProduct",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",a0)':{tag:'(0019,"SIEMENS RA PLANE A",a0)',vr:"SL",name:"XRayPulseTime",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",a2)':{tag:'(0019,"SIEMENS RA PLANE A",a2)',vr:"SL",name:"XRaySceneTimeFluoroClock",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",a4)':{tag:'(0019,"SIEMENS RA PLANE A",a4)',vr:"SS",name:"MaximumPulseRate",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",a6)':{tag:'(0019,"SIEMENS RA PLANE A",a6)',vr:"SS",name:"PulsesPerScene",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",a8)':{tag:'(0019,"SIEMENS RA PLANE A",a8)',vr:"SL",name:"DoseAreaProductOfScene",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",aa)':{tag:'(0019,"SIEMENS RA PLANE A",aa)',vr:"SS",name:"Dose",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",ac)':{tag:'(0019,"SIEMENS RA PLANE A",ac)',vr:"SS",name:"DoseRate",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",ae)':{tag:'(0019,"SIEMENS RA PLANE A",ae)',vr:"SL",name:"IIToCoverDistance",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",b0)':{tag:'(0019,"SIEMENS RA PLANE A",b0)',vr:"SS",name:"LastFramePhase1",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",b1)':{tag:'(0019,"SIEMENS RA PLANE A",b1)',vr:"SS",name:"FrameRatePhase1",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",b2)':{tag:'(0019,"SIEMENS RA PLANE A",b2)',vr:"SS",name:"LastFramePhase2",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",b3)':{tag:'(0019,"SIEMENS RA PLANE A",b3)',vr:"SS",name:"FrameRatePhase2",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",b4)':{tag:'(0019,"SIEMENS RA PLANE A",b4)',vr:"SS",name:"LastFramePhase3",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",b5)':{tag:'(0019,"SIEMENS RA PLANE A",b5)',vr:"SS",name:"FrameRatePhase3",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",b6)':{tag:'(0019,"SIEMENS RA PLANE A",b6)',vr:"SS",name:"LastFramePhase4",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",b7)':{tag:'(0019,"SIEMENS RA PLANE A",b7)',vr:"SS",name:"FrameRatePhase4",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",b8)':{tag:'(0019,"SIEMENS RA PLANE A",b8)',vr:"SS",name:"GammaOfNativeImage",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",b9)':{tag:'(0019,"SIEMENS RA PLANE A",b9)',vr:"SS",name:"GammaOfTVSystem",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",bb)':{tag:'(0019,"SIEMENS RA PLANE A",bb)',vr:"SL",name:"PixelshiftX",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",bc)':{tag:'(0019,"SIEMENS RA PLANE A",bc)',vr:"SL",name:"PixelshiftY",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",bd)':{tag:'(0019,"SIEMENS RA PLANE A",bd)',vr:"SL",name:"MaskAverageFactor",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",be)':{tag:'(0019,"SIEMENS RA PLANE A",be)',vr:"SL",name:"BlankingCircleFlag",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",bf)':{tag:'(0019,"SIEMENS RA PLANE A",bf)',vr:"SL",name:"CircleRowStart",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",c0)':{tag:'(0019,"SIEMENS RA PLANE A",c0)',vr:"SL",name:"CircleRowEnd",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",c1)':{tag:'(0019,"SIEMENS RA PLANE A",c1)',vr:"SL",name:"CircleColumnStart",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",c2)':{tag:'(0019,"SIEMENS RA PLANE A",c2)',vr:"SL",name:"CircleColumnEnd",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",c3)':{tag:'(0019,"SIEMENS RA PLANE A",c3)',vr:"SL",name:"CircleDiameter",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",c4)':{tag:'(0019,"SIEMENS RA PLANE A",c4)',vr:"SL",name:"RectangularCollimaterFlag",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",c5)':{tag:'(0019,"SIEMENS RA PLANE A",c5)',vr:"SL",name:"RectangleRowStart",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",c6)':{tag:'(0019,"SIEMENS RA PLANE A",c6)',vr:"SL",name:"RectangleRowEnd",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",c7)':{tag:'(0019,"SIEMENS RA PLANE A",c7)',vr:"SL",name:"RectangleColumnStart",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",c8)':{tag:'(0019,"SIEMENS RA PLANE A",c8)',vr:"SL",name:"RectangleColumnEnd",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",c9)':{tag:'(0019,"SIEMENS RA PLANE A",c9)',vr:"SL",name:"RectangleAngulation",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",ca)':{tag:'(0019,"SIEMENS RA PLANE A",ca)',vr:"SL",name:"IrisCollimatorFlag",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",cb)':{tag:'(0019,"SIEMENS RA PLANE A",cb)',vr:"SL",name:"IrisRowStart",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",cc)':{tag:'(0019,"SIEMENS RA PLANE A",cc)',vr:"SL",name:"IrisRowEnd",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",cd)':{tag:'(0019,"SIEMENS RA PLANE A",cd)',vr:"SL",name:"IrisColumnStart",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",ce)':{tag:'(0019,"SIEMENS RA PLANE A",ce)',vr:"SL",name:"IrisColumnEnd",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",cf)':{tag:'(0019,"SIEMENS RA PLANE A",cf)',vr:"SL",name:"IrisAngulation",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",d1)':{tag:'(0019,"SIEMENS RA PLANE A",d1)',vr:"SS",name:"NumberOfFramesPlane",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",d2)':{tag:'(0019,"SIEMENS RA PLANE A",d2)',vr:"SS",name:"Internal",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",d3)':{tag:'(0019,"SIEMENS RA PLANE A",d3)',vr:"SS",name:"Internal",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",d4)':{tag:'(0019,"SIEMENS RA PLANE A",d4)',vr:"SS",name:"Internal",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",d5)':{tag:'(0019,"SIEMENS RA PLANE A",d5)',vr:"SS",name:"Internal",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",d6)':{tag:'(0019,"SIEMENS RA PLANE A",d6)',vr:"SS",name:"Internal",vm:"1-n",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",d7)':{tag:'(0019,"SIEMENS RA PLANE A",d7)',vr:"SS",name:"Internal",vm:"1-n",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",d8)':{tag:'(0019,"SIEMENS RA PLANE A",d8)',vr:"SS",name:"Internal",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",d9)':{tag:'(0019,"SIEMENS RA PLANE A",d9)',vr:"SS",name:"Internal",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",da)':{tag:'(0019,"SIEMENS RA PLANE A",da)',vr:"SS",name:"Internal",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",db)':{tag:'(0019,"SIEMENS RA PLANE A",db)',vr:"SS",name:"Internal",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",dc)':{tag:'(0019,"SIEMENS RA PLANE A",dc)',vr:"SS",name:"Internal",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",dd)':{tag:'(0019,"SIEMENS RA PLANE A",dd)',vr:"SL",name:"AnatomicBackground",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",de)':{tag:'(0019,"SIEMENS RA PLANE A",de)',vr:"SL",name:"AutoWindowBase",vm:"1-n",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",df)':{tag:'(0019,"SIEMENS RA PLANE A",df)',vr:"SS",name:"Internal",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE A",e0)':{tag:'(0019,"SIEMENS RA PLANE A",e0)',vr:"SL",name:"Internal",vm:"1",version:"PrivateTag"},'(0011,"SIEMENS RA PLANE B",28)':{tag:'(0011,"SIEMENS RA PLANE B",28)',vr:"SL",name:"FluoroTimerB",vm:"1",version:"PrivateTag"},'(0011,"SIEMENS RA PLANE B",29)':{tag:'(0011,"SIEMENS RA PLANE B",29)',vr:"SL",name:"FluoroSkinDoseB",vm:"1",version:"PrivateTag"},'(0011,"SIEMENS RA PLANE B",2a)':{tag:'(0011,"SIEMENS RA PLANE B",2a)',vr:"SL",name:"TotalSkinDoseB",vm:"1",version:"PrivateTag"},'(0011,"SIEMENS RA PLANE B",2b)':{tag:'(0011,"SIEMENS RA PLANE B",2b)',vr:"SL",name:"FluoroDoseAreaProductB",vm:"1",version:"PrivateTag"},'(0011,"SIEMENS RA PLANE B",2c)':{tag:'(0011,"SIEMENS RA PLANE B",2c)',vr:"SL",name:"TotalDoseAreaProductB",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE B",18)':{tag:'(0019,"SIEMENS RA PLANE B",18)',vr:"SS",name:"Internal",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE B",19)':{tag:'(0019,"SIEMENS RA PLANE B",19)',vr:"SS",name:"Internal",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE B",1a)':{tag:'(0019,"SIEMENS RA PLANE B",1a)',vr:"SS",name:"Internal",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE B",1b)':{tag:'(0019,"SIEMENS RA PLANE B",1b)',vr:"SS",name:"Internal",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE B",1c)':{tag:'(0019,"SIEMENS RA PLANE B",1c)',vr:"SS",name:"Internal",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE B",1d)':{tag:'(0019,"SIEMENS RA PLANE B",1d)',vr:"SS",name:"Internal",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE B",1e)':{tag:'(0019,"SIEMENS RA PLANE B",1e)',vr:"SS",name:"Internal",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE B",1f)':{tag:'(0019,"SIEMENS RA PLANE B",1f)',vr:"SS",name:"Internal",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE B",20)':{tag:'(0019,"SIEMENS RA PLANE B",20)',vr:"SL",name:"SystemCalibFactorPlaneB",vm:"1-n",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE B",22)':{tag:'(0019,"SIEMENS RA PLANE B",22)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE B",24)':{tag:'(0019,"SIEMENS RA PLANE B",24)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE B",26)':{tag:'(0019,"SIEMENS RA PLANE B",26)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE B",28)':{tag:'(0019,"SIEMENS RA PLANE B",28)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE B",2a)':{tag:'(0019,"SIEMENS RA PLANE B",2a)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE B",2c)':{tag:'(0019,"SIEMENS RA PLANE B",2c)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE B",2e)':{tag:'(0019,"SIEMENS RA PLANE B",2e)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE B",30)':{tag:'(0019,"SIEMENS RA PLANE B",30)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE B",32)':{tag:'(0019,"SIEMENS RA PLANE B",32)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE B",34)':{tag:'(0019,"SIEMENS RA PLANE B",34)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE B",36)':{tag:'(0019,"SIEMENS RA PLANE B",36)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE B",38)':{tag:'(0019,"SIEMENS RA PLANE B",38)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE B",3a)':{tag:'(0019,"SIEMENS RA PLANE B",3a)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE B",3c)':{tag:'(0019,"SIEMENS RA PLANE B",3c)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE B",3e)':{tag:'(0019,"SIEMENS RA PLANE B",3e)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE B",40)':{tag:'(0019,"SIEMENS RA PLANE B",40)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE B",42)':{tag:'(0019,"SIEMENS RA PLANE B",42)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE B",44)':{tag:'(0019,"SIEMENS RA PLANE B",44)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE B",46)':{tag:'(0019,"SIEMENS RA PLANE B",46)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE B",48)':{tag:'(0019,"SIEMENS RA PLANE B",48)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE B",4a)':{tag:'(0019,"SIEMENS RA PLANE B",4a)',vr:"US",name:"Unknown",vm:"1-n",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE B",4c)':{tag:'(0019,"SIEMENS RA PLANE B",4c)',vr:"US",name:"Unknown",vm:"1-n",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE B",4e)':{tag:'(0019,"SIEMENS RA PLANE B",4e)',vr:"US",name:"Unknown",vm:"1-n",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE B",50)':{tag:'(0019,"SIEMENS RA PLANE B",50)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE B",52)':{tag:'(0019,"SIEMENS RA PLANE B",52)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE B",54)':{tag:'(0019,"SIEMENS RA PLANE B",54)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE B",56)':{tag:'(0019,"SIEMENS RA PLANE B",56)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE B",58)':{tag:'(0019,"SIEMENS RA PLANE B",58)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE B",5a)':{tag:'(0019,"SIEMENS RA PLANE B",5a)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE B",5c)':{tag:'(0019,"SIEMENS RA PLANE B",5c)',vr:"US",name:"Unknown",vm:"1-n",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE B",5e)':{tag:'(0019,"SIEMENS RA PLANE B",5e)',vr:"US",name:"Unknown",vm:"1-n",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE B",60)':{tag:'(0019,"SIEMENS RA PLANE B",60)',vr:"US",name:"Unknown",vm:"1-n",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE B",62)':{tag:'(0019,"SIEMENS RA PLANE B",62)',vr:"US",name:"Unknown",vm:"1-n",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE B",64)':{tag:'(0019,"SIEMENS RA PLANE B",64)',vr:"US",name:"Unknown",vm:"1-n",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE B",66)':{tag:'(0019,"SIEMENS RA PLANE B",66)',vr:"US",name:"Unknown",vm:"1-n",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE B",68)':{tag:'(0019,"SIEMENS RA PLANE B",68)',vr:"US",name:"Unknown",vm:"1-n",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE B",6a)':{tag:'(0019,"SIEMENS RA PLANE B",6a)',vr:"US",name:"Unknown",vm:"1-n",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE B",6c)':{tag:'(0019,"SIEMENS RA PLANE B",6c)',vr:"US",name:"Unknown",vm:"1-n",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE B",6e)':{tag:'(0019,"SIEMENS RA PLANE B",6e)',vr:"US",name:"Unknown",vm:"1-n",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE B",70)':{tag:'(0019,"SIEMENS RA PLANE B",70)',vr:"US",name:"Unknown",vm:"1-n",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE B",72)':{tag:'(0019,"SIEMENS RA PLANE B",72)',vr:"UN",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE B",74)':{tag:'(0019,"SIEMENS RA PLANE B",74)',vr:"UN",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE B",76)':{tag:'(0019,"SIEMENS RA PLANE B",76)',vr:"UN",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE B",78)':{tag:'(0019,"SIEMENS RA PLANE B",78)',vr:"US",name:"Unknown",vm:"1-n",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE B",7a)':{tag:'(0019,"SIEMENS RA PLANE B",7a)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE B",7c)':{tag:'(0019,"SIEMENS RA PLANE B",7c)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE B",7e)':{tag:'(0019,"SIEMENS RA PLANE B",7e)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE B",80)':{tag:'(0019,"SIEMENS RA PLANE B",80)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE B",82)':{tag:'(0019,"SIEMENS RA PLANE B",82)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE B",84)':{tag:'(0019,"SIEMENS RA PLANE B",84)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE B",86)':{tag:'(0019,"SIEMENS RA PLANE B",86)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE B",88)':{tag:'(0019,"SIEMENS RA PLANE B",88)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE B",8a)':{tag:'(0019,"SIEMENS RA PLANE B",8a)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE B",8c)':{tag:'(0019,"SIEMENS RA PLANE B",8c)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE B",8e)':{tag:'(0019,"SIEMENS RA PLANE B",8e)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE B",90)':{tag:'(0019,"SIEMENS RA PLANE B",90)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE B",92)':{tag:'(0019,"SIEMENS RA PLANE B",92)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE B",94)':{tag:'(0019,"SIEMENS RA PLANE B",94)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE B",96)':{tag:'(0019,"SIEMENS RA PLANE B",96)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE B",98)':{tag:'(0019,"SIEMENS RA PLANE B",98)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE B",9a)':{tag:'(0019,"SIEMENS RA PLANE B",9a)',vr:"US",name:"Unknown",vm:"1-n",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE B",9c)':{tag:'(0019,"SIEMENS RA PLANE B",9c)',vr:"US",name:"Unknown",vm:"1-n",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE B",9e)':{tag:'(0019,"SIEMENS RA PLANE B",9e)',vr:"US",name:"Unknown",vm:"1-n",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE B",a0)':{tag:'(0019,"SIEMENS RA PLANE B",a0)',vr:"US",name:"Unknown",vm:"1-n",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE B",a2)':{tag:'(0019,"SIEMENS RA PLANE B",a2)',vr:"US",name:"Unknown",vm:"1-n",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE B",a4)':{tag:'(0019,"SIEMENS RA PLANE B",a4)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE B",a6)':{tag:'(0019,"SIEMENS RA PLANE B",a6)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE B",a8)':{tag:'(0019,"SIEMENS RA PLANE B",a8)',vr:"US",name:"Unknown",vm:"1-n",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE B",aa)':{tag:'(0019,"SIEMENS RA PLANE B",aa)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS RA PLANE B",ac)':{tag:'(0019,"SIEMENS RA PLANE B",ac)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0011,"SIEMENS RIS",10)':{tag:'(0011,"SIEMENS RIS",10)',vr:"LT",name:"PatientUID",vm:"1",version:"PrivateTag"},'(0011,"SIEMENS RIS",11)':{tag:'(0011,"SIEMENS RIS",11)',vr:"LT",name:"PatientID",vm:"1",version:"PrivateTag"},'(0011,"SIEMENS RIS",20)':{tag:'(0011,"SIEMENS RIS",20)',vr:"DA",name:"PatientRegistrationDate",vm:"1",version:"PrivateTag"},'(0011,"SIEMENS RIS",21)':{tag:'(0011,"SIEMENS RIS",21)',vr:"TM",name:"PatientRegistrationTime",vm:"1",version:"PrivateTag"},'(0011,"SIEMENS RIS",30)':{tag:'(0011,"SIEMENS RIS",30)',vr:"LT",name:"PatientnameRIS",vm:"1",version:"PrivateTag"},'(0011,"SIEMENS RIS",31)':{tag:'(0011,"SIEMENS RIS",31)',vr:"LT",name:"PatientprenameRIS",vm:"1",version:"PrivateTag"},'(0011,"SIEMENS RIS",40)':{tag:'(0011,"SIEMENS RIS",40)',vr:"LT",name:"PatientHospitalStatus",vm:"1",version:"PrivateTag"},'(0011,"SIEMENS RIS",41)':{tag:'(0011,"SIEMENS RIS",41)',vr:"LT",name:"MedicalAlerts",vm:"1",version:"PrivateTag"},'(0011,"SIEMENS RIS",42)':{tag:'(0011,"SIEMENS RIS",42)',vr:"LT",name:"ContrastAllergies",vm:"1",version:"PrivateTag"},'(0031,"SIEMENS RIS",10)':{tag:'(0031,"SIEMENS RIS",10)',vr:"LT",name:"RequestUID",vm:"1",version:"PrivateTag"},'(0031,"SIEMENS RIS",45)':{tag:'(0031,"SIEMENS RIS",45)',vr:"LT",name:"RequestingPhysician",vm:"1",version:"PrivateTag"},'(0031,"SIEMENS RIS",50)':{tag:'(0031,"SIEMENS RIS",50)',vr:"LT",name:"RequestedPhysician",vm:"1",version:"PrivateTag"},'(0033,"SIEMENS RIS",10)':{tag:'(0033,"SIEMENS RIS",10)',vr:"LT",name:"PatientStudyUID",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS SMS-AX ACQ 1.0",00)':{tag:'(0021,"SIEMENS SMS-AX ACQ 1.0",00)',vr:"US",name:"AcquisitionType",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS SMS-AX ACQ 1.0",01)':{tag:'(0021,"SIEMENS SMS-AX ACQ 1.0",01)',vr:"US",name:"AcquisitionMode",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS SMS-AX ACQ 1.0",02)':{tag:'(0021,"SIEMENS SMS-AX ACQ 1.0",02)',vr:"US",name:"FootswitchIndex",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS SMS-AX ACQ 1.0",03)':{tag:'(0021,"SIEMENS SMS-AX ACQ 1.0",03)',vr:"US",name:"AcquisitionRoom",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS SMS-AX ACQ 1.0",04)':{tag:'(0021,"SIEMENS SMS-AX ACQ 1.0",04)',vr:"SL",name:"CurrentTimeProduct",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS SMS-AX ACQ 1.0",05)':{tag:'(0021,"SIEMENS SMS-AX ACQ 1.0",05)',vr:"SL",name:"Dose",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS SMS-AX ACQ 1.0",06)':{tag:'(0021,"SIEMENS SMS-AX ACQ 1.0",06)',vr:"SL",name:"SkinDosePercent",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS SMS-AX ACQ 1.0",07)':{tag:'(0021,"SIEMENS SMS-AX ACQ 1.0",07)',vr:"SL",name:"SkinDoseAccumulation",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS SMS-AX ACQ 1.0",08)':{tag:'(0021,"SIEMENS SMS-AX ACQ 1.0",08)',vr:"SL",name:"SkinDoseRate",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS SMS-AX ACQ 1.0",0A)':{tag:'(0021,"SIEMENS SMS-AX ACQ 1.0",0A)',vr:"UL",name:"CopperFilter",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS SMS-AX ACQ 1.0",0B)':{tag:'(0021,"SIEMENS SMS-AX ACQ 1.0",0B)',vr:"US",name:"MeasuringField",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS SMS-AX ACQ 1.0",0C)':{tag:'(0021,"SIEMENS SMS-AX ACQ 1.0",0C)',vr:"SS",name:"PostBlankingCircle",vm:"3",version:"PrivateTag"},'(0021,"SIEMENS SMS-AX ACQ 1.0",0D)':{tag:'(0021,"SIEMENS SMS-AX ACQ 1.0",0D)',vr:"SS",name:"DynaAngles",vm:"2-2n",version:"PrivateTag"},'(0021,"SIEMENS SMS-AX ACQ 1.0",0E)':{tag:'(0021,"SIEMENS SMS-AX ACQ 1.0",0E)',vr:"SS",name:"TotalSteps",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS SMS-AX ACQ 1.0",0F)':{tag:'(0021,"SIEMENS SMS-AX ACQ 1.0",0F)',vr:"SL",name:"DynaXRayInfo",vm:"3-3n",version:"PrivateTag"},'(0021,"SIEMENS SMS-AX ACQ 1.0",10)':{tag:'(0021,"SIEMENS SMS-AX ACQ 1.0",10)',vr:"US",name:"ModalityLUTInputGamma",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS SMS-AX ACQ 1.0",11)':{tag:'(0021,"SIEMENS SMS-AX ACQ 1.0",11)',vr:"US",name:"ModalityLUTOutputGamma",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS SMS-AX ACQ 1.0",12)':{tag:'(0021,"SIEMENS SMS-AX ACQ 1.0",12)',vr:"OB",name:"SH_STPAR",vm:"1-n",version:"PrivateTag"},'(0021,"SIEMENS SMS-AX ACQ 1.0",13)':{tag:'(0021,"SIEMENS SMS-AX ACQ 1.0",13)',vr:"US",name:"AcquisitionZoom",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS SMS-AX ACQ 1.0",14)':{tag:'(0021,"SIEMENS SMS-AX ACQ 1.0",14)',vr:"SS",name:"DynaAngulationStepWidth",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS SMS-AX ACQ 1.0",15)':{tag:'(0021,"SIEMENS SMS-AX ACQ 1.0",15)',vr:"US",name:"Harmonization",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS SMS-AX ACQ 1.0",16)':{tag:'(0021,"SIEMENS SMS-AX ACQ 1.0",16)',vr:"US",name:"DRSingleFlag",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS SMS-AX ACQ 1.0",17)':{tag:'(0021,"SIEMENS SMS-AX ACQ 1.0",17)',vr:"SL",name:"SourceToIsocenter",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS SMS-AX ACQ 1.0",18)':{tag:'(0021,"SIEMENS SMS-AX ACQ 1.0",18)',vr:"US",name:"PressureData",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS SMS-AX ACQ 1.0",19)':{tag:'(0021,"SIEMENS SMS-AX ACQ 1.0",19)',vr:"SL",name:"ECGIndexArray",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS SMS-AX ACQ 1.0",1A)':{tag:'(0021,"SIEMENS SMS-AX ACQ 1.0",1A)',vr:"US",name:"FDFlag",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS SMS-AX ACQ 1.0",1B)':{tag:'(0021,"SIEMENS SMS-AX ACQ 1.0",1B)',vr:"OB",name:"SH_ZOOM",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS SMS-AX ACQ 1.0",1C)':{tag:'(0021,"SIEMENS SMS-AX ACQ 1.0",1C)',vr:"OB",name:"SH_COLPAR",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS SMS-AX ACQ 1.0",1D)':{tag:'(0021,"SIEMENS SMS-AX ACQ 1.0",1D)',vr:"US",name:"K_Factor",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS SMS-AX ACQ 1.0",1E)':{tag:'(0021,"SIEMENS SMS-AX ACQ 1.0",1E)',vr:"US",name:"EVE",vm:"8",version:"PrivateTag"},'(0021,"SIEMENS SMS-AX ACQ 1.0",1F)':{tag:'(0021,"SIEMENS SMS-AX ACQ 1.0",1F)',vr:"SL",name:"TotalSceneTime",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS SMS-AX ACQ 1.0",20)':{tag:'(0021,"SIEMENS SMS-AX ACQ 1.0",20)',vr:"US",name:"RestoreFlag",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS SMS-AX ACQ 1.0",21)':{tag:'(0021,"SIEMENS SMS-AX ACQ 1.0",21)',vr:"US",name:"StandMovementFlag",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS SMS-AX ACQ 1.0",22)':{tag:'(0021,"SIEMENS SMS-AX ACQ 1.0",22)',vr:"US",name:"FDRows",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS SMS-AX ACQ 1.0",23)':{tag:'(0021,"SIEMENS SMS-AX ACQ 1.0",23)',vr:"US",name:"FDColumns",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS SMS-AX ACQ 1.0",24)':{tag:'(0021,"SIEMENS SMS-AX ACQ 1.0",24)',vr:"US",name:"TableMovementFlag",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS SMS-AX ACQ 1.0",25)':{tag:'(0021,"SIEMENS SMS-AX ACQ 1.0",25)',vr:"LO",name:"OriginalOrganProgramName",vm:"1",version:"PrivateTag"},'(0021,"SIEMENS SMS-AX ACQ 1.0",26)':{tag:'(0021,"SIEMENS SMS-AX ACQ 1.0",26)',vr:"DS",name:"CrispyXPIFilter",vm:"1",version:"PrivateTag"},'(0025,"SIEMENS SMS-AX ORIGINAL IMAGE INFO 1.0",00)':{tag:'(0025,"SIEMENS SMS-AX ORIGINAL IMAGE INFO 1.0",00)',vr:"US",name:"ViewNative",vm:"1",version:"PrivateTag"},'(0025,"SIEMENS SMS-AX ORIGINAL IMAGE INFO 1.0",01)':{tag:'(0025,"SIEMENS SMS-AX ORIGINAL IMAGE INFO 1.0",01)',vr:"US",name:"OriginalSeriesNumber",vm:"1",version:"PrivateTag"},'(0025,"SIEMENS SMS-AX ORIGINAL IMAGE INFO 1.0",02)':{tag:'(0025,"SIEMENS SMS-AX ORIGINAL IMAGE INFO 1.0",02)',vr:"US",name:"OriginalImageNumber",vm:"1",version:"PrivateTag"},'(0025,"SIEMENS SMS-AX ORIGINAL IMAGE INFO 1.0",03)':{tag:'(0025,"SIEMENS SMS-AX ORIGINAL IMAGE INFO 1.0",03)',vr:"US",name:"WinCenter",vm:"1",version:"PrivateTag"},'(0025,"SIEMENS SMS-AX ORIGINAL IMAGE INFO 1.0",04)':{tag:'(0025,"SIEMENS SMS-AX ORIGINAL IMAGE INFO 1.0",04)',vr:"US",name:"WinWidth",vm:"1",version:"PrivateTag"},'(0025,"SIEMENS SMS-AX ORIGINAL IMAGE INFO 1.0",05)':{tag:'(0025,"SIEMENS SMS-AX ORIGINAL IMAGE INFO 1.0",05)',vr:"US",name:"WinBrightness",vm:"1",version:"PrivateTag"},'(0025,"SIEMENS SMS-AX ORIGINAL IMAGE INFO 1.0",06)':{tag:'(0025,"SIEMENS SMS-AX ORIGINAL IMAGE INFO 1.0",06)',vr:"US",name:"WinContrast",vm:"1",version:"PrivateTag"},'(0025,"SIEMENS SMS-AX ORIGINAL IMAGE INFO 1.0",07)':{tag:'(0025,"SIEMENS SMS-AX ORIGINAL IMAGE INFO 1.0",07)',vr:"US",name:"OriginalFrameNumber",vm:"1",version:"PrivateTag"},'(0025,"SIEMENS SMS-AX ORIGINAL IMAGE INFO 1.0",08)':{tag:'(0025,"SIEMENS SMS-AX ORIGINAL IMAGE INFO 1.0",08)',vr:"US",name:"OriginalMaskFrameNumber",vm:"1",version:"PrivateTag"},'(0025,"SIEMENS SMS-AX ORIGINAL IMAGE INFO 1.0",09)':{tag:'(0025,"SIEMENS SMS-AX ORIGINAL IMAGE INFO 1.0",09)',vr:"US",name:"Opac",vm:"1",version:"PrivateTag"},'(0025,"SIEMENS SMS-AX ORIGINAL IMAGE INFO 1.0",0A)':{tag:'(0025,"SIEMENS SMS-AX ORIGINAL IMAGE INFO 1.0",0A)',vr:"US",name:"OriginalNumberOfFrames",vm:"1",version:"PrivateTag"},'(0025,"SIEMENS SMS-AX ORIGINAL IMAGE INFO 1.0",0B)':{tag:'(0025,"SIEMENS SMS-AX ORIGINAL IMAGE INFO 1.0",0B)',vr:"DS",name:"OriginalSceneDuration",vm:"1",version:"PrivateTag"},'(0025,"SIEMENS SMS-AX ORIGINAL IMAGE INFO 1.0",0C)':{tag:'(0025,"SIEMENS SMS-AX ORIGINAL IMAGE INFO 1.0",0C)',vr:"LO",name:"IdentifierLOID",vm:"1",version:"PrivateTag"},'(0025,"SIEMENS SMS-AX ORIGINAL IMAGE INFO 1.0",0D)':{tag:'(0025,"SIEMENS SMS-AX ORIGINAL IMAGE INFO 1.0",0D)',vr:"SS",name:"OriginalSceneVFRInfo",vm:"1-n",version:"PrivateTag"},'(0025,"SIEMENS SMS-AX ORIGINAL IMAGE INFO 1.0",0E)':{tag:'(0025,"SIEMENS SMS-AX ORIGINAL IMAGE INFO 1.0",0E)',vr:"SS",name:"OriginalFrameECGPosition",vm:"1",version:"PrivateTag"},'(0025,"SIEMENS SMS-AX ORIGINAL IMAGE INFO 1.0",0F)':{tag:'(0025,"SIEMENS SMS-AX ORIGINAL IMAGE INFO 1.0",0F)',vr:"SS",name:"OriginalECG1stFrameOffset_retired",vm:"1",version:"PrivateTag"},'(0025,"SIEMENS SMS-AX ORIGINAL IMAGE INFO 1.0",10)':{tag:'(0025,"SIEMENS SMS-AX ORIGINAL IMAGE INFO 1.0",10)',vr:"SS",name:"ZoomFlag",vm:"1",version:"PrivateTag"},'(0025,"SIEMENS SMS-AX ORIGINAL IMAGE INFO 1.0",11)':{tag:'(0025,"SIEMENS SMS-AX ORIGINAL IMAGE INFO 1.0",11)',vr:"US",name:"Flex",vm:"1",version:"PrivateTag"},'(0025,"SIEMENS SMS-AX ORIGINAL IMAGE INFO 1.0",12)':{tag:'(0025,"SIEMENS SMS-AX ORIGINAL IMAGE INFO 1.0",12)',vr:"US",name:"NumberOfMaskFrames",vm:"1",version:"PrivateTag"},'(0025,"SIEMENS SMS-AX ORIGINAL IMAGE INFO 1.0",13)':{tag:'(0025,"SIEMENS SMS-AX ORIGINAL IMAGE INFO 1.0",13)',vr:"US",name:"NumberOfFillFrames",vm:"1",version:"PrivateTag"},'(0025,"SIEMENS SMS-AX ORIGINAL IMAGE INFO 1.0",14)':{tag:'(0025,"SIEMENS SMS-AX ORIGINAL IMAGE INFO 1.0",14)',vr:"US",name:"SeriesNumber",vm:"1",version:"PrivateTag"},'(0025,"SIEMENS SMS-AX ORIGINAL IMAGE INFO 1.0",15)':{tag:'(0025,"SIEMENS SMS-AX ORIGINAL IMAGE INFO 1.0",15)',vr:"IS",name:"ImageNumber",vm:"1",version:"PrivateTag"},'(0023,"SIEMENS SMS-AX QUANT 1.0",00)':{tag:'(0023,"SIEMENS SMS-AX QUANT 1.0",00)',vr:"DS",name:"HorizontalCalibrationPixelSize",vm:"2",version:"PrivateTag"},'(0023,"SIEMENS SMS-AX QUANT 1.0",01)':{tag:'(0023,"SIEMENS SMS-AX QUANT 1.0",01)',vr:"DS",name:"VerticalCalibrationPixelSize",vm:"2",version:"PrivateTag"},'(0023,"SIEMENS SMS-AX QUANT 1.0",02)':{tag:'(0023,"SIEMENS SMS-AX QUANT 1.0",02)',vr:"LO",name:"CalibrationObject",vm:"1",version:"PrivateTag"},'(0023,"SIEMENS SMS-AX QUANT 1.0",03)':{tag:'(0023,"SIEMENS SMS-AX QUANT 1.0",03)',vr:"DS",name:"CalibrationObjectSize",vm:"1",version:"PrivateTag"},'(0023,"SIEMENS SMS-AX QUANT 1.0",04)':{tag:'(0023,"SIEMENS SMS-AX QUANT 1.0",04)',vr:"LO",name:"CalibrationMethod",vm:"1",version:"PrivateTag"},'(0023,"SIEMENS SMS-AX QUANT 1.0",05)':{tag:'(0023,"SIEMENS SMS-AX QUANT 1.0",05)',vr:"ST",name:"Filename",vm:"1",version:"PrivateTag"},'(0023,"SIEMENS SMS-AX QUANT 1.0",06)':{tag:'(0023,"SIEMENS SMS-AX QUANT 1.0",06)',vr:"IS",name:"FrameNumber",vm:"1",version:"PrivateTag"},'(0023,"SIEMENS SMS-AX QUANT 1.0",07)':{tag:'(0023,"SIEMENS SMS-AX QUANT 1.0",07)',vr:"IS",name:"CalibrationFactorMultiplicity",vm:"2",version:"PrivateTag"},'(0023,"SIEMENS SMS-AX QUANT 1.0",08)':{tag:'(0023,"SIEMENS SMS-AX QUANT 1.0",08)',vr:"IS",name:"CalibrationTODValue",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS SMS-AX VIEW 1.0",00)':{tag:'(0019,"SIEMENS SMS-AX VIEW 1.0",00)',vr:"US",name:"ReviewMode",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS SMS-AX VIEW 1.0",01)':{tag:'(0019,"SIEMENS SMS-AX VIEW 1.0",01)',vr:"US",name:"AnatomicalBackgroundPercent",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS SMS-AX VIEW 1.0",02)':{tag:'(0019,"SIEMENS SMS-AX VIEW 1.0",02)',vr:"US",name:"NumberOfPhases",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS SMS-AX VIEW 1.0",03)':{tag:'(0019,"SIEMENS SMS-AX VIEW 1.0",03)',vr:"US",name:"ApplyAnatomicalBackground",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS SMS-AX VIEW 1.0",04)':{tag:'(0019,"SIEMENS SMS-AX VIEW 1.0",04)',vr:"SS",name:"PixelShiftArray",vm:"4-4n",version:"PrivateTag"},'(0019,"SIEMENS SMS-AX VIEW 1.0",05)':{tag:'(0019,"SIEMENS SMS-AX VIEW 1.0",05)',vr:"US",name:"Brightness",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS SMS-AX VIEW 1.0",06)':{tag:'(0019,"SIEMENS SMS-AX VIEW 1.0",06)',vr:"US",name:"Contrast",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS SMS-AX VIEW 1.0",07)':{tag:'(0019,"SIEMENS SMS-AX VIEW 1.0",07)',vr:"US",name:"Enabled",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS SMS-AX VIEW 1.0",08)':{tag:'(0019,"SIEMENS SMS-AX VIEW 1.0",08)',vr:"US",name:"NativeEdgeEnhancementPercentGain",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS SMS-AX VIEW 1.0",09)':{tag:'(0019,"SIEMENS SMS-AX VIEW 1.0",09)',vr:"SS",name:"NativeEdgeEnhancementLUTIndex",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS SMS-AX VIEW 1.0",0A)':{tag:'(0019,"SIEMENS SMS-AX VIEW 1.0",0A)',vr:"SS",name:"NativeEdgeEnhancementKernelSize",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS SMS-AX VIEW 1.0",0B)':{tag:'(0019,"SIEMENS SMS-AX VIEW 1.0",0B)',vr:"US",name:"SubtrEdgeEnhancementPercentGain",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS SMS-AX VIEW 1.0",0C)':{tag:'(0019,"SIEMENS SMS-AX VIEW 1.0",0C)',vr:"SS",name:"SubtrEdgeEnhancementLUTIndex",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS SMS-AX VIEW 1.0",0D)':{tag:'(0019,"SIEMENS SMS-AX VIEW 1.0",0D)',vr:"SS",name:"SubtrEdgeEnhancementKernelSize",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS SMS-AX VIEW 1.0",0E)':{tag:'(0019,"SIEMENS SMS-AX VIEW 1.0",0E)',vr:"US",name:"FadePercent",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS SMS-AX VIEW 1.0",0F)':{tag:'(0019,"SIEMENS SMS-AX VIEW 1.0",0F)',vr:"US",name:"FlippedBeforeLateralityApplied",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS SMS-AX VIEW 1.0",10)':{tag:'(0019,"SIEMENS SMS-AX VIEW 1.0",10)',vr:"US",name:"ApplyFade",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS SMS-AX VIEW 1.0",12)':{tag:'(0019,"SIEMENS SMS-AX VIEW 1.0",12)',vr:"US",name:"Zoom",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS SMS-AX VIEW 1.0",13)':{tag:'(0019,"SIEMENS SMS-AX VIEW 1.0",13)',vr:"SS",name:"PanX",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS SMS-AX VIEW 1.0",14)':{tag:'(0019,"SIEMENS SMS-AX VIEW 1.0",14)',vr:"SS",name:"PanY",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS SMS-AX VIEW 1.0",15)':{tag:'(0019,"SIEMENS SMS-AX VIEW 1.0",15)',vr:"SS",name:"NativeEdgeEnhancementAdvPercGain",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS SMS-AX VIEW 1.0",16)':{tag:'(0019,"SIEMENS SMS-AX VIEW 1.0",16)',vr:"SS",name:"SubtrEdgeEnhancementAdvPercGain",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS SMS-AX VIEW 1.0",17)':{tag:'(0019,"SIEMENS SMS-AX VIEW 1.0",17)',vr:"US",name:"InvertFlag",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS SMS-AX VIEW 1.0",1A)':{tag:'(0019,"SIEMENS SMS-AX VIEW 1.0",1A)',vr:"OB",name:"Quant1KOverlay",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS SMS-AX VIEW 1.0",1B)':{tag:'(0019,"SIEMENS SMS-AX VIEW 1.0",1B)',vr:"US",name:"OriginalResolution",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS SMS-AX VIEW 1.0",1C)':{tag:'(0019,"SIEMENS SMS-AX VIEW 1.0",1C)',vr:"DS",name:"AutoWindowCenter",vm:"1",version:"PrivateTag"},'(0019,"SIEMENS SMS-AX VIEW 1.0",1D)':{tag:'(0019,"SIEMENS SMS-AX VIEW 1.0",1D)',vr:"DS",name:"AutoWindowWidth",vm:"1",version:"PrivateTag"},'(0009,"SIENET",01)':{tag:'(0009,"SIENET",01)',vr:"US",name:"SIENETCommandField",vm:"1",version:"PrivateTag"},'(0009,"SIENET",14)':{tag:'(0009,"SIENET",14)',vr:"LT",name:"ReceiverPLA",vm:"1",version:"PrivateTag"},'(0009,"SIENET",16)':{tag:'(0009,"SIENET",16)',vr:"US",name:"TransferPriority",vm:"1",version:"PrivateTag"},'(0009,"SIENET",29)':{tag:'(0009,"SIENET",29)',vr:"LT",name:"ActualUser",vm:"1",version:"PrivateTag"},'(0095,"SIENET",01)':{tag:'(0095,"SIENET",01)',vr:"LT",name:"ExaminationFolderID",vm:"1",version:"PrivateTag"},'(0095,"SIENET",04)':{tag:'(0095,"SIENET",04)',vr:"UL",name:"FolderReportedStatus",vm:"1",version:"PrivateTag"},'(0095,"SIENET",05)':{tag:'(0095,"SIENET",05)',vr:"LT",name:"FolderReportingRadiologist",vm:"1",version:"PrivateTag"},'(0095,"SIENET",07)':{tag:'(0095,"SIENET",07)',vr:"LT",name:"SIENETISAPLA",vm:"1",version:"PrivateTag"},'(0099,"SIENET",02)':{tag:'(0099,"SIENET",02)',vr:"UL",name:"DataObjectAttributes",vm:"1",version:"PrivateTag"},'(0009,"SPI RELEASE 1",10)':{tag:'(0009,"SPI RELEASE 1",10)',vr:"LT",name:"Comments",vm:"1",version:"PrivateTag"},'(0009,"SPI RELEASE 1",15)':{tag:'(0009,"SPI RELEASE 1",15)',vr:"LO",name:"SPIImageUID",vm:"1",version:"PrivateTag"},'(0009,"SPI RELEASE 1",40)':{tag:'(0009,"SPI RELEASE 1",40)',vr:"US",name:"DataObjectType",vm:"1",version:"PrivateTag"},'(0009,"SPI RELEASE 1",41)':{tag:'(0009,"SPI RELEASE 1",41)',vr:"LO",name:"DataObjectSubtype",vm:"1",version:"PrivateTag"},'(0011,"SPI RELEASE 1",10)':{tag:'(0011,"SPI RELEASE 1",10)',vr:"LO",name:"Organ",vm:"1",version:"PrivateTag"},'(0011,"SPI RELEASE 1",15)':{tag:'(0011,"SPI RELEASE 1",15)',vr:"LO",name:"AllergyIndication",vm:"1",version:"PrivateTag"},'(0011,"SPI RELEASE 1",20)':{tag:'(0011,"SPI RELEASE 1",20)',vr:"LO",name:"Pregnancy",vm:"1",version:"PrivateTag"},'(0029,"SPI RELEASE 1",60)':{tag:'(0029,"SPI RELEASE 1",60)',vr:"LT",name:"CompressionAlgorithm",vm:"1",version:"PrivateTag"},'(0009,"SPI Release 1",10)':{tag:'(0009,"SPI Release 1",10)',vr:"LT",name:"Comments",vm:"1",version:"PrivateTag"},'(0009,"SPI Release 1",15)':{tag:'(0009,"SPI Release 1",15)',vr:"LO",name:"SPIImageUID",vm:"1",version:"PrivateTag"},'(0009,"SPI Release 1",40)':{tag:'(0009,"SPI Release 1",40)',vr:"US",name:"DataObjectType",vm:"1",version:"PrivateTag"},'(0009,"SPI Release 1",41)':{tag:'(0009,"SPI Release 1",41)',vr:"LO",name:"DataObjectSubtype",vm:"1",version:"PrivateTag"},'(0011,"SPI Release 1",10)':{tag:'(0011,"SPI Release 1",10)',vr:"LO",name:"Organ",vm:"1",version:"PrivateTag"},'(0011,"SPI Release 1",15)':{tag:'(0011,"SPI Release 1",15)',vr:"LO",name:"AllergyIndication",vm:"1",version:"PrivateTag"},'(0011,"SPI Release 1",20)':{tag:'(0011,"SPI Release 1",20)',vr:"LO",name:"Pregnancy",vm:"1",version:"PrivateTag"},'(0029,"SPI Release 1",60)':{tag:'(0029,"SPI Release 1",60)',vr:"LT",name:"CompressionAlgorithm",vm:"1",version:"PrivateTag"},'(0009,"SPI",10)':{tag:'(0009,"SPI",10)',vr:"LO",name:"Comments",vm:"1",version:"PrivateTag"},'(0009,"SPI",15)':{tag:'(0009,"SPI",15)',vr:"LO",name:"SPIImageUID",vm:"1",version:"PrivateTag"},'(0009,"SPI",40)':{tag:'(0009,"SPI",40)',vr:"US",name:"DataObjectType",vm:"1",version:"PrivateTag"},'(0009,"SPI",41)':{tag:'(0009,"SPI",41)',vr:"LT",name:"DataObjectSubtype",vm:"1",version:"PrivateTag"},'(0011,"SPI",10)':{tag:'(0011,"SPI",10)',vr:"LT",name:"Organ",vm:"1",version:"PrivateTag"},'(0011,"SPI",15)':{tag:'(0011,"SPI",15)',vr:"LT",name:"AllergyIndication",vm:"1",version:"PrivateTag"},'(0011,"SPI",20)':{tag:'(0011,"SPI",20)',vr:"LT",name:"Pregnancy",vm:"1",version:"PrivateTag"},'(0029,"SPI",60)':{tag:'(0029,"SPI",60)',vr:"LT",name:"CompressionAlgorithm",vm:"1",version:"PrivateTag"},'(0009,"SPI-P Release 1",00)':{tag:'(0009,"SPI-P Release 1",00)',vr:"LT",name:"DataObjectRecognitionCode",vm:"1",version:"PrivateTag"},'(0009,"SPI-P Release 1",04)':{tag:'(0009,"SPI-P Release 1",04)',vr:"LO",name:"ImageDataConsistence",vm:"1",version:"PrivateTag"},'(0009,"SPI-P Release 1",08)':{tag:'(0009,"SPI-P Release 1",08)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0009,"SPI-P Release 1",12)':{tag:'(0009,"SPI-P Release 1",12)',vr:"LO",name:"Unknown",vm:"1",version:"PrivateTag"},'(0009,"SPI-P Release 1",15)':{tag:'(0009,"SPI-P Release 1",15)',vr:"LO",name:"UniqueIdentifier",vm:"1",version:"PrivateTag"},'(0009,"SPI-P Release 1",16)':{tag:'(0009,"SPI-P Release 1",16)',vr:"LO",name:"Unknown",vm:"1",version:"PrivateTag"},'(0009,"SPI-P Release 1",18)':{tag:'(0009,"SPI-P Release 1",18)',vr:"LO",name:"Unknown",vm:"1",version:"PrivateTag"},'(0009,"SPI-P Release 1",21)':{tag:'(0009,"SPI-P Release 1",21)',vr:"LT",name:"Unknown",vm:"1",version:"PrivateTag"},'(0009,"SPI-P Release 1",31)':{tag:'(0009,"SPI-P Release 1",31)',vr:"LT",name:"PACSUniqueIdentifier",vm:"1",version:"PrivateTag"},'(0009,"SPI-P Release 1",34)':{tag:'(0009,"SPI-P Release 1",34)',vr:"LT",name:"ClusterUniqueIdentifier",vm:"1",version:"PrivateTag"},'(0009,"SPI-P Release 1",38)':{tag:'(0009,"SPI-P Release 1",38)',vr:"LT",name:"SystemUniqueIdentifier",vm:"1",version:"PrivateTag"},'(0009,"SPI-P Release 1",39)':{tag:'(0009,"SPI-P Release 1",39)',vr:"LT",name:"Unknown",vm:"1",version:"PrivateTag"},'(0009,"SPI-P Release 1",51)':{tag:'(0009,"SPI-P Release 1",51)',vr:"LT",name:"StudyUniqueIdentifier",vm:"1",version:"PrivateTag"},'(0009,"SPI-P Release 1",61)':{tag:'(0009,"SPI-P Release 1",61)',vr:"LT",name:"SeriesUniqueIdentifier",vm:"1",version:"PrivateTag"},'(0009,"SPI-P Release 1",91)':{tag:'(0009,"SPI-P Release 1",91)',vr:"LT",name:"Unknown",vm:"1",version:"PrivateTag"},'(0009,"SPI-P Release 1",f2)':{tag:'(0009,"SPI-P Release 1",f2)',vr:"LT",name:"Unknown",vm:"1",version:"PrivateTag"},'(0009,"SPI-P Release 1",f3)':{tag:'(0009,"SPI-P Release 1",f3)',vr:"UN",name:"Unknown",vm:"1",version:"PrivateTag"},'(0009,"SPI-P Release 1",f4)':{tag:'(0009,"SPI-P Release 1",f4)',vr:"LT",name:"Unknown",vm:"1",version:"PrivateTag"},'(0009,"SPI-P Release 1",f5)':{tag:'(0009,"SPI-P Release 1",f5)',vr:"UN",name:"Unknown",vm:"1",version:"PrivateTag"},'(0009,"SPI-P Release 1",f7)':{tag:'(0009,"SPI-P Release 1",f7)',vr:"LT",name:"Unknown",vm:"1",version:"PrivateTag"},'(0011,"SPI-P Release 1",10)':{tag:'(0011,"SPI-P Release 1",10)',vr:"LT",name:"PatientEntryID",vm:"1",version:"PrivateTag"},'(0011,"SPI-P Release 1",21)':{tag:'(0011,"SPI-P Release 1",21)',vr:"UN",name:"Unknown",vm:"1",version:"PrivateTag"},'(0011,"SPI-P Release 1",22)':{tag:'(0011,"SPI-P Release 1",22)',vr:"UN",name:"Unknown",vm:"1",version:"PrivateTag"},'(0011,"SPI-P Release 1",31)':{tag:'(0011,"SPI-P Release 1",31)',vr:"UN",name:"Unknown",vm:"1",version:"PrivateTag"},'(0011,"SPI-P Release 1",32)':{tag:'(0011,"SPI-P Release 1",32)',vr:"UN",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SPI-P Release 1",00)':{tag:'(0019,"SPI-P Release 1",00)',vr:"UN",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SPI-P Release 1",01)':{tag:'(0019,"SPI-P Release 1",01)',vr:"UN",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SPI-P Release 1",02)':{tag:'(0019,"SPI-P Release 1",02)',vr:"UN",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SPI-P Release 1",10)':{tag:'(0019,"SPI-P Release 1",10)',vr:"US",name:"MainsFrequency",vm:"1",version:"PrivateTag"},'(0019,"SPI-P Release 1",25)':{tag:'(0019,"SPI-P Release 1",25)',vr:"LT",name:"OriginalPixelDataQuality",vm:"1-n",version:"PrivateTag"},'(0019,"SPI-P Release 1",30)':{tag:'(0019,"SPI-P Release 1",30)',vr:"US",name:"ECGTriggering",vm:"1",version:"PrivateTag"},'(0019,"SPI-P Release 1",31)':{tag:'(0019,"SPI-P Release 1",31)',vr:"UN",name:"ECG1Offset",vm:"1",version:"PrivateTag"},'(0019,"SPI-P Release 1",32)':{tag:'(0019,"SPI-P Release 1",32)',vr:"UN",name:"ECG2Offset1",vm:"1",version:"PrivateTag"},'(0019,"SPI-P Release 1",33)':{tag:'(0019,"SPI-P Release 1",33)',vr:"UN",name:"ECG2Offset2",vm:"1",version:"PrivateTag"},'(0019,"SPI-P Release 1",50)':{tag:'(0019,"SPI-P Release 1",50)',vr:"US",name:"VideoScanMode",vm:"1",version:"PrivateTag"},'(0019,"SPI-P Release 1",51)':{tag:'(0019,"SPI-P Release 1",51)',vr:"US",name:"VideoLineRate",vm:"1",version:"PrivateTag"},'(0019,"SPI-P Release 1",60)':{tag:'(0019,"SPI-P Release 1",60)',vr:"US",name:"XrayTechnique",vm:"1",version:"PrivateTag"},'(0019,"SPI-P Release 1",61)':{tag:'(0019,"SPI-P Release 1",61)',vr:"DS",name:"ImageIdentifierFromat",vm:"1",version:"PrivateTag"},'(0019,"SPI-P Release 1",62)':{tag:'(0019,"SPI-P Release 1",62)',vr:"US",name:"IrisDiaphragm",vm:"1",version:"PrivateTag"},'(0019,"SPI-P Release 1",63)':{tag:'(0019,"SPI-P Release 1",63)',vr:"CS",name:"Filter",vm:"1",version:"PrivateTag"},'(0019,"SPI-P Release 1",64)':{tag:'(0019,"SPI-P Release 1",64)',vr:"CS",name:"CineParallel",vm:"1",version:"PrivateTag"},'(0019,"SPI-P Release 1",65)':{tag:'(0019,"SPI-P Release 1",65)',vr:"CS",name:"CineMaster",vm:"1",version:"PrivateTag"},'(0019,"SPI-P Release 1",70)':{tag:'(0019,"SPI-P Release 1",70)',vr:"US",name:"ExposureChannel",vm:"1",version:"PrivateTag"},'(0019,"SPI-P Release 1",71)':{tag:'(0019,"SPI-P Release 1",71)',vr:"UN",name:"ExposureChannelFirstImage",vm:"1",version:"PrivateTag"},'(0019,"SPI-P Release 1",72)':{tag:'(0019,"SPI-P Release 1",72)',vr:"US",name:"ProcessingChannel",vm:"1",version:"PrivateTag"},'(0019,"SPI-P Release 1",80)':{tag:'(0019,"SPI-P Release 1",80)',vr:"DS",name:"AcquisitionDelay",vm:"1",version:"PrivateTag"},'(0019,"SPI-P Release 1",81)':{tag:'(0019,"SPI-P Release 1",81)',vr:"UN",name:"RelativeImageTime",vm:"1",version:"PrivateTag"},'(0019,"SPI-P Release 1",90)':{tag:'(0019,"SPI-P Release 1",90)',vr:"CS",name:"VideoWhiteCompression",vm:"1",version:"PrivateTag"},'(0019,"SPI-P Release 1",a0)':{tag:'(0019,"SPI-P Release 1",a0)',vr:"US",name:"Angulation",vm:"1",version:"PrivateTag"},'(0019,"SPI-P Release 1",a1)':{tag:'(0019,"SPI-P Release 1",a1)',vr:"US",name:"Rotation",vm:"1",version:"PrivateTag"},'(0021,"SPI-P Release 1",12)':{tag:'(0021,"SPI-P Release 1",12)',vr:"LT",name:"SeriesUniqueIdentifier",vm:"1",version:"PrivateTag"},'(0021,"SPI-P Release 1",14)':{tag:'(0021,"SPI-P Release 1",14)',vr:"LT",name:"Unknown",vm:"1",version:"PrivateTag"},'(0029,"SPI-P Release 1",00)':{tag:'(0029,"SPI-P Release 1",00)',vr:"DS",name:"Unknown",vm:"4",version:"PrivateTag"},'(0029,"SPI-P Release 1",20)':{tag:'(0029,"SPI-P Release 1",20)',vr:"DS",name:"PixelAspectRatio",vm:"1",version:"PrivateTag"},'(0029,"SPI-P Release 1",25)':{tag:'(0029,"SPI-P Release 1",25)',vr:"LO",name:"ProcessedPixelDataQuality",vm:"1-n",version:"PrivateTag"},'(0029,"SPI-P Release 1",30)':{tag:'(0029,"SPI-P Release 1",30)',vr:"LT",name:"Unknown",vm:"1",version:"PrivateTag"},'(0029,"SPI-P Release 1",38)':{tag:'(0029,"SPI-P Release 1",38)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0029,"SPI-P Release 1",60)':{tag:'(0029,"SPI-P Release 1",60)',vr:"LT",name:"Unknown",vm:"1",version:"PrivateTag"},'(0029,"SPI-P Release 1",61)':{tag:'(0029,"SPI-P Release 1",61)',vr:"LT",name:"Unknown",vm:"1",version:"PrivateTag"},'(0029,"SPI-P Release 1",67)':{tag:'(0029,"SPI-P Release 1",67)',vr:"LT",name:"Unknown",vm:"1",version:"PrivateTag"},'(0029,"SPI-P Release 1",70)':{tag:'(0029,"SPI-P Release 1",70)',vr:"LT",name:"WindowID",vm:"1",version:"PrivateTag"},'(0029,"SPI-P Release 1",71)':{tag:'(0029,"SPI-P Release 1",71)',vr:"CS",name:"VideoInvertSubtracted",vm:"1",version:"PrivateTag"},'(0029,"SPI-P Release 1",72)':{tag:'(0029,"SPI-P Release 1",72)',vr:"CS",name:"VideoInvertNonsubtracted",vm:"1",version:"PrivateTag"},'(0029,"SPI-P Release 1",77)':{tag:'(0029,"SPI-P Release 1",77)',vr:"CS",name:"WindowSelectStatus",vm:"1",version:"PrivateTag"},'(0029,"SPI-P Release 1",78)':{tag:'(0029,"SPI-P Release 1",78)',vr:"LT",name:"ECGDisplayPrintingID",vm:"1",version:"PrivateTag"},'(0029,"SPI-P Release 1",79)':{tag:'(0029,"SPI-P Release 1",79)',vr:"CS",name:"ECGDisplayPrinting",vm:"1",version:"PrivateTag"},'(0029,"SPI-P Release 1",7e)':{tag:'(0029,"SPI-P Release 1",7e)',vr:"CS",name:"ECGDisplayPrintingEnableStatus",vm:"1",version:"PrivateTag"},'(0029,"SPI-P Release 1",7f)':{tag:'(0029,"SPI-P Release 1",7f)',vr:"CS",name:"ECGDisplayPrintingSelectStatus",vm:"1",version:"PrivateTag"},'(0029,"SPI-P Release 1",80)':{tag:'(0029,"SPI-P Release 1",80)',vr:"LT",name:"PhysiologicalDisplayID",vm:"1",version:"PrivateTag"},'(0029,"SPI-P Release 1",81)':{tag:'(0029,"SPI-P Release 1",81)',vr:"US",name:"PreferredPhysiologicalChannelDisplay",vm:"1",version:"PrivateTag"},'(0029,"SPI-P Release 1",8e)':{tag:'(0029,"SPI-P Release 1",8e)',vr:"CS",name:"PhysiologicalDisplayEnableStatus",vm:"1",version:"PrivateTag"},'(0029,"SPI-P Release 1",8f)':{tag:'(0029,"SPI-P Release 1",8f)',vr:"CS",name:"PhysiologicalDisplaySelectStatus",vm:"1",version:"PrivateTag"},'(0029,"SPI-P Release 1",c0)':{tag:'(0029,"SPI-P Release 1",c0)',vr:"LT",name:"FunctionalShutterID",vm:"1",version:"PrivateTag"},'(0029,"SPI-P Release 1",c1)':{tag:'(0029,"SPI-P Release 1",c1)',vr:"US",name:"FieldOfShutter",vm:"1",version:"PrivateTag"},'(0029,"SPI-P Release 1",c5)':{tag:'(0029,"SPI-P Release 1",c5)',vr:"LT",name:"FieldOfShutterRectangle",vm:"1",version:"PrivateTag"},'(0029,"SPI-P Release 1",ce)':{tag:'(0029,"SPI-P Release 1",ce)',vr:"CS",name:"ShutterEnableStatus",vm:"1",version:"PrivateTag"},'(0029,"SPI-P Release 1",cf)':{tag:'(0029,"SPI-P Release 1",cf)',vr:"CS",name:"ShutterSelectStatus",vm:"1",version:"PrivateTag"},'(7FE1,"SPI-P Release 1",10)':{tag:'(7FE1,"SPI-P Release 1",10)',vr:"ox",name:"PixelData",vm:"1",version:"PrivateTag"},'(0009,"SPI-P Release 1;1",c0)':{tag:'(0009,"SPI-P Release 1;1",c0)',vr:"LT",name:"Unknown",vm:"1",version:"PrivateTag"},'(0009,"SPI-P Release 1;1",c1)':{tag:'(0009,"SPI-P Release 1;1",c1)',vr:"LT",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SPI-P Release 1;1",00)':{tag:'(0019,"SPI-P Release 1;1",00)',vr:"UN",name:"PhysiologicalDataType",vm:"1",version:"PrivateTag"},'(0019,"SPI-P Release 1;1",01)':{tag:'(0019,"SPI-P Release 1;1",01)',vr:"UN",name:"PhysiologicalDataChannelAndKind",vm:"1",version:"PrivateTag"},'(0019,"SPI-P Release 1;1",02)':{tag:'(0019,"SPI-P Release 1;1",02)',vr:"US",name:"SampleBitsAllocated",vm:"1",version:"PrivateTag"},'(0019,"SPI-P Release 1;1",03)':{tag:'(0019,"SPI-P Release 1;1",03)',vr:"US",name:"SampleBitsStored",vm:"1",version:"PrivateTag"},'(0019,"SPI-P Release 1;1",04)':{tag:'(0019,"SPI-P Release 1;1",04)',vr:"US",name:"SampleHighBit",vm:"1",version:"PrivateTag"},'(0019,"SPI-P Release 1;1",05)':{tag:'(0019,"SPI-P Release 1;1",05)',vr:"US",name:"SampleRepresentation",vm:"1",version:"PrivateTag"},'(0019,"SPI-P Release 1;1",06)':{tag:'(0019,"SPI-P Release 1;1",06)',vr:"UN",name:"SmallestSampleValue",vm:"1",version:"PrivateTag"},'(0019,"SPI-P Release 1;1",07)':{tag:'(0019,"SPI-P Release 1;1",07)',vr:"UN",name:"LargestSampleValue",vm:"1",version:"PrivateTag"},'(0019,"SPI-P Release 1;1",08)':{tag:'(0019,"SPI-P Release 1;1",08)',vr:"UN",name:"NumberOfSamples",vm:"1",version:"PrivateTag"},'(0019,"SPI-P Release 1;1",09)':{tag:'(0019,"SPI-P Release 1;1",09)',vr:"UN",name:"SampleData",vm:"1",version:"PrivateTag"},'(0019,"SPI-P Release 1;1",0a)':{tag:'(0019,"SPI-P Release 1;1",0a)',vr:"UN",name:"SampleRate",vm:"1",version:"PrivateTag"},'(0019,"SPI-P Release 1;1",10)':{tag:'(0019,"SPI-P Release 1;1",10)',vr:"UN",name:"PhysiologicalDataType2",vm:"1",version:"PrivateTag"},'(0019,"SPI-P Release 1;1",11)':{tag:'(0019,"SPI-P Release 1;1",11)',vr:"UN",name:"PhysiologicalDataChannelAndKind2",vm:"1",version:"PrivateTag"},'(0019,"SPI-P Release 1;1",12)':{tag:'(0019,"SPI-P Release 1;1",12)',vr:"US",name:"SampleBitsAllocated2",vm:"1",version:"PrivateTag"},'(0019,"SPI-P Release 1;1",13)':{tag:'(0019,"SPI-P Release 1;1",13)',vr:"US",name:"SampleBitsStored2",vm:"1",version:"PrivateTag"},'(0019,"SPI-P Release 1;1",14)':{tag:'(0019,"SPI-P Release 1;1",14)',vr:"US",name:"SampleHighBit2",vm:"1",version:"PrivateTag"},'(0019,"SPI-P Release 1;1",15)':{tag:'(0019,"SPI-P Release 1;1",15)',vr:"US",name:"SampleRepresentation2",vm:"1",version:"PrivateTag"},'(0019,"SPI-P Release 1;1",16)':{tag:'(0019,"SPI-P Release 1;1",16)',vr:"UN",name:"SmallestSampleValue2",vm:"1",version:"PrivateTag"},'(0019,"SPI-P Release 1;1",17)':{tag:'(0019,"SPI-P Release 1;1",17)',vr:"UN",name:"LargestSampleValue2",vm:"1",version:"PrivateTag"},'(0019,"SPI-P Release 1;1",18)':{tag:'(0019,"SPI-P Release 1;1",18)',vr:"UN",name:"NumberOfSamples2",vm:"1",version:"PrivateTag"},'(0019,"SPI-P Release 1;1",19)':{tag:'(0019,"SPI-P Release 1;1",19)',vr:"UN",name:"SampleData2",vm:"1",version:"PrivateTag"},'(0019,"SPI-P Release 1;1",1a)':{tag:'(0019,"SPI-P Release 1;1",1a)',vr:"UN",name:"SampleRate2",vm:"1",version:"PrivateTag"},'(0029,"SPI-P Release 1;1",00)':{tag:'(0029,"SPI-P Release 1;1",00)',vr:"LT",name:"ZoomID",vm:"1",version:"PrivateTag"},'(0029,"SPI-P Release 1;1",01)':{tag:'(0029,"SPI-P Release 1;1",01)',vr:"DS",name:"ZoomRectangle",vm:"1-n",version:"PrivateTag"},'(0029,"SPI-P Release 1;1",03)':{tag:'(0029,"SPI-P Release 1;1",03)',vr:"DS",name:"ZoomFactor",vm:"1",version:"PrivateTag"},'(0029,"SPI-P Release 1;1",04)':{tag:'(0029,"SPI-P Release 1;1",04)',vr:"US",name:"ZoomFunction",vm:"1",version:"PrivateTag"},'(0029,"SPI-P Release 1;1",0e)':{tag:'(0029,"SPI-P Release 1;1",0e)',vr:"CS",name:"ZoomEnableStatus",vm:"1",version:"PrivateTag"},'(0029,"SPI-P Release 1;1",0f)':{tag:'(0029,"SPI-P Release 1;1",0f)',vr:"CS",name:"ZoomSelectStatus",vm:"1",version:"PrivateTag"},'(0029,"SPI-P Release 1;1",40)':{tag:'(0029,"SPI-P Release 1;1",40)',vr:"LT",name:"MagnifyingGlassID",vm:"1",version:"PrivateTag"},'(0029,"SPI-P Release 1;1",41)':{tag:'(0029,"SPI-P Release 1;1",41)',vr:"DS",name:"MagnifyingGlassRectangle",vm:"1-n",version:"PrivateTag"},'(0029,"SPI-P Release 1;1",43)':{tag:'(0029,"SPI-P Release 1;1",43)',vr:"DS",name:"MagnifyingGlassFactor",vm:"1",version:"PrivateTag"},'(0029,"SPI-P Release 1;1",44)':{tag:'(0029,"SPI-P Release 1;1",44)',vr:"US",name:"MagnifyingGlassFunction",vm:"1",version:"PrivateTag"},'(0029,"SPI-P Release 1;1",4e)':{tag:'(0029,"SPI-P Release 1;1",4e)',vr:"CS",name:"MagnifyingGlassEnableStatus",vm:"1",version:"PrivateTag"},'(0029,"SPI-P Release 1;1",4f)':{tag:'(0029,"SPI-P Release 1;1",4f)',vr:"CS",name:"MagnifyingGlassSelectStatus",vm:"1",version:"PrivateTag"},'(0029,"SPI-P Release 1;2",00)':{tag:'(0029,"SPI-P Release 1;2",00)',vr:"LT",name:"SubtractionMaskID",vm:"1",version:"PrivateTag"},'(0029,"SPI-P Release 1;2",04)':{tag:'(0029,"SPI-P Release 1;2",04)',vr:"UN",name:"MaskingFunction",vm:"1",version:"PrivateTag"},'(0029,"SPI-P Release 1;2",0c)':{tag:'(0029,"SPI-P Release 1;2",0c)',vr:"UN",name:"ProprietaryMaskingParameters",vm:"1",version:"PrivateTag"},'(0029,"SPI-P Release 1;2",1e)':{tag:'(0029,"SPI-P Release 1;2",1e)',vr:"CS",name:"SubtractionMaskEnableStatus",vm:"1",version:"PrivateTag"},'(0029,"SPI-P Release 1;2",1f)':{tag:'(0029,"SPI-P Release 1;2",1f)',vr:"CS",name:"SubtractionMaskSelectStatus",vm:"1",version:"PrivateTag"},'(0029,"SPI-P Release 1;3",00)':{tag:'(0029,"SPI-P Release 1;3",00)',vr:"LT",name:"ImageEnhancementID",vm:"1",version:"PrivateTag"},'(0029,"SPI-P Release 1;3",01)':{tag:'(0029,"SPI-P Release 1;3",01)',vr:"LT",name:"ImageEnhancement",vm:"1",version:"PrivateTag"},'(0029,"SPI-P Release 1;3",02)':{tag:'(0029,"SPI-P Release 1;3",02)',vr:"LT",name:"ConvolutionID",vm:"1",version:"PrivateTag"},'(0029,"SPI-P Release 1;3",03)':{tag:'(0029,"SPI-P Release 1;3",03)',vr:"LT",name:"ConvolutionType",vm:"1",version:"PrivateTag"},'(0029,"SPI-P Release 1;3",04)':{tag:'(0029,"SPI-P Release 1;3",04)',vr:"LT",name:"ConvolutionKernelSizeID",vm:"1",version:"PrivateTag"},'(0029,"SPI-P Release 1;3",05)':{tag:'(0029,"SPI-P Release 1;3",05)',vr:"US",name:"ConvolutionKernelSize",vm:"2",version:"PrivateTag"},'(0029,"SPI-P Release 1;3",06)':{tag:'(0029,"SPI-P Release 1;3",06)',vr:"US",name:"ConvolutionKernel",vm:"1-n",version:"PrivateTag"},'(0029,"SPI-P Release 1;3",0c)':{tag:'(0029,"SPI-P Release 1;3",0c)',vr:"DS",name:"EnhancementGain",vm:"1",version:"PrivateTag"},'(0029,"SPI-P Release 1;3",1e)':{tag:'(0029,"SPI-P Release 1;3",1e)',vr:"CS",name:"ImageEnhancementEnableStatus",vm:"1",version:"PrivateTag"},'(0029,"SPI-P Release 1;3",1f)':{tag:'(0029,"SPI-P Release 1;3",1f)',vr:"CS",name:"ImageEnhancementSelectStatus",vm:"1",version:"PrivateTag"},'(0011,"SPI-P Release 2;1",18)':{tag:'(0011,"SPI-P Release 2;1",18)',vr:"LT",name:"Unknown",vm:"1",version:"PrivateTag"},'(0023,"SPI-P Release 2;1",0d)':{tag:'(0023,"SPI-P Release 2;1",0d)',vr:"UI",name:"Unknown",vm:"1",version:"PrivateTag"},'(0023,"SPI-P Release 2;1",0e)':{tag:'(0023,"SPI-P Release 2;1",0e)',vr:"UI",name:"Unknown",vm:"1",version:"PrivateTag"},'(0009,"SPI-P-GV-CT Release 1",00)':{tag:'(0009,"SPI-P-GV-CT Release 1",00)',vr:"LO",name:"Unknown",vm:"1",version:"PrivateTag"},'(0009,"SPI-P-GV-CT Release 1",10)':{tag:'(0009,"SPI-P-GV-CT Release 1",10)',vr:"LO",name:"Unknown",vm:"1",version:"PrivateTag"},'(0009,"SPI-P-GV-CT Release 1",20)':{tag:'(0009,"SPI-P-GV-CT Release 1",20)',vr:"LO",name:"Unknown",vm:"1",version:"PrivateTag"},'(0009,"SPI-P-GV-CT Release 1",30)':{tag:'(0009,"SPI-P-GV-CT Release 1",30)',vr:"LO",name:"Unknown",vm:"1",version:"PrivateTag"},'(0009,"SPI-P-GV-CT Release 1",40)':{tag:'(0009,"SPI-P-GV-CT Release 1",40)',vr:"LO",name:"Unknown",vm:"1",version:"PrivateTag"},'(0009,"SPI-P-GV-CT Release 1",50)':{tag:'(0009,"SPI-P-GV-CT Release 1",50)',vr:"LO",name:"Unknown",vm:"1",version:"PrivateTag"},'(0009,"SPI-P-GV-CT Release 1",60)':{tag:'(0009,"SPI-P-GV-CT Release 1",60)',vr:"LO",name:"Unknown",vm:"1",version:"PrivateTag"},'(0009,"SPI-P-GV-CT Release 1",70)':{tag:'(0009,"SPI-P-GV-CT Release 1",70)',vr:"LO",name:"Unknown",vm:"1",version:"PrivateTag"},'(0009,"SPI-P-GV-CT Release 1",75)':{tag:'(0009,"SPI-P-GV-CT Release 1",75)',vr:"LO",name:"Unknown",vm:"1",version:"PrivateTag"},'(0009,"SPI-P-GV-CT Release 1",80)':{tag:'(0009,"SPI-P-GV-CT Release 1",80)',vr:"LO",name:"Unknown",vm:"1",version:"PrivateTag"},'(0009,"SPI-P-GV-CT Release 1",90)':{tag:'(0009,"SPI-P-GV-CT Release 1",90)',vr:"LO",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SPI-P-GV-CT Release 1",08)':{tag:'(0019,"SPI-P-GV-CT Release 1",08)',vr:"IS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SPI-P-GV-CT Release 1",09)':{tag:'(0019,"SPI-P-GV-CT Release 1",09)',vr:"IS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SPI-P-GV-CT Release 1",0a)':{tag:'(0019,"SPI-P-GV-CT Release 1",0a)',vr:"IS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SPI-P-GV-CT Release 1",10)':{tag:'(0019,"SPI-P-GV-CT Release 1",10)',vr:"LO",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SPI-P-GV-CT Release 1",20)':{tag:'(0019,"SPI-P-GV-CT Release 1",20)',vr:"TM",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SPI-P-GV-CT Release 1",50)':{tag:'(0019,"SPI-P-GV-CT Release 1",50)',vr:"LO",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SPI-P-GV-CT Release 1",60)':{tag:'(0019,"SPI-P-GV-CT Release 1",60)',vr:"DS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SPI-P-GV-CT Release 1",61)':{tag:'(0019,"SPI-P-GV-CT Release 1",61)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SPI-P-GV-CT Release 1",63)':{tag:'(0019,"SPI-P-GV-CT Release 1",63)',vr:"LO",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SPI-P-GV-CT Release 1",64)':{tag:'(0019,"SPI-P-GV-CT Release 1",64)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SPI-P-GV-CT Release 1",65)':{tag:'(0019,"SPI-P-GV-CT Release 1",65)',vr:"IS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SPI-P-GV-CT Release 1",70)':{tag:'(0019,"SPI-P-GV-CT Release 1",70)',vr:"LT",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SPI-P-GV-CT Release 1",80)':{tag:'(0019,"SPI-P-GV-CT Release 1",80)',vr:"LO",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SPI-P-GV-CT Release 1",81)':{tag:'(0019,"SPI-P-GV-CT Release 1",81)',vr:"LO",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SPI-P-GV-CT Release 1",90)':{tag:'(0019,"SPI-P-GV-CT Release 1",90)',vr:"LO",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SPI-P-GV-CT Release 1",a0)':{tag:'(0019,"SPI-P-GV-CT Release 1",a0)',vr:"LO",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SPI-P-GV-CT Release 1",a1)':{tag:'(0019,"SPI-P-GV-CT Release 1",a1)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SPI-P-GV-CT Release 1",a2)':{tag:'(0019,"SPI-P-GV-CT Release 1",a2)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SPI-P-GV-CT Release 1",a3)':{tag:'(0019,"SPI-P-GV-CT Release 1",a3)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SPI-P-GV-CT Release 1",b0)':{tag:'(0019,"SPI-P-GV-CT Release 1",b0)',vr:"LO",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SPI-P-GV-CT Release 1",b1)':{tag:'(0019,"SPI-P-GV-CT Release 1",b1)',vr:"LO",name:"Unknown",vm:"1",version:"PrivateTag"},'(0021,"SPI-P-GV-CT Release 1",20)':{tag:'(0021,"SPI-P-GV-CT Release 1",20)',vr:"LO",name:"Unknown",vm:"1",version:"PrivateTag"},'(0021,"SPI-P-GV-CT Release 1",30)':{tag:'(0021,"SPI-P-GV-CT Release 1",30)',vr:"DS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0021,"SPI-P-GV-CT Release 1",40)':{tag:'(0021,"SPI-P-GV-CT Release 1",40)',vr:"LO",name:"Unknown",vm:"1",version:"PrivateTag"},'(0021,"SPI-P-GV-CT Release 1",50)':{tag:'(0021,"SPI-P-GV-CT Release 1",50)',vr:"LO",name:"Unknown",vm:"1",version:"PrivateTag"},'(0021,"SPI-P-GV-CT Release 1",60)':{tag:'(0021,"SPI-P-GV-CT Release 1",60)',vr:"DS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0021,"SPI-P-GV-CT Release 1",70)':{tag:'(0021,"SPI-P-GV-CT Release 1",70)',vr:"DS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0021,"SPI-P-GV-CT Release 1",80)':{tag:'(0021,"SPI-P-GV-CT Release 1",80)',vr:"DS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0021,"SPI-P-GV-CT Release 1",90)':{tag:'(0021,"SPI-P-GV-CT Release 1",90)',vr:"DS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0021,"SPI-P-GV-CT Release 1",a0)':{tag:'(0021,"SPI-P-GV-CT Release 1",a0)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0021,"SPI-P-GV-CT Release 1",a1)':{tag:'(0021,"SPI-P-GV-CT Release 1",a1)',vr:"DS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0021,"SPI-P-GV-CT Release 1",a2)':{tag:'(0021,"SPI-P-GV-CT Release 1",a2)',vr:"DS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0021,"SPI-P-GV-CT Release 1",a3)':{tag:'(0021,"SPI-P-GV-CT Release 1",a3)',vr:"LT",name:"Unknown",vm:"1",version:"PrivateTag"},'(0021,"SPI-P-GV-CT Release 1",a4)':{tag:'(0021,"SPI-P-GV-CT Release 1",a4)',vr:"LT",name:"Unknown",vm:"1",version:"PrivateTag"},'(0021,"SPI-P-GV-CT Release 1",b0)':{tag:'(0021,"SPI-P-GV-CT Release 1",b0)',vr:"LO",name:"Unknown",vm:"1",version:"PrivateTag"},'(0021,"SPI-P-GV-CT Release 1",c0)':{tag:'(0021,"SPI-P-GV-CT Release 1",c0)',vr:"LO",name:"Unknown",vm:"1",version:"PrivateTag"},'(0029,"SPI-P-GV-CT Release 1",10)':{tag:'(0029,"SPI-P-GV-CT Release 1",10)',vr:"LO",name:"Unknown",vm:"1",version:"PrivateTag"},'(0029,"SPI-P-GV-CT Release 1",30)':{tag:'(0029,"SPI-P-GV-CT Release 1",30)',vr:"UL",name:"Unknown",vm:"1",version:"PrivateTag"},'(0029,"SPI-P-GV-CT Release 1",31)':{tag:'(0029,"SPI-P-GV-CT Release 1",31)',vr:"UL",name:"Unknown",vm:"1",version:"PrivateTag"},'(0029,"SPI-P-GV-CT Release 1",32)':{tag:'(0029,"SPI-P-GV-CT Release 1",32)',vr:"UL",name:"Unknown",vm:"1",version:"PrivateTag"},'(0029,"SPI-P-GV-CT Release 1",33)':{tag:'(0029,"SPI-P-GV-CT Release 1",33)',vr:"UL",name:"Unknown",vm:"1",version:"PrivateTag"},'(0029,"SPI-P-GV-CT Release 1",80)':{tag:'(0029,"SPI-P-GV-CT Release 1",80)',vr:"LO",name:"Unknown",vm:"1",version:"PrivateTag"},'(0029,"SPI-P-GV-CT Release 1",90)':{tag:'(0029,"SPI-P-GV-CT Release 1",90)',vr:"LO",name:"Unknown",vm:"1",version:"PrivateTag"},'(0029,"SPI-P-GV-CT Release 1",d0)':{tag:'(0029,"SPI-P-GV-CT Release 1",d0)',vr:"IS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0029,"SPI-P-GV-CT Release 1",d1)':{tag:'(0029,"SPI-P-GV-CT Release 1",d1)',vr:"IS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SPI-P-PCR Release 2",30)':{tag:'(0019,"SPI-P-PCR Release 2",30)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0021,"SPI-P-Private-CWS Release 1",00)':{tag:'(0021,"SPI-P-Private-CWS Release 1",00)',vr:"LT",name:"WindowOfImagesID",vm:"1",version:"PrivateTag"},'(0021,"SPI-P-Private-CWS Release 1",01)':{tag:'(0021,"SPI-P-Private-CWS Release 1",01)',vr:"CS",name:"WindowOfImagesType",vm:"1",version:"PrivateTag"},'(0021,"SPI-P-Private-CWS Release 1",02)':{tag:'(0021,"SPI-P-Private-CWS Release 1",02)',vr:"IS",name:"WindowOfImagesScope",vm:"1-n",version:"PrivateTag"},'(0019,"SPI-P-Private-DCI Release 1",10)':{tag:'(0019,"SPI-P-Private-DCI Release 1",10)',vr:"UN",name:"ECGTimeMapDataBitsAllocated",vm:"1",version:"PrivateTag"},'(0019,"SPI-P-Private-DCI Release 1",11)':{tag:'(0019,"SPI-P-Private-DCI Release 1",11)',vr:"UN",name:"ECGTimeMapDataBitsStored",vm:"1",version:"PrivateTag"},'(0019,"SPI-P-Private-DCI Release 1",12)':{tag:'(0019,"SPI-P-Private-DCI Release 1",12)',vr:"UN",name:"ECGTimeMapDataHighBit",vm:"1",version:"PrivateTag"},'(0019,"SPI-P-Private-DCI Release 1",13)':{tag:'(0019,"SPI-P-Private-DCI Release 1",13)',vr:"UN",name:"ECGTimeMapDataRepresentation",vm:"1",version:"PrivateTag"},'(0019,"SPI-P-Private-DCI Release 1",14)':{tag:'(0019,"SPI-P-Private-DCI Release 1",14)',vr:"UN",name:"ECGTimeMapDataSmallestDataValue",vm:"1",version:"PrivateTag"},'(0019,"SPI-P-Private-DCI Release 1",15)':{tag:'(0019,"SPI-P-Private-DCI Release 1",15)',vr:"UN",name:"ECGTimeMapDataLargestDataValue",vm:"1",version:"PrivateTag"},'(0019,"SPI-P-Private-DCI Release 1",16)':{tag:'(0019,"SPI-P-Private-DCI Release 1",16)',vr:"UN",name:"ECGTimeMapDataNumberOfDataValues",vm:"1",version:"PrivateTag"},'(0019,"SPI-P-Private-DCI Release 1",17)':{tag:'(0019,"SPI-P-Private-DCI Release 1",17)',vr:"UN",name:"ECGTimeMapData",vm:"1",version:"PrivateTag"},'(0021,"SPI-P-Private_CDS Release 1",40)':{tag:'(0021,"SPI-P-Private_CDS Release 1",40)',vr:"IS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0029,"SPI-P-Private_CDS Release 1",00)':{tag:'(0029,"SPI-P-Private_CDS Release 1",00)',vr:"UN",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SPI-P-Private_ICS Release 1",30)':{tag:'(0019,"SPI-P-Private_ICS Release 1",30)',vr:"DS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SPI-P-Private_ICS Release 1",31)':{tag:'(0019,"SPI-P-Private_ICS Release 1",31)',vr:"LO",name:"Unknown",vm:"1",version:"PrivateTag"},'(0029,"SPI-P-Private_ICS Release 1",08)':{tag:'(0029,"SPI-P-Private_ICS Release 1",08)',vr:"SQ",name:"Unknown",vm:"1",version:"PrivateTag"},'(0029,"SPI-P-Private_ICS Release 1",0f)':{tag:'(0029,"SPI-P-Private_ICS Release 1",0f)',vr:"SQ",name:"Unknown",vm:"1",version:"PrivateTag"},'(0029,"SPI-P-Private_ICS Release 1",10)':{tag:'(0029,"SPI-P-Private_ICS Release 1",10)',vr:"SQ",name:"Unknown",vm:"1",version:"PrivateTag"},'(0029,"SPI-P-Private_ICS Release 1",1b)':{tag:'(0029,"SPI-P-Private_ICS Release 1",1b)',vr:"SQ",name:"Unknown",vm:"1",version:"PrivateTag"},'(0029,"SPI-P-Private_ICS Release 1",1c)':{tag:'(0029,"SPI-P-Private_ICS Release 1",1c)',vr:"SQ",name:"Unknown",vm:"1",version:"PrivateTag"},'(0029,"SPI-P-Private_ICS Release 1",21)':{tag:'(0029,"SPI-P-Private_ICS Release 1",21)',vr:"SQ",name:"Unknown",vm:"1",version:"PrivateTag"},'(0029,"SPI-P-Private_ICS Release 1",43)':{tag:'(0029,"SPI-P-Private_ICS Release 1",43)',vr:"SQ",name:"Unknown",vm:"1",version:"PrivateTag"},'(0029,"SPI-P-Private_ICS Release 1",44)':{tag:'(0029,"SPI-P-Private_ICS Release 1",44)',vr:"SQ",name:"Unknown",vm:"1",version:"PrivateTag"},'(0029,"SPI-P-Private_ICS Release 1",4C)':{tag:'(0029,"SPI-P-Private_ICS Release 1",4C)',vr:"SQ",name:"Unknown",vm:"1",version:"PrivateTag"},'(0029,"SPI-P-Private_ICS Release 1",67)':{tag:'(0029,"SPI-P-Private_ICS Release 1",67)',vr:"LO",name:"Unknown",vm:"1",version:"PrivateTag"},'(0029,"SPI-P-Private_ICS Release 1",68)':{tag:'(0029,"SPI-P-Private_ICS Release 1",68)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0029,"SPI-P-Private_ICS Release 1",6A)':{tag:'(0029,"SPI-P-Private_ICS Release 1",6A)',vr:"LO",name:"Unknown",vm:"1",version:"PrivateTag"},'(0029,"SPI-P-Private_ICS Release 1",6B)':{tag:'(0029,"SPI-P-Private_ICS Release 1",6B)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0029,"SPI-P-Private_ICS Release 1;1",00)':{tag:'(0029,"SPI-P-Private_ICS Release 1;1",00)',vr:"SL",name:"Unknown",vm:"1",version:"PrivateTag"},'(0029,"SPI-P-Private_ICS Release 1;1",05)':{tag:'(0029,"SPI-P-Private_ICS Release 1;1",05)',vr:"FL",name:"Unknown",vm:"1",version:"PrivateTag"},'(0029,"SPI-P-Private_ICS Release 1;1",06)':{tag:'(0029,"SPI-P-Private_ICS Release 1;1",06)',vr:"FL",name:"Unknown",vm:"1",version:"PrivateTag"},'(0029,"SPI-P-Private_ICS Release 1;1",20)':{tag:'(0029,"SPI-P-Private_ICS Release 1;1",20)',vr:"FL",name:"Unknown",vm:"1",version:"PrivateTag"},'(0029,"SPI-P-Private_ICS Release 1;1",21)':{tag:'(0029,"SPI-P-Private_ICS Release 1;1",21)',vr:"FL",name:"Unknown",vm:"1",version:"PrivateTag"},'(0029,"SPI-P-Private_ICS Release 1;1",CD)':{tag:'(0029,"SPI-P-Private_ICS Release 1;1",CD)',vr:"SQ",name:"Unknown",vm:"1",version:"PrivateTag"},'(0029,"SPI-P-Private_ICS Release 1;2",00)':{tag:'(0029,"SPI-P-Private_ICS Release 1;2",00)',vr:"FD",name:"Unknown",vm:"1",version:"PrivateTag"},'(0029,"SPI-P-Private_ICS Release 1;2",01)':{tag:'(0029,"SPI-P-Private_ICS Release 1;2",01)',vr:"FD",name:"Unknown",vm:"1",version:"PrivateTag"},'(0029,"SPI-P-Private_ICS Release 1;2",02)':{tag:'(0029,"SPI-P-Private_ICS Release 1;2",02)',vr:"FD",name:"Unknown",vm:"1",version:"PrivateTag"},'(0029,"SPI-P-Private_ICS Release 1;2",03)':{tag:'(0029,"SPI-P-Private_ICS Release 1;2",03)',vr:"SL",name:"Unknown",vm:"1",version:"PrivateTag"},'(0029,"SPI-P-Private_ICS Release 1;2",04)':{tag:'(0029,"SPI-P-Private_ICS Release 1;2",04)',vr:"SL",name:"Unknown",vm:"1",version:"PrivateTag"},'(0029,"SPI-P-Private_ICS Release 1;2",05)':{tag:'(0029,"SPI-P-Private_ICS Release 1;2",05)',vr:"SL",name:"Unknown",vm:"1",version:"PrivateTag"},'(0029,"SPI-P-Private_ICS Release 1;3",C0)':{tag:'(0029,"SPI-P-Private_ICS Release 1;3",C0)',vr:"SQ",name:"Unknown",vm:"1",version:"PrivateTag"},'(0029,"SPI-P-Private_ICS Release 1;3",C1)':{tag:'(0029,"SPI-P-Private_ICS Release 1;3",C1)',vr:"SQ",name:"Unknown",vm:"1",version:"PrivateTag"},'(0029,"SPI-P-Private_ICS Release 1;3",C2)':{tag:'(0029,"SPI-P-Private_ICS Release 1;3",C2)',vr:"SQ",name:"Unknown",vm:"1",version:"PrivateTag"},'(0029,"SPI-P-Private_ICS Release 1;3",C3)':{tag:'(0029,"SPI-P-Private_ICS Release 1;3",C3)',vr:"SQ",name:"Unknown",vm:"1",version:"PrivateTag"},'(0029,"SPI-P-Private_ICS Release 1;3",C4)':{tag:'(0029,"SPI-P-Private_ICS Release 1;3",C4)',vr:"SQ",name:"Unknown",vm:"1",version:"PrivateTag"},'(0029,"SPI-P-Private_ICS Release 1;3",C5)':{tag:'(0029,"SPI-P-Private_ICS Release 1;3",C5)',vr:"SQ",name:"Unknown",vm:"1",version:"PrivateTag"},'(0029,"SPI-P-Private_ICS Release 1;4",02)':{tag:'(0029,"SPI-P-Private_ICS Release 1;4",02)',vr:"SQ",name:"Unknown",vm:"1",version:"PrivateTag"},'(0029,"SPI-P-Private_ICS Release 1;4",9A)':{tag:'(0029,"SPI-P-Private_ICS Release 1;4",9A)',vr:"SQ",name:"Unknown",vm:"1",version:"PrivateTag"},'(0029,"SPI-P-Private_ICS Release 1;4",E0)':{tag:'(0029,"SPI-P-Private_ICS Release 1;4",E0)',vr:"SQ",name:"Unknown",vm:"1",version:"PrivateTag"},'(0029,"SPI-P-Private_ICS Release 1;5",50)':{tag:'(0029,"SPI-P-Private_ICS Release 1;5",50)',vr:"CS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0029,"SPI-P-Private_ICS Release 1;5",55)':{tag:'(0029,"SPI-P-Private_ICS Release 1;5",55)',vr:"CS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"SPI-P-XSB-DCI Release 1",10)':{tag:'(0019,"SPI-P-XSB-DCI Release 1",10)',vr:"LT",name:"VideoBeamBoost",vm:"1",version:"PrivateTag"},'(0019,"SPI-P-XSB-DCI Release 1",11)':{tag:'(0019,"SPI-P-XSB-DCI Release 1",11)',vr:"US",name:"ChannelGeneratingVideoSync",vm:"1",version:"PrivateTag"},'(0019,"SPI-P-XSB-DCI Release 1",12)':{tag:'(0019,"SPI-P-XSB-DCI Release 1",12)',vr:"US",name:"VideoGain",vm:"1",version:"PrivateTag"},'(0019,"SPI-P-XSB-DCI Release 1",13)':{tag:'(0019,"SPI-P-XSB-DCI Release 1",13)',vr:"US",name:"VideoOffset",vm:"1",version:"PrivateTag"},'(0019,"SPI-P-XSB-DCI Release 1",20)':{tag:'(0019,"SPI-P-XSB-DCI Release 1",20)',vr:"DS",name:"RTDDataCompressionFactor",vm:"1",version:"PrivateTag"},'(0029,"Silhouette Annot V1.0",11)':{tag:'(0029,"Silhouette Annot V1.0",11)',vr:"IS",name:"AnnotationName",vm:"1",version:"PrivateTag"},'(0029,"Silhouette Annot V1.0",12)':{tag:'(0029,"Silhouette Annot V1.0",12)',vr:"LT",name:"AnnotationFont",vm:"1",version:"PrivateTag"},'(0029,"Silhouette Annot V1.0",13)':{tag:'(0029,"Silhouette Annot V1.0",13)',vr:"LT",name:"AnnotationTextForegroundColor",vm:"1",version:"PrivateTag"},'(0029,"Silhouette Annot V1.0",14)':{tag:'(0029,"Silhouette Annot V1.0",14)',vr:"LT",name:"AnnotationTextBackgroundColor",vm:"1",version:"PrivateTag"},'(0029,"Silhouette Annot V1.0",15)':{tag:'(0029,"Silhouette Annot V1.0",15)',vr:"UL",name:"AnnotationTextBackingMode",vm:"1",version:"PrivateTag"},'(0029,"Silhouette Annot V1.0",16)':{tag:'(0029,"Silhouette Annot V1.0",16)',vr:"UL",name:"AnnotationTextJustification",vm:"1",version:"PrivateTag"},'(0029,"Silhouette Annot V1.0",17)':{tag:'(0029,"Silhouette Annot V1.0",17)',vr:"UL",name:"AnnotationTextLocation",vm:"1",version:"PrivateTag"},'(0029,"Silhouette Annot V1.0",18)':{tag:'(0029,"Silhouette Annot V1.0",18)',vr:"LT",name:"AnnotationTextString",vm:"1",version:"PrivateTag"},'(0029,"Silhouette Annot V1.0",19)':{tag:'(0029,"Silhouette Annot V1.0",19)',vr:"UL",name:"AnnotationTextAttachMode",vm:"1",version:"PrivateTag"},'(0029,"Silhouette Annot V1.0",20)':{tag:'(0029,"Silhouette Annot V1.0",20)',vr:"UL",name:"AnnotationTextCursorMode",vm:"1",version:"PrivateTag"},'(0029,"Silhouette Annot V1.0",21)':{tag:'(0029,"Silhouette Annot V1.0",21)',vr:"UL",name:"AnnotationTextShadowOffsetX",vm:"1",version:"PrivateTag"},'(0029,"Silhouette Annot V1.0",22)':{tag:'(0029,"Silhouette Annot V1.0",22)',vr:"UL",name:"AnnotationTextShadowOffsetY",vm:"1",version:"PrivateTag"},'(0029,"Silhouette Annot V1.0",23)':{tag:'(0029,"Silhouette Annot V1.0",23)',vr:"LT",name:"AnnotationLineColor",vm:"1",version:"PrivateTag"},'(0029,"Silhouette Annot V1.0",24)':{tag:'(0029,"Silhouette Annot V1.0",24)',vr:"UL",name:"AnnotationLineThickness",vm:"1",version:"PrivateTag"},'(0029,"Silhouette Annot V1.0",25)':{tag:'(0029,"Silhouette Annot V1.0",25)',vr:"UL",name:"AnnotationLineType",vm:"1",version:"PrivateTag"},'(0029,"Silhouette Annot V1.0",26)':{tag:'(0029,"Silhouette Annot V1.0",26)',vr:"UL",name:"AnnotationLineStyle",vm:"1",version:"PrivateTag"},'(0029,"Silhouette Annot V1.0",27)':{tag:'(0029,"Silhouette Annot V1.0",27)',vr:"UL",name:"AnnotationLineDashLength",vm:"1",version:"PrivateTag"},'(0029,"Silhouette Annot V1.0",28)':{tag:'(0029,"Silhouette Annot V1.0",28)',vr:"UL",name:"AnnotationLineAttachMode",vm:"1",version:"PrivateTag"},'(0029,"Silhouette Annot V1.0",29)':{tag:'(0029,"Silhouette Annot V1.0",29)',vr:"UL",name:"AnnotationLinePointCount",vm:"1",version:"PrivateTag"},'(0029,"Silhouette Annot V1.0",30)':{tag:'(0029,"Silhouette Annot V1.0",30)',vr:"FD",name:"AnnotationLinePoints",vm:"1",version:"PrivateTag"},'(0029,"Silhouette Annot V1.0",31)':{tag:'(0029,"Silhouette Annot V1.0",31)',vr:"UL",name:"AnnotationLineControlSize",vm:"1",version:"PrivateTag"},'(0029,"Silhouette Annot V1.0",32)':{tag:'(0029,"Silhouette Annot V1.0",32)',vr:"LT",name:"AnnotationMarkerColor",vm:"1",version:"PrivateTag"},'(0029,"Silhouette Annot V1.0",33)':{tag:'(0029,"Silhouette Annot V1.0",33)',vr:"UL",name:"AnnotationMarkerType",vm:"1",version:"PrivateTag"},'(0029,"Silhouette Annot V1.0",34)':{tag:'(0029,"Silhouette Annot V1.0",34)',vr:"UL",name:"AnnotationMarkerSize",vm:"1",version:"PrivateTag"},'(0029,"Silhouette Annot V1.0",35)':{tag:'(0029,"Silhouette Annot V1.0",35)',vr:"FD",name:"AnnotationMarkerLocation",vm:"1",version:"PrivateTag"},'(0029,"Silhouette Annot V1.0",36)':{tag:'(0029,"Silhouette Annot V1.0",36)',vr:"UL",name:"AnnotationMarkerAttachMode",vm:"1",version:"PrivateTag"},'(0029,"Silhouette Annot V1.0",37)':{tag:'(0029,"Silhouette Annot V1.0",37)',vr:"LT",name:"AnnotationGeomColor",vm:"1",version:"PrivateTag"},'(0029,"Silhouette Annot V1.0",38)':{tag:'(0029,"Silhouette Annot V1.0",38)',vr:"UL",name:"AnnotationGeomThickness",vm:"1",version:"PrivateTag"},'(0029,"Silhouette Annot V1.0",39)':{tag:'(0029,"Silhouette Annot V1.0",39)',vr:"UL",name:"AnnotationGeomLineStyle",vm:"1",version:"PrivateTag"},'(0029,"Silhouette Annot V1.0",40)':{tag:'(0029,"Silhouette Annot V1.0",40)',vr:"UL",name:"AnnotationGeomDashLength",vm:"1",version:"PrivateTag"},'(0029,"Silhouette Annot V1.0",41)':{tag:'(0029,"Silhouette Annot V1.0",41)',vr:"UL",name:"AnnotationGeomFillPattern",vm:"1",version:"PrivateTag"},'(0029,"Silhouette Annot V1.0",42)':{tag:'(0029,"Silhouette Annot V1.0",42)',vr:"UL",name:"AnnotationInteractivity",vm:"1",version:"PrivateTag"},'(0029,"Silhouette Annot V1.0",43)':{tag:'(0029,"Silhouette Annot V1.0",43)',vr:"FD",name:"AnnotationArrowLength",vm:"1",version:"PrivateTag"},'(0029,"Silhouette Annot V1.0",44)':{tag:'(0029,"Silhouette Annot V1.0",44)',vr:"FD",name:"AnnotationArrowAngle",vm:"1",version:"PrivateTag"},'(0029,"Silhouette Annot V1.0",45)':{tag:'(0029,"Silhouette Annot V1.0",45)',vr:"UL",name:"AnnotationDontSave",vm:"1",version:"PrivateTag"},'(0029,"Silhouette Graphics Export V1.0",00)':{tag:'(0029,"Silhouette Graphics Export V1.0",00)',vr:"UI",name:"Unknown",vm:"1",version:"PrivateTag"},'(0029,"Silhouette Line V1.0",11)':{tag:'(0029,"Silhouette Line V1.0",11)',vr:"IS",name:"LineName",vm:"1",version:"PrivateTag"},'(0029,"Silhouette Line V1.0",12)':{tag:'(0029,"Silhouette Line V1.0",12)',vr:"LT",name:"LineNameFont",vm:"1",version:"PrivateTag"},'(0029,"Silhouette Line V1.0",13)':{tag:'(0029,"Silhouette Line V1.0",13)',vr:"UL",name:"LineNameDisplay",vm:"1",version:"PrivateTag"},'(0029,"Silhouette Line V1.0",14)':{tag:'(0029,"Silhouette Line V1.0",14)',vr:"LT",name:"LineNormalColor",vm:"1",version:"PrivateTag"},'(0029,"Silhouette Line V1.0",15)':{tag:'(0029,"Silhouette Line V1.0",15)',vr:"UL",name:"LineType",vm:"1",version:"PrivateTag"},'(0029,"Silhouette Line V1.0",16)':{tag:'(0029,"Silhouette Line V1.0",16)',vr:"UL",name:"LineThickness",vm:"1",version:"PrivateTag"},'(0029,"Silhouette Line V1.0",17)':{tag:'(0029,"Silhouette Line V1.0",17)',vr:"UL",name:"LineStyle",vm:"1",version:"PrivateTag"},'(0029,"Silhouette Line V1.0",18)':{tag:'(0029,"Silhouette Line V1.0",18)',vr:"UL",name:"LineDashLength",vm:"1",version:"PrivateTag"},'(0029,"Silhouette Line V1.0",19)':{tag:'(0029,"Silhouette Line V1.0",19)',vr:"UL",name:"LineInteractivity",vm:"1",version:"PrivateTag"},'(0029,"Silhouette Line V1.0",20)':{tag:'(0029,"Silhouette Line V1.0",20)',vr:"LT",name:"LineMeasurementColor",vm:"1",version:"PrivateTag"},'(0029,"Silhouette Line V1.0",21)':{tag:'(0029,"Silhouette Line V1.0",21)',vr:"LT",name:"LineMeasurementFont",vm:"1",version:"PrivateTag"},'(0029,"Silhouette Line V1.0",22)':{tag:'(0029,"Silhouette Line V1.0",22)',vr:"UL",name:"LineMeasurementDashLength",vm:"1",version:"PrivateTag"},'(0029,"Silhouette Line V1.0",23)':{tag:'(0029,"Silhouette Line V1.0",23)',vr:"UL",name:"LinePointSpace",vm:"1",version:"PrivateTag"},'(0029,"Silhouette Line V1.0",24)':{tag:'(0029,"Silhouette Line V1.0",24)',vr:"FD",name:"LinePoints",vm:"1",version:"PrivateTag"},'(0029,"Silhouette Line V1.0",25)':{tag:'(0029,"Silhouette Line V1.0",25)',vr:"UL",name:"LineControlPointSize",vm:"1",version:"PrivateTag"},'(0029,"Silhouette Line V1.0",26)':{tag:'(0029,"Silhouette Line V1.0",26)',vr:"UL",name:"LineControlPointSpace",vm:"1",version:"PrivateTag"},'(0029,"Silhouette Line V1.0",27)':{tag:'(0029,"Silhouette Line V1.0",27)',vr:"FD",name:"LineControlPoints",vm:"1",version:"PrivateTag"},'(0029,"Silhouette Line V1.0",28)':{tag:'(0029,"Silhouette Line V1.0",28)',vr:"LT",name:"LineLabel",vm:"1",version:"PrivateTag"},'(0029,"Silhouette Line V1.0",29)':{tag:'(0029,"Silhouette Line V1.0",29)',vr:"UL",name:"LineDontSave",vm:"1",version:"PrivateTag"},'(0029,"Silhouette ROI V1.0",11)':{tag:'(0029,"Silhouette ROI V1.0",11)',vr:"IS",name:"ROIName",vm:"1",version:"PrivateTag"},'(0029,"Silhouette ROI V1.0",12)':{tag:'(0029,"Silhouette ROI V1.0",12)',vr:"LT",name:"ROINameFont",vm:"1",version:"PrivateTag"},'(0029,"Silhouette ROI V1.0",13)':{tag:'(0029,"Silhouette ROI V1.0",13)',vr:"LT",name:"ROINormalColor",vm:"1",version:"PrivateTag"},'(0029,"Silhouette ROI V1.0",14)':{tag:'(0029,"Silhouette ROI V1.0",14)',vr:"UL",name:"ROIFillPattern",vm:"1",version:"PrivateTag"},'(0029,"Silhouette ROI V1.0",15)':{tag:'(0029,"Silhouette ROI V1.0",15)',vr:"UL",name:"ROIBpSeg",vm:"1",version:"PrivateTag"},'(0029,"Silhouette ROI V1.0",16)':{tag:'(0029,"Silhouette ROI V1.0",16)',vr:"UN",name:"ROIBpSegPairs",vm:"1",version:"PrivateTag"},'(0029,"Silhouette ROI V1.0",17)':{tag:'(0029,"Silhouette ROI V1.0",17)',vr:"UL",name:"ROISeedSpace",vm:"1",version:"PrivateTag"},'(0029,"Silhouette ROI V1.0",18)':{tag:'(0029,"Silhouette ROI V1.0",18)',vr:"UN",name:"ROISeeds",vm:"1",version:"PrivateTag"},'(0029,"Silhouette ROI V1.0",19)':{tag:'(0029,"Silhouette ROI V1.0",19)',vr:"UL",name:"ROILineThickness",vm:"1",version:"PrivateTag"},'(0029,"Silhouette ROI V1.0",20)':{tag:'(0029,"Silhouette ROI V1.0",20)',vr:"UL",name:"ROILineStyle",vm:"1",version:"PrivateTag"},'(0029,"Silhouette ROI V1.0",21)':{tag:'(0029,"Silhouette ROI V1.0",21)',vr:"UL",name:"ROILineDashLength",vm:"1",version:"PrivateTag"},'(0029,"Silhouette ROI V1.0",22)':{tag:'(0029,"Silhouette ROI V1.0",22)',vr:"UL",name:"ROIInteractivity",vm:"1",version:"PrivateTag"},'(0029,"Silhouette ROI V1.0",23)':{tag:'(0029,"Silhouette ROI V1.0",23)',vr:"UL",name:"ROINamePosition",vm:"1",version:"PrivateTag"},'(0029,"Silhouette ROI V1.0",24)':{tag:'(0029,"Silhouette ROI V1.0",24)',vr:"UL",name:"ROINameDisplay",vm:"1",version:"PrivateTag"},'(0029,"Silhouette ROI V1.0",25)':{tag:'(0029,"Silhouette ROI V1.0",25)',vr:"LT",name:"ROILabel",vm:"1",version:"PrivateTag"},'(0029,"Silhouette ROI V1.0",26)':{tag:'(0029,"Silhouette ROI V1.0",26)',vr:"UL",name:"ROIShape",vm:"1",version:"PrivateTag"},'(0029,"Silhouette ROI V1.0",27)':{tag:'(0029,"Silhouette ROI V1.0",27)',vr:"FD",name:"ROIShapeTilt",vm:"1",version:"PrivateTag"},'(0029,"Silhouette ROI V1.0",28)':{tag:'(0029,"Silhouette ROI V1.0",28)',vr:"UL",name:"ROIShapePointsCount",vm:"1",version:"PrivateTag"},'(0029,"Silhouette ROI V1.0",29)':{tag:'(0029,"Silhouette ROI V1.0",29)',vr:"UL",name:"ROIShapePointsSpace",vm:"1",version:"PrivateTag"},'(0029,"Silhouette ROI V1.0",30)':{tag:'(0029,"Silhouette ROI V1.0",30)',vr:"FD",name:"ROIShapePoints",vm:"1",version:"PrivateTag"},'(0029,"Silhouette ROI V1.0",31)':{tag:'(0029,"Silhouette ROI V1.0",31)',vr:"UL",name:"ROIShapeControlPointsCount",vm:"1",version:"PrivateTag"},'(0029,"Silhouette ROI V1.0",32)':{tag:'(0029,"Silhouette ROI V1.0",32)',vr:"UL",name:"ROIShapeControlPointsSpace",vm:"1",version:"PrivateTag"},'(0029,"Silhouette ROI V1.0",33)':{tag:'(0029,"Silhouette ROI V1.0",33)',vr:"FD",name:"ROIShapeControlPoints",vm:"1",version:"PrivateTag"},'(0029,"Silhouette ROI V1.0",34)':{tag:'(0029,"Silhouette ROI V1.0",34)',vr:"UL",name:"ROIDontSave",vm:"1",version:"PrivateTag"},'(0029,"Silhouette Sequence Ids V1.0",41)':{tag:'(0029,"Silhouette Sequence Ids V1.0",41)',vr:"SQ",name:"Unknown",vm:"1",version:"PrivateTag"},'(0029,"Silhouette Sequence Ids V1.0",42)':{tag:'(0029,"Silhouette Sequence Ids V1.0",42)',vr:"SQ",name:"Unknown",vm:"1",version:"PrivateTag"},'(0029,"Silhouette Sequence Ids V1.0",43)':{tag:'(0029,"Silhouette Sequence Ids V1.0",43)',vr:"SQ",name:"Unknown",vm:"1",version:"PrivateTag"},'(0029,"Silhouette V1.0",13)':{tag:'(0029,"Silhouette V1.0",13)',vr:"UL",name:"Unknown",vm:"1",version:"PrivateTag"},'(0029,"Silhouette V1.0",14)':{tag:'(0029,"Silhouette V1.0",14)',vr:"UL",name:"Unknown",vm:"1",version:"PrivateTag"},'(0029,"Silhouette V1.0",17)':{tag:'(0029,"Silhouette V1.0",17)',vr:"UN",name:"Unknown",vm:"1",version:"PrivateTag"},'(0029,"Silhouette V1.0",18)':{tag:'(0029,"Silhouette V1.0",18)',vr:"UN",name:"Unknown",vm:"1",version:"PrivateTag"},'(0029,"Silhouette V1.0",19)':{tag:'(0029,"Silhouette V1.0",19)',vr:"UL",name:"Unknown",vm:"1",version:"PrivateTag"},'(0029,"Silhouette V1.0",1a)':{tag:'(0029,"Silhouette V1.0",1a)',vr:"UN",name:"Unknown",vm:"1",version:"PrivateTag"},'(0029,"Silhouette V1.0",1b)':{tag:'(0029,"Silhouette V1.0",1b)',vr:"UL",name:"Unknown",vm:"1",version:"PrivateTag"},'(0029,"Silhouette V1.0",1c)':{tag:'(0029,"Silhouette V1.0",1c)',vr:"UL",name:"Unknown",vm:"1",version:"PrivateTag"},'(0029,"Silhouette V1.0",1d)':{tag:'(0029,"Silhouette V1.0",1d)',vr:"UN",name:"Unknown",vm:"1",version:"PrivateTag"},'(0029,"Silhouette V1.0",1e)':{tag:'(0029,"Silhouette V1.0",1e)',vr:"UN",name:"Unknown",vm:"1",version:"PrivateTag"},'(0029,"Silhouette V1.0",21)':{tag:'(0029,"Silhouette V1.0",21)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0029,"Silhouette V1.0",22)':{tag:'(0029,"Silhouette V1.0",22)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0029,"Silhouette V1.0",23)':{tag:'(0029,"Silhouette V1.0",23)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0029,"Silhouette V1.0",24)':{tag:'(0029,"Silhouette V1.0",24)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0029,"Silhouette V1.0",25)':{tag:'(0029,"Silhouette V1.0",25)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0029,"Silhouette V1.0",27)':{tag:'(0029,"Silhouette V1.0",27)',vr:"UN",name:"Unknown",vm:"1",version:"PrivateTag"},'(0029,"Silhouette V1.0",28)':{tag:'(0029,"Silhouette V1.0",28)',vr:"UN",name:"Unknown",vm:"1",version:"PrivateTag"},'(0029,"Silhouette V1.0",29)':{tag:'(0029,"Silhouette V1.0",29)',vr:"UN",name:"Unknown",vm:"1",version:"PrivateTag"},'(0029,"Silhouette V1.0",30)':{tag:'(0029,"Silhouette V1.0",30)',vr:"UN",name:"Unknown",vm:"1",version:"PrivateTag"},'(0029,"Silhouette V1.0",52)':{tag:'(0029,"Silhouette V1.0",52)',vr:"US",name:"Unknown",vm:"1",version:"PrivateTag"},'(0029,"Silhouette V1.0",53)':{tag:'(0029,"Silhouette V1.0",53)',vr:"LT",name:"Unknown",vm:"1",version:"PrivateTag"},'(0029,"Silhouette V1.0",54)':{tag:'(0029,"Silhouette V1.0",54)',vr:"UN",name:"Unknown",vm:"1",version:"PrivateTag"},'(0029,"Silhouette V1.0",55)':{tag:'(0029,"Silhouette V1.0",55)',vr:"LT",name:"Unknown",vm:"1",version:"PrivateTag"},'(0029,"Silhouette V1.0",56)':{tag:'(0029,"Silhouette V1.0",56)',vr:"LT",name:"Unknown",vm:"1",version:"PrivateTag"},'(0029,"Silhouette V1.0",57)':{tag:'(0029,"Silhouette V1.0",57)',vr:"UN",name:"Unknown",vm:"1",version:"PrivateTag"},'(0135,"SONOWAND AS",10)':{tag:'(0135,"SONOWAND AS",10)',vr:"LO",name:"UltrasoundScannerName",vm:"1",version:"PrivateTag"},'(0135,"SONOWAND AS",11)':{tag:'(0135,"SONOWAND AS",11)',vr:"LO",name:"TransducerSerial",vm:"1",version:"PrivateTag"},'(0135,"SONOWAND AS",12)':{tag:'(0135,"SONOWAND AS",12)',vr:"LO",name:"ProbeApplication",vm:"1",version:"PrivateTag"},'(0017,"SVISION",00)':{tag:'(0017,"SVISION",00)',vr:"LO",name:"ExtendedBodyPart",vm:"1",version:"PrivateTag"},'(0017,"SVISION",10)':{tag:'(0017,"SVISION",10)',vr:"LO",name:"ExtendedViewPosition",vm:"1",version:"PrivateTag"},'(0017,"SVISION",F0)':{tag:'(0017,"SVISION",F0)',vr:"IS",name:"ImagesSOPClass",vm:"1",version:"PrivateTag"},'(0019,"SVISION",00)':{tag:'(0019,"SVISION",00)',vr:"IS",name:"AECField",vm:"1",version:"PrivateTag"},'(0019,"SVISION",01)':{tag:'(0019,"SVISION",01)',vr:"IS",name:"AECFilmScreen",vm:"1",version:"PrivateTag"},'(0019,"SVISION",02)':{tag:'(0019,"SVISION",02)',vr:"IS",name:"AECDensity",vm:"1",version:"PrivateTag"},'(0019,"SVISION",10)':{tag:'(0019,"SVISION",10)',vr:"IS",name:"PatientThickness",vm:"1",version:"PrivateTag"},'(0019,"SVISION",18)':{tag:'(0019,"SVISION",18)',vr:"IS",name:"BeamDistance",vm:"1",version:"PrivateTag"},'(0019,"SVISION",20)':{tag:'(0019,"SVISION",20)',vr:"IS",name:"WorkstationNumber",vm:"1",version:"PrivateTag"},'(0019,"SVISION",28)':{tag:'(0019,"SVISION",28)',vr:"IS",name:"TubeNumber",vm:"1",version:"PrivateTag"},'(0019,"SVISION",30)':{tag:'(0019,"SVISION",30)',vr:"IS",name:"BuckyGrid",vm:"1",version:"PrivateTag"},'(0019,"SVISION",34)':{tag:'(0019,"SVISION",34)',vr:"IS",name:"Focus",vm:"1",version:"PrivateTag"},'(0019,"SVISION",38)':{tag:'(0019,"SVISION",38)',vr:"IS",name:"Child",vm:"1",version:"PrivateTag"},'(0019,"SVISION",40)':{tag:'(0019,"SVISION",40)',vr:"IS",name:"CollimatorDistanceX",vm:"1",version:"PrivateTag"},'(0019,"SVISION",41)':{tag:'(0019,"SVISION",41)',vr:"IS",name:"CollimatorDistanceY",vm:"1",version:"PrivateTag"},'(0019,"SVISION",50)':{tag:'(0019,"SVISION",50)',vr:"IS",name:"CentralBeamHeight",vm:"1",version:"PrivateTag"},'(0019,"SVISION",60)':{tag:'(0019,"SVISION",60)',vr:"IS",name:"BuckyAngle",vm:"1",version:"PrivateTag"},'(0019,"SVISION",68)':{tag:'(0019,"SVISION",68)',vr:"IS",name:"CArmAngle",vm:"1",version:"PrivateTag"},'(0019,"SVISION",69)':{tag:'(0019,"SVISION",69)',vr:"IS",name:"CollimatorAngle",vm:"1",version:"PrivateTag"},'(0019,"SVISION",70)':{tag:'(0019,"SVISION",70)',vr:"IS",name:"FilterNumber",vm:"1",version:"PrivateTag"},'(0019,"SVISION",74)':{tag:'(0019,"SVISION",74)',vr:"LO",name:"FilterMaterial1",vm:"1",version:"PrivateTag"},'(0019,"SVISION",75)':{tag:'(0019,"SVISION",75)',vr:"LO",name:"FilterMaterial2",vm:"1",version:"PrivateTag"},'(0019,"SVISION",78)':{tag:'(0019,"SVISION",78)',vr:"DS",name:"FilterThickness1",vm:"1",version:"PrivateTag"},'(0019,"SVISION",79)':{tag:'(0019,"SVISION",79)',vr:"DS",name:"FilterThickness2",vm:"1",version:"PrivateTag"},'(0019,"SVISION",80)':{tag:'(0019,"SVISION",80)',vr:"IS",name:"BuckyFormat",vm:"1",version:"PrivateTag"},'(0019,"SVISION",81)':{tag:'(0019,"SVISION",81)',vr:"IS",name:"ObjectPosition",vm:"1",version:"PrivateTag"},'(0019,"SVISION",90)':{tag:'(0019,"SVISION",90)',vr:"LO",name:"DeskCommand",vm:"1",version:"PrivateTag"},'(0019,"SVISION",A0)':{tag:'(0019,"SVISION",A0)',vr:"DS",name:"ExtendedExposureTime",vm:"1",version:"PrivateTag"},'(0019,"SVISION",A1)':{tag:'(0019,"SVISION",A1)',vr:"DS",name:"ActualExposureTime",vm:"1",version:"PrivateTag"},'(0019,"SVISION",A8)':{tag:'(0019,"SVISION",A8)',vr:"DS",name:"ExtendedXRayTubeCurrent",vm:"1",version:"PrivateTag"},'(0021,"SVISION",00)':{tag:'(0021,"SVISION",00)',vr:"DS",name:"NoiseReduction",vm:"1",version:"PrivateTag"},'(0021,"SVISION",01)':{tag:'(0021,"SVISION",01)',vr:"DS",name:"ContrastAmplification",vm:"1",version:"PrivateTag"},'(0021,"SVISION",02)':{tag:'(0021,"SVISION",02)',vr:"DS",name:"EdgeContrastBoosting",vm:"1",version:"PrivateTag"},'(0021,"SVISION",03)':{tag:'(0021,"SVISION",03)',vr:"DS",name:"LatitudeReduction",vm:"1",version:"PrivateTag"},'(0021,"SVISION",10)':{tag:'(0021,"SVISION",10)',vr:"LO",name:"FindRangeAlgorithm",vm:"1",version:"PrivateTag"},'(0021,"SVISION",11)':{tag:'(0021,"SVISION",11)',vr:"DS",name:"ThresholdCAlgorithm",vm:"1",version:"PrivateTag"},'(0021,"SVISION",20)':{tag:'(0021,"SVISION",20)',vr:"LO",name:"SensometricCurve",vm:"1",version:"PrivateTag"},'(0021,"SVISION",30)':{tag:'(0021,"SVISION",30)',vr:"DS",name:"LowerWindowOffset",vm:"1",version:"PrivateTag"},'(0021,"SVISION",31)':{tag:'(0021,"SVISION",31)',vr:"DS",name:"UpperWindowOffset",vm:"1",version:"PrivateTag"},'(0021,"SVISION",40)':{tag:'(0021,"SVISION",40)',vr:"DS",name:"MinPrintableDensity",vm:"1",version:"PrivateTag"},'(0021,"SVISION",41)':{tag:'(0021,"SVISION",41)',vr:"DS",name:"MaxPrintableDensity",vm:"1",version:"PrivateTag"},'(0021,"SVISION",90)':{tag:'(0021,"SVISION",90)',vr:"DS",name:"Brightness",vm:"1",version:"PrivateTag"},'(0021,"SVISION",91)':{tag:'(0021,"SVISION",91)',vr:"DS",name:"Contrast",vm:"1",version:"PrivateTag"},'(0021,"SVISION",92)':{tag:'(0021,"SVISION",92)',vr:"DS",name:"ShapeFactor",vm:"1",version:"PrivateTag"},'(0023,"SVISION",00)':{tag:'(0023,"SVISION",00)',vr:"LO",name:"ImageLaterality",vm:"1",version:"PrivateTag"},'(0023,"SVISION",01)':{tag:'(0023,"SVISION",01)',vr:"IS",name:"LetterPosition",vm:"1",version:"PrivateTag"},'(0023,"SVISION",02)':{tag:'(0023,"SVISION",02)',vr:"IS",name:"BurnedInAnnotation",vm:"1",version:"PrivateTag"},'(0023,"SVISION",03)':{tag:'(0023,"SVISION",03)',vr:"LO",name:"Unknown",vm:"1",version:"PrivateTag"},'(0023,"SVISION",F0)':{tag:'(0023,"SVISION",F0)',vr:"IS",name:"ImageSOPClass",vm:"1",version:"PrivateTag"},'(0025,"SVISION",00)':{tag:'(0025,"SVISION",00)',vr:"IS",name:"OriginalImage",vm:"1",version:"PrivateTag"},'(0025,"SVISION",01)':{tag:'(0025,"SVISION",01)',vr:"IS",name:"NotProcessedImage",vm:"1",version:"PrivateTag"},'(0025,"SVISION",02)':{tag:'(0025,"SVISION",02)',vr:"IS",name:"CutOutImage",vm:"1",version:"PrivateTag"},'(0025,"SVISION",03)':{tag:'(0025,"SVISION",03)',vr:"IS",name:"DuplicatedImage",vm:"1",version:"PrivateTag"},'(0025,"SVISION",04)':{tag:'(0025,"SVISION",04)',vr:"IS",name:"StoredImage",vm:"1",version:"PrivateTag"},'(0025,"SVISION",05)':{tag:'(0025,"SVISION",05)',vr:"IS",name:"RetrievedImage",vm:"1",version:"PrivateTag"},'(0025,"SVISION",06)':{tag:'(0025,"SVISION",06)',vr:"IS",name:"RemoteImage",vm:"1",version:"PrivateTag"},'(0025,"SVISION",07)':{tag:'(0025,"SVISION",07)',vr:"IS",name:"MediaStoredImage",vm:"1",version:"PrivateTag"},'(0025,"SVISION",08)':{tag:'(0025,"SVISION",08)',vr:"IS",name:"ImageState",vm:"1",version:"PrivateTag"},'(0025,"SVISION",20)':{tag:'(0025,"SVISION",20)',vr:"LO",name:"SourceImageFile",vm:"1",version:"PrivateTag"},'(0025,"SVISION",21)':{tag:'(0025,"SVISION",21)',vr:"UI",name:"Unknown",vm:"1",version:"PrivateTag"},'(0027,"SVISION",00)':{tag:'(0027,"SVISION",00)',vr:"IS",name:"NumberOfSeries",vm:"1",version:"PrivateTag"},'(0027,"SVISION",01)':{tag:'(0027,"SVISION",01)',vr:"IS",name:"NumberOfStudies",vm:"1",version:"PrivateTag"},'(0027,"SVISION",10)':{tag:'(0027,"SVISION",10)',vr:"DT",name:"OldestSeries",vm:"1",version:"PrivateTag"},'(0027,"SVISION",11)':{tag:'(0027,"SVISION",11)',vr:"DT",name:"NewestSeries",vm:"1",version:"PrivateTag"},'(0027,"SVISION",12)':{tag:'(0027,"SVISION",12)',vr:"DT",name:"OldestStudy",vm:"1",version:"PrivateTag"},'(0027,"SVISION",13)':{tag:'(0027,"SVISION",13)',vr:"DT",name:"NewestStudy",vm:"1",version:"PrivateTag"},'(0009,"TOSHIBA_MEC_1.0",01)':{tag:'(0009,"TOSHIBA_MEC_1.0",01)',vr:"LT",name:"Unknown",vm:"1",version:"PrivateTag"},'(0009,"TOSHIBA_MEC_1.0",02)':{tag:'(0009,"TOSHIBA_MEC_1.0",02)',vr:"US",name:"Unknown",vm:"1-n",version:"PrivateTag"},'(0009,"TOSHIBA_MEC_1.0",03)':{tag:'(0009,"TOSHIBA_MEC_1.0",03)',vr:"US",name:"Unknown",vm:"1-n",version:"PrivateTag"},'(0009,"TOSHIBA_MEC_1.0",04)':{tag:'(0009,"TOSHIBA_MEC_1.0",04)',vr:"US",name:"Unknown",vm:"1-n",version:"PrivateTag"},'(0011,"TOSHIBA_MEC_1.0",01)':{tag:'(0011,"TOSHIBA_MEC_1.0",01)',vr:"LT",name:"Unknown",vm:"1",version:"PrivateTag"},'(0011,"TOSHIBA_MEC_1.0",02)':{tag:'(0011,"TOSHIBA_MEC_1.0",02)',vr:"US",name:"Unknown",vm:"1-n",version:"PrivateTag"},'(0019,"TOSHIBA_MEC_1.0",01)':{tag:'(0019,"TOSHIBA_MEC_1.0",01)',vr:"US",name:"Unknown",vm:"1-n",version:"PrivateTag"},'(0019,"TOSHIBA_MEC_1.0",02)':{tag:'(0019,"TOSHIBA_MEC_1.0",02)',vr:"US",name:"Unknown",vm:"1-n",version:"PrivateTag"},'(0021,"TOSHIBA_MEC_1.0",01)':{tag:'(0021,"TOSHIBA_MEC_1.0",01)',vr:"US",name:"Unknown",vm:"1-n",version:"PrivateTag"},'(0021,"TOSHIBA_MEC_1.0",02)':{tag:'(0021,"TOSHIBA_MEC_1.0",02)',vr:"US",name:"Unknown",vm:"1-n",version:"PrivateTag"},'(0021,"TOSHIBA_MEC_1.0",03)':{tag:'(0021,"TOSHIBA_MEC_1.0",03)',vr:"US",name:"Unknown",vm:"1-n",version:"PrivateTag"},'(7ff1,"TOSHIBA_MEC_1.0",01)':{tag:'(7ff1,"TOSHIBA_MEC_1.0",01)',vr:"US",name:"Unknown",vm:"1-n",version:"PrivateTag"},'(7ff1,"TOSHIBA_MEC_1.0",02)':{tag:'(7ff1,"TOSHIBA_MEC_1.0",02)',vr:"US",name:"Unknown",vm:"1-n",version:"PrivateTag"},'(7ff1,"TOSHIBA_MEC_1.0",03)':{tag:'(7ff1,"TOSHIBA_MEC_1.0",03)',vr:"US",name:"Unknown",vm:"1-n",version:"PrivateTag"},'(7ff1,"TOSHIBA_MEC_1.0",10)':{tag:'(7ff1,"TOSHIBA_MEC_1.0",10)',vr:"US",name:"Unknown",vm:"1-n",version:"PrivateTag"},'(0019,"TOSHIBA_MEC_CT_1.0",01)':{tag:'(0019,"TOSHIBA_MEC_CT_1.0",01)',vr:"IS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"TOSHIBA_MEC_CT_1.0",02)':{tag:'(0019,"TOSHIBA_MEC_CT_1.0",02)',vr:"IS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"TOSHIBA_MEC_CT_1.0",03)':{tag:'(0019,"TOSHIBA_MEC_CT_1.0",03)',vr:"US",name:"Unknown",vm:"1-n",version:"PrivateTag"},'(0019,"TOSHIBA_MEC_CT_1.0",04)':{tag:'(0019,"TOSHIBA_MEC_CT_1.0",04)',vr:"LT",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"TOSHIBA_MEC_CT_1.0",05)':{tag:'(0019,"TOSHIBA_MEC_CT_1.0",05)',vr:"LT",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"TOSHIBA_MEC_CT_1.0",06)':{tag:'(0019,"TOSHIBA_MEC_CT_1.0",06)',vr:"US",name:"Unknown",vm:"1-n",version:"PrivateTag"},'(0019,"TOSHIBA_MEC_CT_1.0",07)':{tag:'(0019,"TOSHIBA_MEC_CT_1.0",07)',vr:"US",name:"Unknown",vm:"1-n",version:"PrivateTag"},'(0019,"TOSHIBA_MEC_CT_1.0",08)':{tag:'(0019,"TOSHIBA_MEC_CT_1.0",08)',vr:"LT",name:"OrientationHeadFeet",vm:"1",version:"PrivateTag"},'(0019,"TOSHIBA_MEC_CT_1.0",09)':{tag:'(0019,"TOSHIBA_MEC_CT_1.0",09)',vr:"LT",name:"ViewDirection",vm:"1",version:"PrivateTag"},'(0019,"TOSHIBA_MEC_CT_1.0",0a)':{tag:'(0019,"TOSHIBA_MEC_CT_1.0",0a)',vr:"LT",name:"OrientationSupineProne",vm:"1",version:"PrivateTag"},'(0019,"TOSHIBA_MEC_CT_1.0",0b)':{tag:'(0019,"TOSHIBA_MEC_CT_1.0",0b)',vr:"DS",name:"Unknown",vm:"1",version:"PrivateTag"},'(0019,"TOSHIBA_MEC_CT_1.0",0c)':{tag:'(0019,"TOSHIBA_MEC_CT_1.0",0c)',vr:"US",name:"Unknown",vm:"1-n",version:"PrivateTag"},'(0019,"TOSHIBA_MEC_CT_1.0",0d)':{tag:'(0019,"TOSHIBA_MEC_CT_1.0",0d)',vr:"TM",name:"Time",vm:"1",version:"PrivateTag"},'(0019,"TOSHIBA_MEC_CT_1.0",0e)':{tag:'(0019,"TOSHIBA_MEC_CT_1.0",0e)',vr:"DS",name:"Unknown",vm:"1",version:"PrivateTag"},'(7ff1,"TOSHIBA_MEC_CT_1.0",01)':{tag:'(7ff1,"TOSHIBA_MEC_CT_1.0",01)',vr:"US",name:"Unknown",vm:"1-n",version:"PrivateTag"},'(7ff1,"TOSHIBA_MEC_CT_1.0",02)':{tag:'(7ff1,"TOSHIBA_MEC_CT_1.0",02)',vr:"US",name:"Unknown",vm:"1-n",version:"PrivateTag"},'(7ff1,"TOSHIBA_MEC_CT_1.0",03)':{tag:'(7ff1,"TOSHIBA_MEC_CT_1.0",03)',vr:"IS",name:"Unknown",vm:"1",version:"PrivateTag"},'(7ff1,"TOSHIBA_MEC_CT_1.0",04)':{tag:'(7ff1,"TOSHIBA_MEC_CT_1.0",04)',vr:"IS",name:"Unknown",vm:"1",version:"PrivateTag"},'(7ff1,"TOSHIBA_MEC_CT_1.0",05)':{tag:'(7ff1,"TOSHIBA_MEC_CT_1.0",05)',vr:"US",name:"Unknown",vm:"1-n",version:"PrivateTag"},'(7ff1,"TOSHIBA_MEC_CT_1.0",07)':{tag:'(7ff1,"TOSHIBA_MEC_CT_1.0",07)',vr:"US",name:"Unknown",vm:"1-n",version:"PrivateTag"},'(7ff1,"TOSHIBA_MEC_CT_1.0",08)':{tag:'(7ff1,"TOSHIBA_MEC_CT_1.0",08)',vr:"US",name:"Unknown",vm:"1-n",version:"PrivateTag"},'(7ff1,"TOSHIBA_MEC_CT_1.0",09)':{tag:'(7ff1,"TOSHIBA_MEC_CT_1.0",09)',vr:"US",name:"Unknown",vm:"1-n",version:"PrivateTag"},'(7ff1,"TOSHIBA_MEC_CT_1.0",0a)':{tag:'(7ff1,"TOSHIBA_MEC_CT_1.0",0a)',vr:"LT",name:"Unknown",vm:"1",version:"PrivateTag"},'(7ff1,"TOSHIBA_MEC_CT_1.0",0b)':{tag:'(7ff1,"TOSHIBA_MEC_CT_1.0",0b)',vr:"US",name:"Unknown",vm:"1-n",version:"PrivateTag"},'(7ff1,"TOSHIBA_MEC_CT_1.0",0c)':{tag:'(7ff1,"TOSHIBA_MEC_CT_1.0",0c)',vr:"US",name:"Unknown",vm:"1-n",version:"PrivateTag"},'(7ff1,"TOSHIBA_MEC_CT_1.0",0d)':{tag:'(7ff1,"TOSHIBA_MEC_CT_1.0",0d)',vr:"US",name:"Unknown",vm:"1-n",version:"PrivateTag"}}; + + var handler = { + /** + * Get a proxied value from the array or property value + * Note that the property value get works even if you update the underlying object. + * Also, return true of proxy.__isProxy in order to distinguish proxies and not double proxy them. + */ + get: function get(target, prop) { + if (prop == "__isProxy") return true; + if (prop in target) return target[prop]; + return target[0][prop]; + }, + set: function set(obj, prop, value) { + if (typeof prop === "number") { + obj[prop] = value; + } else if (prop in obj) { + obj[prop] = value; + } else { + obj[0][prop] = value; + } + return true; + } + }; + + /** + * Add a proxy object for sqZero or the src[0] element if sqZero is unspecified, AND + * src is an array of length 1. + * + * If sqZero isn't passed in, then assume this is a create call on the destination object + * itself, by: + * 1. If not an object, return dest + * 2. If an array of length != 1, return dest + * 3. If an array, use dest[0] as sqZero + * 4. Use dest as sqZero + * + * @example + * src = [{a:5,b:'string', c:null}] + * addAccessors(src) + * src.c = 'outerChange' + * src[0].b='innerChange' + * + * assert src.a===5 + * assert src[0].c === 'outerChange' + * assert src.b === 'innerChange' + */ + var addAccessors = function addAccessors(dest, sqZero) { + if (dest.__isProxy) return dest; + var itemZero = sqZero; + if (itemZero === undefined) { + if (_typeof(dest) !== "object") return dest; + if (Array.isArray(dest) && dest.length !== 1) return dest; + itemZero = Array.isArray(dest) ? dest[0] : dest; + } + // dest may have some decorations so keep the object + if (Array.isArray(dest)) { + dest.length = 0; + dest.push(itemZero); + return new Proxy(dest, handler); + } else { + return new Proxy([itemZero], handler); + } + }; + + function paddingLeft(paddingValue, string) { + return String(paddingValue + string).slice(-paddingValue.length); + } + var Tag = /*#__PURE__*/function () { + function Tag(value) { + _classCallCheck(this, Tag); + this.value = value; + } + _createClass(Tag, [{ + key: "toString", + value: function toString() { + return "(" + paddingLeft("0000", this.group().toString(16).toUpperCase()) + "," + paddingLeft("0000", this.element().toString(16).toUpperCase()) + ")"; + } + }, { + key: "toCleanString", + value: function toCleanString() { + return paddingLeft("0000", this.group().toString(16).toUpperCase()) + paddingLeft("0000", this.element().toString(16).toUpperCase()); + } + }, { + key: "is", + value: function is(t) { + return this.value == t; + } + }, { + key: "group", + value: function group() { + return this.value >>> 16; + } + }, { + key: "element", + value: function element() { + return this.value & 0xffff; + } + }, { + key: "isPixelDataTag", + value: function isPixelDataTag() { + return this.is(0x7fe00010); + } + }, { + key: "isPrivateCreator", + value: function isPrivateCreator() { + var group = this.group(); + var element = this.element(); + return group % 2 === 1 && element < 0x100 && element > 0x00; + } + }, { + key: "write", + value: function write(stream, vrType, values, syntax, writeOptions) { + var vr = ValueRepresentation.createByTypeString(vrType), + useSyntax = DicomMessage._normalizeSyntax(syntax); + var implicit = useSyntax == IMPLICIT_LITTLE_ENDIAN ? true : false, + isLittleEndian = useSyntax == IMPLICIT_LITTLE_ENDIAN || useSyntax == EXPLICIT_LITTLE_ENDIAN$1 ? true : false, + isEncapsulated = this.isPixelDataTag() && DicomMessage.isEncapsulated(syntax); + var oldEndian = stream.isLittleEndian; + stream.setEndian(isLittleEndian); + stream.writeUint16(this.group()); + stream.writeUint16(this.element()); + var tagStream = new WriteBufferStream(256), + valueLength; + tagStream.setEndian(isLittleEndian); + if (vrType == "OW" || vrType == "OB" || vrType == "UN") { + valueLength = vr.writeBytes(tagStream, values, useSyntax, isEncapsulated, writeOptions); + } else if (vrType == "SQ") { + valueLength = vr.writeBytes(tagStream, values, useSyntax, writeOptions); + } else { + valueLength = vr.writeBytes(tagStream, values, writeOptions); + } + if (vrType == "SQ") { + valueLength = 0xffffffff; + } + var written = tagStream.size + 4; + if (implicit) { + stream.writeUint32(valueLength); + written += 4; + } else { + if (vr.isExplicit()) { + stream.writeAsciiString(vr.type); + stream.writeUint16(0); + stream.writeUint32(valueLength); + written += 8; + } else { + stream.writeAsciiString(vr.type); + stream.writeUint16(valueLength); + written += 4; + } + } + stream.concat(tagStream); + stream.setEndian(oldEndian); + return written; + } + }], [{ + key: "fromString", + value: function fromString(str) { + var group = parseInt(str.substring(0, 4), 16), + element = parseInt(str.substring(4), 16); + return Tag.fromNumbers(group, element); + } + }, { + key: "fromPString", + value: function fromPString(str) { + var group = parseInt(str.substring(1, 5), 16), + element = parseInt(str.substring(6, 10), 16); + return Tag.fromNumbers(group, element); + } + }, { + key: "fromNumbers", + value: function fromNumbers(group, element) { + return new Tag((group << 16 | element) >>> 0); + } + }, { + key: "readTag", + value: function readTag(stream) { + var group = stream.readUint16(), + element = stream.readUint16(); + return Tag.fromNumbers(group, element); + } + }]); + return Tag; + }(); + + /** + * Converts a PN string to the dicom+json equivalent, or returns the + * original object + * @param {string | object} value Part10 style PersonName (PN) string (ie 'A^B==C\D') or object + * @param {bool} multiple if false returns the first valid PersonName, otherwise returns all PersonNames + * @returns {object} dicom+json representation of PersonName value, or the same object. + */ + function pnStringToObject(value) { + var multiple = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; + if (value == undefined) { + return multiple ? [] : undefined; + } + if (typeof value === "string" || value instanceof String) { + // Direct string assignment: + // naturalizedDataset.PatientName = "Doe^John"; + var values = value.split(String.fromCharCode(VM_DELIMITER)).filter(Boolean); + var pnObj = values.map(function (v) { + var components = v.split(String.fromCharCode(PN_COMPONENT_DELIMITER)); + return _objectSpread2(_objectSpread2(_objectSpread2({}, components[0] ? { + Alphabetic: components[0] + } : {}), components[1] ? { + Ideographic: components[1] + } : {}), components[2] ? { + Phonetic: components[2] + } : {}); + }); + return multiple ? pnObj : pnObj[0]; + } else { + // Direct assignment: + // naturalizedDataset.PatientName = {Alphabetic: "John"}; + if (!Array.isArray(value) && multiple) { + return [Object.assign({}, value)]; + } + // Verbatim: + // naturalizedDataset.PatientName = [{Alphabetic: "John"}]; + return value; + } + } + + /** + * Returns the dicom part10 equivalent string for a given json object. + * @param {object | string} value + * @returns {string} dicom part10 equivalent string + */ + function pnObjectToString(value) { + if (typeof value === "string" || value instanceof String) { + return value; + } + var pnDelim = String.fromCharCode(PN_COMPONENT_DELIMITER); + if (!Array.isArray(value)) { + value = [value]; + } + return value.filter(Boolean).map(function (v) { + var _v$Alphabetic, _v$Ideographic, _v$Phonetic; + if (v === undefined || typeof v === "string" || v instanceof String) { + return v; + } + return [(_v$Alphabetic = v.Alphabetic) !== null && _v$Alphabetic !== void 0 ? _v$Alphabetic : "", (_v$Ideographic = v.Ideographic) !== null && _v$Ideographic !== void 0 ? _v$Ideographic : "", (_v$Phonetic = v.Phonetic) !== null && _v$Phonetic !== void 0 ? _v$Phonetic : ""].join(pnDelim).replace(new RegExp("".concat(pnDelim, "*$")), ""); + }).join(String.fromCharCode(VM_DELIMITER)); + } + + /** + * Overrides toJSON and toString to ensure JSON.stringify always returns + * a valid dicom+json object, even when given a string such as "Doe^John". + * @param {object} value value object which will be given the accessors. note + * for a string it must first be boxed: new String(value) + * @returns {object} the same object + */ + function pnAddValueAccessors(_value) { + if (!_value.__hasValueAccessors) { + Object.defineProperty(_value, "__hasValueAccessors", { + value: true + }); + Object.defineProperty(_value, "toJSON", { + value: function value() { + if (Array.isArray(this)) { + return this.filter(Boolean).map(function (x) { + return pnStringToObject(x, false); + }); + } else { + return pnStringToObject(this); + } + } + }); + // This override is mostly for testing; PN is always represented + // by its dicom+json model, but serialization flattens it to a + // part10 string. + Object.defineProperty(_value, "toString", { + value: function value() { + return pnObjectToString(_value); + } + }); + } + return _value; + } + var dicomJson = { + pnObjectToString: pnObjectToString, + pnConvertToJsonObject: pnStringToObject, + pnAddValueAccessors: pnAddValueAccessors + }; + + // We replace the tag with a Proxy which intercepts assignments to obj[valueProp] + // and adds additional overrides/accessors to the value if need be. If valueProp + // is falsy, we check target.vr and add accessors via a ValueRepresentation lookup. + // Specifically, this helps address the incorrect (though common) use of the library: + // dicomDict.dict.upsertTag('00101001', 'PN', 'Doe^John'); /* direct string assignment */ + // dicomDict.dict['00081070'].Value = 'Doe^John\Doe^Jane'; /* overwrite with multiplicity */ + // ... + // jsonOutput = JSON.serialize(dicomDict); + // or: + // naturalizedDataset.OperatorsName = 'Doe^John'; + // jsonOutput = JSON.serialize(naturalizedDataset); + // Whereas the correct usage of the dicom+json model would be: + // dicomDict.dict.upsertTag('00101001', 'PN', [{Alphabetic:'Doe^John'}]); + // naturalizedDataset.OperatorsName = [{Alphabetic:'Doe^John'},{Alphabetic:'Doe^Jane'}]; + // TODO: refactor with addAccessors.js in mind + var tagProxyHandler = { + set: function set(target, prop, value) { + var vrType; + if (["values", "Value"].includes(prop) && target.vr && ValueRepresentation.hasValueAccessors(target.vr)) { + vrType = ValueRepresentation.createByTypeString(target.vr); + } else if (prop in DicomMetaDictionary.nameMap && ValueRepresentation.hasValueAccessors(DicomMetaDictionary.nameMap[prop].vr)) { + vrType = ValueRepresentation.createByTypeString(DicomMetaDictionary.nameMap[prop].vr); + } else { + target[prop] = value; + return true; + } + target[prop] = vrType.addValueAccessors(value); + return true; + } + }; + function rtrim(str) { + return str.replace(/\s*$/g, ""); + } + function toWindows(inputArray, size) { + return Array.from({ + length: inputArray.length - (size - 1) + }, + //get the appropriate length + function (_, index) { + return inputArray.slice(index, index + size); + } //create the windows + ); + } + + var binaryVRs = ["FL", "FD", "SL", "SS", "UL", "US", "AT"], + explicitVRs = ["OB", "OW", "OF", "SQ", "UC", "UR", "UT", "UN"], + singleVRs$1 = ["SQ", "OF", "OW", "OB", "UN"]; + var ValueRepresentation = /*#__PURE__*/function () { + function ValueRepresentation(type) { + _classCallCheck(this, ValueRepresentation); + this.type = type; + this.multi = false; + this._isBinary = binaryVRs.indexOf(this.type) != -1; + this._allowMultiple = !this._isBinary && singleVRs$1.indexOf(this.type) == -1; + this._isExplicit = explicitVRs.indexOf(this.type) != -1; + } + _createClass(ValueRepresentation, [{ + key: "isBinary", + value: function isBinary() { + return this._isBinary; + } + }, { + key: "allowMultiple", + value: function allowMultiple() { + return this._allowMultiple; + } + }, { + key: "isExplicit", + value: function isExplicit() { + return this._isExplicit; + } + }, { + key: "addValueAccessors", + value: function addValueAccessors(value) { + return value; + } + + /** + * Replaces a tag with a Proxy which assigns value accessors based on the vr field + * of the tag being given to it. If the tag object does not have a vr or vr.type + * property, the proxy will look for the prop name in the natural name map. + * @param {any} tag object to add accessors to + * @returns {any} either the same object if no accessor needed, or a Proxy + */ + }, { + key: "read", + value: function read(stream, length, syntax) { + if (this.fixed && this.maxLength) { + if (!length) return this.defaultValue; + if (this.maxLength != length) log.error("Invalid length for fixed length tag, vr " + this.type + ", length " + this.maxLength + " != " + length); + } + return this.readBytes(stream, length, syntax); + } + }, { + key: "readBytes", + value: function readBytes(stream, length) { + return stream.readAsciiString(length); + } + }, { + key: "readPaddedAsciiString", + value: function readPaddedAsciiString(stream, length) { + if (!length) return ""; + if (stream.peekUint8(length - 1) !== this.padByte) { + return stream.readAsciiString(length); + } else { + var val = stream.readAsciiString(length - 1); + stream.increment(1); + return val; + } + } + }, { + key: "readPaddedEncodedString", + value: function readPaddedEncodedString(stream, length) { + if (!length) return ""; + var val = stream.readEncodedString(length); + if (val.length && val[val.length - 1] !== String.fromCharCode(this.padByte)) { + return val; + } else { + return val.slice(0, -1); + } + } + }, { + key: "write", + value: function write(stream, type) { + var args = Array.from(arguments); + if (args[2] === null || args[2] === "" || args[2] === undefined) { + return [stream.writeAsciiString("")]; + } else { + var written = [], + valueArgs = args.slice(2), + func = stream["write" + type]; + if (Array.isArray(valueArgs[0])) { + if (valueArgs[0].length < 1) { + written.push(0); + } else { + var self = this; + valueArgs[0].forEach(function (v, k) { + if (self.allowMultiple() && k > 0) { + stream.writeUint8(VM_DELIMITER); + } + var singularArgs = [v].concat(valueArgs.slice(1)); + var byteCount = func.apply(stream, singularArgs); + written.push(byteCount); + }); + } + } else { + written.push(func.apply(stream, valueArgs)); + } + return written; + } + } + }, { + key: "writeBytes", + value: function writeBytes(stream, value, lengths) { + var writeOptions = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : { + allowInvalidVRLength: false + }; + var allowInvalidVRLength = writeOptions.allowInvalidVRLength; + var valid = true, + valarr = Array.isArray(value) ? value : [value], + total = 0; + for (var i = 0; i < valarr.length; i++) { + var checkValue = valarr[i], + checklen = lengths[i], + isString = false, + displaylen = checklen; + if (checkValue === null || allowInvalidVRLength) { + valid = true; + } else if (this.checkLength) { + valid = this.checkLength(checkValue); + } else if (this.maxCharLength) { + var check = this.maxCharLength; //, checklen = checkValue.length; + valid = checkValue.length <= check; + displaylen = checkValue.length; + isString = true; + } else if (this.maxLength) { + valid = checklen <= this.maxLength; + } + if (!valid) { + var errmsg = "Value exceeds max length, vr: " + this.type + ", value: " + checkValue + ", length: " + displaylen; + if (isString) log.log(errmsg);else throw new Error(errmsg); + } + total += checklen; + } + if (this.allowMultiple()) { + total += valarr.length ? valarr.length - 1 : 0; + } + + //check for odd + var written = total; + if (total & 1) { + stream.writeUint8(this.padByte); + written++; + } + return written; + } + }], [{ + key: "addTagAccessors", + value: function addTagAccessors(tag) { + var _tag$vr; + if (!tag.__hasTagAccessors && ValueRepresentation.hasValueAccessors(((_tag$vr = tag.vr) === null || _tag$vr === void 0 ? void 0 : _tag$vr.type) || tag.vr)) { + Object.defineProperty(tag, "__hasTagAccessors", { + value: true + }); + // See note in declaration of taxProxyHandler + return new Proxy(tag, tagProxyHandler); + } + return tag; + } + }, { + key: "hasValueAccessors", + value: function hasValueAccessors(type) { + if (type in VRinstances) { + return VRinstances[type].addValueAccessors !== ValueRepresentation.prototype.addValueAccessors; + } + // Given undefined, assume the representation need to add value accessors + return type === undefined; + } + }, { + key: "createByTypeString", + value: function createByTypeString(type) { + var vr = VRinstances[type]; + if (vr === undefined) { + if (type == "ox") { + // TODO: determine VR based on context (could be 1 byte pixel data) + // https://github.com/dgobbi/vtk-dicom/issues/38 + validationLog.error("Invalid vr type", type, "- using OW"); + vr = VRinstances["OW"]; + } else if (type == "xs") { + validationLog.error("Invalid vr type", type, "- using US"); + vr = VRinstances["US"]; + } else { + validationLog.error("Invalid vr type", type, "- using UN"); + vr = VRinstances["UN"]; + } + } + return vr; + } + }, { + key: "parseUnknownVr", + value: function parseUnknownVr(type) { + return new ParsedUnknownValue(type); + } + }]); + return ValueRepresentation; + }(); + var AsciiStringRepresentation = /*#__PURE__*/function (_ValueRepresentation) { + _inherits(AsciiStringRepresentation, _ValueRepresentation); + var _super = _createSuper(AsciiStringRepresentation); + function AsciiStringRepresentation(type) { + _classCallCheck(this, AsciiStringRepresentation); + return _super.call(this, type); + } + _createClass(AsciiStringRepresentation, [{ + key: "readBytes", + value: function readBytes(stream, length) { + return stream.readAsciiString(length); + } + }, { + key: "writeBytes", + value: function writeBytes(stream, value, writeOptions) { + var written = _get(_getPrototypeOf(AsciiStringRepresentation.prototype), "write", this).call(this, stream, "AsciiString", value); + return _get(_getPrototypeOf(AsciiStringRepresentation.prototype), "writeBytes", this).call(this, stream, value, written, writeOptions); + } + }]); + return AsciiStringRepresentation; + }(ValueRepresentation); + var EncodedStringRepresentation = /*#__PURE__*/function (_ValueRepresentation2) { + _inherits(EncodedStringRepresentation, _ValueRepresentation2); + var _super2 = _createSuper(EncodedStringRepresentation); + function EncodedStringRepresentation(type) { + _classCallCheck(this, EncodedStringRepresentation); + return _super2.call(this, type); + } + _createClass(EncodedStringRepresentation, [{ + key: "readBytes", + value: function readBytes(stream, length) { + return stream.readEncodedString(length); + } + }, { + key: "writeBytes", + value: function writeBytes(stream, value, writeOptions) { + var written = _get(_getPrototypeOf(EncodedStringRepresentation.prototype), "write", this).call(this, stream, "UTF8String", value); + return _get(_getPrototypeOf(EncodedStringRepresentation.prototype), "writeBytes", this).call(this, stream, value, written, writeOptions); + } + }]); + return EncodedStringRepresentation; + }(ValueRepresentation); + var BinaryRepresentation = /*#__PURE__*/function (_ValueRepresentation3) { + _inherits(BinaryRepresentation, _ValueRepresentation3); + var _super3 = _createSuper(BinaryRepresentation); + function BinaryRepresentation(type) { + _classCallCheck(this, BinaryRepresentation); + return _super3.call(this, type); + } + _createClass(BinaryRepresentation, [{ + key: "writeBytes", + value: function writeBytes(stream, value, syntax, isEncapsulated) { + var writeOptions = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {}; + var i; + var binaryStream; + var _writeOptions$fragmen = writeOptions.fragmentMultiframe, + fragmentMultiframe = _writeOptions$fragmen === void 0 ? true : _writeOptions$fragmen; + value = value === null || value === undefined ? [] : value; + if (isEncapsulated) { + var fragmentSize = 1024 * 20, + frames = value.length, + startOffset = []; + + // Calculate a total length for storing binary stream + var bufferLength = 0; + for (i = 0; i < frames; i++) { + var needsPadding = Boolean(value[i].byteLength & 1); + bufferLength += value[i].byteLength + (needsPadding ? 1 : 0); + var _fragmentsLength = 1; + if (fragmentMultiframe) { + _fragmentsLength = Math.ceil(value[i].byteLength / fragmentSize); + } + // 8 bytes per fragment are needed to store 0xffff (2 bytes), 0xe000 (2 bytes), and frageStream size (4 bytes) + bufferLength += _fragmentsLength * 8; + } + binaryStream = new WriteBufferStream(bufferLength, stream.isLittleEndian); + for (i = 0; i < frames; i++) { + var _needsPadding = Boolean(value[i].byteLength & 1); + startOffset.push(binaryStream.size); + var frameBuffer = value[i], + frameStream = new ReadBufferStream(frameBuffer); + var fragmentsLength = 1; + if (fragmentMultiframe) { + fragmentsLength = Math.ceil(frameStream.size / fragmentSize); + } + for (var j = 0, fragmentStart = 0; j < fragmentsLength; j++) { + var isFinalFragment = j === fragmentsLength - 1; + var fragmentEnd = fragmentStart + frameStream.size; + if (fragmentMultiframe) { + fragmentEnd = fragmentStart + fragmentSize; + } + if (isFinalFragment) { + fragmentEnd = frameStream.size; + } + var fragStream = new ReadBufferStream(frameStream.getBuffer(fragmentStart, fragmentEnd)); + fragmentStart = fragmentEnd; + binaryStream.writeUint16(0xfffe); + binaryStream.writeUint16(0xe000); + var addPaddingByte = isFinalFragment && _needsPadding; + binaryStream.writeUint32(fragStream.size + (addPaddingByte ? 1 : 0)); + binaryStream.concat(fragStream); + if (addPaddingByte) { + binaryStream.writeInt8(this.padByte); + } + } + } + stream.writeUint16(0xfffe); + stream.writeUint16(0xe000); + stream.writeUint32(startOffset.length * 4); + for (i = 0; i < startOffset.length; i++) { + stream.writeUint32(startOffset[i]); + } + stream.concat(binaryStream); + stream.writeUint16(0xfffe); + stream.writeUint16(0xe0dd); + stream.writeUint32(0x0); + return 0xffffffff; + } else { + var binaryData = value[0]; + binaryStream = new ReadBufferStream(binaryData); + stream.concat(binaryStream); + return _get(_getPrototypeOf(BinaryRepresentation.prototype), "writeBytes", this).call(this, stream, binaryData, [binaryStream.size], writeOptions); + } + } + }, { + key: "readBytes", + value: function readBytes(stream, length) { + if (length == 0xffffffff) { + var itemTagValue = Tag.readTag(stream), + frames = []; + if (itemTagValue.is(0xfffee000)) { + var itemLength = stream.readUint32(), + numOfFrames = 1, + offsets = []; + if (itemLength > 0x0) { + //has frames + numOfFrames = itemLength / 4; + var i = 0; + while (i++ < numOfFrames) { + offsets.push(stream.readUint32()); + } + } else { + offsets = []; + } + var SequenceItemTag = 0xfffee000; + var SequenceDelimiterTag = 0xfffee0dd; + var getNextSequenceItemData = function getNextSequenceItemData(stream) { + var nextTag = Tag.readTag(stream); + if (nextTag.is(SequenceItemTag)) { + var _itemLength = stream.readUint32(); + var buffer = stream.getBuffer(stream.offset, stream.offset + _itemLength); + stream.increment(_itemLength); + return buffer; + } else if (nextTag.is(SequenceDelimiterTag)) { + // Read SequenceDelimiterItem value for the SequenceDelimiterTag + if (stream.readUint32() !== 0) { + throw Error("SequenceDelimiterItem tag value was not zero"); + } + return null; + } + throw Error("Invalid tag in sequence"); + }; + + // If there is an offset table, use that to loop through pixel data sequence + if (offsets.length > 0) { + // make offsets relative to the stream, not tag + offsets = offsets.map(function (e) { + return e + stream.offset; + }); + offsets.push(stream.size); + + // window offsets to an array of [start,stop] locations + frames = toWindows(offsets, 2).map(function (range) { + var fragments = []; + var _range = _slicedToArray(range, 2), + start = _range[0], + stop = _range[1]; + // create a new readable stream based on the range + var rangeStream = new ReadBufferStream(stream.buffer, stream.isLittleEndian, { + start: start, + stop: stop, + noCopy: stream.noCopy + }); + var frameSize = 0; + while (!rangeStream.end()) { + var buf = getNextSequenceItemData(rangeStream); + if (buf === null) { + break; + } + fragments.push(buf); + frameSize += buf.byteLength; + } + + // Ensure the parent stream's offset is kept up to date + stream.offset = rangeStream.offset; + + // If there's only one buffer thne just return it directly + if (fragments.length === 1) { + return fragments[0]; + } + if (rangeStream.noCopy) { + // return the fragments for downstream application to process + return fragments; + } else { + // Allocate a final ArrayBuffer and concat all buffers into it + var mergedFrame = new ArrayBuffer(frameSize); + var u8Data = new Uint8Array(mergedFrame); + fragments.reduce(function (offset, buffer) { + u8Data.set(new Uint8Array(buffer), offset); + return offset + buffer.byteLength; + }, 0); + return mergedFrame; + } + }); + } + // If no offset table, loop through remainder of stream looking for termination tag + else { + while (!stream.end()) { + var buffer = getNextSequenceItemData(stream); + if (buffer === null) { + break; + } + frames.push(buffer); + } + } + } else { + throw new Error("Item tag not found after undefined binary length"); + } + return frames; + } else { + var bytes; + /*if (this.type == 'OW') { + bytes = stream.readUint16Array(length); + } else if (this.type == 'OB') { + bytes = stream.readUint8Array(length); + }*/ + bytes = stream.getBuffer(stream.offset, stream.offset + length); + stream.increment(length); + return [bytes]; + } + } + }]); + return BinaryRepresentation; + }(ValueRepresentation); + var ApplicationEntity = /*#__PURE__*/function (_AsciiStringRepresent) { + _inherits(ApplicationEntity, _AsciiStringRepresent); + var _super4 = _createSuper(ApplicationEntity); + function ApplicationEntity() { + var _this; + _classCallCheck(this, ApplicationEntity); + _this = _super4.call(this, "AE"); + _this.maxLength = 16; + _this.padByte = PADDING_SPACE; + return _this; + } + _createClass(ApplicationEntity, [{ + key: "readBytes", + value: function readBytes(stream, length) { + return stream.readAsciiString(length).trim(); + } + }]); + return ApplicationEntity; + }(AsciiStringRepresentation); + var CodeString = /*#__PURE__*/function (_AsciiStringRepresent2) { + _inherits(CodeString, _AsciiStringRepresent2); + var _super5 = _createSuper(CodeString); + function CodeString() { + var _this2; + _classCallCheck(this, CodeString); + _this2 = _super5.call(this, "CS"); + _this2.maxLength = 16; + _this2.padByte = PADDING_SPACE; + return _this2; + } + _createClass(CodeString, [{ + key: "readBytes", + value: function readBytes(stream, length) { + return stream.readAsciiString(length).trim(); + } + }]); + return CodeString; + }(AsciiStringRepresentation); + var AgeString = /*#__PURE__*/function (_AsciiStringRepresent3) { + _inherits(AgeString, _AsciiStringRepresent3); + var _super6 = _createSuper(AgeString); + function AgeString() { + var _this3; + _classCallCheck(this, AgeString); + _this3 = _super6.call(this, "AS"); + _this3.maxLength = 4; + _this3.padByte = PADDING_SPACE; + _this3.fixed = true; + _this3.defaultValue = ""; + return _this3; + } + return _createClass(AgeString); + }(AsciiStringRepresentation); + var AttributeTag = /*#__PURE__*/function (_ValueRepresentation4) { + _inherits(AttributeTag, _ValueRepresentation4); + var _super7 = _createSuper(AttributeTag); + function AttributeTag() { + var _this4; + _classCallCheck(this, AttributeTag); + _this4 = _super7.call(this, "AT"); + _this4.maxLength = 4; + _this4.valueLength = 4; + _this4.padByte = PADDING_NULL; + _this4.fixed = true; + return _this4; + } + _createClass(AttributeTag, [{ + key: "readBytes", + value: function readBytes(stream) { + return Tag.readTag(stream).value; + } + }, { + key: "writeBytes", + value: function writeBytes(stream, value, writeOptions) { + return _get(_getPrototypeOf(AttributeTag.prototype), "writeBytes", this).call(this, stream, value, _get(_getPrototypeOf(AttributeTag.prototype), "write", this).call(this, stream, "TwoUint16s", value), writeOptions); + } + }]); + return AttributeTag; + }(ValueRepresentation); + var DateValue = /*#__PURE__*/function (_AsciiStringRepresent4) { + _inherits(DateValue, _AsciiStringRepresent4); + var _super8 = _createSuper(DateValue); + function DateValue(value) { + var _this5; + _classCallCheck(this, DateValue); + _this5 = _super8.call(this, "DA", value); + _this5.maxLength = 18; + _this5.padByte = PADDING_SPACE; + //this.fixed = true; + _this5.defaultValue = ""; + return _this5; + } + return _createClass(DateValue); + }(AsciiStringRepresentation); + var DecimalString = /*#__PURE__*/function (_AsciiStringRepresent5) { + _inherits(DecimalString, _AsciiStringRepresent5); + var _super9 = _createSuper(DecimalString); + function DecimalString() { + var _this6; + _classCallCheck(this, DecimalString); + _this6 = _super9.call(this, "DS"); + _this6.maxLength = 16; + _this6.padByte = PADDING_SPACE; + return _this6; + } + _createClass(DecimalString, [{ + key: "readBytes", + value: function readBytes(stream, length) { + var BACKSLASH = String.fromCharCode(VM_DELIMITER); + var ds = stream.readAsciiString(length); + ds = ds.replace(/[^0-9.\\\-+e]/gi, ""); + if (ds.indexOf(BACKSLASH) !== -1) { + // handle decimal string with multiplicity + var dsArray = ds.split(BACKSLASH); + ds = dsArray.map(function (ds) { + return ds === "" ? null : Number(ds); + }); + } else { + ds = [ds === "" ? null : Number(ds)]; + } + return ds; + } + }, { + key: "formatValue", + value: function formatValue(value) { + if (value === null) return ""; + var str = String(value); + if (str.length > this.maxLength) { + // Characters needed for '-' at start. + var sign_chars = value < 0 ? 1 : 0; + + // Decide whether to use scientific notation. + var logval = Math.log10(Math.abs(value)); + + // Numbers larger than 1e14 cannot be correctly represented by truncating + // their string representations to 16 chars, e.g pi * 10^13 would become + // '314159265358979.', which may not be universally understood. This limit + // is 1e13 for negative numbers because of the minus sign. + // For negative exponents, the point of equal precision between scientific + // and standard notation is 1e-4 e.g. '0.00031415926535' and + // '3.1415926535e-04' are both 16 chars. + var use_scientific = logval < -4 || logval >= 14 - sign_chars; + if (use_scientific) { + var trunc_str = value.toExponential(16 - sign_chars); + if (trunc_str.length <= 16) return trunc_str; + // If string is too long, correct the length. + return value.toExponential(16 - (trunc_str.length - 16) - sign_chars); + } else { + var _trunc_str = value.toFixed(16 - sign_chars); + if (_trunc_str.length <= 16) return _trunc_str; + // If string is too long, correct the length. + return value.toFixed(16 - sign_chars - (_trunc_str.length - 16)); + } + } + return str; + } + }, { + key: "writeBytes", + value: function writeBytes(stream, value, writeOptions) { + var _this7 = this; + var val = Array.isArray(value) ? value.map(function (ds) { + return _this7.formatValue(ds); + }) : [this.formatValue(value)]; + return _get(_getPrototypeOf(DecimalString.prototype), "writeBytes", this).call(this, stream, val, writeOptions); + } + }]); + return DecimalString; + }(AsciiStringRepresentation); + var DateTime = /*#__PURE__*/function (_AsciiStringRepresent6) { + _inherits(DateTime, _AsciiStringRepresent6); + var _super10 = _createSuper(DateTime); + function DateTime() { + var _this8; + _classCallCheck(this, DateTime); + _this8 = _super10.call(this, "DT"); + _this8.maxLength = 26; + _this8.padByte = PADDING_SPACE; + return _this8; + } + return _createClass(DateTime); + }(AsciiStringRepresentation); + var FloatingPointSingle = /*#__PURE__*/function (_ValueRepresentation5) { + _inherits(FloatingPointSingle, _ValueRepresentation5); + var _super11 = _createSuper(FloatingPointSingle); + function FloatingPointSingle() { + var _this9; + _classCallCheck(this, FloatingPointSingle); + _this9 = _super11.call(this, "FL"); + _this9.maxLength = 4; + _this9.padByte = PADDING_NULL; + _this9.fixed = true; + _this9.defaultValue = 0.0; + return _this9; + } + _createClass(FloatingPointSingle, [{ + key: "readBytes", + value: function readBytes(stream) { + return Number(stream.readFloat()); + } + }, { + key: "writeBytes", + value: function writeBytes(stream, value, writeOptions) { + return _get(_getPrototypeOf(FloatingPointSingle.prototype), "writeBytes", this).call(this, stream, value, _get(_getPrototypeOf(FloatingPointSingle.prototype), "write", this).call(this, stream, "Float", value), writeOptions); + } + }]); + return FloatingPointSingle; + }(ValueRepresentation); + var FloatingPointDouble = /*#__PURE__*/function (_ValueRepresentation6) { + _inherits(FloatingPointDouble, _ValueRepresentation6); + var _super12 = _createSuper(FloatingPointDouble); + function FloatingPointDouble() { + var _this10; + _classCallCheck(this, FloatingPointDouble); + _this10 = _super12.call(this, "FD"); + _this10.maxLength = 8; + _this10.padByte = PADDING_NULL; + _this10.fixed = true; + _this10.defaultValue = 0.0; + return _this10; + } + _createClass(FloatingPointDouble, [{ + key: "readBytes", + value: function readBytes(stream) { + return Number(stream.readDouble()); + } + }, { + key: "writeBytes", + value: function writeBytes(stream, value, writeOptions) { + return _get(_getPrototypeOf(FloatingPointDouble.prototype), "writeBytes", this).call(this, stream, value, _get(_getPrototypeOf(FloatingPointDouble.prototype), "write", this).call(this, stream, "Double", value), writeOptions); + } + }]); + return FloatingPointDouble; + }(ValueRepresentation); + var IntegerString = /*#__PURE__*/function (_AsciiStringRepresent7) { + _inherits(IntegerString, _AsciiStringRepresent7); + var _super13 = _createSuper(IntegerString); + function IntegerString() { + var _this11; + _classCallCheck(this, IntegerString); + _this11 = _super13.call(this, "IS"); + _this11.maxLength = 12; + _this11.padByte = PADDING_SPACE; + return _this11; + } + _createClass(IntegerString, [{ + key: "readBytes", + value: function readBytes(stream, length) { + var BACKSLASH = String.fromCharCode(VM_DELIMITER); + var is = stream.readAsciiString(length).trim(); + is = is.replace(/[^0-9.\\\-+e]/gi, ""); + if (is.indexOf(BACKSLASH) !== -1) { + // handle integer string with multiplicity + var integerStringArray = is.split(BACKSLASH); + is = integerStringArray.map(function (is) { + return is === "" ? null : Number(is); + }); + } else { + is = [is === "" ? null : Number(is)]; + } + return is; + } + }, { + key: "formatValue", + value: function formatValue(value) { + return value === null ? "" : String(value); + } + }, { + key: "writeBytes", + value: function writeBytes(stream, value, writeOptions) { + var _this12 = this; + var val = Array.isArray(value) ? value.map(function (is) { + return _this12.formatValue(is); + }) : [this.formatValue(value)]; + return _get(_getPrototypeOf(IntegerString.prototype), "writeBytes", this).call(this, stream, val, writeOptions); + } + }]); + return IntegerString; + }(AsciiStringRepresentation); + var LongString = /*#__PURE__*/function (_EncodedStringReprese) { + _inherits(LongString, _EncodedStringReprese); + var _super14 = _createSuper(LongString); + function LongString() { + var _this13; + _classCallCheck(this, LongString); + _this13 = _super14.call(this, "LO"); + _this13.maxCharLength = 64; + _this13.padByte = PADDING_SPACE; + return _this13; + } + _createClass(LongString, [{ + key: "readBytes", + value: function readBytes(stream, length) { + return stream.readEncodedString(length).trim(); + } + }]); + return LongString; + }(EncodedStringRepresentation); + var LongText = /*#__PURE__*/function (_EncodedStringReprese2) { + _inherits(LongText, _EncodedStringReprese2); + var _super15 = _createSuper(LongText); + function LongText() { + var _this14; + _classCallCheck(this, LongText); + _this14 = _super15.call(this, "LT"); + _this14.maxCharLength = 10240; + _this14.padByte = PADDING_SPACE; + return _this14; + } + _createClass(LongText, [{ + key: "readBytes", + value: function readBytes(stream, length) { + return rtrim(stream.readEncodedString(length)); + } + }]); + return LongText; + }(EncodedStringRepresentation); + var PersonName = /*#__PURE__*/function (_EncodedStringReprese3) { + _inherits(PersonName, _EncodedStringReprese3); + var _super16 = _createSuper(PersonName); + function PersonName() { + var _this15; + _classCallCheck(this, PersonName); + _this15 = _super16.call(this, "PN"); + _this15.maxLength = null; + _this15.padByte = PADDING_SPACE; + return _this15; + } + _createClass(PersonName, [{ + key: "addValueAccessors", + value: + // Adds toJSON and toString accessors to normalize PersonName output; ie toJSON + // always returns a dicom+json object, and toString always returns a part10 + // style string, regardless of typeof value + function addValueAccessors(value) { + if (typeof value === "string") { + value = new String(value); + } + if (value != undefined) { + if (_typeof(value) === "object") { + return dicomJson.pnAddValueAccessors(value); + } else { + throw new Error("Cannot add accessors to non-string primitives"); + } + } + return value; + } + + // Only checked on write, not on read nor creation + }, { + key: "checkLength", + value: function checkLength(value) { + if (Array.isArray(value)) { + // In DICOM JSON, components are encoded as a mapping (object), + // where the keys are one or more of the following: "Alphabetic", + // "Ideographic", "Phonetic". + // http://dicom.nema.org/medical/dicom/current/output/chtml/part18/sect_F.2.2.html + var _iterator = _createForOfIteratorHelper(value), + _step; + try { + for (_iterator.s(); !(_step = _iterator.n()).done;) { + var pnValue = _step.value; + var components = Object.keys(pnValue).forEach(function (key) { + return value[key]; + }); + if (!PersonName.checkComponentLengths(components)) return false; + } + } catch (err) { + _iterator.e(err); + } finally { + _iterator.f(); + } + } else if (typeof value === "string" || value instanceof String) { + // In DICOM Part10, components are encoded as a string, + // where components ("Alphabetic", "Ideographic", "Phonetic") + // are separated by the "=" delimeter. + // http://dicom.nema.org/medical/dicom/current/output/chtml/part05/sect_6.2.html + // PN may also have multiplicity, with each item separated by + // 0x5C (backslash). + // https://dicom.nema.org/dicom/2013/output/chtml/part05/sect_6.4.html + var values = value.split(String.fromCharCode(VM_DELIMITER)); + var _iterator2 = _createForOfIteratorHelper(values), + _step2; + try { + for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) { + var pnString = _step2.value; + var _components = pnString.split(String.fromCharCode(PN_COMPONENT_DELIMITER)); + if (!PersonName.checkComponentLengths(_components)) return false; + } + } catch (err) { + _iterator2.e(err); + } finally { + _iterator2.f(); + } + } + return true; + } + }, { + key: "readBytes", + value: function readBytes(stream, length) { + var result = this.readPaddedEncodedString(stream, length); + return dicomJson.pnConvertToJsonObject(result); + } + }, { + key: "writeBytes", + value: function writeBytes(stream, value, writeOptions) { + return _get(_getPrototypeOf(PersonName.prototype), "writeBytes", this).call(this, stream, dicomJson.pnObjectToString(value), writeOptions); + } + }], [{ + key: "checkComponentLengths", + value: function checkComponentLengths(components) { + for (var i in components) { + var cmp = components[i]; + // As per table 6.2-1 in the spec + if (cmp.length > 64) return false; + } + return true; + } + }]); + return PersonName; + }(EncodedStringRepresentation); + var ShortString = /*#__PURE__*/function (_EncodedStringReprese4) { + _inherits(ShortString, _EncodedStringReprese4); + var _super17 = _createSuper(ShortString); + function ShortString() { + var _this16; + _classCallCheck(this, ShortString); + _this16 = _super17.call(this, "SH"); + _this16.maxCharLength = 16; + _this16.padByte = PADDING_SPACE; + return _this16; + } + _createClass(ShortString, [{ + key: "readBytes", + value: function readBytes(stream, length) { + return stream.readEncodedString(length).trim(); + } + }]); + return ShortString; + }(EncodedStringRepresentation); + var SignedLong = /*#__PURE__*/function (_ValueRepresentation7) { + _inherits(SignedLong, _ValueRepresentation7); + var _super18 = _createSuper(SignedLong); + function SignedLong() { + var _this17; + _classCallCheck(this, SignedLong); + _this17 = _super18.call(this, "SL"); + _this17.maxLength = 4; + _this17.padByte = PADDING_NULL; + _this17.fixed = true; + _this17.defaultValue = 0; + return _this17; + } + _createClass(SignedLong, [{ + key: "readBytes", + value: function readBytes(stream) { + return stream.readInt32(); + } + }, { + key: "writeBytes", + value: function writeBytes(stream, value, writeOptions) { + return _get(_getPrototypeOf(SignedLong.prototype), "writeBytes", this).call(this, stream, value, _get(_getPrototypeOf(SignedLong.prototype), "write", this).call(this, stream, "Int32", value), writeOptions); + } + }]); + return SignedLong; + }(ValueRepresentation); + var SequenceOfItems = /*#__PURE__*/function (_ValueRepresentation8) { + _inherits(SequenceOfItems, _ValueRepresentation8); + var _super19 = _createSuper(SequenceOfItems); + function SequenceOfItems() { + var _this18; + _classCallCheck(this, SequenceOfItems); + _this18 = _super19.call(this, "SQ"); + _this18.maxLength = null; + _this18.padByte = PADDING_NULL; + _this18.noMultiple = true; + return _this18; + } + _createClass(SequenceOfItems, [{ + key: "readBytes", + value: function readBytes(stream, sqlength, syntax) { + if (sqlength == 0x0) { + return []; //contains no dataset + } else { + var undefLength = sqlength == 0xffffffff, + elements = [], + read = 0; + + /* eslint-disable-next-line no-constant-condition */ + while (true) { + var tag = Tag.readTag(stream), + length = null; + read += 4; + if (tag.is(0xfffee0dd)) { + stream.readUint32(); + break; + } else if (!undefLength && read == sqlength) { + break; + } else if (tag.is(0xfffee000)) { + length = stream.readUint32(); + read += 4; + var itemStream = null, + toRead = 0, + undef = length == 0xffffffff; + if (undef) { + var stack = 0; + + /* eslint-disable-next-line no-constant-condition */ + while (1) { + var g = stream.readUint16(); + if (g == 0xfffe) { + // some control tag is about to be read + var ge = stream.readUint16(); + var itemLength = stream.readUint32(); + stream.increment(-4); + if (ge == 0xe00d) { + if (itemLength === 0) { + // item delimitation tag (0xfffee00d) + item length (0x00000000) has been read + stack--; + if (stack < 0) { + // if we are outside every stack, then we are finished reading the sequence of items + stream.increment(4); + read += 8; + break; + } else { + // otherwise, we were in a nested sequence of items + toRead += 4; + } + } else { + // anything else has been read + toRead += 2; + } + } else if (ge == 0xe000) { + // a new item has been found + toRead += 4; + if (itemLength == 0xffffffff) { + // a new item with undefined length has been found + stack++; + } + } else { + // some control tag that does not concern sequence of items has been read + toRead += 2; + stream.increment(-2); + } + } else { + // anything else has been read + toRead += 2; + } + } + } else { + toRead = length; + } + if (toRead) { + stream.increment(undef ? -toRead - 8 : 0); + itemStream = stream.more(toRead); //parseElements + read += toRead; + if (undef) stream.increment(8); + var items = DicomMessage._read(itemStream, syntax); + elements.push(items); + } + if (!undefLength && read == sqlength) { + break; + } + } + } + return elements; + } + } + }, { + key: "writeBytes", + value: function writeBytes(stream, value, syntax, writeOptions) { + var written = 0; + if (value) { + for (var i = 0; i < value.length; i++) { + var item = value[i]; + _get(_getPrototypeOf(SequenceOfItems.prototype), "write", this).call(this, stream, "Uint16", 0xfffe); + _get(_getPrototypeOf(SequenceOfItems.prototype), "write", this).call(this, stream, "Uint16", 0xe000); + _get(_getPrototypeOf(SequenceOfItems.prototype), "write", this).call(this, stream, "Uint32", 0xffffffff); + written += DicomMessage.write(item, stream, syntax, writeOptions); + _get(_getPrototypeOf(SequenceOfItems.prototype), "write", this).call(this, stream, "Uint16", 0xfffe); + _get(_getPrototypeOf(SequenceOfItems.prototype), "write", this).call(this, stream, "Uint16", 0xe00d); + _get(_getPrototypeOf(SequenceOfItems.prototype), "write", this).call(this, stream, "Uint32", 0x00000000); + written += 16; + } + } + _get(_getPrototypeOf(SequenceOfItems.prototype), "write", this).call(this, stream, "Uint16", 0xfffe); + _get(_getPrototypeOf(SequenceOfItems.prototype), "write", this).call(this, stream, "Uint16", 0xe0dd); + _get(_getPrototypeOf(SequenceOfItems.prototype), "write", this).call(this, stream, "Uint32", 0x00000000); + written += 8; + return _get(_getPrototypeOf(SequenceOfItems.prototype), "writeBytes", this).call(this, stream, value, [written], writeOptions); + } + }]); + return SequenceOfItems; + }(ValueRepresentation); + var SignedShort = /*#__PURE__*/function (_ValueRepresentation9) { + _inherits(SignedShort, _ValueRepresentation9); + var _super20 = _createSuper(SignedShort); + function SignedShort() { + var _this19; + _classCallCheck(this, SignedShort); + _this19 = _super20.call(this, "SS"); + _this19.maxLength = 2; + _this19.valueLength = 2; + _this19.padByte = PADDING_NULL; + _this19.fixed = true; + _this19.defaultValue = 0; + return _this19; + } + _createClass(SignedShort, [{ + key: "readBytes", + value: function readBytes(stream) { + return stream.readInt16(); + } + }, { + key: "writeBytes", + value: function writeBytes(stream, value, writeOptions) { + return _get(_getPrototypeOf(SignedShort.prototype), "writeBytes", this).call(this, stream, value, _get(_getPrototypeOf(SignedShort.prototype), "write", this).call(this, stream, "Int16", value), writeOptions); + } + }]); + return SignedShort; + }(ValueRepresentation); + var ShortText = /*#__PURE__*/function (_EncodedStringReprese5) { + _inherits(ShortText, _EncodedStringReprese5); + var _super21 = _createSuper(ShortText); + function ShortText() { + var _this20; + _classCallCheck(this, ShortText); + _this20 = _super21.call(this, "ST"); + _this20.maxCharLength = 1024; + _this20.padByte = PADDING_SPACE; + return _this20; + } + _createClass(ShortText, [{ + key: "readBytes", + value: function readBytes(stream, length) { + return rtrim(stream.readEncodedString(length)); + } + }]); + return ShortText; + }(EncodedStringRepresentation); + var TimeValue = /*#__PURE__*/function (_AsciiStringRepresent8) { + _inherits(TimeValue, _AsciiStringRepresent8); + var _super22 = _createSuper(TimeValue); + function TimeValue() { + var _this21; + _classCallCheck(this, TimeValue); + _this21 = _super22.call(this, "TM"); + _this21.maxLength = 14; + _this21.padByte = PADDING_SPACE; + return _this21; + } + _createClass(TimeValue, [{ + key: "readBytes", + value: function readBytes(stream, length) { + return rtrim(stream.readAsciiString(length)); + } + }]); + return TimeValue; + }(AsciiStringRepresentation); + var UnlimitedCharacters = /*#__PURE__*/function (_EncodedStringReprese6) { + _inherits(UnlimitedCharacters, _EncodedStringReprese6); + var _super23 = _createSuper(UnlimitedCharacters); + function UnlimitedCharacters() { + var _this22; + _classCallCheck(this, UnlimitedCharacters); + _this22 = _super23.call(this, "UC"); + _this22.maxLength = null; + _this22.multi = true; + _this22.padByte = PADDING_SPACE; + return _this22; + } + _createClass(UnlimitedCharacters, [{ + key: "readBytes", + value: function readBytes(stream, length) { + return rtrim(stream.readEncodedString(length)); + } + }]); + return UnlimitedCharacters; + }(EncodedStringRepresentation); + var UnlimitedText = /*#__PURE__*/function (_EncodedStringReprese7) { + _inherits(UnlimitedText, _EncodedStringReprese7); + var _super24 = _createSuper(UnlimitedText); + function UnlimitedText() { + var _this23; + _classCallCheck(this, UnlimitedText); + _this23 = _super24.call(this, "UT"); + _this23.maxLength = null; + _this23.padByte = PADDING_SPACE; + return _this23; + } + _createClass(UnlimitedText, [{ + key: "readBytes", + value: function readBytes(stream, length) { + return rtrim(stream.readEncodedString(length)); + } + }]); + return UnlimitedText; + }(EncodedStringRepresentation); + var UnsignedShort = /*#__PURE__*/function (_ValueRepresentation10) { + _inherits(UnsignedShort, _ValueRepresentation10); + var _super25 = _createSuper(UnsignedShort); + function UnsignedShort() { + var _this24; + _classCallCheck(this, UnsignedShort); + _this24 = _super25.call(this, "US"); + _this24.maxLength = 2; + _this24.padByte = PADDING_NULL; + _this24.fixed = true; + _this24.defaultValue = 0; + return _this24; + } + _createClass(UnsignedShort, [{ + key: "readBytes", + value: function readBytes(stream) { + return stream.readUint16(); + } + }, { + key: "writeBytes", + value: function writeBytes(stream, value, writeOptions) { + return _get(_getPrototypeOf(UnsignedShort.prototype), "writeBytes", this).call(this, stream, value, _get(_getPrototypeOf(UnsignedShort.prototype), "write", this).call(this, stream, "Uint16", value), writeOptions); + } + }]); + return UnsignedShort; + }(ValueRepresentation); + var UnsignedLong = /*#__PURE__*/function (_ValueRepresentation11) { + _inherits(UnsignedLong, _ValueRepresentation11); + var _super26 = _createSuper(UnsignedLong); + function UnsignedLong() { + var _this25; + _classCallCheck(this, UnsignedLong); + _this25 = _super26.call(this, "UL"); + _this25.maxLength = 4; + _this25.padByte = PADDING_NULL; + _this25.fixed = true; + _this25.defaultValue = 0; + return _this25; + } + _createClass(UnsignedLong, [{ + key: "readBytes", + value: function readBytes(stream) { + return stream.readUint32(); + } + }, { + key: "writeBytes", + value: function writeBytes(stream, value, writeOptions) { + return _get(_getPrototypeOf(UnsignedLong.prototype), "writeBytes", this).call(this, stream, value, _get(_getPrototypeOf(UnsignedLong.prototype), "write", this).call(this, stream, "Uint32", value), writeOptions); + } + }]); + return UnsignedLong; + }(ValueRepresentation); + var UniqueIdentifier = /*#__PURE__*/function (_AsciiStringRepresent9) { + _inherits(UniqueIdentifier, _AsciiStringRepresent9); + var _super27 = _createSuper(UniqueIdentifier); + function UniqueIdentifier() { + var _this26; + _classCallCheck(this, UniqueIdentifier); + _this26 = _super27.call(this, "UI"); + _this26.maxLength = 64; + _this26.padByte = PADDING_NULL; + return _this26; + } + _createClass(UniqueIdentifier, [{ + key: "readBytes", + value: function readBytes(stream, length) { + var result = this.readPaddedAsciiString(stream, length); + var BACKSLASH = String.fromCharCode(VM_DELIMITER); + var uidRegExp = /[^0-9.]/g; + + // Treat backslashes as a delimiter for multiple UIDs, in which case an + // array of UIDs is returned. This is used by DICOM Q&R to support + // querying and matching multiple items on a UID field in a single + // query. For more details see: + // + // https://dicom.nema.org/medical/dicom/current/output/chtml/part04/sect_C.2.2.2.2.html + // https://dicom.nema.org/medical/dicom/current/output/chtml/part05/sect_6.4.html + + if (result.indexOf(BACKSLASH) === -1) { + return result.replace(uidRegExp, ""); + } else { + return result.split(BACKSLASH).map(function (uid) { + return uid.replace(uidRegExp, ""); + }); + } + } + }]); + return UniqueIdentifier; + }(AsciiStringRepresentation); + var UniversalResource = /*#__PURE__*/function (_AsciiStringRepresent10) { + _inherits(UniversalResource, _AsciiStringRepresent10); + var _super28 = _createSuper(UniversalResource); + function UniversalResource() { + var _this27; + _classCallCheck(this, UniversalResource); + _this27 = _super28.call(this, "UR"); + _this27.maxLength = null; + _this27.padByte = PADDING_SPACE; + return _this27; + } + _createClass(UniversalResource, [{ + key: "readBytes", + value: function readBytes(stream, length) { + return stream.readAsciiString(length); + } + }]); + return UniversalResource; + }(AsciiStringRepresentation); + var UnknownValue = /*#__PURE__*/function (_BinaryRepresentation) { + _inherits(UnknownValue, _BinaryRepresentation); + var _super29 = _createSuper(UnknownValue); + function UnknownValue() { + var _this28; + _classCallCheck(this, UnknownValue); + _this28 = _super29.call(this, "UN"); + _this28.maxLength = null; + _this28.padByte = PADDING_NULL; + _this28.noMultiple = true; + return _this28; + } + return _createClass(UnknownValue); + }(BinaryRepresentation); + var ParsedUnknownValue = /*#__PURE__*/function (_BinaryRepresentation2) { + _inherits(ParsedUnknownValue, _BinaryRepresentation2); + var _super30 = _createSuper(ParsedUnknownValue); + function ParsedUnknownValue(vr) { + var _this29; + _classCallCheck(this, ParsedUnknownValue); + _this29 = _super30.call(this, vr); + _this29.maxLength = null; + _this29.padByte = 0; + _this29.noMultiple = true; + _this29._isBinary = true; + _this29._allowMultiple = false; + _this29._isExplicit = true; + return _this29; + } + _createClass(ParsedUnknownValue, [{ + key: "read", + value: function read(stream, length, syntax) { + var arrayBuffer = this.readBytes(stream, length, syntax)[0]; + var streamFromBuffer = new ReadBufferStream(arrayBuffer, true); + var vr = ValueRepresentation.createByTypeString(this.type); + var values = []; + if (vr.isBinary() && length > vr.maxLength && !vr.noMultiple) { + var times = length / vr.maxLength, + i = 0; + while (i++ < times) { + values.push(vr.read(streamFromBuffer, vr.maxLength, syntax)); + } + } else { + var val = vr.read(streamFromBuffer, length, syntax); + if (!vr.isBinary() && singleVRs$1.indexOf(vr.type) == -1) { + values = val; + if (typeof val === "string") { + values = val.split(String.fromCharCode(VM_DELIMITER)); + } + } else if (vr.type == "SQ") { + values = val; + } else if (vr.type == "OW" || vr.type == "OB") { + values = val; + } else { + Array.isArray(val) ? values = val : values.push(val); + } + } + return values; + } + }]); + return ParsedUnknownValue; + }(BinaryRepresentation); + var OtherWordString = /*#__PURE__*/function (_BinaryRepresentation3) { + _inherits(OtherWordString, _BinaryRepresentation3); + var _super31 = _createSuper(OtherWordString); + function OtherWordString() { + var _this30; + _classCallCheck(this, OtherWordString); + _this30 = _super31.call(this, "OW"); + _this30.maxLength = null; + _this30.padByte = PADDING_NULL; + _this30.noMultiple = true; + return _this30; + } + return _createClass(OtherWordString); + }(BinaryRepresentation); + var OtherByteString = /*#__PURE__*/function (_BinaryRepresentation4) { + _inherits(OtherByteString, _BinaryRepresentation4); + var _super32 = _createSuper(OtherByteString); + function OtherByteString() { + var _this31; + _classCallCheck(this, OtherByteString); + _this31 = _super32.call(this, "OB"); + _this31.maxLength = null; + _this31.padByte = PADDING_NULL; + _this31.noMultiple = true; + return _this31; + } + return _createClass(OtherByteString); + }(BinaryRepresentation); + var OtherDoubleString = /*#__PURE__*/function (_BinaryRepresentation5) { + _inherits(OtherDoubleString, _BinaryRepresentation5); + var _super33 = _createSuper(OtherDoubleString); + function OtherDoubleString() { + var _this32; + _classCallCheck(this, OtherDoubleString); + _this32 = _super33.call(this, "OD"); + _this32.maxLength = null; + _this32.padByte = PADDING_NULL; + _this32.noMultiple = true; + return _this32; + } + return _createClass(OtherDoubleString); + }(BinaryRepresentation); + var OtherFloatString = /*#__PURE__*/function (_BinaryRepresentation6) { + _inherits(OtherFloatString, _BinaryRepresentation6); + var _super34 = _createSuper(OtherFloatString); + function OtherFloatString() { + var _this33; + _classCallCheck(this, OtherFloatString); + _this33 = _super34.call(this, "OF"); + _this33.maxLength = null; + _this33.padByte = PADDING_NULL; + _this33.noMultiple = true; + return _this33; + } + return _createClass(OtherFloatString); + }(BinaryRepresentation); // these VR instances are precreate and are reused for each requested vr/tag + var VRinstances = { + AE: new ApplicationEntity(), + AS: new AgeString(), + AT: new AttributeTag(), + CS: new CodeString(), + DA: new DateValue(), + DS: new DecimalString(), + DT: new DateTime(), + FL: new FloatingPointSingle(), + FD: new FloatingPointDouble(), + IS: new IntegerString(), + LO: new LongString(), + LT: new LongText(), + OB: new OtherByteString(), + OD: new OtherDoubleString(), + OF: new OtherFloatString(), + OW: new OtherWordString(), + PN: new PersonName(), + SH: new ShortString(), + SL: new SignedLong(), + SQ: new SequenceOfItems(), + SS: new SignedShort(), + ST: new ShortText(), + TM: new TimeValue(), + UC: new UnlimitedCharacters(), + UI: new UniqueIdentifier(), + UL: new UnsignedLong(), + UN: new UnknownValue(), + UR: new UniversalResource(), + US: new UnsignedShort(), + UT: new UnlimitedText() + }; + + var DicomMetaDictionary = /*#__PURE__*/function () { + // intakes a custom dictionary that will be used to parse/denaturalize the dataset + function DicomMetaDictionary(customDictionary) { + _classCallCheck(this, DicomMetaDictionary); + this.customDictionary = customDictionary; + this.customNameMap = DicomMetaDictionary._generateCustomNameMap(customDictionary); + } + _createClass(DicomMetaDictionary, [{ + key: "denaturalizeDataset", + value: + // denaturalizes dataset using custom dictionary and nameMap + function denaturalizeDataset(dataset) { + return DicomMetaDictionary.denaturalizeDataset(dataset, this.customNameMap); + } + }], [{ + key: "punctuateTag", + value: function punctuateTag(rawTag) { + if (rawTag.indexOf(",") !== -1) { + return rawTag; + } + if (rawTag.length === 8 && rawTag === rawTag.match(/[0-9a-fA-F]*/)[0]) { + var tag = rawTag.toUpperCase(); + return "(" + tag.substring(0, 4) + "," + tag.substring(4, 8) + ")"; + } + } + }, { + key: "unpunctuateTag", + value: function unpunctuateTag(tag) { + if (tag.indexOf(",") === -1) { + return tag; + } + return tag.substring(1, 10).replace(",", ""); + } + }, { + key: "parseIntFromTag", + value: function parseIntFromTag(tag) { + var integerValue = parseInt("0x" + DicomMetaDictionary.unpunctuateTag(tag)); + return integerValue; + } + }, { + key: "tagAsIntegerFromName", + value: function tagAsIntegerFromName(name) { + var item = DicomMetaDictionary.nameMap[name]; + if (item != undefined) { + return this.parseIntFromTag(item.tag); + } else { + return undefined; + } + } + + // fixes some common errors in VRs + // TODO: if this gets longer it could go in ValueRepresentation.js + // or in a dedicated class + }, { + key: "cleanDataset", + value: function cleanDataset(dataset) { + var cleanedDataset = {}; + Object.keys(dataset).forEach(function (tag) { + var data = Object.assign({}, dataset[tag]); + if (data.vr == "SQ") { + var cleanedValues = []; + Object.keys(data.Value).forEach(function (index) { + cleanedValues.push(DicomMetaDictionary.cleanDataset(data.Value[index])); + }); + data.Value = cleanedValues; + } else { + // remove null characters from strings + data.Value = Object.keys(data.Value).map(function (index) { + var item = data.Value[index]; + if (item.constructor.name == "String") { + return item.replace(/\0/, ""); + } + return item; + }); + } + cleanedDataset[tag] = data; + }); + return cleanedDataset; + } + + // unlike naturalizeDataset, this only + // changes the names of the member variables + // but leaves the values intact + }, { + key: "namifyDataset", + value: function namifyDataset(dataset) { + var namedDataset = {}; + Object.keys(dataset).forEach(function (tag) { + var data = Object.assign({}, dataset[tag]); + if (data.vr == "SQ") { + var namedValues = []; + Object.keys(data.Value).forEach(function (index) { + namedValues.push(DicomMetaDictionary.namifyDataset(data.Value[index])); + }); + data.Value = namedValues; + } + var punctuatedTag = DicomMetaDictionary.punctuateTag(tag); + var entry = DicomMetaDictionary.dictionary[punctuatedTag]; + var name = tag; + if (entry) { + name = entry.name; + } + namedDataset[name] = data; + }); + return namedDataset; + } + + /** converts from DICOM JSON Model dataset to a natural dataset + * - sequences become lists + * - single element lists are replaced by their first element, + * with single element lists remaining lists, but being a + * proxy for the child values, see addAccessors for examples + * - object member names are dictionary, not group/element tag + */ + }, { + key: "naturalizeDataset", + value: function naturalizeDataset(dataset) { + var naturalDataset = ValueRepresentation.addTagAccessors({ + _vrMap: {} + }); + Object.keys(dataset).forEach(function (tag) { + var data = dataset[tag]; + var punctuatedTag = DicomMetaDictionary.punctuateTag(tag); + var entry = DicomMetaDictionary.dictionary[punctuatedTag]; + var naturalName = tag; + if (entry) { + naturalName = entry.name; + if (entry.vr == "ox") { + // when the vr is data-dependent, keep track of the original type + naturalDataset._vrMap[naturalName] = data.vr; + } + } + if (data.Value === undefined) { + // In the case of type 2, add this tag but explictly set it null to indicate its empty. + naturalDataset[naturalName] = null; + if (data.InlineBinary) { + naturalDataset[naturalName] = { + InlineBinary: data.InlineBinary + }; + } else if (data.BulkDataURI) { + naturalDataset[naturalName] = { + BulkDataURI: data.BulkDataURI + }; + } + } else { + if (data.vr === "SQ") { + // convert sequence to list of values + var naturalValues = []; + Object.keys(data.Value).forEach(function (index) { + naturalValues.push(DicomMetaDictionary.naturalizeDataset(data.Value[index])); + }); + naturalDataset[naturalName] = naturalValues; + } else { + naturalDataset[naturalName] = data.Value; + } + if (naturalDataset[naturalName].length === 1) { + var sqZero = naturalDataset[naturalName][0]; + if (sqZero && _typeof(sqZero) === "object" && !sqZero.length) { + naturalDataset[naturalName] = addAccessors(naturalDataset[naturalName], sqZero); + } else { + naturalDataset[naturalName] = sqZero; + } + } + } + }); + return naturalDataset; + } + }, { + key: "denaturalizeValue", + value: function denaturalizeValue(naturalValue) { + var value = naturalValue; + if (!Array.isArray(value)) { + value = [value]; + } else { + var thereIsUndefinedValues = naturalValue.some(function (item) { + return item === undefined; + }); + if (thereIsUndefinedValues) { + throw new Error("There are undefined values at the array naturalValue in DicomMetaDictionary.denaturalizeValue"); + } + } + value = value.map(function (entry) { + return entry.constructor.name == "Number" ? String(entry) : entry; + }); + return value; + } + + // keep the static function to support previous calls to the class + }, { + key: "denaturalizeDataset", + value: function denaturalizeDataset(dataset) { + var nameMap = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DicomMetaDictionary.nameMap; + var unnaturalDataset = {}; + Object.keys(dataset).forEach(function (naturalName) { + // check if it's a sequence + var name = naturalName; + var entry = nameMap[name]; + if (entry) { + var dataValue = dataset[naturalName]; + if (dataValue === undefined) { + // handle the case where it was deleted from the object but is in keys + return; + } + // process this one entry + var dataItem = ValueRepresentation.addTagAccessors({ + vr: entry.vr + }); + dataItem.Value = dataset[naturalName]; + if (dataValue !== null) { + if (entry.vr == "ox") { + if (dataset._vrMap && dataset._vrMap[naturalName]) { + dataItem.vr = dataset._vrMap[naturalName]; + } else { + log.error("No value representation given for", naturalName); + } + } + var vr = ValueRepresentation.createByTypeString(dataItem.vr); + dataItem.Value = DicomMetaDictionary.denaturalizeValue(dataItem.Value); + if (entry.vr == "SQ") { + var unnaturalValues = []; + for (var datasetIndex = 0; datasetIndex < dataItem.Value.length; datasetIndex++) { + var nestedDataset = dataItem.Value[datasetIndex]; + unnaturalValues.push(DicomMetaDictionary.denaturalizeDataset(nestedDataset, nameMap)); + } + dataItem.Value = unnaturalValues; + } + if (!vr.isBinary() && vr.maxLength) { + dataItem.Value = dataItem.Value.map(function (value) { + if (value.length > vr.maxLength) { + log.warn("Truncating value ".concat(value, " of ").concat(naturalName, " because it is longer than ").concat(vr.maxLength)); + return value.slice(0, vr.maxLength); + } else { + return value; + } + }); + } + } + var tag = DicomMetaDictionary.unpunctuateTag(entry.tag); + unnaturalDataset[tag] = dataItem; + } else { + var validMetaNames = ["_vrMap", "_meta"]; + if (validMetaNames.indexOf(name) == -1) { + log.warn("Unknown name in dataset", name, ":", dataset[name]); + } + } + }); + return unnaturalDataset; + } + }, { + key: "uid", + value: function uid() { + var uid = "2.25." + Math.floor(1 + Math.random() * 9); + for (var index = 0; index < 38; index++) { + uid = uid + Math.floor(Math.random() * 10); + } + return uid; + } + + // date and time in UTC + }, { + key: "date", + value: function date() { + var now = new Date(); + return now.toISOString().replace(/-/g, "").slice(0, 8); + } + }, { + key: "time", + value: function time() { + var now = new Date(); + return now.toISOString().replace(/:/g, "").slice(11, 17); + } + }, { + key: "dateTime", + value: function dateTime() { + // "2017-07-07T16:09:18.079Z" -> "20170707160918.079" + var now = new Date(); + return now.toISOString().replace(/[:\-TZ]/g, ""); + } + }, { + key: "_generateNameMap", + value: function _generateNameMap() { + DicomMetaDictionary.nameMap = {}; + Object.keys(DicomMetaDictionary.dictionary).forEach(function (tag) { + var dict = DicomMetaDictionary.dictionary[tag]; + if (dict.version != "PrivateTag") { + DicomMetaDictionary.nameMap[dict.name] = dict; + } + }); + } + }, { + key: "_generateCustomNameMap", + value: function _generateCustomNameMap(dictionary) { + var nameMap = {}; + Object.keys(dictionary).forEach(function (tag) { + var dict = dictionary[tag]; + if (dict.version != "PrivateTag") { + nameMap[dict.name] = dict; + } + }); + return nameMap; + } + }, { + key: "_generateUIDMap", + value: function _generateUIDMap() { + DicomMetaDictionary.sopClassUIDsByName = {}; + Object.keys(DicomMetaDictionary.sopClassNamesByUID).forEach(function (uid) { + var name = DicomMetaDictionary.sopClassNamesByUID[uid]; + DicomMetaDictionary.sopClassUIDsByName[name] = uid; + }); + } + }]); + return DicomMetaDictionary; + }(); // Subset of those listed at: + // http://dicom.nema.org/medical/dicom/current/output/html/part04.html#sect_B.5 + DicomMetaDictionary.sopClassNamesByUID = { + "1.2.840.10008.5.1.4.1.1.2": "CTImage", + "1.2.840.10008.5.1.4.1.1.2.1": "EnhancedCTImage", + "1.2.840.10008.5.1.4.1.1.2.2": "LegacyConvertedEnhancedCTImage", + "1.2.840.10008.5.1.4.1.1.3.1": "USMultiframeImage", + "1.2.840.10008.5.1.4.1.1.4": "MRImage", + "1.2.840.10008.5.1.4.1.1.4.1": "EnhancedMRImage", + "1.2.840.10008.5.1.4.1.1.4.2": "MRSpectroscopy", + "1.2.840.10008.5.1.4.1.1.4.3": "EnhancedMRColorImage", + "1.2.840.10008.5.1.4.1.1.4.4": "LegacyConvertedEnhancedMRImage", + "1.2.840.10008.5.1.4.1.1.6.1": "USImage", + "1.2.840.10008.5.1.4.1.1.6.2": "EnhancedUSVolume", + "1.2.840.10008.5.1.4.1.1.7": "SecondaryCaptureImage", + "1.2.840.10008.5.1.4.1.1.30": "ParametricMapStorage", + "1.2.840.10008.5.1.4.1.1.66": "RawData", + "1.2.840.10008.5.1.4.1.1.66.1": "SpatialRegistration", + "1.2.840.10008.5.1.4.1.1.66.2": "SpatialFiducials", + "1.2.840.10008.5.1.4.1.1.66.3": "DeformableSpatialRegistration", + "1.2.840.10008.5.1.4.1.1.66.4": "Segmentation", + "1.2.840.10008.5.1.4.1.1.67": "RealWorldValueMapping", + "1.2.840.10008.5.1.4.1.1.88.11": "BasicTextSR", + "1.2.840.10008.5.1.4.1.1.88.22": "EnhancedSR", + "1.2.840.10008.5.1.4.1.1.88.33": "ComprehensiveSR", + "1.2.840.10008.5.1.4.1.1.128": "PETImage", + "1.2.840.10008.5.1.4.1.1.130": "EnhancedPETImage", + "1.2.840.10008.5.1.4.1.1.128.1": "LegacyConvertedEnhancedPETImage" + }; + DicomMetaDictionary.dictionary = dictionary; + DicomMetaDictionary._generateNameMap(); + DicomMetaDictionary._generateUIDMap(); + + var singleVRs = ["SQ", "OF", "OW", "OB", "UN", "LT"]; + var encodingMapping = { + "": "iso-8859-1", + "iso-ir-6": "iso-8859-1", + "iso-ir-13": "shift-jis", + "iso-ir-100": "latin1", + "iso-ir-101": "iso-8859-2", + "iso-ir-109": "iso-8859-3", + "iso-ir-110": "iso-8859-4", + "iso-ir-126": "iso-ir-126", + "iso-ir-127": "iso-ir-127", + "iso-ir-138": "iso-ir-138", + "iso-ir-144": "iso-ir-144", + "iso-ir-148": "iso-ir-148", + "iso-ir-166": "tis-620", + "iso-2022-ir-6": "iso-8859-1", + "iso-2022-ir-13": "shift-jis", + "iso-2022-ir-87": "iso-2022-jp", + "iso-2022-ir-100": "latin1", + "iso-2022-ir-101": "iso-8859-2", + "iso-2022-ir-109": "iso-8859-3", + "iso-2022-ir-110": "iso-8859-4", + "iso-2022-ir-126": "iso-ir-126", + "iso-2022-ir-127": "iso-ir-127", + "iso-2022-ir-138": "iso-ir-138", + "iso-2022-ir-144": "iso-ir-144", + "iso-2022-ir-148": "iso-ir-148", + "iso-2022-ir-149": "euc-kr", + "iso-2022-ir-159": "iso-2022-jp", + "iso-2022-ir-166": "tis-620", + "iso-2022-ir-58": "iso-ir-58", + "iso-ir-192": "utf-8", + gb18030: "gb18030", + "iso-2022-gbk": "gbk", + "iso-2022-58": "gb2312", + gbk: "gbk" + }; + var encapsulatedSyntaxes = ["1.2.840.10008.1.2.4.50", "1.2.840.10008.1.2.4.51", "1.2.840.10008.1.2.4.57", "1.2.840.10008.1.2.4.70", "1.2.840.10008.1.2.4.80", "1.2.840.10008.1.2.4.81", "1.2.840.10008.1.2.4.90", "1.2.840.10008.1.2.4.91", "1.2.840.10008.1.2.4.92", "1.2.840.10008.1.2.4.93", "1.2.840.10008.1.2.4.94", "1.2.840.10008.1.2.4.95", "1.2.840.10008.1.2.5", "1.2.840.10008.1.2.6.1", "1.2.840.10008.1.2.4.100", "1.2.840.10008.1.2.4.102", "1.2.840.10008.1.2.4.103", "1.2.840.10008.1.2.4.201", "1.2.840.10008.1.2.4.202", "1.2.840.10008.1.2.4.203"]; + var DicomMessage = /*#__PURE__*/function () { + function DicomMessage() { + _classCallCheck(this, DicomMessage); + } + _createClass(DicomMessage, null, [{ + key: "read", + value: function read(bufferStream, syntax, ignoreErrors) { + var untilTag = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null; + var includeUntilTagValue = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false; + log.warn("DicomMessage.read to be deprecated after dcmjs 0.24.x"); + return this._read(bufferStream, syntax, { + ignoreErrors: ignoreErrors, + untilTag: untilTag, + includeUntilTagValue: includeUntilTagValue + }); + } + }, { + key: "readTag", + value: function readTag(bufferStream, syntax) { + var untilTag = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null; + var includeUntilTagValue = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; + log.warn("DicomMessage.readTag to be deprecated after dcmjs 0.24.x"); + return this._readTag(bufferStream, syntax, { + untilTag: untilTag, + includeUntilTagValue: includeUntilTagValue + }); + } + }, { + key: "_read", + value: function _read(bufferStream, syntax) { + var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : { + ignoreErrors: false, + untilTag: null, + includeUntilTagValue: false + }; + var ignoreErrors = options.ignoreErrors, + untilTag = options.untilTag; + var dict = {}; + try { + while (!bufferStream.end()) { + var readInfo = DicomMessage._readTag(bufferStream, syntax, options); + var cleanTagString = readInfo.tag.toCleanString(); + if (cleanTagString === "00080005") { + if (readInfo.values.length > 0) { + var coding = readInfo.values[0]; + coding = coding.replace(/[_ ]/g, "-").toLowerCase(); + if (coding in encodingMapping) { + coding = encodingMapping[coding]; + bufferStream.setDecoder(new TextDecoder(coding)); + } else if (ignoreErrors) { + log.warn("Unsupported character set: ".concat(coding, ", using default character set")); + } else { + throw Error("Unsupported character set: ".concat(coding)); + } + } + if (readInfo.values.length > 1) { + if (ignoreErrors) { + log.warn("Using multiple character sets is not supported, proceeding with just the first character set", readInfo.values); + } else { + throw Error("Using multiple character sets is not supported: ".concat(readInfo.values)); + } + } + readInfo.values = ["ISO_IR 192"]; // change SpecificCharacterSet to UTF-8 + } + + dict[cleanTagString] = ValueRepresentation.addTagAccessors({ + vr: readInfo.vr.type + }); + dict[cleanTagString].Value = readInfo.values; + if (untilTag && untilTag === cleanTagString) { + break; + } + } + return dict; + } catch (err) { + if (ignoreErrors) { + log.warn("WARN:", err); + return dict; + } + throw err; + } + } + }, { + key: "_normalizeSyntax", + value: function _normalizeSyntax(syntax) { + if (syntax == IMPLICIT_LITTLE_ENDIAN || syntax == EXPLICIT_LITTLE_ENDIAN$1 || syntax == EXPLICIT_BIG_ENDIAN) { + return syntax; + } else { + return EXPLICIT_LITTLE_ENDIAN$1; + } + } + }, { + key: "isEncapsulated", + value: function isEncapsulated(syntax) { + return encapsulatedSyntaxes.indexOf(syntax) != -1; + } + }, { + key: "readFile", + value: function readFile(buffer) { + var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : { + ignoreErrors: false, + untilTag: null, + includeUntilTagValue: false, + noCopy: false + }; + var stream = new ReadBufferStream(buffer, null, { + noCopy: options.noCopy + }), + useSyntax = EXPLICIT_LITTLE_ENDIAN$1; + stream.reset(); + stream.increment(128); + if (stream.readAsciiString(4) !== "DICM") { + throw new Error("Invalid DICOM file, expected header is missing"); + } + var el = DicomMessage._readTag(stream, useSyntax); + if (el.tag.toCleanString() !== "00020000") { + throw new Error("Invalid DICOM file, meta length tag is malformed or not present."); + } + var metaLength = el.values[0]; + + //read header buffer + var metaStream = stream.more(metaLength); + var metaHeader = DicomMessage._read(metaStream, useSyntax, options); + + //get the syntax + var mainSyntax = metaHeader["00020010"].Value[0]; + + //in case of deflated dataset, decompress and continue + if (mainSyntax === DEFLATED_EXPLICIT_LITTLE_ENDIAN) { + stream = new DeflatedReadBufferStream(stream, { + noCopy: options.noCopy + }); + } + mainSyntax = DicomMessage._normalizeSyntax(mainSyntax); + var objects = DicomMessage._read(stream, mainSyntax, options); + var dicomDict = new DicomDict(metaHeader); + dicomDict.dict = objects; + return dicomDict; + } + }, { + key: "writeTagObject", + value: function writeTagObject(stream, tagString, vr, values, syntax, writeOptions) { + var tag = Tag.fromString(tagString); + tag.write(stream, vr, values, syntax, writeOptions); + } + }, { + key: "write", + value: function write(jsonObjects, useStream, syntax, writeOptions) { + var written = 0; + var sortedTags = Object.keys(jsonObjects).sort(); + sortedTags.forEach(function (tagString) { + var tag = Tag.fromString(tagString), + tagObject = jsonObjects[tagString], + vrType = tagObject.vr, + values = tagObject.Value; + written += tag.write(useStream, vrType, values, syntax, writeOptions); + }); + return written; + } + }, { + key: "_readTag", + value: function _readTag(stream, syntax) { + var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : { + untilTag: null, + includeUntilTagValue: false + }; + var untilTag = options.untilTag, + includeUntilTagValue = options.includeUntilTagValue; + var implicit = syntax == IMPLICIT_LITTLE_ENDIAN ? true : false, + isLittleEndian = syntax == IMPLICIT_LITTLE_ENDIAN || syntax == EXPLICIT_LITTLE_ENDIAN$1 ? true : false; + var oldEndian = stream.isLittleEndian; + stream.setEndian(isLittleEndian); + var tag = Tag.readTag(stream); + if (untilTag === tag.toCleanString() && untilTag !== null) { + if (!includeUntilTagValue) { + return { + tag: tag, + vr: 0, + values: 0 + }; + } + } + var length = null, + vr = null, + vrType; + if (implicit) { + length = stream.readUint32(); + var elementData = DicomMessage.lookupTag(tag); + if (elementData) { + vrType = elementData.vr; + } else { + //unknown tag + if (length == 0xffffffff) { + vrType = "SQ"; + } else if (tag.isPixelDataTag()) { + vrType = "OW"; + } else if (vrType == "xs") { + vrType = "US"; + } else if (tag.isPrivateCreator()) { + vrType = "LO"; + } else { + vrType = "UN"; + } + } + vr = ValueRepresentation.createByTypeString(vrType); + } else { + vrType = stream.readVR(); + if (vrType === "UN" && DicomMessage.lookupTag(tag) && DicomMessage.lookupTag(tag).vr) { + vrType = DicomMessage.lookupTag(tag).vr; + vr = ValueRepresentation.parseUnknownVr(vrType); + } else { + vr = ValueRepresentation.createByTypeString(vrType); + } + if (vr.isExplicit()) { + stream.increment(2); + length = stream.readUint32(); + } else { + length = stream.readUint16(); + } + } + var values = []; + if (vr.isBinary() && length > vr.maxLength && !vr.noMultiple) { + var times = length / vr.maxLength, + i = 0; + while (i++ < times) { + values.push(vr.read(stream, vr.maxLength, syntax)); + } + } else { + var val = vr.read(stream, length, syntax); + if (!vr.isBinary() && singleVRs.indexOf(vr.type) == -1) { + values = val; + if (typeof val === "string") { + values = val.split(String.fromCharCode(VM_DELIMITER)); + } + } else if (vr.type == "SQ") { + values = val; + } else if (vr.type == "OW" || vr.type == "OB") { + values = val; + } else { + Array.isArray(val) ? values = val : values.push(val); + } + } + stream.setEndian(oldEndian); + var retObj = ValueRepresentation.addTagAccessors({ + tag: tag, + vr: vr + }); + retObj.values = values; + return retObj; + } + }, { + key: "lookupTag", + value: function lookupTag(tag) { + return DicomMetaDictionary.dictionary[tag.toString()]; + } + }]); + return DicomMessage; + }(); + + var EXPLICIT_LITTLE_ENDIAN = "1.2.840.10008.1.2.1"; + var DicomDict = /*#__PURE__*/function () { + function DicomDict(meta) { + _classCallCheck(this, DicomDict); + this.meta = meta; + this.dict = {}; + } + _createClass(DicomDict, [{ + key: "upsertTag", + value: function upsertTag(tag, vr, values) { + if (this.dict[tag]) { + // Should already have tag accessors. + this.dict[tag].Value = values; + } else { + this.dict[tag] = ValueRepresentation.addTagAccessors({ + vr: vr + }); + this.dict[tag].Value = values; + } + } + }, { + key: "write", + value: function write() { + var writeOptions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : { + allowInvalidVRLength: false + }; + var metaSyntax = EXPLICIT_LITTLE_ENDIAN; + var fileStream = new WriteBufferStream(4096, true); + fileStream.writeUint8Repeat(0, 128); + fileStream.writeAsciiString("DICM"); + var metaStream = new WriteBufferStream(1024); + if (!this.meta["00020010"]) { + this.meta["00020010"] = { + vr: "UI", + Value: [EXPLICIT_LITTLE_ENDIAN] + }; + } + DicomMessage.write(this.meta, metaStream, metaSyntax, writeOptions); + DicomMessage.writeTagObject(fileStream, "00020000", "UL", metaStream.size, metaSyntax, writeOptions); + fileStream.concat(metaStream); + var useSyntax = this.meta["00020010"].Value[0]; + DicomMessage.write(this.dict, fileStream, useSyntax, writeOptions); + return fileStream.getBuffer(); + } + }]); + return DicomDict; + }(); + + var DICOMWEB = /*#__PURE__*/function () { + /* + JavaScript DICOMweb REST API for browser use. + Design: + * map rest api to high-level code with modern conventions + ** ES6: classes, arrow functions, let... + ** promises + ** json converted to objects + examples: see tests() method below. + */ + + function DICOMWEB() { + var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + _classCallCheck(this, DICOMWEB); + this.rootURL = options.rootURL; + this.progressCallback = options.progressCallback; + } + _createClass(DICOMWEB, [{ + key: "request", + value: function request(endpoint) { + var parameters = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + var payload = arguments.length > 2 ? arguments[2] : undefined; + var responseType = DICOMWEB.responseType(endpoint); + var service = DICOMWEB.endpointService(endpoint); + var url = this.rootURL + "/" + service + endpoint; + var firstParameter = true; + Object.keys(parameters).forEach(function (parameter) { + if (firstParameter) { + url += "?"; + firstParameter = false; + } else { + url += "&"; + } + url += parameter + "=" + encodeURIComponent(parameters[parameter]); + }); + function promiseHandler(resolve, reject) { + var request = new XMLHttpRequest(); + request.open("GET", url); + request.responseType = responseType; + request.onload = function () { + resolve(request.response); + }; + request.onprogress = this.progressCallback; + request.onerror = function (error) { + log.error(request.response); + reject(error); + }; + request.send(payload); + } + var promise = new Promise(promiseHandler.bind(this)); + return promise; + } + }, { + key: "patients", + value: function patients() { + return this.request("patients"); + } + }, { + key: "studies", + value: function studies(patientID) { + return this.request("studies", { + PatientID: patientID + }); + } + }, { + key: "series", + value: function series(studyInstanceUID) { + return this.request("series", { + StudyInstanceUID: studyInstanceUID + }); + } + }, { + key: "instances", + value: function instances(studyInstanceUID, seriesInstanceUID) { + return this.request("instances", { + StudyInstanceUID: studyInstanceUID, + SeriesInstanceUID: seriesInstanceUID + }); + } + }, { + key: "instance", + value: function instance(studyInstanceUID, seriesInstanceUID, sopInstanceUID) { + return this.request("wado", { + requestType: "WADO", + studyUID: studyInstanceUID, + seriesUID: seriesInstanceUID, + objectUID: sopInstanceUID, + contentType: "application/dicom" + }); + } + }, { + key: "tests", + value: function tests() { + var testingServerURL = "http://quantome.org:4242/dcm4chee-arc/aets/DCM4CHEE"; + var testOptions = { + rootURL: testingServerURL + }; + new DICOMWEB(testOptions).patients().then(function (responses) { + responses.forEach(function (patient) { + log.log(patient); + }); + }); + } + }], [{ + key: "responseType", + value: function responseType(endpoint) { + var types = { + wado: "arraybuffer" + }; + return types[endpoint] ? types[endpoint] : "json"; + } + + // which URL service to use for each of the high level services + }, { + key: "endpointService", + value: function endpointService(endpoint) { + var services = { + wado: "" + }; + return Object.keys(services).indexOf(endpoint) != -1 ? services[endpoint] : "rs/"; + } + }, { + key: "randomEntry", + value: function randomEntry(array) { + return array[Math.floor(Math.random() * array.length)]; + } + }]); + return DICOMWEB; + }(); + + // + // Handle DICOM and CIELAB colors + // based on: + // https://github.com/michaelonken/dcmtk/blob/3c68f0e882e22e6d9e2a42f836332c0ca21b3e7f/dcmiod/libsrc/cielabutil.cc + // + // RGB here refers to sRGB 0-1 per component. + // dicomlab is CIELAB values as defined in the dicom standard + // XYZ is CIEXYZ convention + // + // TODO: needs a test suite + // TODO: only dicomlab2RGB tested on real data + // + // + var Colors = /*#__PURE__*/function () { + function Colors() { + _classCallCheck(this, Colors); + } + _createClass(Colors, null, [{ + key: "d65WhitePointXYZ", + value: function d65WhitePointXYZ() { + // white points of D65 light point (CIELAB standard white point) + return [0.950456, 1.0, 1.088754]; + } + }, { + key: "dicomlab2RGB", + value: function dicomlab2RGB(dicomlab) { + return Colors.lab2RGB(Colors.dicomlab2LAB(dicomlab)); + } + }, { + key: "rgb2DICOMLAB", + value: function rgb2DICOMLAB(rgb) { + return Colors.lab2DICOMLAB(Colors.rgb2LAB(rgb)); + } + }, { + key: "dicomlab2LAB", + value: function dicomlab2LAB(dicomlab) { + return [dicomlab[0] * 100.0 / 65535.0, + // results in 0 <= L <= 100 + dicomlab[1] * 255.0 / 65535.0 - 128, + // results in -128 <= a <= 127 + dicomlab[2] * 255.0 / 65535.0 - 128 // results in -128 <= b <= 127 + ]; + } + }, { + key: "lab2DICOMLAB", + value: function lab2DICOMLAB(lab) { + return [lab[0] * 65535.0 / 100.0, + // results in 0 <= L <= 65535 + (lab[1] + 128) * 65535.0 / 255.0, + // results in 0 <= a <= 65535 + (lab[2] + 128) * 65535.0 / 255.0 // results in 0 <= b <= 65535 + ]; + } + }, { + key: "rgb2LAB", + value: function rgb2LAB(rgb) { + return Colors.xyz2LAB(Colors.rgb2XYZ(rgb)); + } + }, { + key: "gammaCorrection", + value: function gammaCorrection(n) { + if (n <= 0.0031306684425005883) { + return 12.92 * n; + } else { + return 1.055 * Math.pow(n, 0.416666666666666667) - 0.055; + } + } + }, { + key: "invGammaCorrection", + value: function invGammaCorrection(n) { + if (n <= 0.0404482362771076) { + return n / 12.92; + } else { + return Math.pow((n + 0.055) / 1.055, 2.4); + } + } + }, { + key: "rgb2XYZ", + value: function rgb2XYZ(rgb) { + var R = Colors.invGammaCorrection(rgb[0]); + var G = Colors.invGammaCorrection(rgb[1]); + var B = Colors.invGammaCorrection(rgb[2]); + return [0.4123955889674142161 * R + 0.3575834307637148171 * G + 0.1804926473817015735 * B, 0.2125862307855955516 * R + 0.7151703037034108499 * G + 0.07220049864333622685 * B, 0.01929721549174694484 * R + 0.1191838645808485318 * G + 0.950497125131579766 * B]; + } + }, { + key: "xyz2LAB", + value: function xyz2LAB(xyz) { + var whitePoint = Colors.d65WhitePointXYZ(); + var X = xyz[0] / whitePoint[0]; + var Y = xyz[1] / whitePoint[1]; + var Z = xyz[2] / whitePoint[2]; + X = Colors.labf(X); + Y = Colors.labf(Y); + Z = Colors.labf(Z); + return [116 * Y - 16, 500 * (X - Y), 200 * (Y - Z)]; + } + }, { + key: "lab2RGB", + value: function lab2RGB(lab) { + return Colors.xyz2RGB(Colors.lab2XYZ(lab)); + } + }, { + key: "lab2XYZ", + value: function lab2XYZ(lab) { + var L = (lab[0] + 16) / 116; + var a = L + lab[1] / 500; + var b = L - lab[2] / 200; + var whitePoint = Colors.d65WhitePointXYZ(); + return [whitePoint[0] * Colors.labfInv(a), whitePoint[1] * Colors.labfInv(L), whitePoint[2] * Colors.labfInv(b)]; + } + }, { + key: "xyz2RGB", + value: function xyz2RGB(xyz) { + var R1 = 3.2406 * xyz[0] - 1.5372 * xyz[1] - 0.4986 * xyz[2]; + var G1 = -0.9689 * xyz[0] + 1.8758 * xyz[1] + 0.0415 * xyz[2]; + var B1 = 0.0557 * xyz[0] - 0.204 * xyz[1] + 1.057 * xyz[2]; + + /* Force nonnegative values so that gamma correction is well-defined. */ + var minimumComponent = Math.min(R1, G1); + minimumComponent = Math.min(minimumComponent, B1); + if (minimumComponent < 0) { + R1 -= minimumComponent; + G1 -= minimumComponent; + B1 -= minimumComponent; + } + + /* Transform from RGB to R'G'B' */ + return [Colors.gammaCorrection(R1), Colors.gammaCorrection(G1), Colors.gammaCorrection(B1)]; + } + }, { + key: "labf", + value: function labf(n) { + if (n >= 8.85645167903563082e-3) { + return Math.pow(n, 0.333333333333333); + } else { + return 841.0 / 108.0 * n + 4.0 / 29.0; + } + } + }, { + key: "labfInv", + value: function labfInv(n) { + if (n >= 0.206896551724137931) { + return n * n * n; + } else { + return 108.0 / 841.0 * (n - 4.0 / 29.0); + } + } + }]); + return Colors; + }(); + + function datasetToDict(dataset) { + var fileMetaInformationVersionArray = new Uint8Array(2); + fileMetaInformationVersionArray[1] = 1; + var TransferSyntaxUID = dataset._meta.TransferSyntaxUID && dataset._meta.TransferSyntaxUID.Value && dataset._meta.TransferSyntaxUID.Value[0] ? dataset._meta.TransferSyntaxUID.Value[0] : "1.2.840.10008.1.2.1"; + dataset._meta = { + MediaStorageSOPClassUID: dataset.SOPClassUID, + MediaStorageSOPInstanceUID: dataset.SOPInstanceUID, + ImplementationVersionName: "dcmjs-0.0", + TransferSyntaxUID: TransferSyntaxUID, + ImplementationClassUID: "2.25.80302813137786398554742050926734630921603366648225212145404", + FileMetaInformationVersion: fileMetaInformationVersionArray.buffer + }; + var denaturalized = DicomMetaDictionary.denaturalizeDataset(dataset._meta); + var dicomDict = new DicomDict(denaturalized); + dicomDict.dict = DicomMetaDictionary.denaturalizeDataset(dataset); + return dicomDict; + } + function datasetToBuffer(dataset) { + return Buffer.from(datasetToDict(dataset).write()); + } + function datasetToBlob(dataset) { + var buffer = datasetToBuffer(dataset); + return new Blob([buffer], { + type: "application/dicom" + }); + } + + var DerivedDataset = /*#__PURE__*/function () { + function DerivedDataset(datasets) { + var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + _classCallCheck(this, DerivedDataset); + this.options = JSON.parse(JSON.stringify(options)); + var o = this.options; + o.Manufacturer = options.Manufacturer || "Unspecified"; + o.ManufacturerModelName = options.ManufacturerModelName || "Unspecified"; + o.SeriesDescription = options.SeriesDescription || "Research Derived series"; + o.SeriesNumber = options.SeriesNumber || "99"; + o.SoftwareVersions = options.SoftwareVersions || "0"; + o.DeviceSerialNumber = options.DeviceSerialNumber || "1"; + var date = DicomMetaDictionary.date(); + var time = DicomMetaDictionary.time(); + o.SeriesDate = options.SeriesDate || date; + o.SeriesTime = options.SeriesTime || time; + o.ContentDate = options.ContentDate || date; + o.ContentTime = options.ContentTime || time; + o.SOPInstanceUID = options.SOPInstanceUID || DicomMetaDictionary.uid(); + o.SeriesInstanceUID = options.SeriesInstanceUID || DicomMetaDictionary.uid(); + o.ClinicalTrialTimePointID = options.ClinicalTrialTimePointID || ""; + o.ClinicalTrialCoordinatingCenterName = options.ClinicalTrialCoordinatingCenterName || ""; + o.ClinicalTrialSeriesID = options.ClinicalTrialSeriesID || ""; + o.ImageComments = options.ImageComments || "NOT FOR CLINICAL USE"; + o.ContentQualification = "RESEARCH"; + this.referencedDatasets = datasets; // list of one or more dicom-like object instances + this.referencedDataset = this.referencedDatasets[0]; + this.dataset = { + _vrMap: this.referencedDataset._vrMap, + _meta: this.referencedDataset._meta + }; + this.derive(); + } + _createClass(DerivedDataset, [{ + key: "assignToDataset", + value: function assignToDataset(data) { + var _this = this; + Object.keys(data).forEach(function (key) { + return _this.dataset[key] = data[key]; + }); + } + }, { + key: "assignFromReference", + value: function assignFromReference(tags) { + var _this2 = this; + tags.forEach(function (tag) { + return _this2.dataset[tag] = _this2.referencedDataset[tag] || ""; + }); + } + }, { + key: "assignFromOptions", + value: function assignFromOptions(tags) { + var _this3 = this; + tags.forEach(function (tag) { + return _this3.dataset[tag] = _this3.options[tag] || ""; + }); + } + }, { + key: "derive", + value: function derive() { + // common for all instances in study + this.assignFromReference(["AccessionNumber", "ReferringPhysicianName", "StudyDate", "StudyID", "StudyTime", "PatientName", "PatientID", "PatientBirthDate", "PatientSex", "PatientAge", "StudyInstanceUID", "StudyID"]); + this.assignFromOptions(["Manufacturer", "SoftwareVersions", "DeviceSerialNumber", "ManufacturerModelName", "SeriesDescription", "SeriesNumber", "ImageComments", "SeriesDate", "SeriesTime", "ContentDate", "ContentTime", "ContentQualification", "SOPInstanceUID", "SeriesInstanceUID"]); + } + }], [{ + key: "copyDataset", + value: function copyDataset(dataset) { + // copies everything but the buffers + return JSON.parse(JSON.stringify(dataset)); + } + }]); + return DerivedDataset; + }(); + + var DerivedPixels = /*#__PURE__*/function (_DerivedDataset) { + _inherits(DerivedPixels, _DerivedDataset); + var _super = _createSuper(DerivedPixels); + function DerivedPixels(datasets) { + var _this; + var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + _classCallCheck(this, DerivedPixels); + _this = _super.call(this, datasets, options); + var o = _this.options; + o.ContentLabel = options.ContentLabel || ""; + o.ContentDescription = options.ContentDescription || ""; + o.ContentCreatorName = options.ContentCreatorName || ""; + return _this; + } + + // this assumes a normalized multiframe input and will create + // a multiframe derived image + _createClass(DerivedPixels, [{ + key: "derive", + value: function derive() { + _get(_getPrototypeOf(DerivedPixels.prototype), "derive", this).call(this); + this.assignToDataset({ + ImageType: ["DERIVED", "PRIMARY"], + LossyImageCompression: "00", + InstanceNumber: "1" + }); + this.assignFromReference(["SOPClassUID", "Modality", "FrameOfReferenceUID", "PositionReferenceIndicator", "NumberOfFrames", "Rows", "Columns", "SamplesPerPixel", "PhotometricInterpretation", "BitsStored", "HighBit"]); + this.assignFromOptions(["ContentLabel", "ContentDescription", "ContentCreatorName"]); + + // + // TODO: more carefully copy only PixelMeasures and related + // TODO: add derivation references + // + if (this.referencedDataset.SharedFunctionalGroupsSequence) { + this.dataset.SharedFunctionalGroupsSequence = DerivedDataset.copyDataset(this.referencedDataset.SharedFunctionalGroupsSequence); + } + if (this.referencedDataset.PerFrameFunctionalGroupsSequence) { + this.dataset.PerFrameFunctionalGroupsSequence = DerivedDataset.copyDataset(this.referencedDataset.PerFrameFunctionalGroupsSequence); + } + + // make an array of zeros for the pixels + this.dataset.PixelData = new ArrayBuffer(this.referencedDataset.PixelData.byteLength); + } + }]); + return DerivedPixels; + }(DerivedDataset); + + var DerivedImage = /*#__PURE__*/function (_DerivedPixels) { + _inherits(DerivedImage, _DerivedPixels); + var _super = _createSuper(DerivedImage); + function DerivedImage(datasets) { + var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + _classCallCheck(this, DerivedImage); + return _super.call(this, datasets, options); + } + _createClass(DerivedImage, [{ + key: "derive", + value: function derive() { + _get(_getPrototypeOf(DerivedImage.prototype), "derive", this).call(this); + this.assignFromReference(["WindowCenter", "WindowWidth", "BitsAllocated", "PixelRepresentation", "BodyPartExamined", "Laterality", "PatientPosition", "RescaleSlope", "RescaleIntercept", "PixelPresentation", "VolumetricProperties", "VolumeBasedCalculationTechnique", "PresentationLUTShape"]); + } + }]); + return DerivedImage; + }(DerivedPixels); + + var Normalizer = /*#__PURE__*/function () { + function Normalizer(datasets) { + _classCallCheck(this, Normalizer); + this.datasets = datasets; // one or more dicom-like object instances + this.dataset = undefined; // a normalized multiframe dicom object instance + } + _createClass(Normalizer, [{ + key: "normalize", + value: function normalize() { + return "No normalization defined"; + } + }], [{ + key: "consistentSOPClassUIDs", + value: function consistentSOPClassUIDs(datasets) { + // return sopClassUID if all exist and match, otherwise undefined + var sopClassUID; + datasets.forEach(function (dataset) { + if (!dataset.SOPClassUID) { + return undefined; + } + if (!sopClassUID) { + sopClassUID = dataset.SOPClassUID; + } + if (dataset.SOPClassUID !== sopClassUID) { + log.error("inconsistent sopClassUIDs: ", dataset.SOPClassUID, sopClassUID); + return undefined; + } + }); + return sopClassUID; + } + }, { + key: "normalizerForSOPClassUID", + value: function normalizerForSOPClassUID(sopClassUID) { + sopClassUID = sopClassUID.replace(/[^0-9.]/g, ""); // TODO: clean all VRs as part of normalizing + var toUID = DicomMetaDictionary.sopClassUIDsByName; + var sopClassUIDMap = {}; + sopClassUIDMap[toUID.CTImage] = CTImageNormalizer; + sopClassUIDMap[toUID.ParametricMapStorage] = PMImageNormalizer; + sopClassUIDMap[toUID.MRImage] = MRImageNormalizer; + sopClassUIDMap[toUID.EnhancedCTImage] = EnhancedCTImageNormalizer; + sopClassUIDMap[toUID.LegacyConvertedEnhancedCTImage] = EnhancedCTImageNormalizer; + sopClassUIDMap[toUID.EnhancedMRImage] = EnhancedMRImageNormalizer; + sopClassUIDMap[toUID.LegacyConvertedEnhancedMRImage] = EnhancedMRImageNormalizer; + sopClassUIDMap[toUID.EnhancedUSVolume] = EnhancedUSVolumeNormalizer; + sopClassUIDMap[toUID.PETImage] = PETImageNormalizer; + sopClassUIDMap[toUID.EnhancedPETImage] = PETImageNormalizer; + sopClassUIDMap[toUID.LegacyConvertedEnhancedPETImage] = PETImageNormalizer; + sopClassUIDMap[toUID.Segmentation] = SEGImageNormalizer; + sopClassUIDMap[toUID.DeformableSpatialRegistration] = DSRNormalizer; + return sopClassUIDMap[sopClassUID]; + } + }, { + key: "isMultiframeSOPClassUID", + value: function isMultiframeSOPClassUID(sopClassUID) { + var toUID = DicomMetaDictionary.sopClassUIDsByName; + var multiframeSOPClasses = [toUID.EnhancedMRImage, toUID.LegacyConvertedEnhancedMRImage, toUID.EnhancedCTImage, toUID.LegacyConvertedEnhancedCTImage, toUID.EnhancedUSVolume, toUID.EnhancedPETImage, toUID.LegacyConvertedEnhancedPETImage, toUID.Segmentation, toUID.ParametricMapStorage]; + return multiframeSOPClasses.indexOf(sopClassUID) !== -1; + } + }, { + key: "isMultiframeDataset", + value: function isMultiframeDataset() { + var ds = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.dataset; + var sopClassUID = ds.SOPClassUID.replace(/[^0-9.]/g, ""); // TODO: clean all VRs as part of normalizing + return Normalizer.isMultiframeSOPClassUID(sopClassUID); + } + }, { + key: "normalizeToDataset", + value: function normalizeToDataset(datasets) { + var sopClassUID = Normalizer.consistentSOPClassUIDs(datasets); + var normalizerClass = Normalizer.normalizerForSOPClassUID(sopClassUID); + if (!normalizerClass) { + log.error("no normalizerClass for ", sopClassUID); + return undefined; + } + var normalizer = new normalizerClass(datasets); + normalizer.normalize(); + return normalizer.dataset; + } + }]); + return Normalizer; + }(); + var ImageNormalizer = /*#__PURE__*/function (_Normalizer) { + _inherits(ImageNormalizer, _Normalizer); + var _super = _createSuper(ImageNormalizer); + function ImageNormalizer() { + _classCallCheck(this, ImageNormalizer); + return _super.apply(this, arguments); + } + _createClass(ImageNormalizer, [{ + key: "normalize", + value: function normalize() { + this.convertToMultiframe(); + this.normalizeMultiframe(); + } + }, { + key: "convertToMultiframe", + value: function convertToMultiframe() { + if (this.datasets.length === 1 && Normalizer.isMultiframeDataset(this.datasets[0])) { + // already a multiframe, so just use it + this.dataset = this.datasets[0]; + return; + } + this.derivation = new DerivedImage(this.datasets); + this.dataset = this.derivation.dataset; + var ds = this.dataset; + // create a new multiframe from the source datasets + // fill in only those elements required to make a valid image + // for volumetric processing + var referenceDataset = this.datasets[0]; + ds.NumberOfFrames = this.datasets.length; + + // TODO: develop sets of elements to copy over in loops + ds.SOPClassUID = referenceDataset.SOPClassUID; + ds.Rows = referenceDataset.Rows; + ds.Columns = referenceDataset.Columns; + ds.BitsAllocated = referenceDataset.BitsAllocated; + ds.PixelRepresentation = referenceDataset.PixelRepresentation; + ds.RescaleSlope = referenceDataset.RescaleSlope || "1"; + ds.RescaleIntercept = referenceDataset.RescaleIntercept || "0"; + //ds.BurnedInAnnotation = referenceDataset.BurnedInAnnotation || "YES"; + + // sort + // https://github.com/pieper/Slicer3/blob/master/Base/GUI/Tcl/LoadVolume.tcl + // TODO: add spacing checks: + // https://github.com/Slicer/Slicer/blob/master/Modules/Scripted/DICOMPlugins/DICOMScalarVolumePlugin.py#L228-L250 + // TODO: put this information into the Shared and PerFrame functional groups + // TODO: sorting of frames could happen in normalizeMultiframe instead, since other + // multiframe converters may not sort the images + // TODO: sorting can be seen as part of generation of the Dimension Multiframe Dimension Module + // and should really be done in an acquisition-specific way (e.g. for DCE) + var referencePosition = referenceDataset.ImagePositionPatient; + var rowVector = referenceDataset.ImageOrientationPatient.slice(0, 3); + var columnVector = referenceDataset.ImageOrientationPatient.slice(3, 6); + var scanAxis = ImageNormalizer.vec3CrossProduct(rowVector, columnVector); + var distanceDatasetPairs = []; + this.datasets.forEach(function (dataset) { + var position = dataset.ImagePositionPatient.slice(); + var positionVector = ImageNormalizer.vec3Subtract(position, referencePosition); + var distance = ImageNormalizer.vec3Dot(positionVector, scanAxis); + distanceDatasetPairs.push([distance, dataset]); + }); + distanceDatasetPairs.sort(function (a, b) { + return b[0] - a[0]; + }); + + // assign array buffers + if (ds.BitsAllocated !== 16) { + log.error("Only works with 16 bit data, not " + String(this.dataset.BitsAllocated)); + } + if (referenceDataset._vrMap && !referenceDataset._vrMap.PixelData) { + log.warn("No vr map given for pixel data, using OW"); + ds._vrMap = { + PixelData: "OW" + }; + } else { + ds._vrMap = { + PixelData: referenceDataset._vrMap.PixelData + }; + } + var frameSize = referenceDataset.PixelData.byteLength; + ds.PixelData = new ArrayBuffer(ds.NumberOfFrames * frameSize); + var frame = 0; + distanceDatasetPairs.forEach(function (pair) { + var dataset = pair[1]; + var pixels = new Uint16Array(dataset.PixelData); + var frameView = new Uint16Array(ds.PixelData, frame * frameSize, frameSize / 2); + try { + frameView.set(pixels); + } catch (e) { + if (e instanceof RangeError) { + var message = "Error inserting pixels in PixelData\n" + "frameSize ".concat(frameSize, "\n") + "NumberOfFrames ".concat(ds.NumberOfFrames, "\n") + "pair ".concat(pair, "\n") + "dataset PixelData size ".concat(dataset.PixelData.length); + log.error(message); + } + } + frame++; + }); + if (ds.NumberOfFrames < 2) { + // TODO + log.error("Cannot populate shared groups uniquely without multiple frames"); + } + var _distanceDatasetPairs = _slicedToArray(distanceDatasetPairs[0], 2), + distance0 = _distanceDatasetPairs[0], + dataset0 = _distanceDatasetPairs[1]; + var distance1 = distanceDatasetPairs[1][0]; + + // + // make the functional groups + // + // shared + var SpacingBetweenSlices = Math.abs(distance1 - distance0); + ds.SharedFunctionalGroupsSequence = { + PlaneOrientationSequence: { + ImageOrientationPatient: dataset0.ImageOrientationPatient + }, + PixelMeasuresSequence: { + PixelSpacing: dataset0.PixelSpacing, + SpacingBetweenSlices: SpacingBetweenSlices, + SliceThickness: SpacingBetweenSlices + } + }; + ds.ReferencedSeriesSequence = { + SeriesInstanceUID: dataset0.SeriesInstanceUID, + ReferencedInstanceSequence: [] + }; + + // per-frame + ds.PerFrameFunctionalGroupsSequence = []; + + // copy over each datasets window/level into the per-frame groups + // and set the referenced series uid + distanceDatasetPairs.forEach(function (pair) { + var dataset = pair[1]; + ds.PerFrameFunctionalGroupsSequence.push({ + PlanePositionSequence: { + ImagePositionPatient: dataset.ImagePositionPatient + }, + FrameVOILUTSequence: { + WindowCenter: dataset.WindowCenter, + WindowWidth: dataset.WindowWidth + } + }); + ds.ReferencedSeriesSequence.ReferencedInstanceSequence.push({ + ReferencedSOPClassUID: dataset.SOPClassUID, + ReferencedSOPInstanceUID: dataset.SOPInstanceUID + }); + }); + var dimensionUID = DicomMetaDictionary.uid(); + this.dataset.DimensionOrganizationSequence = { + DimensionOrganizationUID: dimensionUID + }; + this.dataset.DimensionIndexSequence = [{ + DimensionOrganizationUID: dimensionUID, + DimensionIndexPointer: 2097202, + FunctionalGroupPointer: 2134291, + // PlanePositionSequence + DimensionDescriptionLabel: "ImagePositionPatient" + }]; + } + }, { + key: "normalizeMultiframe", + value: function normalizeMultiframe() { + var ds = this.dataset; + if (!ds.NumberOfFrames) { + log.error("Missing number or frames not supported"); + return; + } + if (!ds.PixelRepresentation) { + // Required tag: guess signed + ds.PixelRepresentation = 1; + } + if (!ds.StudyID || ds.StudyID === "") { + // Required tag: fill in if needed + ds.StudyID = "No Study ID"; + } + var validLateralities = ["R", "L"]; + if (validLateralities.indexOf(ds.Laterality) === -1) { + delete ds.Laterality; + } + if (!ds.PresentationLUTShape) { + ds.PresentationLUTShape = "IDENTITY"; + } + if (!ds.SharedFunctionalGroupsSequence) { + log.error("Can only process multiframe data with SharedFunctionalGroupsSequence"); + } + + // TODO: special case! + if (ds.BodyPartExamined === "PROSTATE") { + ds.SharedFunctionalGroupsSequence.FrameAnatomySequence = { + AnatomicRegionSequence: { + CodeValue: "T-9200B", + CodingSchemeDesignator: "SRT", + CodeMeaning: "Prostate" + }, + FrameLaterality: "U" + }; + } + var rescaleIntercept = ds.RescaleIntercept || 0; + var rescaleSlope = ds.RescaleSlope || 1; + ds.SharedFunctionalGroupsSequence.PixelValueTransformationSequence = { + RescaleIntercept: rescaleIntercept, + RescaleSlope: rescaleSlope, + RescaleType: "US" + }; + var frameNumber = 1; + this.datasets.forEach(function (dataset) { + if (ds.NumberOfFrames === 1) ds.PerFrameFunctionalGroupsSequence = [ds.PerFrameFunctionalGroupsSequence]; + ds.PerFrameFunctionalGroupsSequence[frameNumber - 1].FrameContentSequence = { + FrameAcquisitionDuration: 0, + StackID: 1, + InStackPositionNumber: frameNumber, + DimensionIndexValues: frameNumber + }; + var frameTime = dataset.AcquisitionDate + dataset.AcquisitionTime; + if (!isNaN(frameTime)) { + var frameContentSequence = ds.PerFrameFunctionalGroupsSequence[frameNumber - 1].FrameContentSequence; + frameContentSequence.FrameAcquisitionDateTime = frameTime; + frameContentSequence.FrameReferenceDateTime = frameTime; + } + frameNumber++; + }); + + // + // TODO: convert this to shared functional group not top level element + // + if (ds.WindowCenter && ds.WindowWidth) { + // if they exist as single values, make them lists for consistency + if (!Array.isArray(ds.WindowCenter)) { + ds.WindowCenter = [ds.WindowCenter]; + } + if (!Array.isArray(ds.WindowWidth)) { + ds.WindowWidth = [ds.WindowWidth]; + } + } + if (!ds.WindowCenter || !ds.WindowWidth) { + // if they don't exist, make them empty lists and try to initialize them + ds.WindowCenter = []; // both must exist and be the same length + ds.WindowWidth = []; + // provide a volume-level window/level guess (mean of per-frame) + if (ds.PerFrameFunctionalGroupsSequence) { + var wcww = { + center: 0, + width: 0, + count: 0 + }; + ds.PerFrameFunctionalGroupsSequence.forEach(function (functionalGroup) { + if (functionalGroup.FrameVOILUT) { + var wc = functionalGroup.FrameVOILUTSequence.WindowCenter; + var ww = functionalGroup.FrameVOILUTSequence.WindowWidth; + if (functionalGroup.FrameVOILUTSequence && wc && ww) { + if (Array.isArray(wc)) { + wc = wc[0]; + } + if (Array.isArray(ww)) { + ww = ww[0]; + } + wcww.center += Number(wc); + wcww.width += Number(ww); + wcww.count++; + } + } + }); + if (wcww.count > 0) { + ds.WindowCenter.push(String(wcww.center / wcww.count)); + ds.WindowWidth.push(String(wcww.width / wcww.count)); + } + } + } + // last gasp, pick an arbitrary default + if (ds.WindowCenter.length === 0) { + ds.WindowCenter = [300]; + } + if (ds.WindowWidth.length === 0) { + ds.WindowWidth = [500]; + } + } + }], [{ + key: "vec3CrossProduct", + value: function vec3CrossProduct(a, b) { + var ax = a[0], + ay = a[1], + az = a[2], + bx = b[0], + by = b[1], + bz = b[2]; + var out = []; + out[0] = ay * bz - az * by; + out[1] = az * bx - ax * bz; + out[2] = ax * by - ay * bx; + return out; + } + }, { + key: "vec3Subtract", + value: function vec3Subtract(a, b) { + var out = []; + out[0] = a[0] - b[0]; + out[1] = a[1] - b[1]; + out[2] = a[2] - b[2]; + return out; + } + }, { + key: "vec3Dot", + value: function vec3Dot(a, b) { + return a[0] * b[0] + a[1] * b[1] + a[2] * b[2]; + } + }]); + return ImageNormalizer; + }(Normalizer); + var MRImageNormalizer = /*#__PURE__*/function (_ImageNormalizer) { + _inherits(MRImageNormalizer, _ImageNormalizer); + var _super2 = _createSuper(MRImageNormalizer); + function MRImageNormalizer() { + _classCallCheck(this, MRImageNormalizer); + return _super2.apply(this, arguments); + } + _createClass(MRImageNormalizer, [{ + key: "normalize", + value: function normalize() { + _get(_getPrototypeOf(MRImageNormalizer.prototype), "normalize", this).call(this); + // TODO: make specialization for LegacyConverted vs normal EnhanceMRImage + //let toUID = DicomMetaDictionary.sopClassUIDsByName; + this.dataset.SOPClassUID = "LegacyConvertedEnhancedMRImage"; + //this.dataset.SOPClassUID = toUID.EnhancedMRImage; + } + }, { + key: "normalizeMultiframe", + value: function normalizeMultiframe() { + _get(_getPrototypeOf(MRImageNormalizer.prototype), "normalizeMultiframe", this).call(this); + var ds = this.dataset; + if (!ds.ImageType || !ds.ImageType.constructor || ds.ImageType.constructor.name != "Array" || ds.ImageType.length != 4) { + ds.ImageType = ["ORIGINAL", "PRIMARY", "OTHER", "NONE"]; + } + ds.SharedFunctionalGroupsSequence.MRImageFrameTypeSequence = { + FrameType: ds.ImageType, + PixelPresentation: "MONOCHROME", + VolumetricProperties: "VOLUME", + VolumeBasedCalculationTechnique: "NONE", + ComplexImageComponent: "MAGNITUDE", + AcquisitionContrast: "UNKNOWN" + }; + } + }]); + return MRImageNormalizer; + }(ImageNormalizer); + var EnhancedCTImageNormalizer = /*#__PURE__*/function (_ImageNormalizer2) { + _inherits(EnhancedCTImageNormalizer, _ImageNormalizer2); + var _super3 = _createSuper(EnhancedCTImageNormalizer); + function EnhancedCTImageNormalizer() { + _classCallCheck(this, EnhancedCTImageNormalizer); + return _super3.apply(this, arguments); + } + _createClass(EnhancedCTImageNormalizer, [{ + key: "normalize", + value: function normalize() { + _get(_getPrototypeOf(EnhancedCTImageNormalizer.prototype), "normalize", this).call(this); + } + }]); + return EnhancedCTImageNormalizer; + }(ImageNormalizer); + var EnhancedMRImageNormalizer = /*#__PURE__*/function (_ImageNormalizer3) { + _inherits(EnhancedMRImageNormalizer, _ImageNormalizer3); + var _super4 = _createSuper(EnhancedMRImageNormalizer); + function EnhancedMRImageNormalizer() { + _classCallCheck(this, EnhancedMRImageNormalizer); + return _super4.apply(this, arguments); + } + _createClass(EnhancedMRImageNormalizer, [{ + key: "normalize", + value: function normalize() { + _get(_getPrototypeOf(EnhancedMRImageNormalizer.prototype), "normalize", this).call(this); + } + }]); + return EnhancedMRImageNormalizer; + }(ImageNormalizer); + var EnhancedUSVolumeNormalizer = /*#__PURE__*/function (_ImageNormalizer4) { + _inherits(EnhancedUSVolumeNormalizer, _ImageNormalizer4); + var _super5 = _createSuper(EnhancedUSVolumeNormalizer); + function EnhancedUSVolumeNormalizer() { + _classCallCheck(this, EnhancedUSVolumeNormalizer); + return _super5.apply(this, arguments); + } + _createClass(EnhancedUSVolumeNormalizer, [{ + key: "normalize", + value: function normalize() { + _get(_getPrototypeOf(EnhancedUSVolumeNormalizer.prototype), "normalize", this).call(this); + } + }]); + return EnhancedUSVolumeNormalizer; + }(ImageNormalizer); + var CTImageNormalizer = /*#__PURE__*/function (_ImageNormalizer5) { + _inherits(CTImageNormalizer, _ImageNormalizer5); + var _super6 = _createSuper(CTImageNormalizer); + function CTImageNormalizer() { + _classCallCheck(this, CTImageNormalizer); + return _super6.apply(this, arguments); + } + _createClass(CTImageNormalizer, [{ + key: "normalize", + value: function normalize() { + _get(_getPrototypeOf(CTImageNormalizer.prototype), "normalize", this).call(this); + // TODO: provide option at export to swap in LegacyConverted UID + var toUID = DicomMetaDictionary.sopClassUIDsByName; + //this.dataset.SOPClassUID = "LegacyConvertedEnhancedCTImage"; + this.dataset.SOPClassUID = toUID.EnhancedCTImage; + } + }]); + return CTImageNormalizer; + }(ImageNormalizer); + var PETImageNormalizer = /*#__PURE__*/function (_ImageNormalizer6) { + _inherits(PETImageNormalizer, _ImageNormalizer6); + var _super7 = _createSuper(PETImageNormalizer); + function PETImageNormalizer() { + _classCallCheck(this, PETImageNormalizer); + return _super7.apply(this, arguments); + } + _createClass(PETImageNormalizer, [{ + key: "normalize", + value: function normalize() { + _get(_getPrototypeOf(PETImageNormalizer.prototype), "normalize", this).call(this); + // TODO: provide option at export to swap in LegacyConverted UID + var toUID = DicomMetaDictionary.sopClassUIDsByName; + //this.dataset.SOPClassUID = "LegacyConvertedEnhancedPETImage"; + this.dataset.SOPClassUID = toUID.EnhancedPETImage; + } + }]); + return PETImageNormalizer; + }(ImageNormalizer); + var SEGImageNormalizer = /*#__PURE__*/function (_ImageNormalizer7) { + _inherits(SEGImageNormalizer, _ImageNormalizer7); + var _super8 = _createSuper(SEGImageNormalizer); + function SEGImageNormalizer() { + _classCallCheck(this, SEGImageNormalizer); + return _super8.apply(this, arguments); + } + _createClass(SEGImageNormalizer, [{ + key: "normalize", + value: function normalize() { + _get(_getPrototypeOf(SEGImageNormalizer.prototype), "normalize", this).call(this); + } + }]); + return SEGImageNormalizer; + }(ImageNormalizer); + var PMImageNormalizer = /*#__PURE__*/function (_ImageNormalizer8) { + _inherits(PMImageNormalizer, _ImageNormalizer8); + var _super9 = _createSuper(PMImageNormalizer); + function PMImageNormalizer() { + _classCallCheck(this, PMImageNormalizer); + return _super9.apply(this, arguments); + } + _createClass(PMImageNormalizer, [{ + key: "normalize", + value: function normalize() { + _get(_getPrototypeOf(PMImageNormalizer.prototype), "normalize", this).call(this); + var ds = this.datasets[0]; + if (ds.BitsAllocated !== 32) { + log.error("Only works with 32 bit data, not " + String(ds.BitsAllocated)); + } + } + }]); + return PMImageNormalizer; + }(ImageNormalizer); + var DSRNormalizer = /*#__PURE__*/function (_Normalizer2) { + _inherits(DSRNormalizer, _Normalizer2); + var _super10 = _createSuper(DSRNormalizer); + function DSRNormalizer() { + _classCallCheck(this, DSRNormalizer); + return _super10.apply(this, arguments); + } + _createClass(DSRNormalizer, [{ + key: "normalize", + value: function normalize() { + this.dataset = this.datasets[0]; // only one dataset per series and for now we assume it is normalized + } + }]); + return DSRNormalizer; + }(Normalizer); + + var Segmentation$4 = /*#__PURE__*/function (_DerivedPixels) { + _inherits(Segmentation, _DerivedPixels); + var _super = _createSuper(Segmentation); + function Segmentation(datasets) { + var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : { + includeSliceSpacing: true + }; + _classCallCheck(this, Segmentation); + return _super.call(this, datasets, options); + } + _createClass(Segmentation, [{ + key: "derive", + value: function derive() { + _get(_getPrototypeOf(Segmentation.prototype), "derive", this).call(this); + this.assignToDataset({ + SOPClassUID: DicomMetaDictionary.sopClassUIDsByName.Segmentation, + Modality: "SEG", + SamplesPerPixel: "1", + PhotometricInterpretation: "MONOCHROME2", + BitsAllocated: "1", + BitsStored: "1", + HighBit: "0", + PixelRepresentation: "0", + LossyImageCompression: "00", + SegmentationType: "BINARY", + ContentLabel: "SEGMENTATION" + }); + var dimensionUID = DicomMetaDictionary.uid(); + this.dataset.DimensionOrganizationSequence = { + DimensionOrganizationUID: dimensionUID + }; + this.dataset.DimensionIndexSequence = [{ + DimensionOrganizationUID: dimensionUID, + DimensionIndexPointer: 6422539, + FunctionalGroupPointer: 6422538, + // SegmentIdentificationSequence + DimensionDescriptionLabel: "ReferencedSegmentNumber" + }, { + DimensionOrganizationUID: dimensionUID, + DimensionIndexPointer: 2097202, + FunctionalGroupPointer: 2134291, + // PlanePositionSequence + DimensionDescriptionLabel: "ImagePositionPatient" + }]; + this.dataset.SegmentSequence = []; + + // TODO: check logic here. + // If the referenced dataset itself references a series, then copy. + // Otherwise, reference the dataset itself. + // This should allow Slicer and others to get the correct original + // images when loading Legacy Converted Images, but it's a workaround + // that really doesn't belong here. + if (this.referencedDataset.ReferencedSeriesSequence) { + this.dataset.ReferencedSeriesSequence = DerivedDataset.copyDataset(this.referencedDataset.ReferencedSeriesSequence); + } else { + var ReferencedInstanceSequence = []; + for (var i = 0; i < this.referencedDatasets.length; i++) { + ReferencedInstanceSequence.push({ + ReferencedSOPClassUID: this.referencedDatasets[i].SOPClassUID, + ReferencedSOPInstanceUID: this.referencedDatasets[i].SOPInstanceUID + }); + } + this.dataset.ReferencedSeriesSequence = { + SeriesInstanceUID: this.referencedDataset.SeriesInstanceUID, + StudyInstanceUID: this.referencedDataset.StudyInstanceUID, + ReferencedInstanceSequence: ReferencedInstanceSequence + }; + } + if (!this.options.includeSliceSpacing) { + // per dciodvfy this should not be included, but dcmqi/Slicer requires it + delete this.dataset.SharedFunctionalGroupsSequence.PixelMeasuresSequence.SpacingBetweenSlices; + } + if (this.dataset.SharedFunctionalGroupsSequence.PixelValueTransformationSequence) { + // If derived from a CT, this shouldn't be left in the SEG. + delete this.dataset.SharedFunctionalGroupsSequence.PixelValueTransformationSequence; + } + + // The pixelData array needs to be defined once you know how many frames you'll have. + this.dataset.PixelData = undefined; + this.dataset.NumberOfFrames = 0; + this.dataset.PerFrameFunctionalGroupsSequence = []; + } + + /** + * setNumberOfFrames - Sets the number of frames of the segmentation object + * and allocates (non-bitpacked) memory for the PixelData for constuction. + * + * @param {type} NumberOfFrames The number of segmentation frames. + */ + }, { + key: "setNumberOfFrames", + value: function setNumberOfFrames(NumberOfFrames) { + var dataset = this.dataset; + dataset.NumberOfFrames = NumberOfFrames; + dataset.PixelData = new ArrayBuffer(dataset.Rows * dataset.Columns * NumberOfFrames); + } + + /** + * bitPackPixelData - Bitpacks the pixeldata, should be called after all + * segments are addded. + * + * @returns {type} description + */ + }, { + key: "bitPackPixelData", + value: function bitPackPixelData() { + if (this.isBitpacked) { + console.warn("This.bitPackPixelData has already been called, it should only be called once, when all frames have been added. Exiting."); + } + var dataset = this.dataset; + var unpackedPixelData = dataset.PixelData; + var uInt8ViewUnpackedPixelData = new Uint8Array(unpackedPixelData); + var bitPackedPixelData = BitArray.pack(uInt8ViewUnpackedPixelData); + dataset.PixelData = bitPackedPixelData.buffer; + this.isBitpacked = true; + } + + /** + * addSegmentFromLabelmap - Adds a segment to the dataset, + * where the labelmaps are a set of 2D labelmaps, from which to extract the binary maps. + * + * @param {type} Segment The segment metadata. + * @param {Uint8Array[]} labelmaps labelmap arrays for each index of referencedFrameNumbers. + * @param {number} segmentIndexInLabelmap The segment index to extract from the labelmap + * (might be different to the segment metadata depending on implementation). + * @param {number[]} referencedFrameNumbers The frames that the + * segmentation references. + * + */ + }, { + key: "addSegmentFromLabelmap", + value: function addSegmentFromLabelmap(Segment, labelmaps, segmentIndexInLabelmap, referencedFrameNumbers) { + if (this.dataset.NumberOfFrames === 0) { + throw new Error("Must set the total number of frames via setNumberOfFrames() before adding segments to the segmentation."); + } + this._addSegmentPixelDataFromLabelmaps(labelmaps, segmentIndexInLabelmap); + var ReferencedSegmentNumber = this._addSegmentMetadata(Segment); + this._addPerFrameFunctionalGroups(ReferencedSegmentNumber, referencedFrameNumbers); + } + }, { + key: "_addSegmentPixelDataFromLabelmaps", + value: function _addSegmentPixelDataFromLabelmaps(labelmaps, segmentIndex) { + var dataset = this.dataset; + var existingFrames = dataset.PerFrameFunctionalGroupsSequence.length; + var sliceLength = dataset.Rows * dataset.Columns; + var byteOffset = existingFrames * sliceLength; + var pixelDataUInt8View = new Uint8Array(dataset.PixelData, byteOffset, labelmaps.length * sliceLength); + var occupiedValue = this._getOccupiedValue(); + for (var l = 0; l < labelmaps.length; l++) { + var labelmap = labelmaps[l]; + for (var i = 0; i < labelmap.length; i++) { + if (labelmap[i] === segmentIndex) { + pixelDataUInt8View[l * sliceLength + i] = occupiedValue; + } + } + } + } + }, { + key: "_getOccupiedValue", + value: function _getOccupiedValue() { + if (this.dataset.SegmentationType === "FRACTIONAL") { + return 255; + } + return 1; + } + + /** + * addSegment - Adds a segment to the dataset. + * + * @param {type} Segment The segment metadata. + * @param {Uint8Array} pixelData The pixelData array containing all frames + * of the segmentation. + * @param {Number[]} referencedFrameNumbers The frames that the + * segmentation references. + * + */ + }, { + key: "addSegment", + value: function addSegment(Segment, pixelData, referencedFrameNumbers) { + if (this.dataset.NumberOfFrames === 0) { + throw new Error("Must set the total number of frames via setNumberOfFrames() before adding segments to the segmentation."); + } + this._addSegmentPixelData(pixelData); + var ReferencedSegmentNumber = this._addSegmentMetadata(Segment); + this._addPerFrameFunctionalGroups(ReferencedSegmentNumber, referencedFrameNumbers); + } + }, { + key: "_addSegmentPixelData", + value: function _addSegmentPixelData(pixelData) { + var dataset = this.dataset; + var existingFrames = dataset.PerFrameFunctionalGroupsSequence.length; + var sliceLength = dataset.Rows * dataset.Columns; + var byteOffset = existingFrames * sliceLength; + var pixelDataUInt8View = new Uint8Array(dataset.PixelData, byteOffset, pixelData.length); + for (var i = 0; i < pixelData.length; i++) { + pixelDataUInt8View[i] = pixelData[i]; + } + } + }, { + key: "_addPerFrameFunctionalGroups", + value: function _addPerFrameFunctionalGroups(ReferencedSegmentNumber, referencedFrameNumbers) { + var PerFrameFunctionalGroupsSequence = this.dataset.PerFrameFunctionalGroupsSequence; + var ReferencedSeriesSequence = this.referencedDataset.ReferencedSeriesSequence; + for (var i = 0; i < referencedFrameNumbers.length; i++) { + var frameNumber = referencedFrameNumbers[i]; + var perFrameFunctionalGroups = {}; + perFrameFunctionalGroups.PlanePositionSequence = DerivedDataset.copyDataset(this.referencedDataset.PerFrameFunctionalGroupsSequence[frameNumber - 1].PlanePositionSequence); + + // If the PlaneOrientationSequence is not in the SharedFunctionalGroupsSequence, + // extract it from the PerFrameFunctionalGroupsSequence. + if (!this.dataset.SharedFunctionalGroupsSequence.PlaneOrientationSequence) { + perFrameFunctionalGroups.PlaneOrientationSequence = DerivedDataset.copyDataset(this.referencedDataset.PerFrameFunctionalGroupsSequence[frameNumber - 1].PlaneOrientationSequence); + } + perFrameFunctionalGroups.FrameContentSequence = { + DimensionIndexValues: [ReferencedSegmentNumber, frameNumber] + }; + perFrameFunctionalGroups.SegmentIdentificationSequence = { + ReferencedSegmentNumber: ReferencedSegmentNumber + }; + var ReferencedSOPClassUID = void 0; + var ReferencedSOPInstanceUID = void 0; + var ReferencedFrameNumber = void 0; + if (ReferencedSeriesSequence) { + var referencedInstanceSequenceI = ReferencedSeriesSequence.ReferencedInstanceSequence[frameNumber - 1]; + ReferencedSOPClassUID = referencedInstanceSequenceI.ReferencedSOPClassUID; + ReferencedSOPInstanceUID = referencedInstanceSequenceI.ReferencedSOPInstanceUID; + if (Normalizer.isMultiframeSOPClassUID(ReferencedSOPClassUID)) { + ReferencedFrameNumber = frameNumber; + } + } else { + ReferencedSOPClassUID = this.referencedDataset.SOPClassUID; + ReferencedSOPInstanceUID = this.referencedDataset.SOPInstanceUID; + ReferencedFrameNumber = frameNumber; + } + if (ReferencedFrameNumber) { + perFrameFunctionalGroups.DerivationImageSequence = { + SourceImageSequence: { + ReferencedSOPClassUID: ReferencedSOPClassUID, + ReferencedSOPInstanceUID: ReferencedSOPInstanceUID, + ReferencedFrameNumber: ReferencedFrameNumber, + PurposeOfReferenceCodeSequence: { + CodeValue: "121322", + CodingSchemeDesignator: "DCM", + CodeMeaning: "Source image for image processing operation" + } + }, + DerivationCodeSequence: { + CodeValue: "113076", + CodingSchemeDesignator: "DCM", + CodeMeaning: "Segmentation" + } + }; + } else { + perFrameFunctionalGroups.DerivationImageSequence = { + SourceImageSequence: { + ReferencedSOPClassUID: ReferencedSOPClassUID, + ReferencedSOPInstanceUID: ReferencedSOPInstanceUID, + PurposeOfReferenceCodeSequence: { + CodeValue: "121322", + CodingSchemeDesignator: "DCM", + CodeMeaning: "Source image for image processing operation" + } + }, + DerivationCodeSequence: { + CodeValue: "113076", + CodingSchemeDesignator: "DCM", + CodeMeaning: "Segmentation" + } + }; + } + PerFrameFunctionalGroupsSequence.push(perFrameFunctionalGroups); + } + } + }, { + key: "_addSegmentMetadata", + value: function _addSegmentMetadata(Segment) { + if (!Segment.SegmentLabel || !Segment.SegmentedPropertyCategoryCodeSequence || !Segment.SegmentedPropertyTypeCodeSequence || !Segment.SegmentAlgorithmType) { + throw new Error("Segment does not contain all the required fields."); + } + + // Capitalise the SegmentAlgorithmType if it happens to be given in + // Lower/mixed case. + Segment.SegmentAlgorithmType = Segment.SegmentAlgorithmType.toUpperCase(); + + // Check SegmentAlgorithmType and SegmentAlgorithmName if necessary. + switch (Segment.SegmentAlgorithmType) { + case "AUTOMATIC": + case "SEMIAUTOMATIC": + if (!Segment.SegmentAlgorithmName) { + throw new Error("If the SegmentAlgorithmType is SEMIAUTOMATIC or AUTOMATIC,\n SegmentAlgorithmName must be provided"); + } + break; + case "MANUAL": + break; + default: + throw new Error("SegmentAlgorithmType ".concat(Segment.SegmentAlgorithmType, " invalid.")); + } + + // Deep copy, so we don't change the segment index stored in cornerstoneTools. + + var SegmentSequence = this.dataset.SegmentSequence; + var SegmentAlgorithmType = Segment.SegmentAlgorithmType; + var reNumberedSegmentCopy = { + SegmentedPropertyCategoryCodeSequence: Segment.SegmentedPropertyCategoryCodeSequence, + SegmentNumber: (SegmentSequence.length + 1).toString(), + SegmentLabel: Segment.SegmentLabel, + SegmentAlgorithmType: SegmentAlgorithmType, + RecommendedDisplayCIELabValue: Segment.RecommendedDisplayCIELabValue, + SegmentedPropertyTypeCodeSequence: Segment.SegmentedPropertyTypeCodeSequence + }; + if (SegmentAlgorithmType === "AUTOMATIC" || SegmentAlgorithmType === "SEMIAUTOMATIC") { + reNumberedSegmentCopy.SegmentAlgorithmName = Segment.SegmentAlgorithmName; + } + SegmentSequence.push(reNumberedSegmentCopy); + return reNumberedSegmentCopy.SegmentNumber; + } + }]); + return Segmentation; + }(DerivedPixels); + + var ParametricMap = /*#__PURE__*/function (_DerivedDataset) { + _inherits(ParametricMap, _DerivedDataset); + var _super = _createSuper(ParametricMap); + function ParametricMap(datasets) { + var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + _classCallCheck(this, ParametricMap); + return _super.call(this, datasets, options); + } + + // this assumes a normalized multiframe input and will create + // a multiframe derived image + _createClass(ParametricMap, [{ + key: "derive", + value: function derive() { + _get(_getPrototypeOf(ParametricMap.prototype), "derive", this).call(this); + this.assignToDataset({ + // TODO: ??? + }); + this.assignFromReference([]); + } + }]); + return ParametricMap; + }(DerivedDataset); + + var StructuredReport = /*#__PURE__*/function (_DerivedDataset) { + _inherits(StructuredReport, _DerivedDataset); + var _super = _createSuper(StructuredReport); + function StructuredReport(datasets) { + var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + _classCallCheck(this, StructuredReport); + return _super.call(this, datasets, options); + } + + // this assumes a normalized multiframe input and will create + // a multiframe derived image + _createClass(StructuredReport, [{ + key: "derive", + value: function derive() { + _get(_getPrototypeOf(StructuredReport.prototype), "derive", this).call(this); + this.assignToDataset({ + SOPClassUID: DicomMetaDictionary.sopClassUIDsByName.EnhancedSR, + Modality: "SR", + ValueType: "CONTAINER" + }); + this.assignFromReference([]); + } + }]); + return StructuredReport; + }(DerivedDataset); + + var TID1500MeasurementReport = /*#__PURE__*/function () { + function TID1500MeasurementReport(TIDIncludeGroups) { + _classCallCheck(this, TID1500MeasurementReport); + this.TIDIncludeGroups = TIDIncludeGroups; + var ImageLibraryContentSequence = []; + var CurrentRequestedProcedureEvidenceSequence = []; + this.ImageLibraryContentSequence = ImageLibraryContentSequence; + this.CurrentRequestedProcedureEvidenceSequence = CurrentRequestedProcedureEvidenceSequence; + this.PersonObserverName = { + RelationshipType: "HAS OBS CONTEXT", + ValueType: "PNAME", + ConceptNameCodeSequence: { + CodeValue: "121008", + CodingSchemeDesignator: "DCM", + CodeMeaning: "Person Observer Name" + }, + PersonName: "unknown^unknown" + }; + this.tid1500 = { + ConceptNameCodeSequence: { + CodeValue: "126000", + CodingSchemeDesignator: "DCM", + CodeMeaning: "Imaging Measurement Report" + }, + ContinuityOfContent: "SEPARATE", + PerformedProcedureCodeSequence: [], + CompletionFlag: "COMPLETE", + VerificationFlag: "UNVERIFIED", + ReferencedPerformedProcedureStepSequence: [], + InstanceNumber: 1, + CurrentRequestedProcedureEvidenceSequence: CurrentRequestedProcedureEvidenceSequence, + CodingSchemeIdentificationSequence: { + CodingSchemeDesignator: "99dcmjs", + CodingSchemeName: "Codes used for dcmjs", + CodingSchemeVersion: "0", + CodingSchemeResponsibleOrganization: "https://github.com/dcmjs-org/dcmjs" + }, + ContentTemplateSequence: { + MappingResource: "DCMR", + TemplateIdentifier: "1500" + }, + ContentSequence: [{ + RelationshipType: "HAS CONCEPT MOD", + ValueType: "CODE", + ConceptNameCodeSequence: addAccessors({ + CodeValue: "121049", + CodingSchemeDesignator: "DCM", + CodeMeaning: "Language of Content Item and Descendants" + }), + ConceptCodeSequence: addAccessors({ + CodeValue: "eng", + CodingSchemeDesignator: "RFC5646", + CodeMeaning: "English" + }), + ContentSequence: addAccessors({ + RelationshipType: "HAS CONCEPT MOD", + ValueType: "CODE", + ConceptNameCodeSequence: addAccessors({ + CodeValue: "121046", + CodingSchemeDesignator: "DCM", + CodeMeaning: "Country of Language" + }), + ConceptCodeSequence: addAccessors({ + CodeValue: "US", + CodingSchemeDesignator: "ISO3166_1", + CodeMeaning: "United States" + }) + }) + }, this.PersonObserverName, { + RelationshipType: "HAS CONCEPT MOD", + ValueType: "CODE", + ConceptNameCodeSequence: addAccessors({ + CodeValue: "121058", + CodingSchemeDesignator: "DCM", + CodeMeaning: "Procedure reported" + }), + ConceptCodeSequence: addAccessors({ + CodeValue: "1", + CodingSchemeDesignator: "99dcmjs", + CodeMeaning: "Unknown procedure" + }) + }, { + RelationshipType: "CONTAINS", + ValueType: "CONTAINER", + ConceptNameCodeSequence: { + CodeValue: "111028", + CodingSchemeDesignator: "DCM", + CodeMeaning: "Image Library" + }, + ContinuityOfContent: "SEPARATE", + ContentSequence: { + RelationshipType: "CONTAINS", + ValueType: "CONTAINER", + ConceptNameCodeSequence: { + CodeValue: "126200", + CodingSchemeDesignator: "DCM", + CodeMeaning: "Image Library Group" + }, + ContinuityOfContent: "SEPARATE", + ContentSequence: ImageLibraryContentSequence + } + }] + }; + } + _createClass(TID1500MeasurementReport, [{ + key: "validate", + value: function validate() {} + }, { + key: "contentItem", + value: function contentItem(derivationSourceDatasetOrDatasets) { + var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + if (options.PersonName) { + this.PersonObserverName.PersonName = options.PersonName; + } + + // Note this is left in for compatibility with the Cornerstone Legacy adapter which only supports one series for now. + var derivationSourceDatasets = Array.isArray(derivationSourceDatasetOrDatasets) ? derivationSourceDatasetOrDatasets : [derivationSourceDatasetOrDatasets]; + + // Add the Measurement Groups to the Measurement Report + this.addTID1501MeasurementGroups(derivationSourceDatasets, options); + return this.tid1500; + } + }, { + key: "addTID1501MeasurementGroups", + value: function addTID1501MeasurementGroups(derivationSourceDatasets) { + var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + var CurrentRequestedProcedureEvidenceSequence = this.CurrentRequestedProcedureEvidenceSequence, + ImageLibraryContentSequence = this.ImageLibraryContentSequence; + var sopInstanceUIDsToSeriesInstanceUIDMap = options.sopInstanceUIDsToSeriesInstanceUIDMap; + if (derivationSourceDatasets.length > 1 && sopInstanceUIDsToSeriesInstanceUIDMap === undefined) { + throw new Error("addTID1501MeasurementGroups provided with ".concat(derivationSourceDatasets.length, " derivationSourceDatasets, with no sopInstanceUIDsToSeriesInstanceUIDMap in options.")); + } + var TID1501MeasurementGroups = this.TIDIncludeGroups.TID1501MeasurementGroups; + if (!TID1501MeasurementGroups) { + return; + } + var ContentSequence = []; + TID1501MeasurementGroups.forEach(function (child) { + ContentSequence = ContentSequence.concat(child.contentItem()); + }); + var parsedSOPInstances = []; + + // For each measurement that is referenced, add a link to the + // Image Library Group and the Current Requested Procedure Evidence + // with the proper ReferencedSOPSequence + TID1501MeasurementGroups.forEach(function (measurementGroup) { + measurementGroup.TID300Measurements.forEach(function (measurement) { + var ReferencedSOPInstanceUID = measurement.ReferencedSOPSequence.ReferencedSOPInstanceUID; + if (!parsedSOPInstances.includes(ReferencedSOPInstanceUID)) { + ImageLibraryContentSequence.push({ + RelationshipType: "CONTAINS", + ValueType: "IMAGE", + ReferencedSOPSequence: measurement.ReferencedSOPSequence + }); + var derivationSourceDataset; + if (derivationSourceDatasets.length === 1) { + // If there is only one derivationSourceDataset, use it. + derivationSourceDataset = derivationSourceDatasets[0]; + } else { + var SeriesInstanceUID = sopInstanceUIDsToSeriesInstanceUIDMap[ReferencedSOPInstanceUID]; + derivationSourceDataset = derivationSourceDatasets.find(function (dsd) { + return dsd.SeriesInstanceUID === SeriesInstanceUID; + }); + } + + /** + * Note: the VM of the ReferencedSeriesSequence and ReferencedSOPSequence are 1, so + * it is correct that we have a full `CurrentRequestedProcedureEvidenceSequence` + * item per `SOPInstanceUID`. + */ + CurrentRequestedProcedureEvidenceSequence.push({ + StudyInstanceUID: derivationSourceDataset.StudyInstanceUID, + ReferencedSeriesSequence: { + SeriesInstanceUID: derivationSourceDataset.SeriesInstanceUID, + ReferencedSOPSequence: measurement.ReferencedSOPSequence + } + }); + parsedSOPInstances.push(ReferencedSOPInstanceUID); + } + }); + }); + var ImagingMeasurments = { + RelationshipType: "CONTAINS", + ValueType: "CONTAINER", + ConceptNameCodeSequence: { + CodeValue: "126010", + CodingSchemeDesignator: "DCM", + CodeMeaning: "Imaging Measurements" // TODO: would be nice to abstract the code sequences (in a dictionary? a service?) + }, + + ContinuityOfContent: "SEPARATE", + ContentSequence: ContentSequence + }; + this.tid1500.ContentSequence.push(ImagingMeasurments); + } + }]); + return TID1500MeasurementReport; + }(); + + var TID1501MeasurementGroup = /*#__PURE__*/function () { + function TID1501MeasurementGroup(TID300Measurements) { + _classCallCheck(this, TID1501MeasurementGroup); + this.TID300Measurements = TID300Measurements; + } + _createClass(TID1501MeasurementGroup, [{ + key: "contentItem", + value: function contentItem() { + var _this = this; + var TID300Measurements = this.TID300Measurements; + + // TODO: Is there nothing else in this group? + var measurementGroups = []; + TID300Measurements.forEach(function (TID300Measurement) { + measurementGroups.push(_this.getMeasurementGroup(TID300Measurement.contentItem())); + }); + return measurementGroups; + } + }, { + key: "getMeasurementGroup", + value: function getMeasurementGroup(contentSequenceEntries) { + return { + RelationshipType: "CONTAINS", + ValueType: "CONTAINER", + ConceptNameCodeSequence: { + CodeValue: "125007", + CodingSchemeDesignator: "DCM", + CodeMeaning: "Measurement Group" + }, + ContinuityOfContent: "SEPARATE", + ContentSequence: _toConsumableArray(contentSequenceEntries) + }; + } + }]); + return TID1501MeasurementGroup; + }(); + + var toArray = function toArray(x) { + return Array.isArray(x) ? x : [x]; + }; + var codeMeaningEquals = function codeMeaningEquals(codeMeaningName) { + return function (contentItem) { + return contentItem.ConceptNameCodeSequence.CodeMeaning === codeMeaningName; + }; + }; + var graphicTypeEquals = function graphicTypeEquals(graphicType) { + return function (contentItem) { + return contentItem && contentItem.GraphicType === graphicType; + }; + }; + + var FINDING$2 = { + CodingSchemeDesignator: "DCM", + CodeValue: "121071" + }; + var FINDING_SITE$2 = { + CodingSchemeDesignator: "SCT", + CodeValue: "363698007" + }; + var FINDING_SITE_OLD$1 = { + CodingSchemeDesignator: "SRT", + CodeValue: "G-C0E3" + }; + var codeValueMatch$1 = function codeValueMatch(group, code, oldCode) { + var ConceptNameCodeSequence = group.ConceptNameCodeSequence; + if (!ConceptNameCodeSequence) return; + var CodingSchemeDesignator = ConceptNameCodeSequence.CodingSchemeDesignator, + CodeValue = ConceptNameCodeSequence.CodeValue; + return CodingSchemeDesignator == code.CodingSchemeDesignator && CodeValue == code.CodeValue || oldCode && CodingSchemeDesignator == oldCode.CodingSchemeDesignator && CodeValue == oldCode.CodeValue; + }; + function getTID300ContentItem$2(tool, toolType, ReferencedSOPSequence, toolClass) { + var args = toolClass.getTID300RepresentationArguments(tool); + args.ReferencedSOPSequence = ReferencedSOPSequence; + var TID300Measurement = new toolClass.TID300Representation(args); + return TID300Measurement; + } + function getMeasurementGroup$2(toolType, toolData, ReferencedSOPSequence) { + var toolTypeData = toolData[toolType]; + var toolClass = MeasurementReport$3.CORNERSTONE_TOOL_CLASSES_BY_TOOL_TYPE[toolType]; + if (!toolTypeData || !toolTypeData.data || !toolTypeData.data.length || !toolClass) { + return; + } + + // Loop through the array of tool instances + // for this tool + var Measurements = toolTypeData.data.map(function (tool) { + return getTID300ContentItem$2(tool, toolType, ReferencedSOPSequence, toolClass); + }); + return new TID1501MeasurementGroup(Measurements); + } + var MeasurementReport$3 = /*#__PURE__*/function () { + function MeasurementReport() { + _classCallCheck(this, MeasurementReport); + } + _createClass(MeasurementReport, null, [{ + key: "getSetupMeasurementData", + value: function getSetupMeasurementData(MeasurementGroup) { + var ContentSequence = MeasurementGroup.ContentSequence; + var contentSequenceArr = toArray(ContentSequence); + var findingGroup = contentSequenceArr.find(function (group) { + return codeValueMatch$1(group, FINDING$2); + }); + var findingSiteGroups = contentSequenceArr.filter(function (group) { + return codeValueMatch$1(group, FINDING_SITE$2, FINDING_SITE_OLD$1); + }) || []; + var NUMGroup = contentSequenceArr.find(function (group) { + return group.ValueType === "NUM"; + }); + var SCOORDGroup = toArray(NUMGroup.ContentSequence).find(function (group) { + return group.ValueType === "SCOORD"; + }); + var ReferencedSOPSequence = SCOORDGroup.ContentSequence.ReferencedSOPSequence; + var ReferencedSOPInstanceUID = ReferencedSOPSequence.ReferencedSOPInstanceUID, + ReferencedFrameNumber = ReferencedSOPSequence.ReferencedFrameNumber; + var defaultState = { + sopInstanceUid: ReferencedSOPInstanceUID, + frameIndex: ReferencedFrameNumber || 1, + complete: true, + finding: findingGroup ? addAccessors(findingGroup.ConceptCodeSequence) : undefined, + findingSites: findingSiteGroups.map(function (fsg) { + return addAccessors(fsg.ConceptCodeSequence); + }) + }; + if (defaultState.finding) { + defaultState.description = defaultState.finding.CodeMeaning; + } + var findingSite = defaultState.findingSites && defaultState.findingSites[0]; + if (findingSite) { + defaultState.location = findingSite[0] && findingSite[0].CodeMeaning || findingSite.CodeMeaning; + } + return { + defaultState: defaultState, + findingGroup: findingGroup, + findingSiteGroups: findingSiteGroups, + NUMGroup: NUMGroup, + SCOORDGroup: SCOORDGroup, + ReferencedSOPSequence: ReferencedSOPSequence, + ReferencedSOPInstanceUID: ReferencedSOPInstanceUID, + ReferencedFrameNumber: ReferencedFrameNumber + }; + } + }, { + key: "generateReport", + value: function generateReport(toolState, metadataProvider, options) { + // ToolState for array of imageIDs to a Report + // Assume Cornerstone metadata provider has access to Study / Series / Sop Instance UID + + var allMeasurementGroups = []; + var firstImageId = Object.keys(toolState)[0]; + if (!firstImageId) { + throw new Error("No measurements provided."); + } + + /* Patient ID + Warning - Missing attribute or value that would be needed to build DICOMDIR - Patient ID + Warning - Missing attribute or value that would be needed to build DICOMDIR - Study Date + Warning - Missing attribute or value that would be needed to build DICOMDIR - Study Time + Warning - Missing attribute or value that would be needed to build DICOMDIR - Study ID + */ + var generalSeriesModule = metadataProvider.get("generalSeriesModule", firstImageId); + + //const sopCommonModule = metadataProvider.get('sopCommonModule', firstImageId); + + // NOTE: We are getting the Series and Study UIDs from the first imageId of the toolState + // which means that if the toolState is for multiple series, the report will have the incorrect + // SeriesInstanceUIDs + var studyInstanceUID = generalSeriesModule.studyInstanceUID, + seriesInstanceUID = generalSeriesModule.seriesInstanceUID; + + // Loop through each image in the toolData + Object.keys(toolState).forEach(function (imageId) { + var sopCommonModule = metadataProvider.get("sopCommonModule", imageId); + var frameNumber = metadataProvider.get("frameNumber", imageId); + var toolData = toolState[imageId]; + var toolTypes = Object.keys(toolData); + var ReferencedSOPSequence = { + ReferencedSOPClassUID: sopCommonModule.sopClassUID, + ReferencedSOPInstanceUID: sopCommonModule.sopInstanceUID + }; + if (Normalizer.isMultiframeSOPClassUID(sopCommonModule.sopClassUID)) { + ReferencedSOPSequence.ReferencedFrameNumber = frameNumber; + } + + // Loop through each tool type for the image + var measurementGroups = []; + toolTypes.forEach(function (toolType) { + var group = getMeasurementGroup$2(toolType, toolData, ReferencedSOPSequence); + if (group) { + measurementGroups.push(group); + } + }); + allMeasurementGroups = allMeasurementGroups.concat(measurementGroups); + }); + var _MeasurementReport = new TID1500MeasurementReport({ + TID1501MeasurementGroups: allMeasurementGroups + }, options); + + // TODO: what is the correct metaheader + // http://dicom.nema.org/medical/Dicom/current/output/chtml/part10/chapter_7.html + // TODO: move meta creation to happen in derivations.js + var fileMetaInformationVersionArray = new Uint8Array(2); + fileMetaInformationVersionArray[1] = 1; + var derivationSourceDataset = { + StudyInstanceUID: studyInstanceUID, + SeriesInstanceUID: seriesInstanceUID + //SOPInstanceUID: sopInstanceUID, // TODO: Necessary? + //SOPClassUID: sopClassUID, + }; + + var _meta = { + FileMetaInformationVersion: { + Value: [fileMetaInformationVersionArray.buffer], + vr: "OB" + }, + //MediaStorageSOPClassUID + //MediaStorageSOPInstanceUID: sopCommonModule.sopInstanceUID, + TransferSyntaxUID: { + Value: ["1.2.840.10008.1.2.1"], + vr: "UI" + }, + ImplementationClassUID: { + Value: [DicomMetaDictionary.uid()], + // TODO: could be git hash or other valid id + vr: "UI" + }, + ImplementationVersionName: { + Value: ["dcmjs"], + vr: "SH" + } + }; + var _vrMap = { + PixelData: "OW" + }; + derivationSourceDataset._meta = _meta; + derivationSourceDataset._vrMap = _vrMap; + var report = new StructuredReport([derivationSourceDataset]); + var contentItem = _MeasurementReport.contentItem(derivationSourceDataset); + + // Merge the derived dataset with the content from the Measurement Report + report.dataset = Object.assign(report.dataset, contentItem); + report.dataset._meta = _meta; + return report; + } + + /** + * Generate Cornerstone tool state from dataset + * @param {object} dataset dataset + * @param {object} hooks + * @param {function} hooks.getToolClass Function to map dataset to a tool class + * @returns + */ + }, { + key: "generateToolState", + value: function generateToolState(dataset) { + var hooks = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + // For now, bail out if the dataset is not a TID1500 SR with length measurements + if (dataset.ContentTemplateSequence.TemplateIdentifier !== "1500") { + throw new Error("This package can currently only interpret DICOM SR TID 1500"); + } + var REPORT = "Imaging Measurements"; + var GROUP = "Measurement Group"; + var TRACKING_IDENTIFIER = "Tracking Identifier"; + + // Identify the Imaging Measurements + var imagingMeasurementContent = toArray(dataset.ContentSequence).find(codeMeaningEquals(REPORT)); + + // Retrieve the Measurements themselves + var measurementGroups = toArray(imagingMeasurementContent.ContentSequence).filter(codeMeaningEquals(GROUP)); + + // For each of the supported measurement types, compute the measurement data + var measurementData = {}; + var cornerstoneToolClasses = MeasurementReport.CORNERSTONE_TOOL_CLASSES_BY_UTILITY_TYPE; + var registeredToolClasses = []; + Object.keys(cornerstoneToolClasses).forEach(function (key) { + registeredToolClasses.push(cornerstoneToolClasses[key]); + measurementData[key] = []; + }); + measurementGroups.forEach(function (measurementGroup) { + var measurementGroupContentSequence = toArray(measurementGroup.ContentSequence); + var TrackingIdentifierGroup = measurementGroupContentSequence.find(function (contentItem) { + return contentItem.ConceptNameCodeSequence.CodeMeaning === TRACKING_IDENTIFIER; + }); + var TrackingIdentifierValue = TrackingIdentifierGroup.TextValue; + var toolClass = hooks.getToolClass ? hooks.getToolClass(measurementGroup, dataset, registeredToolClasses) : registeredToolClasses.find(function (tc) { + return tc.isValidCornerstoneTrackingIdentifier(TrackingIdentifierValue); + }); + if (toolClass) { + var measurement = toolClass.getMeasurementData(measurementGroup); + console.log("=== ".concat(toolClass.toolType, " ===")); + console.log(measurement); + measurementData[toolClass.toolType].push(measurement); + } + }); + + // NOTE: There is no way of knowing the cornerstone imageIds as that could be anything. + // That is up to the consumer to derive from the SOPInstanceUIDs. + return measurementData; + } + }, { + key: "registerTool", + value: function registerTool(toolClass) { + MeasurementReport.CORNERSTONE_TOOL_CLASSES_BY_UTILITY_TYPE[toolClass.utilityToolType] = toolClass; + MeasurementReport.CORNERSTONE_TOOL_CLASSES_BY_TOOL_TYPE[toolClass.toolType] = toolClass; + MeasurementReport.MEASUREMENT_BY_TOOLTYPE[toolClass.toolType] = toolClass.utilityToolType; + } + }]); + return MeasurementReport; + }(); + MeasurementReport$3.MEASUREMENT_BY_TOOLTYPE = {}; + MeasurementReport$3.CORNERSTONE_TOOL_CLASSES_BY_UTILITY_TYPE = {}; + MeasurementReport$3.CORNERSTONE_TOOL_CLASSES_BY_TOOL_TYPE = {}; + + var TID300Measurement = /*#__PURE__*/function () { + function TID300Measurement(props) { + _classCallCheck(this, TID300Measurement); + this.ReferencedSOPSequence = props.ReferencedSOPSequence; + this.props = props; + } + _createClass(TID300Measurement, [{ + key: "getMeasurement", + value: function getMeasurement(contentSequenceEntries) { + return [].concat(_toConsumableArray(this.getTrackingGroups()), _toConsumableArray(this.getFindingGroup()), _toConsumableArray(this.getFindingSiteGroups()), _toConsumableArray(contentSequenceEntries)); + } + }, { + key: "getTrackingGroups", + value: function getTrackingGroups() { + var trackingIdentifierTextValue = this.props.trackingIdentifierTextValue; + return [{ + RelationshipType: "HAS OBS CONTEXT", + ValueType: "TEXT", + ConceptNameCodeSequence: { + CodeValue: "112039", + CodingSchemeDesignator: "DCM", + CodeMeaning: "Tracking Identifier" + }, + TextValue: trackingIdentifierTextValue || "web annotation" + }, { + RelationshipType: "HAS OBS CONTEXT", + ValueType: "UIDREF", + ConceptNameCodeSequence: { + CodeValue: "112040", + CodingSchemeDesignator: "DCM", + CodeMeaning: "Tracking Unique Identifier" + }, + UID: DicomMetaDictionary.uid() + }]; + } + }, { + key: "getFindingGroup", + value: function getFindingGroup() { + var finding = this.props.finding; + if (!finding) { + return []; + } + var CodeValue = finding.CodeValue, + CodingSchemeDesignator = finding.CodingSchemeDesignator, + CodeMeaning = finding.CodeMeaning; + return [{ + RelationshipType: "CONTAINS", + ValueType: "CODE", + ConceptNameCodeSequence: addAccessors({ + CodeValue: "121071", + CodingSchemeDesignator: "DCM", + CodeMeaning: "Finding" + }), + ConceptCodeSequence: addAccessors({ + CodeValue: CodeValue, + //: "SAMPLE FINDING", + CodingSchemeDesignator: CodingSchemeDesignator, + //: "99dcmjs", + CodeMeaning: CodeMeaning //: "Sample Finding" + }) + }]; + } + }, { + key: "getFindingSiteGroups", + value: function getFindingSiteGroups() { + var findingSites = this.props.findingSites || []; + return findingSites.map(function (findingSite) { + var CodeValue = findingSite.CodeValue, + CodingSchemeDesignator = findingSite.CodingSchemeDesignator, + CodeMeaning = findingSite.CodeMeaning; + return { + RelationshipType: "CONTAINS", + ValueType: "CODE", + ConceptNameCodeSequence: addAccessors({ + CodeValue: "363698007", + CodingSchemeDesignator: "SCT", + CodeMeaning: "Finding Site" + }), + ConceptCodeSequence: addAccessors({ + CodeValue: CodeValue, + //: "SAMPLE FINDING SITE", + CodingSchemeDesignator: CodingSchemeDesignator, + //: "99dcmjs", + CodeMeaning: CodeMeaning //: "Sample Finding Site" + }) + }; + }); + } + }]); + return TID300Measurement; + }(); + + var MM_UNIT = { + CodeValue: "mm", + CodingSchemeDesignator: "UCUM", + CodingSchemeVersion: "1.4", + CodeMeaning: "millimeter" + }; + var MM2_UNIT = { + CodeValue: "mm2", + CodingSchemeDesignator: "UCUM", + CodingSchemeVersion: "1.4", + CodeMeaning: "SquareMilliMeter" + }; + var NO_UNIT = { + CodeValue: "1", + CodingSchemeDesignator: "UCUM", + CodingSchemeVersion: "1.4", + CodeMeaning: "px" + }; + var NO2_UNIT = NO_UNIT; + var measurementMap = { + px: NO_UNIT, + mm: MM_UNIT, + mm2: MM2_UNIT, + "mm\xB2": MM2_UNIT, + "px\xB2": NO2_UNIT + }; + + /** Converts the given unit into the + * specified coding values. + * Has .measurementMap on the function specifying global units for measurements. + */ + var unit2CodingValue = function unit2CodingValue(units) { + if (!units) return NO_UNIT; + var space = units.indexOf(" "); + var baseUnit = space === -1 ? units : units.substring(0, space); + var codingUnit = measurementMap[units] || measurementMap[baseUnit]; + if (!codingUnit) { + log.error("Unspecified units", units); + return MM_UNIT; + } + return codingUnit; + }; + unit2CodingValue.measurementMap = measurementMap; + + var Length$2 = /*#__PURE__*/function (_TID300Measurement) { + _inherits(Length, _TID300Measurement); + var _super = _createSuper(Length); + function Length() { + _classCallCheck(this, Length); + return _super.apply(this, arguments); + } + _createClass(Length, [{ + key: "contentItem", + value: function contentItem() { + var _this$props = this.props, + point1 = _this$props.point1, + point2 = _this$props.point2, + _this$props$unit = _this$props.unit, + unit = _this$props$unit === void 0 ? "mm" : _this$props$unit, + distance = _this$props.distance, + ReferencedSOPSequence = _this$props.ReferencedSOPSequence; + return this.getMeasurement([{ + RelationshipType: "CONTAINS", + ValueType: "NUM", + ConceptNameCodeSequence: { + CodeValue: "G-D7FE", + CodingSchemeDesignator: "SRT", + CodeMeaning: "Length" + }, + MeasuredValueSequence: { + MeasurementUnitsCodeSequence: unit2CodingValue(unit), + NumericValue: distance + }, + ContentSequence: { + RelationshipType: "INFERRED FROM", + ValueType: "SCOORD", + GraphicType: "POLYLINE", + GraphicData: [point1.x, point1.y, point2.x, point2.y], + ContentSequence: { + RelationshipType: "SELECTED FROM", + ValueType: "IMAGE", + ReferencedSOPSequence: ReferencedSOPSequence + } + } + }]); + } + }]); + return Length; + }(TID300Measurement); + + var CORNERSTONE_4_TAG = "cornerstoneTools@^4.0.0"; + + var LENGTH$1 = "Length"; + var Length$1 = /*#__PURE__*/function () { + function Length() { + _classCallCheck(this, Length); + } + + // TODO: this function is required for all Cornerstone Tool Adapters, since it is called by MeasurementReport. + _createClass(Length, null, [{ + key: "getMeasurementData", + value: function getMeasurementData(MeasurementGroup) { + var _MeasurementReport$ge = MeasurementReport$3.getSetupMeasurementData(MeasurementGroup), + defaultState = _MeasurementReport$ge.defaultState, + NUMGroup = _MeasurementReport$ge.NUMGroup, + SCOORDGroup = _MeasurementReport$ge.SCOORDGroup; + var state = _objectSpread2(_objectSpread2({}, defaultState), {}, { + length: NUMGroup.MeasuredValueSequence.NumericValue, + toolType: Length.toolType, + handles: { + start: {}, + end: {}, + textBox: { + hasMoved: false, + movesIndependently: false, + drawnIndependently: true, + allowedOutsideImage: true, + hasBoundingBox: true + } + } + }); + var _SCOORDGroup$GraphicD = _slicedToArray(SCOORDGroup.GraphicData, 4); + state.handles.start.x = _SCOORDGroup$GraphicD[0]; + state.handles.start.y = _SCOORDGroup$GraphicD[1]; + state.handles.end.x = _SCOORDGroup$GraphicD[2]; + state.handles.end.y = _SCOORDGroup$GraphicD[3]; + return state; + } + }, { + key: "getTID300RepresentationArguments", + value: function getTID300RepresentationArguments(tool) { + var handles = tool.handles, + finding = tool.finding, + findingSites = tool.findingSites; + var point1 = handles.start; + var point2 = handles.end; + var distance = tool.length; + var trackingIdentifierTextValue = "cornerstoneTools@^4.0.0:Length"; + return { + point1: point1, + point2: point2, + distance: distance, + trackingIdentifierTextValue: trackingIdentifierTextValue, + finding: finding, + findingSites: findingSites || [] + }; + } + }]); + return Length; + }(); + Length$1.toolType = LENGTH$1; + Length$1.utilityToolType = LENGTH$1; + Length$1.TID300Representation = Length$2; + Length$1.isValidCornerstoneTrackingIdentifier = function (TrackingIdentifier) { + if (!TrackingIdentifier.includes(":")) { + return false; + } + var _TrackingIdentifier$s = TrackingIdentifier.split(":"), + _TrackingIdentifier$s2 = _slicedToArray(_TrackingIdentifier$s, 2), + cornerstone4Tag = _TrackingIdentifier$s2[0], + toolType = _TrackingIdentifier$s2[1]; + if (cornerstone4Tag !== CORNERSTONE_4_TAG) { + return false; + } + return toolType === LENGTH$1; + }; + MeasurementReport$3.registerTool(Length$1); + + /** + * Expand an array of points stored as objects into + * a flattened array of points + * + * @param points [{x: 0, y: 1}, {x: 1, y: 2}] or [{x: 0, y: 1, z: 0}, {x: 1, y: 2, z: 0}] + * @return {Array} [point1x, point1y, point2x, point2y] or [point1x, point1y, point1z, point2x, point2y, point2z] + */ + function expandPoints$3(points) { + var allPoints = []; + points.forEach(function (point) { + allPoints.push(point[0] || point.x); + allPoints.push(point[1] || point.y); + if (point[2] !== undefined || point.z !== undefined) { + allPoints.push(point[2] || point.z); + } + }); + return allPoints; + } + var Polyline$1 = /*#__PURE__*/function (_TID300Measurement) { + _inherits(Polyline, _TID300Measurement); + var _super = _createSuper(Polyline); + function Polyline() { + _classCallCheck(this, Polyline); + return _super.apply(this, arguments); + } + _createClass(Polyline, [{ + key: "contentItem", + value: function contentItem() { + var _this$props = this.props, + points = _this$props.points, + area = _this$props.area, + _this$props$areaUnit = _this$props.areaUnit, + areaUnit = _this$props$areaUnit === void 0 ? "mm2" : _this$props$areaUnit, + ReferencedSOPSequence = _this$props.ReferencedSOPSequence, + _this$props$use3DSpat = _this$props.use3DSpatialCoordinates, + use3DSpatialCoordinates = _this$props$use3DSpat === void 0 ? false : _this$props$use3DSpat, + perimeter = _this$props.perimeter, + _this$props$unit = _this$props.unit, + unit = _this$props$unit === void 0 ? "mm" : _this$props$unit; + var GraphicData = expandPoints$3(points); + + // TODO: Add Mean and STDev value of (modality?) pixels + return this.getMeasurement([{ + RelationshipType: "CONTAINS", + ValueType: "NUM", + ConceptNameCodeSequence: { + CodeValue: "131191004", + CodingSchemeDesignator: "SCT", + CodeMeaning: "Perimeter" + }, + MeasuredValueSequence: { + MeasurementUnitsCodeSequence: unit2CodingValue(unit), + NumericValue: perimeter + }, + ContentSequence: { + RelationshipType: "INFERRED FROM", + ValueType: use3DSpatialCoordinates ? "SCOORD3D" : "SCOORD", + GraphicType: "POLYLINE", + GraphicData: GraphicData, + ContentSequence: use3DSpatialCoordinates ? undefined : { + RelationshipType: "SELECTED FROM", + ValueType: "IMAGE", + ReferencedSOPSequence: ReferencedSOPSequence + } + } + }, { + // TODO: This feels weird to repeat the GraphicData + RelationshipType: "CONTAINS", + ValueType: "NUM", + ConceptNameCodeSequence: { + CodeValue: "G-A166", + CodingSchemeDesignator: "SRT", + CodeMeaning: "Area" // TODO: Look this up from a Code Meaning dictionary + }, + + MeasuredValueSequence: { + MeasurementUnitsCodeSequence: unit2CodingValue(areaUnit), + NumericValue: area + }, + ContentSequence: { + RelationshipType: "INFERRED FROM", + ValueType: use3DSpatialCoordinates ? "SCOORD3D" : "SCOORD", + GraphicType: "POLYLINE", + GraphicData: GraphicData, + ContentSequence: use3DSpatialCoordinates ? undefined : { + RelationshipType: "SELECTED FROM", + ValueType: "IMAGE", + ReferencedSOPSequence: ReferencedSOPSequence + } + } + }]); + } + }]); + return Polyline; + }(TID300Measurement); + + var FreehandRoi = /*#__PURE__*/function () { + function FreehandRoi() { + _classCallCheck(this, FreehandRoi); + } + _createClass(FreehandRoi, null, [{ + key: "getMeasurementData", + value: function getMeasurementData(MeasurementGroup) { + var _MeasurementReport$ge = MeasurementReport$3.getSetupMeasurementData(MeasurementGroup), + defaultState = _MeasurementReport$ge.defaultState, + SCOORDGroup = _MeasurementReport$ge.SCOORDGroup, + NUMGroup = _MeasurementReport$ge.NUMGroup; + var state = _objectSpread2(_objectSpread2({}, defaultState), {}, { + toolType: FreehandRoi.toolType, + handles: { + points: [], + textBox: { + active: false, + hasMoved: false, + movesIndependently: false, + drawnIndependently: true, + allowedOutsideImage: true, + hasBoundingBox: true + } + }, + cachedStats: { + area: NUMGroup ? NUMGroup.MeasuredValueSequence.NumericValue : 0 + }, + color: undefined, + invalidated: true + }); + var GraphicData = SCOORDGroup.GraphicData; + for (var i = 0; i < GraphicData.length; i += 2) { + state.handles.points.push({ + x: GraphicData[i], + y: GraphicData[i + 1] + }); + } + return state; + } + }, { + key: "getTID300RepresentationArguments", + value: function getTID300RepresentationArguments(tool) { + var handles = tool.handles, + finding = tool.finding, + findingSites = tool.findingSites, + _tool$cachedStats = tool.cachedStats, + cachedStats = _tool$cachedStats === void 0 ? {} : _tool$cachedStats; + var points = handles.points; + var _cachedStats$area = cachedStats.area, + area = _cachedStats$area === void 0 ? 0 : _cachedStats$area, + _cachedStats$perimete = cachedStats.perimeter, + perimeter = _cachedStats$perimete === void 0 ? 0 : _cachedStats$perimete; + var trackingIdentifierTextValue = "cornerstoneTools@^4.0.0:FreehandRoi"; + return { + points: points, + area: area, + perimeter: perimeter, + trackingIdentifierTextValue: trackingIdentifierTextValue, + finding: finding, + findingSites: findingSites || [] + }; + } + }]); + return FreehandRoi; + }(); + FreehandRoi.toolType = "FreehandRoi"; + FreehandRoi.utilityToolType = "FreehandRoi"; + FreehandRoi.TID300Representation = Polyline$1; + FreehandRoi.isValidCornerstoneTrackingIdentifier = function (TrackingIdentifier) { + if (!TrackingIdentifier.includes(":")) { + return false; + } + var _TrackingIdentifier$s = TrackingIdentifier.split(":"), + _TrackingIdentifier$s2 = _slicedToArray(_TrackingIdentifier$s, 2), + cornerstone4Tag = _TrackingIdentifier$s2[0], + toolType = _TrackingIdentifier$s2[1]; + if (cornerstone4Tag !== CORNERSTONE_4_TAG) { + return false; + } + return toolType === FreehandRoi.toolType; + }; + MeasurementReport$3.registerTool(FreehandRoi); + + var Bidirectional$2 = /*#__PURE__*/function (_TID300Measurement) { + _inherits(Bidirectional, _TID300Measurement); + var _super = _createSuper(Bidirectional); + function Bidirectional() { + _classCallCheck(this, Bidirectional); + return _super.apply(this, arguments); + } + _createClass(Bidirectional, [{ + key: "contentItem", + value: function contentItem() { + var _this$props = this.props, + longAxis = _this$props.longAxis, + shortAxis = _this$props.shortAxis, + longAxisLength = _this$props.longAxisLength, + shortAxisLength = _this$props.shortAxisLength, + unit = _this$props.unit, + ReferencedSOPSequence = _this$props.ReferencedSOPSequence; + return this.getMeasurement([{ + RelationshipType: "CONTAINS", + ValueType: "NUM", + ConceptNameCodeSequence: { + CodeValue: "G-A185", + CodingSchemeDesignator: "SRT", + CodeMeaning: "Long Axis" + }, + MeasuredValueSequence: { + MeasurementUnitsCodeSequence: unit2CodingValue(unit), + NumericValue: longAxisLength + }, + ContentSequence: { + RelationshipType: "INFERRED FROM", + ValueType: "SCOORD", + GraphicType: "POLYLINE", + GraphicData: [longAxis.point1.x, longAxis.point1.y, longAxis.point2.x, longAxis.point2.y], + ContentSequence: { + RelationshipType: "SELECTED FROM", + ValueType: "IMAGE", + ReferencedSOPSequence: ReferencedSOPSequence + } + } + }, { + RelationshipType: "CONTAINS", + ValueType: "NUM", + ConceptNameCodeSequence: { + CodeValue: "G-A186", + CodingSchemeDesignator: "SRT", + CodeMeaning: "Short Axis" + }, + MeasuredValueSequence: { + MeasurementUnitsCodeSequence: unit2CodingValue(unit), + NumericValue: shortAxisLength + }, + ContentSequence: { + RelationshipType: "INFERRED FROM", + ValueType: "SCOORD", + GraphicType: "POLYLINE", + GraphicData: [shortAxis.point1.x, shortAxis.point1.y, shortAxis.point2.x, shortAxis.point2.y], + ContentSequence: { + RelationshipType: "SELECTED FROM", + ValueType: "IMAGE", + ReferencedSOPSequence: ReferencedSOPSequence + } + } + }]); + } + }]); + return Bidirectional; + }(TID300Measurement); + + var BIDIRECTIONAL$1 = "Bidirectional"; + var LONG_AXIS$1 = "Long Axis"; + var SHORT_AXIS$1 = "Short Axis"; + var FINDING$1 = "121071"; + var FINDING_SITE$1 = "G-C0E3"; + var Bidirectional$1 = /*#__PURE__*/function () { + function Bidirectional() { + _classCallCheck(this, Bidirectional); + } + + // TODO: this function is required for all Cornerstone Tool Adapters, since it is called by MeasurementReport. + _createClass(Bidirectional, null, [{ + key: "getMeasurementData", + value: function getMeasurementData(MeasurementGroup) { + var _state; + var ContentSequence = MeasurementGroup.ContentSequence; + var findingGroup = toArray(ContentSequence).find(function (group) { + return group.ConceptNameCodeSequence.CodeValue === FINDING$1; + }); + var findingSiteGroups = toArray(ContentSequence).filter(function (group) { + return group.ConceptNameCodeSequence.CodeValue === FINDING_SITE$1; + }); + var longAxisNUMGroup = toArray(ContentSequence).find(function (group) { + return group.ConceptNameCodeSequence.CodeMeaning === LONG_AXIS$1; + }); + var longAxisSCOORDGroup = toArray(longAxisNUMGroup.ContentSequence).find(function (group) { + return group.ValueType === "SCOORD"; + }); + var shortAxisNUMGroup = toArray(ContentSequence).find(function (group) { + return group.ConceptNameCodeSequence.CodeMeaning === SHORT_AXIS$1; + }); + var shortAxisSCOORDGroup = toArray(shortAxisNUMGroup.ContentSequence).find(function (group) { + return group.ValueType === "SCOORD"; + }); + var ReferencedSOPSequence = longAxisSCOORDGroup.ContentSequence.ReferencedSOPSequence; + var ReferencedSOPInstanceUID = ReferencedSOPSequence.ReferencedSOPInstanceUID, + ReferencedFrameNumber = ReferencedSOPSequence.ReferencedFrameNumber; + + // Long axis + + var longestDiameter = String(longAxisNUMGroup.MeasuredValueSequence.NumericValue); + var shortestDiameter = String(shortAxisNUMGroup.MeasuredValueSequence.NumericValue); + var bottomRight = { + x: Math.max(longAxisSCOORDGroup.GraphicData[0], longAxisSCOORDGroup.GraphicData[2], shortAxisSCOORDGroup.GraphicData[0], shortAxisSCOORDGroup.GraphicData[2]), + y: Math.max(longAxisSCOORDGroup.GraphicData[1], longAxisSCOORDGroup.GraphicData[3], shortAxisSCOORDGroup.GraphicData[1], shortAxisSCOORDGroup.GraphicData[3]) + }; + var state = (_state = { + sopInstanceUid: ReferencedSOPInstanceUID, + frameIndex: ReferencedFrameNumber || 1, + toolType: Bidirectional.toolType, + active: false, + handles: { + start: { + x: longAxisSCOORDGroup.GraphicData[0], + y: longAxisSCOORDGroup.GraphicData[1], + drawnIndependently: false, + allowedOutsideImage: false, + active: false, + highlight: false, + index: 0 + }, + end: { + x: longAxisSCOORDGroup.GraphicData[2], + y: longAxisSCOORDGroup.GraphicData[3], + drawnIndependently: false, + allowedOutsideImage: false, + active: false, + highlight: false, + index: 1 + }, + perpendicularStart: { + x: shortAxisSCOORDGroup.GraphicData[0], + y: shortAxisSCOORDGroup.GraphicData[1], + drawnIndependently: false, + allowedOutsideImage: false, + active: false, + highlight: false, + index: 2 + }, + perpendicularEnd: { + x: shortAxisSCOORDGroup.GraphicData[2], + y: shortAxisSCOORDGroup.GraphicData[3], + drawnIndependently: false, + allowedOutsideImage: false, + active: false, + highlight: false, + index: 3 + }, + textBox: { + highlight: false, + hasMoved: true, + active: false, + movesIndependently: false, + drawnIndependently: true, + allowedOutsideImage: true, + hasBoundingBox: true, + x: bottomRight.x + 10, + y: bottomRight.y + 10 + } + }, + invalidated: false, + isCreating: false, + longestDiameter: longestDiameter, + shortestDiameter: shortestDiameter + }, _defineProperty(_state, "toolType", "Bidirectional"), _defineProperty(_state, "toolName", "Bidirectional"), _defineProperty(_state, "visible", true), _defineProperty(_state, "finding", findingGroup ? findingGroup.ConceptCodeSequence : undefined), _defineProperty(_state, "findingSites", findingSiteGroups.map(function (fsg) { + return fsg.ConceptCodeSequence; + })), _state); + return state; + } + }, { + key: "getTID300RepresentationArguments", + value: function getTID300RepresentationArguments(tool) { + var _tool$handles = tool.handles, + start = _tool$handles.start, + end = _tool$handles.end, + perpendicularStart = _tool$handles.perpendicularStart, + perpendicularEnd = _tool$handles.perpendicularEnd; + var shortestDiameter = tool.shortestDiameter, + longestDiameter = tool.longestDiameter, + finding = tool.finding, + findingSites = tool.findingSites; + var trackingIdentifierTextValue = "cornerstoneTools@^4.0.0:Bidirectional"; + return { + longAxis: { + point1: start, + point2: end + }, + shortAxis: { + point1: perpendicularStart, + point2: perpendicularEnd + }, + longAxisLength: longestDiameter, + shortAxisLength: shortestDiameter, + trackingIdentifierTextValue: trackingIdentifierTextValue, + finding: finding, + findingSites: findingSites || [] + }; + } + }]); + return Bidirectional; + }(); + Bidirectional$1.toolType = BIDIRECTIONAL$1; + Bidirectional$1.utilityToolType = BIDIRECTIONAL$1; + Bidirectional$1.TID300Representation = Bidirectional$2; + Bidirectional$1.isValidCornerstoneTrackingIdentifier = function (TrackingIdentifier) { + if (!TrackingIdentifier.includes(":")) { + return false; + } + var _TrackingIdentifier$s = TrackingIdentifier.split(":"), + _TrackingIdentifier$s2 = _slicedToArray(_TrackingIdentifier$s, 2), + cornerstone4Tag = _TrackingIdentifier$s2[0], + toolType = _TrackingIdentifier$s2[1]; + if (cornerstone4Tag !== CORNERSTONE_4_TAG) { + return false; + } + return toolType === BIDIRECTIONAL$1; + }; + MeasurementReport$3.registerTool(Bidirectional$1); + + /** + * Expand an array of points stored as objects into + * a flattened array of points + * + * @param points + * @return {Array} + */ + function expandPoints$2(points) { + var allPoints = []; + points.forEach(function (point) { + allPoints.push(point.x); + allPoints.push(point.y); + }); + return allPoints; + } + var Ellipse$1 = /*#__PURE__*/function (_TID300Measurement) { + _inherits(Ellipse, _TID300Measurement); + var _super = _createSuper(Ellipse); + function Ellipse() { + _classCallCheck(this, Ellipse); + return _super.apply(this, arguments); + } + _createClass(Ellipse, [{ + key: "contentItem", + value: function contentItem() { + var _this$props = this.props, + points = _this$props.points, + ReferencedSOPSequence = _this$props.ReferencedSOPSequence, + area = _this$props.area, + areaUnit = _this$props.areaUnit; + var GraphicData = expandPoints$2(points); + return this.getMeasurement([{ + RelationshipType: "CONTAINS", + ValueType: "NUM", + ConceptNameCodeSequence: { + CodeValue: "G-D7FE", + CodingSchemeDesignator: "SRT", + CodeMeaning: "AREA" + }, + MeasuredValueSequence: { + MeasurementUnitsCodeSequence: unit2CodingValue(areaUnit), + NumericValue: area + }, + ContentSequence: { + RelationshipType: "INFERRED FROM", + ValueType: "SCOORD", + GraphicType: "ELLIPSE", + GraphicData: GraphicData, + ContentSequence: { + RelationshipType: "SELECTED FROM", + ValueType: "IMAGE", + ReferencedSOPSequence: ReferencedSOPSequence + } + } + }]); + } + }]); + return Ellipse; + }(TID300Measurement); + + var ELLIPTICALROI$1 = "EllipticalRoi"; + var EllipticalRoi = /*#__PURE__*/function () { + function EllipticalRoi() { + _classCallCheck(this, EllipticalRoi); + } + + // TODO: this function is required for all Cornerstone Tool Adapters, since it is called by MeasurementReport. + _createClass(EllipticalRoi, null, [{ + key: "getMeasurementData", + value: function getMeasurementData(MeasurementGroup) { + var _MeasurementReport$ge = MeasurementReport$3.getSetupMeasurementData(MeasurementGroup), + defaultState = _MeasurementReport$ge.defaultState, + NUMGroup = _MeasurementReport$ge.NUMGroup, + SCOORDGroup = _MeasurementReport$ge.SCOORDGroup; + var GraphicData = SCOORDGroup.GraphicData; + var majorAxis = [{ + x: GraphicData[0], + y: GraphicData[1] + }, { + x: GraphicData[2], + y: GraphicData[3] + }]; + var minorAxis = [{ + x: GraphicData[4], + y: GraphicData[5] + }, { + x: GraphicData[6], + y: GraphicData[7] + }]; + + // Calculate two opposite corners of box defined by two axes. + + var minorAxisLength = Math.sqrt(Math.pow(minorAxis[0].x - minorAxis[1].x, 2) + Math.pow(minorAxis[0].y - minorAxis[1].y, 2)); + var minorAxisDirection = { + x: (minorAxis[1].x - minorAxis[0].x) / minorAxisLength, + y: (minorAxis[1].y - minorAxis[0].y) / minorAxisLength + }; + var halfMinorAxisLength = minorAxisLength / 2; + + // First end point of major axis + half minor axis vector + var corner1 = { + x: majorAxis[0].x + minorAxisDirection.x * halfMinorAxisLength, + y: majorAxis[0].y + minorAxisDirection.y * halfMinorAxisLength + }; + + // Second end point of major axis - half of minor axis vector + var corner2 = { + x: majorAxis[1].x - minorAxisDirection.x * halfMinorAxisLength, + y: majorAxis[1].y - minorAxisDirection.y * halfMinorAxisLength + }; + var state = _objectSpread2(_objectSpread2({}, defaultState), {}, { + toolType: EllipticalRoi.toolType, + active: false, + cachedStats: { + area: NUMGroup ? NUMGroup.MeasuredValueSequence.NumericValue : 0 + }, + handles: { + end: { + x: corner1.x, + y: corner1.y, + highlight: false, + active: false + }, + initialRotation: 0, + start: { + x: corner2.x, + y: corner2.y, + highlight: false, + active: false + }, + textBox: { + hasMoved: false, + movesIndependently: false, + drawnIndependently: true, + allowedOutsideImage: true, + hasBoundingBox: true + } + }, + invalidated: true, + visible: true + }); + return state; + } + }, { + key: "getTID300RepresentationArguments", + value: function getTID300RepresentationArguments(tool) { + var _tool$cachedStats = tool.cachedStats, + cachedStats = _tool$cachedStats === void 0 ? {} : _tool$cachedStats, + handles = tool.handles, + finding = tool.finding, + findingSites = tool.findingSites; + var start = handles.start, + end = handles.end; + var area = cachedStats.area; + var halfXLength = Math.abs(start.x - end.x) / 2; + var halfYLength = Math.abs(start.y - end.y) / 2; + var points = []; + var center = { + x: (start.x + end.x) / 2, + y: (start.y + end.y) / 2 + }; + if (halfXLength > halfYLength) { + // X-axis major + // Major axis + points.push({ + x: center.x - halfXLength, + y: center.y + }); + points.push({ + x: center.x + halfXLength, + y: center.y + }); + // Minor axis + points.push({ + x: center.x, + y: center.y - halfYLength + }); + points.push({ + x: center.x, + y: center.y + halfYLength + }); + } else { + // Y-axis major + // Major axis + points.push({ + x: center.x, + y: center.y - halfYLength + }); + points.push({ + x: center.x, + y: center.y + halfYLength + }); + // Minor axis + points.push({ + x: center.x - halfXLength, + y: center.y + }); + points.push({ + x: center.x + halfXLength, + y: center.y + }); + } + var trackingIdentifierTextValue = "cornerstoneTools@^4.0.0:EllipticalRoi"; + return { + area: area, + points: points, + trackingIdentifierTextValue: trackingIdentifierTextValue, + finding: finding, + findingSites: findingSites || [] + }; + } + }]); + return EllipticalRoi; + }(); + EllipticalRoi.toolType = ELLIPTICALROI$1; + EllipticalRoi.utilityToolType = ELLIPTICALROI$1; + EllipticalRoi.TID300Representation = Ellipse$1; + EllipticalRoi.isValidCornerstoneTrackingIdentifier = function (TrackingIdentifier) { + if (!TrackingIdentifier.includes(":")) { + return false; + } + var _TrackingIdentifier$s = TrackingIdentifier.split(":"), + _TrackingIdentifier$s2 = _slicedToArray(_TrackingIdentifier$s, 2), + cornerstone4Tag = _TrackingIdentifier$s2[0], + toolType = _TrackingIdentifier$s2[1]; + if (cornerstone4Tag !== CORNERSTONE_4_TAG) { + return false; + } + return toolType === ELLIPTICALROI$1; + }; + MeasurementReport$3.registerTool(EllipticalRoi); + + /** + * Expand an array of points stored as objects into + * a flattened array of points + * + * @param points [{x: 0, y: 1}, {x: 1, y: 2}] or [{x: 0, y: 1, z: 0}, {x: 1, y: 2, z: 0}] + * @return {Array} [point1x, point1y, point2x, point2y] or [point1x, point1y, point1z, point2x, point2y, point2z] + */ + function expandPoints$1(points) { + var allPoints = []; + points.forEach(function (point) { + allPoints.push(point.x); + allPoints.push(point.y); + }); + return allPoints; + } + var Circle$1 = /*#__PURE__*/function (_TID300Measurement) { + _inherits(Circle, _TID300Measurement); + var _super = _createSuper(Circle); + function Circle() { + _classCallCheck(this, Circle); + return _super.apply(this, arguments); + } + _createClass(Circle, [{ + key: "contentItem", + value: function contentItem() { + var _this$props = this.props, + points = _this$props.points, + ReferencedSOPSequence = _this$props.ReferencedSOPSequence, + _this$props$use3DSpat = _this$props.use3DSpatialCoordinates, + use3DSpatialCoordinates = _this$props$use3DSpat === void 0 ? false : _this$props$use3DSpat, + perimeter = _this$props.perimeter, + area = _this$props.area, + _this$props$areaUnit = _this$props.areaUnit, + areaUnit = _this$props$areaUnit === void 0 ? "mm2" : _this$props$areaUnit, + _this$props$unit = _this$props.unit, + unit = _this$props$unit === void 0 ? "mm" : _this$props$unit; + + // Combine all lengths to save the perimeter + // @ToDO The permiter has to be implemented + // const reducer = (accumulator, currentValue) => accumulator + currentValue; + // const perimeter = lengths.reduce(reducer); + var GraphicData = expandPoints$1(points); + + // TODO: Add Mean and STDev value of (modality?) pixels + + return this.getMeasurement([{ + RelationshipType: "CONTAINS", + ValueType: "NUM", + ConceptNameCodeSequence: { + CodeValue: "G-A197", + CodingSchemeDesignator: "SRT", + CodeMeaning: "Perimeter" // TODO: Look this up from a Code Meaning dictionary + }, + + MeasuredValueSequence: { + MeasurementUnitsCodeSequence: unit2CodingValue(unit), + NumericValue: perimeter + }, + ContentSequence: { + RelationshipType: "INFERRED FROM", + ValueType: use3DSpatialCoordinates ? "SCOORD3D" : "SCOORD", + GraphicType: "CIRCLE", + GraphicData: GraphicData, + ContentSequence: use3DSpatialCoordinates ? undefined : { + RelationshipType: "SELECTED FROM", + ValueType: "IMAGE", + ReferencedSOPSequence: ReferencedSOPSequence + } + } + }, { + // TODO: This feels weird to repeat the GraphicData + RelationshipType: "CONTAINS", + ValueType: "NUM", + ConceptNameCodeSequence: { + CodeValue: "G-A166", + CodingSchemeDesignator: "SRT", + CodeMeaning: "Area" // TODO: Look this up from a Code Meaning dictionary + }, + + MeasuredValueSequence: { + MeasurementUnitsCodeSequence: unit2CodingValue(areaUnit), + NumericValue: area + }, + ContentSequence: { + RelationshipType: "INFERRED FROM", + ValueType: use3DSpatialCoordinates ? "SCOORD3D" : "SCOORD", + GraphicType: "CIRCLE", + GraphicData: GraphicData, + ContentSequence: use3DSpatialCoordinates ? undefined : { + RelationshipType: "SELECTED FROM", + ValueType: "IMAGE", + ReferencedSOPSequence: ReferencedSOPSequence + } + } + }]); + } + }]); + return Circle; + }(TID300Measurement); + + var CIRCLEROI = "CircleRoi"; + var CircleRoi = /*#__PURE__*/function () { + function CircleRoi() { + _classCallCheck(this, CircleRoi); + } + + /** Gets the measurement data for cornerstone, given DICOM SR measurement data. */ + _createClass(CircleRoi, null, [{ + key: "getMeasurementData", + value: function getMeasurementData(MeasurementGroup) { + var _MeasurementReport$ge = MeasurementReport$3.getSetupMeasurementData(MeasurementGroup), + defaultState = _MeasurementReport$ge.defaultState, + NUMGroup = _MeasurementReport$ge.NUMGroup, + SCOORDGroup = _MeasurementReport$ge.SCOORDGroup; + var GraphicData = SCOORDGroup.GraphicData; + var center = { + x: GraphicData[0], + y: GraphicData[1] + }; + var end = { + x: GraphicData[2], + y: GraphicData[3] + }; + var state = _objectSpread2(_objectSpread2({}, defaultState), {}, { + toolType: CircleRoi.toolType, + active: false, + cachedStats: { + area: NUMGroup ? NUMGroup.MeasuredValueSequence.NumericValue : 0, + // Dummy values to be updated by cornerstone + radius: 0, + perimeter: 0 + }, + handles: { + end: _objectSpread2(_objectSpread2({}, end), {}, { + highlight: false, + active: false + }), + initialRotation: 0, + start: _objectSpread2(_objectSpread2({}, center), {}, { + highlight: false, + active: false + }), + textBox: { + hasMoved: false, + movesIndependently: false, + drawnIndependently: true, + allowedOutsideImage: true, + hasBoundingBox: true + } + }, + invalidated: true, + visible: true + }); + return state; + } + + /** + * Gets the TID 300 representation of a circle, given the cornerstone representation. + * + * @param {Object} tool + * @returns + */ + }, { + key: "getTID300RepresentationArguments", + value: function getTID300RepresentationArguments(tool) { + var _tool$cachedStats = tool.cachedStats, + cachedStats = _tool$cachedStats === void 0 ? {} : _tool$cachedStats, + handles = tool.handles, + finding = tool.finding, + findingSites = tool.findingSites; + var center = handles.start, + end = handles.end; + var area = cachedStats.area, + _cachedStats$areaUnit = cachedStats.areaUnit, + areaUnit = _cachedStats$areaUnit === void 0 ? "mm2" : _cachedStats$areaUnit, + _cachedStats$unit = cachedStats.unit, + unit = _cachedStats$unit === void 0 ? "mm" : _cachedStats$unit, + radius = cachedStats.radius; + var perimeter = 2 * Math.PI * radius; + var points = []; + points.push(center); + points.push(end); + var trackingIdentifierTextValue = "cornerstoneTools@^4.0.0:CircleRoi"; + return { + area: area, + areaUnit: areaUnit, + perimeter: perimeter, + unit: unit, + radius: radius, + points: points, + trackingIdentifierTextValue: trackingIdentifierTextValue, + finding: finding, + findingSites: findingSites || [] + }; + } + }]); + return CircleRoi; + }(); + CircleRoi.toolType = CIRCLEROI; + CircleRoi.utilityToolType = CIRCLEROI; + CircleRoi.TID300Representation = Circle$1; + CircleRoi.isValidCornerstoneTrackingIdentifier = function (TrackingIdentifier) { + if (!TrackingIdentifier.includes(":")) { + return false; + } + var _TrackingIdentifier$s = TrackingIdentifier.split(":"), + _TrackingIdentifier$s2 = _slicedToArray(_TrackingIdentifier$s, 2), + cornerstone4Tag = _TrackingIdentifier$s2[0], + toolType = _TrackingIdentifier$s2[1]; + if (cornerstone4Tag !== CORNERSTONE_4_TAG) { + return false; + } + return toolType === CIRCLEROI; + }; + MeasurementReport$3.registerTool(CircleRoi); + + var Point$1 = /*#__PURE__*/function (_TID300Measurement) { + _inherits(Point, _TID300Measurement); + var _super = _createSuper(Point); + function Point() { + _classCallCheck(this, Point); + return _super.apply(this, arguments); + } + _createClass(Point, [{ + key: "contentItem", + value: function contentItem() { + var _this$props = this.props, + points = _this$props.points, + ReferencedSOPSequence = _this$props.ReferencedSOPSequence, + _this$props$use3DSpat = _this$props.use3DSpatialCoordinates, + use3DSpatialCoordinates = _this$props$use3DSpat === void 0 ? false : _this$props$use3DSpat; + var GraphicData = use3DSpatialCoordinates ? [points[0].x, points[0].y, points[0].z] : [points[0].x, points[0].y]; + // Allow storing another point as part of an indicator showing a single point + if (points.length == 2) { + GraphicData.push(points[1].x); + GraphicData.push(points[1].y); + if (use3DSpatialCoordinates) GraphicData.push(points[1].z); + } + return this.getMeasurement([{ + RelationshipType: "CONTAINS", + ValueType: "NUM", + ConceptNameCodeSequence: { + CodeValue: "111010", + CodingSchemeDesignator: "DCM", + CodeMeaning: "Center" + }, + //MeasuredValueSequence: , + ContentSequence: { + RelationshipType: "INFERRED FROM", + ValueType: use3DSpatialCoordinates ? "SCOORD3D" : "SCOORD", + GraphicType: "POINT", + GraphicData: GraphicData, + ContentSequence: use3DSpatialCoordinates ? undefined : { + RelationshipType: "SELECTED FROM", + ValueType: "IMAGE", + ReferencedSOPSequence: ReferencedSOPSequence + } + } + }]); + } + }]); + return Point; + }(TID300Measurement); + + var ARROW_ANNOTATE$1 = "ArrowAnnotate"; + var CORNERSTONEFREETEXT$1 = "CORNERSTONEFREETEXT"; + var ArrowAnnotate$1 = /*#__PURE__*/function () { + function ArrowAnnotate() { + _classCallCheck(this, ArrowAnnotate); + } + _createClass(ArrowAnnotate, null, [{ + key: "getMeasurementData", + value: function getMeasurementData(MeasurementGroup) { + var _MeasurementReport$ge = MeasurementReport$3.getSetupMeasurementData(MeasurementGroup), + defaultState = _MeasurementReport$ge.defaultState, + SCOORDGroup = _MeasurementReport$ge.SCOORDGroup, + findingGroup = _MeasurementReport$ge.findingGroup; + var text = findingGroup.ConceptCodeSequence.CodeMeaning; + var GraphicData = SCOORDGroup.GraphicData; + var state = _objectSpread2(_objectSpread2({}, defaultState), {}, { + toolType: ArrowAnnotate.toolType, + active: false, + handles: { + start: { + x: GraphicData[0], + y: GraphicData[1], + highlight: true, + active: false + }, + // Use a generic offset if the stored data doesn't have the endpoint, otherwise + // use the actual endpoint. + end: { + x: GraphicData.length == 4 ? GraphicData[2] : GraphicData[0] + 20, + y: GraphicData.length == 4 ? GraphicData[3] : GraphicData[1] + 20, + highlight: true, + active: false + }, + textBox: { + hasMoved: false, + movesIndependently: false, + drawnIndependently: true, + allowedOutsideImage: true, + hasBoundingBox: true + } + }, + invalidated: true, + text: text, + visible: true + }); + return state; + } + }, { + key: "getTID300RepresentationArguments", + value: function getTID300RepresentationArguments(tool) { + var points = [tool.handles.start, tool.handles.end]; + var finding = tool.finding, + findingSites = tool.findingSites; + var TID300RepresentationArguments = { + points: points, + trackingIdentifierTextValue: "cornerstoneTools@^4.0.0:ArrowAnnotate", + findingSites: findingSites || [] + }; + + // If freetext finding isn't present, add it from the tool text. + if (!finding || finding.CodeValue !== CORNERSTONEFREETEXT$1) { + finding = { + CodeValue: CORNERSTONEFREETEXT$1, + CodingSchemeDesignator: "CST4", + CodeMeaning: tool.text + }; + } + TID300RepresentationArguments.finding = finding; + return TID300RepresentationArguments; + } + }]); + return ArrowAnnotate; + }(); + ArrowAnnotate$1.toolType = ARROW_ANNOTATE$1; + ArrowAnnotate$1.utilityToolType = ARROW_ANNOTATE$1; + ArrowAnnotate$1.TID300Representation = Point$1; + ArrowAnnotate$1.isValidCornerstoneTrackingIdentifier = function (TrackingIdentifier) { + if (!TrackingIdentifier.includes(":")) { + return false; + } + var _TrackingIdentifier$s = TrackingIdentifier.split(":"), + _TrackingIdentifier$s2 = _slicedToArray(_TrackingIdentifier$s, 2), + cornerstone4Tag = _TrackingIdentifier$s2[0], + toolType = _TrackingIdentifier$s2[1]; + if (cornerstone4Tag !== CORNERSTONE_4_TAG) { + return false; + } + return toolType === ARROW_ANNOTATE$1; + }; + MeasurementReport$3.registerTool(ArrowAnnotate$1); + + function iota$1(n) { + var result = new Array(n); + for(var i=0; i + * @license MIT + */ + + // The _isBuffer check is for Safari 5-7 support, because it's missing + // Object.prototype.constructor. Remove this eventually + var isBuffer_1 = function (obj) { + return obj != null && (isBuffer$1(obj) || isSlowBuffer(obj) || !!obj._isBuffer) + }; + + function isBuffer$1 (obj) { + return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj) + } + + // For Node v0.10 support. Remove this eventually. + function isSlowBuffer (obj) { + return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer$1(obj.slice(0, 0)) + } + + var iota = iota_1; + var isBuffer = isBuffer_1; + + var hasTypedArrays = ((typeof Float64Array) !== "undefined"); + + function compare1st(a, b) { + return a[0] - b[0] + } + + function order() { + var stride = this.stride; + var terms = new Array(stride.length); + var i; + for(i=0; iMath.abs(this.stride[1]))?[1,0]:[0,1]}})"); + } else if(dimension === 3) { + code.push( + "var s0=Math.abs(this.stride[0]),s1=Math.abs(this.stride[1]),s2=Math.abs(this.stride[2]);\ +if(s0>s1){\ +if(s1>s2){\ +return [2,1,0];\ +}else if(s0>s2){\ +return [1,2,0];\ +}else{\ +return [1,0,2];\ +}\ +}else if(s0>s2){\ +return [2,0,1];\ +}else if(s2>s1){\ +return [0,1,2];\ +}else{\ +return [0,2,1];\ +}}})"); + } + } else { + code.push("ORDER})"); + } + } + + //view.set(i0, ..., v): + code.push( + "proto.set=function "+className+"_set("+args.join(",")+",v){"); + if(useGetters) { + code.push("return this.data.set("+index_str+",v)}"); + } else { + code.push("return this.data["+index_str+"]=v}"); + } + + //view.get(i0, ...): + code.push("proto.get=function "+className+"_get("+args.join(",")+"){"); + if(useGetters) { + code.push("return this.data.get("+index_str+")}"); + } else { + code.push("return this.data["+index_str+"]}"); + } + + //view.index: + code.push( + "proto.index=function "+className+"_index(", args.join(), "){return "+index_str+"}"); + + //view.hi(): + code.push("proto.hi=function "+className+"_hi("+args.join(",")+"){return new "+className+"(this.data,"+ + indices.map(function(i) { + return ["(typeof i",i,"!=='number'||i",i,"<0)?this.shape[", i, "]:i", i,"|0"].join("") + }).join(",")+","+ + indices.map(function(i) { + return "this.stride["+i + "]" + }).join(",")+",this.offset)}"); + + //view.lo(): + var a_vars = indices.map(function(i) { return "a"+i+"=this.shape["+i+"]" }); + var c_vars = indices.map(function(i) { return "c"+i+"=this.stride["+i+"]" }); + code.push("proto.lo=function "+className+"_lo("+args.join(",")+"){var b=this.offset,d=0,"+a_vars.join(",")+","+c_vars.join(",")); + for(var i=0; i=0){\ +d=i"+i+"|0;\ +b+=c"+i+"*d;\ +a"+i+"-=d}"); + } + code.push("return new "+className+"(this.data,"+ + indices.map(function(i) { + return "a"+i + }).join(",")+","+ + indices.map(function(i) { + return "c"+i + }).join(",")+",b)}"); + + //view.step(): + code.push("proto.step=function "+className+"_step("+args.join(",")+"){var "+ + indices.map(function(i) { + return "a"+i+"=this.shape["+i+"]" + }).join(",")+","+ + indices.map(function(i) { + return "b"+i+"=this.stride["+i+"]" + }).join(",")+",c=this.offset,d=0,ceil=Math.ceil"); + for(var i=0; i=0){c=(c+this.stride["+i+"]*i"+i+")|0}else{a.push(this.shape["+i+"]);b.push(this.stride["+i+"])}"); + } + code.push("var ctor=CTOR_LIST[a.length+1];return ctor(this.data,a,b,c)}"); + + //Add return statement + code.push("return function construct_"+className+"(data,shape,stride,offset){return new "+className+"(data,"+ + indices.map(function(i) { + return "shape["+i+"]" + }).join(",")+","+ + indices.map(function(i) { + return "stride["+i+"]" + }).join(",")+",offset)}"); + + //Compile procedure + var procedure = new Function("CTOR_LIST", "ORDER", code.join("\n")); + return procedure(CACHED_CONSTRUCTORS[dtype], order) + } + + function arrayDType(data) { + if(isBuffer(data)) { + return "buffer" + } + if(hasTypedArrays) { + switch(Object.prototype.toString.call(data)) { + case "[object Float64Array]": + return "float64" + case "[object Float32Array]": + return "float32" + case "[object Int8Array]": + return "int8" + case "[object Int16Array]": + return "int16" + case "[object Int32Array]": + return "int32" + case "[object Uint8Array]": + return "uint8" + case "[object Uint16Array]": + return "uint16" + case "[object Uint32Array]": + return "uint32" + case "[object Uint8ClampedArray]": + return "uint8_clamped" + case "[object BigInt64Array]": + return "bigint64" + case "[object BigUint64Array]": + return "biguint64" + } + } + if(Array.isArray(data)) { + return "array" + } + return "generic" + } + + var CACHED_CONSTRUCTORS = { + "float32":[], + "float64":[], + "int8":[], + "int16":[], + "int32":[], + "uint8":[], + "uint16":[], + "uint32":[], + "array":[], + "uint8_clamped":[], + "bigint64": [], + "biguint64": [], + "buffer":[], + "generic":[] + } + + ; + function wrappedNDArrayCtor(data, shape, stride, offset) { + if(data === undefined) { + var ctor = CACHED_CONSTRUCTORS.array[0]; + return ctor([]) + } else if(typeof data === "number") { + data = [data]; + } + if(shape === undefined) { + shape = [ data.length ]; + } + var d = shape.length; + if(stride === undefined) { + stride = new Array(d); + for(var i=d-1, sz=1; i>=0; --i) { + stride[i] = sz; + sz *= shape[i]; + } + } + if(offset === undefined) { + offset = 0; + for(var i=0; i 2 && arguments[2] !== undefined ? arguments[2] : { + includeSliceSpacing: true + }; + var toolState = brushData.toolState, + segments = brushData.segments; + + // Calculate the dimensions of the data cube. + var image0 = images[0]; + var dims = { + x: image0.columns, + y: image0.rows, + z: images.length + }; + dims.xy = dims.x * dims.y; + var numSegments = _getSegCount(seg, segments); + if (!numSegments) { + throw new Error("No segments to export!"); + } + var isMultiframe = image0.imageId.includes("?frame"); + var seg = _createSegFromImages$1(images, isMultiframe, options); + var _getNumberOfFramesPer = _getNumberOfFramesPerSegment(toolState, images, segments), + referencedFramesPerSegment = _getNumberOfFramesPer.referencedFramesPerSegment, + segmentIndicies = _getNumberOfFramesPer.segmentIndicies; + var NumberOfFrames = 0; + for (var i = 0; i < referencedFramesPerSegment.length; i++) { + NumberOfFrames += referencedFramesPerSegment[i].length; + } + seg.setNumberOfFrames(NumberOfFrames); + for (var _i = 0; _i < segmentIndicies.length; _i++) { + var segmentIndex = segmentIndicies[_i]; + var referencedFrameIndicies = referencedFramesPerSegment[_i]; + + // Frame numbers start from 1. + var referencedFrameNumbers = referencedFrameIndicies.map(function (element) { + return element + 1; + }); + var segment = segments[segmentIndex]; + seg.addSegment(segment, _extractCornerstoneToolsPixelData(segmentIndex, referencedFrameIndicies, toolState, images, dims), referencedFrameNumbers); + } + seg.bitPackPixelData(); + var segBlob = datasetToBlob(seg.dataset); + return segBlob; + } + function _extractCornerstoneToolsPixelData(segmentIndex, referencedFrames, toolState, images, dims) { + var pixelData = new Uint8Array(dims.xy * referencedFrames.length); + var pixelDataIndex = 0; + for (var i = 0; i < referencedFrames.length; i++) { + var frame = referencedFrames[i]; + var imageId = images[frame].imageId; + var imageIdSpecificToolState = toolState[imageId]; + var brushPixelData = imageIdSpecificToolState.brush.data[segmentIndex].pixelData; + for (var p = 0; p < brushPixelData.length; p++) { + pixelData[pixelDataIndex] = brushPixelData[p]; + pixelDataIndex++; + } + } + return pixelData; + } + function _getNumberOfFramesPerSegment(toolState, images, segments) { + var segmentIndicies = []; + var referencedFramesPerSegment = []; + for (var i = 0; i < segments.length; i++) { + if (segments[i]) { + segmentIndicies.push(i); + referencedFramesPerSegment.push([]); + } + } + for (var z = 0; z < images.length; z++) { + var imageId = images[z].imageId; + var imageIdSpecificToolState = toolState[imageId]; + for (var _i2 = 0; _i2 < segmentIndicies.length; _i2++) { + var segIdx = segmentIndicies[_i2]; + if (imageIdSpecificToolState && imageIdSpecificToolState.brush && imageIdSpecificToolState.brush.data && imageIdSpecificToolState.brush.data[segIdx] && imageIdSpecificToolState.brush.data[segIdx].pixelData) { + referencedFramesPerSegment[_i2].push(z); + } + } + } + return { + referencedFramesPerSegment: referencedFramesPerSegment, + segmentIndicies: segmentIndicies + }; + } + function _getSegCount(seg, segments) { + var numSegments = 0; + for (var i = 0; i < segments.length; i++) { + if (segments[i]) { + numSegments++; + } + } + return numSegments; + } + + /** + * _createSegFromImages - description + * + * @param {Object[]} images An array of the cornerstone image objects. + * @param {Boolean} isMultiframe Whether the images are multiframe. + * @returns {Object} The Seg derived dataSet. + */ + function _createSegFromImages$1(images, isMultiframe, options) { + var datasets = []; + if (isMultiframe) { + var image = images[0]; + var arrayBuffer = image.data.byteArray.buffer; + var dicomData = DicomMessage.readFile(arrayBuffer); + var dataset = DicomMetaDictionary.naturalizeDataset(dicomData.dict); + dataset._meta = DicomMetaDictionary.namifyDataset(dicomData.meta); + datasets.push(dataset); + } else { + for (var i = 0; i < images.length; i++) { + var _image = images[i]; + var _arrayBuffer = _image.data.byteArray.buffer; + var _dicomData = DicomMessage.readFile(_arrayBuffer); + var _dataset = DicomMetaDictionary.naturalizeDataset(_dicomData.dict); + _dataset._meta = DicomMetaDictionary.namifyDataset(_dicomData.meta); + datasets.push(_dataset); + } + } + var multiframe = Normalizer.normalizeToDataset(datasets); + return new Segmentation$4([multiframe], options); + } + + /** + * generateToolState - Given a set of cornrstoneTools imageIds and a Segmentation buffer, + * derive cornerstoneTools toolState and brush metadata. + * + * @param {string[]} imageIds An array of the imageIds. + * @param {ArrayBuffer} arrayBuffer The SEG arrayBuffer. + * @param {*} metadataProvider + * @returns {Object} The toolState and an object from which the + * segment metadata can be derived. + */ + function generateToolState$2(imageIds, arrayBuffer, metadataProvider) { + var dicomData = DicomMessage.readFile(arrayBuffer); + var dataset = DicomMetaDictionary.naturalizeDataset(dicomData.dict); + dataset._meta = DicomMetaDictionary.namifyDataset(dicomData.meta); + var multiframe = Normalizer.normalizeToDataset([dataset]); + var imagePlaneModule = metadataProvider.get("imagePlaneModule", imageIds[0]); + if (!imagePlaneModule) { + console.warn("Insufficient metadata, imagePlaneModule missing."); + } + var ImageOrientationPatient = Array.isArray(imagePlaneModule.rowCosines) ? [].concat(_toConsumableArray(imagePlaneModule.rowCosines), _toConsumableArray(imagePlaneModule.columnCosines)) : [imagePlaneModule.rowCosines.x, imagePlaneModule.rowCosines.y, imagePlaneModule.rowCosines.z, imagePlaneModule.columnCosines.x, imagePlaneModule.columnCosines.y, imagePlaneModule.columnCosines.z]; + + // Get IOP from ref series, compute supported orientations: + var validOrientations = getValidOrientations$1(ImageOrientationPatient); + var SharedFunctionalGroupsSequence = multiframe.SharedFunctionalGroupsSequence; + var sharedImageOrientationPatient = SharedFunctionalGroupsSequence.PlaneOrientationSequence ? SharedFunctionalGroupsSequence.PlaneOrientationSequence.ImageOrientationPatient : undefined; + var sliceLength = multiframe.Columns * multiframe.Rows; + var segMetadata = getSegmentMetadata$1(multiframe); + var pixelData = unpackPixelData$1(multiframe); + var PerFrameFunctionalGroupsSequence = multiframe.PerFrameFunctionalGroupsSequence; + var toolState = {}; + var inPlane = true; + for (var i = 0; i < PerFrameFunctionalGroupsSequence.length; i++) { + var PerFrameFunctionalGroups = PerFrameFunctionalGroupsSequence[i]; + var ImageOrientationPatientI = sharedImageOrientationPatient || PerFrameFunctionalGroups.PlaneOrientationSequence.ImageOrientationPatient; + var pixelDataI2D = ndarray$1(new Uint8Array(pixelData.buffer, i * sliceLength, sliceLength), [multiframe.Rows, multiframe.Columns]); + var alignedPixelDataI = alignPixelDataWithSourceData$1(pixelDataI2D, ImageOrientationPatientI, validOrientations); + if (!alignedPixelDataI) { + console.warn("This segmentation object is not in-plane with the source data. Bailing out of IO. It'd be better to render this with vtkjs. "); + inPlane = false; + break; + } + var segmentIndex = PerFrameFunctionalGroups.SegmentIdentificationSequence.ReferencedSegmentNumber - 1; + var SourceImageSequence = void 0; + if (SharedFunctionalGroupsSequence.DerivationImageSequence && SharedFunctionalGroupsSequence.DerivationImageSequence.SourceImageSequence) { + SourceImageSequence = SharedFunctionalGroupsSequence.DerivationImageSequence.SourceImageSequence[i]; + } else { + SourceImageSequence = PerFrameFunctionalGroups.DerivationImageSequence.SourceImageSequence; + } + var imageId = getImageIdOfSourceImage(SourceImageSequence, imageIds, metadataProvider); + addImageIdSpecificBrushToolState(toolState, imageId, segmentIndex, alignedPixelDataI); + } + if (!inPlane) { + return; + } + return { + toolState: toolState, + segMetadata: segMetadata + }; + } + + /** + * unpackPixelData - Unpacks bitpacked pixelData if the Segmentation is BINARY. + * + * @param {Object} multiframe The multiframe dataset. + * @return {Uint8Array} The unpacked pixelData. + */ + function unpackPixelData$1(multiframe) { + var segType = multiframe.SegmentationType; + if (segType === "BINARY") { + return BitArray.unpack(multiframe.PixelData); + } + var pixelData = new Uint8Array(multiframe.PixelData); + var max = multiframe.MaximumFractionalValue; + var onlyMaxAndZero = pixelData.find(function (element) { + return element !== 0 && element !== max; + }) === undefined; + if (!onlyMaxAndZero) { + log.warn("This is a fractional segmentation, which is not currently supported."); + return; + } + log.warn("This segmentation object is actually binary... processing as such."); + return pixelData; + } + + /** + * addImageIdSpecificBrushToolState - Adds brush pixel data to cornerstoneTools + * formatted toolState object. + * + * @param {Object} toolState The toolState object to modify + * @param {String} imageId The imageId of the toolState to add the data. + * @param {Number} segmentIndex The index of the segment data being added. + * @param {Ndarray} pixelData2D The pixelData in Ndarry 2D format. + */ + function addImageIdSpecificBrushToolState(toolState, imageId, segmentIndex, pixelData2D) { + if (!toolState[imageId]) { + toolState[imageId] = {}; + toolState[imageId].brush = {}; + toolState[imageId].brush.data = []; + } else if (!toolState[imageId].brush) { + toolState[imageId].brush = {}; + toolState[imageId].brush.data = []; + } else if (!toolState[imageId].brush.data) { + toolState[imageId].brush.data = []; + } + toolState[imageId].brush.data[segmentIndex] = {}; + var brushDataI = toolState[imageId].brush.data[segmentIndex]; + brushDataI.pixelData = new Uint8Array(pixelData2D.data.length); + var cToolsPixelData = brushDataI.pixelData; + var _pixelData2D$shape = _slicedToArray(pixelData2D.shape, 2); + _pixelData2D$shape[0]; + _pixelData2D$shape[1]; + for (var p = 0; p < cToolsPixelData.length; p++) { + if (pixelData2D.data[p]) { + cToolsPixelData[p] = 1; + } else { + cToolsPixelData[p] = 0; + } + } + } + + /** + * getImageIdOfSourceImage - Returns the Cornerstone imageId of the source image. + * + * @param {Object} SourceImageSequence Sequence describing the source image. + * @param {String[]} imageIds A list of imageIds. + * @param {Object} metadataProvider A Cornerstone metadataProvider to query + * metadata from imageIds. + * @return {String} The corresponding imageId. + */ + function getImageIdOfSourceImage(SourceImageSequence, imageIds, metadataProvider) { + var ReferencedSOPInstanceUID = SourceImageSequence.ReferencedSOPInstanceUID, + ReferencedFrameNumber = SourceImageSequence.ReferencedFrameNumber; + return ReferencedFrameNumber ? getImageIdOfReferencedFrame$1(ReferencedSOPInstanceUID, ReferencedFrameNumber, imageIds, metadataProvider) : getImageIdOfReferencedSingleFramedSOPInstance$1(ReferencedSOPInstanceUID, imageIds, metadataProvider); + } + + /** + * getImageIdOfReferencedSingleFramedSOPInstance - Returns the imageId + * corresponding to the specified sopInstanceUid for single-frame images. + * + * @param {String} sopInstanceUid The sopInstanceUid of the desired image. + * @param {String[]} imageIds The list of imageIds. + * @param {Object} metadataProvider The metadataProvider to obtain sopInstanceUids + * from the cornerstone imageIds. + * @return {String} The imageId that corresponds to the sopInstanceUid. + */ + function getImageIdOfReferencedSingleFramedSOPInstance$1(sopInstanceUid, imageIds, metadataProvider) { + return imageIds.find(function (imageId) { + var sopCommonModule = metadataProvider.get("sopCommonModule", imageId); + if (!sopCommonModule) { + return; + } + return sopCommonModule.sopInstanceUID === sopInstanceUid; + }); + } + + /** + * getImageIdOfReferencedFrame - Returns the imageId corresponding to the + * specified sopInstanceUid and frameNumber for multi-frame images. + * + * @param {String} sopInstanceUid The sopInstanceUid of the desired image. + * @param {Number} frameNumber The frame number. + * @param {String} imageIds The list of imageIds. + * @param {Object} metadataProvider The metadataProvider to obtain sopInstanceUids + * from the cornerstone imageIds. + * @return {String} The imageId that corresponds to the sopInstanceUid. + */ + function getImageIdOfReferencedFrame$1(sopInstanceUid, frameNumber, imageIds, metadataProvider) { + var imageId = imageIds.find(function (imageId) { + var sopCommonModule = metadataProvider.get("sopCommonModule", imageId); + if (!sopCommonModule) { + return; + } + var imageIdFrameNumber = Number(imageId.split("frame=")[1]); + return ( + //frameNumber is zero indexed for cornerstoneWADOImageLoader image Ids. + sopCommonModule.sopInstanceUID === sopInstanceUid && imageIdFrameNumber === frameNumber - 1 + ); + }); + return imageId; + } + + /** + * getValidOrientations - returns an array of valid orientations. + * + * @param {Number[6]} iop The row (0..2) an column (3..5) direction cosines. + * @return {Number[8][6]} An array of valid orientations. + */ + function getValidOrientations$1(iop) { + var orientations = []; + + // [0, 1, 2]: 0, 0hf, 0vf + // [3, 4, 5]: 90, 90hf, 90vf + // [6, 7]: 180, 270 + + orientations[0] = iop; + orientations[1] = flipImageOrientationPatient.h(iop); + orientations[2] = flipImageOrientationPatient.v(iop); + var iop90 = rotateDirectionCosinesInPlane(iop, Math.PI / 2); + orientations[3] = iop90; + orientations[4] = flipImageOrientationPatient.h(iop90); + orientations[5] = flipImageOrientationPatient.v(iop90); + orientations[6] = rotateDirectionCosinesInPlane(iop, Math.PI); + orientations[7] = rotateDirectionCosinesInPlane(iop, 1.5 * Math.PI); + return orientations; + } + + /** + * alignPixelDataWithSourceData - + * + * @param {Ndarray} pixelData2D The data to align. + * @param {Number[6]} iop The orientation of the image slice. + * @param {Number[8][6]} orientations An array of valid imageOrientationPatient values. + * @return {Ndarray} The aligned pixelData. + */ + function alignPixelDataWithSourceData$1(pixelData2D, iop, orientations) { + if (compareIOP(iop, orientations[0])) { + //Same orientation. + return pixelData2D; + } else if (compareIOP(iop, orientations[1])) { + //Flipped vertically. + return flipMatrix2D.v(pixelData2D); + } else if (compareIOP(iop, orientations[2])) { + //Flipped horizontally. + return flipMatrix2D.h(pixelData2D); + } else if (compareIOP(iop, orientations[3])) { + //Rotated 90 degrees. + return rotateMatrix902D(pixelData2D); + } else if (compareIOP(iop, orientations[4])) { + //Rotated 90 degrees and fliped horizontally. + return flipMatrix2D.h(rotateMatrix902D(pixelData2D)); + } else if (compareIOP(iop, orientations[5])) { + //Rotated 90 degrees and fliped vertically. + return flipMatrix2D.v(rotateMatrix902D(pixelData2D)); + } else if (compareIOP(iop, orientations[6])) { + //Rotated 180 degrees. // TODO -> Do this more effeciently, there is a 1:1 mapping like 90 degree rotation. + return rotateMatrix902D(rotateMatrix902D(pixelData2D)); + } else if (compareIOP(iop, orientations[7])) { + //Rotated 270 degrees. // TODO -> Do this more effeciently, there is a 1:1 mapping like 90 degree rotation. + return rotateMatrix902D(rotateMatrix902D(rotateMatrix902D(pixelData2D))); + } + } + var dx = 1e-5; + + /** + * compareIOP - Returns true if iop1 and iop2 are equal + * within a tollerance, dx. + * + * @param {Number[6]} iop1 An ImageOrientationPatient array. + * @param {Number[6]} iop2 An ImageOrientationPatient array. + * @return {Boolean} True if iop1 and iop2 are equal. + */ + function compareIOP(iop1, iop2) { + return Math.abs(iop1[0] - iop2[0]) < dx && Math.abs(iop1[1] - iop2[1]) < dx && Math.abs(iop1[2] - iop2[2]) < dx && Math.abs(iop1[3] - iop2[3]) < dx && Math.abs(iop1[4] - iop2[4]) < dx && Math.abs(iop1[5] - iop2[5]) < dx; + } + function getSegmentMetadata$1(multiframe) { + var data = []; + var segmentSequence = multiframe.SegmentSequence; + if (Array.isArray(segmentSequence)) { + for (var segIdx = 0; segIdx < segmentSequence.length; segIdx++) { + data.push(segmentSequence[segIdx]); + } + } else { + // Only one segment, will be stored as an object. + data.push(segmentSequence); + } + return { + seriesInstanceUid: multiframe.ReferencedSeriesSequence.SeriesInstanceUID, + data: data + }; + } + + /** + * Common utilities + * @module glMatrix + */ + // Configuration Constants + var EPSILON$1 = 0.000001; + var ARRAY_TYPE = typeof Float32Array !== 'undefined' ? Float32Array : Array; + var RANDOM = Math.random; + if (!Math.hypot) Math.hypot = function () { + var y = 0, + i = arguments.length; + + while (i--) { + y += arguments[i] * arguments[i]; + } + + return Math.sqrt(y); + }; + + /** + * 3 Dimensional Vector + * @module vec3 + */ + + /** + * Creates a new, empty vec3 + * + * @returns {vec3} a new 3D vector + */ + + function create() { + var out = new ARRAY_TYPE(3); + + if (ARRAY_TYPE != Float32Array) { + out[0] = 0; + out[1] = 0; + out[2] = 0; + } + + return out; + } + /** + * Creates a new vec3 initialized with values from an existing vector + * + * @param {ReadonlyVec3} a vector to clone + * @returns {vec3} a new 3D vector + */ + + function clone(a) { + var out = new ARRAY_TYPE(3); + out[0] = a[0]; + out[1] = a[1]; + out[2] = a[2]; + return out; + } + /** + * Calculates the length of a vec3 + * + * @param {ReadonlyVec3} a vector to calculate length of + * @returns {Number} length of a + */ + + function length(a) { + var x = a[0]; + var y = a[1]; + var z = a[2]; + return Math.hypot(x, y, z); + } + /** + * Creates a new vec3 initialized with the given values + * + * @param {Number} x X component + * @param {Number} y Y component + * @param {Number} z Z component + * @returns {vec3} a new 3D vector + */ + + function fromValues(x, y, z) { + var out = new ARRAY_TYPE(3); + out[0] = x; + out[1] = y; + out[2] = z; + return out; + } + /** + * Copy the values from one vec3 to another + * + * @param {vec3} out the receiving vector + * @param {ReadonlyVec3} a the source vector + * @returns {vec3} out + */ + + function copy(out, a) { + out[0] = a[0]; + out[1] = a[1]; + out[2] = a[2]; + return out; + } + /** + * Set the components of a vec3 to the given values + * + * @param {vec3} out the receiving vector + * @param {Number} x X component + * @param {Number} y Y component + * @param {Number} z Z component + * @returns {vec3} out + */ + + function set(out, x, y, z) { + out[0] = x; + out[1] = y; + out[2] = z; + return out; + } + /** + * Adds two vec3's + * + * @param {vec3} out the receiving vector + * @param {ReadonlyVec3} a the first operand + * @param {ReadonlyVec3} b the second operand + * @returns {vec3} out + */ + + function add(out, a, b) { + out[0] = a[0] + b[0]; + out[1] = a[1] + b[1]; + out[2] = a[2] + b[2]; + return out; + } + /** + * Subtracts vector b from vector a + * + * @param {vec3} out the receiving vector + * @param {ReadonlyVec3} a the first operand + * @param {ReadonlyVec3} b the second operand + * @returns {vec3} out + */ + + function subtract$1(out, a, b) { + out[0] = a[0] - b[0]; + out[1] = a[1] - b[1]; + out[2] = a[2] - b[2]; + return out; + } + /** + * Multiplies two vec3's + * + * @param {vec3} out the receiving vector + * @param {ReadonlyVec3} a the first operand + * @param {ReadonlyVec3} b the second operand + * @returns {vec3} out + */ + + function multiply(out, a, b) { + out[0] = a[0] * b[0]; + out[1] = a[1] * b[1]; + out[2] = a[2] * b[2]; + return out; + } + /** + * Divides two vec3's + * + * @param {vec3} out the receiving vector + * @param {ReadonlyVec3} a the first operand + * @param {ReadonlyVec3} b the second operand + * @returns {vec3} out + */ + + function divide(out, a, b) { + out[0] = a[0] / b[0]; + out[1] = a[1] / b[1]; + out[2] = a[2] / b[2]; + return out; + } + /** + * Math.ceil the components of a vec3 + * + * @param {vec3} out the receiving vector + * @param {ReadonlyVec3} a vector to ceil + * @returns {vec3} out + */ + + function ceil(out, a) { + out[0] = Math.ceil(a[0]); + out[1] = Math.ceil(a[1]); + out[2] = Math.ceil(a[2]); + return out; + } + /** + * Math.floor the components of a vec3 + * + * @param {vec3} out the receiving vector + * @param {ReadonlyVec3} a vector to floor + * @returns {vec3} out + */ + + function floor(out, a) { + out[0] = Math.floor(a[0]); + out[1] = Math.floor(a[1]); + out[2] = Math.floor(a[2]); + return out; + } + /** + * Returns the minimum of two vec3's + * + * @param {vec3} out the receiving vector + * @param {ReadonlyVec3} a the first operand + * @param {ReadonlyVec3} b the second operand + * @returns {vec3} out + */ + + function min(out, a, b) { + out[0] = Math.min(a[0], b[0]); + out[1] = Math.min(a[1], b[1]); + out[2] = Math.min(a[2], b[2]); + return out; + } + /** + * Returns the maximum of two vec3's + * + * @param {vec3} out the receiving vector + * @param {ReadonlyVec3} a the first operand + * @param {ReadonlyVec3} b the second operand + * @returns {vec3} out + */ + + function max(out, a, b) { + out[0] = Math.max(a[0], b[0]); + out[1] = Math.max(a[1], b[1]); + out[2] = Math.max(a[2], b[2]); + return out; + } + /** + * Math.round the components of a vec3 + * + * @param {vec3} out the receiving vector + * @param {ReadonlyVec3} a vector to round + * @returns {vec3} out + */ + + function round(out, a) { + out[0] = Math.round(a[0]); + out[1] = Math.round(a[1]); + out[2] = Math.round(a[2]); + return out; + } + /** + * Scales a vec3 by a scalar number + * + * @param {vec3} out the receiving vector + * @param {ReadonlyVec3} a the vector to scale + * @param {Number} b amount to scale the vector by + * @returns {vec3} out + */ + + function scale(out, a, b) { + out[0] = a[0] * b; + out[1] = a[1] * b; + out[2] = a[2] * b; + return out; + } + /** + * Adds two vec3's after scaling the second operand by a scalar value + * + * @param {vec3} out the receiving vector + * @param {ReadonlyVec3} a the first operand + * @param {ReadonlyVec3} b the second operand + * @param {Number} scale the amount to scale b by before adding + * @returns {vec3} out + */ + + function scaleAndAdd(out, a, b, scale) { + out[0] = a[0] + b[0] * scale; + out[1] = a[1] + b[1] * scale; + out[2] = a[2] + b[2] * scale; + return out; + } + /** + * Calculates the euclidian distance between two vec3's + * + * @param {ReadonlyVec3} a the first operand + * @param {ReadonlyVec3} b the second operand + * @returns {Number} distance between a and b + */ + + function distance(a, b) { + var x = b[0] - a[0]; + var y = b[1] - a[1]; + var z = b[2] - a[2]; + return Math.hypot(x, y, z); + } + /** + * Calculates the squared euclidian distance between two vec3's + * + * @param {ReadonlyVec3} a the first operand + * @param {ReadonlyVec3} b the second operand + * @returns {Number} squared distance between a and b + */ + + function squaredDistance(a, b) { + var x = b[0] - a[0]; + var y = b[1] - a[1]; + var z = b[2] - a[2]; + return x * x + y * y + z * z; + } + /** + * Calculates the squared length of a vec3 + * + * @param {ReadonlyVec3} a vector to calculate squared length of + * @returns {Number} squared length of a + */ + + function squaredLength(a) { + var x = a[0]; + var y = a[1]; + var z = a[2]; + return x * x + y * y + z * z; + } + /** + * Negates the components of a vec3 + * + * @param {vec3} out the receiving vector + * @param {ReadonlyVec3} a vector to negate + * @returns {vec3} out + */ + + function negate(out, a) { + out[0] = -a[0]; + out[1] = -a[1]; + out[2] = -a[2]; + return out; + } + /** + * Returns the inverse of the components of a vec3 + * + * @param {vec3} out the receiving vector + * @param {ReadonlyVec3} a vector to invert + * @returns {vec3} out + */ + + function inverse(out, a) { + out[0] = 1.0 / a[0]; + out[1] = 1.0 / a[1]; + out[2] = 1.0 / a[2]; + return out; + } + /** + * Normalize a vec3 + * + * @param {vec3} out the receiving vector + * @param {ReadonlyVec3} a vector to normalize + * @returns {vec3} out + */ + + function normalize$1(out, a) { + var x = a[0]; + var y = a[1]; + var z = a[2]; + var len = x * x + y * y + z * z; + + if (len > 0) { + //TODO: evaluate use of glm_invsqrt here? + len = 1 / Math.sqrt(len); + } + + out[0] = a[0] * len; + out[1] = a[1] * len; + out[2] = a[2] * len; + return out; + } + /** + * Calculates the dot product of two vec3's + * + * @param {ReadonlyVec3} a the first operand + * @param {ReadonlyVec3} b the second operand + * @returns {Number} dot product of a and b + */ + + function dot(a, b) { + return a[0] * b[0] + a[1] * b[1] + a[2] * b[2]; + } + /** + * Computes the cross product of two vec3's + * + * @param {vec3} out the receiving vector + * @param {ReadonlyVec3} a the first operand + * @param {ReadonlyVec3} b the second operand + * @returns {vec3} out + */ + + function cross$1(out, a, b) { + var ax = a[0], + ay = a[1], + az = a[2]; + var bx = b[0], + by = b[1], + bz = b[2]; + out[0] = ay * bz - az * by; + out[1] = az * bx - ax * bz; + out[2] = ax * by - ay * bx; + return out; + } + /** + * Performs a linear interpolation between two vec3's + * + * @param {vec3} out the receiving vector + * @param {ReadonlyVec3} a the first operand + * @param {ReadonlyVec3} b the second operand + * @param {Number} t interpolation amount, in the range [0-1], between the two inputs + * @returns {vec3} out + */ + + function lerp(out, a, b, t) { + var ax = a[0]; + var ay = a[1]; + var az = a[2]; + out[0] = ax + t * (b[0] - ax); + out[1] = ay + t * (b[1] - ay); + out[2] = az + t * (b[2] - az); + return out; + } + /** + * Performs a hermite interpolation with two control points + * + * @param {vec3} out the receiving vector + * @param {ReadonlyVec3} a the first operand + * @param {ReadonlyVec3} b the second operand + * @param {ReadonlyVec3} c the third operand + * @param {ReadonlyVec3} d the fourth operand + * @param {Number} t interpolation amount, in the range [0-1], between the two inputs + * @returns {vec3} out + */ + + function hermite(out, a, b, c, d, t) { + var factorTimes2 = t * t; + var factor1 = factorTimes2 * (2 * t - 3) + 1; + var factor2 = factorTimes2 * (t - 2) + t; + var factor3 = factorTimes2 * (t - 1); + var factor4 = factorTimes2 * (3 - 2 * t); + out[0] = a[0] * factor1 + b[0] * factor2 + c[0] * factor3 + d[0] * factor4; + out[1] = a[1] * factor1 + b[1] * factor2 + c[1] * factor3 + d[1] * factor4; + out[2] = a[2] * factor1 + b[2] * factor2 + c[2] * factor3 + d[2] * factor4; + return out; + } + /** + * Performs a bezier interpolation with two control points + * + * @param {vec3} out the receiving vector + * @param {ReadonlyVec3} a the first operand + * @param {ReadonlyVec3} b the second operand + * @param {ReadonlyVec3} c the third operand + * @param {ReadonlyVec3} d the fourth operand + * @param {Number} t interpolation amount, in the range [0-1], between the two inputs + * @returns {vec3} out + */ + + function bezier(out, a, b, c, d, t) { + var inverseFactor = 1 - t; + var inverseFactorTimesTwo = inverseFactor * inverseFactor; + var factorTimes2 = t * t; + var factor1 = inverseFactorTimesTwo * inverseFactor; + var factor2 = 3 * t * inverseFactorTimesTwo; + var factor3 = 3 * factorTimes2 * inverseFactor; + var factor4 = factorTimes2 * t; + out[0] = a[0] * factor1 + b[0] * factor2 + c[0] * factor3 + d[0] * factor4; + out[1] = a[1] * factor1 + b[1] * factor2 + c[1] * factor3 + d[1] * factor4; + out[2] = a[2] * factor1 + b[2] * factor2 + c[2] * factor3 + d[2] * factor4; + return out; + } + /** + * Generates a random vector with the given scale + * + * @param {vec3} out the receiving vector + * @param {Number} [scale] Length of the resulting vector. If ommitted, a unit vector will be returned + * @returns {vec3} out + */ + + function random(out, scale) { + scale = scale || 1.0; + var r = RANDOM() * 2.0 * Math.PI; + var z = RANDOM() * 2.0 - 1.0; + var zScale = Math.sqrt(1.0 - z * z) * scale; + out[0] = Math.cos(r) * zScale; + out[1] = Math.sin(r) * zScale; + out[2] = z * scale; + return out; + } + /** + * Transforms the vec3 with a mat4. + * 4th vector component is implicitly '1' + * + * @param {vec3} out the receiving vector + * @param {ReadonlyVec3} a the vector to transform + * @param {ReadonlyMat4} m matrix to transform with + * @returns {vec3} out + */ + + function transformMat4(out, a, m) { + var x = a[0], + y = a[1], + z = a[2]; + var w = m[3] * x + m[7] * y + m[11] * z + m[15]; + w = w || 1.0; + out[0] = (m[0] * x + m[4] * y + m[8] * z + m[12]) / w; + out[1] = (m[1] * x + m[5] * y + m[9] * z + m[13]) / w; + out[2] = (m[2] * x + m[6] * y + m[10] * z + m[14]) / w; + return out; + } + /** + * Transforms the vec3 with a mat3. + * + * @param {vec3} out the receiving vector + * @param {ReadonlyVec3} a the vector to transform + * @param {ReadonlyMat3} m the 3x3 matrix to transform with + * @returns {vec3} out + */ + + function transformMat3(out, a, m) { + var x = a[0], + y = a[1], + z = a[2]; + out[0] = x * m[0] + y * m[3] + z * m[6]; + out[1] = x * m[1] + y * m[4] + z * m[7]; + out[2] = x * m[2] + y * m[5] + z * m[8]; + return out; + } + /** + * Transforms the vec3 with a quat + * Can also be used for dual quaternions. (Multiply it with the real part) + * + * @param {vec3} out the receiving vector + * @param {ReadonlyVec3} a the vector to transform + * @param {ReadonlyQuat} q quaternion to transform with + * @returns {vec3} out + */ + + function transformQuat(out, a, q) { + // benchmarks: https://jsperf.com/quaternion-transform-vec3-implementations-fixed + var qx = q[0], + qy = q[1], + qz = q[2], + qw = q[3]; + var x = a[0], + y = a[1], + z = a[2]; // var qvec = [qx, qy, qz]; + // var uv = vec3.cross([], qvec, a); + + var uvx = qy * z - qz * y, + uvy = qz * x - qx * z, + uvz = qx * y - qy * x; // var uuv = vec3.cross([], qvec, uv); + + var uuvx = qy * uvz - qz * uvy, + uuvy = qz * uvx - qx * uvz, + uuvz = qx * uvy - qy * uvx; // vec3.scale(uv, uv, 2 * w); + + var w2 = qw * 2; + uvx *= w2; + uvy *= w2; + uvz *= w2; // vec3.scale(uuv, uuv, 2); + + uuvx *= 2; + uuvy *= 2; + uuvz *= 2; // return vec3.add(out, a, vec3.add(out, uv, uuv)); + + out[0] = x + uvx + uuvx; + out[1] = y + uvy + uuvy; + out[2] = z + uvz + uuvz; + return out; + } + /** + * Rotate a 3D vector around the x-axis + * @param {vec3} out The receiving vec3 + * @param {ReadonlyVec3} a The vec3 point to rotate + * @param {ReadonlyVec3} b The origin of the rotation + * @param {Number} rad The angle of rotation in radians + * @returns {vec3} out + */ + + function rotateX(out, a, b, rad) { + var p = [], + r = []; //Translate point to the origin + + p[0] = a[0] - b[0]; + p[1] = a[1] - b[1]; + p[2] = a[2] - b[2]; //perform rotation + + r[0] = p[0]; + r[1] = p[1] * Math.cos(rad) - p[2] * Math.sin(rad); + r[2] = p[1] * Math.sin(rad) + p[2] * Math.cos(rad); //translate to correct position + + out[0] = r[0] + b[0]; + out[1] = r[1] + b[1]; + out[2] = r[2] + b[2]; + return out; + } + /** + * Rotate a 3D vector around the y-axis + * @param {vec3} out The receiving vec3 + * @param {ReadonlyVec3} a The vec3 point to rotate + * @param {ReadonlyVec3} b The origin of the rotation + * @param {Number} rad The angle of rotation in radians + * @returns {vec3} out + */ + + function rotateY(out, a, b, rad) { + var p = [], + r = []; //Translate point to the origin + + p[0] = a[0] - b[0]; + p[1] = a[1] - b[1]; + p[2] = a[2] - b[2]; //perform rotation + + r[0] = p[2] * Math.sin(rad) + p[0] * Math.cos(rad); + r[1] = p[1]; + r[2] = p[2] * Math.cos(rad) - p[0] * Math.sin(rad); //translate to correct position + + out[0] = r[0] + b[0]; + out[1] = r[1] + b[1]; + out[2] = r[2] + b[2]; + return out; + } + /** + * Rotate a 3D vector around the z-axis + * @param {vec3} out The receiving vec3 + * @param {ReadonlyVec3} a The vec3 point to rotate + * @param {ReadonlyVec3} b The origin of the rotation + * @param {Number} rad The angle of rotation in radians + * @returns {vec3} out + */ + + function rotateZ(out, a, b, rad) { + var p = [], + r = []; //Translate point to the origin + + p[0] = a[0] - b[0]; + p[1] = a[1] - b[1]; + p[2] = a[2] - b[2]; //perform rotation + + r[0] = p[0] * Math.cos(rad) - p[1] * Math.sin(rad); + r[1] = p[0] * Math.sin(rad) + p[1] * Math.cos(rad); + r[2] = p[2]; //translate to correct position + + out[0] = r[0] + b[0]; + out[1] = r[1] + b[1]; + out[2] = r[2] + b[2]; + return out; + } + /** + * Get the angle between two 3D vectors + * @param {ReadonlyVec3} a The first operand + * @param {ReadonlyVec3} b The second operand + * @returns {Number} The angle in radians + */ + + function angle(a, b) { + var ax = a[0], + ay = a[1], + az = a[2], + bx = b[0], + by = b[1], + bz = b[2], + mag1 = Math.sqrt(ax * ax + ay * ay + az * az), + mag2 = Math.sqrt(bx * bx + by * by + bz * bz), + mag = mag1 * mag2, + cosine = mag && dot(a, b) / mag; + return Math.acos(Math.min(Math.max(cosine, -1), 1)); + } + /** + * Set the components of a vec3 to zero + * + * @param {vec3} out the receiving vector + * @returns {vec3} out + */ + + function zero(out) { + out[0] = 0.0; + out[1] = 0.0; + out[2] = 0.0; + return out; + } + /** + * Returns a string representation of a vector + * + * @param {ReadonlyVec3} a vector to represent as a string + * @returns {String} string representation of the vector + */ + + function str(a) { + return "vec3(" + a[0] + ", " + a[1] + ", " + a[2] + ")"; + } + /** + * Returns whether or not the vectors have exactly the same elements in the same position (when compared with ===) + * + * @param {ReadonlyVec3} a The first vector. + * @param {ReadonlyVec3} b The second vector. + * @returns {Boolean} True if the vectors are equal, false otherwise. + */ + + function exactEquals(a, b) { + return a[0] === b[0] && a[1] === b[1] && a[2] === b[2]; + } + /** + * Returns whether or not the vectors have approximately the same elements in the same position. + * + * @param {ReadonlyVec3} a The first vector. + * @param {ReadonlyVec3} b The second vector. + * @returns {Boolean} True if the vectors are equal, false otherwise. + */ + + function equals(a, b) { + var a0 = a[0], + a1 = a[1], + a2 = a[2]; + var b0 = b[0], + b1 = b[1], + b2 = b[2]; + return Math.abs(a0 - b0) <= EPSILON$1 * Math.max(1.0, Math.abs(a0), Math.abs(b0)) && Math.abs(a1 - b1) <= EPSILON$1 * Math.max(1.0, Math.abs(a1), Math.abs(b1)) && Math.abs(a2 - b2) <= EPSILON$1 * Math.max(1.0, Math.abs(a2), Math.abs(b2)); + } + /** + * Alias for {@link vec3.subtract} + * @function + */ + + var sub = subtract$1; + /** + * Alias for {@link vec3.multiply} + * @function + */ + + var mul = multiply; + /** + * Alias for {@link vec3.divide} + * @function + */ + + var div = divide; + /** + * Alias for {@link vec3.distance} + * @function + */ + + var dist = distance; + /** + * Alias for {@link vec3.squaredDistance} + * @function + */ + + var sqrDist = squaredDistance; + /** + * Alias for {@link vec3.length} + * @function + */ + + var len = length; + /** + * Alias for {@link vec3.squaredLength} + * @function + */ + + var sqrLen = squaredLength; + /** + * Perform some operation over an array of vec3s. + * + * @param {Array} a the array of vectors to iterate over + * @param {Number} stride Number of elements between the start of each vec3. If 0 assumes tightly packed + * @param {Number} offset Number of elements to skip at the beginning of the array + * @param {Number} count Number of vec3s to iterate over. If 0 iterates over entire array + * @param {Function} fn Function to call for each vector in the array + * @param {Object} [arg] additional argument to pass to fn + * @returns {Array} a + * @function + */ + + var forEach = function () { + var vec = create(); + return function (a, stride, offset, count, fn, arg) { + var i, l; + + if (!stride) { + stride = 3; + } + + if (!offset) { + offset = 0; + } + + if (count) { + l = Math.min(count * stride + offset, a.length); + } else { + l = a.length; + } + + for (i = offset; i < l; i += stride) { + vec[0] = a[i]; + vec[1] = a[i + 1]; + vec[2] = a[i + 2]; + fn(vec, vec, arg); + a[i] = vec[0]; + a[i + 1] = vec[1]; + a[i + 2] = vec[2]; + } + + return a; + }; + }(); + + var vec3 = /*#__PURE__*/Object.freeze({ + __proto__: null, + add: add, + angle: angle, + bezier: bezier, + ceil: ceil, + clone: clone, + copy: copy, + create: create, + cross: cross$1, + dist: dist, + distance: distance, + div: div, + divide: divide, + dot: dot, + equals: equals, + exactEquals: exactEquals, + floor: floor, + forEach: forEach, + fromValues: fromValues, + hermite: hermite, + inverse: inverse, + len: len, + length: length, + lerp: lerp, + max: max, + min: min, + mul: mul, + multiply: multiply, + negate: negate, + normalize: normalize$1, + random: random, + rotateX: rotateX, + rotateY: rotateY, + rotateZ: rotateZ, + round: round, + scale: scale, + scaleAndAdd: scaleAndAdd, + set: set, + sqrDist: sqrDist, + sqrLen: sqrLen, + squaredDistance: squaredDistance, + squaredLength: squaredLength, + str: str, + sub: sub, + subtract: subtract$1, + transformMat3: transformMat3, + transformMat4: transformMat4, + transformQuat: transformQuat, + zero: zero + }); + + /** + * Encodes a non-bitpacked frame which has one sample per pixel. + * + * @param {*} buffer + * @param {*} numberOfFrames + * @param {*} rows + * @param {*} cols + */ + function encode(buffer, numberOfFrames, rows, cols) { + var frameLength = rows * cols; + var header = createHeader(); + var encodedFrames = []; + for (var frame = 0; frame < numberOfFrames; frame++) { + var frameOffset = frameLength * frame; + encodedFrames.push(encodeFrame(buffer, frameOffset, rows, cols, header)); + } + return encodedFrames; + } + function encodeFrame(buffer, frameOffset, rows, cols, header) { + // Add header to frame: + var rleArray = []; + for (var r = 0; r < rows; r++) { + var rowOffset = r * cols; + var uint8Row = new Uint8Array(buffer, frameOffset + rowOffset, cols); + var i = 0; + while (i < uint8Row.length) { + var literalRunLength = getLiteralRunLength(uint8Row, i); + if (literalRunLength) { + // State how many in litteral run + rleArray.push(literalRunLength - 1); + // Append litteral run. + var literalRun = uint8Row.slice(i, i + literalRunLength); + rleArray = [].concat(_toConsumableArray(rleArray), _toConsumableArray(literalRun)); + i += literalRunLength; + } + if (i >= uint8Row.length) { + break; + } + + // Next must be a replicate run. + var replicateRunLength = getReplicateRunLength(uint8Row, i); + if (replicateRunLength) { + // State how many in replicate run + rleArray.push(257 - replicateRunLength); + rleArray.push(uint8Row[i]); + i += replicateRunLength; + } + } + } + var headerLength = 64; + var bodyLength = rleArray.length % 2 === 0 ? rleArray.length : rleArray.length + 1; + var encodedFrameBuffer = new ArrayBuffer(headerLength + bodyLength); + + // Copy header into encodedFrameBuffer. + var headerView = new Uint32Array(encodedFrameBuffer, 0, 16); + for (var _i = 0; _i < headerView.length; _i++) { + headerView[_i] = header[_i]; + } + for (var _i2 = 0; _i2 < headerView.length; _i2++) { + rleArray.push(headerView[_i2]); + } + + // Copy rle data into encodedFrameBuffer. + var bodyView = new Uint8Array(encodedFrameBuffer, 64); + for (var _i3 = 0; _i3 < rleArray.length; _i3++) { + bodyView[_i3] = rleArray[_i3]; + } + return encodedFrameBuffer; + } + function createHeader() { + var headerUint32 = new Uint32Array(16); + headerUint32[0] = 1; // 1 Segment. + headerUint32[1] = 64; // Data offset is 64 bytes. + + // Return byte-array version of header: + return headerUint32; + } + function getLiteralRunLength(uint8Row, i) { + for (var l = 0; l < uint8Row.length - i; l++) { + if (uint8Row[i + l] === uint8Row[i + l + 1] && uint8Row[i + l + 1] === uint8Row[i + l + 2]) { + return l; + } + if (l === 128) { + return l; + } + } + return uint8Row.length - i; + } + function getReplicateRunLength(uint8Row, i) { + var first = uint8Row[i]; + for (var l = 1; l < uint8Row.length - i; l++) { + if (uint8Row[i + l] !== first) { + return l; + } + if (l === 128) { + return l; + } + } + return uint8Row.length - i; + } + function decode(rleEncodedFrames, rows, cols) { + var pixelData = new Uint8Array(rows * cols * rleEncodedFrames.length); + var buffer = pixelData.buffer; + var frameLength = rows * cols; + for (var i = 0; i < rleEncodedFrames.length; i++) { + var rleEncodedFrame = rleEncodedFrames[i]; + var uint8FrameView = new Uint8Array(buffer, i * frameLength, frameLength); + decodeFrame(rleEncodedFrame, uint8FrameView); + } + return pixelData; + } + function decodeFrame(rleEncodedFrame, pixelData) { + // Check HEADER: + var header = new Uint32Array(rleEncodedFrame, 0, 16); + if (header[0] !== 1) { + log.error("rleSingleSamplePerPixel only supports fragments with single Byte Segments (for rle encoded segmentation data) at the current time. This rleEncodedFrame has ".concat(header[0], " Byte Segments.")); + return; + } + if (header[1] !== 64) { + log.error("Data offset of Byte Segment 1 should be 64 bytes, this rle fragment is encoded incorrectly."); + return; + } + var uInt8Frame = new Uint8Array(rleEncodedFrame, 64); + var pixelDataIndex = 0; + var i = 0; + while (pixelDataIndex < pixelData.length) { + var byteValue = uInt8Frame[i]; + if (byteValue === undefined) { + break; + } + if (byteValue <= 127) { + // TODO -> Interpret the next N+1 bytes literally. + var N = byteValue + 1; + var next = i + 1; + + // Read the next N bytes literally. + for (var p = next; p < next + N; p++) { + pixelData[pixelDataIndex] = uInt8Frame[p]; + pixelDataIndex++; + } + i += N + 1; + } + if (byteValue >= 129) { + var _N = 257 - byteValue; + var _next = i + 1; + + // Repeat the next byte N times. + for (var _p = 0; _p < _N; _p++) { + pixelData[pixelDataIndex] = uInt8Frame[_next]; + pixelDataIndex++; + } + i += 2; + } + if (i === uInt8Frame.length) { + break; + } + } + } + + var compression = /*#__PURE__*/Object.freeze({ + __proto__: null, + decode: decode, + encode: encode + }); + + var lodash_clonedeep = {exports: {}}; + + /** + * lodash (Custom Build) + * Build: `lodash modularize exports="npm" -o ./` + * Copyright jQuery Foundation and other contributors + * Released under MIT license + * Based on Underscore.js 1.8.3 + * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + */ + lodash_clonedeep.exports; + + (function (module, exports) { + /** Used as the size to enable large array optimizations. */ + var LARGE_ARRAY_SIZE = 200; + + /** Used to stand-in for `undefined` hash values. */ + var HASH_UNDEFINED = '__lodash_hash_undefined__'; + + /** Used as references for various `Number` constants. */ + var MAX_SAFE_INTEGER = 9007199254740991; + + /** `Object#toString` result references. */ + var argsTag = '[object Arguments]', + arrayTag = '[object Array]', + boolTag = '[object Boolean]', + dateTag = '[object Date]', + errorTag = '[object Error]', + funcTag = '[object Function]', + genTag = '[object GeneratorFunction]', + mapTag = '[object Map]', + numberTag = '[object Number]', + objectTag = '[object Object]', + promiseTag = '[object Promise]', + regexpTag = '[object RegExp]', + setTag = '[object Set]', + stringTag = '[object String]', + symbolTag = '[object Symbol]', + weakMapTag = '[object WeakMap]'; + + var arrayBufferTag = '[object ArrayBuffer]', + dataViewTag = '[object DataView]', + float32Tag = '[object Float32Array]', + float64Tag = '[object Float64Array]', + int8Tag = '[object Int8Array]', + int16Tag = '[object Int16Array]', + int32Tag = '[object Int32Array]', + uint8Tag = '[object Uint8Array]', + uint8ClampedTag = '[object Uint8ClampedArray]', + uint16Tag = '[object Uint16Array]', + uint32Tag = '[object Uint32Array]'; + + /** + * Used to match `RegExp` + * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns). + */ + var reRegExpChar = /[\\^$.*+?()[\]{}|]/g; + + /** Used to match `RegExp` flags from their coerced string values. */ + var reFlags = /\w*$/; + + /** Used to detect host constructors (Safari). */ + var reIsHostCtor = /^\[object .+?Constructor\]$/; + + /** Used to detect unsigned integer values. */ + var reIsUint = /^(?:0|[1-9]\d*)$/; + + /** Used to identify `toStringTag` values supported by `_.clone`. */ + var cloneableTags = {}; + cloneableTags[argsTag] = cloneableTags[arrayTag] = + cloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] = + cloneableTags[boolTag] = cloneableTags[dateTag] = + cloneableTags[float32Tag] = cloneableTags[float64Tag] = + cloneableTags[int8Tag] = cloneableTags[int16Tag] = + cloneableTags[int32Tag] = cloneableTags[mapTag] = + cloneableTags[numberTag] = cloneableTags[objectTag] = + cloneableTags[regexpTag] = cloneableTags[setTag] = + cloneableTags[stringTag] = cloneableTags[symbolTag] = + cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] = + cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true; + cloneableTags[errorTag] = cloneableTags[funcTag] = + cloneableTags[weakMapTag] = false; + + /** Detect free variable `global` from Node.js. */ + var freeGlobal = typeof commonjsGlobal == 'object' && commonjsGlobal && commonjsGlobal.Object === Object && commonjsGlobal; + + /** Detect free variable `self`. */ + var freeSelf = typeof self == 'object' && self && self.Object === Object && self; + + /** Used as a reference to the global object. */ + var root = freeGlobal || freeSelf || Function('return this')(); + + /** Detect free variable `exports`. */ + var freeExports = exports && !exports.nodeType && exports; + + /** Detect free variable `module`. */ + var freeModule = freeExports && 'object' == 'object' && module && !module.nodeType && module; + + /** Detect the popular CommonJS extension `module.exports`. */ + var moduleExports = freeModule && freeModule.exports === freeExports; + + /** + * Adds the key-value `pair` to `map`. + * + * @private + * @param {Object} map The map to modify. + * @param {Array} pair The key-value pair to add. + * @returns {Object} Returns `map`. + */ + function addMapEntry(map, pair) { + // Don't return `map.set` because it's not chainable in IE 11. + map.set(pair[0], pair[1]); + return map; + } + + /** + * Adds `value` to `set`. + * + * @private + * @param {Object} set The set to modify. + * @param {*} value The value to add. + * @returns {Object} Returns `set`. + */ + function addSetEntry(set, value) { + // Don't return `set.add` because it's not chainable in IE 11. + set.add(value); + return set; + } + + /** + * A specialized version of `_.forEach` for arrays without support for + * iteratee shorthands. + * + * @private + * @param {Array} [array] The array to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array} Returns `array`. + */ + function arrayEach(array, iteratee) { + var index = -1, + length = array ? array.length : 0; + + while (++index < length) { + if (iteratee(array[index], index, array) === false) { + break; + } + } + return array; + } + + /** + * Appends the elements of `values` to `array`. + * + * @private + * @param {Array} array The array to modify. + * @param {Array} values The values to append. + * @returns {Array} Returns `array`. + */ + function arrayPush(array, values) { + var index = -1, + length = values.length, + offset = array.length; + + while (++index < length) { + array[offset + index] = values[index]; + } + return array; + } + + /** + * A specialized version of `_.reduce` for arrays without support for + * iteratee shorthands. + * + * @private + * @param {Array} [array] The array to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @param {*} [accumulator] The initial value. + * @param {boolean} [initAccum] Specify using the first element of `array` as + * the initial value. + * @returns {*} Returns the accumulated value. + */ + function arrayReduce(array, iteratee, accumulator, initAccum) { + var index = -1, + length = array ? array.length : 0; + + if (initAccum && length) { + accumulator = array[++index]; + } + while (++index < length) { + accumulator = iteratee(accumulator, array[index], index, array); + } + return accumulator; + } + + /** + * The base implementation of `_.times` without support for iteratee shorthands + * or max array length checks. + * + * @private + * @param {number} n The number of times to invoke `iteratee`. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array} Returns the array of results. + */ + function baseTimes(n, iteratee) { + var index = -1, + result = Array(n); + + while (++index < n) { + result[index] = iteratee(index); + } + return result; + } + + /** + * Gets the value at `key` of `object`. + * + * @private + * @param {Object} [object] The object to query. + * @param {string} key The key of the property to get. + * @returns {*} Returns the property value. + */ + function getValue(object, key) { + return object == null ? undefined : object[key]; + } + + /** + * Checks if `value` is a host object in IE < 9. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a host object, else `false`. + */ + function isHostObject(value) { + // Many host objects are `Object` objects that can coerce to strings + // despite having improperly defined `toString` methods. + var result = false; + if (value != null && typeof value.toString != 'function') { + try { + result = !!(value + ''); + } catch (e) {} + } + return result; + } + + /** + * Converts `map` to its key-value pairs. + * + * @private + * @param {Object} map The map to convert. + * @returns {Array} Returns the key-value pairs. + */ + function mapToArray(map) { + var index = -1, + result = Array(map.size); + + map.forEach(function(value, key) { + result[++index] = [key, value]; + }); + return result; + } + + /** + * Creates a unary function that invokes `func` with its argument transformed. + * + * @private + * @param {Function} func The function to wrap. + * @param {Function} transform The argument transform. + * @returns {Function} Returns the new function. + */ + function overArg(func, transform) { + return function(arg) { + return func(transform(arg)); + }; + } + + /** + * Converts `set` to an array of its values. + * + * @private + * @param {Object} set The set to convert. + * @returns {Array} Returns the values. + */ + function setToArray(set) { + var index = -1, + result = Array(set.size); + + set.forEach(function(value) { + result[++index] = value; + }); + return result; + } + + /** Used for built-in method references. */ + var arrayProto = Array.prototype, + funcProto = Function.prototype, + objectProto = Object.prototype; + + /** Used to detect overreaching core-js shims. */ + var coreJsData = root['__core-js_shared__']; + + /** Used to detect methods masquerading as native. */ + var maskSrcKey = (function() { + var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || ''); + return uid ? ('Symbol(src)_1.' + uid) : ''; + }()); + + /** Used to resolve the decompiled source of functions. */ + var funcToString = funcProto.toString; + + /** Used to check objects for own properties. */ + var hasOwnProperty = objectProto.hasOwnProperty; + + /** + * Used to resolve the + * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) + * of values. + */ + var objectToString = objectProto.toString; + + /** Used to detect if a method is native. */ + var reIsNative = RegExp('^' + + funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\$&') + .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$' + ); + + /** Built-in value references. */ + var Buffer = moduleExports ? root.Buffer : undefined, + Symbol = root.Symbol, + Uint8Array = root.Uint8Array, + getPrototype = overArg(Object.getPrototypeOf, Object), + objectCreate = Object.create, + propertyIsEnumerable = objectProto.propertyIsEnumerable, + splice = arrayProto.splice; + + /* Built-in method references for those with the same name as other `lodash` methods. */ + var nativeGetSymbols = Object.getOwnPropertySymbols, + nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined, + nativeKeys = overArg(Object.keys, Object); + + /* Built-in method references that are verified to be native. */ + var DataView = getNative(root, 'DataView'), + Map = getNative(root, 'Map'), + Promise = getNative(root, 'Promise'), + Set = getNative(root, 'Set'), + WeakMap = getNative(root, 'WeakMap'), + nativeCreate = getNative(Object, 'create'); + + /** Used to detect maps, sets, and weakmaps. */ + var dataViewCtorString = toSource(DataView), + mapCtorString = toSource(Map), + promiseCtorString = toSource(Promise), + setCtorString = toSource(Set), + weakMapCtorString = toSource(WeakMap); + + /** Used to convert symbols to primitives and strings. */ + var symbolProto = Symbol ? Symbol.prototype : undefined, + symbolValueOf = symbolProto ? symbolProto.valueOf : undefined; + + /** + * Creates a hash object. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ + function Hash(entries) { + var index = -1, + length = entries ? entries.length : 0; + + this.clear(); + while (++index < length) { + var entry = entries[index]; + this.set(entry[0], entry[1]); + } + } + + /** + * Removes all key-value entries from the hash. + * + * @private + * @name clear + * @memberOf Hash + */ + function hashClear() { + this.__data__ = nativeCreate ? nativeCreate(null) : {}; + } + + /** + * Removes `key` and its value from the hash. + * + * @private + * @name delete + * @memberOf Hash + * @param {Object} hash The hash to modify. + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. + */ + function hashDelete(key) { + return this.has(key) && delete this.__data__[key]; + } + + /** + * Gets the hash value for `key`. + * + * @private + * @name get + * @memberOf Hash + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. + */ + function hashGet(key) { + var data = this.__data__; + if (nativeCreate) { + var result = data[key]; + return result === HASH_UNDEFINED ? undefined : result; + } + return hasOwnProperty.call(data, key) ? data[key] : undefined; + } + + /** + * Checks if a hash value for `key` exists. + * + * @private + * @name has + * @memberOf Hash + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ + function hashHas(key) { + var data = this.__data__; + return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key); + } + + /** + * Sets the hash `key` to `value`. + * + * @private + * @name set + * @memberOf Hash + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the hash instance. + */ + function hashSet(key, value) { + var data = this.__data__; + data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value; + return this; + } + + // Add methods to `Hash`. + Hash.prototype.clear = hashClear; + Hash.prototype['delete'] = hashDelete; + Hash.prototype.get = hashGet; + Hash.prototype.has = hashHas; + Hash.prototype.set = hashSet; + + /** + * Creates an list cache object. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ + function ListCache(entries) { + var index = -1, + length = entries ? entries.length : 0; + + this.clear(); + while (++index < length) { + var entry = entries[index]; + this.set(entry[0], entry[1]); + } + } + + /** + * Removes all key-value entries from the list cache. + * + * @private + * @name clear + * @memberOf ListCache + */ + function listCacheClear() { + this.__data__ = []; + } + + /** + * Removes `key` and its value from the list cache. + * + * @private + * @name delete + * @memberOf ListCache + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. + */ + function listCacheDelete(key) { + var data = this.__data__, + index = assocIndexOf(data, key); + + if (index < 0) { + return false; + } + var lastIndex = data.length - 1; + if (index == lastIndex) { + data.pop(); + } else { + splice.call(data, index, 1); + } + return true; + } + + /** + * Gets the list cache value for `key`. + * + * @private + * @name get + * @memberOf ListCache + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. + */ + function listCacheGet(key) { + var data = this.__data__, + index = assocIndexOf(data, key); + + return index < 0 ? undefined : data[index][1]; + } + + /** + * Checks if a list cache value for `key` exists. + * + * @private + * @name has + * @memberOf ListCache + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ + function listCacheHas(key) { + return assocIndexOf(this.__data__, key) > -1; + } + + /** + * Sets the list cache `key` to `value`. + * + * @private + * @name set + * @memberOf ListCache + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the list cache instance. + */ + function listCacheSet(key, value) { + var data = this.__data__, + index = assocIndexOf(data, key); + + if (index < 0) { + data.push([key, value]); + } else { + data[index][1] = value; + } + return this; + } + + // Add methods to `ListCache`. + ListCache.prototype.clear = listCacheClear; + ListCache.prototype['delete'] = listCacheDelete; + ListCache.prototype.get = listCacheGet; + ListCache.prototype.has = listCacheHas; + ListCache.prototype.set = listCacheSet; + + /** + * Creates a map cache object to store key-value pairs. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ + function MapCache(entries) { + var index = -1, + length = entries ? entries.length : 0; + + this.clear(); + while (++index < length) { + var entry = entries[index]; + this.set(entry[0], entry[1]); + } + } + + /** + * Removes all key-value entries from the map. + * + * @private + * @name clear + * @memberOf MapCache + */ + function mapCacheClear() { + this.__data__ = { + 'hash': new Hash, + 'map': new (Map || ListCache), + 'string': new Hash + }; + } + + /** + * Removes `key` and its value from the map. + * + * @private + * @name delete + * @memberOf MapCache + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. + */ + function mapCacheDelete(key) { + return getMapData(this, key)['delete'](key); + } + + /** + * Gets the map value for `key`. + * + * @private + * @name get + * @memberOf MapCache + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. + */ + function mapCacheGet(key) { + return getMapData(this, key).get(key); + } + + /** + * Checks if a map value for `key` exists. + * + * @private + * @name has + * @memberOf MapCache + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ + function mapCacheHas(key) { + return getMapData(this, key).has(key); + } + + /** + * Sets the map `key` to `value`. + * + * @private + * @name set + * @memberOf MapCache + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the map cache instance. + */ + function mapCacheSet(key, value) { + getMapData(this, key).set(key, value); + return this; + } + + // Add methods to `MapCache`. + MapCache.prototype.clear = mapCacheClear; + MapCache.prototype['delete'] = mapCacheDelete; + MapCache.prototype.get = mapCacheGet; + MapCache.prototype.has = mapCacheHas; + MapCache.prototype.set = mapCacheSet; + + /** + * Creates a stack cache object to store key-value pairs. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ + function Stack(entries) { + this.__data__ = new ListCache(entries); + } + + /** + * Removes all key-value entries from the stack. + * + * @private + * @name clear + * @memberOf Stack + */ + function stackClear() { + this.__data__ = new ListCache; + } + + /** + * Removes `key` and its value from the stack. + * + * @private + * @name delete + * @memberOf Stack + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. + */ + function stackDelete(key) { + return this.__data__['delete'](key); + } + + /** + * Gets the stack value for `key`. + * + * @private + * @name get + * @memberOf Stack + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. + */ + function stackGet(key) { + return this.__data__.get(key); + } + + /** + * Checks if a stack value for `key` exists. + * + * @private + * @name has + * @memberOf Stack + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ + function stackHas(key) { + return this.__data__.has(key); + } + + /** + * Sets the stack `key` to `value`. + * + * @private + * @name set + * @memberOf Stack + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the stack cache instance. + */ + function stackSet(key, value) { + var cache = this.__data__; + if (cache instanceof ListCache) { + var pairs = cache.__data__; + if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) { + pairs.push([key, value]); + return this; + } + cache = this.__data__ = new MapCache(pairs); + } + cache.set(key, value); + return this; + } + + // Add methods to `Stack`. + Stack.prototype.clear = stackClear; + Stack.prototype['delete'] = stackDelete; + Stack.prototype.get = stackGet; + Stack.prototype.has = stackHas; + Stack.prototype.set = stackSet; + + /** + * Creates an array of the enumerable property names of the array-like `value`. + * + * @private + * @param {*} value The value to query. + * @param {boolean} inherited Specify returning inherited property names. + * @returns {Array} Returns the array of property names. + */ + function arrayLikeKeys(value, inherited) { + // Safari 8.1 makes `arguments.callee` enumerable in strict mode. + // Safari 9 makes `arguments.length` enumerable in strict mode. + var result = (isArray(value) || isArguments(value)) + ? baseTimes(value.length, String) + : []; + + var length = result.length, + skipIndexes = !!length; + + for (var key in value) { + if ((inherited || hasOwnProperty.call(value, key)) && + !(skipIndexes && (key == 'length' || isIndex(key, length)))) { + result.push(key); + } + } + return result; + } + + /** + * Assigns `value` to `key` of `object` if the existing value is not equivalent + * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * for equality comparisons. + * + * @private + * @param {Object} object The object to modify. + * @param {string} key The key of the property to assign. + * @param {*} value The value to assign. + */ + function assignValue(object, key, value) { + var objValue = object[key]; + if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) || + (value === undefined && !(key in object))) { + object[key] = value; + } + } + + /** + * Gets the index at which the `key` is found in `array` of key-value pairs. + * + * @private + * @param {Array} array The array to inspect. + * @param {*} key The key to search for. + * @returns {number} Returns the index of the matched value, else `-1`. + */ + function assocIndexOf(array, key) { + var length = array.length; + while (length--) { + if (eq(array[length][0], key)) { + return length; + } + } + return -1; + } + + /** + * The base implementation of `_.assign` without support for multiple sources + * or `customizer` functions. + * + * @private + * @param {Object} object The destination object. + * @param {Object} source The source object. + * @returns {Object} Returns `object`. + */ + function baseAssign(object, source) { + return object && copyObject(source, keys(source), object); + } + + /** + * The base implementation of `_.clone` and `_.cloneDeep` which tracks + * traversed objects. + * + * @private + * @param {*} value The value to clone. + * @param {boolean} [isDeep] Specify a deep clone. + * @param {boolean} [isFull] Specify a clone including symbols. + * @param {Function} [customizer] The function to customize cloning. + * @param {string} [key] The key of `value`. + * @param {Object} [object] The parent object of `value`. + * @param {Object} [stack] Tracks traversed objects and their clone counterparts. + * @returns {*} Returns the cloned value. + */ + function baseClone(value, isDeep, isFull, customizer, key, object, stack) { + var result; + if (customizer) { + result = object ? customizer(value, key, object, stack) : customizer(value); + } + if (result !== undefined) { + return result; + } + if (!isObject(value)) { + return value; + } + var isArr = isArray(value); + if (isArr) { + result = initCloneArray(value); + if (!isDeep) { + return copyArray(value, result); + } + } else { + var tag = getTag(value), + isFunc = tag == funcTag || tag == genTag; + + if (isBuffer(value)) { + return cloneBuffer(value, isDeep); + } + if (tag == objectTag || tag == argsTag || (isFunc && !object)) { + if (isHostObject(value)) { + return object ? value : {}; + } + result = initCloneObject(isFunc ? {} : value); + if (!isDeep) { + return copySymbols(value, baseAssign(result, value)); + } + } else { + if (!cloneableTags[tag]) { + return object ? value : {}; + } + result = initCloneByTag(value, tag, baseClone, isDeep); + } + } + // Check for circular references and return its corresponding clone. + stack || (stack = new Stack); + var stacked = stack.get(value); + if (stacked) { + return stacked; + } + stack.set(value, result); + + if (!isArr) { + var props = isFull ? getAllKeys(value) : keys(value); + } + arrayEach(props || value, function(subValue, key) { + if (props) { + key = subValue; + subValue = value[key]; + } + // Recursively populate clone (susceptible to call stack limits). + assignValue(result, key, baseClone(subValue, isDeep, isFull, customizer, key, value, stack)); + }); + return result; + } + + /** + * The base implementation of `_.create` without support for assigning + * properties to the created object. + * + * @private + * @param {Object} prototype The object to inherit from. + * @returns {Object} Returns the new object. + */ + function baseCreate(proto) { + return isObject(proto) ? objectCreate(proto) : {}; + } + + /** + * The base implementation of `getAllKeys` and `getAllKeysIn` which uses + * `keysFunc` and `symbolsFunc` to get the enumerable property names and + * symbols of `object`. + * + * @private + * @param {Object} object The object to query. + * @param {Function} keysFunc The function to get the keys of `object`. + * @param {Function} symbolsFunc The function to get the symbols of `object`. + * @returns {Array} Returns the array of property names and symbols. + */ + function baseGetAllKeys(object, keysFunc, symbolsFunc) { + var result = keysFunc(object); + return isArray(object) ? result : arrayPush(result, symbolsFunc(object)); + } + + /** + * The base implementation of `getTag`. + * + * @private + * @param {*} value The value to query. + * @returns {string} Returns the `toStringTag`. + */ + function baseGetTag(value) { + return objectToString.call(value); + } + + /** + * The base implementation of `_.isNative` without bad shim checks. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a native function, + * else `false`. + */ + function baseIsNative(value) { + if (!isObject(value) || isMasked(value)) { + return false; + } + var pattern = (isFunction(value) || isHostObject(value)) ? reIsNative : reIsHostCtor; + return pattern.test(toSource(value)); + } + + /** + * The base implementation of `_.keys` which doesn't treat sparse arrays as dense. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + */ + function baseKeys(object) { + if (!isPrototype(object)) { + return nativeKeys(object); + } + var result = []; + for (var key in Object(object)) { + if (hasOwnProperty.call(object, key) && key != 'constructor') { + result.push(key); + } + } + return result; + } + + /** + * Creates a clone of `buffer`. + * + * @private + * @param {Buffer} buffer The buffer to clone. + * @param {boolean} [isDeep] Specify a deep clone. + * @returns {Buffer} Returns the cloned buffer. + */ + function cloneBuffer(buffer, isDeep) { + if (isDeep) { + return buffer.slice(); + } + var result = new buffer.constructor(buffer.length); + buffer.copy(result); + return result; + } + + /** + * Creates a clone of `arrayBuffer`. + * + * @private + * @param {ArrayBuffer} arrayBuffer The array buffer to clone. + * @returns {ArrayBuffer} Returns the cloned array buffer. + */ + function cloneArrayBuffer(arrayBuffer) { + var result = new arrayBuffer.constructor(arrayBuffer.byteLength); + new Uint8Array(result).set(new Uint8Array(arrayBuffer)); + return result; + } + + /** + * Creates a clone of `dataView`. + * + * @private + * @param {Object} dataView The data view to clone. + * @param {boolean} [isDeep] Specify a deep clone. + * @returns {Object} Returns the cloned data view. + */ + function cloneDataView(dataView, isDeep) { + var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer; + return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength); + } + + /** + * Creates a clone of `map`. + * + * @private + * @param {Object} map The map to clone. + * @param {Function} cloneFunc The function to clone values. + * @param {boolean} [isDeep] Specify a deep clone. + * @returns {Object} Returns the cloned map. + */ + function cloneMap(map, isDeep, cloneFunc) { + var array = isDeep ? cloneFunc(mapToArray(map), true) : mapToArray(map); + return arrayReduce(array, addMapEntry, new map.constructor); + } + + /** + * Creates a clone of `regexp`. + * + * @private + * @param {Object} regexp The regexp to clone. + * @returns {Object} Returns the cloned regexp. + */ + function cloneRegExp(regexp) { + var result = new regexp.constructor(regexp.source, reFlags.exec(regexp)); + result.lastIndex = regexp.lastIndex; + return result; + } + + /** + * Creates a clone of `set`. + * + * @private + * @param {Object} set The set to clone. + * @param {Function} cloneFunc The function to clone values. + * @param {boolean} [isDeep] Specify a deep clone. + * @returns {Object} Returns the cloned set. + */ + function cloneSet(set, isDeep, cloneFunc) { + var array = isDeep ? cloneFunc(setToArray(set), true) : setToArray(set); + return arrayReduce(array, addSetEntry, new set.constructor); + } + + /** + * Creates a clone of the `symbol` object. + * + * @private + * @param {Object} symbol The symbol object to clone. + * @returns {Object} Returns the cloned symbol object. + */ + function cloneSymbol(symbol) { + return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {}; + } + + /** + * Creates a clone of `typedArray`. + * + * @private + * @param {Object} typedArray The typed array to clone. + * @param {boolean} [isDeep] Specify a deep clone. + * @returns {Object} Returns the cloned typed array. + */ + function cloneTypedArray(typedArray, isDeep) { + var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer; + return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length); + } + + /** + * Copies the values of `source` to `array`. + * + * @private + * @param {Array} source The array to copy values from. + * @param {Array} [array=[]] The array to copy values to. + * @returns {Array} Returns `array`. + */ + function copyArray(source, array) { + var index = -1, + length = source.length; + + array || (array = Array(length)); + while (++index < length) { + array[index] = source[index]; + } + return array; + } + + /** + * Copies properties of `source` to `object`. + * + * @private + * @param {Object} source The object to copy properties from. + * @param {Array} props The property identifiers to copy. + * @param {Object} [object={}] The object to copy properties to. + * @param {Function} [customizer] The function to customize copied values. + * @returns {Object} Returns `object`. + */ + function copyObject(source, props, object, customizer) { + object || (object = {}); + + var index = -1, + length = props.length; + + while (++index < length) { + var key = props[index]; + + var newValue = customizer + ? customizer(object[key], source[key], key, object, source) + : undefined; + + assignValue(object, key, newValue === undefined ? source[key] : newValue); + } + return object; + } + + /** + * Copies own symbol properties of `source` to `object`. + * + * @private + * @param {Object} source The object to copy symbols from. + * @param {Object} [object={}] The object to copy symbols to. + * @returns {Object} Returns `object`. + */ + function copySymbols(source, object) { + return copyObject(source, getSymbols(source), object); + } + + /** + * Creates an array of own enumerable property names and symbols of `object`. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names and symbols. + */ + function getAllKeys(object) { + return baseGetAllKeys(object, keys, getSymbols); + } + + /** + * Gets the data for `map`. + * + * @private + * @param {Object} map The map to query. + * @param {string} key The reference key. + * @returns {*} Returns the map data. + */ + function getMapData(map, key) { + var data = map.__data__; + return isKeyable(key) + ? data[typeof key == 'string' ? 'string' : 'hash'] + : data.map; + } + + /** + * Gets the native function at `key` of `object`. + * + * @private + * @param {Object} object The object to query. + * @param {string} key The key of the method to get. + * @returns {*} Returns the function if it's native, else `undefined`. + */ + function getNative(object, key) { + var value = getValue(object, key); + return baseIsNative(value) ? value : undefined; + } + + /** + * Creates an array of the own enumerable symbol properties of `object`. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of symbols. + */ + var getSymbols = nativeGetSymbols ? overArg(nativeGetSymbols, Object) : stubArray; + + /** + * Gets the `toStringTag` of `value`. + * + * @private + * @param {*} value The value to query. + * @returns {string} Returns the `toStringTag`. + */ + var getTag = baseGetTag; + + // Fallback for data views, maps, sets, and weak maps in IE 11, + // for data views in Edge < 14, and promises in Node.js. + if ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) || + (Map && getTag(new Map) != mapTag) || + (Promise && getTag(Promise.resolve()) != promiseTag) || + (Set && getTag(new Set) != setTag) || + (WeakMap && getTag(new WeakMap) != weakMapTag)) { + getTag = function(value) { + var result = objectToString.call(value), + Ctor = result == objectTag ? value.constructor : undefined, + ctorString = Ctor ? toSource(Ctor) : undefined; + + if (ctorString) { + switch (ctorString) { + case dataViewCtorString: return dataViewTag; + case mapCtorString: return mapTag; + case promiseCtorString: return promiseTag; + case setCtorString: return setTag; + case weakMapCtorString: return weakMapTag; + } + } + return result; + }; + } + + /** + * Initializes an array clone. + * + * @private + * @param {Array} array The array to clone. + * @returns {Array} Returns the initialized clone. + */ + function initCloneArray(array) { + var length = array.length, + result = array.constructor(length); + + // Add properties assigned by `RegExp#exec`. + if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) { + result.index = array.index; + result.input = array.input; + } + return result; + } + + /** + * Initializes an object clone. + * + * @private + * @param {Object} object The object to clone. + * @returns {Object} Returns the initialized clone. + */ + function initCloneObject(object) { + return (typeof object.constructor == 'function' && !isPrototype(object)) + ? baseCreate(getPrototype(object)) + : {}; + } + + /** + * Initializes an object clone based on its `toStringTag`. + * + * **Note:** This function only supports cloning values with tags of + * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`. + * + * @private + * @param {Object} object The object to clone. + * @param {string} tag The `toStringTag` of the object to clone. + * @param {Function} cloneFunc The function to clone values. + * @param {boolean} [isDeep] Specify a deep clone. + * @returns {Object} Returns the initialized clone. + */ + function initCloneByTag(object, tag, cloneFunc, isDeep) { + var Ctor = object.constructor; + switch (tag) { + case arrayBufferTag: + return cloneArrayBuffer(object); + + case boolTag: + case dateTag: + return new Ctor(+object); + + case dataViewTag: + return cloneDataView(object, isDeep); + + case float32Tag: case float64Tag: + case int8Tag: case int16Tag: case int32Tag: + case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag: + return cloneTypedArray(object, isDeep); + + case mapTag: + return cloneMap(object, isDeep, cloneFunc); + + case numberTag: + case stringTag: + return new Ctor(object); + + case regexpTag: + return cloneRegExp(object); + + case setTag: + return cloneSet(object, isDeep, cloneFunc); + + case symbolTag: + return cloneSymbol(object); + } + } + + /** + * Checks if `value` is a valid array-like index. + * + * @private + * @param {*} value The value to check. + * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index. + * @returns {boolean} Returns `true` if `value` is a valid index, else `false`. + */ + function isIndex(value, length) { + length = length == null ? MAX_SAFE_INTEGER : length; + return !!length && + (typeof value == 'number' || reIsUint.test(value)) && + (value > -1 && value % 1 == 0 && value < length); + } + + /** + * Checks if `value` is suitable for use as unique object key. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is suitable, else `false`. + */ + function isKeyable(value) { + var type = typeof value; + return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean') + ? (value !== '__proto__') + : (value === null); + } + + /** + * Checks if `func` has its source masked. + * + * @private + * @param {Function} func The function to check. + * @returns {boolean} Returns `true` if `func` is masked, else `false`. + */ + function isMasked(func) { + return !!maskSrcKey && (maskSrcKey in func); + } + + /** + * Checks if `value` is likely a prototype object. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a prototype, else `false`. + */ + function isPrototype(value) { + var Ctor = value && value.constructor, + proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto; + + return value === proto; + } + + /** + * Converts `func` to its source code. + * + * @private + * @param {Function} func The function to process. + * @returns {string} Returns the source code. + */ + function toSource(func) { + if (func != null) { + try { + return funcToString.call(func); + } catch (e) {} + try { + return (func + ''); + } catch (e) {} + } + return ''; + } + + /** + * This method is like `_.clone` except that it recursively clones `value`. + * + * @static + * @memberOf _ + * @since 1.0.0 + * @category Lang + * @param {*} value The value to recursively clone. + * @returns {*} Returns the deep cloned value. + * @see _.clone + * @example + * + * var objects = [{ 'a': 1 }, { 'b': 2 }]; + * + * var deep = _.cloneDeep(objects); + * console.log(deep[0] === objects[0]); + * // => false + */ + function cloneDeep(value) { + return baseClone(value, true, true); + } + + /** + * Performs a + * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * comparison between two values to determine if they are equivalent. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @returns {boolean} Returns `true` if the values are equivalent, else `false`. + * @example + * + * var object = { 'a': 1 }; + * var other = { 'a': 1 }; + * + * _.eq(object, object); + * // => true + * + * _.eq(object, other); + * // => false + * + * _.eq('a', 'a'); + * // => true + * + * _.eq('a', Object('a')); + * // => false + * + * _.eq(NaN, NaN); + * // => true + */ + function eq(value, other) { + return value === other || (value !== value && other !== other); + } + + /** + * Checks if `value` is likely an `arguments` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an `arguments` object, + * else `false`. + * @example + * + * _.isArguments(function() { return arguments; }()); + * // => true + * + * _.isArguments([1, 2, 3]); + * // => false + */ + function isArguments(value) { + // Safari 8.1 makes `arguments.callee` enumerable in strict mode. + return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') && + (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag); + } + + /** + * Checks if `value` is classified as an `Array` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an array, else `false`. + * @example + * + * _.isArray([1, 2, 3]); + * // => true + * + * _.isArray(document.body.children); + * // => false + * + * _.isArray('abc'); + * // => false + * + * _.isArray(_.noop); + * // => false + */ + var isArray = Array.isArray; + + /** + * Checks if `value` is array-like. A value is considered array-like if it's + * not a function and has a `value.length` that's an integer greater than or + * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is array-like, else `false`. + * @example + * + * _.isArrayLike([1, 2, 3]); + * // => true + * + * _.isArrayLike(document.body.children); + * // => true + * + * _.isArrayLike('abc'); + * // => true + * + * _.isArrayLike(_.noop); + * // => false + */ + function isArrayLike(value) { + return value != null && isLength(value.length) && !isFunction(value); + } + + /** + * This method is like `_.isArrayLike` except that it also checks if `value` + * is an object. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an array-like object, + * else `false`. + * @example + * + * _.isArrayLikeObject([1, 2, 3]); + * // => true + * + * _.isArrayLikeObject(document.body.children); + * // => true + * + * _.isArrayLikeObject('abc'); + * // => false + * + * _.isArrayLikeObject(_.noop); + * // => false + */ + function isArrayLikeObject(value) { + return isObjectLike(value) && isArrayLike(value); + } + + /** + * Checks if `value` is a buffer. + * + * @static + * @memberOf _ + * @since 4.3.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a buffer, else `false`. + * @example + * + * _.isBuffer(new Buffer(2)); + * // => true + * + * _.isBuffer(new Uint8Array(2)); + * // => false + */ + var isBuffer = nativeIsBuffer || stubFalse; + + /** + * Checks if `value` is classified as a `Function` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a function, else `false`. + * @example + * + * _.isFunction(_); + * // => true + * + * _.isFunction(/abc/); + * // => false + */ + function isFunction(value) { + // The use of `Object#toString` avoids issues with the `typeof` operator + // in Safari 8-9 which returns 'object' for typed array and other constructors. + var tag = isObject(value) ? objectToString.call(value) : ''; + return tag == funcTag || tag == genTag; + } + + /** + * Checks if `value` is a valid array-like length. + * + * **Note:** This method is loosely based on + * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a valid length, else `false`. + * @example + * + * _.isLength(3); + * // => true + * + * _.isLength(Number.MIN_VALUE); + * // => false + * + * _.isLength(Infinity); + * // => false + * + * _.isLength('3'); + * // => false + */ + function isLength(value) { + return typeof value == 'number' && + value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; + } + + /** + * Checks if `value` is the + * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types) + * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an object, else `false`. + * @example + * + * _.isObject({}); + * // => true + * + * _.isObject([1, 2, 3]); + * // => true + * + * _.isObject(_.noop); + * // => true + * + * _.isObject(null); + * // => false + */ + function isObject(value) { + var type = typeof value; + return !!value && (type == 'object' || type == 'function'); + } + + /** + * Checks if `value` is object-like. A value is object-like if it's not `null` + * and has a `typeof` result of "object". + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is object-like, else `false`. + * @example + * + * _.isObjectLike({}); + * // => true + * + * _.isObjectLike([1, 2, 3]); + * // => true + * + * _.isObjectLike(_.noop); + * // => false + * + * _.isObjectLike(null); + * // => false + */ + function isObjectLike(value) { + return !!value && typeof value == 'object'; + } + + /** + * Creates an array of the own enumerable property names of `object`. + * + * **Note:** Non-object values are coerced to objects. See the + * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys) + * for more details. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Object + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.keys(new Foo); + * // => ['a', 'b'] (iteration order is not guaranteed) + * + * _.keys('hi'); + * // => ['0', '1'] + */ + function keys(object) { + return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object); + } + + /** + * This method returns a new empty array. + * + * @static + * @memberOf _ + * @since 4.13.0 + * @category Util + * @returns {Array} Returns the new empty array. + * @example + * + * var arrays = _.times(2, _.stubArray); + * + * console.log(arrays); + * // => [[], []] + * + * console.log(arrays[0] === arrays[1]); + * // => false + */ + function stubArray() { + return []; + } + + /** + * This method returns `false`. + * + * @static + * @memberOf _ + * @since 4.13.0 + * @category Util + * @returns {boolean} Returns `false`. + * @example + * + * _.times(2, _.stubFalse); + * // => [false, false] + */ + function stubFalse() { + return false; + } + + module.exports = cloneDeep; + } (lodash_clonedeep, lodash_clonedeep.exports)); + + var lodash_clonedeepExports = lodash_clonedeep.exports; + var cloneDeep = /*@__PURE__*/getDefaultExportFromCjs(lodash_clonedeepExports); + + var Segmentation$2 = { + generateSegmentation: generateSegmentation$1, + generateToolState: generateToolState$1, + fillSegmentation: fillSegmentation$1 + }; + + /** + * + * @typedef {Object} BrushData + * @property {Object} toolState - The cornerstoneTools global toolState. + * @property {Object[]} segments - The cornerstoneTools segment metadata that corresponds to the + * seriesInstanceUid. + */ + + var generateSegmentationDefaultOptions = { + includeSliceSpacing: true, + rleEncode: true + }; + + /** + * generateSegmentation - Generates cornerstoneTools brush data, given a stack of + * imageIds, images and the cornerstoneTools brushData. + * + * @param {object[]} images An array of cornerstone images that contain the source + * data under `image.data.byteArray.buffer`. + * @param {Object|Object[]} inputLabelmaps3D The cornerstone `Labelmap3D` object, or an array of objects. + * @param {Object} userOptions Options to pass to the segmentation derivation and `fillSegmentation`. + * @returns {Blob} + */ + function generateSegmentation$1(images, inputLabelmaps3D) { + var userOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; + var isMultiframe = images[0].imageId.includes("?frame"); + var segmentation = _createSegFromImages(images, isMultiframe, userOptions); + return fillSegmentation$1(segmentation, inputLabelmaps3D, userOptions); + } + + /** + * fillSegmentation - Fills a derived segmentation dataset with cornerstoneTools `LabelMap3D` data. + * + * @param {object[]} segmentation An empty segmentation derived dataset. + * @param {Object|Object[]} inputLabelmaps3D The cornerstone `Labelmap3D` object, or an array of objects. + * @param {Object} userOptions Options object to override default options. + * @returns {Blob} description + */ + function fillSegmentation$1(segmentation, inputLabelmaps3D) { + var userOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; + var options = Object.assign({}, generateSegmentationDefaultOptions, userOptions); + + // Use another variable so we don't redefine labelmaps3D. + var labelmaps3D = Array.isArray(inputLabelmaps3D) ? inputLabelmaps3D : [inputLabelmaps3D]; + var numberOfFrames = 0; + var referencedFramesPerLabelmap = []; + var _loop = function _loop(labelmapIndex) { + var labelmap3D = labelmaps3D[labelmapIndex]; + var labelmaps2D = labelmap3D.labelmaps2D, + metadata = labelmap3D.metadata; + var referencedFramesPerSegment = []; + for (var i = 1; i < metadata.length; i++) { + if (metadata[i]) { + referencedFramesPerSegment[i] = []; + } + } + var _loop2 = function _loop2(_i) { + var labelmap2D = labelmaps2D[_i]; + if (labelmaps2D[_i]) { + var segmentsOnLabelmap = labelmap2D.segmentsOnLabelmap; + segmentsOnLabelmap.forEach(function (segmentIndex) { + if (segmentIndex !== 0) { + referencedFramesPerSegment[segmentIndex].push(_i); + numberOfFrames++; + } + }); + } + }; + for (var _i = 0; _i < labelmaps2D.length; _i++) { + _loop2(_i); + } + referencedFramesPerLabelmap[labelmapIndex] = referencedFramesPerSegment; + }; + for (var labelmapIndex = 0; labelmapIndex < labelmaps3D.length; labelmapIndex++) { + _loop(labelmapIndex); + } + segmentation.setNumberOfFrames(numberOfFrames); + for (var _labelmapIndex = 0; _labelmapIndex < labelmaps3D.length; _labelmapIndex++) { + var referencedFramesPerSegment = referencedFramesPerLabelmap[_labelmapIndex]; + var labelmap3D = labelmaps3D[_labelmapIndex]; + var metadata = labelmap3D.metadata; + for (var segmentIndex = 1; segmentIndex < referencedFramesPerSegment.length; segmentIndex++) { + var referencedFrameIndicies = referencedFramesPerSegment[segmentIndex]; + if (referencedFrameIndicies) { + // Frame numbers start from 1. + var referencedFrameNumbers = referencedFrameIndicies.map(function (element) { + return element + 1; + }); + var segmentMetadata = metadata[segmentIndex]; + var labelmaps = _getLabelmapsFromRefernecedFrameIndicies(labelmap3D, referencedFrameIndicies); + segmentation.addSegmentFromLabelmap(segmentMetadata, labelmaps, segmentIndex, referencedFrameNumbers); + } + } + } + if (options.rleEncode) { + var rleEncodedFrames = encode(segmentation.dataset.PixelData, numberOfFrames, segmentation.dataset.Rows, segmentation.dataset.Columns); + + // Must use fractional now to RLE encode, as the DICOM standard only allows BitStored && BitsAllocated + // to be 1 for BINARY. This is not ideal and there should be a better format for compression in this manner + // added to the standard. + segmentation.assignToDataset({ + BitsAllocated: "8", + BitsStored: "8", + HighBit: "7", + SegmentationType: "FRACTIONAL", + SegmentationFractionalType: "PROBABILITY", + MaximumFractionalValue: "255" + }); + segmentation.dataset._meta.TransferSyntaxUID = { + Value: ["1.2.840.10008.1.2.5"], + vr: "UI" + }; + segmentation.dataset._vrMap.PixelData = "OB"; + segmentation.dataset.PixelData = rleEncodedFrames; + } else { + // If no rleEncoding, at least bitpack the data. + segmentation.bitPackPixelData(); + } + var segBlob = datasetToBlob(segmentation.dataset); + return segBlob; + } + function _getLabelmapsFromRefernecedFrameIndicies(labelmap3D, referencedFrameIndicies) { + var labelmaps2D = labelmap3D.labelmaps2D; + var labelmaps = []; + for (var i = 0; i < referencedFrameIndicies.length; i++) { + var frame = referencedFrameIndicies[i]; + labelmaps.push(labelmaps2D[frame].pixelData); + } + return labelmaps; + } + + /** + * _createSegFromImages - description + * + * @param {Object[]} images An array of the cornerstone image objects. + * @param {Boolean} isMultiframe Whether the images are multiframe. + * @returns {Object} The Seg derived dataSet. + */ + function _createSegFromImages(images, isMultiframe, options) { + var datasets = []; + if (isMultiframe) { + var image = images[0]; + var arrayBuffer = image.data.byteArray.buffer; + var dicomData = DicomMessage.readFile(arrayBuffer); + var dataset = DicomMetaDictionary.naturalizeDataset(dicomData.dict); + dataset._meta = DicomMetaDictionary.namifyDataset(dicomData.meta); + datasets.push(dataset); + } else { + for (var i = 0; i < images.length; i++) { + var _image = images[i]; + var _arrayBuffer = _image.data.byteArray.buffer; + var _dicomData = DicomMessage.readFile(_arrayBuffer); + var _dataset = DicomMetaDictionary.naturalizeDataset(_dicomData.dict); + _dataset._meta = DicomMetaDictionary.namifyDataset(_dicomData.meta); + datasets.push(_dataset); + } + } + var multiframe = Normalizer.normalizeToDataset(datasets); + return new Segmentation$4([multiframe], options); + } + + /** + * generateToolState - Given a set of cornrstoneTools imageIds and a Segmentation buffer, + * derive cornerstoneTools toolState and brush metadata. + * + * @param {string[]} imageIds - An array of the imageIds. + * @param {ArrayBuffer} arrayBuffer - The SEG arrayBuffer. + * @param {*} metadataProvider. + * @param {bool} skipOverlapping - skip checks for overlapping segs, default value false. + * @param {number} tolerance - default value 1.e-3. + * + * @return {[]ArrayBuffer}a list of array buffer for each labelMap + * @return {Object} an object from which the segment metadata can be derived + * @return {[][][]} 2D list containing the track of segments per frame + * @return {[][][]} 3D list containing the track of segments per frame for each labelMap + * (available only for the overlapping case). + */ + function generateToolState$1(imageIds, arrayBuffer, metadataProvider) { + var skipOverlapping = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; + var tolerance = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1e-3; + var dicomData = DicomMessage.readFile(arrayBuffer); + var dataset = DicomMetaDictionary.naturalizeDataset(dicomData.dict); + dataset._meta = DicomMetaDictionary.namifyDataset(dicomData.meta); + var multiframe = Normalizer.normalizeToDataset([dataset]); + var imagePlaneModule = metadataProvider.get("imagePlaneModule", imageIds[0]); + var generalSeriesModule = metadataProvider.get("generalSeriesModule", imageIds[0]); + var SeriesInstanceUID = generalSeriesModule.seriesInstanceUID; + var ImageOrientationPatient; + var validOrientations; + var hasCoordinateSystem = ("FrameOfReferenceUID" in multiframe); + if (hasCoordinateSystem) { + if (!imagePlaneModule) { + console.warn("Insufficient metadata, imagePlaneModule missing."); + } + ImageOrientationPatient = Array.isArray(imagePlaneModule.rowCosines) ? [].concat(_toConsumableArray(imagePlaneModule.rowCosines), _toConsumableArray(imagePlaneModule.columnCosines)) : [imagePlaneModule.rowCosines.x, imagePlaneModule.rowCosines.y, imagePlaneModule.rowCosines.z, imagePlaneModule.columnCosines.x, imagePlaneModule.columnCosines.y, imagePlaneModule.columnCosines.z]; + + // Get IOP from ref series, compute supported orientations: + validOrientations = getValidOrientations(ImageOrientationPatient); + } + var sliceLength = multiframe.Columns * multiframe.Rows; + var segMetadata = getSegmentMetadata(multiframe, SeriesInstanceUID); + var TransferSyntaxUID = multiframe._meta.TransferSyntaxUID.Value[0]; + var pixelData; + if (TransferSyntaxUID === "1.2.840.10008.1.2.5") { + var rleEncodedFrames = Array.isArray(multiframe.PixelData) ? multiframe.PixelData : [multiframe.PixelData]; + pixelData = decode(rleEncodedFrames, multiframe.Rows, multiframe.Columns); + if (multiframe.BitsStored === 1) { + console.warn("No implementation for rle + bitbacking."); + return; + } + } else { + pixelData = unpackPixelData(multiframe); + if (!pixelData) { + throw new Error("Fractional segmentations are not yet supported"); + } + } + var orientation; + if (hasCoordinateSystem) { + orientation = checkOrientation(multiframe, validOrientations, [imagePlaneModule.rows, imagePlaneModule.columns, imageIds.length], tolerance); + } else { + orientation = "Planar"; + } + var overlapping = false; + if (!skipOverlapping) { + overlapping = checkSEGsOverlapping(pixelData, multiframe, imageIds, validOrientations, metadataProvider, tolerance); + } + var insertFunction; + switch (orientation) { + case "Planar": + if (overlapping) { + insertFunction = insertOverlappingPixelDataPlanar; + } else { + insertFunction = insertPixelDataPlanar; + } + break; + case "Perpendicular": + //insertFunction = insertPixelDataPerpendicular; + throw new Error("Segmentations orthogonal to the acquisition plane of the source data are not yet supported."); + case "Oblique": + throw new Error("Segmentations oblique to the acquisition plane of the source data are not yet supported."); + } + + /* if SEGs are overlapping: + 1) the labelmapBuffer will contain M volumes which have non-overlapping segments; + 2) segmentsOnFrame will have M * numberOfFrames values to track in which labelMap are the segments; + 3) insertFunction will return the number of LabelMaps + 4) generateToolState return is an array*/ + + var segmentsOnFrameArray = []; + segmentsOnFrameArray[0] = []; + var segmentsOnFrame = []; + var arrayBufferLength = sliceLength * imageIds.length * 2; // 2 bytes per label voxel in cst4. + var labelmapBufferArray = []; + labelmapBufferArray[0] = new ArrayBuffer(arrayBufferLength); + insertFunction(segmentsOnFrame, segmentsOnFrameArray, labelmapBufferArray, pixelData, multiframe, imageIds, validOrientations, metadataProvider, tolerance); + return { + labelmapBufferArray: labelmapBufferArray, + segMetadata: segMetadata, + segmentsOnFrame: segmentsOnFrame, + segmentsOnFrameArray: segmentsOnFrameArray + }; + } + + /** + * Find the reference frame of the segmentation frame in the source data. + * + * @param {Object} multiframe dicom metadata + * @param {Int} frameSegment frame dicom index + * @param {String[]} imageIds A list of imageIds. + * @param {Object} metadataProvider A Cornerstone metadataProvider to query + * metadata from imageIds. + * @param {Float} tolerance The tolerance parameter + * + * @returns {String} Returns the imageId + */ + function findReferenceSourceImageId(multiframe, frameSegment, imageIds, metadataProvider, tolerance) { + var imageId = undefined; + if (!multiframe) { + return imageId; + } + var FrameOfReferenceUID = multiframe.FrameOfReferenceUID, + PerFrameFunctionalGroupsSequence = multiframe.PerFrameFunctionalGroupsSequence, + SourceImageSequence = multiframe.SourceImageSequence, + ReferencedSeriesSequence = multiframe.ReferencedSeriesSequence; + if (!PerFrameFunctionalGroupsSequence || PerFrameFunctionalGroupsSequence.length === 0) { + return imageId; + } + var PerFrameFunctionalGroup = PerFrameFunctionalGroupsSequence[frameSegment]; + if (!PerFrameFunctionalGroup) { + return imageId; + } + var frameSourceImageSequence = undefined; + if (PerFrameFunctionalGroup.DerivationImageSequence) { + var DerivationImageSequence = PerFrameFunctionalGroup.DerivationImageSequence; + if (Array.isArray(DerivationImageSequence)) { + if (DerivationImageSequence.length !== 0) { + DerivationImageSequence = DerivationImageSequence[0]; + } else { + DerivationImageSequence = undefined; + } + } + if (DerivationImageSequence) { + frameSourceImageSequence = DerivationImageSequence.SourceImageSequence; + if (Array.isArray(frameSourceImageSequence)) { + if (frameSourceImageSequence.length !== 0) { + frameSourceImageSequence = frameSourceImageSequence[0]; + } else { + frameSourceImageSequence = undefined; + } + } + } + } else if (SourceImageSequence && SourceImageSequence.length !== 0) { + frameSourceImageSequence = SourceImageSequence[frameSegment]; + } + if (frameSourceImageSequence) { + imageId = getImageIdOfSourceImagebySourceImageSequence(frameSourceImageSequence, imageIds, metadataProvider); + } + if (imageId === undefined && ReferencedSeriesSequence) { + var referencedSeriesSequence = Array.isArray(ReferencedSeriesSequence) ? ReferencedSeriesSequence[0] : ReferencedSeriesSequence; + var ReferencedSeriesInstanceUID = referencedSeriesSequence.SeriesInstanceUID; + imageId = getImageIdOfSourceImagebyGeometry(ReferencedSeriesInstanceUID, FrameOfReferenceUID, PerFrameFunctionalGroup, imageIds, metadataProvider, tolerance); + } + return imageId; + } + + /** + * Checks if there is any overlapping segmentations. + * @returns {boolean} Returns a flag if segmentations overlapping + */ + + function checkSEGsOverlapping(pixelData, multiframe, imageIds, validOrientations, metadataProvider, tolerance) { + var SharedFunctionalGroupsSequence = multiframe.SharedFunctionalGroupsSequence, + PerFrameFunctionalGroupsSequence = multiframe.PerFrameFunctionalGroupsSequence, + SegmentSequence = multiframe.SegmentSequence, + Rows = multiframe.Rows, + Columns = multiframe.Columns; + var numberOfSegs = SegmentSequence.length; + if (numberOfSegs < 2) { + return false; + } + var sharedImageOrientationPatient = SharedFunctionalGroupsSequence.PlaneOrientationSequence ? SharedFunctionalGroupsSequence.PlaneOrientationSequence.ImageOrientationPatient : undefined; + var sliceLength = Columns * Rows; + var groupsLen = PerFrameFunctionalGroupsSequence.length; + + /** sort groupsLen to have all the segments for each frame in an array + * frame 2 : 1, 2 + * frame 4 : 1, 3 + * frame 5 : 4 + */ + + var frameSegmentsMapping = new Map(); + var _loop3 = function _loop3(frameSegment) { + var segmentIndex = getSegmentIndex(multiframe, frameSegment); + if (segmentIndex === undefined) { + console.warn("Could not retrieve the segment index for frame segment " + frameSegment + ", skipping this frame."); + return "continue"; + } + var imageId = findReferenceSourceImageId(multiframe, frameSegment, imageIds, metadataProvider, tolerance); + if (!imageId) { + console.warn("Image not present in stack, can't import frame : " + frameSegment + "."); + return "continue"; + } + var imageIdIndex = imageIds.findIndex(function (element) { + return element === imageId; + }); + if (frameSegmentsMapping.has(imageIdIndex)) { + var segmentArray = frameSegmentsMapping.get(imageIdIndex); + if (!segmentArray.includes(frameSegment)) { + segmentArray.push(frameSegment); + frameSegmentsMapping.set(imageIdIndex, segmentArray); + } + } else { + frameSegmentsMapping.set(imageIdIndex, [frameSegment]); + } + }; + for (var frameSegment = 0; frameSegment < groupsLen; ++frameSegment) { + var _ret = _loop3(frameSegment); + if (_ret === "continue") continue; + } + var _iterator = _createForOfIteratorHelper(frameSegmentsMapping.entries()), + _step; + try { + for (_iterator.s(); !(_step = _iterator.n()).done;) { + var _step$value = _slicedToArray(_step.value, 2), + user = _step$value[0], + role = _step$value[1]; + var temp2DArray = new Uint16Array(sliceLength).fill(0); + for (var i = 0; i < role.length; ++i) { + var _frameSegment = role[i]; + var PerFrameFunctionalGroups = PerFrameFunctionalGroupsSequence[_frameSegment]; + var pixelDataI2D = ndarray$1(new Uint8Array(pixelData.buffer, _frameSegment * sliceLength, sliceLength), [Rows, Columns]); + var alignedPixelDataI = void 0; + var hasCoordinateSystem = ("FrameOfReferenceUID" in multiframe); + if (hasCoordinateSystem) { + var ImageOrientationPatientI = sharedImageOrientationPatient || PerFrameFunctionalGroups.PlaneOrientationSequence.ImageOrientationPatient; + alignedPixelDataI = alignPixelDataWithSourceData(pixelDataI2D, ImageOrientationPatientI, validOrientations, tolerance); + } else { + alignedPixelDataI = pixelDataI2D; + } + if (!alignedPixelDataI) { + console.warn("Individual SEG frames are out of plane with respect to the first SEG frame, this is not yet supported, skipping this frame."); + continue; + } + var data = alignedPixelDataI.data; + for (var j = 0, len = data.length; j < len; ++j) { + if (data[j] !== 0) { + temp2DArray[j]++; + if (temp2DArray[j] > 1) { + return true; + } + } + } + } + } + } catch (err) { + _iterator.e(err); + } finally { + _iterator.f(); + } + return false; + } + function insertOverlappingPixelDataPlanar(segmentsOnFrame, segmentsOnFrameArray, labelmapBufferArray, pixelData, multiframe, imageIds, validOrientations, metadataProvider, tolerance) { + var SharedFunctionalGroupsSequence = multiframe.SharedFunctionalGroupsSequence, + PerFrameFunctionalGroupsSequence = multiframe.PerFrameFunctionalGroupsSequence, + Rows = multiframe.Rows, + Columns = multiframe.Columns; + var sharedImageOrientationPatient = SharedFunctionalGroupsSequence.PlaneOrientationSequence ? SharedFunctionalGroupsSequence.PlaneOrientationSequence.ImageOrientationPatient : undefined; + var sliceLength = Columns * Rows; + var arrayBufferLength = sliceLength * imageIds.length * 2; // 2 bytes per label voxel in cst4. + + // indicate the number of labelMaps + var M = 1; + + // indicate the current labelMap array index; + var m = 0; + + // temp array for checking overlaps + var tempBuffer = labelmapBufferArray[m].slice(0); + + // temp list for checking overlaps + var tempSegmentsOnFrame = cloneDeep(segmentsOnFrameArray[m]); + + /** split overlapping SEGs algorithm for each segment: + * A) copy the labelmapBuffer in the array with index 0 + * B) add the segment pixel per pixel on the copied buffer from (A) + * C) if no overlap, copy the results back on the orignal array from (A) + * D) if overlap, repeat increasing the index m up to M (if out of memory, add new buffer in the array and M++); + */ + + var numberOfSegs = multiframe.SegmentSequence.length; + for (var segmentIndexToProcess = 1; segmentIndexToProcess <= numberOfSegs; ++segmentIndexToProcess) { + var _loop4 = function _loop4(_i2, groupsLen) { + var PerFrameFunctionalGroups = PerFrameFunctionalGroupsSequence[_i2]; + var segmentIndex = getSegmentIndex(multiframe, _i2); + if (segmentIndex === undefined) { + throw new Error("Could not retrieve the segment index. Aborting segmentation loading."); + } + if (segmentIndex !== segmentIndexToProcess) { + i = _i2; + return "continue"; + } + var pixelDataI2D = ndarray$1(new Uint8Array(pixelData.buffer, _i2 * sliceLength, sliceLength), [Rows, Columns]); + var alignedPixelDataI = void 0; + var hasCoordinateSystem = ("FrameOfReferenceUID" in multiframe); + if (hasCoordinateSystem) { + var ImageOrientationPatientI = sharedImageOrientationPatient || PerFrameFunctionalGroups.PlaneOrientationSequence.ImageOrientationPatient; + alignedPixelDataI = alignPixelDataWithSourceData(pixelDataI2D, ImageOrientationPatientI, validOrientations, tolerance); + } else { + alignedPixelDataI = pixelDataI2D; + } + if (!alignedPixelDataI) { + throw new Error("Individual SEG frames are out of plane with respect to the first SEG frame. " + "This is not yet supported. Aborting segmentation loading."); + } + var imageId = findReferenceSourceImageId(multiframe, _i2, imageIds, metadataProvider, tolerance); + if (!imageId) { + console.warn("Image not present in stack, can't import frame : " + _i2 + "."); + i = _i2; + return "continue"; + } + var sourceImageMetadata = metadataProvider.get("imagePixelModule", imageId); + if (Rows !== sourceImageMetadata.rows || Columns !== sourceImageMetadata.columns) { + throw new Error("Individual SEG frames have different geometry dimensions (Rows and Columns) " + "respect to the source image reference frame. This is not yet supported. " + "Aborting segmentation loading. "); + } + var imageIdIndex = imageIds.findIndex(function (element) { + return element === imageId; + }); + var byteOffset = sliceLength * 2 * imageIdIndex; // 2 bytes/pixel + + var labelmap2DView = new Uint16Array(tempBuffer, byteOffset, sliceLength); + var data = alignedPixelDataI.data; + var segmentOnFrame = false; + for (var j = 0, len = alignedPixelDataI.data.length; j < len; ++j) { + if (data[j]) { + if (labelmap2DView[j] !== 0) { + m++; + if (m >= M) { + labelmapBufferArray[m] = new ArrayBuffer(arrayBufferLength); + segmentsOnFrameArray[m] = []; + M++; + } + tempBuffer = labelmapBufferArray[m].slice(0); + tempSegmentsOnFrame = cloneDeep(segmentsOnFrameArray[m]); + _i2 = 0; + break; + } else { + labelmap2DView[j] = segmentIndex; + segmentOnFrame = true; + } + } + } + if (segmentOnFrame) { + if (!tempSegmentsOnFrame[imageIdIndex]) { + tempSegmentsOnFrame[imageIdIndex] = []; + } + tempSegmentsOnFrame[imageIdIndex].push(segmentIndex); + if (!segmentsOnFrame[imageIdIndex]) { + segmentsOnFrame[imageIdIndex] = []; + } + segmentsOnFrame[imageIdIndex].push(segmentIndex); + } + i = _i2; + }; + for (var i = 0, groupsLen = PerFrameFunctionalGroupsSequence.length; i < groupsLen; ++i) { + var _ret2 = _loop4(i, groupsLen); + if (_ret2 === "continue") continue; + } + labelmapBufferArray[m] = tempBuffer.slice(0); + segmentsOnFrameArray[m] = cloneDeep(tempSegmentsOnFrame); + + // reset temp variables/buffers for new segment + m = 0; + tempBuffer = labelmapBufferArray[m].slice(0); + tempSegmentsOnFrame = cloneDeep(segmentsOnFrameArray[m]); + } + } + var getSegmentIndex = function getSegmentIndex(multiframe, frame) { + var PerFrameFunctionalGroupsSequence = multiframe.PerFrameFunctionalGroupsSequence, + SharedFunctionalGroupsSequence = multiframe.SharedFunctionalGroupsSequence; + var PerFrameFunctionalGroups = PerFrameFunctionalGroupsSequence[frame]; + return PerFrameFunctionalGroups && PerFrameFunctionalGroups.SegmentIdentificationSequence ? PerFrameFunctionalGroups.SegmentIdentificationSequence.ReferencedSegmentNumber : SharedFunctionalGroupsSequence.SegmentIdentificationSequence ? SharedFunctionalGroupsSequence.SegmentIdentificationSequence.ReferencedSegmentNumber : undefined; + }; + function insertPixelDataPlanar(segmentsOnFrame, segmentsOnFrameArray, labelmapBufferArray, pixelData, multiframe, imageIds, validOrientations, metadataProvider, tolerance) { + var SharedFunctionalGroupsSequence = multiframe.SharedFunctionalGroupsSequence, + PerFrameFunctionalGroupsSequence = multiframe.PerFrameFunctionalGroupsSequence, + Rows = multiframe.Rows, + Columns = multiframe.Columns; + var sharedImageOrientationPatient = SharedFunctionalGroupsSequence.PlaneOrientationSequence ? SharedFunctionalGroupsSequence.PlaneOrientationSequence.ImageOrientationPatient : undefined; + var sliceLength = Columns * Rows; + var _loop5 = function _loop5(groupsLen, _i3) { + var PerFrameFunctionalGroups = PerFrameFunctionalGroupsSequence[_i3]; + var pixelDataI2D = ndarray$1(new Uint8Array(pixelData.buffer, _i3 * sliceLength, sliceLength), [Rows, Columns]); + var alignedPixelDataI = void 0; + var hasCoordinateSystem = ("FrameOfReferenceUID" in multiframe); + if (hasCoordinateSystem) { + var ImageOrientationPatientI = sharedImageOrientationPatient || PerFrameFunctionalGroups.PlaneOrientationSequence.ImageOrientationPatient; + alignedPixelDataI = alignPixelDataWithSourceData(pixelDataI2D, ImageOrientationPatientI, validOrientations, tolerance); + } else { + alignedPixelDataI = pixelDataI2D; + } + if (!alignedPixelDataI) { + throw new Error("Individual SEG frames are out of plane with respect to the first SEG frame. " + "This is not yet supported. Aborting segmentation loading."); + } + var segmentIndex = getSegmentIndex(multiframe, _i3); + if (segmentIndex === undefined) { + throw new Error("Could not retrieve the segment index. Aborting segmentation loading."); + } + var imageId = findReferenceSourceImageId(multiframe, _i3, imageIds, metadataProvider, tolerance); + if (!imageId) { + console.warn("Image not present in stack, can't import frame : " + _i3 + "."); + return "continue"; + } + var sourceImageMetadata = metadataProvider.get("imagePixelModule", imageId); + if (Rows !== sourceImageMetadata.rows || Columns !== sourceImageMetadata.columns) { + throw new Error("Individual SEG frames have different geometry dimensions (Rows and Columns) " + "respect to the source image reference frame. This is not yet supported. " + "Aborting segmentation loading. "); + } + var imageIdIndex = imageIds.findIndex(function (element) { + return element === imageId; + }); + var byteOffset = sliceLength * 2 * imageIdIndex; // 2 bytes/pixel + + var labelmap2DView = new Uint16Array(labelmapBufferArray[0], byteOffset, sliceLength); + var data = alignedPixelDataI.data; + for (var j = 0, len = alignedPixelDataI.data.length; j < len; ++j) { + if (data[j]) { + for (var x = j; x < len; ++x) { + if (data[x]) { + labelmap2DView[x] = segmentIndex; + } + } + if (!segmentsOnFrame[imageIdIndex]) { + segmentsOnFrame[imageIdIndex] = []; + } + segmentsOnFrame[imageIdIndex].push(segmentIndex); + break; + } + } + }; + for (var _i3 = 0, groupsLen = PerFrameFunctionalGroupsSequence.length; _i3 < groupsLen; ++_i3) { + var _ret3 = _loop5(groupsLen, _i3); + if (_ret3 === "continue") continue; + } + } + function checkOrientation(multiframe, validOrientations, sourceDataDimensions, tolerance) { + var SharedFunctionalGroupsSequence = multiframe.SharedFunctionalGroupsSequence, + PerFrameFunctionalGroupsSequence = multiframe.PerFrameFunctionalGroupsSequence; + var sharedImageOrientationPatient = SharedFunctionalGroupsSequence.PlaneOrientationSequence ? SharedFunctionalGroupsSequence.PlaneOrientationSequence.ImageOrientationPatient : undefined; + + // Check if in plane. + var PerFrameFunctionalGroups = PerFrameFunctionalGroupsSequence[0]; + var iop = sharedImageOrientationPatient || PerFrameFunctionalGroups.PlaneOrientationSequence.ImageOrientationPatient; + var inPlane = validOrientations.some(function (operation) { + return compareArrays(iop, operation, tolerance); + }); + if (inPlane) { + return "Planar"; + } + if (checkIfPerpendicular(iop, validOrientations[0], tolerance) && sourceDataDimensions.includes(multiframe.Rows) && sourceDataDimensions.includes(multiframe.Columns)) { + // Perpendicular and fits on same grid. + return "Perpendicular"; + } + return "Oblique"; + } + + /** + * checkIfPerpendicular - Returns true if iop1 and iop2 are perpendicular + * within a tolerance. + * + * @param {Number[6]} iop1 An ImageOrientationPatient array. + * @param {Number[6]} iop2 An ImageOrientationPatient array. + * @param {Number} tolerance. + * @return {Boolean} True if iop1 and iop2 are equal. + */ + function checkIfPerpendicular(iop1, iop2, tolerance) { + var absDotColumnCosines = Math.abs(iop1[0] * iop2[0] + iop1[1] * iop2[1] + iop1[2] * iop2[2]); + var absDotRowCosines = Math.abs(iop1[3] * iop2[3] + iop1[4] * iop2[4] + iop1[5] * iop2[5]); + return (absDotColumnCosines < tolerance || Math.abs(absDotColumnCosines - 1) < tolerance) && (absDotRowCosines < tolerance || Math.abs(absDotRowCosines - 1) < tolerance); + } + + /** + * unpackPixelData - Unpacks bitpacked pixelData if the Segmentation is BINARY. + * + * @param {Object} multiframe The multiframe dataset. + * @return {Uint8Array} The unpacked pixelData. + */ + function unpackPixelData(multiframe) { + var segType = multiframe.SegmentationType; + var data; + if (Array.isArray(multiframe.PixelData)) { + data = multiframe.PixelData[0]; + } else { + data = multiframe.PixelData; + } + if (data === undefined) { + log.error("This segmentation pixeldata is undefined."); + } + if (segType === "BINARY") { + return BitArray.unpack(data); + } + var pixelData = new Uint8Array(data); + var max = multiframe.MaximumFractionalValue; + var onlyMaxAndZero = pixelData.find(function (element) { + return element !== 0 && element !== max; + }) === undefined; + if (!onlyMaxAndZero) { + // This is a fractional segmentation, which is not currently supported. + return; + } + log.warn("This segmentation object is actually binary... processing as such."); + return pixelData; + } + + /** + * getImageIdOfSourceImagebySourceImageSequence - Returns the Cornerstone imageId of the source image. + * + * @param {Object} SourceImageSequence Sequence describing the source image. + * @param {String[]} imageIds A list of imageIds. + * @param {Object} metadataProvider A Cornerstone metadataProvider to query + * metadata from imageIds. + * @return {String} The corresponding imageId. + */ + function getImageIdOfSourceImagebySourceImageSequence(SourceImageSequence, imageIds, metadataProvider) { + var ReferencedSOPInstanceUID = SourceImageSequence.ReferencedSOPInstanceUID, + ReferencedFrameNumber = SourceImageSequence.ReferencedFrameNumber; + return ReferencedFrameNumber ? getImageIdOfReferencedFrame(ReferencedSOPInstanceUID, ReferencedFrameNumber, imageIds, metadataProvider) : getImageIdOfReferencedSingleFramedSOPInstance(ReferencedSOPInstanceUID, imageIds, metadataProvider); + } + + /** + * getImageIdOfSourceImagebyGeometry - Returns the Cornerstone imageId of the source image. + * + * @param {String} ReferencedSeriesInstanceUID Referenced series of the source image. + * @param {String} FrameOfReferenceUID Frame of reference. + * @param {Object} PerFrameFunctionalGroup Sequence describing segmentation reference attributes per frame. + * @param {String[]} imageIds A list of imageIds. + * @param {Object} metadataProvider A Cornerstone metadataProvider to query + * @param {Float} tolerance The tolerance parameter + * + * @return {String} The corresponding imageId. + */ + function getImageIdOfSourceImagebyGeometry(ReferencedSeriesInstanceUID, FrameOfReferenceUID, PerFrameFunctionalGroup, imageIds, metadataProvider, tolerance) { + if (ReferencedSeriesInstanceUID === undefined || PerFrameFunctionalGroup.PlanePositionSequence === undefined || PerFrameFunctionalGroup.PlanePositionSequence[0] === undefined || PerFrameFunctionalGroup.PlanePositionSequence[0].ImagePositionPatient === undefined) { + return undefined; + } + for (var imageIdsIndexc = 0; imageIdsIndexc < imageIds.length; ++imageIdsIndexc) { + var sourceImageMetadata = metadataProvider.get("instance", imageIds[imageIdsIndexc]); + if (sourceImageMetadata === undefined || sourceImageMetadata.ImagePositionPatient === undefined || sourceImageMetadata.FrameOfReferenceUID !== FrameOfReferenceUID || sourceImageMetadata.SeriesInstanceUID !== ReferencedSeriesInstanceUID) { + continue; + } + if (compareArrays(PerFrameFunctionalGroup.PlanePositionSequence[0].ImagePositionPatient, sourceImageMetadata.ImagePositionPatient, tolerance)) { + return imageIds[imageIdsIndexc]; + } + } + } + + /** + * getImageIdOfReferencedSingleFramedSOPInstance - Returns the imageId + * corresponding to the specified sopInstanceUid for single-frame images. + * + * @param {String} sopInstanceUid The sopInstanceUid of the desired image. + * @param {String[]} imageIds The list of imageIds. + * @param {Object} metadataProvider The metadataProvider to obtain sopInstanceUids + * from the cornerstone imageIds. + * @return {String} The imageId that corresponds to the sopInstanceUid. + */ + function getImageIdOfReferencedSingleFramedSOPInstance(sopInstanceUid, imageIds, metadataProvider) { + return imageIds.find(function (imageId) { + var sopCommonModule = metadataProvider.get("sopCommonModule", imageId); + if (!sopCommonModule) { + return; + } + return sopCommonModule.sopInstanceUID === sopInstanceUid; + }); + } + + /** + * getImageIdOfReferencedFrame - Returns the imageId corresponding to the + * specified sopInstanceUid and frameNumber for multi-frame images. + * + * @param {String} sopInstanceUid The sopInstanceUid of the desired image. + * @param {Number} frameNumber The frame number. + * @param {String} imageIds The list of imageIds. + * @param {Object} metadataProvider The metadataProvider to obtain sopInstanceUids + * from the cornerstone imageIds. + * @return {String} The imageId that corresponds to the sopInstanceUid. + */ + function getImageIdOfReferencedFrame(sopInstanceUid, frameNumber, imageIds, metadataProvider) { + var imageId = imageIds.find(function (imageId) { + var sopCommonModule = metadataProvider.get("sopCommonModule", imageId); + if (!sopCommonModule) { + return; + } + var imageIdFrameNumber = Number(imageId.split("frame=")[1]); + return ( + //frameNumber is zero indexed for cornerstoneWADOImageLoader image Ids. + sopCommonModule.sopInstanceUID === sopInstanceUid && imageIdFrameNumber === frameNumber - 1 + ); + }); + return imageId; + } + + /** + * getValidOrientations - returns an array of valid orientations. + * + * @param {Number[6]} iop The row (0..2) an column (3..5) direction cosines. + * @return {Number[8][6]} An array of valid orientations. + */ + function getValidOrientations(iop) { + var orientations = []; + + // [0, 1, 2]: 0, 0hf, 0vf + // [3, 4, 5]: 90, 90hf, 90vf + // [6, 7]: 180, 270 + + orientations[0] = iop; + orientations[1] = flipImageOrientationPatient.h(iop); + orientations[2] = flipImageOrientationPatient.v(iop); + var iop90 = rotateDirectionCosinesInPlane(iop, Math.PI / 2); + orientations[3] = iop90; + orientations[4] = flipImageOrientationPatient.h(iop90); + orientations[5] = flipImageOrientationPatient.v(iop90); + orientations[6] = rotateDirectionCosinesInPlane(iop, Math.PI); + orientations[7] = rotateDirectionCosinesInPlane(iop, 1.5 * Math.PI); + return orientations; + } + + /** + * alignPixelDataWithSourceData - + * + * @param {Ndarray} pixelData2D - The data to align. + * @param {Number[6]} iop - The orientation of the image slice. + * @param {Number[8][6]} orientations - An array of valid imageOrientationPatient values. + * @param {Number} tolerance. + * @return {Ndarray} The aligned pixelData. + */ + function alignPixelDataWithSourceData(pixelData2D, iop, orientations, tolerance) { + if (compareArrays(iop, orientations[0], tolerance)) { + return pixelData2D; + } else if (compareArrays(iop, orientations[1], tolerance)) { + // Flipped vertically. + + // Undo Flip + return flipMatrix2D.v(pixelData2D); + } else if (compareArrays(iop, orientations[2], tolerance)) { + // Flipped horizontally. + + // Unfo flip + return flipMatrix2D.h(pixelData2D); + } else if (compareArrays(iop, orientations[3], tolerance)) { + //Rotated 90 degrees + + // Rotate back + return rotateMatrix902D(pixelData2D); + } else if (compareArrays(iop, orientations[4], tolerance)) { + //Rotated 90 degrees and fliped horizontally. + + // Undo flip and rotate back. + return rotateMatrix902D(flipMatrix2D.h(pixelData2D)); + } else if (compareArrays(iop, orientations[5], tolerance)) { + // Rotated 90 degrees and fliped vertically + + // Unfo flip and rotate back. + return rotateMatrix902D(flipMatrix2D.v(pixelData2D)); + } else if (compareArrays(iop, orientations[6], tolerance)) { + // Rotated 180 degrees. // TODO -> Do this more effeciently, there is a 1:1 mapping like 90 degree rotation. + + return rotateMatrix902D(rotateMatrix902D(pixelData2D)); + } else if (compareArrays(iop, orientations[7], tolerance)) { + // Rotated 270 degrees + + // Rotate back. + return rotateMatrix902D(rotateMatrix902D(rotateMatrix902D(pixelData2D))); + } + } + + /** + * compareArrays - Returns true if array1 and array2 are equal + * within a tolerance. + * + * @param {Number[]} array1 - An array. + * @param {Number[]} array2 - An array. + * @param {Number} tolerance. + * @return {Boolean} True if array1 and array2 are equal. + */ + function compareArrays(array1, array2, tolerance) { + if (array1.length != array2.length) { + return false; + } + for (var _i4 = 0; _i4 < array1.length; ++_i4) { + if (!nearlyEqual(array1[_i4], array2[_i4], tolerance)) { + return false; + } + } + return true; + } + function getSegmentMetadata(multiframe, seriesInstanceUid) { + var segmentSequence = multiframe.SegmentSequence; + var data = []; + if (Array.isArray(segmentSequence)) { + data = [undefined].concat(_toConsumableArray(segmentSequence)); + } else { + // Only one segment, will be stored as an object. + data = [undefined, segmentSequence]; + } + return { + seriesInstanceUid: seriesInstanceUid, + data: data + }; + } + + var Segmentation$1 = { + generateSegmentation: generateSegmentation, + generateToolState: generateToolState, + fillSegmentation: fillSegmentation + }; + + /** + * generateSegmentation - Generates a DICOM Segmentation object given cornerstoneTools data. + * + * @param {object[]} images An array of the cornerstone image objects. + * @param {Object|Object[]} labelmaps3DorBrushData For 4.X: The cornerstone `Labelmap3D` object, or an array of objects. + * For 3.X: the BrushData. + * @param {number} cornerstoneToolsVersion The cornerstoneTools major version to map against. + * @returns {Object} + */ + function generateSegmentation(images, labelmaps3DorBrushData) { + var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : { + includeSliceSpacing: true + }; + var cornerstoneToolsVersion = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 4; + if (cornerstoneToolsVersion === 4) { + return Segmentation$2.generateSegmentation(images, labelmaps3DorBrushData, options); + } + if (cornerstoneToolsVersion === 3) { + return Segmentation$3.generateSegmentation(images, labelmaps3DorBrushData, options); + } + console.warn("No generateSegmentation adapater for cornerstone version ".concat(cornerstoneToolsVersion, ", exiting.")); + } + + /** + * generateToolState - Given a set of cornrstoneTools imageIds and a Segmentation buffer, + * derive cornerstoneTools toolState and brush metadata. + * + * @param {string[]} imageIds An array of the imageIds. + * @param {ArrayBuffer} arrayBuffer The SEG arrayBuffer. + * @param {*} metadataProvider + * @param {bool} skipOverlapping - skip checks for overlapping segs, default value false. + * @param {number} tolerance - default value 1.e-3. + * @param {number} cornerstoneToolsVersion - default value 4. + * + * @returns {Object} The toolState and an object from which the + * segment metadata can be derived. + */ + function generateToolState(imageIds, arrayBuffer, metadataProvider) { + var skipOverlapping = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; + var tolerance = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1e-3; + var cornerstoneToolsVersion = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 4; + if (cornerstoneToolsVersion === 4) { + return Segmentation$2.generateToolState(imageIds, arrayBuffer, metadataProvider, skipOverlapping, tolerance); + } + if (cornerstoneToolsVersion === 3) { + return Segmentation$3.generateToolState(imageIds, arrayBuffer, metadataProvider); + } + console.warn("No generateToolState adapater for cornerstone version ".concat(cornerstoneToolsVersion, ", exiting.")); + } + + /** + * fillSegmentation - Fills a derived segmentation dataset with cornerstoneTools `LabelMap3D` data. + * + * @param {object[]} segmentation An empty segmentation derived dataset. + * @param {Object|Object[]} inputLabelmaps3D The cornerstone `Labelmap3D` object, or an array of objects. + * @param {Object} userOptions Options object to override default options. + * @returns {Blob} description + */ + function fillSegmentation(segmentation, inputLabelmaps3D) { + var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : { + includeSliceSpacing: true + }; + var cornerstoneToolsVersion = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 4; + if (cornerstoneToolsVersion === 4) { + return Segmentation$2.fillSegmentation(segmentation, inputLabelmaps3D, options); + } + console.warn("No generateSegmentation adapater for cornerstone version ".concat(cornerstoneToolsVersion, ", exiting.")); + } + + var CobbAngle$1 = /*#__PURE__*/function (_TID300Measurement) { + _inherits(CobbAngle, _TID300Measurement); + var _super = _createSuper(CobbAngle); + function CobbAngle() { + _classCallCheck(this, CobbAngle); + return _super.apply(this, arguments); + } + _createClass(CobbAngle, [{ + key: "contentItem", + value: function contentItem() { + var _this$props = this.props, + point1 = _this$props.point1, + point2 = _this$props.point2, + point3 = _this$props.point3, + point4 = _this$props.point4, + rAngle = _this$props.rAngle, + ReferencedSOPSequence = _this$props.ReferencedSOPSequence; + return this.getMeasurement([{ + RelationshipType: "CONTAINS", + ValueType: "NUM", + ConceptNameCodeSequence: { + CodeValue: "285285000", + CodingSchemeDesignator: "SCT", + CodeMeaning: "Cobb angle" + }, + MeasuredValueSequence: { + MeasurementUnitsCodeSequence: { + CodeValue: "deg", + CodingSchemeDesignator: "UCUM", + CodingSchemeVersion: "1.4", + CodeMeaning: "\xB0" + }, + NumericValue: rAngle + }, + ContentSequence: { + RelationshipType: "INFERRED FROM", + ValueType: "SCOORD", + GraphicType: "POLYLINE", + GraphicData: [point1.x, point1.y, point2.x, point2.y, point3.x, point3.y, point4.x, point4.y], + ContentSequence: { + RelationshipType: "SELECTED FROM", + ValueType: "IMAGE", + ReferencedSOPSequence: ReferencedSOPSequence + } + } + }]); + } + }]); + return CobbAngle; + }(TID300Measurement); + + var COBB_ANGLE = "CobbAngle"; + var CobbAngle = /*#__PURE__*/function () { + function CobbAngle() { + _classCallCheck(this, CobbAngle); + } + + // TODO: this function is required for all Cornerstone Tool Adapters, since it is called by MeasurementReport. + _createClass(CobbAngle, null, [{ + key: "getMeasurementData", + value: function getMeasurementData(MeasurementGroup) { + var _MeasurementReport$ge = MeasurementReport$3.getSetupMeasurementData(MeasurementGroup), + defaultState = _MeasurementReport$ge.defaultState, + NUMGroup = _MeasurementReport$ge.NUMGroup, + SCOORDGroup = _MeasurementReport$ge.SCOORDGroup; + var state = _objectSpread2(_objectSpread2({}, defaultState), {}, { + rAngle: NUMGroup.MeasuredValueSequence.NumericValue, + toolType: CobbAngle.toolType, + handles: { + start: {}, + end: {}, + start2: { + highlight: true, + drawnIndependently: true + }, + end2: { + highlight: true, + drawnIndependently: true + }, + textBox: { + hasMoved: false, + movesIndependently: false, + drawnIndependently: true, + allowedOutsideImage: true, + hasBoundingBox: true + } + } + }); + var _SCOORDGroup$GraphicD = _slicedToArray(SCOORDGroup.GraphicData, 8); + state.handles.start.x = _SCOORDGroup$GraphicD[0]; + state.handles.start.y = _SCOORDGroup$GraphicD[1]; + state.handles.end.x = _SCOORDGroup$GraphicD[2]; + state.handles.end.y = _SCOORDGroup$GraphicD[3]; + state.handles.start2.x = _SCOORDGroup$GraphicD[4]; + state.handles.start2.y = _SCOORDGroup$GraphicD[5]; + state.handles.end2.x = _SCOORDGroup$GraphicD[6]; + state.handles.end2.y = _SCOORDGroup$GraphicD[7]; + return state; + } + }, { + key: "getTID300RepresentationArguments", + value: function getTID300RepresentationArguments(tool) { + var handles = tool.handles, + finding = tool.finding, + findingSites = tool.findingSites; + var point1 = handles.start; + var point2 = handles.end; + var point3 = handles.start2; + var point4 = handles.end2; + var rAngle = tool.rAngle; + var trackingIdentifierTextValue = "cornerstoneTools@^4.0.0:CobbAngle"; + return { + point1: point1, + point2: point2, + point3: point3, + point4: point4, + rAngle: rAngle, + trackingIdentifierTextValue: trackingIdentifierTextValue, + finding: finding, + findingSites: findingSites || [] + }; + } + }]); + return CobbAngle; + }(); + CobbAngle.toolType = COBB_ANGLE; + CobbAngle.utilityToolType = COBB_ANGLE; + CobbAngle.TID300Representation = CobbAngle$1; + CobbAngle.isValidCornerstoneTrackingIdentifier = function (TrackingIdentifier) { + if (!TrackingIdentifier.includes(":")) { + return false; + } + var _TrackingIdentifier$s = TrackingIdentifier.split(":"), + _TrackingIdentifier$s2 = _slicedToArray(_TrackingIdentifier$s, 2), + cornerstone4Tag = _TrackingIdentifier$s2[0], + toolType = _TrackingIdentifier$s2[1]; + if (cornerstone4Tag !== CORNERSTONE_4_TAG) { + return false; + } + return toolType === COBB_ANGLE; + }; + MeasurementReport$3.registerTool(CobbAngle); + + var ANGLE = "Angle"; + var Angle = /*#__PURE__*/function () { + function Angle() { + _classCallCheck(this, Angle); + } + + /** + * Generate TID300 measurement data for a plane angle measurement - use a CobbAngle, but label it as Angle + * @param MeasurementGroup + * @returns + */ + _createClass(Angle, null, [{ + key: "getMeasurementData", + value: function getMeasurementData(MeasurementGroup) { + var _MeasurementReport$ge = MeasurementReport$3.getSetupMeasurementData(MeasurementGroup), + defaultState = _MeasurementReport$ge.defaultState, + NUMGroup = _MeasurementReport$ge.NUMGroup, + SCOORDGroup = _MeasurementReport$ge.SCOORDGroup; + var state = _objectSpread2(_objectSpread2({}, defaultState), {}, { + rAngle: NUMGroup.MeasuredValueSequence.NumericValue, + toolType: Angle.toolType, + handles: { + start: {}, + middle: {}, + end: {}, + textBox: { + hasMoved: false, + movesIndependently: false, + drawnIndependently: true, + allowedOutsideImage: true, + hasBoundingBox: true + } + } + }); + var _SCOORDGroup$GraphicD = _slicedToArray(SCOORDGroup.GraphicData, 8); + state.handles.start.x = _SCOORDGroup$GraphicD[0]; + state.handles.start.y = _SCOORDGroup$GraphicD[1]; + state.handles.middle.x = _SCOORDGroup$GraphicD[2]; + state.handles.middle.y = _SCOORDGroup$GraphicD[3]; + state.handles.middle.x = _SCOORDGroup$GraphicD[4]; + state.handles.middle.y = _SCOORDGroup$GraphicD[5]; + state.handles.end.x = _SCOORDGroup$GraphicD[6]; + state.handles.end.y = _SCOORDGroup$GraphicD[7]; + return state; + } + }, { + key: "getTID300RepresentationArguments", + value: function getTID300RepresentationArguments(tool) { + var handles = tool.handles, + finding = tool.finding, + findingSites = tool.findingSites; + var point1 = handles.start; + var point2 = handles.middle; + var point3 = handles.middle; + var point4 = handles.end; + var rAngle = tool.rAngle; + var trackingIdentifierTextValue = "cornerstoneTools@^4.0.0:Angle"; + return { + point1: point1, + point2: point2, + point3: point3, + point4: point4, + rAngle: rAngle, + trackingIdentifierTextValue: trackingIdentifierTextValue, + finding: finding, + findingSites: findingSites || [] + }; + } + }]); + return Angle; + }(); + Angle.toolType = ANGLE; + Angle.utilityToolType = ANGLE; + Angle.TID300Representation = CobbAngle$1; + Angle.isValidCornerstoneTrackingIdentifier = function (TrackingIdentifier) { + if (!TrackingIdentifier.includes(":")) { + return false; + } + var _TrackingIdentifier$s = TrackingIdentifier.split(":"), + _TrackingIdentifier$s2 = _slicedToArray(_TrackingIdentifier$s, 2), + cornerstone4Tag = _TrackingIdentifier$s2[0], + toolType = _TrackingIdentifier$s2[1]; + if (cornerstone4Tag !== CORNERSTONE_4_TAG) { + return false; + } + return toolType === ANGLE; + }; + MeasurementReport$3.registerTool(Angle); + + var RectangleRoi = /*#__PURE__*/function () { + function RectangleRoi() { + _classCallCheck(this, RectangleRoi); + } + _createClass(RectangleRoi, null, [{ + key: "getMeasurementData", + value: function getMeasurementData(MeasurementGroup) { + var _MeasurementReport$ge = MeasurementReport$3.getSetupMeasurementData(MeasurementGroup), + defaultState = _MeasurementReport$ge.defaultState, + SCOORDGroup = _MeasurementReport$ge.SCOORDGroup, + NUMGroup = _MeasurementReport$ge.NUMGroup; + var state = _objectSpread2(_objectSpread2({}, defaultState), {}, { + toolType: RectangleRoi.toolType, + handles: { + start: {}, + end: {}, + textBox: { + active: false, + hasMoved: false, + movesIndependently: false, + drawnIndependently: true, + allowedOutsideImage: true, + hasBoundingBox: true + }, + initialRotation: 0 + }, + cachedStats: { + area: NUMGroup ? NUMGroup.MeasuredValueSequence.NumericValue : 0 + }, + color: undefined, + invalidated: true + }); + var _SCOORDGroup$GraphicD = _slicedToArray(SCOORDGroup.GraphicData, 6); + state.handles.start.x = _SCOORDGroup$GraphicD[0]; + state.handles.start.y = _SCOORDGroup$GraphicD[1]; + _SCOORDGroup$GraphicD[2]; + _SCOORDGroup$GraphicD[3]; + state.handles.end.x = _SCOORDGroup$GraphicD[4]; + state.handles.end.y = _SCOORDGroup$GraphicD[5]; + return state; + } + }, { + key: "getTID300RepresentationArguments", + value: function getTID300RepresentationArguments(tool) { + var finding = tool.finding, + findingSites = tool.findingSites, + _tool$cachedStats = tool.cachedStats, + cachedStats = _tool$cachedStats === void 0 ? {} : _tool$cachedStats, + handles = tool.handles; + console.log("getTID300 Rectangle", tool, cachedStats, handles); + var start = handles.start, + end = handles.end; + var points = [start, { + x: start.x, + y: end.y + }, end, { + x: end.x, + y: start.y + }]; + var area = cachedStats.area, + perimeter = cachedStats.perimeter; + console.log("Point=", points, "cachedStats=", cachedStats); + var trackingIdentifierTextValue = "cornerstoneTools@^4.0.0:RectangleRoi"; + return { + points: points, + area: area, + perimeter: perimeter, + trackingIdentifierTextValue: trackingIdentifierTextValue, + finding: finding, + findingSites: findingSites || [] + }; + } + }]); + return RectangleRoi; + }(); + RectangleRoi.toolType = "RectangleRoi"; + RectangleRoi.utilityToolType = "RectangleRoi"; + RectangleRoi.TID300Representation = Polyline$1; + RectangleRoi.isValidCornerstoneTrackingIdentifier = function (TrackingIdentifier) { + if (!TrackingIdentifier.includes(":")) { + return false; + } + var _TrackingIdentifier$s = TrackingIdentifier.split(":"), + _TrackingIdentifier$s2 = _slicedToArray(_TrackingIdentifier$s, 2), + cornerstone4Tag = _TrackingIdentifier$s2[0], + toolType = _TrackingIdentifier$s2[1]; + if (cornerstone4Tag !== CORNERSTONE_4_TAG) { + return false; + } + return toolType === RectangleRoi.toolType; + }; + MeasurementReport$3.registerTool(RectangleRoi); + + var Cornerstone = { + Length: Length$1, + FreehandRoi: FreehandRoi, + Bidirectional: Bidirectional$1, + EllipticalRoi: EllipticalRoi, + CircleRoi: CircleRoi, + ArrowAnnotate: ArrowAnnotate$1, + MeasurementReport: MeasurementReport$3, + Segmentation: Segmentation$1, + CobbAngle: CobbAngle, + Angle: Angle, + RectangleRoi: RectangleRoi + }; + + // This is a custom coding scheme defined to store some annotations from Cornerstone. + // Note: CodeMeaning is VR type LO, which means we only actually support 64 characters + // here this is fine for most labels, but may be problematic at some point. + var CORNERSTONEFREETEXT = "CORNERSTONEFREETEXT"; + + // Cornerstone specified coding scheme for storing findings + var CodingSchemeDesignator$1 = "CORNERSTONEJS"; + var CodingScheme = { + CodingSchemeDesignator: CodingSchemeDesignator$1, + codeValues: { + CORNERSTONEFREETEXT: CORNERSTONEFREETEXT + } + }; + + var FINDING = { + CodingSchemeDesignator: "DCM", + CodeValue: "121071" + }; + var FINDING_SITE = { + CodingSchemeDesignator: "SCT", + CodeValue: "363698007" + }; + var FINDING_SITE_OLD = { + CodingSchemeDesignator: "SRT", + CodeValue: "G-C0E3" + }; + var codeValueMatch = function codeValueMatch(group, code, oldCode) { + var ConceptNameCodeSequence = group.ConceptNameCodeSequence; + if (!ConceptNameCodeSequence) return; + var CodingSchemeDesignator = ConceptNameCodeSequence.CodingSchemeDesignator, + CodeValue = ConceptNameCodeSequence.CodeValue; + return CodingSchemeDesignator == code.CodingSchemeDesignator && CodeValue == code.CodeValue || oldCode && CodingSchemeDesignator == oldCode.CodingSchemeDesignator && CodeValue == oldCode.CodeValue; + }; + function getTID300ContentItem$1(tool, toolType, ReferencedSOPSequence, toolClass, worldToImageCoords) { + var args = toolClass.getTID300RepresentationArguments(tool, worldToImageCoords); + args.ReferencedSOPSequence = ReferencedSOPSequence; + var TID300Measurement = new toolClass.TID300Representation(args); + return TID300Measurement; + } + function getMeasurementGroup$1(toolType, toolData, ReferencedSOPSequence, worldToImageCoords) { + var toolTypeData = toolData[toolType]; + var toolClass = MeasurementReport$2.CORNERSTONE_TOOL_CLASSES_BY_TOOL_TYPE[toolType]; + if (!toolTypeData || !toolTypeData.data || !toolTypeData.data.length || !toolClass) { + return; + } + + // Loop through the array of tool instances + // for this tool + var Measurements = toolTypeData.data.map(function (tool) { + return getTID300ContentItem$1(tool, toolType, ReferencedSOPSequence, toolClass, worldToImageCoords); + }); + return new TID1501MeasurementGroup(Measurements); + } + var MeasurementReport$2 = /*#__PURE__*/function () { + function MeasurementReport() { + _classCallCheck(this, MeasurementReport); + } + _createClass(MeasurementReport, null, [{ + key: "getCornerstoneLabelFromDefaultState", + value: function getCornerstoneLabelFromDefaultState(defaultState) { + var _defaultState$finding = defaultState.findingSites, + findingSites = _defaultState$finding === void 0 ? [] : _defaultState$finding, + finding = defaultState.finding; + var cornersoneFreeTextCodingValue = CodingScheme.codeValues.CORNERSTONEFREETEXT; + var freeTextLabel = findingSites.find(function (fs) { + return fs.CodeValue === cornersoneFreeTextCodingValue; + }); + if (freeTextLabel) { + return freeTextLabel.CodeMeaning; + } + if (finding && finding.CodeValue === cornersoneFreeTextCodingValue) { + return finding.CodeMeaning; + } + } + }, { + key: "generateDatasetMeta", + value: function generateDatasetMeta() { + // TODO: what is the correct metaheader + // http://dicom.nema.org/medical/Dicom/current/output/chtml/part10/chapter_7.html + // TODO: move meta creation to happen in derivations.js + var fileMetaInformationVersionArray = new Uint8Array(2); + fileMetaInformationVersionArray[1] = 1; + var _meta = { + FileMetaInformationVersion: { + Value: [fileMetaInformationVersionArray.buffer], + vr: "OB" + }, + //MediaStorageSOPClassUID + //MediaStorageSOPInstanceUID: sopCommonModule.sopInstanceUID, + TransferSyntaxUID: { + Value: ["1.2.840.10008.1.2.1"], + vr: "UI" + }, + ImplementationClassUID: { + Value: [DicomMetaDictionary.uid()], + // TODO: could be git hash or other valid id + vr: "UI" + }, + ImplementationVersionName: { + Value: ["dcmjs"], + vr: "SH" + } + }; + return _meta; + } + }, { + key: "generateDerivationSourceDataset", + value: function generateDerivationSourceDataset(StudyInstanceUID, SeriesInstanceUID) { + var _vrMap = { + PixelData: "OW" + }; + var _meta = MeasurementReport.generateDatasetMeta(); + var derivationSourceDataset = { + StudyInstanceUID: StudyInstanceUID, + SeriesInstanceUID: SeriesInstanceUID, + _meta: _meta, + _vrMap: _vrMap + }; + return derivationSourceDataset; + } + }, { + key: "getSetupMeasurementData", + value: function getSetupMeasurementData(MeasurementGroup, sopInstanceUIDToImageIdMap, metadata, toolType) { + var ContentSequence = MeasurementGroup.ContentSequence; + var contentSequenceArr = toArray(ContentSequence); + var findingGroup = contentSequenceArr.find(function (group) { + return codeValueMatch(group, FINDING); + }); + var findingSiteGroups = contentSequenceArr.filter(function (group) { + return codeValueMatch(group, FINDING_SITE, FINDING_SITE_OLD); + }) || []; + var NUMGroup = contentSequenceArr.find(function (group) { + return group.ValueType === "NUM"; + }); + var SCOORDGroup = toArray(NUMGroup.ContentSequence).find(function (group) { + return group.ValueType === "SCOORD"; + }); + var ReferencedSOPSequence = SCOORDGroup.ContentSequence.ReferencedSOPSequence; + var ReferencedSOPInstanceUID = ReferencedSOPSequence.ReferencedSOPInstanceUID, + ReferencedFrameNumber = ReferencedSOPSequence.ReferencedFrameNumber; + var referencedImageId = sopInstanceUIDToImageIdMap[ReferencedSOPInstanceUID]; + var imagePlaneModule = metadata.get("imagePlaneModule", referencedImageId); + var finding = findingGroup ? addAccessors(findingGroup.ConceptCodeSequence) : undefined; + var findingSites = findingSiteGroups.map(function (fsg) { + return addAccessors(fsg.ConceptCodeSequence); + }); + var defaultState = { + sopInstanceUid: ReferencedSOPInstanceUID, + annotation: { + annotationUID: DicomMetaDictionary.uid(), + metadata: { + toolName: toolType, + referencedImageId: referencedImageId, + FrameOfReferenceUID: imagePlaneModule.frameOfReferenceUID, + label: "" + } + }, + finding: finding, + findingSites: findingSites + }; + if (defaultState.finding) { + defaultState.description = defaultState.finding.CodeMeaning; + } + defaultState.annotation.metadata.label = MeasurementReport.getCornerstoneLabelFromDefaultState(defaultState); + return { + defaultState: defaultState, + NUMGroup: NUMGroup, + SCOORDGroup: SCOORDGroup, + ReferencedSOPSequence: ReferencedSOPSequence, + ReferencedSOPInstanceUID: ReferencedSOPInstanceUID, + ReferencedFrameNumber: ReferencedFrameNumber + }; + } + }, { + key: "generateReport", + value: function generateReport(toolState, metadataProvider, worldToImageCoords, options) { + // ToolState for array of imageIDs to a Report + // Assume Cornerstone metadata provider has access to Study / Series / Sop Instance UID + var allMeasurementGroups = []; + + /* Patient ID + Warning - Missing attribute or value that would be needed to build DICOMDIR - Patient ID + Warning - Missing attribute or value that would be needed to build DICOMDIR - Study Date + Warning - Missing attribute or value that would be needed to build DICOMDIR - Study Time + Warning - Missing attribute or value that would be needed to build DICOMDIR - Study ID + */ + + var sopInstanceUIDsToSeriesInstanceUIDMap = {}; + var derivationSourceDatasets = []; + var _meta = MeasurementReport.generateDatasetMeta(); + + // Loop through each image in the toolData + Object.keys(toolState).forEach(function (imageId) { + var sopCommonModule = metadataProvider.get("sopCommonModule", imageId); + var generalSeriesModule = metadataProvider.get("generalSeriesModule", imageId); + var sopInstanceUID = sopCommonModule.sopInstanceUID, + sopClassUID = sopCommonModule.sopClassUID; + var studyInstanceUID = generalSeriesModule.studyInstanceUID, + seriesInstanceUID = generalSeriesModule.seriesInstanceUID; + sopInstanceUIDsToSeriesInstanceUIDMap[sopInstanceUID] = seriesInstanceUID; + if (!derivationSourceDatasets.find(function (dsd) { + return dsd.SeriesInstanceUID === seriesInstanceUID; + })) { + // Entry not present for series, create one. + var derivationSourceDataset = MeasurementReport.generateDerivationSourceDataset(studyInstanceUID, seriesInstanceUID); + derivationSourceDatasets.push(derivationSourceDataset); + } + var frameNumber = metadataProvider.get("frameNumber", imageId); + var toolData = toolState[imageId]; + var toolTypes = Object.keys(toolData); + var ReferencedSOPSequence = { + ReferencedSOPClassUID: sopClassUID, + ReferencedSOPInstanceUID: sopInstanceUID + }; + var instance = metadataProvider.get("instance", imageId); + if (instance && instance.NumberOfFrames && instance.NumberOfFrames > 1 || Normalizer.isMultiframeSOPClassUID(sopClassUID)) { + ReferencedSOPSequence.ReferencedFrameNumber = frameNumber; + } + + // Loop through each tool type for the image + var measurementGroups = []; + toolTypes.forEach(function (toolType) { + var group = getMeasurementGroup$1(toolType, toolData, ReferencedSOPSequence, worldToImageCoords); + if (group) { + measurementGroups.push(group); + } + }); + allMeasurementGroups = allMeasurementGroups.concat(measurementGroups); + }); + var tid1500MeasurementReport = new TID1500MeasurementReport({ + TID1501MeasurementGroups: allMeasurementGroups + }, options); + var report = new StructuredReport(derivationSourceDatasets); + var contentItem = tid1500MeasurementReport.contentItem(derivationSourceDatasets, { + sopInstanceUIDsToSeriesInstanceUIDMap: sopInstanceUIDsToSeriesInstanceUIDMap + }); + + // Merge the derived dataset with the content from the Measurement Report + report.dataset = Object.assign(report.dataset, contentItem); + report.dataset._meta = _meta; + return report; + } + + /** + * Generate Cornerstone tool state from dataset + * @param {object} dataset dataset + * @param {object} hooks + * @param {function} hooks.getToolClass Function to map dataset to a tool class + * @returns + */ + }, { + key: "generateToolState", + value: function generateToolState(dataset, sopInstanceUIDToImageIdMap, imageToWorldCoords, metadata) { + var hooks = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {}; + // For now, bail out if the dataset is not a TID1500 SR with length measurements + if (dataset.ContentTemplateSequence.TemplateIdentifier !== "1500") { + throw new Error("This package can currently only interpret DICOM SR TID 1500"); + } + var REPORT = "Imaging Measurements"; + var GROUP = "Measurement Group"; + var TRACKING_IDENTIFIER = "Tracking Identifier"; + + // Identify the Imaging Measurements + var imagingMeasurementContent = toArray(dataset.ContentSequence).find(codeMeaningEquals(REPORT)); + + // Retrieve the Measurements themselves + var measurementGroups = toArray(imagingMeasurementContent.ContentSequence).filter(codeMeaningEquals(GROUP)); + + // For each of the supported measurement types, compute the measurement data + var measurementData = {}; + var cornerstoneToolClasses = MeasurementReport.CORNERSTONE_TOOL_CLASSES_BY_UTILITY_TYPE; + var registeredToolClasses = []; + Object.keys(cornerstoneToolClasses).forEach(function (key) { + registeredToolClasses.push(cornerstoneToolClasses[key]); + measurementData[key] = []; + }); + measurementGroups.forEach(function (measurementGroup, index) { + var measurementGroupContentSequence = toArray(measurementGroup.ContentSequence); + var TrackingIdentifierGroup = measurementGroupContentSequence.find(function (contentItem) { + return contentItem.ConceptNameCodeSequence.CodeMeaning === TRACKING_IDENTIFIER; + }); + var TrackingIdentifierValue = TrackingIdentifierGroup.TextValue; + var toolClass = hooks.getToolClass ? hooks.getToolClass(measurementGroup, dataset, registeredToolClasses) : registeredToolClasses.find(function (tc) { + return tc.isValidCornerstoneTrackingIdentifier(TrackingIdentifierValue); + }); + if (toolClass) { + var measurement = toolClass.getMeasurementData(measurementGroup, sopInstanceUIDToImageIdMap, imageToWorldCoords, metadata); + console.log("=== ".concat(toolClass.toolType, " ===")); + console.log(measurement); + measurementData[toolClass.toolType].push(measurement); + } + }); + + // NOTE: There is no way of knowing the cornerstone imageIds as that could be anything. + // That is up to the consumer to derive from the SOPInstanceUIDs. + return measurementData; + } + }, { + key: "registerTool", + value: function registerTool(toolClass) { + MeasurementReport.CORNERSTONE_TOOL_CLASSES_BY_UTILITY_TYPE[toolClass.utilityToolType] = toolClass; + MeasurementReport.CORNERSTONE_TOOL_CLASSES_BY_TOOL_TYPE[toolClass.toolType] = toolClass; + MeasurementReport.MEASUREMENT_BY_TOOLTYPE[toolClass.toolType] = toolClass.utilityToolType; + } + }]); + return MeasurementReport; + }(); + MeasurementReport$2.MEASUREMENT_BY_TOOLTYPE = {}; + MeasurementReport$2.CORNERSTONE_TOOL_CLASSES_BY_UTILITY_TYPE = {}; + MeasurementReport$2.CORNERSTONE_TOOL_CLASSES_BY_TOOL_TYPE = {}; + + var CORNERSTONE_3D_TAG = "Cornerstone3DTools@^0.1.0"; + + var LENGTH = "Length"; + var trackingIdentifierTextValue$5 = "".concat(CORNERSTONE_3D_TAG, ":").concat(LENGTH); + var Length = /*#__PURE__*/function () { + function Length() { + _classCallCheck(this, Length); + } + + // TODO: this function is required for all Cornerstone Tool Adapters, since it is called by MeasurementReport. + _createClass(Length, null, [{ + key: "getMeasurementData", + value: function getMeasurementData(MeasurementGroup, sopInstanceUIDToImageIdMap, imageToWorldCoords, metadata) { + var _MeasurementReport$ge = MeasurementReport$2.getSetupMeasurementData(MeasurementGroup, sopInstanceUIDToImageIdMap, metadata, Length.toolType), + defaultState = _MeasurementReport$ge.defaultState, + NUMGroup = _MeasurementReport$ge.NUMGroup, + SCOORDGroup = _MeasurementReport$ge.SCOORDGroup, + ReferencedFrameNumber = _MeasurementReport$ge.ReferencedFrameNumber; + var referencedImageId = defaultState.annotation.metadata.referencedImageId; + var GraphicData = SCOORDGroup.GraphicData; + var worldCoords = []; + for (var i = 0; i < GraphicData.length; i += 2) { + var point = imageToWorldCoords(referencedImageId, [GraphicData[i], GraphicData[i + 1]]); + worldCoords.push(point); + } + var state = defaultState; + state.annotation.data = { + handles: { + points: [worldCoords[0], worldCoords[1]], + activeHandleIndex: 0, + textBox: { + hasMoved: false + } + }, + cachedStats: _defineProperty({}, "imageId:".concat(referencedImageId), { + length: NUMGroup ? NUMGroup.MeasuredValueSequence.NumericValue : 0 + }), + frameNumber: ReferencedFrameNumber + }; + return state; + } + }, { + key: "getTID300RepresentationArguments", + value: function getTID300RepresentationArguments(tool, worldToImageCoords) { + var data = tool.data, + finding = tool.finding, + findingSites = tool.findingSites, + metadata = tool.metadata; + var _data$cachedStats = data.cachedStats, + cachedStats = _data$cachedStats === void 0 ? {} : _data$cachedStats, + handles = data.handles; + var referencedImageId = metadata.referencedImageId; + if (!referencedImageId) { + throw new Error("Length.getTID300RepresentationArguments: referencedImageId is not defined"); + } + var start = worldToImageCoords(referencedImageId, handles.points[0]); + var end = worldToImageCoords(referencedImageId, handles.points[1]); + var point1 = { + x: start[0], + y: start[1] + }; + var point2 = { + x: end[0], + y: end[1] + }; + var _ref = cachedStats["imageId:".concat(referencedImageId)] || {}, + distance = _ref.length; + return { + point1: point1, + point2: point2, + distance: distance, + trackingIdentifierTextValue: trackingIdentifierTextValue$5, + finding: finding, + findingSites: findingSites || [] + }; + } + }]); + return Length; + }(); + Length.toolType = LENGTH; + Length.utilityToolType = LENGTH; + Length.TID300Representation = Length$2; + Length.isValidCornerstoneTrackingIdentifier = function (TrackingIdentifier) { + if (!TrackingIdentifier.includes(":")) { + return false; + } + var _TrackingIdentifier$s = TrackingIdentifier.split(":"), + _TrackingIdentifier$s2 = _slicedToArray(_TrackingIdentifier$s, 2), + cornerstone3DTag = _TrackingIdentifier$s2[0], + toolType = _TrackingIdentifier$s2[1]; + if (cornerstone3DTag !== CORNERSTONE_3D_TAG) { + return false; + } + return toolType === LENGTH; + }; + MeasurementReport$2.registerTool(Length); + + var BIDIRECTIONAL = "Bidirectional"; + var LONG_AXIS = "Long Axis"; + var SHORT_AXIS = "Short Axis"; + var trackingIdentifierTextValue$4 = "".concat(CORNERSTONE_3D_TAG, ":").concat(BIDIRECTIONAL); + var Bidirectional = /*#__PURE__*/function () { + function Bidirectional() { + _classCallCheck(this, Bidirectional); + } + _createClass(Bidirectional, null, [{ + key: "getMeasurementData", + value: function getMeasurementData(MeasurementGroup, sopInstanceUIDToImageIdMap, imageToWorldCoords, metadata) { + var _MeasurementReport$ge = MeasurementReport$2.getSetupMeasurementData(MeasurementGroup, sopInstanceUIDToImageIdMap, metadata, Bidirectional.toolType), + defaultState = _MeasurementReport$ge.defaultState, + ReferencedFrameNumber = _MeasurementReport$ge.ReferencedFrameNumber; + var referencedImageId = defaultState.annotation.metadata.referencedImageId; + var ContentSequence = MeasurementGroup.ContentSequence; + var longAxisNUMGroup = toArray(ContentSequence).find(function (group) { + return group.ConceptNameCodeSequence.CodeMeaning === LONG_AXIS; + }); + var longAxisSCOORDGroup = toArray(longAxisNUMGroup.ContentSequence).find(function (group) { + return group.ValueType === "SCOORD"; + }); + var shortAxisNUMGroup = toArray(ContentSequence).find(function (group) { + return group.ConceptNameCodeSequence.CodeMeaning === SHORT_AXIS; + }); + var shortAxisSCOORDGroup = toArray(shortAxisNUMGroup.ContentSequence).find(function (group) { + return group.ValueType === "SCOORD"; + }); + var worldCoords = []; + [longAxisSCOORDGroup, shortAxisSCOORDGroup].forEach(function (group) { + var GraphicData = group.GraphicData; + for (var i = 0; i < GraphicData.length; i += 2) { + var point = imageToWorldCoords(referencedImageId, [GraphicData[i], GraphicData[i + 1]]); + worldCoords.push(point); + } + }); + var state = defaultState; + state.annotation.data = { + handles: { + points: [worldCoords[0], worldCoords[1], worldCoords[2], worldCoords[3]], + activeHandleIndex: 0, + textBox: { + hasMoved: false + } + }, + cachedStats: _defineProperty({}, "imageId:".concat(referencedImageId), { + length: longAxisNUMGroup.MeasuredValueSequence.NumericValue, + width: shortAxisNUMGroup.MeasuredValueSequence.NumericValue + }), + frameNumber: ReferencedFrameNumber + }; + return state; + } + }, { + key: "getTID300RepresentationArguments", + value: function getTID300RepresentationArguments(tool, worldToImageCoords) { + var data = tool.data, + finding = tool.finding, + findingSites = tool.findingSites, + metadata = tool.metadata; + var _data$cachedStats = data.cachedStats, + cachedStats = _data$cachedStats === void 0 ? {} : _data$cachedStats, + handles = data.handles; + var referencedImageId = metadata.referencedImageId; + if (!referencedImageId) { + throw new Error("Bidirectional.getTID300RepresentationArguments: referencedImageId is not defined"); + } + var _ref = cachedStats["imageId:".concat(referencedImageId)] || {}, + length = _ref.length, + width = _ref.width; + var points = handles.points; + + // Find the length and width point pairs by comparing the distances of the points at 0,1 to points at 2,3 + var firstPointPairs = [points[0], points[1]]; + var secondPointPairs = [points[2], points[3]]; + var firstPointPairsDistance = Math.sqrt(Math.pow(firstPointPairs[0][0] - firstPointPairs[1][0], 2) + Math.pow(firstPointPairs[0][1] - firstPointPairs[1][1], 2) + Math.pow(firstPointPairs[0][2] - firstPointPairs[1][2], 2)); + var secondPointPairsDistance = Math.sqrt(Math.pow(secondPointPairs[0][0] - secondPointPairs[1][0], 2) + Math.pow(secondPointPairs[0][1] - secondPointPairs[1][1], 2) + Math.pow(secondPointPairs[0][2] - secondPointPairs[1][2], 2)); + var shortAxisPoints; + var longAxisPoints; + if (firstPointPairsDistance > secondPointPairsDistance) { + shortAxisPoints = firstPointPairs; + longAxisPoints = secondPointPairs; + } else { + shortAxisPoints = secondPointPairs; + longAxisPoints = firstPointPairs; + } + var longAxisStartImage = worldToImageCoords(referencedImageId, shortAxisPoints[0]); + var longAxisEndImage = worldToImageCoords(referencedImageId, shortAxisPoints[1]); + var shortAxisStartImage = worldToImageCoords(referencedImageId, longAxisPoints[0]); + var shortAxisEndImage = worldToImageCoords(referencedImageId, longAxisPoints[1]); + return { + longAxis: { + point1: { + x: longAxisStartImage[0], + y: longAxisStartImage[1] + }, + point2: { + x: longAxisEndImage[0], + y: longAxisEndImage[1] + } + }, + shortAxis: { + point1: { + x: shortAxisStartImage[0], + y: shortAxisStartImage[1] + }, + point2: { + x: shortAxisEndImage[0], + y: shortAxisEndImage[1] + } + }, + longAxisLength: length, + shortAxisLength: width, + trackingIdentifierTextValue: trackingIdentifierTextValue$4, + finding: finding, + findingSites: findingSites || [] + }; + } + }]); + return Bidirectional; + }(); + Bidirectional.toolType = BIDIRECTIONAL; + Bidirectional.utilityToolType = BIDIRECTIONAL; + Bidirectional.TID300Representation = Bidirectional$2; + Bidirectional.isValidCornerstoneTrackingIdentifier = function (TrackingIdentifier) { + if (!TrackingIdentifier.includes(":")) { + return false; + } + var _TrackingIdentifier$s = TrackingIdentifier.split(":"), + _TrackingIdentifier$s2 = _slicedToArray(_TrackingIdentifier$s, 2), + cornerstone3DTag = _TrackingIdentifier$s2[0], + toolType = _TrackingIdentifier$s2[1]; + if (cornerstone3DTag !== CORNERSTONE_3D_TAG) { + return false; + } + return toolType === BIDIRECTIONAL; + }; + MeasurementReport$2.registerTool(Bidirectional); + + var ELLIPTICALROI = "EllipticalROI"; + var EPSILON = 1e-4; + var trackingIdentifierTextValue$3 = "".concat(CORNERSTONE_3D_TAG, ":").concat(ELLIPTICALROI); + var EllipticalROI = /*#__PURE__*/function () { + function EllipticalROI() { + _classCallCheck(this, EllipticalROI); + } + _createClass(EllipticalROI, null, [{ + key: "getMeasurementData", + value: function getMeasurementData(MeasurementGroup, sopInstanceUIDToImageIdMap, imageToWorldCoords, metadata) { + var _MeasurementReport$ge = MeasurementReport$2.getSetupMeasurementData(MeasurementGroup, sopInstanceUIDToImageIdMap, metadata, EllipticalROI.toolType), + defaultState = _MeasurementReport$ge.defaultState, + NUMGroup = _MeasurementReport$ge.NUMGroup, + SCOORDGroup = _MeasurementReport$ge.SCOORDGroup, + ReferencedFrameNumber = _MeasurementReport$ge.ReferencedFrameNumber; + var referencedImageId = defaultState.annotation.metadata.referencedImageId; + var GraphicData = SCOORDGroup.GraphicData; + + // GraphicData is ordered as [majorAxisStartX, majorAxisStartY, majorAxisEndX, majorAxisEndY, minorAxisStartX, minorAxisStartY, minorAxisEndX, minorAxisEndY] + // But Cornerstone3D points are ordered as top, bottom, left, right for the + // ellipse so we need to identify if the majorAxis is horizontal or vertical + // in the image plane and then choose the correct points to use for the ellipse. + var pointsWorld = []; + for (var i = 0; i < GraphicData.length; i += 2) { + var worldPos = imageToWorldCoords(referencedImageId, [GraphicData[i], GraphicData[i + 1]]); + pointsWorld.push(worldPos); + } + var majorAxisStart = fromValues.apply(vec3, _toConsumableArray(pointsWorld[0])); + var majorAxisEnd = fromValues.apply(vec3, _toConsumableArray(pointsWorld[1])); + var minorAxisStart = fromValues.apply(vec3, _toConsumableArray(pointsWorld[2])); + var minorAxisEnd = fromValues.apply(vec3, _toConsumableArray(pointsWorld[3])); + var majorAxisVec = create(); + sub(majorAxisVec, majorAxisEnd, majorAxisStart); + + // normalize majorAxisVec to avoid scaling issues + normalize$1(majorAxisVec, majorAxisVec); + var minorAxisVec = create(); + sub(minorAxisVec, minorAxisEnd, minorAxisStart); + normalize$1(minorAxisVec, minorAxisVec); + var imagePlaneModule = metadata.get("imagePlaneModule", referencedImageId); + if (!imagePlaneModule) { + throw new Error("imageId does not have imagePlaneModule metadata"); + } + var columnCosines = imagePlaneModule.columnCosines; + + // find which axis is parallel to the columnCosines + var columnCosinesVec = fromValues.apply(vec3, _toConsumableArray(columnCosines)); + var projectedMajorAxisOnColVec = dot(columnCosinesVec, majorAxisVec); + var projectedMinorAxisOnColVec = dot(columnCosinesVec, minorAxisVec); + var absoluteOfMajorDotProduct = Math.abs(projectedMajorAxisOnColVec); + var absoluteOfMinorDotProduct = Math.abs(projectedMinorAxisOnColVec); + var ellipsePoints = []; + if (Math.abs(absoluteOfMajorDotProduct - 1) < EPSILON) { + ellipsePoints = [pointsWorld[0], pointsWorld[1], pointsWorld[2], pointsWorld[3]]; + } else if (Math.abs(absoluteOfMinorDotProduct - 1) < EPSILON) { + ellipsePoints = [pointsWorld[2], pointsWorld[3], pointsWorld[0], pointsWorld[1]]; + } else { + console.warn("OBLIQUE ELLIPSE NOT YET SUPPORTED"); + } + var state = defaultState; + state.annotation.data = { + handles: { + points: _toConsumableArray(ellipsePoints), + activeHandleIndex: 0, + textBox: { + hasMoved: false + } + }, + cachedStats: _defineProperty({}, "imageId:".concat(referencedImageId), { + area: NUMGroup ? NUMGroup.MeasuredValueSequence.NumericValue : 0 + }), + frameNumber: ReferencedFrameNumber + }; + return state; + } + }, { + key: "getTID300RepresentationArguments", + value: function getTID300RepresentationArguments(tool, worldToImageCoords) { + var data = tool.data, + finding = tool.finding, + findingSites = tool.findingSites, + metadata = tool.metadata; + var _data$cachedStats = data.cachedStats, + cachedStats = _data$cachedStats === void 0 ? {} : _data$cachedStats, + handles = data.handles; + var referencedImageId = metadata.referencedImageId; + if (!referencedImageId) { + throw new Error("EllipticalROI.getTID300RepresentationArguments: referencedImageId is not defined"); + } + var top = worldToImageCoords(referencedImageId, handles.points[0]); + var bottom = worldToImageCoords(referencedImageId, handles.points[1]); + var left = worldToImageCoords(referencedImageId, handles.points[2]); + var right = worldToImageCoords(referencedImageId, handles.points[3]); + + // find the major axis and minor axis + var topBottomLength = Math.abs(top[1] - bottom[1]); + var leftRightLength = Math.abs(left[0] - right[0]); + var points = []; + if (topBottomLength > leftRightLength) { + // major axis is bottom to top + points.push({ + x: top[0], + y: top[1] + }); + points.push({ + x: bottom[0], + y: bottom[1] + }); + + // minor axis is left to right + points.push({ + x: left[0], + y: left[1] + }); + points.push({ + x: right[0], + y: right[1] + }); + } else { + // major axis is left to right + points.push({ + x: left[0], + y: left[1] + }); + points.push({ + x: right[0], + y: right[1] + }); + + // minor axis is bottom to top + points.push({ + x: top[0], + y: top[1] + }); + points.push({ + x: bottom[0], + y: bottom[1] + }); + } + var _ref = cachedStats["imageId:".concat(referencedImageId)] || {}, + area = _ref.area; + return { + area: area, + points: points, + trackingIdentifierTextValue: trackingIdentifierTextValue$3, + finding: finding, + findingSites: findingSites || [] + }; + } + }]); + return EllipticalROI; + }(); + EllipticalROI.toolType = ELLIPTICALROI; + EllipticalROI.utilityToolType = ELLIPTICALROI; + EllipticalROI.TID300Representation = Ellipse$1; + EllipticalROI.isValidCornerstoneTrackingIdentifier = function (TrackingIdentifier) { + if (!TrackingIdentifier.includes(":")) { + return false; + } + var _TrackingIdentifier$s = TrackingIdentifier.split(":"), + _TrackingIdentifier$s2 = _slicedToArray(_TrackingIdentifier$s, 2), + cornerstone3DTag = _TrackingIdentifier$s2[0], + toolType = _TrackingIdentifier$s2[1]; + if (cornerstone3DTag !== CORNERSTONE_3D_TAG) { + return false; + } + + // The following is needed since the new cornerstone3D has changed + // the EllipticalRoi toolName (which was in the old cornerstone) to EllipticalROI + return toolType.toLowerCase() === ELLIPTICALROI.toLowerCase(); + }; + MeasurementReport$2.registerTool(EllipticalROI); + + var ARROW_ANNOTATE = "ArrowAnnotate"; + var trackingIdentifierTextValue$2 = "".concat(CORNERSTONE_3D_TAG, ":").concat(ARROW_ANNOTATE); + var codeValues = CodingScheme.codeValues, + CodingSchemeDesignator = CodingScheme.CodingSchemeDesignator; + var ArrowAnnotate = /*#__PURE__*/function () { + function ArrowAnnotate() { + _classCallCheck(this, ArrowAnnotate); + } + _createClass(ArrowAnnotate, null, [{ + key: "getMeasurementData", + value: function getMeasurementData(MeasurementGroup, sopInstanceUIDToImageIdMap, imageToWorldCoords, metadata) { + var _MeasurementReport$ge = MeasurementReport$2.getSetupMeasurementData(MeasurementGroup, sopInstanceUIDToImageIdMap, metadata, ArrowAnnotate.toolType), + defaultState = _MeasurementReport$ge.defaultState, + SCOORDGroup = _MeasurementReport$ge.SCOORDGroup, + ReferencedFrameNumber = _MeasurementReport$ge.ReferencedFrameNumber; + var referencedImageId = defaultState.annotation.metadata.referencedImageId; + var text = defaultState.annotation.metadata.label; + var GraphicData = SCOORDGroup.GraphicData; + var worldCoords = []; + for (var i = 0; i < GraphicData.length; i += 2) { + var point = imageToWorldCoords(referencedImageId, [GraphicData[i], GraphicData[i + 1]]); + worldCoords.push(point); + } + + // Since the arrowAnnotate measurement is just a point, to generate the tool state + // we derive the second point based on the image size relative to the first point. + if (worldCoords.length === 1) { + var imagePixelModule = metadata.get("imagePixelModule", referencedImageId); + var xOffset = 10; + var yOffset = 10; + if (imagePixelModule) { + var columns = imagePixelModule.columns, + rows = imagePixelModule.rows; + xOffset = columns / 10; + yOffset = rows / 10; + } + var secondPoint = imageToWorldCoords(referencedImageId, [GraphicData[0] + xOffset, GraphicData[1] + yOffset]); + worldCoords.push(secondPoint); + } + var state = defaultState; + state.annotation.data = { + text: text, + handles: { + arrowFirst: true, + points: [worldCoords[0], worldCoords[1]], + activeHandleIndex: 0, + textBox: { + hasMoved: false + } + }, + frameNumber: ReferencedFrameNumber + }; + return state; + } + }, { + key: "getTID300RepresentationArguments", + value: function getTID300RepresentationArguments(tool, worldToImageCoords) { + var data = tool.data, + metadata = tool.metadata; + var finding = tool.finding, + findingSites = tool.findingSites; + var referencedImageId = metadata.referencedImageId; + if (!referencedImageId) { + throw new Error("ArrowAnnotate.getTID300RepresentationArguments: referencedImageId is not defined"); + } + var _data$handles = data.handles, + points = _data$handles.points, + arrowFirst = _data$handles.arrowFirst; + var point; + if (arrowFirst) { + point = points[0]; + } else { + point = points[1]; + } + var pointImage = worldToImageCoords(referencedImageId, point); + var TID300RepresentationArguments = { + points: [{ + x: pointImage[0], + y: pointImage[1] + }], + trackingIdentifierTextValue: trackingIdentifierTextValue$2, + findingSites: findingSites || [] + }; + + // If freetext finding isn't present, add it from the tool text. + if (!finding || finding.CodeValue !== codeValues.CORNERSTONEFREETEXT) { + finding = { + CodeValue: codeValues.CORNERSTONEFREETEXT, + CodingSchemeDesignator: CodingSchemeDesignator, + CodeMeaning: data.text + }; + } + TID300RepresentationArguments.finding = finding; + return TID300RepresentationArguments; + } + }]); + return ArrowAnnotate; + }(); + ArrowAnnotate.toolType = ARROW_ANNOTATE; + ArrowAnnotate.utilityToolType = ARROW_ANNOTATE; + ArrowAnnotate.TID300Representation = Point$1; + ArrowAnnotate.isValidCornerstoneTrackingIdentifier = function (TrackingIdentifier) { + if (!TrackingIdentifier.includes(":")) { + return false; + } + var _TrackingIdentifier$s = TrackingIdentifier.split(":"), + _TrackingIdentifier$s2 = _slicedToArray(_TrackingIdentifier$s, 2), + cornerstone3DTag = _TrackingIdentifier$s2[0], + toolType = _TrackingIdentifier$s2[1]; + if (cornerstone3DTag !== CORNERSTONE_3D_TAG) { + return false; + } + return toolType === ARROW_ANNOTATE; + }; + MeasurementReport$2.registerTool(ArrowAnnotate); + + var PROBE = "Probe"; + var trackingIdentifierTextValue$1 = "".concat(CORNERSTONE_3D_TAG, ":").concat(PROBE); + var Probe = /*#__PURE__*/function () { + function Probe() { + _classCallCheck(this, Probe); + } + _createClass(Probe, null, [{ + key: "getMeasurementData", + value: function getMeasurementData(MeasurementGroup, sopInstanceUIDToImageIdMap, imageToWorldCoords, metadata) { + var _MeasurementReport$ge = MeasurementReport$2.getSetupMeasurementData(MeasurementGroup, sopInstanceUIDToImageIdMap, metadata, Probe.toolType), + defaultState = _MeasurementReport$ge.defaultState, + SCOORDGroup = _MeasurementReport$ge.SCOORDGroup, + ReferencedFrameNumber = _MeasurementReport$ge.ReferencedFrameNumber; + var referencedImageId = defaultState.annotation.metadata.referencedImageId; + var GraphicData = SCOORDGroup.GraphicData; + var worldCoords = []; + for (var i = 0; i < GraphicData.length; i += 2) { + var point = imageToWorldCoords(referencedImageId, [GraphicData[i], GraphicData[i + 1]]); + worldCoords.push(point); + } + var state = defaultState; + state.annotation.data = { + handles: { + points: worldCoords, + activeHandleIndex: null, + textBox: { + hasMoved: false + } + }, + frameNumber: ReferencedFrameNumber + }; + return state; + } + }, { + key: "getTID300RepresentationArguments", + value: function getTID300RepresentationArguments(tool, worldToImageCoords) { + var data = tool.data, + metadata = tool.metadata; + var finding = tool.finding, + findingSites = tool.findingSites; + var referencedImageId = metadata.referencedImageId; + if (!referencedImageId) { + throw new Error("Probe.getTID300RepresentationArguments: referencedImageId is not defined"); + } + var points = data.handles.points; + var pointsImage = points.map(function (point) { + var pointImage = worldToImageCoords(referencedImageId, point); + return { + x: pointImage[0], + y: pointImage[1] + }; + }); + var TID300RepresentationArguments = { + points: pointsImage, + trackingIdentifierTextValue: trackingIdentifierTextValue$1, + findingSites: findingSites || [], + finding: finding + }; + return TID300RepresentationArguments; + } + }]); + return Probe; + }(); + Probe.toolType = PROBE; + Probe.utilityToolType = PROBE; + Probe.TID300Representation = Point$1; + Probe.isValidCornerstoneTrackingIdentifier = function (TrackingIdentifier) { + if (!TrackingIdentifier.includes(":")) { + return false; + } + var _TrackingIdentifier$s = TrackingIdentifier.split(":"), + _TrackingIdentifier$s2 = _slicedToArray(_TrackingIdentifier$s, 2), + cornerstone3DTag = _TrackingIdentifier$s2[0], + toolType = _TrackingIdentifier$s2[1]; + if (cornerstone3DTag !== CORNERSTONE_3D_TAG) { + return false; + } + return toolType === PROBE; + }; + MeasurementReport$2.registerTool(Probe); + + var PLANARFREEHANDROI = "PlanarFreehandROI"; + var trackingIdentifierTextValue = "".concat(CORNERSTONE_3D_TAG, ":").concat(PLANARFREEHANDROI); + var closedContourThreshold = 1e-5; + var PlanarFreehandROI = /*#__PURE__*/function () { + function PlanarFreehandROI() { + _classCallCheck(this, PlanarFreehandROI); + } + _createClass(PlanarFreehandROI, null, [{ + key: "getMeasurementData", + value: function getMeasurementData(MeasurementGroup, sopInstanceUIDToImageIdMap, imageToWorldCoords, metadata) { + var _MeasurementReport$ge = MeasurementReport$2.getSetupMeasurementData(MeasurementGroup, sopInstanceUIDToImageIdMap, metadata, PlanarFreehandROI.toolType), + defaultState = _MeasurementReport$ge.defaultState, + SCOORDGroup = _MeasurementReport$ge.SCOORDGroup, + ReferencedFrameNumber = _MeasurementReport$ge.ReferencedFrameNumber; + var referencedImageId = defaultState.annotation.metadata.referencedImageId; + var GraphicData = SCOORDGroup.GraphicData; + var worldCoords = []; + for (var i = 0; i < GraphicData.length; i += 2) { + var point = imageToWorldCoords(referencedImageId, [GraphicData[i], GraphicData[i + 1]]); + worldCoords.push(point); + } + var distanceBetweenFirstAndLastPoint = distance(worldCoords[worldCoords.length - 1], worldCoords[0]); + var isOpenContour = true; + + // If the contour is closed, this should have been encoded as exactly the same point, so check for a very small difference. + if (distanceBetweenFirstAndLastPoint < closedContourThreshold) { + worldCoords.pop(); // Remove the last element which is duplicated. + + isOpenContour = false; + } + var points = []; + if (isOpenContour) { + points.push(worldCoords[0], worldCoords[worldCoords.length - 1]); + } + var state = defaultState; + state.annotation.data = { + polyline: worldCoords, + isOpenContour: isOpenContour, + handles: { + points: points, + activeHandleIndex: null, + textBox: { + hasMoved: false + } + }, + frameNumber: ReferencedFrameNumber + }; + return state; + } + }, { + key: "getTID300RepresentationArguments", + value: function getTID300RepresentationArguments(tool, worldToImageCoords) { + var data = tool.data, + finding = tool.finding, + findingSites = tool.findingSites, + metadata = tool.metadata; + var isOpenContour = data.isOpenContour, + polyline = data.polyline; + var referencedImageId = metadata.referencedImageId; + if (!referencedImageId) { + throw new Error("PlanarFreehandROI.getTID300RepresentationArguments: referencedImageId is not defined"); + } + var points = polyline.map(function (worldPos) { + return worldToImageCoords(referencedImageId, worldPos); + }); + if (!isOpenContour) { + // Need to repeat the first point at the end of to have an explicitly closed contour. + var firstPoint = points[0]; + + // Explicitly expand to avoid ciruclar references. + points.push([firstPoint[0], firstPoint[1]]); + } + var area = 0; // TODO -> The tool doesn't have these stats yet. + var perimeter = 0; + return { + points: points, + area: area, + perimeter: perimeter, + trackingIdentifierTextValue: trackingIdentifierTextValue, + finding: finding, + findingSites: findingSites || [] + }; + } + }]); + return PlanarFreehandROI; + }(); + PlanarFreehandROI.toolType = PLANARFREEHANDROI; + PlanarFreehandROI.utilityToolType = PLANARFREEHANDROI; + PlanarFreehandROI.TID300Representation = Polyline$1; + PlanarFreehandROI.isValidCornerstoneTrackingIdentifier = function (TrackingIdentifier) { + if (!TrackingIdentifier.includes(":")) { + return false; + } + var _TrackingIdentifier$s = TrackingIdentifier.split(":"), + _TrackingIdentifier$s2 = _slicedToArray(_TrackingIdentifier$s, 2), + cornerstone3DTag = _TrackingIdentifier$s2[0], + toolType = _TrackingIdentifier$s2[1]; + if (cornerstone3DTag !== CORNERSTONE_3D_TAG) { + return false; + } + return toolType === PLANARFREEHANDROI; + }; + MeasurementReport$2.registerTool(PlanarFreehandROI); + + var Cornerstone3D = { + Length: Length, + Bidirectional: Bidirectional, + EllipticalROI: EllipticalROI, + ArrowAnnotate: ArrowAnnotate, + Probe: Probe, + PlanarFreehandROI: PlanarFreehandROI, + MeasurementReport: MeasurementReport$2, + CodeScheme: CodingScheme, + CORNERSTONE_3D_TAG: CORNERSTONE_3D_TAG + }; + + // TODO: Is there a better name for this? RGBAInt? + // Should we move it to Colors.js + function dicomlab2RGBA(cielab) { + var rgba = Colors.dicomlab2RGB(cielab).map(function (x) { + return Math.round(x * 255); + }); + rgba.push(255); + return rgba; + } + + // TODO: Copied these functions in from VTK Math so we don't need a dependency. + // I guess we should put them somewhere + // https://github.com/Kitware/vtk-js/blob/master/Sources/Common/Core/Math/index.js + function cross(x, y, out) { + var Zx = x[1] * y[2] - x[2] * y[1]; + var Zy = x[2] * y[0] - x[0] * y[2]; + var Zz = x[0] * y[1] - x[1] * y[0]; + out[0] = Zx; + out[1] = Zy; + out[2] = Zz; + } + function norm(x) { + var n = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 3; + switch (n) { + case 1: + return Math.abs(x); + case 2: + return Math.sqrt(x[0] * x[0] + x[1] * x[1]); + case 3: + return Math.sqrt(x[0] * x[0] + x[1] * x[1] + x[2] * x[2]); + default: + { + var sum = 0; + for (var i = 0; i < n; i++) { + sum += x[i] * x[i]; + } + return Math.sqrt(sum); + } + } + } + function normalize(x) { + var den = norm(x); + if (den !== 0.0) { + x[0] /= den; + x[1] /= den; + x[2] /= den; + } + return den; + } + function subtract(a, b, out) { + out[0] = a[0] - b[0]; + out[1] = a[1] - b[1]; + out[2] = a[2] - b[2]; + } + + // TODO: This is a useful utility on its own. We should move it somewhere? + // dcmjs.adapters.vtk.Multiframe? dcmjs.utils? + function geometryFromFunctionalGroups(dataset, PerFrameFunctionalGroups) { + var geometry = {}; + var pixelMeasures = dataset.SharedFunctionalGroupsSequence.PixelMeasuresSequence; + var planeOrientation = dataset.SharedFunctionalGroupsSequence.PlaneOrientationSequence; + + // Find the origin of the volume from the PerFrameFunctionalGroups' ImagePositionPatient values + // + // TODO: assumes sorted frames. This should read the ImagePositionPatient from each frame and + // sort them to obtain the first and last position along the acquisition axis. + var firstFunctionalGroup = PerFrameFunctionalGroups[0]; + var lastFunctionalGroup = PerFrameFunctionalGroups[PerFrameFunctionalGroups.length - 1]; + var firstPosition = firstFunctionalGroup.PlanePositionSequence.ImagePositionPatient.map(Number); + var lastPosition = lastFunctionalGroup.PlanePositionSequence.ImagePositionPatient.map(Number); + geometry.origin = firstPosition; + + // NB: DICOM PixelSpacing is defined as Row then Column, + // unlike ImageOrientationPatient + geometry.spacing = [pixelMeasures.PixelSpacing[1], pixelMeasures.PixelSpacing[0], pixelMeasures.SpacingBetweenSlices].map(Number); + geometry.dimensions = [dataset.Columns, dataset.Rows, PerFrameFunctionalGroups.length].map(Number); + var orientation = planeOrientation.ImageOrientationPatient.map(Number); + var columnStepToPatient = orientation.slice(0, 3); + var rowStepToPatient = orientation.slice(3, 6); + geometry.planeNormal = []; + cross(columnStepToPatient, rowStepToPatient, geometry.planeNormal); + geometry.sliceStep = []; + subtract(lastPosition, firstPosition, geometry.sliceStep); + normalize(geometry.sliceStep); + geometry.direction = columnStepToPatient.concat(rowStepToPatient).concat(geometry.sliceStep); + return geometry; + } + var Segmentation = /*#__PURE__*/function () { + function Segmentation() { + _classCallCheck(this, Segmentation); + } + + /** + * Produces an array of Segments from an input DICOM Segmentation dataset + * + * Segments are returned with Geometry values that can be used to create + * VTK Image Data objects. + * + * @example Example usage to create VTK Volume actors from each segment: + * + * const actors = []; + * const segments = generateToolState(dataset); + * segments.forEach(segment => { + * // now make actors using the segment information + * const scalarArray = vtk.Common.Core.vtkDataArray.newInstance({ + * name: "Scalars", + * numberOfComponents: 1, + * values: segment.pixelData, + * }); + * + * const imageData = vtk.Common.DataModel.vtkImageData.newInstance(); + * imageData.getPointData().setScalars(scalarArray); + * imageData.setDimensions(geometry.dimensions); + * imageData.setSpacing(geometry.spacing); + * imageData.setOrigin(geometry.origin); + * imageData.setDirection(geometry.direction); + * + * const mapper = vtk.Rendering.Core.vtkVolumeMapper.newInstance(); + * mapper.setInputData(imageData); + * mapper.setSampleDistance(2.); + * + * const actor = vtk.Rendering.Core.vtkVolume.newInstance(); + * actor.setMapper(mapper); + * + * actors.push(actor); + * }); + * + * @param dataset + * @return {{}} + */ + _createClass(Segmentation, null, [{ + key: "generateSegments", + value: function generateSegments(dataset) { + if (dataset.SegmentSequence.constructor.name !== "Array") { + dataset.SegmentSequence = [dataset.SegmentSequence]; + } + dataset.SegmentSequence.forEach(function (segment) { + // TODO: other interesting fields could be extracted from the segment + // TODO: Read SegmentsOverlay field + // http://dicom.nema.org/medical/dicom/current/output/chtml/part03/sect_C.8.20.2.html + + // TODO: Looks like vtkColor only wants RGB in 0-1 values. + // Why was this example converting to RGBA with 0-255 values? + var color = dicomlab2RGBA(segment.RecommendedDisplayCIELabValue); + segments[segment.SegmentNumber] = { + color: color, + functionalGroups: [], + offset: null, + size: null, + pixelData: null + }; + }); + + // make a list of functional groups per segment + dataset.PerFrameFunctionalGroupsSequence.forEach(function (functionalGroup) { + var segmentNumber = functionalGroup.SegmentIdentificationSequence.ReferencedSegmentNumber; + segments[segmentNumber].functionalGroups.push(functionalGroup); + }); + + // determine per-segment index into the pixel data + // TODO: only handles one-bit-per pixel + var frameSize = Math.ceil(dataset.Rows * dataset.Columns / 8); + var nextOffset = 0; + Object.keys(segments).forEach(function (segmentNumber) { + var segment = segments[segmentNumber]; + segment.numberOfFrames = segment.functionalGroups.length; + segment.size = segment.numberOfFrames * frameSize; + segment.offset = nextOffset; + nextOffset = segment.offset + segment.size; + var packedSegment = dataset.PixelData.slice(segment.offset, nextOffset); + segment.pixelData = BitArray.unpack(packedSegment); + var geometry = geometryFromFunctionalGroups(dataset, segment.functionalGroups); + segment.geometry = geometry; + }); + return segments; + } + }]); + return Segmentation; + }(); + + var VTKjs = { + Segmentation: Segmentation + }; + + function getTID300ContentItem(tool, toolClass) { + var args = toolClass.getTID300RepresentationArguments(tool); + args.use3DSpatialCoordinates = true; + return new toolClass.TID300Representation(args); + } + function getMeasurementGroup(graphicType, measurements) { + var toolClass = MeasurementReport$1.MICROSCOPY_TOOL_CLASSES_BY_TOOL_TYPE[graphicType]; + + // Loop through the array of tool instances + // for this tool + var Measurements = measurements.map(function (tool) { + return getTID300ContentItem(tool, toolClass); + }); + return new TID1501MeasurementGroup(Measurements); + } + var MeasurementReport$1 = /*#__PURE__*/function () { + function MeasurementReport() { + _classCallCheck(this, MeasurementReport); + } + _createClass(MeasurementReport, null, [{ + key: "generateReport", + value: function generateReport(rois, metadataProvider, options) { + // Input is all ROIS returned via viewer.getALLROIs() + // let report = MeasurementReport.generateReport(viewer.getAllROIs()); + + // Sort and split into arrays by scoord3d.graphicType + var measurementsByGraphicType = {}; + rois.forEach(function (roi) { + var graphicType = roi.scoord3d.graphicType; + if (graphicType !== "POINT") { + // adding z coord as 0 + roi.scoord3d.graphicData.map(function (coord) { + return coord.push(0); + }); + } + if (!measurementsByGraphicType[graphicType]) { + measurementsByGraphicType[graphicType] = []; + } + measurementsByGraphicType[graphicType].push(roi.scoord3d); + }); + + // For each measurement, get the utility arguments using the adapter, and create TID300 Measurement + // Group these TID300 Measurements into a TID1501 Measurement Group (for each graphicType) + // Use TID1500MeasurementReport utility to create a single report from the created groups + // return report; + + var allMeasurementGroups = []; + var measurementGroups = []; + Object.keys(measurementsByGraphicType).forEach(function (graphicType) { + var measurements = measurementsByGraphicType[graphicType]; + var group = getMeasurementGroup(graphicType, measurements); + if (group) { + measurementGroups.push(group); + } + allMeasurementGroups = allMeasurementGroups.concat(measurementGroups); + }); + var _MeasurementReport = new TID1500MeasurementReport({ + TID1501MeasurementGroups: allMeasurementGroups + }, options); + + // TODO: what is the correct metaheader + // http://dicom.nema.org/medical/Dicom/current/output/chtml/part10/chapter_7.html + // TODO: move meta creation to happen in derivations.js + var fileMetaInformationVersionArray = new Uint8Array(2); + fileMetaInformationVersionArray[1] = 1; + + // TODO: Find out how to reference the data from dicom-microscopy-viewer + var studyInstanceUID = "12.4"; + var seriesInstanceUID = "12.4"; + var derivationSourceDataset = { + StudyInstanceUID: studyInstanceUID, + SeriesInstanceUID: seriesInstanceUID + //SOPInstanceUID: sopInstanceUID, // TODO: Necessary? + //SOPClassUID: sopClassUID, + }; + + var _meta = { + FileMetaInformationVersion: { + Value: [fileMetaInformationVersionArray.buffer], + vr: "OB" + }, + //MediaStorageSOPClassUID + //MediaStorageSOPInstanceUID: sopCommonModule.sopInstanceUID, + TransferSyntaxUID: { + Value: ["1.2.840.10008.1.2.1"], + vr: "UI" + }, + ImplementationClassUID: { + Value: [DicomMetaDictionary.uid()], + // TODO: could be git hash or other valid id + vr: "UI" + }, + ImplementationVersionName: { + Value: ["dcmjs"], + vr: "SH" + } + }; + var _vrMap = { + PixelData: "OW" + }; + derivationSourceDataset._meta = _meta; + derivationSourceDataset._vrMap = _vrMap; + var report = new StructuredReport([derivationSourceDataset]); + var contentItem = _MeasurementReport.contentItem(derivationSourceDataset); + + // Merge the derived dataset with the content from the Measurement Report + report.dataset = Object.assign(report.dataset, contentItem); + report.dataset._meta = _meta; + return report; + } + + //@ToDo + }, { + key: "generateToolState", + value: function generateToolState(dataset) { + // For now, bail out if the dataset is not a TID1500 SR with length measurements + if (dataset.ContentTemplateSequence.TemplateIdentifier !== "1500") { + throw new Error("This package can currently only interpret DICOM SR TID 1500"); + } + var REPORT = "Imaging Measurements"; + var GROUP = "Measurement Group"; + + // Split the imagingMeasurementContent into measurement groups by their code meaning + var imagingMeasurementContent = toArray(dataset.ContentSequence).find(codeMeaningEquals(REPORT)); + + // Retrieve the Measurements themselves + var measurementGroups = toArray(imagingMeasurementContent.ContentSequence).filter(codeMeaningEquals(GROUP)); + + // // For each of the supported measurement types, compute the measurement data + var measurementData = {}; + measurementGroups.forEach(function (mg) { + Object.keys(MeasurementReport.MICROSCOPY_TOOL_CLASSES_BY_UTILITY_TYPE).forEach(function (measurementType) { + // Find supported measurement types in the Structured Report + var measurementGroupContentSequence = toArray(mg.ContentSequence); + var measurementContent = measurementGroupContentSequence.filter(graphicTypeEquals(measurementType.toUpperCase())); + if (!measurementContent || measurementContent.length === 0) { + return; + } + var toolClass = MeasurementReport.MICROSCOPY_TOOL_CLASSES_BY_UTILITY_TYPE[measurementType]; + var toolType = toolClass.toolType; + if (!toolClass.getMeasurementData) { + throw new Error("MICROSCOPY Tool Adapters must define a getMeasurementData static method."); + } + if (!measurementData[toolType]) { + measurementData[toolType] = []; + } + measurementData[toolType] = [].concat(_toConsumableArray(measurementData[toolType]), _toConsumableArray(toolClass.getMeasurementData(measurementContent))); + }); + }); + return measurementData; + } + }, { + key: "registerTool", + value: function registerTool(toolClass) { + MeasurementReport.MICROSCOPY_TOOL_CLASSES_BY_UTILITY_TYPE[toolClass.utilityToolType] = toolClass; + MeasurementReport.MICROSCOPY_TOOL_CLASSES_BY_TOOL_TYPE[toolClass.graphicType] = toolClass; + MeasurementReport.MEASUREMENT_BY_TOOLTYPE[toolClass.graphicType] = toolClass.utilityToolType; + } + }]); + return MeasurementReport; + }(); + MeasurementReport$1.MEASUREMENT_BY_TOOLTYPE = {}; + MeasurementReport$1.MICROSCOPY_TOOL_CLASSES_BY_UTILITY_TYPE = {}; + MeasurementReport$1.MICROSCOPY_TOOL_CLASSES_BY_TOOL_TYPE = {}; + + var Polyline = /*#__PURE__*/function () { + function Polyline() { + _classCallCheck(this, Polyline); + } + _createClass(Polyline, null, [{ + key: "getMeasurementData", + value: function getMeasurementData(measurementContent) { + // removing duplication and Getting only the graphicData information + var measurement = measurementContent.map(function (item) { + return item.GraphicData; + }).filter(function (s) { + return function (a) { + return function (j) { + return !s.has(j) && s.add(j); + }(JSON.stringify(a)); + }; + }(new Set())); + + // Chunking the array into size of three + return measurement.map(function (measurement) { + return measurement.reduce(function (all, one, i) { + var ch = Math.floor(i / 3); + all[ch] = [].concat(all[ch] || [], one); + return all; + }, []); + }); + } + }, { + key: "getTID300RepresentationArguments", + value: function getTID300RepresentationArguments(scoord3d) { + if (scoord3d.graphicType !== "POLYLINE") { + throw new Error("We expected a POLYLINE graphicType"); + } + var points = scoord3d.graphicData; + var lengths = 1; + return { + points: points, + lengths: lengths + }; + } + }]); + return Polyline; + }(); + Polyline.graphicType = "POLYLINE"; + Polyline.toolType = "Polyline"; + Polyline.utilityToolType = "Polyline"; + Polyline.TID300Representation = Polyline$1; + MeasurementReport$1.registerTool(Polyline); + + /** + * Expand an array of points stored as objects into + * a flattened array of points + * + * @param points [{x: 0, y: 1}, {x: 1, y: 2}] or [{x: 0, y: 1, z: 0}, {x: 1, y: 2, z: 0}] + * @return {Array} [point1x, point1y, point2x, point2y] or [point1x, point1y, point1z, point2x, point2y, point2z] + */ + function expandPoints(points) { + var allPoints = []; + points.forEach(function (point) { + allPoints.push(point[0]); + allPoints.push(point[1]); + if (point[2] !== undefined) { + allPoints.push(point[2]); + } + }); + return allPoints; + } + var Polygon$1 = /*#__PURE__*/function (_TID300Measurement) { + _inherits(Polygon, _TID300Measurement); + var _super = _createSuper(Polygon); + function Polygon() { + _classCallCheck(this, Polygon); + return _super.apply(this, arguments); + } + _createClass(Polygon, [{ + key: "contentItem", + value: function contentItem() { + var _this$props = this.props, + points = _this$props.points, + perimeter = _this$props.perimeter, + _this$props$unit = _this$props.unit, + unit = _this$props$unit === void 0 ? "mm" : _this$props$unit, + area = _this$props.area, + areaUnit = _this$props.areaUnit, + ReferencedSOPSequence = _this$props.ReferencedSOPSequence, + _this$props$use3DSpat = _this$props.use3DSpatialCoordinates, + use3DSpatialCoordinates = _this$props$use3DSpat === void 0 ? false : _this$props$use3DSpat; + var GraphicData = expandPoints(points); + return this.getMeasurement([{ + RelationshipType: "CONTAINS", + ValueType: "NUM", + ConceptNameCodeSequence: { + CodeValue: "G-A197", + CodingSchemeDesignator: "SRT", + CodeMeaning: "Perimeter" + }, + MeasuredValueSequence: { + MeasurementUnitsCodeSequence: unit2CodingValue(unit), + NumericValue: perimeter + }, + ContentSequence: { + RelationshipType: "INFERRED FROM", + ValueType: use3DSpatialCoordinates ? "SCOORD3D" : "SCOORD", + GraphicType: "POLYGON", + GraphicData: GraphicData, + ContentSequence: use3DSpatialCoordinates ? undefined : { + RelationshipType: "SELECTED FROM", + ValueType: "IMAGE", + ReferencedSOPSequence: ReferencedSOPSequence + } + } + }, { + RelationshipType: "CONTAINS", + ValueType: "NUM", + ConceptNameCodeSequence: { + CodeValue: "G-A166", + CodingSchemeDesignator: "SRT", + CodeMeaning: "Area" + }, + MeasuredValueSequence: { + MeasurementUnitsCodeSequence: unit2CodingValue(areaUnit), + NumericValue: area + }, + ContentSequence: { + RelationshipType: "INFERRED FROM", + ValueType: use3DSpatialCoordinates ? "SCOORD3D" : "SCOORD", + GraphicType: "POLYGON", + GraphicData: GraphicData, + ContentSequence: use3DSpatialCoordinates ? undefined : { + RelationshipType: "SELECTED FROM", + ValueType: "IMAGE", + ReferencedSOPSequence: ReferencedSOPSequence + } + } + }]); + } + }]); + return Polygon; + }(TID300Measurement); + + var Polygon = /*#__PURE__*/function () { + function Polygon() { + _classCallCheck(this, Polygon); + } + _createClass(Polygon, null, [{ + key: "getMeasurementData", + value: function getMeasurementData(measurementContent) { + // removing duplication and Getting only the graphicData information + var measurement = measurementContent.map(function (item) { + return item.GraphicData; + }).filter(function (s) { + return function (a) { + return function (j) { + return !s.has(j) && s.add(j); + }(JSON.stringify(a)); + }; + }(new Set())); + + // Chunking the array into size of three + return measurement.map(function (measurement) { + return measurement.reduce(function (all, one, i) { + var ch = Math.floor(i / 3); + all[ch] = [].concat(all[ch] || [], one); + return all; + }, []); + }); + } + }, { + key: "getTID300RepresentationArguments", + value: function getTID300RepresentationArguments(scoord3d) { + if (scoord3d.graphicType !== "POLYGON") { + throw new Error("We expected a POLYGON graphicType"); + } + var points = scoord3d.graphicData; + var lengths = 1; + return { + points: points, + lengths: lengths + }; + } + }]); + return Polygon; + }(); + Polygon.graphicType = "POLYGON"; + Polygon.toolType = "Polygon"; + Polygon.utilityToolType = "Polygon"; + Polygon.TID300Representation = Polygon$1; + MeasurementReport$1.registerTool(Polygon); + + var Point = /*#__PURE__*/function () { + function Point() { + _classCallCheck(this, Point); + } + _createClass(Point, null, [{ + key: "getMeasurementData", + value: function getMeasurementData(measurementContent) { + var measurement = measurementContent.map(function (item) { + return item.GraphicData; + }); + return measurement.filter(function (s) { + return function (a) { + return function (j) { + return !s.has(j) && s.add(j); + }(JSON.stringify(a)); + }; + }(new Set())); + } + }, { + key: "getTID300RepresentationArguments", + value: function getTID300RepresentationArguments(scoord3d) { + if (scoord3d.graphicType !== "POINT") { + throw new Error("We expected a POINT graphicType"); + } + var points = [scoord3d.graphicData]; + var lengths = 1; + return { + points: points, + lengths: lengths + }; + } + }]); + return Point; + }(); + Point.graphicType = "POINT"; + Point.toolType = "Point"; + Point.utilityToolType = "Point"; + Point.TID300Representation = Point$1; + MeasurementReport$1.registerTool(Point); + + var Circle = /*#__PURE__*/function () { + function Circle() { + _classCallCheck(this, Circle); + } + _createClass(Circle, null, [{ + key: "getMeasurementData", + value: function getMeasurementData(measurementContent) { + // removing duplication and Getting only the graphicData information + var measurement = measurementContent.map(function (item) { + return item.GraphicData; + }).filter(function (s) { + return function (a) { + return function (j) { + return !s.has(j) && s.add(j); + }(JSON.stringify(a)); + }; + }(new Set())); + + // Chunking the array into size of three + return measurement.map(function (measurement) { + return measurement.reduce(function (all, one, i) { + var ch = Math.floor(i / 3); + all[ch] = [].concat(all[ch] || [], one); + return all; + }, []); + }); + } + }, { + key: "getTID300RepresentationArguments", + value: function getTID300RepresentationArguments(scoord3d) { + if (scoord3d.graphicType !== "CIRCLE") { + throw new Error("We expected a CIRCLE graphicType"); + } + var points = scoord3d.graphicData; + var lengths = 1; + return { + points: points, + lengths: lengths + }; + } + }]); + return Circle; + }(); + Circle.graphicType = "CIRCLE"; + Circle.toolType = "Circle"; + Circle.utilityToolType = "Circle"; + Circle.TID300Representation = Circle$1; + MeasurementReport$1.registerTool(Circle); + + var Ellipse = /*#__PURE__*/function () { + function Ellipse() { + _classCallCheck(this, Ellipse); + } + _createClass(Ellipse, null, [{ + key: "getMeasurementData", + value: function getMeasurementData(measurementContent) { + // removing duplication and Getting only the graphicData information + var measurement = measurementContent.map(function (item) { + return item.GraphicData; + }).filter(function (s) { + return function (a) { + return function (j) { + return !s.has(j) && s.add(j); + }(JSON.stringify(a)); + }; + }(new Set())); + + // Chunking the array into size of three + return measurement.map(function (measurement) { + return measurement.reduce(function (all, one, i) { + var ch = Math.floor(i / 3); + all[ch] = [].concat(all[ch] || [], one); + return all; + }, []); + }); + } + }, { + key: "getTID300RepresentationArguments", + value: function getTID300RepresentationArguments(scoord3d) { + if (scoord3d.graphicType !== "Ellipse") { + throw new Error("We expected a Ellipse graphicType"); + } + var points = scoord3d.graphicData; + var lengths = 1; + return { + points: points, + lengths: lengths + }; + } + }]); + return Ellipse; + }(); + Ellipse.graphicType = "ELLIPSE"; + Ellipse.toolType = "Ellipse"; + Ellipse.utilityToolType = "Ellipse"; + Ellipse.TID300Representation = Ellipse$1; + MeasurementReport$1.registerTool(Ellipse); + + var DICOMMicroscopyViewer = { + Polyline: Polyline, + Polygon: Polygon, + Point: Point, + Circle: Circle, + Ellipse: Ellipse, + MeasurementReport: MeasurementReport$1 + }; + + var adapters = { + Cornerstone: Cornerstone, + Cornerstone3D: Cornerstone3D, + VTKjs: VTKjs, + DICOMMicroscopyViewer: DICOMMicroscopyViewer + }; + + var TID1500 = { + TID1500MeasurementReport: TID1500MeasurementReport, + TID1501MeasurementGroup: TID1501MeasurementGroup + }; + + var Calibration = /*#__PURE__*/function (_TID300Measurement) { + _inherits(Calibration, _TID300Measurement); + var _super = _createSuper(Calibration); + function Calibration() { + _classCallCheck(this, Calibration); + return _super.apply(this, arguments); + } + _createClass(Calibration, [{ + key: "contentItem", + value: function contentItem() { + var _this$props = this.props, + point1 = _this$props.point1, + point2 = _this$props.point2, + _this$props$unit = _this$props.unit, + unit = _this$props$unit === void 0 ? "mm" : _this$props$unit, + distance = _this$props.distance, + ReferencedSOPSequence = _this$props.ReferencedSOPSequence; + return this.getMeasurement([{ + RelationshipType: "CONTAINS", + ValueType: "NUM", + ConceptNameCodeSequence: { + CodeValue: "102304005", + CodingSchemeDesignator: "SCT", + CodeMeaning: "Calibration Ruler" + }, + MeasuredValueSequence: { + MeasurementUnitsCodeSequence: unit2CodingValue(unit), + NumericValue: distance + }, + ContentSequence: { + RelationshipType: "INFERRED FROM", + ValueType: "SCOORD", + GraphicType: "POLYLINE", + GraphicData: [point1.x, point1.y, point2.x, point2.y], + ContentSequence: { + RelationshipType: "SELECTED FROM", + ValueType: "IMAGE", + ReferencedSOPSequence: ReferencedSOPSequence + } + } + }]); + } + }]); + return Calibration; + }(TID300Measurement); + + // To be implemented: + // - Cornerstone Probe + // Note: OHIF currently uses Cornerstone's 'dragProbe'. We need to add the regular Probe tool, which drops a single point. + // + // Hierarchy + // TID 1500 MeasurementReport + // --TID 1501 Measurement Group + // ---Measurement Group (DCM 125007) + // ----TID 300 Measurement + // ------SCOORD. Graphic Type: POINT + // + // + // - Cornerstone Ellipse: + // + // Should specify the Mean Modality Pixel Value measured in whatever units the image is in + // Should specify the Standard Deviation Modality Pixel Value measured in whatever units the image is in + // + // + // - Cornerstone Rectangle ROI + // + // Hierarchy + // TID 1500 MeasurementReport + // --TID 1501 Measurement Group + // ---Measurement Group (DCM 125007) + // ----TID 300 Measurement + // ------SCOORD. Graphic Type: POLYLINE + // ------ Use concept corresponding to Rectangle measurement + // + // http://dicom.nema.org/medical/dicom/current/output/html/part16.html#sect_TID_4019 + // + // OR + // Note: This should be the same as a Freehand ROI, more or less. We add a TID 4019: Algorithm Identification flag to specify that this was created (and should be rehydrated) into a Rectangle ROI. + // TODO: Should we use a Derivation instead? http://dicom.nema.org/medical/dicom/current/output/html/part16.html#DCM_121401 + // Should specify the Area measured in mmˆ2, including the units in UCUM + // Should specify the Mean Modality Pixel Value measured in whatever units the image is in + // Should specify the Standard Deviation Modality Pixel Value measured in whatever units the image is in + // + // + // - Cornerstone Simple Angle tool + // + // Hierarchy + // TID 1500 MeasurementReport + // --TID 1501 Measurement Group + // ---Measurement Group (DCM 125007) + // ----TID 300 Measurement + // ------SCOORD. Graphic Type: POLYLINE + // (ftp://dicom.nema.org/MEDICAL/dicom/current/output/chtml/part03/sect_C.10.5.html) + // ----TID 300 Measurement + // ------SCOORD. Graphic Type: POLYLINE + // (ftp://dicom.nema.org/MEDICAL/dicom/current/output/chtml/part03/sect_C.10.5.html) + // + // ------ Use concept corresponding to Angle measurement + // + // Two lines specify the angle + // Should specify the Angle measured in Degrees, including the units in UCUM + // + var TID300 = { + TID300Measurement: TID300Measurement, + Point: Point$1, + Length: Length$2, + CobbAngle: CobbAngle$1, + Bidirectional: Bidirectional$2, + Polyline: Polyline$1, + Polygon: Polygon$1, + Ellipse: Ellipse$1, + Circle: Circle$1, + Calibration: Calibration, + unit2CodingValue: unit2CodingValue + }; + + /** + * Converts a Uint8Array to a String. + * @param {Uint8Array} array that should be converted + * @param {Number} offset array offset in case only subset of array items should be extracted (default: 0) + * @param {Number} limit maximum number of array items that should be extracted (defaults to length of array) + * @returns {String} + */ + function uint8ArrayToString(arr, offset, limit) { + offset = offset || 0; + limit = limit || arr.length - offset; + var str = ""; + for (var i = offset; i < offset + limit; i++) { + str += String.fromCharCode(arr[i]); + } + return str; + } + + /** + * Converts a String to a Uint8Array. + * @param {String} str string that should be converted + * @returns {Uint8Array} + */ + function stringToUint8Array(str) { + var arr = new Uint8Array(str.length); + for (var i = 0, j = str.length; i < j; i++) { + arr[i] = str.charCodeAt(i); + } + return arr; + } + + /** + * Identifies the boundary in a multipart/related message header. + * @param {String} header message header + * @returns {String} boundary + */ + function identifyBoundary(header) { + var parts = header.split("\r\n"); + for (var i = 0; i < parts.length; i++) { + if (parts[i].substr(0, 2) === "--") { + return parts[i]; + } + } + } + + /** + * Checks whether a given token is contained by a message at a given offset. + * @param {Uint8Array} message message content + * @param {Uint8Array} token substring that should be present + * @param {Number} offset offset in message content from where search should start + * @returns {Boolean} whether message contains token at offset + */ + function containsToken(message, token) { + var offset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0; + if (offset + token.length > message.length) { + return false; + } + var index = offset; + for (var i = 0; i < token.length; i++) { + if (token[i] !== message[index++]) { + return false; + } + } + return true; + } + + /** + * Finds a given token in a message at a given offset. + * @param {Uint8Array} message message content + * @param {Uint8Array} token substring that should be found + * @param {Number} offset message body offset from where search should start + * @returns {Boolean} whether message has a part at given offset or not + */ + function findToken(message, token) { + var offset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0; + var maxSearchLength = arguments.length > 3 ? arguments[3] : undefined; + var searchLength = message.length; + if (maxSearchLength) { + searchLength = Math.min(offset + maxSearchLength, message.length); + } + for (var i = offset; i < searchLength; i++) { + // If the first value of the message matches + // the first value of the token, check if + // this is the full token. + if (message[i] === token[0]) { + if (containsToken(message, token, i)) { + return i; + } + } + } + return -1; + } + + /** + * @typedef {Object} MultipartEncodedData + * @property {ArrayBuffer} data The encoded Multipart Data + * @property {String} boundary The boundary used to divide pieces of the encoded data + */ + + /** + * Encode one or more DICOM datasets into a single body so it can be + * sent using the Multipart Content-Type. + * + * @param {ArrayBuffer[]} datasets Array containing each file to be encoded in the multipart body, passed as ArrayBuffers. + * @param {String} [boundary] Optional string to define a boundary between each part of the multipart body. If this is not specified, a random GUID will be generated. + * @return {MultipartEncodedData} The Multipart encoded data returned as an Object. This contains both the data itself, and the boundary string used to divide it. + */ + function multipartEncode(datasets) { + var boundary = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : guid(); + var contentType = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : "application/dicom"; + var contentTypeString = "Content-Type: ".concat(contentType); + var header = "\r\n--".concat(boundary, "\r\n").concat(contentTypeString, "\r\n\r\n"); + var footer = "\r\n--".concat(boundary, "--"); + var headerArray = stringToUint8Array(header); + var footerArray = stringToUint8Array(footer); + var headerLength = headerArray.length; + var footerLength = footerArray.length; + var length = 0; + + // Calculate the total length for the final array + var contentArrays = datasets.map(function (datasetBuffer) { + var contentArray = new Uint8Array(datasetBuffer); + var contentLength = contentArray.length; + length += headerLength + contentLength + footerLength; + return contentArray; + }); + + // Allocate the array + var multipartArray = new Uint8Array(length); + + // Set the initial header + multipartArray.set(headerArray, 0); + + // Write each dataset into the multipart array + var position = 0; + contentArrays.forEach(function (contentArray) { + contentArray.length; + multipartArray.set(headerArray, position); + multipartArray.set(contentArray, position + headerLength); + position += headerLength + contentArray.length; + }); + multipartArray.set(footerArray, position); + return { + data: multipartArray.buffer, + boundary: boundary + }; + } + + /** + * Decode a Multipart encoded ArrayBuffer and return the components as an Array. + * + * @param {ArrayBuffer} response Data encoded as a 'multipart/related' message + * @returns {Array} The content + */ + function multipartDecode(response) { + var message = new Uint8Array(response); + + /* Set a maximum length to search for the header boundaries, otherwise + findToken can run for a long time + */ + var maxSearchLength = 1000; + + // First look for the multipart mime header + var separator = stringToUint8Array("\r\n\r\n"); + var headerIndex = findToken(message, separator, 0, maxSearchLength); + if (headerIndex === -1) { + throw new Error("Response message has no multipart mime header"); + } + var header = uint8ArrayToString(message, 0, headerIndex); + var boundaryString = identifyBoundary(header); + if (!boundaryString) { + throw new Error("Header of response message does not specify boundary"); + } + var boundary = stringToUint8Array(boundaryString); + boundary.length; + var components = []; + var offset = headerIndex + separator.length; + + // Loop until we cannot find any more boundaries + var boundaryIndex; + while (boundaryIndex !== -1) { + // Search for the next boundary in the message, starting + // from the current offset position + boundaryIndex = findToken(message, boundary, offset); + + // If no further boundaries are found, stop here. + if (boundaryIndex === -1) { + break; + } + + // Extract data from response message, excluding "\r\n" + var spacingLength = 2; + var length = boundaryIndex - offset - spacingLength; + var data = response.slice(offset, offset + length); + + // Add the data to the array of results + components.push(data); + + // find the end of the boundary + var boundaryEnd = findToken(message, separator, boundaryIndex + 1, maxSearchLength); + if (boundaryEnd === -1) break; + // Move the offset to the end of the identified boundary + offset = boundaryEnd + separator.length; + } + return components; + } + + /** + * Create a random GUID + * + * @return {string} + */ + function guid() { + function s4() { + return Math.floor((1 + Math.random()) * 0x10000).toString(16).substring(1); + } + return s4() + s4() + "-" + s4() + "-" + s4() + "-" + s4() + "-" + s4() + s4() + s4(); + } + var message = { + containsToken: containsToken, + findToken: findToken, + identifyBoundary: identifyBoundary, + uint8ArrayToString: uint8ArrayToString, + stringToUint8Array: stringToUint8Array, + multipartEncode: multipartEncode, + multipartDecode: multipartDecode, + guid: guid + }; + + var utilities = { + TID1500: TID1500, + TID300: TID300, + message: message, + addAccessors: addAccessors, + orientation: orientation, + compression: compression, + dicomJson: dicomJson + }; + + var Code = /*#__PURE__*/function () { + function Code(options) { + _classCallCheck(this, Code); + this[_value] = options.value; + this[_meaning] = options.meaning; + this[_schemeDesignator] = options.schemeDesignator; + this[_schemeVersion] = options.schemeVersion || null; + } + _createClass(Code, [{ + key: "value", + get: function get() { + return this[_value]; + } + }, { + key: "meaning", + get: function get() { + return this[_meaning]; + } + }, { + key: "schemeDesignator", + get: function get() { + return this[_schemeDesignator]; + } + }, { + key: "schemeVersion", + get: function get() { + return this[_schemeVersion]; + } + }]); + return Code; + }(); + var CodedConcept = /*#__PURE__*/function () { + function CodedConcept(options) { + _classCallCheck(this, CodedConcept); + if (options.value === undefined) { + throw new Error("Option 'value' is required for CodedConcept."); + } + if (options.meaning === undefined) { + throw new Error("Option 'meaning' is required for CodedConcept."); + } + if (options.schemeDesignator === undefined) { + throw new Error("Option 'schemeDesignator' is required for CodedConcept."); + } + this.CodeValue = options.value; + this.CodeMeaning = options.meaning; + this.CodingSchemeDesignator = options.schemeDesignator; + if ("schemeVersion" in options) { + this.CodingSchemeVersion = options.schemeVersion; + } + } + _createClass(CodedConcept, [{ + key: "equals", + value: function equals(other) { + if (other.value === this.value && other.schemeDesignator === this.schemeDesignator) { + if (other.schemeVersion && this.schemeVersion) { + return other.schemeVersion === this.schemeVersion; + } + return true; + } + return false; + } + }, { + key: "value", + get: function get() { + return this.CodeValue; + } + }, { + key: "meaning", + get: function get() { + return this.CodeMeaning; + } + }, { + key: "schemeDesignator", + get: function get() { + return this.CodingSchemeDesignator; + } + }, { + key: "schemeVersion", + get: function get() { + return this.CodingSchemeVersion; + } + }]); + return CodedConcept; + }(); + + var coding = /*#__PURE__*/Object.freeze({ + __proto__: null, + Code: Code, + CodedConcept: CodedConcept + }); + + var ValueTypes = { + CODE: "CODE", + COMPOSITE: "COMPOSITE", + CONTAINER: "CONTAINER", + DATE: "DATE", + DATETIME: "DATETIME", + IMAGE: "IMAGE", + NUM: "NUM", + PNAME: "PNAME", + SCOORD: "SCOORD", + SCOORD3D: "SCOORD3D", + TCOORD: "TCOORD", + TEXT: "TEXT", + TIME: "TIME", + UIDREF: "UIDREF", + WAVEFORM: "WAVEFORM" + }; + Object.freeze(ValueTypes); + var GraphicTypes = { + CIRCLE: "CIRCLE", + ELLIPSE: "ELLIPSE", + ELLIPSOID: "ELLIPSOID", + MULTIPOINT: "MULTIPOINT", + POINT: "POINT", + POLYLINE: "POLYLINE" + }; + Object.freeze(GraphicTypes); + var GraphicTypes3D = { + ELLIPSE: "ELLIPSE", + ELLIPSOID: "ELLIPSOID", + MULTIPOINT: "MULTIPOINT", + POINT: "POINT", + POLYLINE: "POLYLINE", + POLYGON: "POLYGON" + }; + Object.freeze(GraphicTypes3D); + var TemporalRangeTypes = { + BEGIN: "BEGIN", + END: "END", + MULTIPOINT: "MULTIPOINT", + MULTISEGMENT: "MULTISEGMENT", + POINT: "POINT", + SEGMENT: "SEGMENT" + }; + Object.freeze(TemporalRangeTypes); + var RelationshipTypes = { + CONTAINS: "CONTAINS", + HAS_ACQ_CONTENT: "HAS ACQ CONTENT", + HAS_CONCEPT_MOD: "HAS CONCEPT MOD", + HAS_OBS_CONTEXT: "HAS OBS CONTEXT", + HAS_PROPERTIES: "HAS PROPERTIES", + INFERRED_FROM: "INFERRED FROM", + SELECTED_FROM: "SELECTED FROM" + }; + Object.freeze(RelationshipTypes); + var PixelOriginInterpretations = { + FRAME: "FRAME", + VOLUME: "VOLUME" + }; + Object.freeze(RelationshipTypes); + function isFloat(n) { + return n === +n && n !== (n | 0); + } + function zeroPad(value) { + return (value > 9 ? "" : "0") + value; + } + function TM(date) { + // %H%M%S.%f + var hours = date.getHours(); + var minutes = date.getMinutes(); + var seconds = date.getSeconds(); + var milliseconds = date.getMilliseconds(); + return zeroPad(hours) + zeroPad(minutes) + zeroPad(seconds) + milliseconds; + } + function DA(date) { + var year = date.getFullYear(); + var month = date.getMonth() + 1; + var day = date.getDate(); + return year + zeroPad(month) + zeroPad(day); + } + function DT(date) { + return DA(date) + TM(date); + } + var ContentSequence$1 = /*#__PURE__*/function (_Array) { + _inherits(ContentSequence, _Array); + var _super = _createSuper(ContentSequence); + function ContentSequence() { + _classCallCheck(this, ContentSequence); + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + return _super.call.apply(_super, [this].concat(args)); + } + + // filterBy(options) { + // } + return _createClass(ContentSequence); + }( /*#__PURE__*/_wrapNativeSuper(Array)); + var ContentItem = /*#__PURE__*/_createClass(function ContentItem(options) { + _classCallCheck(this, ContentItem); + if (options.name === undefined) { + throw new Error("Option 'name' is required for ContentItem."); + } + if (options.name.constructor !== CodedConcept) { + throw new Error("Option 'name' must have type CodedConcept."); + } + this.ConceptNameCodeSequence = [options.name]; + if (options.valueType === undefined) { + throw new Error("Option 'valueType' is required for ContentItem."); + } + if (!(Object.values(ValueTypes).indexOf(options.valueType) !== -1)) { + throw new Error("Invalid value type ".concat(options.valueType)); + } + this.ValueType = options.valueType; + if (options.relationshipType !== undefined) { + if (!(Object.values(RelationshipTypes).indexOf(options.relationshipType) !== -1)) { + throw new Error("Invalid relationship type ".concat(options.relationshipTypes)); + } + this.RelationshipType = options.relationshipType; + } + // TODO: relationship type is required + } + + // getContentItems(options) { + // // TODO: filter by name, value type and relationship type + // return this.ContentSequence; + // } + ); + var CodeContentItem = /*#__PURE__*/function (_ContentItem) { + _inherits(CodeContentItem, _ContentItem); + var _super2 = _createSuper(CodeContentItem); + function CodeContentItem(options) { + var _this; + _classCallCheck(this, CodeContentItem); + _this = _super2.call(this, { + name: options.name, + relationshipType: options.relationshipType, + valueType: ValueTypes.CODE + }); + if (options.value === undefined) { + throw new Error("Option 'value' is required for CodeContentItem."); + } + if (!(options.value || options.value.constructor === CodedConcept)) { + throw new Error("Option 'value' must have type CodedConcept."); + } + _this.ConceptCodeSequence = [options.value]; + return _this; + } + return _createClass(CodeContentItem); + }(ContentItem); + var TextContentItem = /*#__PURE__*/function (_ContentItem2) { + _inherits(TextContentItem, _ContentItem2); + var _super3 = _createSuper(TextContentItem); + function TextContentItem(options) { + var _this2; + _classCallCheck(this, TextContentItem); + _this2 = _super3.call(this, { + name: options.name, + relationshipType: options.relationshipType, + valueType: ValueTypes.TEXT + }); + if (options.value === undefined) { + throw new Error("Option 'value' is required for TextContentItem."); + } + if (!(typeof options.value === "string" || options.value instanceof String)) { + throw new Error("Option 'value' must have type String."); + } + _this2.TextValue = options.value; + return _this2; + } + return _createClass(TextContentItem); + }(ContentItem); + var PNameContentItem = /*#__PURE__*/function (_ContentItem3) { + _inherits(PNameContentItem, _ContentItem3); + var _super4 = _createSuper(PNameContentItem); + function PNameContentItem(options) { + var _this3; + _classCallCheck(this, PNameContentItem); + _this3 = _super4.call(this, { + name: options.name, + relationshipType: options.relationshipType, + valueType: ValueTypes.PNAME + }); + if (options.value === undefined) { + throw new Error("Option 'value' is required for PNameContentItem."); + } + if (!(typeof options.value === "string" || options.value instanceof String)) { + throw new Error("Option 'value' must have type String."); + } + _this3.PersonName = options.value; + return _this3; + } + return _createClass(PNameContentItem); + }(ContentItem); + var TimeContentItem = /*#__PURE__*/function (_ContentItem4) { + _inherits(TimeContentItem, _ContentItem4); + var _super5 = _createSuper(TimeContentItem); + function TimeContentItem(options) { + var _this4; + _classCallCheck(this, TimeContentItem); + _this4 = _super5.call(this, { + name: options.name, + relationshipType: options.relationshipType, + valueType: ValueTypes.TIME + }); + if (options.value === undefined) { + throw new Error("Option 'value' is required for TimeContentItem."); + } + if (!(_typeof(options.value) === "object" || options.value instanceof Date)) { + throw new Error("Option 'value' must have type Date."); + } + _this4.Time = TM(options.value); + return _this4; + } + return _createClass(TimeContentItem); + }(ContentItem); + var DateContentItem = /*#__PURE__*/function (_ContentItem5) { + _inherits(DateContentItem, _ContentItem5); + var _super6 = _createSuper(DateContentItem); + function DateContentItem(options) { + var _this5; + _classCallCheck(this, DateContentItem); + _this5 = _super6.call(this, { + name: options.name, + relationshipType: options.relationshipType, + valueType: ValueTypes.DATE + }); + if (options.value === undefined) { + throw new Error("Option 'value' is required for DateContentItem."); + } + if (!(_typeof(options.value) === "object" || options.value instanceof Date)) { + throw new Error("Option 'value' must have type Date."); + } + _this5.Date = DA(options.value); + return _this5; + } + return _createClass(DateContentItem); + }(ContentItem); + var DateTimeContentItem = /*#__PURE__*/function (_ContentItem6) { + _inherits(DateTimeContentItem, _ContentItem6); + var _super7 = _createSuper(DateTimeContentItem); + function DateTimeContentItem(options) { + var _this6; + _classCallCheck(this, DateTimeContentItem); + _this6 = _super7.call(this, { + name: options.name, + relationshipType: options.relationshipType, + valueType: ValueTypes.DATETIME + }); + if (options.value === undefined) { + throw new Error("Option 'value' is required for DateTimeContentItem."); + } + if (!(_typeof(options.value) === "object" || options.value instanceof Date)) { + throw new Error("Option 'value' must have type Date."); + } + _this6.DateTime = DT(otions.value); + return _this6; + } + return _createClass(DateTimeContentItem); + }(ContentItem); + var UIDRefContentItem = /*#__PURE__*/function (_ContentItem7) { + _inherits(UIDRefContentItem, _ContentItem7); + var _super8 = _createSuper(UIDRefContentItem); + function UIDRefContentItem(options) { + var _this7; + _classCallCheck(this, UIDRefContentItem); + _this7 = _super8.call(this, { + name: options.name, + relationshipType: options.relationshipType, + valueType: ValueTypes.UIDREF + }); + if (options.value === undefined) { + throw new Error("Option 'value' is required for UIDRefContentItem."); + } + if (!(typeof options.value === "string" || options.value instanceof String)) { + throw new Error("Option 'value' must have type String."); + } + _this7.UID = options.value; + return _this7; + } + return _createClass(UIDRefContentItem); + }(ContentItem); + var NumContentItem = /*#__PURE__*/function (_ContentItem8) { + _inherits(NumContentItem, _ContentItem8); + var _super9 = _createSuper(NumContentItem); + function NumContentItem(options) { + var _this8; + _classCallCheck(this, NumContentItem); + _this8 = _super9.call(this, { + name: options.name, + relationshipType: options.relationshipType, + valueType: ValueTypes.NUM + }); + if (options.value !== undefined) { + if (!(typeof options.value === "number" || options.value instanceof Number)) { + throw new Error("Option 'value' must have type Number."); + } + if (options.unit === undefined) { + throw new Error("Option 'unit' is required for NumContentItem with 'value'."); + } + if (options.unit.constructor !== CodedConcept) { + throw new Error("Option 'unit' must have type CodedConcept."); + } + var item = {}; + item.NumericValue = options.value; + if (isFloat(options.value)) { + item.FloatingPointValue = options.value; + } + item.MeasurementUnitsCodeSequence = [options.unit]; + _this8.MeasuredValueSequence = [item]; + } else if (options.qualifier !== undefined) { + if (!(options.qualifier || options.qualifier.constructor === CodedConcept)) { + throw new Error("Option 'qualifier' must have type CodedConcept."); + } + _this8.NumericValueQualifierCodeSequence = [options.qualifier]; + } else { + throw new Error("Either option 'value' or 'qualifier' is required for NumContentItem."); + } + return _this8; + } + return _createClass(NumContentItem); + }(ContentItem); + var ContainerContentItem = /*#__PURE__*/function (_ContentItem9) { + _inherits(ContainerContentItem, _ContentItem9); + var _super10 = _createSuper(ContainerContentItem); + function ContainerContentItem(options) { + var _this9; + _classCallCheck(this, ContainerContentItem); + _this9 = _super10.call(this, { + name: options.name, + relationshipType: options.relationshipType, + valueType: ValueTypes.CONTAINER + }); + if (options.isContentContinuous !== undefined) { + _this9.ContinuityOfContent = "CONTINUOUS"; + } else { + _this9.ContinuityOfContent = "SEPARATE"; + } + if (options.templateID !== undefined) { + if (!(typeof options.templateID === "string" || options.templateID instanceof String)) { + throw new Error("Option 'templateID' must have type String."); + } + var item = {}; + item.MappingResource = "DCMR"; + item.TemplateIdentifier = options.templateID; + _this9.ContentTemplateSequence = [item]; + } + return _this9; + } + return _createClass(ContainerContentItem); + }(ContentItem); + var CompositeContentItem = /*#__PURE__*/function (_ContentItem10) { + _inherits(CompositeContentItem, _ContentItem10); + var _super11 = _createSuper(CompositeContentItem); + function CompositeContentItem(options) { + var _this10; + _classCallCheck(this, CompositeContentItem); + _this10 = _super11.call(this, { + name: options.name, + relationshipType: options.relationshipType, + valueType: ValueTypes.COMPOSITE + }); + if (options.referencedSOPClassUID === undefined) { + throw new Error("Option 'referencedSOPClassUID' is required for CompositeContentItem."); + } + if (options.referencedSOPInstanceUID === undefined) { + throw new Error("Option 'referencedSOPInstanceUID' is required for CompositeContentItem."); + } + if (!(typeof options.referencedSOPClassUID === "string" || options.referencedSOPClassUID instanceof String)) { + throw new Error("Option 'referencedSOPClassUID' must have type String."); + } + if (!(typeof options.referencedSOPInstanceUID === "string" || options.referencedSOPInstanceUID instanceof String)) { + throw new Error("Option 'referencedSOPInstanceUID' must have type String."); + } + var item = {}; + item.ReferencedSOPClassUID = options.referencedSOPClassUID; + item.ReferencedSOPInstanceUID = options.referencedSOPInstanceUID; + _this10.ReferenceSOPSequence = [item]; + return _this10; + } + return _createClass(CompositeContentItem); + }(ContentItem); + var ImageContentItem = /*#__PURE__*/function (_ContentItem11) { + _inherits(ImageContentItem, _ContentItem11); + var _super12 = _createSuper(ImageContentItem); + function ImageContentItem(options) { + var _this11; + _classCallCheck(this, ImageContentItem); + _this11 = _super12.call(this, { + name: options.name, + relationshipType: options.relationshipType, + valueType: ValueTypes.IMAGE + }); + if (options.referencedSOPClassUID === undefined) { + throw new Error("Option 'referencedSOPClassUID' is required for ImageContentItem."); + } + if (options.referencedSOPInstanceUID === undefined) { + throw new Error("Option 'referencedSOPInstanceUID' is required for ImageContentItem."); + } + if (!(typeof options.referencedSOPClassUID === "string" || options.referencedSOPClassUID instanceof String)) { + throw new Error("Option 'referencedSOPClassUID' must have type String."); + } + if (!(typeof options.referencedSOPInstanceUID === "string" || options.referencedSOPInstanceUID instanceof String)) { + throw new Error("Option 'referencedSOPInstanceUID' must have type String."); + } + var item = {}; + item.ReferencedSOPClassUID = options.referencedSOPClassUID; + item.ReferencedSOPInstanceUID = options.referencedSOPInstanceUID; + if (options.referencedFrameNumbers !== undefined) { + if (!(_typeof(options.referencedFrameNumbers) === "object" || options.referencedFrameNumbers instanceof Array)) { + throw new Error("Option 'referencedFrameNumbers' must have type Array."); + } + // FIXME: value multiplicity + item.ReferencedFrameNumber = options.referencedFrameNumbers; + } + if (options.referencedFrameSegmentNumber !== undefined) { + if (!(_typeof(options.referencedSegmentNumbers) === "object" || options.referencedSegmentNumbers instanceof Array)) { + throw new Error("Option 'referencedSegmentNumbers' must have type Array."); + } + // FIXME: value multiplicity + item.ReferencedSegmentNumber = options.referencedSegmentNumbers; + } + _this11.ReferencedSOPSequence = [item]; + return _this11; + } + return _createClass(ImageContentItem); + }(ContentItem); + var ScoordContentItem = /*#__PURE__*/function (_ContentItem12) { + _inherits(ScoordContentItem, _ContentItem12); + var _super13 = _createSuper(ScoordContentItem); + function ScoordContentItem(options) { + var _this12; + _classCallCheck(this, ScoordContentItem); + _this12 = _super13.call(this, { + name: options.name, + relationshipType: options.relationshipType, + valueType: ValueTypes.SCOORD + }); + if (options.graphicType === undefined) { + throw new Error("Option 'graphicType' is required for ScoordContentItem."); + } + if (!(typeof options.graphicType === "string" || options.graphicType instanceof String)) { + throw new Error("Option 'graphicType' of ScoordContentItem must have type String."); + } + if (options.graphicData === undefined) { + throw new Error("Option 'graphicData' is required for ScoordContentItem."); + } + if (!(_typeof(options.graphicData) === "object" || options.graphicData instanceof Array)) { + throw new Error("Option 'graphicData' of ScoordContentItem must have type Array."); + } + if (Object.values(GraphicTypes).indexOf(options.graphicType) === -1) { + throw new Error("Invalid graphic type '".concat(options.graphicType, "'.")); + } + if (options.graphicData[0] instanceof Array) { + options.graphicData = [].concat.apply([], options.graphicData); + } + _this12.GraphicData = options.graphicData; + options.pixelOriginInterpretation = options.pixelOriginInterpretation || PixelOriginInterpretations.VOLUME; + if (!(typeof options.pixelOriginInterpretation === "string" || options.pixelOriginInterpretation instanceof String)) { + throw new Error("Option 'pixelOriginInterpretation' must have type String."); + } + if (Object.values(PixelOriginInterpretations).indexOf(options.pixelOriginInterpretation) === -1) { + throw new Error("Invalid pixel origin interpretation '".concat(options.pixelOriginInterpretation, "'.")); + } + if (options.fiducialUID !== undefined) { + if (!(typeof options.fiducialUID === "string" || options.fiducialUID instanceof String)) { + throw new Error("Option 'fiducialUID' must have type String."); + } + _this12.FiducialUID = options.fiducialUID; + } + return _this12; + } + return _createClass(ScoordContentItem); + }(ContentItem); + var Scoord3DContentItem = /*#__PURE__*/function (_ContentItem13) { + _inherits(Scoord3DContentItem, _ContentItem13); + var _super14 = _createSuper(Scoord3DContentItem); + function Scoord3DContentItem(options) { + var _this13; + _classCallCheck(this, Scoord3DContentItem); + _this13 = _super14.call(this, { + name: options.name, + relationshipType: options.relationshipType, + valueType: ValueTypes.SCOORD3D + }); + if (options.graphicType === undefined) { + throw new Error("Option 'graphicType' is required for Scoord3DContentItem."); + } + if (!(typeof options.graphicType === "string" || options.graphicType instanceof String)) { + throw new Error("Option 'graphicType' must have type String."); + } + if (options.graphicData === undefined) { + throw new Error("Option 'graphicData' is required for Scoord3DContentItem."); + } + if (!(_typeof(options.graphicData) === "object" || options.graphicData instanceof Array)) { + throw new Error("Option 'graphicData' must have type Array."); + } + if (Object.values(GraphicTypes3D).indexOf(options.graphicType) === -1) { + throw new Error("Invalid graphic type '".concat(options.graphicType, "'.")); + } + if (options.graphicData[0] instanceof Array) { + options.graphicData = [].concat.apply([], options.graphicData); + } + _this13.GraphicType = options.graphicType; + _this13.GraphicData = options.graphicData; + if (options.frameOfReferenceUID === undefined) { + throw new Error("Option 'frameOfReferenceUID' is required for Scoord3DContentItem."); + } + if (!(typeof options.frameOfReferenceUID === "string" || options.frameOfReferenceUID instanceof String)) { + throw new Error("Option 'frameOfReferenceUID' must have type String."); + } + _this13.ReferencedFrameOfReferenceUID = options.frameOfReferenceUID; + if ("fiducialUID" in options) { + if (!(typeof options.fiducialUID === "string" || options.fiducialUID instanceof String)) { + throw new Error("Option 'fiducialUID' must have type String."); + } + _this13.FiducialUID = fiducialUID; + } + return _this13; + } + return _createClass(Scoord3DContentItem); + }(ContentItem); + var TcoordContentItem = /*#__PURE__*/function (_ContentItem14) { + _inherits(TcoordContentItem, _ContentItem14); + var _super15 = _createSuper(TcoordContentItem); + function TcoordContentItem(options) { + var _this14; + _classCallCheck(this, TcoordContentItem); + _this14 = _super15.call(this, { + name: options.name, + relationshipType: options.relationshipType, + valueType: ValueTypes.TCOORD + }); + if (options.temporalRangeType === undefined) { + throw new Error("Option 'temporalRangeType' is required for TcoordContentItem."); + } + if (Object.values(TemporalRangeTypes).indexOf(options.temporalRangeType) === -1) { + throw new Error("Invalid temporal range type '".concat(options.temporalRangeType, "'.")); + } + if (options.referencedSamplePositions === undefined) { + if (!(_typeof(options.referencedSamplePositions) === "object" || options.referencedSamplePositions instanceof Array)) { + throw new Error("Option 'referencedSamplePositions' must have type Array."); + } + // TODO: ensure values are integers + _this14.ReferencedSamplePositions = options.referencedSamplePositions; + } else if (options.referencedTimeOffsets === undefined) { + if (!(_typeof(options.referencedTimeOffsets) === "object" || options.referencedTimeOffsets instanceof Array)) { + throw new Error("Option 'referencedTimeOffsets' must have type Array."); + } + // TODO: ensure values are floats + _this14.ReferencedTimeOffsets = options.referencedTimeOffsets; + } else if (options.referencedDateTime === undefined) { + if (!(_typeof(options.referencedDateTime) === "object" || options.referencedDateTime instanceof Array)) { + throw new Error("Option 'referencedDateTime' must have type Array."); + } + _this14.ReferencedDateTime = options.referencedDateTime; + } else { + throw new Error("One of the following options is required for TcoordContentItem: " + "'referencedSamplePositions', 'referencedTimeOffsets', or " + "'referencedDateTime'."); + } + return _this14; + } + return _createClass(TcoordContentItem); + }(ContentItem); + + var valueTypes = /*#__PURE__*/Object.freeze({ + __proto__: null, + CodeContentItem: CodeContentItem, + CompositeContentItem: CompositeContentItem, + ContainerContentItem: ContainerContentItem, + ContentSequence: ContentSequence$1, + DateContentItem: DateContentItem, + DateTimeContentItem: DateTimeContentItem, + GraphicTypes: GraphicTypes, + GraphicTypes3D: GraphicTypes3D, + ImageContentItem: ImageContentItem, + NumContentItem: NumContentItem, + PNameContentItem: PNameContentItem, + PixelOriginInterpretations: PixelOriginInterpretations, + RelationshipTypes: RelationshipTypes, + Scoord3DContentItem: Scoord3DContentItem, + ScoordContentItem: ScoordContentItem, + TcoordContentItem: TcoordContentItem, + TemporalRangeTypes: TemporalRangeTypes, + TextContentItem: TextContentItem, + TimeContentItem: TimeContentItem, + UIDRefContentItem: UIDRefContentItem, + ValueTypes: ValueTypes + }); + + var LongitudinalTemporalOffsetFromEvent = /*#__PURE__*/function (_NumContentItem) { + _inherits(LongitudinalTemporalOffsetFromEvent, _NumContentItem); + var _super = _createSuper(LongitudinalTemporalOffsetFromEvent); + function LongitudinalTemporalOffsetFromEvent(options) { + var _this; + _classCallCheck(this, LongitudinalTemporalOffsetFromEvent); + _this = _super.call(this, { + name: new CodedConcept({ + value: "128740", + meaning: "Longitudinal Temporal Offset from Event", + schemeDesignator: "DCM" + }), + value: options.value, + unit: options.unit, + relationshipType: RelationshipTypes.HAS_OBS_CONTEXT + }); + _this.ContentSequence = new ContentSequence$1(); + var item = new CodeContentItem({ + name: new CodedConcept({ + value: "128741", + meaning: "Longitudinal Temporal Event Type", + schemeDesignator: "DCM" + }), + value: options.eventType, + relationshipType: RelationshipTypes.HAS_CONCEPT_MOD + }); + _this.ContentSequence.push(item); + return _this; + } + return _createClass(LongitudinalTemporalOffsetFromEvent); + }(NumContentItem); + var SourceImageForRegion = /*#__PURE__*/function (_ImageContentItem) { + _inherits(SourceImageForRegion, _ImageContentItem); + var _super2 = _createSuper(SourceImageForRegion); + function SourceImageForRegion(options) { + _classCallCheck(this, SourceImageForRegion); + return _super2.call(this, { + name: new CodedConcept({ + value: "121324", + meaning: "Source Image", + schemeDesignator: "DCM" + }), + referencedSOPClassUID: options.referencedSOPClassUID, + referencedSOPInstanceUID: options.referencedSOPInstanceUID, + referencedFrameNumbers: options.referencedFrameNumbers, + relationshipType: RelationshipTypes.SELECTED_FROM + }); + } + return _createClass(SourceImageForRegion); + }(ImageContentItem); + var SourceImageForSegmentation = /*#__PURE__*/function (_ImageContentItem2) { + _inherits(SourceImageForSegmentation, _ImageContentItem2); + var _super3 = _createSuper(SourceImageForSegmentation); + function SourceImageForSegmentation(options) { + _classCallCheck(this, SourceImageForSegmentation); + return _super3.call(this, { + name: new CodedConcept({ + value: "121233", + meaning: "Source Image for Segmentation", + schemeDesignator: "DCM" + }), + referencedSOPClassUID: options.referencedSOPClassUID, + referencedSOPInstanceUID: options.referencedSOPInstanceUID, + referencedFrameNumbers: options.referencedFrameNumbers, + relationshipType: RelationshipTypes.SELECTED_FROM + }); + } + return _createClass(SourceImageForSegmentation); + }(ImageContentItem); + var SourceSeriesForSegmentation = /*#__PURE__*/function (_UIDRefContentItem) { + _inherits(SourceSeriesForSegmentation, _UIDRefContentItem); + var _super4 = _createSuper(SourceSeriesForSegmentation); + function SourceSeriesForSegmentation(options) { + _classCallCheck(this, SourceSeriesForSegmentation); + return _super4.call(this, { + name: new CodedConcept({ + value: "121232", + meaning: "Source Series for Segmentation", + schemeDesignator: "DCM" + }), + value: options.referencedSeriesInstanceUID, + relationshipType: RelationshipTypes.CONTAINS + }); + } + return _createClass(SourceSeriesForSegmentation); + }(UIDRefContentItem); + var ImageRegion = /*#__PURE__*/function (_ScoordContentItem) { + _inherits(ImageRegion, _ScoordContentItem); + var _super5 = _createSuper(ImageRegion); + function ImageRegion(options) { + var _this2; + _classCallCheck(this, ImageRegion); + _this2 = _super5.call(this, { + name: new CodedConcept({ + value: "111030", + meaning: "Image Region", + schemeDesignator: "DCM" + }), + graphicType: options.graphicType, + graphicData: options.graphicData, + pixelOriginInterpretation: options.pixelOriginInterpretation, + relationshipType: RelationshipTypes.CONTAINS + }); + if (options.graphicType === GraphicTypes.MULTIPOINT) { + throw new Error("Graphic type 'MULTIPOINT' is not valid for region."); + } + if (options.sourceImage === undefined) { + throw Error("Option 'sourceImage' is required for ImageRegion."); + } + if (!(options.sourceImage || options.sourceImage.constructor === SourceImageForRegion)) { + throw new Error("Option 'sourceImage' of ImageRegion must have type " + "SourceImageForRegion."); + } + _this2.ContentSequence = new ContentSequence$1(); + _this2.ContentSequence.push(options.sourceImage); + return _this2; + } + return _createClass(ImageRegion); + }(ScoordContentItem); + var ImageRegion3D = /*#__PURE__*/function (_Scoord3DContentItem) { + _inherits(ImageRegion3D, _Scoord3DContentItem); + var _super6 = _createSuper(ImageRegion3D); + function ImageRegion3D(options) { + var _this3; + _classCallCheck(this, ImageRegion3D); + _this3 = _super6.call(this, { + name: new CodedConcept({ + value: "111030", + meaning: "Image Region", + schemeDesignator: "DCM" + }), + graphicType: options.graphicType, + graphicData: options.graphicData, + frameOfReferenceUID: options.frameOfReferenceUID, + relationshipType: RelationshipTypes.CONTAINS + }); + if (options.graphicType === GraphicTypes3D.MULTIPOINT) { + throw new Error("Graphic type 'MULTIPOINT' is not valid for region."); + } + if (options.graphicType === GraphicTypes3D.ELLIPSOID) { + throw new Error("Graphic type 'ELLIPSOID' is not valid for region."); + } + return _this3; + } + return _createClass(ImageRegion3D); + }(Scoord3DContentItem); + var VolumeSurface = /*#__PURE__*/function (_Scoord3DContentItem2) { + _inherits(VolumeSurface, _Scoord3DContentItem2); + var _super7 = _createSuper(VolumeSurface); + function VolumeSurface(options) { + var _this4; + _classCallCheck(this, VolumeSurface); + _this4 = _super7.call(this, { + name: new CodedConcept({ + value: "121231", + meaning: "Volume Surface", + schemeDesignator: "DCM" + }), + graphicType: options.graphicType, + graphicData: options.graphicData, + frameOfFeferenceUID: options.frameOfFeferenceUID, + relationshipType: RelationshipTypes.CONTAINS + }); + if (options.graphicType !== GraphicTypes3D.ELLIPSOID) { + throw new Error("Graphic type for volume surface must be 'ELLIPSOID'."); + } + _this4.ContentSequence = new ContentSequence$1(); + if (options.sourceImages) { + options.sourceImages.forEach(function (image) { + if (!(image || image.constructor === SourceImageForRegion)) { + throw new Error("Items of option 'sourceImages' of VolumeSurface " + "must have type SourceImageForRegion."); + } + _this4.ContentSequence.push(image); + }); + } else if (options.sourceSeries) { + if (!(options.sourceSeries || options.sourceSeries.constructor === SourceSeriesForRegion)) { + throw new Error("Option 'sourceSeries' of VolumeSurface " + "must have type SourceSeriesForRegion."); + } + _this4.ContentSequence.push(options.sourceSeries); + } else { + throw new Error("One of the following two options must be provided: " + "'sourceImage' or 'sourceSeries'."); + } + return _this4; + } + return _createClass(VolumeSurface); + }(Scoord3DContentItem); + var ReferencedRealWorldValueMap = /*#__PURE__*/function (_CompositeContentItem) { + _inherits(ReferencedRealWorldValueMap, _CompositeContentItem); + var _super8 = _createSuper(ReferencedRealWorldValueMap); + function ReferencedRealWorldValueMap(options) { + _classCallCheck(this, ReferencedRealWorldValueMap); + return _super8.call(this, { + name: new CodedConcept({ + value: "126100", + meaning: "Real World Value Map used for measurement", + schemeDesignator: "DCM" + }), + referencedSOPClassUID: option.referencedSOPClassUID, + referencedSOPInstanceUID: options.referencedSOPInstanceUID, + relationshipType: RelationshipTypes.CONTAINS + }); + } + return _createClass(ReferencedRealWorldValueMap); + }(CompositeContentItem); + var FindingSite = /*#__PURE__*/function (_CodeContentItem) { + _inherits(FindingSite, _CodeContentItem); + var _super9 = _createSuper(FindingSite); + function FindingSite(options) { + var _this5; + _classCallCheck(this, FindingSite); + _this5 = _super9.call(this, { + name: new CodedConcept({ + value: "363698007", + meaning: "Finding Site", + schemeDesignator: "SCT" + }), + value: options.anatomicLocation, + relationshipType: RelationshipTypes.HAS_CONCEPT_MOD + }); + _this5.ContentSequence = new ContentSequence$1(); + if (options.laterality) { + var item = new CodeContentItem({ + name: new CodedConcept({ + value: "272741003", + meaning: "Laterality", + schemeDesignator: "SCT" + }), + value: options.laterality, + relationshipType: RelationshipTypes.HAS_CONCEPT_MOD + }); + _this5.ContentSequence.push(item); + } + if (options.topographicalModifier) { + var _item = new CodeContentItem({ + name: new CodedConcept({ + value: "106233006", + meaning: "Topographical Modifier", + schemeDesignator: "SCT" + }), + value: options.topographicalModifier, + relationshipType: RelationshipTypes.HAS_CONCEPT_MOD + }); + _this5.ContentSequence.push(_item); + } + return _this5; + } + return _createClass(FindingSite); + }(CodeContentItem); + var ReferencedSegmentationFrame = /*#__PURE__*/function (_ContentSequence) { + _inherits(ReferencedSegmentationFrame, _ContentSequence); + var _super10 = _createSuper(ReferencedSegmentationFrame); + function ReferencedSegmentationFrame(options) { + var _this6; + _classCallCheck(this, ReferencedSegmentationFrame); + if (options.sopClassUID === undefined) { + throw new Error("Option 'sopClassUID' is required for ReferencedSegmentationFrame."); + } + if (options.sopInstanceUID === undefined) { + throw new Error("Option 'sopInstanceUID' is required for ReferencedSegmentationFrame."); + } + if (options.frameNumber === undefined) { + throw new Error("Option 'frameNumber' is required for ReferencedSegmentationFrame."); + } + if (options.segmentNumber === undefined) { + throw new Error("Option 'segmentNumber' is required for ReferencedSegmentationFrame."); + } + if (options.sourceImage === undefined) { + throw new Error("Option 'sourceImage' is required for ReferencedSegmentationFrame."); + } + _this6 = _super10.call(this); + var segmentationItem = ImageContentItem({ + name: new CodedConcept({ + value: "121214", + meaning: "Referenced Segmentation Frame", + schemeDesignator: "DCM" + }), + referencedSOPClassUid: options.sopClassUid, + referencedSOPInstanceUid: options.sopInstanceUid, + referencedFrameNumber: options.frameNumber, + referencedSegmentNumber: options.segmentNumber + }); + _this6.push(segmentationItem); + if (options.sourceImage.constructor !== SourceImageForSegmentation) { + throw new Error("Option 'sourceImage' must have type SourceImageForSegmentation."); + } + _this6.push(sourceImage); + return _this6; + } + return _createClass(ReferencedSegmentationFrame); + }(ContentSequence$1); + var ReferencedSegmentation = /*#__PURE__*/function (_ContentSequence2) { + _inherits(ReferencedSegmentation, _ContentSequence2); + var _super11 = _createSuper(ReferencedSegmentation); + function ReferencedSegmentation(options) { + var _this7; + _classCallCheck(this, ReferencedSegmentation); + if (options.sopClassUID === undefined) { + throw new Error("Option 'sopClassUID' is required for ReferencedSegmentation."); + } + if (options.sopInstanceUID === undefined) { + throw new Error("Option 'sopInstanceUID' is required for ReferencedSegmentation."); + } + if (options.frameNumbers === undefined) { + throw new Error("Option 'frameNumbers' is required for ReferencedSegmentation."); + } + if (options.segmentNumber === undefined) { + throw new Error("Option 'segmentNumber' is required for ReferencedSegmentation."); + } + _this7 = _super11.call(this); + var segmentationItem = new ImageContentItem({ + name: new CodedConcept({ + value: "121191", + meaning: "Referenced Segment", + schemeDesignator: "DCM" + }), + referencedSOPClassUid: options.sopClassUid, + referencedSOPInstanceUid: options.sopInstanceUid, + referencedFrameNumber: options.frameNumbers, + referencedSegmentNumber: options.segmentNumber + }); + _this7.push(segmentationItem); + if (options.sourceImages !== undefined) { + options.sourceImages.forEach(function (image) { + if (!image || image.constructor !== SourceImageForSegmentation) { + throw new Error("Items of option 'sourceImages' must have type " + "SourceImageForSegmentation."); + } + _this7.push(image); + }); + } else if (options.sourceSeries !== undefined) { + if (options.sourceSeries.constructor !== SourceSeriesForSegmentation) { + throw new Error("Option 'sourceSeries' must have type SourceSeriesForSegmentation."); + } + _this7.push(sourceSeries); + } else { + throw new Error("One of the following two options must be provided: " + "'sourceImages' or 'sourceSeries'."); + } + return _this7; + } + return _createClass(ReferencedSegmentation); + }(ContentSequence$1); + + var contentItems = /*#__PURE__*/Object.freeze({ + __proto__: null, + FindingSite: FindingSite, + ImageRegion: ImageRegion, + ImageRegion3D: ImageRegion3D, + LongitudinalTemporalOffsetFromEvent: LongitudinalTemporalOffsetFromEvent, + ReferencedRealWorldValueMap: ReferencedRealWorldValueMap, + ReferencedSegmentation: ReferencedSegmentation, + ReferencedSegmentationFrame: ReferencedSegmentationFrame, + SourceImageForRegion: SourceImageForRegion, + SourceImageForSegmentation: SourceImageForSegmentation, + SourceSeriesForSegmentation: SourceSeriesForSegmentation, + VolumeSurface: VolumeSurface + }); + + var Template = /*#__PURE__*/function (_ContentSequence) { + _inherits(Template, _ContentSequence); + var _super = _createSuper(Template); + function Template() { + _classCallCheck(this, Template); + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + return _super.call.apply(_super, [this].concat(args)); + } + return _createClass(Template); + }(ContentSequence$1); + var Measurement = /*#__PURE__*/function (_Template) { + _inherits(Measurement, _Template); + var _super2 = _createSuper(Measurement); + function Measurement(options) { + var _valueItem$ContentSeq; + var _this; + _classCallCheck(this, Measurement); + _this = _super2.call(this); + var valueItem = new NumContentItem({ + name: options.name, + value: options.value, + unit: options.unit, + qualifier: options.qualifier, + relationshipType: RelationshipTypes.CONTAINS + }); + valueItem.ContentSequence = new ContentSequence$1(); + if (options.trackingIdentifier === undefined) { + throw new Error("Option 'trackingIdentifier' is required for Measurement."); + } + if (options.trackingIdentifier.constructor === TrackingIdentifier) { + throw new Error("Option 'trackingIdentifier' must have type TrackingIdentifier."); + } + (_valueItem$ContentSeq = valueItem.ContentSequence).push.apply(_valueItem$ContentSeq, _toConsumableArray(options.trackingIdentifier)); + if (options.method !== undefined) { + var methodItem = new CodeContentItem({ + name: new CodedConcept({ + value: "370129005", + meaning: "Measurement Method", + schemeDesignator: "SCT" + }), + value: options.method, + relationshipType: RelationshipTypes.HAS_CONCEPT_MOD + }); + valueItem.ContentSequence.push(methodItem); + } + if (options.derivation !== undefined) { + var derivationItem = new CodeContentItem({ + name: new CodedConcept({ + value: "121401", + meaning: "Derivation", + schemeDesignator: "DCM" + }), + value: options.derivation, + relationshipType: RelationshipTypes.HAS_CONCEPT_MOD + }); + valueItem.ContentSequence.push(derivationItem); + } + if (options.findingSites !== undefined) { + if (!(_typeof(options.findingSites) === "object" || options.findingSites instanceof Array)) { + throw new Error("Option 'findingSites' must have type Array."); + } + options.findingSites.forEach(function (site) { + if (!site || site.constructor !== FindingSite) { + throw new Error("Items of option 'findingSites' must have type FindingSite."); + } + valueItem.ContentSequence.push(site); + }); + } + if (options.properties !== undefined) { + var _valueItem$ContentSeq2; + if (options.properties.constructor !== MeasurementProperties) { + throw new Error("Option 'properties' must have type MeasurementProperties."); + } + (_valueItem$ContentSeq2 = valueItem.ContentSequence).push.apply(_valueItem$ContentSeq2, _toConsumableArray(options.properties)); + } + if (options.referencedRegions !== undefined) { + if (!(_typeof(options.referencedRegions) === "object" || options.referencedRegions instanceof Array)) { + throw new Error("Option 'referencedRegions' must have type Array."); + } + options.referencedRegions.forEach(function (region) { + if (!region || region.constructor !== ImageRegion && region.constructor !== ImageRegion3D) { + throw new Error("Items of option 'referencedRegion' must have type " + "ImageRegion or ImageRegion3D."); + } + valueItem.ContentSequence.push(region); + }); + } else if (options.referencedVolume !== undefined) { + if (options.referencedVolume.constructor !== VolumeSurface) { + throw new Error("Option 'referencedVolume' must have type VolumeSurface."); + } + valueItem.ContentSequence.push(options.referencedVolume); + } else if (options.referencedSegmentation !== undefined) { + if (options.referencedSegmentation.constructor !== ReferencedSegmentation && options.referencedSegmentation.constructor !== ReferencedSegmentationFrame) { + throw new Error("Option 'referencedSegmentation' must have type " + "ReferencedSegmentation or ReferencedSegmentationFrame."); + } + valueItem.ContentSequence.push(options.referencedSegmentation); + } + if (options.referencedRealWorldValueMap !== undefined) { + if (options.referencedRealWorldValueMap.constructor !== ReferencedRealWorldValueMap) { + throw new Error("Option 'referencedRealWorldValueMap' must have type " + "ReferencedRealWorldValueMap."); + } + valueItem.ContentSequence.push(options.referencedRealWorldValueMap); + } + if (options.algorithmId !== undefined) { + var _valueItem$ContentSeq3; + if (options.algorithmId.constructor !== AlgorithmIdentification) { + throw new Error("Option 'algorithmId' must have type AlgorithmIdentification."); + } + (_valueItem$ContentSeq3 = valueItem.ContentSequence).push.apply(_valueItem$ContentSeq3, _toConsumableArray(options.algorithmId)); + } + _this.push(valueItem); + return _this; + } + return _createClass(Measurement); + }(Template); + var MeasurementProperties = /*#__PURE__*/function (_Template2) { + _inherits(MeasurementProperties, _Template2); + var _super3 = _createSuper(MeasurementProperties); + function MeasurementProperties(options) { + var _this2; + _classCallCheck(this, MeasurementProperties); + _this2 = _super3.call(this); + if (options.normality !== undefined) { + var normalityItem = new CodeContentItem({ + name: new CodedConcept({ + value: "121402", + schemeDesignator: "DCM", + meaning: "Normality" + }), + value: options.normality, + relationshipType: RelationshipTypes.HAS_PROPERTIES + }); + _this2.push(normalityItem); + } + if (options.measurementStatisticalProperties !== undefined) { + var _this3; + if (options.measurementStatisticalProperties.constructor !== MeasurementStatisticalProperties) { + throw new Error("Option 'measurmentStatisticalProperties' must have type " + "MeasurementStatisticalProperties."); + } + (_this3 = _this2).push.apply(_this3, _toConsumableArray(measurementStatisticalProperties)); + } + if (options.normalRangeProperties !== undefined) { + var _this4; + if (options.normalRangeProperties.constructor !== NormalRangeProperties) { + throw new Error("Option 'normalRangeProperties' must have type NormalRangeProperties."); + } + (_this4 = _this2).push.apply(_this4, _toConsumableArray(normalRangeProperties)); + } + if (options.levelOfSignificance !== undefined) { + var levelOfSignificanceItem = new CodeContentItem({ + name: new CodedConcept({ + value: "121403", + schemeDesignator: "DCM", + meaning: "Level of Significance" + }), + value: options.levelOfSignificance, + relationshipType: RelationshipTypes.HAS_PROPERTIES + }); + _this2.push(levelOfSignificanceItem); + } + if (options.selectionStatus !== undefined) { + var selectionStatusItem = new CodeContentItem({ + name: new CodedConcept({ + value: "121404", + schemeDesignator: "DCM", + meaning: "Selection Status" + }), + value: options.selectionStatus, + relationshipType: RelationshipTypes.HAS_PROPERTIES + }); + _this2.push(selectionStatusItem); + } + if (options.upperMeasurementUncertainty !== undefined) { + var upperMeasurementUncertaintyItem = new CodeContentItem({ + name: new CodedConcept({ + value: "R-00364", + schemeDesignator: "SRT", + meaning: "Range of Upper Measurement Uncertainty" + }), + value: options.upperMeasurementUncertainty, + relationshipType: RelationshipTypes.HAS_PROPERTIES + }); + _this2.push(upperMeasurementUncertaintyItem); + } + if (options.lowerMeasurementUncertainty !== undefined) { + var lowerMeasurementUncertaintyItem = new CodeContentItem({ + name: new CodedConcept({ + value: "R-00362", + schemeDesignator: "SRT", + meaning: "Range of Lower Measurement Uncertainty" + }), + value: options.lowerMeasurementUncertainty, + relationshipType: RelationshipTypes.HAS_PROPERTIES + }); + _this2.push(lowerMeasurementUncertaintyItem); + } + return _this2; + } + return _createClass(MeasurementProperties); + }(Template); + var MeasurementStatisticalProperties = /*#__PURE__*/function (_Template3) { + _inherits(MeasurementStatisticalProperties, _Template3); + var _super4 = _createSuper(MeasurementStatisticalProperties); + function MeasurementStatisticalProperties(options) { + var _this5; + _classCallCheck(this, MeasurementStatisticalProperties); + _this5 = _super4.call(this); + if (options.values === undefined) { + throw new Error("Option 'values' is required for MeasurementStatisticalProperties."); + } + if (!(_typeof(options.values) === "object" || options.values instanceof Array)) { + throw new Error("Option 'values' must have type Array."); + } + options.values.forEach(function (value) { + if (!options.concept || options.concept.constructor !== NumContentItem) { + throw new Error("Items of option 'values' must have type NumContentItem."); + } + _this5.push(value); + }); + if (options.description !== undefined) { + new TextContentItem({ + name: new CodedConcept({ + value: "121405", + schemeDesignator: "DCM", + meaning: "Population Description" + }), + value: options.authority, + relationshipType: RelationshipTypes.HAS_PROPERTIES + }); + _this5.push(authorityItem); + } + if (options.authority !== undefined) { + var _authorityItem = new TextContentItem({ + name: new CodedConcept({ + value: "121406", + schemeDesignator: "DCM", + meaning: "Population Authority" + }), + value: options.authority, + relationshipType: RelationshipTypes.HAS_PROPERTIES + }); + _this5.push(_authorityItem); + } + return _this5; + } + return _createClass(MeasurementStatisticalProperties); + }(Template); + var NormalRangeProperties = /*#__PURE__*/function (_Template4) { + _inherits(NormalRangeProperties, _Template4); + var _super5 = _createSuper(NormalRangeProperties); + function NormalRangeProperties(options) { + var _this6; + _classCallCheck(this, NormalRangeProperties); + _this6 = _super5.call(this); + if (options.values === undefined) { + throw new Error("Option 'values' is required for NormalRangeProperties."); + } + if (!(_typeof(options.values) === "object" || options.values instanceof Array)) { + throw new Error("Option 'values' must have type Array."); + } + options.values.forEach(function (value) { + if (!options.concept || options.concept.constructor !== NumContentItem) { + throw new Error("Items of option 'values' must have type NumContentItem."); + } + _this6.push(value); + }); + if (options.description !== undefined) { + new TextContentItem({ + name: new CodedConcept({ + value: "121407", + schemeDesignator: "DCM", + meaning: "Normal Range Description" + }), + value: options.authority, + relationshipType: RelationshipTypes.HAS_PROPERTIES + }); + _this6.push(authorityItem); + } + if (options.authority !== undefined) { + var _authorityItem2 = new TextContentItem({ + name: new CodedConcept({ + value: "121408", + schemeDesignator: "DCM", + meaning: "Normal Range Authority" + }), + value: options.authority, + relationshipType: RelationshipTypes.HAS_PROPERTIES + }); + _this6.push(_authorityItem2); + } + return _this6; + } + return _createClass(NormalRangeProperties); + }(Template); + var ObservationContext = /*#__PURE__*/function (_Template5) { + _inherits(ObservationContext, _Template5); + var _super6 = _createSuper(ObservationContext); + function ObservationContext(options) { + var _this8; + var _this7; + _classCallCheck(this, ObservationContext); + _this7 = _super6.call(this); + if (options.observerPersonContext === undefined) { + throw new Error("Option 'observerPersonContext' is required for ObservationContext."); + } + if (options.observerPersonContext.constructor !== ObserverContext) { + throw new Error("Option 'observerPersonContext' must have type ObserverContext"); + } + (_this8 = _this7).push.apply(_this8, _toConsumableArray(options.observerPersonContext)); + if (options.observerDeviceContext !== undefined) { + var _this9; + if (options.observerDeviceContext.constructor !== ObserverContext) { + throw new Error("Option 'observerDeviceContext' must have type ObserverContext"); + } + (_this9 = _this7).push.apply(_this9, _toConsumableArray(options.observerDeviceContext)); + } + if (options.subjectContext !== undefined) { + var _this10; + if (options.subjectContext.constructor !== SubjectContext) { + throw new Error("Option 'subjectContext' must have type SubjectContext"); + } + (_this10 = _this7).push.apply(_this10, _toConsumableArray(options.subjectContext)); + } + return _this7; + } + return _createClass(ObservationContext); + }(Template); + var ObserverContext = /*#__PURE__*/function (_Template6) { + _inherits(ObserverContext, _Template6); + var _super7 = _createSuper(ObserverContext); + function ObserverContext(options) { + var _this12; + var _this11; + _classCallCheck(this, ObserverContext); + _this11 = _super7.call(this); + if (options.observerType === undefined) { + throw new Error("Option 'observerType' is required for ObserverContext."); + } else { + if (options.observerType.constructor !== Code && options.observerType.constructor !== CodedConcept) { + throw new Error("Option 'observerType' must have type Code or CodedConcept."); + } + } + var observerTypeItem = new CodeContentItem({ + name: new CodedConcept({ + value: "121005", + meaning: "Observer Type", + schemeDesignator: "DCM" + }), + value: options.observerType, + relationshipType: RelationshipTypes.HAS_OBS_CONTEXT + }); + _this11.push(observerTypeItem); + if (options.observerIdentifyingAttributes === undefined) { + throw new Error("Option 'observerIdentifyingAttributes' is required for ObserverContext."); + } + // FIXME + var person = new CodedConcept({ + value: "121006", + schemeDesignator: "DCM", + meaning: "Person" + }); + var device = new CodedConcept({ + value: "121007", + schemeDesignator: "DCM", + meaning: "Device" + }); + if (person.equals(options.observerType)) { + if (options.observerIdentifyingAttributes.constructor !== PersonObserverIdentifyingAttributes) { + throw new Error("Option 'observerIdentifyingAttributes' must have type " + "PersonObserverIdentifyingAttributes for 'Person' observer type."); + } + } else if (device.equals(options.observerType)) { + if (options.observerIdentifyingAttributes.constructor !== DeviceObserverIdentifyingAttributes) { + throw new Error("Option 'observerIdentifyingAttributes' must have type " + "DeviceObserverIdentifyingAttributes for 'Device' observer type."); + } + } else { + throw new Error("Option 'oberverType' must be either 'Person' or 'Device'."); + } + (_this12 = _this11).push.apply(_this12, _toConsumableArray(options.observerIdentifyingAttributes)); + return _this11; + } + return _createClass(ObserverContext); + }(Template); + var PersonObserverIdentifyingAttributes = /*#__PURE__*/function (_Template7) { + _inherits(PersonObserverIdentifyingAttributes, _Template7); + var _super8 = _createSuper(PersonObserverIdentifyingAttributes); + function PersonObserverIdentifyingAttributes(options) { + var _this13; + _classCallCheck(this, PersonObserverIdentifyingAttributes); + _this13 = _super8.call(this); + if (options.name === undefined) { + throw new Error("Option 'name' is required for PersonObserverIdentifyingAttributes."); + } + var nameItem = new PNameContentItem({ + name: new CodedConcept({ + value: "121008", + meaning: "Person Observer Name", + schemeDesignator: "DCM" + }), + value: options.name, + relationshipType: RelationshipTypes.HAS_OBS_CONTEXT + }); + _this13.push(nameItem); + if (options.loginName !== undefined) { + var loginNameItem = new TextContentItem({ + name: new CodedConcept({ + value: "128774", + meaning: "Person Observer's Login Name", + schemeDesignator: "DCM" + }), + value: options.loginName, + relationshipType: RelationshipTypes.HAS_OBS_CONTEXT + }); + _this13.push(loginNameItem); + } + if (options.organizationName !== undefined) { + var organizationNameItem = new TextContentItem({ + name: new CodedConcept({ + value: "121009", + meaning: "Person Observer's Organization Name", + schemeDesignator: "DCM" + }), + value: options.organizationName, + relationshipType: RelationshipTypes.HAS_OBS_CONTEXT + }); + _this13.push(organizationNameItem); + } + if (options.roleInOrganization !== undefined) { + var roleInOrganizationItem = new CodeContentItem({ + name: new CodedConcept({ + value: "121010", + meaning: "Person Observer's Role in the Organization", + schemeDesignator: "DCM" + }), + value: options.roleInOrganization, + relationshipType: RelationshipTypes.HAS_OBS_CONTEXT + }); + _this13.push(roleInOrganizationItem); + } + if (options.roleInProcedure !== undefined) { + var roleInProcedureItem = new CodeContentItem({ + name: new CodedConcept({ + value: "121011", + meaning: "Person Observer's Role in this Procedure", + schemeDesignator: "DCM" + }), + value: options.roleInProcedure, + relationshipType: RelationshipTypes.HAS_OBS_CONTEXT + }); + _this13.push(roleInProcedureItem); + } + return _this13; + } + return _createClass(PersonObserverIdentifyingAttributes); + }(Template); + var DeviceObserverIdentifyingAttributes = /*#__PURE__*/function (_Template8) { + _inherits(DeviceObserverIdentifyingAttributes, _Template8); + var _super9 = _createSuper(DeviceObserverIdentifyingAttributes); + function DeviceObserverIdentifyingAttributes(options) { + var _this14; + _classCallCheck(this, DeviceObserverIdentifyingAttributes); + _this14 = _super9.call(this); + if (options.uid === undefined) { + throw new Error("Option 'uid' is required for DeviceObserverIdentifyingAttributes."); + } + var deviceObserverItem = new UIDRefContentItem({ + name: new CodedConcept({ + value: "121012", + meaning: "Device Observer UID", + schemeDesignator: "DCM" + }), + value: options.uid, + relationshipType: RelationshipTypes.HAS_OBS_CONTEXT + }); + _this14.push(deviceObserverItem); + if (options.manufacturerName !== undefined) { + var manufacturerNameItem = new TextContentItem({ + name: new CodedConcept({ + value: "121013", + meaning: "Device Observer Manufacturer", + schemeDesignator: "DCM" + }), + value: options.manufacturerName, + relationshipType: RelationshipTypes.HAS_OBS_CONTEXT + }); + _this14.push(manufacturerNameItem); + } + if (options.modelName !== undefined) { + var modelNameItem = new TextContentItem({ + name: new CodedConcept({ + value: "121015", + meaning: "Device Observer Model Name", + schemeDesignator: "DCM" + }), + value: options.modelName, + relationshipType: RelationshipTypes.HAS_OBS_CONTEXT + }); + _this14.push(modelNameItem); + } + if (options.serialNumber !== undefined) { + var serialNumberItem = new TextContentItem({ + name: new CodedConcept({ + value: "121016", + meaning: "Device Observer Serial Number", + schemeDesignator: "DCM" + }), + value: options.serialNumber, + relationshipType: RelationshipTypes.HAS_OBS_CONTEXT + }); + _this14.push(serialNumberItem); + } + if (options.physicalLocation !== undefined) { + var physicalLocationItem = new TextContentItem({ + name: new CodedConcept({ + value: "121017", + meaning: "Device Observer Physical Location During Observation", + schemeDesignator: "DCM" + }), + value: options.physicalLocation, + relationshipType: RelationshipTypes.HAS_OBS_CONTEXT + }); + _this14.push(physicalLocationItem); + } + if (options.roleInProcedure !== undefined) { + var roleInProcedureItem = new CodeContentItem({ + name: new CodedConcept({ + value: "113876", + meaning: "Device Role in Procedure", + schemeDesignator: "DCM" + }), + value: options.roleInProcedure, + relationshipType: RelationshipTypes.HAS_OBS_CONTEXT + }); + _this14.push(roleInProcedureItem); + } + return _this14; + } + return _createClass(DeviceObserverIdentifyingAttributes); + }(Template); + var SubjectContext = /*#__PURE__*/function (_Template9) { + _inherits(SubjectContext, _Template9); + var _super10 = _createSuper(SubjectContext); + function SubjectContext(options) { + var _this16; + var _this15; + _classCallCheck(this, SubjectContext); + _this15 = _super10.call(this); + if (options.subjectClass === undefined) { + throw new Error("Option 'subjectClass' is required for SubjectContext."); + } + if (options.subjectClassSpecificContext === undefined) { + throw new Error("Option 'subjectClassSpecificContext' is required for SubjectContext."); + } + var subjectClassItem = new CodeContentItem({ + name: new CodedConcept({ + value: "121024", + meaning: "Subject Class", + schemeDesignator: "DCM" + }), + value: options.subjectClass, + relationshipType: RelationshipTypes.HAS_OBS_CONTEXT + }); + _this15.push(subjectClassItem); + var fetus = new CodedConcept({ + value: "121026 ", + schemeDesignator: "DCM", + meaning: "Fetus" + }); + var specimen = new CodedConcept({ + value: "121027", + schemeDesignator: "DCM", + meaning: "Specimen" + }); + var device = new CodedConcept({ + value: "121192", + schemeDesignator: "DCM", + meaning: "Device Subject" + }); + if (fetus.equals(options.subjectClass)) { + if (options.subjectClassSpecificContext.constructor !== SubjectContextFetus) { + throw new Error("Option 'subjectClass' must have type " + "SubjectContextFetus for 'Fetus' subject class."); + } + } else if (specimen.equals(options.subjectClass)) { + if (options.subjectClassSpecificContext.constructor !== SubjectContextSpecimen) { + throw new Error("Option 'subjectClass' must have type " + "SubjectContextSpecimen for 'Specimen' subject class."); + } + } else if (device.equals(options.subjectClass)) { + if (options.subjectClassSpecificContext.constructor !== SubjectContextDevice) { + throw new Error("Option 'subjectClass' must have type " + "SubjectContextDevice for 'Device' subject class."); + } + } else { + throw new Error("Option 'subjectClass' must be either 'Fetus', 'Specimen', or 'Device'."); + } + (_this16 = _this15).push.apply(_this16, _toConsumableArray(options.subjectClassSpecificContext)); + return _this15; + } + return _createClass(SubjectContext); + }(Template); + var SubjectContextFetus = /*#__PURE__*/function (_Template10) { + _inherits(SubjectContextFetus, _Template10); + var _super11 = _createSuper(SubjectContextFetus); + function SubjectContextFetus(options) { + var _this17; + _classCallCheck(this, SubjectContextFetus); + _this17 = _super11.call(this); + if (options.subjectID === undefined) { + throw new Error("Option 'subjectID' is required for SubjectContextFetus."); + } + var subjectIdItem = new TextContentItem({ + name: new CodedConcept({ + value: "121030", + meaning: "Subject ID", + schemeDesignator: "DCM" + }), + value: options.subjectID, + relationshipType: RelationshipTypes.HAS_OBS_CONTEXT + }); + _this17.push(subjectIdItem); + return _this17; + } + return _createClass(SubjectContextFetus); + }(Template); + var SubjectContextSpecimen = /*#__PURE__*/function (_Template11) { + _inherits(SubjectContextSpecimen, _Template11); + var _super12 = _createSuper(SubjectContextSpecimen); + function SubjectContextSpecimen(options) { + var _this18; + _classCallCheck(this, SubjectContextSpecimen); + _this18 = _super12.call(this); + if (options.uid === undefined) { + throw new Error("Option 'uid' is required for SubjectContextSpecimen."); + } + var specimenUidItem = new UIDRefContentItem({ + name: new CodedConcept({ + value: "121039", + meaning: "Specimen UID", + schemeDesignator: "DCM" + }), + value: options.uid, + relationshipType: RelationshipTypes.HAS_OBS_CONTEXT + }); + _this18.push(specimenUidItem); + if (options.identifier !== undefined) { + var specimenIdentifierItem = new TextContentItem({ + name: new CodedConcept({ + value: "121041", + meaning: "Specimen Identifier", + schemeDesignator: "DCM" + }), + value: options.identifier, + relationshipType: RelationshipTypes.HAS_OBS_CONTEXT + }); + _this18.push(specimenIdentifierItem); + } + if (options.containerIdentifier !== undefined) { + var containerIdentifierItem = new TextContentItem({ + name: new CodedConcept({ + value: "111700", + meaning: "Specimen Container Identifier", + schemeDesignator: "DCM" + }), + value: options.containerIdentifier, + relationshipType: RelationshipTypes.HAS_OBS_CONTEXT + }); + _this18.push(containerIdentifierItem); + } + if (options.specimenType !== undefined) { + var specimenTypeItem = new CodeContentItem({ + name: new CodedConcept({ + value: "R-00254", + meaning: "Specimen Type", + schemeDesignator: "DCM" + }), + value: options.specimenType, + relationshipType: RelationshipTypes.HAS_OBS_CONTEXT + }); + _this18.push(specimenTypeItem); + } + return _this18; + } + return _createClass(SubjectContextSpecimen); + }(Template); + var SubjectContextDevice = /*#__PURE__*/function (_Template12) { + _inherits(SubjectContextDevice, _Template12); + _createSuper(SubjectContextDevice); + function SubjectContextDevice(options) { + var _this19; + _classCallCheck(this, SubjectContextDevice); + if (options.name === undefined) { + throw new Error("Option 'name' is required for SubjectContextDevice."); + } + var deviceNameItem = new TextContentItem({ + name: new CodedConcept({ + value: "121193", + meaning: "Device Subject Name", + schemeDesignator: "DCM" + }), + value: options.name, + relationshipType: RelationshipTypes.HAS_OBS_CONTEXT + }); + _this19.push(deviceNameItem); + if (options.uid !== undefined) { + var deviceUidItem = new UIDRefContentItem({ + name: new CodedConcept({ + value: "121198", + meaning: "Device Subject UID", + schemeDesignator: "DCM" + }), + value: options.uid, + relationshipType: RelationshipTypes.HAS_OBS_CONTEXT + }); + _this19.push(deviceUidItem); + } + if (options.manufacturerName !== undefined) { + var manufacturerNameItem = new TextContentItem({ + name: new CodedConcept({ + value: "121194", + meaning: "Device Subject Manufacturer", + schemeDesignator: "DCM" + }), + value: options.manufacturerName, + relationshipType: RelationshipTypes.HAS_OBS_CONTEXT + }); + _this19.push(manufacturerNameItem); + } + if (options.modelName !== undefined) { + var modelNameItem = new TextContentItem({ + name: new CodedConcept({ + value: "121195", + meaning: "Device Subject Model Name", + schemeDesignator: "DCM" + }), + value: options.modelName, + relationshipType: RelationshipTypes.HAS_OBS_CONTEXT + }); + _this19.push(modelNameItem); + } + if (options.serialNumber !== undefined) { + var serialNumberItem = new TextContentItem({ + name: new CodedConcept({ + value: "121196", + meaning: "Device Subject Serial Number", + schemeDesignator: "DCM" + }), + value: options.serialNumber, + relationshipType: RelationshipTypes.HAS_OBS_CONTEXT + }); + _this19.push(serialNumberItem); + } + if (options.physicalLocation !== undefined) { + var physicalLocationItem = new TextContentItem({ + name: new CodedConcept({ + value: "121197", + meaning: "Device Subject Physical Location During Observation", + schemeDesignator: "DCM" + }), + value: options.physicalLocation, + relationshipType: RelationshipTypes.HAS_OBS_CONTEXT + }); + _this19.push(physicalLocationItem); + } + return _possibleConstructorReturn(_this19); + } + return _createClass(SubjectContextDevice); + }(Template); + var LanguageOfContentItemAndDescendants = /*#__PURE__*/function (_Template13) { + _inherits(LanguageOfContentItemAndDescendants, _Template13); + var _super14 = _createSuper(LanguageOfContentItemAndDescendants); + function LanguageOfContentItemAndDescendants(options) { + var _this20; + _classCallCheck(this, LanguageOfContentItemAndDescendants); + _this20 = _super14.call(this); + if (options.language === undefined) { + options.language = new CodedConcept({ + value: "en-US", + schemeDesignator: "RFC5646", + meaning: "English (United States)" + }); + } + var languageItem = new CodeContentItem({ + name: new CodedConcept({ + value: "121049", + meaning: "Language of Content Item and Descendants", + schemeDesignator: "DCM" + }), + value: options.language, + relationshipType: RelationshipTypes.HAS_CONCEPT_MOD + }); + _this20.push(languageItem); + return _this20; + } + return _createClass(LanguageOfContentItemAndDescendants); + }(Template); + var _MeasurementsAndQualitatitiveEvaluations = /*#__PURE__*/function (_Template14) { + _inherits(_MeasurementsAndQualitatitiveEvaluations, _Template14); + var _super15 = _createSuper(_MeasurementsAndQualitatitiveEvaluations); + function _MeasurementsAndQualitatitiveEvaluations(options) { + var _groupItem$ContentSeq; + var _this21; + _classCallCheck(this, _MeasurementsAndQualitatitiveEvaluations); + _this21 = _super15.call(this); + var groupItem = new ContainerContentItem({ + name: new CodedConcept({ + value: "125007", + meaning: "Measurement Group", + schemeDesignator: "DCM" + }), + relationshipType: RelationshipTypes.CONTAINS + }); + groupItem.ContentSequence = new ContentSequence$1(); + if (options.trackingIdentifier === undefined) { + throw new Error("Option 'trackingIdentifier' is required for measurements group."); + } + if (options.trackingIdentifier.constructor !== TrackingIdentifier) { + throw new Error("Option 'trackingIdentifier' must have type TrackingIdentifier."); + } + if (options.trackingIdentifier.length !== 2) { + throw new Error("Option 'trackingIdentifier' must include a human readable tracking " + "identifier and a tracking unique identifier."); + } + (_groupItem$ContentSeq = groupItem.ContentSequence).push.apply(_groupItem$ContentSeq, _toConsumableArray(options.trackingIdentifier)); + if (options.session !== undefined) { + var sessionItem = new TextContentItem({ + name: new CodedConcept({ + value: "C67447", + meaning: "Activity Session", + schemeDesignator: "NCIt" + }), + value: options.session, + relationshipType: RelationshipTypes.HAS_OBS_CONTEXT + }); + groupItem.ContentSequence.push(sessionItem); + } + if (options.findingType !== undefined) { + var findingTypeItem = new CodeContentItem({ + name: new CodedConcept({ + value: "121071", + meaning: "Finding", + schemeDesignator: "DCM" + }), + value: options.findingType, + relationshipType: RelationshipTypes.CONTAINS + }); + groupItem.ContentSequence.push(findingTypeItem); + } + if (options.timePointContext !== undefined) { + var _groupItem$ContentSeq2; + if (options.timePointContext.constructor !== TimePointContext) { + throw new Error("Option 'timePointContext' must have type TimePointContext."); + } + (_groupItem$ContentSeq2 = groupItem.ContentSequence).push.apply(_groupItem$ContentSeq2, _toConsumableArray(timePointContext)); + } + if (options.referencedRealWorldValueMap !== undefined) { + if (options.referencedRealWorldValueMap.constructor !== ReferencedRealWorldValueMap) { + throw new Error("Option 'referencedRealWorldValleMap' must have type " + "ReferencedRealWorldValueMap."); + } + groupItem.ContentSequence.push(options.referencedRealWorldValueMap); + } + if (options.measurements !== undefined) { + if (!(_typeof(options.measurements) === "object" || options.measurements instanceof Array)) { + throw new Error("Option 'measurements' must have type Array."); + } + options.measurements.forEach(function (measurement) { + console.log(measurement); + if (!measurement || measurement.constructor !== NumContentItem) { + throw new Error("Items of option 'measurement' must have type NumContentItem."); + } + groupItem.ContentSequence.push(measurement); + }); + } + if (options.qualitativeEvaluations !== undefined) { + if (!(_typeof(options.qualitativeEvaluations) === "object" || options.qualitativeEvaluations instanceof Array)) { + throw new Error("Option 'qualitativeEvaluations' must have type Array."); + } + options.qualitativeEvaluations.forEach(function (evaluation) { + if (!evaluation || evaluation.constructor !== CodeContentItem && evaluation.constructor !== TextContentItem) { + throw new Error("Items of option 'qualitativeEvaluations' must have type " + "CodeContentItem or TextContentItem."); + } + groupItem.ContentSequence.push(evaluation); + }); + } + _this21.push(groupItem); + return _this21; + } + return _createClass(_MeasurementsAndQualitatitiveEvaluations); + }(Template); + var _ROIMeasurementsAndQualitativeEvaluations = /*#__PURE__*/function (_MeasurementsAndQuali) { + _inherits(_ROIMeasurementsAndQualitativeEvaluations, _MeasurementsAndQuali); + var _super16 = _createSuper(_ROIMeasurementsAndQualitativeEvaluations); + function _ROIMeasurementsAndQualitativeEvaluations(options) { + var _this22; + _classCallCheck(this, _ROIMeasurementsAndQualitativeEvaluations); + _this22 = _super16.call(this, { + trackingIdentifier: options.trackingIdentifier, + timePointContext: options.timePointContext, + findingType: options.findingType, + session: options.session, + measurements: options.measurements, + qualitativeEvaluations: options.qualitativeEvaluations + }); + var groupItem = _this22[0]; + var wereReferencesProvided = [options.referencedRegions !== undefined, options.referencedVolume !== undefined, options.referencedSegmentation !== undefined]; + var numReferences = wereReferencesProvided.reduce(function (a, b) { + return a + b; + }); + if (numReferences === 0) { + throw new Error("One of the following options must be provided: " + "'referencedRegions', 'referencedVolume', or " + "'referencedSegmentation'."); + } else if (numReferences > 1) { + throw new Error("Only one of the following options should be provided: " + "'referencedRegions', 'referencedVolume', or " + "'referencedSegmentation'."); + } + if (options.referencedRegions !== undefined) { + if (!(_typeof(options.referencedRegions) === "object" || options.referencedRegions instanceof Array)) { + throw new Error("Option 'referencedRegions' must have type Array."); + } + if (options.referencedRegions.length === 0) { + throw new Error("Option 'referencedRegion' must have non-zero length."); + } + options.referencedRegions.forEach(function (region) { + if (region === undefined || region.constructor !== ImageRegion && region.constructor !== ImageRegion3D) { + throw new Error("Items of option 'referencedRegion' must have type " + "ImageRegion or ImageRegion3D."); + } + groupItem.ContentSequence.push(region); + }); + } else if (options.referencedVolume !== undefined) { + if (options.referencedVolume.constructor !== VolumeSurface) { + throw new Error("Items of option 'referencedVolume' must have type VolumeSurface."); + } + groupItem.ContentSequence.push(referencedVolume); + } else if (options.referencedSegmentation !== undefined) { + if (options.referencedSegmentation.constructor !== ReferencedSegmentation && options.referencedSegmentation.constructor !== ReferencedSegmentationFrame) { + throw new Error("Option 'referencedSegmentation' must have type " + "ReferencedSegmentation or ReferencedSegmentationFrame."); + } + groupItem.ContentSequence.push(referencedSegmentation); + } + _this22[0] = groupItem; + return _this22; + } + return _createClass(_ROIMeasurementsAndQualitativeEvaluations); + }(_MeasurementsAndQualitatitiveEvaluations); + var PlanarROIMeasurementsAndQualitativeEvaluations = /*#__PURE__*/function (_ROIMeasurementsAndQu) { + _inherits(PlanarROIMeasurementsAndQualitativeEvaluations, _ROIMeasurementsAndQu); + var _super17 = _createSuper(PlanarROIMeasurementsAndQualitativeEvaluations); + function PlanarROIMeasurementsAndQualitativeEvaluations(options) { + _classCallCheck(this, PlanarROIMeasurementsAndQualitativeEvaluations); + var wereReferencesProvided = [options.referencedRegion !== undefined, options.referencedSegmentation !== undefined]; + var numReferences = wereReferencesProvided.reduce(function (a, b) { + return a + b; + }); + if (numReferences === 0) { + throw new Error("One of the following options must be provided: " + "'referencedRegion', 'referencedSegmentation'."); + } else if (numReferences > 1) { + throw new Error("Only one of the following options should be provided: " + "'referencedRegion', 'referencedSegmentation'."); + } + return _super17.call(this, { + trackingIdentifier: options.trackingIdentifier, + referencedRegions: [options.referencedRegion], + referencedSegmentation: options.referencedSegmentation, + referencedRealWorldValueMap: options.referencedRealWorldValueMap, + timePointContext: options.timePointContext, + findingType: options.findingType, + session: options.session, + measurements: options.measurements, + qualitativeEvaluations: options.qualitativeEvaluations + }); + } + return _createClass(PlanarROIMeasurementsAndQualitativeEvaluations); + }(_ROIMeasurementsAndQualitativeEvaluations); + var VolumetricROIMeasurementsAndQualitativeEvaluations = /*#__PURE__*/function (_ROIMeasurementsAndQu2) { + _inherits(VolumetricROIMeasurementsAndQualitativeEvaluations, _ROIMeasurementsAndQu2); + var _super18 = _createSuper(VolumetricROIMeasurementsAndQualitativeEvaluations); + function VolumetricROIMeasurementsAndQualitativeEvaluations(options) { + _classCallCheck(this, VolumetricROIMeasurementsAndQualitativeEvaluations); + return _super18.call(this, { + trackingIdentifier: options.trackingIdentifier, + referencedRegions: options.referencedRegions, + referencedSegmentation: options.referencedSegmentation, + referencedRealWorldValueMap: options.referencedRealWorldValueMap, + timePointContext: options.timePointContext, + findingType: options.findingType, + session: options.session, + measurements: options.measurements, + qualitativeEvaluations: options.qualitativeEvaluations + }); + } + return _createClass(VolumetricROIMeasurementsAndQualitativeEvaluations); + }(_ROIMeasurementsAndQualitativeEvaluations); + var MeasurementsDerivedFromMultipleROIMeasurements = /*#__PURE__*/function (_Template15) { + _inherits(MeasurementsDerivedFromMultipleROIMeasurements, _Template15); + _createSuper(MeasurementsDerivedFromMultipleROIMeasurements); + function MeasurementsDerivedFromMultipleROIMeasurements(options) { + var _this23; + _classCallCheck(this, MeasurementsDerivedFromMultipleROIMeasurements); + if (options.derivation === undefined) { + throw new Error("Option 'derivation' is required for " + "MeasurementsDerivedFromMultipleROIMeasurements."); + } + // FIXME + var valueItem = new NumContentItem({ + name: options.derivation + }); + valueItem.ContentSequence = new ContentSequence$1(); + if (options.measurementGroups === undefined) { + throw new Error("Option 'measurementGroups' is required for " + "MeasurementsDerivedFromMultipleROIMeasurements."); + } + if (!(_typeof(options.measurementGroups) === "object" || options.measurementGroups instanceof Array)) { + throw new Error("Option 'measurementGroups' must have type Array."); + } + options.measurementGroups.forEach(function (group) { + var _valueItem$ContentSeq4; + if (!group || group.constructor !== PlanarROIMeasurementsAndQualitativeEvaluations && group.constructor !== VolumetricROIMeasurementsAndQualitativeEvaluations) { + throw new Error("Items of option 'measurementGroups' must have type " + "PlanarROIMeasurementsAndQualitativeEvaluations or " + "VolumetricROIMeasurementsAndQualitativeEvaluations."); + } + group[0].RelationshipType = "R-INFERRED FROM"; + (_valueItem$ContentSeq4 = valueItem.ContentSequence).push.apply(_valueItem$ContentSeq4, _toConsumableArray(group)); + }); + if (options.measurementProperties !== undefined) { + var _valueItem$ContentSeq5; + if (options.measurementProperties.constructor !== MeasurementProperties) { + throw new Error("Option 'measurementProperties' must have type MeasurementProperties."); + } + (_valueItem$ContentSeq5 = valueItem.ContentSequence).push.apply(_valueItem$ContentSeq5, _toConsumableArray(options.measurementProperties)); + } + _this23.push(valueItem); + return _possibleConstructorReturn(_this23); + } + return _createClass(MeasurementsDerivedFromMultipleROIMeasurements); + }(Template); + var MeasurementAndQualitativeEvaluationGroup = /*#__PURE__*/function (_MeasurementsAndQuali2) { + _inherits(MeasurementAndQualitativeEvaluationGroup, _MeasurementsAndQuali2); + var _super20 = _createSuper(MeasurementAndQualitativeEvaluationGroup); + function MeasurementAndQualitativeEvaluationGroup(options) { + _classCallCheck(this, MeasurementAndQualitativeEvaluationGroup); + return _super20.call(this, { + trackingIdentifier: options.trackingIdentifier, + referencedRealWorldValueMap: options.referencedRealWorldValueMap, + timePointContext: options.timePointContext, + findingType: options.findingType, + session: options.session, + measurements: options.measurements, + qualitativeEvaluations: options.qualitativeEvaluations + }); + } + return _createClass(MeasurementAndQualitativeEvaluationGroup); + }(_MeasurementsAndQualitatitiveEvaluations); + var ROIMeasurements = /*#__PURE__*/function (_Template16) { + _inherits(ROIMeasurements, _Template16); + var _super21 = _createSuper(ROIMeasurements); + function ROIMeasurements(options) { + var _this24; + _classCallCheck(this, ROIMeasurements); + _this24 = _super21.call(this); + if (options.method !== undefined) { + var methodItem = new CodeContentItem({ + name: new CodedConcept({ + value: "370129005", + meaning: "Measurement Method", + schemeDesignator: "SCT" + }), + value: options.method, + relationshipType: RelationshipTypes.HAS_CONCEPT_MOD + }); + _this24.push(methodItem); + } + if (options.findingSites !== undefined) { + if (!(_typeof(options.findingSites) === "object" || options.findingSites instanceof Array)) { + throw new Error("Option 'findingSites' must have type Array."); + } + options.findingSites.forEach(function (site) { + if (!site || site.constructor !== FindingSite) { + throw new Error("Items of option 'findingSites' must have type FindingSite."); + } + _this24.push(site); + }); + } + if (options.measurements === undefined) { + throw new Error("Options 'measurements' is required ROIMeasurements."); + } + if (!(_typeof(options.measurements) === "object" || options.measurements instanceof Array)) { + throw new Error("Option 'measurements' must have type Array."); + } + if (options.measurements.length === 0) { + throw new Error("Option 'measurements' must have non-zero length."); + } + options.measurements.forEach(function (measurement) { + if (!measurement || measurement.constructor !== Measurement) { + throw new Error("Items of option 'measurements' must have type Measurement."); + } + _this24.push(measurement); + }); + return _this24; + } + return _createClass(ROIMeasurements); + }(Template); + var MeasurementReport = /*#__PURE__*/function (_Template17) { + _inherits(MeasurementReport, _Template17); + var _super22 = _createSuper(MeasurementReport); + function MeasurementReport(options) { + var _item$ContentSequence, _item$ContentSequence2, _item$ContentSequence3; + var _this25; + _classCallCheck(this, MeasurementReport); + _this25 = _super22.call(this); + if (options.observationContext === undefined) { + throw new Error("Option 'observationContext' is required for MeasurementReport."); + } + if (options.procedureReported === undefined) { + throw new Error("Option 'procedureReported' is required for MeasurementReport."); + } + var item = new ContainerContentItem({ + name: new CodedConcept({ + value: "126000", + schemeDesignator: "DCM", + meaning: "Imaging Measurement Report" + }), + templateID: "1500" + }); + item.ContentSequence = new ContentSequence$1(); + if (options.languageOfContentItemAndDescendants === undefined) { + throw new Error("Option 'languageOfContentItemAndDescendants' is required for " + "MeasurementReport."); + } + if (options.languageOfContentItemAndDescendants.constructor !== LanguageOfContentItemAndDescendants) { + throw new Error("Option 'languageOfContentItemAndDescendants' must have type " + "LanguageOfContentItemAndDescendants."); + } + (_item$ContentSequence = item.ContentSequence).push.apply(_item$ContentSequence, _toConsumableArray(options.languageOfContentItemAndDescendants)); + (_item$ContentSequence2 = item.ContentSequence).push.apply(_item$ContentSequence2, _toConsumableArray(options.observationContext)); + if (options.procedureReported.constructor === CodedConcept || options.procedureReported.constructor === Code) { + options.procedureReported = [options.procedureReported]; + } + if (!(_typeof(options.procedureReported) === "object" || options.procedureReported instanceof Array)) { + throw new Error("Option 'procedureReported' must have type Array."); + } + options.procedureReported.forEach(function (procedure) { + var procedureItem = new CodeContentItem({ + name: new CodedConcept({ + value: "121058", + meaning: "Procedure reported", + schemeDesignator: "DCM" + }), + value: procedure, + relationshipType: RelationshipTypes.HAS_CONCEPT_MOD + }); + item.ContentSequence.push(procedureItem); + }); + var imageLibraryItem = new ImageLibrary(); + (_item$ContentSequence3 = item.ContentSequence).push.apply(_item$ContentSequence3, _toConsumableArray(imageLibraryItem)); + var wereOptionsProvided = [options.imagingMeasurements !== undefined, options.derivedImagingMeasurements !== undefined, options.qualitativeEvaluations !== undefined]; + var numOptionsProvided = wereOptionsProvided.reduce(function (a, b) { + return a + b; + }); + if (numOptionsProvided > 1) { + throw new Error("Only one of the following options should be provided: " + "'imagingMeasurements', 'derivedImagingMeasurement', " + "'qualitativeEvaluations'."); + } + if (options.imagingMeasurements !== undefined) { + var containerItem = new ContainerContentItem({ + name: new CodedConcept({ + value: "126010", + meaning: "Imaging Measurements", + schemeDesignator: "DCM" + }), + relationshipType: RelationshipTypes.CONTAINS + }); + containerItem.ContentSequence = _construct(ContentSequence$1, _toConsumableArray(options.imagingMeasurements)); + item.ContentSequence.push(containerItem); + } else if (options.derivedImagingMeasurements !== undefined) { + var _containerItem = new ContainerContentItem({ + name: new CodedConcept({ + value: "126011", + meaning: "Derived Imaging Measurements", + schemeDesignator: "DCM" + }), + relationshipType: RelationshipTypes.CONTAINS + }); + _containerItem.ContentSequence = _construct(ContentSequence$1, _toConsumableArray(options.derivedImagingMeasurements)); + item.ContentSequence.push(_containerItem); + } else if (options.qualitativeEvaluations !== undefined) { + var _containerItem2 = new ContainerContentItem({ + name: new CodedConcept({ + value: "C0034375", + meaning: "Qualitative Evaluations", + schemeDesignator: "UMLS" + }), + relationshipType: RelationshipTypes.CONTAINS + }); + _containerItem2.ContentSequence = _construct(ContentSequence$1, _toConsumableArray(options.qualitativeEvaluations)); + item.ContentSequence.push(_containerItem2); + } + _this25.push(item); + return _this25; + } + return _createClass(MeasurementReport); + }(Template); + var TimePointContext = /*#__PURE__*/function (_Template18) { + _inherits(TimePointContext, _Template18); + _createSuper(TimePointContext); + function TimePointContext(options) { + var _this26; + _classCallCheck(this, TimePointContext); + if (options.timePoint === undefined) { + throw new Error("Option 'timePoint' is required for TimePointContext."); + } + var timePointItem = new TextContentItem({ + name: new CodedConcept({ + value: "C2348792", + meaning: "Time Point", + schemeDesignator: "UMLS" + }), + value: options.timePoint, + relationshipType: RelationshipTypes.HAS_OBS_CONTEXT + }); + _this26.push(timePointItem); + if (options.timePointType !== undefined) { + var timePointTypeItem = new CodeContentItem({ + name: new CodedConcept({ + value: "126072", + meaning: "Time Point Type", + schemeDesignator: "DCM" + }), + value: options.timePointType, + relationshipType: RelationshipTypes.HAS_OBS_CONTEXT + }); + _this26.push(timePointTypeItem); + } + if (options.timePointOrder !== undefined) { + var timePointOrderItem = new NumContentItem({ + name: new CodedConcept({ + value: "126073", + meaning: "Time Point Order", + schemeDesignator: "DCM" + }), + value: options.timePointOrder, + relationshipType: RelationshipTypes.HAS_OBS_CONTEXT + }); + _this26.push(timePointOrderItem); + } + if (options.subjectTimePointIdentifier !== undefined) { + var subjectTimePointIdentifierItem = new NumContentItem({ + name: new CodedConcept({ + value: "126070", + meaning: "Subject Time Point Identifier", + schemeDesignator: "DCM" + }), + value: options.subjectTimePointIdentifier, + relationshipType: RelationshipTypes.HAS_OBS_CONTEXT + }); + _this26.push(subjectTimePointIdentifierItem); + } + if (options.protocolTimePointIdentifier !== undefined) { + var protocolTimePointIdentifierItem = new NumContentItem({ + name: new CodedConcept({ + value: "126071", + meaning: "Protocol Time Point Identifier", + schemeDesignator: "DCM" + }), + value: options.protocolTimePointIdentifier, + relationshipType: RelationshipTypes.HAS_OBS_CONTEXT + }); + _this26.push(protocolTimePointIdentifierItem); + } + if (options.temporalOffsetFromEvent !== undefined) { + if (options.temporalOffsetFromEvent.constructor !== LongitudinalTemporalOffsetFromEventContentItem) { + throw new Error("Option 'temporalOffsetFromEvent' must have type " + "LongitudinalTemporalOffsetFromEventContentItem."); + } + _this26.push(temporalOffsetFromEvent); + } + return _possibleConstructorReturn(_this26); + } + return _createClass(TimePointContext); + }(Template); + var ImageLibrary = /*#__PURE__*/function (_Template19) { + _inherits(ImageLibrary, _Template19); + var _super24 = _createSuper(ImageLibrary); + function ImageLibrary(options) { + var _this27; + _classCallCheck(this, ImageLibrary); + _this27 = _super24.call(this); + var libraryItem = new ContainerContentItem({ + name: new CodedConcept({ + value: "111028", + meaning: "Image Library", + schemeDesignator: "DCM" + }), + relationshipType: RelationshipTypes.CONTAINS + }); + _this27.push(libraryItem); + return _this27; + } + return _createClass(ImageLibrary); + }(Template); + var AlgorithmIdentification = /*#__PURE__*/function (_Template20) { + _inherits(AlgorithmIdentification, _Template20); + var _super25 = _createSuper(AlgorithmIdentification); + function AlgorithmIdentification(options) { + var _this28; + _classCallCheck(this, AlgorithmIdentification); + _this28 = _super25.call(this); + if (options.name === undefined) { + throw new Error("Option 'name' is required for AlgorithmIdentification."); + } + if (options.version === undefined) { + throw new Error("Option 'version' is required for AlgorithmIdentification."); + } + var nameItem = new TextContentItem({ + name: new CodedConcept({ + value: "111001", + meaning: "Algorithm Name", + schemeDesignator: "DCM" + }), + value: options.name, + relationshipType: RelationshipTypes.HAS_CONCEPT_MOD + }); + _this28.push(nameItem); + var versionItem = new TextContentItem({ + name: new CodedConcept({ + value: "111003", + meaning: "Algorithm Version", + schemeDesignator: "DCM" + }), + value: options.version, + relationshipType: RelationshipTypes.HAS_CONCEPT_MOD + }); + _this28.push(versionItem); + if (options.parameters !== undefined) { + if (!(_typeof(options.parameters) === "object" || options.parameters instanceof Array)) { + throw new Error("Option 'parameters' must have type Array."); + } + options.parameters.forEach(function (parameter) { + var parameterItem = new TextContentItem({ + name: new CodedConcept({ + value: "111002", + meaning: "Algorithm Parameter", + schemeDesignator: "DCM" + }), + value: param, + relationshipType: RelationshipTypes.HAS_CONCEPT_MOD + }); + _this28.push(parameterItem); + }); + } + return _this28; + } + return _createClass(AlgorithmIdentification); + }(Template); + var TrackingIdentifier = /*#__PURE__*/function (_Template21) { + _inherits(TrackingIdentifier, _Template21); + var _super26 = _createSuper(TrackingIdentifier); + function TrackingIdentifier(options) { + var _this29; + _classCallCheck(this, TrackingIdentifier); + _this29 = _super26.call(this); + if (options.uid === undefined) { + throw new Error("Option 'uid' is required for TrackingIdentifier."); + } + if (options.identifier !== undefined) { + var trackingIdentifierItem = new TextContentItem({ + name: new CodedConcept({ + value: "112039", + meaning: "Tracking Identifier", + schemeDesignator: "DCM" + }), + value: options.identifier, + relationshipType: RelationshipTypes.HAS_OBS_CONTEXT + }); + _this29.push(trackingIdentifierItem); + } + var trackingUIDItem = new UIDRefContentItem({ + name: new CodedConcept({ + value: "112040", + meaning: "Tracking Unique Identifier", + schemeDesignator: "DCM" + }), + value: options.uid, + relationshipType: RelationshipTypes.HAS_OBS_CONTEXT + }); + _this29.push(trackingUIDItem); + return _this29; + } + return _createClass(TrackingIdentifier); + }(Template); + + var templates = /*#__PURE__*/Object.freeze({ + __proto__: null, + AlgorithmIdentification: AlgorithmIdentification, + DeviceObserverIdentifyingAttributes: DeviceObserverIdentifyingAttributes, + ImageLibrary: ImageLibrary, + LanguageOfContentItemAndDescendants: LanguageOfContentItemAndDescendants, + Measurement: Measurement, + MeasurementAndQualitativeEvaluationGroup: MeasurementAndQualitativeEvaluationGroup, + MeasurementReport: MeasurementReport, + MeasurementsDerivedFromMultipleROIMeasurements: MeasurementsDerivedFromMultipleROIMeasurements, + ObservationContext: ObservationContext, + ObserverContext: ObserverContext, + PersonObserverIdentifyingAttributes: PersonObserverIdentifyingAttributes, + PlanarROIMeasurementsAndQualitativeEvaluations: PlanarROIMeasurementsAndQualitativeEvaluations, + ROIMeasurements: ROIMeasurements, + SubjectContext: SubjectContext, + SubjectContextDevice: SubjectContextDevice, + SubjectContextFetus: SubjectContextFetus, + SubjectContextSpecimen: SubjectContextSpecimen, + TimePointContext: TimePointContext, + TrackingIdentifier: TrackingIdentifier, + VolumetricROIMeasurementsAndQualitativeEvaluations: VolumetricROIMeasurementsAndQualitativeEvaluations + }); + + var _attributesToInclude = [ + // Patient + "00080054", "00080100", "00080102", "00080103", "00080104", "00080105", "00080106", "00080107", "0008010B", "0008010D", "0008010F", "00080117", "00080118", "00080119", "00080120", "00080121", "00080122", "00081120", "00081150", "00081155", "00081160", "00081190", "00081199", "00100010", "00100020", "00100021", "00100022", "00100024", "00100026", "00100027", "00100028", "00100030", "00100032", "00100033", "00100034", "00100035", "00100040", "00100200", "00100212", "00100213", "00100214", "00100215", "00100216", "00100217", "00100218", "00100219", "00100221", "00100222", "00100223", "00100229", "00101001", "00101002", "00101100", "00102160", "00102201", "00102202", "00102292", "00102293", "00102294", "00102295", "00102296", "00102297", "00102298", "00102299", "00104000", "00120062", "00120063", "00120064", "0020000D", "00400031", "00400032", "00400033", "00400035", "00400036", "00400039", "0040003A", "0040E001", "0040E010", "0040E020", "0040E021", "0040E022", "0040E023", "0040E024", "0040E025", "0040E030", "0040E031", "0062000B", "00880130", "00880140", + // Patient Study + "00080100", "00080102", "00080103", "00080104", "00080105", "00080106", "00080107", "0008010B", "0008010D", "0008010F", "00080117", "00080118", "00080119", "00080120", "00080121", "00080122", "00081080", "00081084", "00101010", "00101020", "00101021", "00101022", "00101023", "00101024", "00101030", "00102000", "00102110", "00102180", "001021A0", "001021B0", "001021C0", "001021D0", "00102203", "00380010", "00380014", "00380060", "00380062", "00380064", "00380500", "00400031", "00400032", "00400033", + // General Study + "00080020", "00080030", "00080050", "00080051", "00080080", "00080081", "00080082", "00080090", "00080096", "0008009C", "0008009D", "00080100", "00080102", "00080103", "00080104", "00080105", "00080106", "00080107", "0008010B", "0008010D", "0008010F", "00080117", "00080118", "00080119", "00080120", "00080121", "00080122", "00081030", "00081032", "00081048", "00081049", "00081060", "00081062", "00081110", "00081150", "00081155", "0020000D", "00200010", "00321034", "00400031", "00400032", "00400033", "00401012", "00401101", "00401102", "00401103", "00401104", + // Clinical Trial Subject + "00120010", "00120020", "00120021", "00120030", "00120031", "00120040", "00120042", "00120081", "00120082", + // Clinical Trial Study + "00120020", "00120050", "00120051", "00120052", "00120053", "00120083", "00120084", "00120085"]; + var Comprehensive3DSR = /*#__PURE__*/_createClass(function Comprehensive3DSR(options) { + var _this = this; + _classCallCheck(this, Comprehensive3DSR); + if (options.evidence === undefined) { + throw new Error("Option 'evidence' is required for Comprehensive3DSR."); + } + if (!(_typeof(options.evidence) === "object" || options.evidence instanceof Array)) { + throw new Error("Option 'evidence' must have type Array."); + } + if (options.evidence.length === 0) { + throw new Error("Option 'evidence' must have non-zero length."); + } + if (options.content === undefined) { + throw new Error("Option 'content' is required for Comprehensive3DSR."); + } + if (options.seriesInstanceUID === undefined) { + throw new Error("Option 'seriesInstanceUID' is required for Comprehensive3DSR."); + } + if (options.seriesNumber === undefined) { + throw new Error("Option 'seriesNumber' is required for Comprehensive3DSR."); + } + if (options.seriesDescription === undefined) { + throw new Error("Option 'seriesDescription' is required for Comprehensive3DSR."); + } + if (options.sopInstanceUID === undefined) { + throw new Error("Option 'sopInstanceUID' is required for Comprehensive3DSR."); + } + if (options.instanceNumber === undefined) { + throw new Error("Option 'instanceNumber' is required for Comprehensive3DSR."); + } + if (options.manufacturer === undefined) { + throw new Error("Option 'manufacturer' is required for Comprehensive3DSR."); + } + this.SOPClassUID = "1.2.840.10008.5.1.4.1.1.88.34"; + this.SOPInstanceUID = options.sopInstanceUID; + this.Modality = "SR"; + this.SeriesDescription = options.seriesDescription; + this.SeriesInstanceUID = options.seriesInstanceUID; + this.SeriesNumber = options.seriesNumber; + this.InstanceNumber = options.instanceNumber; + this.Manufacturer = options.manufacturer; + if (options.institutionName !== undefined) { + this.InstitutionName = options.institutionName; + if (options.institutionalDepartmentName !== undefined) { + this.InstitutionalDepartmentName = options.institutionDepartmentName; + } + } + if (options.isComplete) { + this.CompletionFlag = "COMPLETE"; + } else { + this.CompletionFlag = "PARTIAL"; + } + if (options.isVerified) { + if (options.verifyingObserverName === undefined) { + throw new Error("Verifying Observer Name must be specified if SR document " + "has been verified."); + } + if (options.verifyingOrganization === undefined) { + throw new Error("Verifying Organization must be specified if SR document " + "has been verified."); + } + this.VerificationFlag = "VERIFIED"; + var ovserver_item = {}; + ovserver_item.VerifyingObserverName = options.verifyingObserverName; + ovserver_item.VerifyingOrganization = options.verifyingOrganization; + ovserver_item.VerificationDateTime = DicomMetaDictionary.dateTime(); + this.VerifyingObserverSequence = [observer_item]; + } else { + this.VerificationFlag = "UNVERIFIED"; + } + if (options.isFinal) { + this.PreliminaryFlag = "FINAL"; + } else { + this.PreliminaryFlag = "PRELIMINARY"; + } + this.ContentDate = DicomMetaDictionary.date(); + this.ContentTime = DicomMetaDictionary.time(); + Object.keys(options.content).forEach(function (keyword) { + _this[keyword] = options.content[keyword]; + }); + var evidenceCollection = {}; + options.evidence.forEach(function (evidence) { + if (evidence.StudyInstanceUID !== options.evidence[0].StudyInstanceUID) { + throw new Error("Referenced data sets must all belong to the same study."); + } + if (!(evidence.SeriesInstanceUID in evidenceCollection)) { + evidenceCollection[evidence.SeriesInstanceUID] = []; + } + var instanceItem = {}; + instanceItem.ReferencedSOPClassUID = evidence.SOPClassUID; + instanceItem.ReferencedSOPInstanceUID = evidence.SOPInstanceUID; + evidenceCollection[evidence.SeriesInstanceUID].push(instanceItem); + }); + var evidenceStudyItem = {}; + evidenceStudyItem.StudyInstanceUID = options.evidence[0].StudyInstanceUID; + evidenceStudyItem.ReferencedSeriesSequence = []; + Object.keys(evidenceCollection).forEach(function (seriesInstanceUID) { + var seriesItem = {}; + seriesItem.SeriesInstanceUID = seriesInstanceUID; + seriesItem.ReferencedSOPSequence = evidenceCollection[seriesInstanceUID]; + evidenceStudyItem.ReferencedSeriesSequence.push(seriesItem); + }); + if (options.requestedProcedures !== undefined) { + if (!(_typeof(options.requestedProcedures) === "object" || options.requestedProcedures instanceof Array)) { + throw new Error("Option 'requestedProcedures' must have type Array."); + } + this.ReferencedRequestSequence = _construct(ContentSequence, _toConsumableArray(options.requestedProcedures)); + this.CurrentRequestedProcedureEvidenceSequence = [evidenceStudyItem]; + } else { + this.PertinentOtherEvidenceSequence = [evidenceStudyItem]; + } + if (options.previousVersions !== undefined) { + var preCollection = {}; + options.previousVersions.forEach(function (version) { + if (version.StudyInstanceUID != options.evidence[0].StudyInstanceUID) { + throw new Error("Previous version data sets must belong to the same study."); + } + var instanceItem = {}; + instanceItem.ReferencedSOPClassUID = version.SOPClassUID; + instanceItem.ReferencedSOPInstanceUID = version.SOPInstanceUID; + preCollection[version.SeriesInstanceUID].push(instanceItem); + }); + var preStudyItem = {}; + preStudyItem.StudyInstanceUID = options.previousVersions[0].StudyInstanceUID; + preStudyItem.ReferencedSeriesSequence = []; + Object.keys(preCollection).forEach(function (seriesInstanceUID) { + var seriesItem = {}; + seriesItem.SeriesInstanceUID = seriesInstanceUID; + seriesItem.ReferencedSOPSequence = preCollection[seriesInstanceUID]; + preStudyItem.ReferencedSeriesSequence.push(seriesItem); + }); + this.PredecessorDocumentsSequence = [preStudyItem]; + } + if (options.performedProcedureCodes !== undefined) { + if (!(_typeof(options.performedProcedureCodes) === "object" || options.performedProcedureCodes instanceof Array)) { + throw new Error("Option 'performedProcedureCodes' must have type Array."); + } + this.PerformedProcedureCodeSequence = _construct(ContentSequence, _toConsumableArray(options.performedProcedureCodes)); + } else { + this.PerformedProcedureCodeSequence = []; + } + this.ReferencedPerformedProcedureStepSequence = []; + _attributesToInclude.forEach(function (tag) { + var key = DicomMetaDictionary.punctuateTag(tag); + var element = DicomMetaDictionary.dictionary[key]; + if (element !== undefined) { + var keyword = element.name; + var value = options.evidence[0][keyword]; + if (value !== undefined) { + _this[keyword] = value; + } + } + }); + }); + + var documents = /*#__PURE__*/Object.freeze({ + __proto__: null, + Comprehensive3DSR: Comprehensive3DSR + }); + + var sr = { + coding: coding, + contentItems: contentItems, + documents: documents, + templates: templates, + valueTypes: valueTypes + }; + + var tagNamesToEmpty = [ + // please override these in specificReplaceDefaults to have useful values + "PatientID", "PatientName", + // 0/3: those that appear missing in CTP + "SeriesDate", "AccessionNumber", + // (valuable, but sometimes manually filled) + "SeriesDescription", + // cat 1/3: CTP: set to empty explicitely using @empty + "StudyTime", "ContentTime", "ReferringPhysicianName", "PatientBirthDate", "PatientSex", "ClinicalTrialSiteID", "ClinicalTrialSiteName", "ClinicalTrialSubjectID", "ClinicalTrialSubjectReadingID", "ClinicalTrialTimePointID", "ClinicalTrialTimePointDescription", "ContrastBolusAgent", "StudyID", + // cat 2/3: CTP: set to increment dates + "InstanceCreationDate", "StudyDate", "ContentDate", "DateOfSecondaryCapture", "DateOfLastCalibration", "DateOfLastDetectorCalibration", "FrameAcquisitionDatetime", "FrameReferenceDatetime", "StudyVerifiedDate", "StudyReadDate", "ScheduledStudyStartDate", "ScheduledStudyStopDate", "StudyArrivalDate", "StudyCompletionDate", "ScheduledAdmissionDate", "ScheduledDischargeDate", "DischargeDate", "SPSStartDate", "SPSEndDate", "PPSStartDate", "PPSEndDate", "IssueDateOfImagingServiceRequest", "VerificationDateTime", "ObservationDateTime", "DateTime", "Date", "RefDatetime", + // cat 3/3: CTP: set to remove using @remove + "AcquisitionDate", "OverlayDate", "CurveDate", "AcquisitionDatetime", "SeriesTime", "AcquisitionTime", "OverlayTime", "CurveTime", "InstitutionName", "InstitutionAddress", "ReferringPhysicianAddress", "ReferringPhysicianPhoneNumbers", "ReferringPhysiciansIDSeq", "TimezoneOffsetFromUTC", "StationName", "StudyDescription", "InstitutionalDepartmentName", "PhysicianOfRecord", "PhysicianOfRecordIdSeq", "PerformingPhysicianName", "PerformingPhysicianIdSeq", "NameOfPhysicianReadingStudy", "PhysicianReadingStudyIdSeq", "OperatorName", "OperatorsIdentificationSeq", "AdmittingDiagnosisDescription", "AdmittingDiagnosisCodeSeq", "RefStudySeq", "RefPPSSeq", "RefPatientSeq", "RefImageSeq", "DerivationDescription", "SourceImageSeq", "IdentifyingComments", "IssuerOfPatientID", "PatientBirthTime", "PatientInsurancePlanCodeSeq", "PatientPrimaryLanguageCodeSeq", "PatientPrimaryLanguageModifierCodeSeq", "OtherPatientIDs", "OtherPatientNames", "OtherPatientIDsSeq", "PatientBirthName", "PatientAge", "PatientSize", "PatientWeight", "PatientAddress", "InsurancePlanIdentification", "PatientMotherBirthName", "MilitaryRank", "BranchOfService", "MedicalRecordLocator", "MedicalAlerts", "ContrastAllergies", "CountryOfResidence", "RegionOfResidence", "PatientPhoneNumbers", "EthnicGroup", "Occupation", "SmokingStatus", "AdditionalPatientHistory", "PregnancyStatus", "LastMenstrualDate", "PatientReligiousPreference", "PatientSexNeutered", "ResponsiblePerson", "ResponsibleOrganization", "PatientComments", "DeviceSerialNumber", "PlateID", "GeneratorID", "CassetteID", "GantryID", + // we keep - should be SoftwareVersions anyway + // "SoftwareVersion", + "ProtocolName", "AcquisitionDeviceProcessingDescription", "AcquisitionComments", "DetectorID", "AcquisitionProtocolDescription", "ContributionDescription", "ModifyingDeviceID", "ModifyingDeviceManufacturer", "ModifiedImageDescription", "ImageComments", "ImagePresentationComments", "StudyIDIssuer", "ScheduledStudyLocation", "ScheduledStudyLocationAET", "ReasonforStudy", "RequestingPhysician", "RequestingService", "RequestedProcedureDescription", "RequestedContrastAgent", "StudyComments", "AdmissionID", "IssuerOfAdmissionID", "ScheduledPatientInstitutionResidence", "AdmittingDate", "AdmittingTime", "DischargeDiagnosisDescription", "SpecialNeeds", "ServiceEpisodeID", "IssuerOfServiceEpisodeId", "ServiceEpisodeDescription", "CurrentPatientLocation", "PatientInstitutionResidence", "PatientState", "ReferencedPatientAliasSeq", "VisitComments", "ScheduledStationAET", "ScheduledPerformingPhysicianName", "SPSDescription", "ScheduledStationName", "SPSLocation", "PreMedication", "PerformedStationAET", "PerformedStationName", "PerformedLocation", "PerformedStationNameCodeSeq", "PPSID", "PPSDescription", "RequestAttributesSeq", "PPSComments", "AcquisitionContextSeq", "PatientTransportArrangements", "RequestedProcedureLocation", "NamesOfIntendedRecipientsOfResults", "IntendedRecipientsOfResultsIDSequence", "PersonAddress", "PersonTelephoneNumbers", "RequestedProcedureComments", "ReasonForTheImagingServiceRequest", "OrderEnteredBy", "OrderEntererLocation", "OrderCallbackPhoneNumber", "ImagingServiceRequestComments", "ConfidentialityPatientData", "ScheduledStationNameCodeSeq", "ScheduledStationGeographicLocCodeSeq", "PerformedStationGeoLocCodeSeq", "ScheduledHumanPerformersSeq", "ActualHumanPerformersSequence", "HumanPerformersOrganization", "HumanPerformersName", "VerifyingOrganization", "VerifyingObserverName", "AuthorObserverSequence", "ParticipantSequence", "CustodialOrganizationSeq", "VerifyingObserverIdentificationCodeSeq", "PersonName", "ContentSeq", "OverlayData", "OverlayComments", "IconImageSequence", "TopicSubject", "TopicAuthor", "TopicKeyWords", "TextString", "Arbitrary", "TextComments", "ResultsIDIssuer", "InterpretationRecorder", "InterpretationTranscriber", "InterpretationText", "InterpretationAuthor", "InterpretationApproverSequence", "PhysicianApprovingInterpretation", "InterpretationDiagnosisDescription", "ResultsDistributionListSeq", "DistributionName", "DistributionAddress", "InterpretationIdIssuer", "Impressions", "ResultComments", "DigitalSignaturesSeq", "DataSetTrailingPadding"]; + function getTagsNameToEmpty() { + return [].concat(tagNamesToEmpty); + } + function cleanTags(dict) { + var tagNamesToReplace = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined; + var customTagNamesToEmpty = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined; + if (tagNamesToReplace == undefined) { + tagNamesToReplace = { + "00100010": "ANON^PATIENT", + "00100020": "ANON^ID" + }; + } + var tags = customTagNamesToEmpty != undefined ? customTagNamesToEmpty : tagNamesToEmpty; + tags.forEach(function (tag) { + var tagInfo = DicomMetaDictionary.nameMap[tag]; + if (tagInfo && tagInfo.version != "PrivateTag") { + var tagNumber = tagInfo.tag, + tagString = Tag.fromPString(tagNumber).toCleanString(); + if (dict[tagString]) { + var newValue; + if (tagString in tagNamesToReplace) { + newValue = [tagNamesToReplace[tagString]]; + } else { + newValue = []; + } + dict[tagString] = ValueRepresentation.addTagAccessors(dict[tagString]); + dict[tagString].Value = newValue; + } + } + }); + } + + // Data + var data = { + BitArray: BitArray, + ReadBufferStream: ReadBufferStream, + DeflatedReadBufferStream: DeflatedReadBufferStream, + WriteBufferStream: WriteBufferStream, + DicomDict: DicomDict, + DicomMessage: DicomMessage, + DicomMetaDictionary: DicomMetaDictionary, + Tag: Tag, + ValueRepresentation: ValueRepresentation, + Colors: Colors, + datasetToDict: datasetToDict, + datasetToBuffer: datasetToBuffer, + datasetToBlob: datasetToBlob + }; + var derivations = { + DerivedDataset: DerivedDataset, + DerivedPixels: DerivedPixels, + DerivedImage: DerivedImage, + Segmentation: Segmentation$4, + StructuredReport: StructuredReport, + ParametricMap: ParametricMap + }; + var normalizers = { + Normalizer: Normalizer, + ImageNormalizer: ImageNormalizer, + MRImageNormalizer: MRImageNormalizer, + EnhancedMRImageNormalizer: EnhancedMRImageNormalizer, + EnhancedUSVolumeNormalizer: EnhancedUSVolumeNormalizer, + CTImageNormalizer: CTImageNormalizer, + PETImageNormalizer: PETImageNormalizer, + SEGImageNormalizer: SEGImageNormalizer, + DSRNormalizer: DSRNormalizer + }; + var anonymizer = { + cleanTags: cleanTags, + getTagsNameToEmpty: getTagsNameToEmpty + }; + var dcmjs = { + DICOMWEB: DICOMWEB, + adapters: adapters, + data: data, + derivations: derivations, + normalizers: normalizers, + sr: sr, + utilities: utilities, + log: log, + anonymizer: anonymizer + }; + + exports.DICOMWEB = DICOMWEB; + exports.adapters = adapters; + exports.anonymizer = anonymizer; + exports.data = data; + exports.default = dcmjs; + exports.derivations = derivations; + exports.log = log; + exports.normalizers = normalizers; + exports.sr = sr; + exports.utilities = utilities; + + Object.defineProperty(exports, '__esModule', { value: true }); + +})); +//# sourceMappingURL=dcmjs.js.map diff --git a/adit/upload/static/vendor/dcmjs.js.map b/adit/upload/static/vendor/dcmjs.js.map new file mode 100644 index 00000000..f195c83d --- /dev/null +++ b/adit/upload/static/vendor/dcmjs.js.map @@ -0,0 +1 @@ +{"version":3,"file":"dcmjs.js","sources":["../node_modules/loglevelnext/lib/factory/MethodFactory.js","../node_modules/loglevelnext/lib/factory/PrefixFactory.js","../node_modules/loglevelnext/lib/LogLevel.js","../node_modules/loglevelnext/lib/index.js","../src/log.js","../src/bitArray.js","../node_modules/pako/dist/pako.esm.mjs","../src/BufferStream.js","../src/constants/dicom.js","../src/dictionary.js","../src/utilities/addAccessors.js","../src/Tag.js","../src/utilities/dicomJson.js","../src/ValueRepresentation.js","../src/DicomMetaDictionary.js","../src/DicomMessage.js","../src/DicomDict.js","../src/dicomweb.js","../src/colors.js","../src/datasetToBlob.js","../src/derivations/DerivedDataset.js","../src/derivations/DerivedPixels.js","../src/derivations/DerivedImage.js","../src/normalizers.js","../src/derivations/Segmentation.js","../src/derivations/ParametricMap.js","../src/derivations/StructuredReport.js","../src/utilities/TID1500/TID1500MeasurementReport.js","../src/utilities/TID1500/TID1501MeasurementGroup.js","../src/adapters/helpers.js","../src/adapters/Cornerstone/MeasurementReport.js","../src/utilities/TID300/TID300Measurement.js","../src/utilities/TID300/unit2CodingValue.js","../src/utilities/TID300/Length.js","../src/adapters/Cornerstone/cornerstone4Tag.js","../src/adapters/Cornerstone/Length.js","../src/utilities/TID300/Polyline.js","../src/adapters/Cornerstone/FreehandRoi.js","../src/utilities/TID300/Bidirectional.js","../src/adapters/Cornerstone/Bidirectional.js","../src/utilities/TID300/Ellipse.js","../src/adapters/Cornerstone/EllipticalRoi.js","../src/utilities/TID300/Circle.js","../src/adapters/Cornerstone/CircleRoi.js","../src/utilities/TID300/Point.js","../src/adapters/Cornerstone/ArrowAnnotate.js","../node_modules/iota-array/iota.js","../node_modules/is-buffer/index.js","../node_modules/ndarray/ndarray.js","../src/utilities/orientation/crossProduct3D.js","../src/utilities/orientation/flipImageOrientationPatient.js","../src/utilities/orientation/rotateVectorAroundUnitVector.js","../src/utilities/orientation/rotateDirectionCosinesInPlane.js","../src/utilities/orientation/flipMatrix2D.js","../src/utilities/orientation/rotateMatrix902D.js","../src/utilities/orientation/nearlyEqual.js","../src/adapters/Cornerstone/Segmentation_3X.js","../node_modules/gl-matrix/esm/common.js","../node_modules/gl-matrix/esm/vec3.js","../src/utilities/compression/rleSingleSamplePerPixel.js","../node_modules/lodash.clonedeep/index.js","../src/adapters/Cornerstone/Segmentation_4X.js","../src/adapters/Cornerstone/Segmentation.js","../src/utilities/TID300/CobbAngle.js","../src/adapters/Cornerstone/CobbAngle.js","../src/adapters/Cornerstone/Angle.js","../src/adapters/Cornerstone/RectangleRoi.js","../src/adapters/Cornerstone/index.js","../src/adapters/Cornerstone3D/CodingScheme.js","../src/adapters/Cornerstone3D/MeasurementReport.js","../src/adapters/Cornerstone3D/cornerstone3DTag.js","../src/adapters/Cornerstone3D/Length.js","../src/adapters/Cornerstone3D/Bidirectional.js","../src/adapters/Cornerstone3D/EllipticalROI.js","../src/adapters/Cornerstone3D/ArrowAnnotate.js","../src/adapters/Cornerstone3D/Probe.js","../src/adapters/Cornerstone3D/PlanarFreehandROI.js","../src/adapters/Cornerstone3D/index.js","../src/adapters/VTKjs/Segmentation.js","../src/adapters/VTKjs/index.js","../src/adapters/DICOMMicroscopyViewer/MeasurementReport.js","../src/adapters/DICOMMicroscopyViewer/Polyline.js","../src/utilities/TID300/Polygon.js","../src/adapters/DICOMMicroscopyViewer/Polygon.js","../src/adapters/DICOMMicroscopyViewer/Point.js","../src/adapters/DICOMMicroscopyViewer/Circle.js","../src/adapters/DICOMMicroscopyViewer/Ellipse.js","../src/adapters/DICOMMicroscopyViewer/index.js","../src/adapters/index.js","../src/utilities/TID1500/index.js","../src/utilities/TID300/Calibration.js","../src/utilities/TID300/index.js","../src/utilities/Message.js","../src/utilities/index.js","../src/sr/coding.js","../src/sr/valueTypes.js","../src/sr/contentItems.js","../src/sr/templates.js","../src/sr/documents.js","../src/sr/index.js","../src/anonymizer.js","../src/index.js"],"sourcesContent":["/*\n Copyright © 2018 Andrew Powell\n\n This Source Code Form is subject to the terms of the Mozilla Public\n License, v. 2.0. If a copy of the MPL was not distributed with this\n file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n The above copyright notice and this permission notice shall be\n included in all copies or substantial portions of this Source Code Form.\n*/\n\nconst noop = () => {};\nconst levels = Symbol('log-levels');\nconst instance = Symbol('log-instance');\n\nmodule.exports = class MethodFactory {\n constructor(logger) {\n this[instance] = logger;\n this[levels] = {\n TRACE: 0,\n DEBUG: 1,\n INFO: 2,\n WARN: 3,\n ERROR: 4,\n SILENT: 5\n };\n }\n\n get levels() {\n return this[levels];\n }\n\n get logger() {\n return this[instance];\n }\n\n set logger(logger) {\n this[instance] = logger;\n }\n\n get methods() {\n return Object.keys(this.levels)\n .map((key) => key.toLowerCase())\n .filter((key) => key !== 'silent');\n }\n\n // eslint-disable-next-line class-methods-use-this\n bindMethod(obj, methodName) {\n const method = obj[methodName];\n if (typeof method.bind === 'function') {\n return method.bind(obj);\n }\n\n try {\n return Function.prototype.bind.call(method, obj);\n } catch (e) {\n // Missing bind shim or IE8 + Modernizr, fallback to wrapping\n return function result() {\n // eslint-disable-next-line prefer-rest-params\n return Function.prototype.apply.apply(method, [obj, arguments]);\n };\n }\n }\n\n distillLevel(level) {\n let result = level;\n\n if (typeof result === 'string' && typeof this.levels[result.toUpperCase()] !== 'undefined') {\n result = this.levels[result.toUpperCase()];\n }\n\n if (this.levelValid(result)) {\n return result;\n }\n\n return false;\n }\n\n levelValid(level) {\n if (typeof level === 'number' && level >= 0 && level <= this.levels.SILENT) {\n return true;\n }\n\n return false;\n }\n\n /**\n * Build the best logging method possible for this env\n * Wherever possible we want to bind, not wrap, to preserve stack traces.\n * Since we're targeting modern browsers, there's no need to wait for the\n * console to become available.\n */\n // eslint-disable-next-line class-methods-use-this\n make(methodName) {\n if (methodName === 'debug') {\n // eslint-disable-next-line no-param-reassign\n methodName = 'log';\n }\n\n /* eslint-disable no-console */\n if (typeof console[methodName] !== 'undefined') {\n return this.bindMethod(console, methodName);\n } else if (typeof console.log !== 'undefined') {\n return this.bindMethod(console, 'log');\n }\n\n /* eslint-enable no-console */\n return noop;\n }\n\n replaceMethods(logLevel) {\n const level = this.distillLevel(logLevel);\n\n if (level == null) {\n throw new Error(`loglevelnext: replaceMethods() called with invalid level: ${logLevel}`);\n }\n\n if (!this.logger || this.logger.type !== 'LogLevel') {\n throw new TypeError(\n 'loglevelnext: Logger is undefined or invalid. Please specify a valid Logger instance.'\n );\n }\n\n this.methods.forEach((methodName) => {\n const { [methodName.toUpperCase()]: methodLevel } = this.levels;\n\n this.logger[methodName] = methodLevel < level ? noop : this.make(methodName);\n });\n\n // Define log.log as an alias for log.debug\n this.logger.log = this.logger.debug;\n }\n};\n","/*\n Copyright © 2018 Andrew Powell\n\n This Source Code Form is subject to the terms of the Mozilla Public\n License, v. 2.0. If a copy of the MPL was not distributed with this\n file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n The above copyright notice and this permission notice shall be\n included in all copies or substantial portions of this Source Code Form.\n*/\n\nconst MethodFactory = require('./MethodFactory');\n\nconst defaults = {\n level: (opts) => `[${opts.level}]`,\n name: (opts) => opts.logger.name,\n template: '{{time}} {{level}} ',\n time: () => new Date().toTimeString().split(' ')[0]\n};\n\nmodule.exports = class PrefixFactory extends MethodFactory {\n constructor(logger, options) {\n super(logger);\n this.options = Object.assign({}, defaults, options);\n }\n\n interpolate(level) {\n return this.options.template.replace(/{{([^{}]*)}}/g, (stache, prop) => {\n const fn = this.options[prop];\n\n if (fn) {\n return fn({ level, logger: this.logger });\n }\n\n return stache;\n });\n }\n\n make(methodName) {\n const og = super.make(methodName);\n\n return (...args) => {\n const output = this.interpolate(methodName);\n const [first] = args;\n\n if (typeof first === 'string') {\n // eslint-disable-next-line no-param-reassign\n args[0] = output + first;\n } else {\n args.unshift(output);\n }\n\n og(...args);\n };\n }\n};\n","/*\n Copyright © 2018 Andrew Powell\n\n This Source Code Form is subject to the terms of the Mozilla Public\n License, v. 2.0. If a copy of the MPL was not distributed with this\n file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n The above copyright notice and this permission notice shall be\n included in all copies or substantial portions of this Source Code Form.\n*/\n\nconst PrefixFactory = require('./factory/PrefixFactory');\n\nconst MethodFactory = require('./factory/MethodFactory');\n\nconst defaults = {\n factory: null,\n level: 'warn',\n name: +new Date(),\n prefix: null\n};\n\nmodule.exports = class LogLevel {\n constructor(options) {\n // implement for some _very_ loose type checking. avoids getting into a\n // circular require between MethodFactory and LogLevel\n this.type = 'LogLevel';\n this.options = Object.assign({}, defaults, options);\n this.methodFactory = options.factory;\n\n if (!this.methodFactory) {\n const factory = options.prefix\n ? new PrefixFactory(this, options.prefix)\n : new MethodFactory(this);\n this.methodFactory = factory;\n }\n\n if (!this.methodFactory.logger) {\n this.methodFactory.logger = this;\n }\n\n this.name = options.name || '';\n\n // this.level is a setter, do this after setting up the factory\n this.level = this.options.level;\n }\n\n get factory() {\n return this.methodFactory;\n }\n\n set factory(factory) {\n // eslint-disable-next-line no-param-reassign\n factory.logger = this;\n this.methodFactory = factory;\n this.methodFactory.replaceMethods(this.level);\n }\n\n disable() {\n this.level = this.levels.SILENT;\n }\n\n enable() {\n this.level = this.levels.TRACE;\n }\n\n get level() {\n return this.currentLevel;\n }\n\n set level(logLevel) {\n const level = this.methodFactory.distillLevel(logLevel);\n\n if (level === false || level == null) {\n throw new RangeError(`loglevelnext: setLevel() called with invalid level: ${logLevel}`);\n }\n\n this.currentLevel = level;\n this.methodFactory.replaceMethods(level);\n\n if (typeof console === 'undefined' && level < this.levels.SILENT) {\n // eslint-disable-next-line no-console\n console.warn('loglevelnext: console is undefined. The log will produce no output.');\n }\n }\n\n get levels() {\n // eslint-disable-line class-methods-use-this\n return this.methodFactory.levels;\n }\n};\n","/*\n Copyright © 2018 Andrew Powell\n\n This Source Code Form is subject to the terms of the Mozilla Public\n License, v. 2.0. If a copy of the MPL was not distributed with this\n file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n The above copyright notice and this permission notice shall be\n included in all copies or substantial portions of this Source Code Form.\n*/\n\nconst LogLevel = require('./LogLevel');\nconst MethodFactory = require('./factory/MethodFactory');\nconst PrefixFactory = require('./factory/PrefixFactory');\n\nconst factories = Symbol('log-factories');\n\nclass DefaultLogger extends LogLevel {\n constructor() {\n super({ name: 'default' });\n\n this.cache = { default: this };\n this[factories] = { MethodFactory, PrefixFactory };\n }\n\n get factories() {\n return this[factories];\n }\n\n get loggers() {\n return this.cache;\n }\n\n create(opts) {\n let options;\n\n if (typeof opts === 'string') {\n options = { name: opts };\n } else {\n options = Object.assign({}, opts);\n }\n\n if (!options.id) {\n options.id = options.name;\n }\n\n const { name, id } = options;\n const defaults = { level: this.level };\n\n if (typeof name !== 'string' || !name || !name.length) {\n throw new TypeError('You must supply a name when creating a logger.');\n }\n\n let logger = this.cache[id];\n if (!logger) {\n logger = new LogLevel(Object.assign({}, defaults, options));\n this.cache[id] = logger;\n }\n return logger;\n }\n}\n\nmodule.exports = new DefaultLogger();\n\n// TypeScript fix\nmodule.exports.default = module.exports;\n","import loglevelnext from \"loglevelnext\";\n\nconst log = loglevelnext.create(\"dcmjs\");\n\n/**\n * A validation log shows issues with data validation, and not internal issues itself.\n * This is validation.dcmjs to group the validation issues into a single validation set to allow\n * turning validation on/off.\n */\nconst validationLog = loglevelnext.create(\"validation.dcmjs\");\n\nexport { log, validationLog };\nexport default log;\n","/* eslint no-bitwise: 0 */\nimport log from \"./log.js\";\n\nconst BitArray = {\n getBytesForBinaryFrame,\n pack,\n unpack\n};\n\nexport { BitArray };\nexport default BitArray;\n\nfunction getBytesForBinaryFrame(numPixels) {\n // Check whether the 1-bit pixels exactly fit into bytes\n const remainder = numPixels % 8;\n\n // Number of bytes that work on an exact fit\n let bytesRequired = Math.floor(numPixels / 8);\n\n // Add one byte if we have a remainder\n if (remainder > 0) {\n bytesRequired++;\n }\n\n return bytesRequired;\n}\n\nfunction pack(pixelData) {\n const numPixels = pixelData.length;\n\n log.debug(\"numPixels: \" + numPixels);\n\n const length = getBytesForBinaryFrame(numPixels);\n //log.log('getBytesForBinaryFrame: ' + length);\n\n const bitPixelData = new Uint8Array(length);\n\n let bytePos = 0;\n\n for (let i = 0; i < numPixels; i++) {\n // Compute byte position\n bytePos = Math.floor(i / 8);\n\n const pixValue = pixelData[i] !== 0;\n\n //log.log('i: ' + i);\n //log.log('pixValue: ' + pixValue);\n //log.log('bytePos: ' + bytePos);\n\n const bitPixelValue = pixValue << i % 8;\n //log.log('current bitPixelData: ' + bitPixelData[bytePos]);\n //log.log('this bitPixelValue: ' + bitPixelValue);\n\n bitPixelData[bytePos] |= bitPixelValue;\n\n //log.log('new bitPixelValue: ' + bitPixelData[bytePos]);\n }\n\n return bitPixelData;\n}\n\n// convert a packed bitwise pixel array into a byte-per-pixel\n// array with 255 corresponding to each set bit in the bit array\nfunction unpack(bitPixelArray) {\n const bitArray = new Uint8Array(bitPixelArray);\n const byteArray = new Uint8Array(8 * bitArray.length);\n\n for (let byteIndex = 0; byteIndex < byteArray.length; byteIndex++) {\n const bitIndex = byteIndex % 8;\n const bitByteIndex = Math.floor(byteIndex / 8);\n byteArray[byteIndex] =\n 255 * ((bitArray[bitByteIndex] & (1 << bitIndex)) >> bitIndex);\n }\n\n return byteArray;\n}\n","\n/*! pako 2.0.4 https://github.com/nodeca/pako @license (MIT AND Zlib) */\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n/* eslint-disable space-unary-ops */\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\n\n//const Z_FILTERED = 1;\n//const Z_HUFFMAN_ONLY = 2;\n//const Z_RLE = 3;\nconst Z_FIXED$1 = 4;\n//const Z_DEFAULT_STRATEGY = 0;\n\n/* Possible values of the data_type field (though see inflate()) */\nconst Z_BINARY = 0;\nconst Z_TEXT = 1;\n//const Z_ASCII = 1; // = Z_TEXT\nconst Z_UNKNOWN$1 = 2;\n\n/*============================================================================*/\n\n\nfunction zero$1(buf) { let len = buf.length; while (--len >= 0) { buf[len] = 0; } }\n\n// From zutil.h\n\nconst STORED_BLOCK = 0;\nconst STATIC_TREES = 1;\nconst DYN_TREES = 2;\n/* The three kinds of block type */\n\nconst MIN_MATCH$1 = 3;\nconst MAX_MATCH$1 = 258;\n/* The minimum and maximum match lengths */\n\n// From deflate.h\n/* ===========================================================================\n * Internal compression state.\n */\n\nconst LENGTH_CODES$1 = 29;\n/* number of length codes, not counting the special END_BLOCK code */\n\nconst LITERALS$1 = 256;\n/* number of literal bytes 0..255 */\n\nconst L_CODES$1 = LITERALS$1 + 1 + LENGTH_CODES$1;\n/* number of Literal or Length codes, including the END_BLOCK code */\n\nconst D_CODES$1 = 30;\n/* number of distance codes */\n\nconst BL_CODES$1 = 19;\n/* number of codes used to transfer the bit lengths */\n\nconst HEAP_SIZE$1 = 2 * L_CODES$1 + 1;\n/* maximum heap size */\n\nconst MAX_BITS$1 = 15;\n/* All codes must not exceed MAX_BITS bits */\n\nconst Buf_size = 16;\n/* size of bit buffer in bi_buf */\n\n\n/* ===========================================================================\n * Constants\n */\n\nconst MAX_BL_BITS = 7;\n/* Bit length codes must not exceed MAX_BL_BITS bits */\n\nconst END_BLOCK = 256;\n/* end of block literal code */\n\nconst REP_3_6 = 16;\n/* repeat previous bit length 3-6 times (2 bits of repeat count) */\n\nconst REPZ_3_10 = 17;\n/* repeat a zero length 3-10 times (3 bits of repeat count) */\n\nconst REPZ_11_138 = 18;\n/* repeat a zero length 11-138 times (7 bits of repeat count) */\n\n/* eslint-disable comma-spacing,array-bracket-spacing */\nconst extra_lbits = /* extra bits for each length code */\n new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]);\n\nconst extra_dbits = /* extra bits for each distance code */\n new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]);\n\nconst extra_blbits = /* extra bits for each bit length code */\n new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]);\n\nconst bl_order =\n new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);\n/* eslint-enable comma-spacing,array-bracket-spacing */\n\n/* The lengths of the bit length codes are sent in order of decreasing\n * probability, to avoid transmitting the lengths for unused bit length codes.\n */\n\n/* ===========================================================================\n * Local data. These are initialized only once.\n */\n\n// We pre-fill arrays with 0 to avoid uninitialized gaps\n\nconst DIST_CODE_LEN = 512; /* see definition of array dist_code below */\n\n// !!!! Use flat array instead of structure, Freq = i*2, Len = i*2+1\nconst static_ltree = new Array((L_CODES$1 + 2) * 2);\nzero$1(static_ltree);\n/* The static literal tree. Since the bit lengths are imposed, there is no\n * need for the L_CODES extra codes used during heap construction. However\n * The codes 286 and 287 are needed to build a canonical tree (see _tr_init\n * below).\n */\n\nconst static_dtree = new Array(D_CODES$1 * 2);\nzero$1(static_dtree);\n/* The static distance tree. (Actually a trivial tree since all codes use\n * 5 bits.)\n */\n\nconst _dist_code = new Array(DIST_CODE_LEN);\nzero$1(_dist_code);\n/* Distance codes. The first 256 values correspond to the distances\n * 3 .. 258, the last 256 values correspond to the top 8 bits of\n * the 15 bit distances.\n */\n\nconst _length_code = new Array(MAX_MATCH$1 - MIN_MATCH$1 + 1);\nzero$1(_length_code);\n/* length code for each normalized match length (0 == MIN_MATCH) */\n\nconst base_length = new Array(LENGTH_CODES$1);\nzero$1(base_length);\n/* First normalized length for each code (0 = MIN_MATCH) */\n\nconst base_dist = new Array(D_CODES$1);\nzero$1(base_dist);\n/* First normalized distance for each code (0 = distance of 1) */\n\n\nfunction StaticTreeDesc(static_tree, extra_bits, extra_base, elems, max_length) {\n\n this.static_tree = static_tree; /* static tree or NULL */\n this.extra_bits = extra_bits; /* extra bits for each code or NULL */\n this.extra_base = extra_base; /* base index for extra_bits */\n this.elems = elems; /* max number of elements in the tree */\n this.max_length = max_length; /* max bit length for the codes */\n\n // show if `static_tree` has data or dummy - needed for monomorphic objects\n this.has_stree = static_tree && static_tree.length;\n}\n\n\nlet static_l_desc;\nlet static_d_desc;\nlet static_bl_desc;\n\n\nfunction TreeDesc(dyn_tree, stat_desc) {\n this.dyn_tree = dyn_tree; /* the dynamic tree */\n this.max_code = 0; /* largest code with non zero frequency */\n this.stat_desc = stat_desc; /* the corresponding static tree */\n}\n\n\n\nconst d_code = (dist) => {\n\n return dist < 256 ? _dist_code[dist] : _dist_code[256 + (dist >>> 7)];\n};\n\n\n/* ===========================================================================\n * Output a short LSB first on the stream.\n * IN assertion: there is enough room in pendingBuf.\n */\nconst put_short = (s, w) => {\n// put_byte(s, (uch)((w) & 0xff));\n// put_byte(s, (uch)((ush)(w) >> 8));\n s.pending_buf[s.pending++] = (w) & 0xff;\n s.pending_buf[s.pending++] = (w >>> 8) & 0xff;\n};\n\n\n/* ===========================================================================\n * Send a value on a given number of bits.\n * IN assertion: length <= 16 and value fits in length bits.\n */\nconst send_bits = (s, value, length) => {\n\n if (s.bi_valid > (Buf_size - length)) {\n s.bi_buf |= (value << s.bi_valid) & 0xffff;\n put_short(s, s.bi_buf);\n s.bi_buf = value >> (Buf_size - s.bi_valid);\n s.bi_valid += length - Buf_size;\n } else {\n s.bi_buf |= (value << s.bi_valid) & 0xffff;\n s.bi_valid += length;\n }\n};\n\n\nconst send_code = (s, c, tree) => {\n\n send_bits(s, tree[c * 2]/*.Code*/, tree[c * 2 + 1]/*.Len*/);\n};\n\n\n/* ===========================================================================\n * Reverse the first len bits of a code, using straightforward code (a faster\n * method would use a table)\n * IN assertion: 1 <= len <= 15\n */\nconst bi_reverse = (code, len) => {\n\n let res = 0;\n do {\n res |= code & 1;\n code >>>= 1;\n res <<= 1;\n } while (--len > 0);\n return res >>> 1;\n};\n\n\n/* ===========================================================================\n * Flush the bit buffer, keeping at most 7 bits in it.\n */\nconst bi_flush = (s) => {\n\n if (s.bi_valid === 16) {\n put_short(s, s.bi_buf);\n s.bi_buf = 0;\n s.bi_valid = 0;\n\n } else if (s.bi_valid >= 8) {\n s.pending_buf[s.pending++] = s.bi_buf & 0xff;\n s.bi_buf >>= 8;\n s.bi_valid -= 8;\n }\n};\n\n\n/* ===========================================================================\n * Compute the optimal bit lengths for a tree and update the total bit length\n * for the current block.\n * IN assertion: the fields freq and dad are set, heap[heap_max] and\n * above are the tree nodes sorted by increasing frequency.\n * OUT assertions: the field len is set to the optimal bit length, the\n * array bl_count contains the frequencies for each bit length.\n * The length opt_len is updated; static_len is also updated if stree is\n * not null.\n */\nconst gen_bitlen = (s, desc) =>\n// deflate_state *s;\n// tree_desc *desc; /* the tree descriptor */\n{\n const tree = desc.dyn_tree;\n const max_code = desc.max_code;\n const stree = desc.stat_desc.static_tree;\n const has_stree = desc.stat_desc.has_stree;\n const extra = desc.stat_desc.extra_bits;\n const base = desc.stat_desc.extra_base;\n const max_length = desc.stat_desc.max_length;\n let h; /* heap index */\n let n, m; /* iterate over the tree elements */\n let bits; /* bit length */\n let xbits; /* extra bits */\n let f; /* frequency */\n let overflow = 0; /* number of elements with bit length too large */\n\n for (bits = 0; bits <= MAX_BITS$1; bits++) {\n s.bl_count[bits] = 0;\n }\n\n /* In a first pass, compute the optimal bit lengths (which may\n * overflow in the case of the bit length tree).\n */\n tree[s.heap[s.heap_max] * 2 + 1]/*.Len*/ = 0; /* root of the heap */\n\n for (h = s.heap_max + 1; h < HEAP_SIZE$1; h++) {\n n = s.heap[h];\n bits = tree[tree[n * 2 + 1]/*.Dad*/ * 2 + 1]/*.Len*/ + 1;\n if (bits > max_length) {\n bits = max_length;\n overflow++;\n }\n tree[n * 2 + 1]/*.Len*/ = bits;\n /* We overwrite tree[n].Dad which is no longer needed */\n\n if (n > max_code) { continue; } /* not a leaf node */\n\n s.bl_count[bits]++;\n xbits = 0;\n if (n >= base) {\n xbits = extra[n - base];\n }\n f = tree[n * 2]/*.Freq*/;\n s.opt_len += f * (bits + xbits);\n if (has_stree) {\n s.static_len += f * (stree[n * 2 + 1]/*.Len*/ + xbits);\n }\n }\n if (overflow === 0) { return; }\n\n // Trace((stderr,\"\\nbit length overflow\\n\"));\n /* This happens for example on obj2 and pic of the Calgary corpus */\n\n /* Find the first bit length which could increase: */\n do {\n bits = max_length - 1;\n while (s.bl_count[bits] === 0) { bits--; }\n s.bl_count[bits]--; /* move one leaf down the tree */\n s.bl_count[bits + 1] += 2; /* move one overflow item as its brother */\n s.bl_count[max_length]--;\n /* The brother of the overflow item also moves one step up,\n * but this does not affect bl_count[max_length]\n */\n overflow -= 2;\n } while (overflow > 0);\n\n /* Now recompute all bit lengths, scanning in increasing frequency.\n * h is still equal to HEAP_SIZE. (It is simpler to reconstruct all\n * lengths instead of fixing only the wrong ones. This idea is taken\n * from 'ar' written by Haruhiko Okumura.)\n */\n for (bits = max_length; bits !== 0; bits--) {\n n = s.bl_count[bits];\n while (n !== 0) {\n m = s.heap[--h];\n if (m > max_code) { continue; }\n if (tree[m * 2 + 1]/*.Len*/ !== bits) {\n // Trace((stderr,\"code %d bits %d->%d\\n\", m, tree[m].Len, bits));\n s.opt_len += (bits - tree[m * 2 + 1]/*.Len*/) * tree[m * 2]/*.Freq*/;\n tree[m * 2 + 1]/*.Len*/ = bits;\n }\n n--;\n }\n }\n};\n\n\n/* ===========================================================================\n * Generate the codes for a given tree and bit counts (which need not be\n * optimal).\n * IN assertion: the array bl_count contains the bit length statistics for\n * the given tree and the field len is set for all tree elements.\n * OUT assertion: the field code is set for all tree elements of non\n * zero code length.\n */\nconst gen_codes = (tree, max_code, bl_count) =>\n// ct_data *tree; /* the tree to decorate */\n// int max_code; /* largest code with non zero frequency */\n// ushf *bl_count; /* number of codes at each bit length */\n{\n const next_code = new Array(MAX_BITS$1 + 1); /* next code value for each bit length */\n let code = 0; /* running code value */\n let bits; /* bit index */\n let n; /* code index */\n\n /* The distribution counts are first used to generate the code values\n * without bit reversal.\n */\n for (bits = 1; bits <= MAX_BITS$1; bits++) {\n next_code[bits] = code = (code + bl_count[bits - 1]) << 1;\n }\n /* Check that the bit counts in bl_count are consistent. The last code\n * must be all ones.\n */\n //Assert (code + bl_count[MAX_BITS]-1 == (1< {\n\n let n; /* iterates over tree elements */\n let bits; /* bit counter */\n let length; /* length value */\n let code; /* code value */\n let dist; /* distance index */\n const bl_count = new Array(MAX_BITS$1 + 1);\n /* number of codes at each bit length for an optimal tree */\n\n // do check in _tr_init()\n //if (static_init_done) return;\n\n /* For some embedded targets, global variables are not initialized: */\n/*#ifdef NO_INIT_GLOBAL_POINTERS\n static_l_desc.static_tree = static_ltree;\n static_l_desc.extra_bits = extra_lbits;\n static_d_desc.static_tree = static_dtree;\n static_d_desc.extra_bits = extra_dbits;\n static_bl_desc.extra_bits = extra_blbits;\n#endif*/\n\n /* Initialize the mapping length (0..255) -> length code (0..28) */\n length = 0;\n for (code = 0; code < LENGTH_CODES$1 - 1; code++) {\n base_length[code] = length;\n for (n = 0; n < (1 << extra_lbits[code]); n++) {\n _length_code[length++] = code;\n }\n }\n //Assert (length == 256, \"tr_static_init: length != 256\");\n /* Note that the length 255 (match length 258) can be represented\n * in two different ways: code 284 + 5 bits or code 285, so we\n * overwrite length_code[255] to use the best encoding:\n */\n _length_code[length - 1] = code;\n\n /* Initialize the mapping dist (0..32K) -> dist code (0..29) */\n dist = 0;\n for (code = 0; code < 16; code++) {\n base_dist[code] = dist;\n for (n = 0; n < (1 << extra_dbits[code]); n++) {\n _dist_code[dist++] = code;\n }\n }\n //Assert (dist == 256, \"tr_static_init: dist != 256\");\n dist >>= 7; /* from now on, all distances are divided by 128 */\n for (; code < D_CODES$1; code++) {\n base_dist[code] = dist << 7;\n for (n = 0; n < (1 << (extra_dbits[code] - 7)); n++) {\n _dist_code[256 + dist++] = code;\n }\n }\n //Assert (dist == 256, \"tr_static_init: 256+dist != 512\");\n\n /* Construct the codes of the static literal tree */\n for (bits = 0; bits <= MAX_BITS$1; bits++) {\n bl_count[bits] = 0;\n }\n\n n = 0;\n while (n <= 143) {\n static_ltree[n * 2 + 1]/*.Len*/ = 8;\n n++;\n bl_count[8]++;\n }\n while (n <= 255) {\n static_ltree[n * 2 + 1]/*.Len*/ = 9;\n n++;\n bl_count[9]++;\n }\n while (n <= 279) {\n static_ltree[n * 2 + 1]/*.Len*/ = 7;\n n++;\n bl_count[7]++;\n }\n while (n <= 287) {\n static_ltree[n * 2 + 1]/*.Len*/ = 8;\n n++;\n bl_count[8]++;\n }\n /* Codes 286 and 287 do not exist, but we must include them in the\n * tree construction to get a canonical Huffman tree (longest code\n * all ones)\n */\n gen_codes(static_ltree, L_CODES$1 + 1, bl_count);\n\n /* The static distance tree is trivial: */\n for (n = 0; n < D_CODES$1; n++) {\n static_dtree[n * 2 + 1]/*.Len*/ = 5;\n static_dtree[n * 2]/*.Code*/ = bi_reverse(n, 5);\n }\n\n // Now data ready and we can init static trees\n static_l_desc = new StaticTreeDesc(static_ltree, extra_lbits, LITERALS$1 + 1, L_CODES$1, MAX_BITS$1);\n static_d_desc = new StaticTreeDesc(static_dtree, extra_dbits, 0, D_CODES$1, MAX_BITS$1);\n static_bl_desc = new StaticTreeDesc(new Array(0), extra_blbits, 0, BL_CODES$1, MAX_BL_BITS);\n\n //static_init_done = true;\n};\n\n\n/* ===========================================================================\n * Initialize a new block.\n */\nconst init_block = (s) => {\n\n let n; /* iterates over tree elements */\n\n /* Initialize the trees. */\n for (n = 0; n < L_CODES$1; n++) { s.dyn_ltree[n * 2]/*.Freq*/ = 0; }\n for (n = 0; n < D_CODES$1; n++) { s.dyn_dtree[n * 2]/*.Freq*/ = 0; }\n for (n = 0; n < BL_CODES$1; n++) { s.bl_tree[n * 2]/*.Freq*/ = 0; }\n\n s.dyn_ltree[END_BLOCK * 2]/*.Freq*/ = 1;\n s.opt_len = s.static_len = 0;\n s.last_lit = s.matches = 0;\n};\n\n\n/* ===========================================================================\n * Flush the bit buffer and align the output on a byte boundary\n */\nconst bi_windup = (s) =>\n{\n if (s.bi_valid > 8) {\n put_short(s, s.bi_buf);\n } else if (s.bi_valid > 0) {\n //put_byte(s, (Byte)s->bi_buf);\n s.pending_buf[s.pending++] = s.bi_buf;\n }\n s.bi_buf = 0;\n s.bi_valid = 0;\n};\n\n/* ===========================================================================\n * Copy a stored block, storing first the length and its\n * one's complement if requested.\n */\nconst copy_block = (s, buf, len, header) =>\n//DeflateState *s;\n//charf *buf; /* the input data */\n//unsigned len; /* its length */\n//int header; /* true if block header must be written */\n{\n bi_windup(s); /* align on byte boundary */\n\n if (header) {\n put_short(s, len);\n put_short(s, ~len);\n }\n// while (len--) {\n// put_byte(s, *buf++);\n// }\n s.pending_buf.set(s.window.subarray(buf, buf + len), s.pending);\n s.pending += len;\n};\n\n/* ===========================================================================\n * Compares to subtrees, using the tree depth as tie breaker when\n * the subtrees have equal frequency. This minimizes the worst case length.\n */\nconst smaller = (tree, n, m, depth) => {\n\n const _n2 = n * 2;\n const _m2 = m * 2;\n return (tree[_n2]/*.Freq*/ < tree[_m2]/*.Freq*/ ||\n (tree[_n2]/*.Freq*/ === tree[_m2]/*.Freq*/ && depth[n] <= depth[m]));\n};\n\n/* ===========================================================================\n * Restore the heap property by moving down the tree starting at node k,\n * exchanging a node with the smallest of its two sons if necessary, stopping\n * when the heap property is re-established (each father smaller than its\n * two sons).\n */\nconst pqdownheap = (s, tree, k) =>\n// deflate_state *s;\n// ct_data *tree; /* the tree to restore */\n// int k; /* node to move down */\n{\n const v = s.heap[k];\n let j = k << 1; /* left son of k */\n while (j <= s.heap_len) {\n /* Set j to the smallest of the two sons: */\n if (j < s.heap_len &&\n smaller(tree, s.heap[j + 1], s.heap[j], s.depth)) {\n j++;\n }\n /* Exit if v is smaller than both sons */\n if (smaller(tree, v, s.heap[j], s.depth)) { break; }\n\n /* Exchange v with the smallest son */\n s.heap[k] = s.heap[j];\n k = j;\n\n /* And continue down the tree, setting j to the left son of k */\n j <<= 1;\n }\n s.heap[k] = v;\n};\n\n\n// inlined manually\n// const SMALLEST = 1;\n\n/* ===========================================================================\n * Send the block data compressed using the given Huffman trees\n */\nconst compress_block = (s, ltree, dtree) =>\n// deflate_state *s;\n// const ct_data *ltree; /* literal tree */\n// const ct_data *dtree; /* distance tree */\n{\n let dist; /* distance of matched string */\n let lc; /* match length or unmatched char (if dist == 0) */\n let lx = 0; /* running index in l_buf */\n let code; /* the code to send */\n let extra; /* number of extra bits to send */\n\n if (s.last_lit !== 0) {\n do {\n dist = (s.pending_buf[s.d_buf + lx * 2] << 8) | (s.pending_buf[s.d_buf + lx * 2 + 1]);\n lc = s.pending_buf[s.l_buf + lx];\n lx++;\n\n if (dist === 0) {\n send_code(s, lc, ltree); /* send a literal byte */\n //Tracecv(isgraph(lc), (stderr,\" '%c' \", lc));\n } else {\n /* Here, lc is the match length - MIN_MATCH */\n code = _length_code[lc];\n send_code(s, code + LITERALS$1 + 1, ltree); /* send the length code */\n extra = extra_lbits[code];\n if (extra !== 0) {\n lc -= base_length[code];\n send_bits(s, lc, extra); /* send the extra length bits */\n }\n dist--; /* dist is now the match distance - 1 */\n code = d_code(dist);\n //Assert (code < D_CODES, \"bad d_code\");\n\n send_code(s, code, dtree); /* send the distance code */\n extra = extra_dbits[code];\n if (extra !== 0) {\n dist -= base_dist[code];\n send_bits(s, dist, extra); /* send the extra distance bits */\n }\n } /* literal or match pair ? */\n\n /* Check that the overlay between pending_buf and d_buf+l_buf is ok: */\n //Assert((uInt)(s->pending) < s->lit_bufsize + 2*lx,\n // \"pendingBuf overflow\");\n\n } while (lx < s.last_lit);\n }\n\n send_code(s, END_BLOCK, ltree);\n};\n\n\n/* ===========================================================================\n * Construct one Huffman tree and assigns the code bit strings and lengths.\n * Update the total bit length for the current block.\n * IN assertion: the field freq is set for all tree elements.\n * OUT assertions: the fields len and code are set to the optimal bit length\n * and corresponding code. The length opt_len is updated; static_len is\n * also updated if stree is not null. The field max_code is set.\n */\nconst build_tree = (s, desc) =>\n// deflate_state *s;\n// tree_desc *desc; /* the tree descriptor */\n{\n const tree = desc.dyn_tree;\n const stree = desc.stat_desc.static_tree;\n const has_stree = desc.stat_desc.has_stree;\n const elems = desc.stat_desc.elems;\n let n, m; /* iterate over heap elements */\n let max_code = -1; /* largest code with non zero frequency */\n let node; /* new node being created */\n\n /* Construct the initial heap, with least frequent element in\n * heap[SMALLEST]. The sons of heap[n] are heap[2*n] and heap[2*n+1].\n * heap[0] is not used.\n */\n s.heap_len = 0;\n s.heap_max = HEAP_SIZE$1;\n\n for (n = 0; n < elems; n++) {\n if (tree[n * 2]/*.Freq*/ !== 0) {\n s.heap[++s.heap_len] = max_code = n;\n s.depth[n] = 0;\n\n } else {\n tree[n * 2 + 1]/*.Len*/ = 0;\n }\n }\n\n /* The pkzip format requires that at least one distance code exists,\n * and that at least one bit should be sent even if there is only one\n * possible code. So to avoid special checks later on we force at least\n * two codes of non zero frequency.\n */\n while (s.heap_len < 2) {\n node = s.heap[++s.heap_len] = (max_code < 2 ? ++max_code : 0);\n tree[node * 2]/*.Freq*/ = 1;\n s.depth[node] = 0;\n s.opt_len--;\n\n if (has_stree) {\n s.static_len -= stree[node * 2 + 1]/*.Len*/;\n }\n /* node is 0 or 1 so it does not have extra bits */\n }\n desc.max_code = max_code;\n\n /* The elements heap[heap_len/2+1 .. heap_len] are leaves of the tree,\n * establish sub-heaps of increasing lengths:\n */\n for (n = (s.heap_len >> 1/*int /2*/); n >= 1; n--) { pqdownheap(s, tree, n); }\n\n /* Construct the Huffman tree by repeatedly combining the least two\n * frequent nodes.\n */\n node = elems; /* next internal node of the tree */\n do {\n //pqremove(s, tree, n); /* n = node of least frequency */\n /*** pqremove ***/\n n = s.heap[1/*SMALLEST*/];\n s.heap[1/*SMALLEST*/] = s.heap[s.heap_len--];\n pqdownheap(s, tree, 1/*SMALLEST*/);\n /***/\n\n m = s.heap[1/*SMALLEST*/]; /* m = node of next least frequency */\n\n s.heap[--s.heap_max] = n; /* keep the nodes sorted by frequency */\n s.heap[--s.heap_max] = m;\n\n /* Create a new node father of n and m */\n tree[node * 2]/*.Freq*/ = tree[n * 2]/*.Freq*/ + tree[m * 2]/*.Freq*/;\n s.depth[node] = (s.depth[n] >= s.depth[m] ? s.depth[n] : s.depth[m]) + 1;\n tree[n * 2 + 1]/*.Dad*/ = tree[m * 2 + 1]/*.Dad*/ = node;\n\n /* and insert the new node in the heap */\n s.heap[1/*SMALLEST*/] = node++;\n pqdownheap(s, tree, 1/*SMALLEST*/);\n\n } while (s.heap_len >= 2);\n\n s.heap[--s.heap_max] = s.heap[1/*SMALLEST*/];\n\n /* At this point, the fields freq and dad are set. We can now\n * generate the bit lengths.\n */\n gen_bitlen(s, desc);\n\n /* The field len is now set, we can generate the bit codes */\n gen_codes(tree, max_code, s.bl_count);\n};\n\n\n/* ===========================================================================\n * Scan a literal or distance tree to determine the frequencies of the codes\n * in the bit length tree.\n */\nconst scan_tree = (s, tree, max_code) =>\n// deflate_state *s;\n// ct_data *tree; /* the tree to be scanned */\n// int max_code; /* and its largest code of non zero frequency */\n{\n let n; /* iterates over all tree elements */\n let prevlen = -1; /* last emitted length */\n let curlen; /* length of current code */\n\n let nextlen = tree[0 * 2 + 1]/*.Len*/; /* length of next code */\n\n let count = 0; /* repeat count of the current code */\n let max_count = 7; /* max repeat count */\n let min_count = 4; /* min repeat count */\n\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n }\n tree[(max_code + 1) * 2 + 1]/*.Len*/ = 0xffff; /* guard */\n\n for (n = 0; n <= max_code; n++) {\n curlen = nextlen;\n nextlen = tree[(n + 1) * 2 + 1]/*.Len*/;\n\n if (++count < max_count && curlen === nextlen) {\n continue;\n\n } else if (count < min_count) {\n s.bl_tree[curlen * 2]/*.Freq*/ += count;\n\n } else if (curlen !== 0) {\n\n if (curlen !== prevlen) { s.bl_tree[curlen * 2]/*.Freq*/++; }\n s.bl_tree[REP_3_6 * 2]/*.Freq*/++;\n\n } else if (count <= 10) {\n s.bl_tree[REPZ_3_10 * 2]/*.Freq*/++;\n\n } else {\n s.bl_tree[REPZ_11_138 * 2]/*.Freq*/++;\n }\n\n count = 0;\n prevlen = curlen;\n\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n\n } else if (curlen === nextlen) {\n max_count = 6;\n min_count = 3;\n\n } else {\n max_count = 7;\n min_count = 4;\n }\n }\n};\n\n\n/* ===========================================================================\n * Send a literal or distance tree in compressed form, using the codes in\n * bl_tree.\n */\nconst send_tree = (s, tree, max_code) =>\n// deflate_state *s;\n// ct_data *tree; /* the tree to be scanned */\n// int max_code; /* and its largest code of non zero frequency */\n{\n let n; /* iterates over all tree elements */\n let prevlen = -1; /* last emitted length */\n let curlen; /* length of current code */\n\n let nextlen = tree[0 * 2 + 1]/*.Len*/; /* length of next code */\n\n let count = 0; /* repeat count of the current code */\n let max_count = 7; /* max repeat count */\n let min_count = 4; /* min repeat count */\n\n /* tree[max_code+1].Len = -1; */ /* guard already set */\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n }\n\n for (n = 0; n <= max_code; n++) {\n curlen = nextlen;\n nextlen = tree[(n + 1) * 2 + 1]/*.Len*/;\n\n if (++count < max_count && curlen === nextlen) {\n continue;\n\n } else if (count < min_count) {\n do { send_code(s, curlen, s.bl_tree); } while (--count !== 0);\n\n } else if (curlen !== 0) {\n if (curlen !== prevlen) {\n send_code(s, curlen, s.bl_tree);\n count--;\n }\n //Assert(count >= 3 && count <= 6, \" 3_6?\");\n send_code(s, REP_3_6, s.bl_tree);\n send_bits(s, count - 3, 2);\n\n } else if (count <= 10) {\n send_code(s, REPZ_3_10, s.bl_tree);\n send_bits(s, count - 3, 3);\n\n } else {\n send_code(s, REPZ_11_138, s.bl_tree);\n send_bits(s, count - 11, 7);\n }\n\n count = 0;\n prevlen = curlen;\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n\n } else if (curlen === nextlen) {\n max_count = 6;\n min_count = 3;\n\n } else {\n max_count = 7;\n min_count = 4;\n }\n }\n};\n\n\n/* ===========================================================================\n * Construct the Huffman tree for the bit lengths and return the index in\n * bl_order of the last bit length code to send.\n */\nconst build_bl_tree = (s) => {\n\n let max_blindex; /* index of last bit length code of non zero freq */\n\n /* Determine the bit length frequencies for literal and distance trees */\n scan_tree(s, s.dyn_ltree, s.l_desc.max_code);\n scan_tree(s, s.dyn_dtree, s.d_desc.max_code);\n\n /* Build the bit length tree: */\n build_tree(s, s.bl_desc);\n /* opt_len now includes the length of the tree representations, except\n * the lengths of the bit lengths codes and the 5+5+4 bits for the counts.\n */\n\n /* Determine the number of bit length codes to send. The pkzip format\n * requires that at least 4 bit length codes be sent. (appnote.txt says\n * 3 but the actual value used is 4.)\n */\n for (max_blindex = BL_CODES$1 - 1; max_blindex >= 3; max_blindex--) {\n if (s.bl_tree[bl_order[max_blindex] * 2 + 1]/*.Len*/ !== 0) {\n break;\n }\n }\n /* Update opt_len to include the bit length tree and counts */\n s.opt_len += 3 * (max_blindex + 1) + 5 + 5 + 4;\n //Tracev((stderr, \"\\ndyn trees: dyn %ld, stat %ld\",\n // s->opt_len, s->static_len));\n\n return max_blindex;\n};\n\n\n/* ===========================================================================\n * Send the header for a block using dynamic Huffman trees: the counts, the\n * lengths of the bit length codes, the literal tree and the distance tree.\n * IN assertion: lcodes >= 257, dcodes >= 1, blcodes >= 4.\n */\nconst send_all_trees = (s, lcodes, dcodes, blcodes) =>\n// deflate_state *s;\n// int lcodes, dcodes, blcodes; /* number of codes for each tree */\n{\n let rank; /* index in bl_order */\n\n //Assert (lcodes >= 257 && dcodes >= 1 && blcodes >= 4, \"not enough codes\");\n //Assert (lcodes <= L_CODES && dcodes <= D_CODES && blcodes <= BL_CODES,\n // \"too many codes\");\n //Tracev((stderr, \"\\nbl counts: \"));\n send_bits(s, lcodes - 257, 5); /* not +255 as stated in appnote.txt */\n send_bits(s, dcodes - 1, 5);\n send_bits(s, blcodes - 4, 4); /* not -3 as stated in appnote.txt */\n for (rank = 0; rank < blcodes; rank++) {\n //Tracev((stderr, \"\\nbl code %2d \", bl_order[rank]));\n send_bits(s, s.bl_tree[bl_order[rank] * 2 + 1]/*.Len*/, 3);\n }\n //Tracev((stderr, \"\\nbl tree: sent %ld\", s->bits_sent));\n\n send_tree(s, s.dyn_ltree, lcodes - 1); /* literal tree */\n //Tracev((stderr, \"\\nlit tree: sent %ld\", s->bits_sent));\n\n send_tree(s, s.dyn_dtree, dcodes - 1); /* distance tree */\n //Tracev((stderr, \"\\ndist tree: sent %ld\", s->bits_sent));\n};\n\n\n/* ===========================================================================\n * Check if the data type is TEXT or BINARY, using the following algorithm:\n * - TEXT if the two conditions below are satisfied:\n * a) There are no non-portable control characters belonging to the\n * \"black list\" (0..6, 14..25, 28..31).\n * b) There is at least one printable character belonging to the\n * \"white list\" (9 {TAB}, 10 {LF}, 13 {CR}, 32..255).\n * - BINARY otherwise.\n * - The following partially-portable control characters form a\n * \"gray list\" that is ignored in this detection algorithm:\n * (7 {BEL}, 8 {BS}, 11 {VT}, 12 {FF}, 26 {SUB}, 27 {ESC}).\n * IN assertion: the fields Freq of dyn_ltree are set.\n */\nconst detect_data_type = (s) => {\n /* black_mask is the bit mask of black-listed bytes\n * set bits 0..6, 14..25, and 28..31\n * 0xf3ffc07f = binary 11110011111111111100000001111111\n */\n let black_mask = 0xf3ffc07f;\n let n;\n\n /* Check for non-textual (\"black-listed\") bytes. */\n for (n = 0; n <= 31; n++, black_mask >>>= 1) {\n if ((black_mask & 1) && (s.dyn_ltree[n * 2]/*.Freq*/ !== 0)) {\n return Z_BINARY;\n }\n }\n\n /* Check for textual (\"white-listed\") bytes. */\n if (s.dyn_ltree[9 * 2]/*.Freq*/ !== 0 || s.dyn_ltree[10 * 2]/*.Freq*/ !== 0 ||\n s.dyn_ltree[13 * 2]/*.Freq*/ !== 0) {\n return Z_TEXT;\n }\n for (n = 32; n < LITERALS$1; n++) {\n if (s.dyn_ltree[n * 2]/*.Freq*/ !== 0) {\n return Z_TEXT;\n }\n }\n\n /* There are no \"black-listed\" or \"white-listed\" bytes:\n * this stream either is empty or has tolerated (\"gray-listed\") bytes only.\n */\n return Z_BINARY;\n};\n\n\nlet static_init_done = false;\n\n/* ===========================================================================\n * Initialize the tree data structures for a new zlib stream.\n */\nconst _tr_init$1 = (s) =>\n{\n\n if (!static_init_done) {\n tr_static_init();\n static_init_done = true;\n }\n\n s.l_desc = new TreeDesc(s.dyn_ltree, static_l_desc);\n s.d_desc = new TreeDesc(s.dyn_dtree, static_d_desc);\n s.bl_desc = new TreeDesc(s.bl_tree, static_bl_desc);\n\n s.bi_buf = 0;\n s.bi_valid = 0;\n\n /* Initialize the first block of the first file: */\n init_block(s);\n};\n\n\n/* ===========================================================================\n * Send a stored block\n */\nconst _tr_stored_block$1 = (s, buf, stored_len, last) =>\n//DeflateState *s;\n//charf *buf; /* input block */\n//ulg stored_len; /* length of input block */\n//int last; /* one if this is the last block for a file */\n{\n send_bits(s, (STORED_BLOCK << 1) + (last ? 1 : 0), 3); /* send block type */\n copy_block(s, buf, stored_len, true); /* with header */\n};\n\n\n/* ===========================================================================\n * Send one empty static block to give enough lookahead for inflate.\n * This takes 10 bits, of which 7 may remain in the bit buffer.\n */\nconst _tr_align$1 = (s) => {\n send_bits(s, STATIC_TREES << 1, 3);\n send_code(s, END_BLOCK, static_ltree);\n bi_flush(s);\n};\n\n\n/* ===========================================================================\n * Determine the best encoding for the current block: dynamic trees, static\n * trees or store, and output the encoded block to the zip file.\n */\nconst _tr_flush_block$1 = (s, buf, stored_len, last) =>\n//DeflateState *s;\n//charf *buf; /* input block, or NULL if too old */\n//ulg stored_len; /* length of input block */\n//int last; /* one if this is the last block for a file */\n{\n let opt_lenb, static_lenb; /* opt_len and static_len in bytes */\n let max_blindex = 0; /* index of last bit length code of non zero freq */\n\n /* Build the Huffman trees unless a stored block is forced */\n if (s.level > 0) {\n\n /* Check if the file is binary or text */\n if (s.strm.data_type === Z_UNKNOWN$1) {\n s.strm.data_type = detect_data_type(s);\n }\n\n /* Construct the literal and distance trees */\n build_tree(s, s.l_desc);\n // Tracev((stderr, \"\\nlit data: dyn %ld, stat %ld\", s->opt_len,\n // s->static_len));\n\n build_tree(s, s.d_desc);\n // Tracev((stderr, \"\\ndist data: dyn %ld, stat %ld\", s->opt_len,\n // s->static_len));\n /* At this point, opt_len and static_len are the total bit lengths of\n * the compressed block data, excluding the tree representations.\n */\n\n /* Build the bit length tree for the above two trees, and get the index\n * in bl_order of the last bit length code to send.\n */\n max_blindex = build_bl_tree(s);\n\n /* Determine the best encoding. Compute the block lengths in bytes. */\n opt_lenb = (s.opt_len + 3 + 7) >>> 3;\n static_lenb = (s.static_len + 3 + 7) >>> 3;\n\n // Tracev((stderr, \"\\nopt %lu(%lu) stat %lu(%lu) stored %lu lit %u \",\n // opt_lenb, s->opt_len, static_lenb, s->static_len, stored_len,\n // s->last_lit));\n\n if (static_lenb <= opt_lenb) { opt_lenb = static_lenb; }\n\n } else {\n // Assert(buf != (char*)0, \"lost buf\");\n opt_lenb = static_lenb = stored_len + 5; /* force a stored block */\n }\n\n if ((stored_len + 4 <= opt_lenb) && (buf !== -1)) {\n /* 4: two words for the lengths */\n\n /* The test buf != NULL is only necessary if LIT_BUFSIZE > WSIZE.\n * Otherwise we can't have processed more than WSIZE input bytes since\n * the last block flush, because compression would have been\n * successful. If LIT_BUFSIZE <= WSIZE, it is never too late to\n * transform a block into a stored block.\n */\n _tr_stored_block$1(s, buf, stored_len, last);\n\n } else if (s.strategy === Z_FIXED$1 || static_lenb === opt_lenb) {\n\n send_bits(s, (STATIC_TREES << 1) + (last ? 1 : 0), 3);\n compress_block(s, static_ltree, static_dtree);\n\n } else {\n send_bits(s, (DYN_TREES << 1) + (last ? 1 : 0), 3);\n send_all_trees(s, s.l_desc.max_code + 1, s.d_desc.max_code + 1, max_blindex + 1);\n compress_block(s, s.dyn_ltree, s.dyn_dtree);\n }\n // Assert (s->compressed_len == s->bits_sent, \"bad compressed size\");\n /* The above check is made mod 2^32, for files larger than 512 MB\n * and uLong implemented on 32 bits.\n */\n init_block(s);\n\n if (last) {\n bi_windup(s);\n }\n // Tracev((stderr,\"\\ncomprlen %lu(%lu) \", s->compressed_len>>3,\n // s->compressed_len-7*last));\n};\n\n/* ===========================================================================\n * Save the match info and tally the frequency counts. Return true if\n * the current block must be flushed.\n */\nconst _tr_tally$1 = (s, dist, lc) =>\n// deflate_state *s;\n// unsigned dist; /* distance of matched string */\n// unsigned lc; /* match length-MIN_MATCH or unmatched char (if dist==0) */\n{\n //let out_length, in_length, dcode;\n\n s.pending_buf[s.d_buf + s.last_lit * 2] = (dist >>> 8) & 0xff;\n s.pending_buf[s.d_buf + s.last_lit * 2 + 1] = dist & 0xff;\n\n s.pending_buf[s.l_buf + s.last_lit] = lc & 0xff;\n s.last_lit++;\n\n if (dist === 0) {\n /* lc is the unmatched char */\n s.dyn_ltree[lc * 2]/*.Freq*/++;\n } else {\n s.matches++;\n /* Here, lc is the match length - MIN_MATCH */\n dist--; /* dist = match distance - 1 */\n //Assert((ush)dist < (ush)MAX_DIST(s) &&\n // (ush)lc <= (ush)(MAX_MATCH-MIN_MATCH) &&\n // (ush)d_code(dist) < (ush)D_CODES, \"_tr_tally: bad match\");\n\n s.dyn_ltree[(_length_code[lc] + LITERALS$1 + 1) * 2]/*.Freq*/++;\n s.dyn_dtree[d_code(dist) * 2]/*.Freq*/++;\n }\n\n// (!) This block is disabled in zlib defaults,\n// don't enable it for binary compatibility\n\n//#ifdef TRUNCATE_BLOCK\n// /* Try to guess if it is profitable to stop the current block here */\n// if ((s.last_lit & 0x1fff) === 0 && s.level > 2) {\n// /* Compute an upper bound for the compressed length */\n// out_length = s.last_lit*8;\n// in_length = s.strstart - s.block_start;\n//\n// for (dcode = 0; dcode < D_CODES; dcode++) {\n// out_length += s.dyn_dtree[dcode*2]/*.Freq*/ * (5 + extra_dbits[dcode]);\n// }\n// out_length >>>= 3;\n// //Tracev((stderr,\"\\nlast_lit %u, in %ld, out ~%ld(%ld%%) \",\n// // s->last_lit, in_length, out_length,\n// // 100L - out_length*100L/in_length));\n// if (s.matches < (s.last_lit>>1)/*int /2*/ && out_length < (in_length>>1)/*int /2*/) {\n// return true;\n// }\n// }\n//#endif\n\n return (s.last_lit === s.lit_bufsize - 1);\n /* We avoid equality with lit_bufsize because of wraparound at 64K\n * on 16 bit machines and because stored blocks are restricted to\n * 64K-1 bytes.\n */\n};\n\nvar _tr_init_1 = _tr_init$1;\nvar _tr_stored_block_1 = _tr_stored_block$1;\nvar _tr_flush_block_1 = _tr_flush_block$1;\nvar _tr_tally_1 = _tr_tally$1;\nvar _tr_align_1 = _tr_align$1;\n\nvar trees = {\n\t_tr_init: _tr_init_1,\n\t_tr_stored_block: _tr_stored_block_1,\n\t_tr_flush_block: _tr_flush_block_1,\n\t_tr_tally: _tr_tally_1,\n\t_tr_align: _tr_align_1\n};\n\n// Note: adler32 takes 12% for level 0 and 2% for level 6.\n// It isn't worth it to make additional optimizations as in original.\n// Small size is preferable.\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nconst adler32 = (adler, buf, len, pos) => {\n let s1 = (adler & 0xffff) |0,\n s2 = ((adler >>> 16) & 0xffff) |0,\n n = 0;\n\n while (len !== 0) {\n // Set limit ~ twice less than 5552, to keep\n // s2 in 31-bits, because we force signed ints.\n // in other case %= will fail.\n n = len > 2000 ? 2000 : len;\n len -= n;\n\n do {\n s1 = (s1 + buf[pos++]) |0;\n s2 = (s2 + s1) |0;\n } while (--n);\n\n s1 %= 65521;\n s2 %= 65521;\n }\n\n return (s1 | (s2 << 16)) |0;\n};\n\n\nvar adler32_1 = adler32;\n\n// Note: we can't get significant speed boost here.\n// So write code to minimize size - no pregenerated tables\n// and array tools dependencies.\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n// Use ordinary array, since untyped makes no boost here\nconst makeTable = () => {\n let c, table = [];\n\n for (var n = 0; n < 256; n++) {\n c = n;\n for (var k = 0; k < 8; k++) {\n c = ((c & 1) ? (0xEDB88320 ^ (c >>> 1)) : (c >>> 1));\n }\n table[n] = c;\n }\n\n return table;\n};\n\n// Create table on load. Just 255 signed longs. Not a problem.\nconst crcTable = new Uint32Array(makeTable());\n\n\nconst crc32 = (crc, buf, len, pos) => {\n const t = crcTable;\n const end = pos + len;\n\n crc ^= -1;\n\n for (let i = pos; i < end; i++) {\n crc = (crc >>> 8) ^ t[(crc ^ buf[i]) & 0xFF];\n }\n\n return (crc ^ (-1)); // >>> 0;\n};\n\n\nvar crc32_1 = crc32;\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nvar messages = {\n 2: 'need dictionary', /* Z_NEED_DICT 2 */\n 1: 'stream end', /* Z_STREAM_END 1 */\n 0: '', /* Z_OK 0 */\n '-1': 'file error', /* Z_ERRNO (-1) */\n '-2': 'stream error', /* Z_STREAM_ERROR (-2) */\n '-3': 'data error', /* Z_DATA_ERROR (-3) */\n '-4': 'insufficient memory', /* Z_MEM_ERROR (-4) */\n '-5': 'buffer error', /* Z_BUF_ERROR (-5) */\n '-6': 'incompatible version' /* Z_VERSION_ERROR (-6) */\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nvar constants$2 = {\n\n /* Allowed flush values; see deflate() and inflate() below for details */\n Z_NO_FLUSH: 0,\n Z_PARTIAL_FLUSH: 1,\n Z_SYNC_FLUSH: 2,\n Z_FULL_FLUSH: 3,\n Z_FINISH: 4,\n Z_BLOCK: 5,\n Z_TREES: 6,\n\n /* Return codes for the compression/decompression functions. Negative values\n * are errors, positive values are used for special but normal events.\n */\n Z_OK: 0,\n Z_STREAM_END: 1,\n Z_NEED_DICT: 2,\n Z_ERRNO: -1,\n Z_STREAM_ERROR: -2,\n Z_DATA_ERROR: -3,\n Z_MEM_ERROR: -4,\n Z_BUF_ERROR: -5,\n //Z_VERSION_ERROR: -6,\n\n /* compression levels */\n Z_NO_COMPRESSION: 0,\n Z_BEST_SPEED: 1,\n Z_BEST_COMPRESSION: 9,\n Z_DEFAULT_COMPRESSION: -1,\n\n\n Z_FILTERED: 1,\n Z_HUFFMAN_ONLY: 2,\n Z_RLE: 3,\n Z_FIXED: 4,\n Z_DEFAULT_STRATEGY: 0,\n\n /* Possible values of the data_type field (though see inflate()) */\n Z_BINARY: 0,\n Z_TEXT: 1,\n //Z_ASCII: 1, // = Z_TEXT (deprecated)\n Z_UNKNOWN: 2,\n\n /* The deflate compression method */\n Z_DEFLATED: 8\n //Z_NULL: null // Use -1 or null inline, depending on var type\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nconst { _tr_init, _tr_stored_block, _tr_flush_block, _tr_tally, _tr_align } = trees;\n\n\n\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nconst {\n Z_NO_FLUSH: Z_NO_FLUSH$2, Z_PARTIAL_FLUSH, Z_FULL_FLUSH: Z_FULL_FLUSH$1, Z_FINISH: Z_FINISH$3, Z_BLOCK: Z_BLOCK$1,\n Z_OK: Z_OK$3, Z_STREAM_END: Z_STREAM_END$3, Z_STREAM_ERROR: Z_STREAM_ERROR$2, Z_DATA_ERROR: Z_DATA_ERROR$2, Z_BUF_ERROR: Z_BUF_ERROR$1,\n Z_DEFAULT_COMPRESSION: Z_DEFAULT_COMPRESSION$1,\n Z_FILTERED, Z_HUFFMAN_ONLY, Z_RLE, Z_FIXED, Z_DEFAULT_STRATEGY: Z_DEFAULT_STRATEGY$1,\n Z_UNKNOWN,\n Z_DEFLATED: Z_DEFLATED$2\n} = constants$2;\n\n/*============================================================================*/\n\n\nconst MAX_MEM_LEVEL = 9;\n/* Maximum value for memLevel in deflateInit2 */\nconst MAX_WBITS$1 = 15;\n/* 32K LZ77 window */\nconst DEF_MEM_LEVEL = 8;\n\n\nconst LENGTH_CODES = 29;\n/* number of length codes, not counting the special END_BLOCK code */\nconst LITERALS = 256;\n/* number of literal bytes 0..255 */\nconst L_CODES = LITERALS + 1 + LENGTH_CODES;\n/* number of Literal or Length codes, including the END_BLOCK code */\nconst D_CODES = 30;\n/* number of distance codes */\nconst BL_CODES = 19;\n/* number of codes used to transfer the bit lengths */\nconst HEAP_SIZE = 2 * L_CODES + 1;\n/* maximum heap size */\nconst MAX_BITS = 15;\n/* All codes must not exceed MAX_BITS bits */\n\nconst MIN_MATCH = 3;\nconst MAX_MATCH = 258;\nconst MIN_LOOKAHEAD = (MAX_MATCH + MIN_MATCH + 1);\n\nconst PRESET_DICT = 0x20;\n\nconst INIT_STATE = 42;\nconst EXTRA_STATE = 69;\nconst NAME_STATE = 73;\nconst COMMENT_STATE = 91;\nconst HCRC_STATE = 103;\nconst BUSY_STATE = 113;\nconst FINISH_STATE = 666;\n\nconst BS_NEED_MORE = 1; /* block not completed, need more input or more output */\nconst BS_BLOCK_DONE = 2; /* block flush performed */\nconst BS_FINISH_STARTED = 3; /* finish started, need only more output at next deflate */\nconst BS_FINISH_DONE = 4; /* finish done, accept no more input or output */\n\nconst OS_CODE = 0x03; // Unix :) . Don't detect, use this default.\n\nconst err = (strm, errorCode) => {\n strm.msg = messages[errorCode];\n return errorCode;\n};\n\nconst rank = (f) => {\n return ((f) << 1) - ((f) > 4 ? 9 : 0);\n};\n\nconst zero = (buf) => {\n let len = buf.length; while (--len >= 0) { buf[len] = 0; }\n};\n\n\n/* eslint-disable new-cap */\nlet HASH_ZLIB = (s, prev, data) => ((prev << s.hash_shift) ^ data) & s.hash_mask;\n// This hash causes less collisions, https://github.com/nodeca/pako/issues/135\n// But breaks binary compatibility\n//let HASH_FAST = (s, prev, data) => ((prev << 8) + (prev >> 8) + (data << 4)) & s.hash_mask;\nlet HASH = HASH_ZLIB;\n\n/* =========================================================================\n * Flush as much pending output as possible. All deflate() output goes\n * through this function so some applications may wish to modify it\n * to avoid allocating a large strm->output buffer and copying into it.\n * (See also read_buf()).\n */\nconst flush_pending = (strm) => {\n const s = strm.state;\n\n //_tr_flush_bits(s);\n let len = s.pending;\n if (len > strm.avail_out) {\n len = strm.avail_out;\n }\n if (len === 0) { return; }\n\n strm.output.set(s.pending_buf.subarray(s.pending_out, s.pending_out + len), strm.next_out);\n strm.next_out += len;\n s.pending_out += len;\n strm.total_out += len;\n strm.avail_out -= len;\n s.pending -= len;\n if (s.pending === 0) {\n s.pending_out = 0;\n }\n};\n\n\nconst flush_block_only = (s, last) => {\n _tr_flush_block(s, (s.block_start >= 0 ? s.block_start : -1), s.strstart - s.block_start, last);\n s.block_start = s.strstart;\n flush_pending(s.strm);\n};\n\n\nconst put_byte = (s, b) => {\n s.pending_buf[s.pending++] = b;\n};\n\n\n/* =========================================================================\n * Put a short in the pending buffer. The 16-bit value is put in MSB order.\n * IN assertion: the stream state is correct and there is enough room in\n * pending_buf.\n */\nconst putShortMSB = (s, b) => {\n\n // put_byte(s, (Byte)(b >> 8));\n// put_byte(s, (Byte)(b & 0xff));\n s.pending_buf[s.pending++] = (b >>> 8) & 0xff;\n s.pending_buf[s.pending++] = b & 0xff;\n};\n\n\n/* ===========================================================================\n * Read a new buffer from the current input stream, update the adler32\n * and total number of bytes read. All deflate() input goes through\n * this function so some applications may wish to modify it to avoid\n * allocating a large strm->input buffer and copying from it.\n * (See also flush_pending()).\n */\nconst read_buf = (strm, buf, start, size) => {\n\n let len = strm.avail_in;\n\n if (len > size) { len = size; }\n if (len === 0) { return 0; }\n\n strm.avail_in -= len;\n\n // zmemcpy(buf, strm->next_in, len);\n buf.set(strm.input.subarray(strm.next_in, strm.next_in + len), start);\n if (strm.state.wrap === 1) {\n strm.adler = adler32_1(strm.adler, buf, len, start);\n }\n\n else if (strm.state.wrap === 2) {\n strm.adler = crc32_1(strm.adler, buf, len, start);\n }\n\n strm.next_in += len;\n strm.total_in += len;\n\n return len;\n};\n\n\n/* ===========================================================================\n * Set match_start to the longest match starting at the given string and\n * return its length. Matches shorter or equal to prev_length are discarded,\n * in which case the result is equal to prev_length and match_start is\n * garbage.\n * IN assertions: cur_match is the head of the hash chain for the current\n * string (strstart) and its distance is <= MAX_DIST, and prev_length >= 1\n * OUT assertion: the match length is not greater than s->lookahead.\n */\nconst longest_match = (s, cur_match) => {\n\n let chain_length = s.max_chain_length; /* max hash chain length */\n let scan = s.strstart; /* current string */\n let match; /* matched string */\n let len; /* length of current match */\n let best_len = s.prev_length; /* best match length so far */\n let nice_match = s.nice_match; /* stop if match long enough */\n const limit = (s.strstart > (s.w_size - MIN_LOOKAHEAD)) ?\n s.strstart - (s.w_size - MIN_LOOKAHEAD) : 0/*NIL*/;\n\n const _win = s.window; // shortcut\n\n const wmask = s.w_mask;\n const prev = s.prev;\n\n /* Stop when cur_match becomes <= limit. To simplify the code,\n * we prevent matches with the string of window index 0.\n */\n\n const strend = s.strstart + MAX_MATCH;\n let scan_end1 = _win[scan + best_len - 1];\n let scan_end = _win[scan + best_len];\n\n /* The code is optimized for HASH_BITS >= 8 and MAX_MATCH-2 multiple of 16.\n * It is easy to get rid of this optimization if necessary.\n */\n // Assert(s->hash_bits >= 8 && MAX_MATCH == 258, \"Code too clever\");\n\n /* Do not waste too much time if we already have a good match: */\n if (s.prev_length >= s.good_match) {\n chain_length >>= 2;\n }\n /* Do not look for matches beyond the end of the input. This is necessary\n * to make deflate deterministic.\n */\n if (nice_match > s.lookahead) { nice_match = s.lookahead; }\n\n // Assert((ulg)s->strstart <= s->window_size-MIN_LOOKAHEAD, \"need lookahead\");\n\n do {\n // Assert(cur_match < s->strstart, \"no future\");\n match = cur_match;\n\n /* Skip to next match if the match length cannot increase\n * or if the match length is less than 2. Note that the checks below\n * for insufficient lookahead only occur occasionally for performance\n * reasons. Therefore uninitialized memory will be accessed, and\n * conditional jumps will be made that depend on those values.\n * However the length of the match is limited to the lookahead, so\n * the output of deflate is not affected by the uninitialized values.\n */\n\n if (_win[match + best_len] !== scan_end ||\n _win[match + best_len - 1] !== scan_end1 ||\n _win[match] !== _win[scan] ||\n _win[++match] !== _win[scan + 1]) {\n continue;\n }\n\n /* The check at best_len-1 can be removed because it will be made\n * again later. (This heuristic is not always a win.)\n * It is not necessary to compare scan[2] and match[2] since they\n * are always equal when the other bytes match, given that\n * the hash keys are equal and that HASH_BITS >= 8.\n */\n scan += 2;\n match++;\n // Assert(*scan == *match, \"match[2]?\");\n\n /* We check for insufficient lookahead only every 8th comparison;\n * the 256th check will be made at strstart+258.\n */\n do {\n /*jshint noempty:false*/\n } while (_win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n scan < strend);\n\n // Assert(scan <= s->window+(unsigned)(s->window_size-1), \"wild scan\");\n\n len = MAX_MATCH - (strend - scan);\n scan = strend - MAX_MATCH;\n\n if (len > best_len) {\n s.match_start = cur_match;\n best_len = len;\n if (len >= nice_match) {\n break;\n }\n scan_end1 = _win[scan + best_len - 1];\n scan_end = _win[scan + best_len];\n }\n } while ((cur_match = prev[cur_match & wmask]) > limit && --chain_length !== 0);\n\n if (best_len <= s.lookahead) {\n return best_len;\n }\n return s.lookahead;\n};\n\n\n/* ===========================================================================\n * Fill the window when the lookahead becomes insufficient.\n * Updates strstart and lookahead.\n *\n * IN assertion: lookahead < MIN_LOOKAHEAD\n * OUT assertions: strstart <= window_size-MIN_LOOKAHEAD\n * At least one byte has been read, or avail_in == 0; reads are\n * performed for at least two bytes (required for the zip translate_eol\n * option -- not supported here).\n */\nconst fill_window = (s) => {\n\n const _w_size = s.w_size;\n let p, n, m, more, str;\n\n //Assert(s->lookahead < MIN_LOOKAHEAD, \"already enough lookahead\");\n\n do {\n more = s.window_size - s.lookahead - s.strstart;\n\n // JS ints have 32 bit, block below not needed\n /* Deal with !@#$% 64K limit: */\n //if (sizeof(int) <= 2) {\n // if (more == 0 && s->strstart == 0 && s->lookahead == 0) {\n // more = wsize;\n //\n // } else if (more == (unsigned)(-1)) {\n // /* Very unlikely, but possible on 16 bit machine if\n // * strstart == 0 && lookahead == 1 (input done a byte at time)\n // */\n // more--;\n // }\n //}\n\n\n /* If the window is almost full and there is insufficient lookahead,\n * move the upper half to the lower one to make room in the upper half.\n */\n if (s.strstart >= _w_size + (_w_size - MIN_LOOKAHEAD)) {\n\n s.window.set(s.window.subarray(_w_size, _w_size + _w_size), 0);\n s.match_start -= _w_size;\n s.strstart -= _w_size;\n /* we now have strstart >= MAX_DIST */\n s.block_start -= _w_size;\n\n /* Slide the hash table (could be avoided with 32 bit values\n at the expense of memory usage). We slide even when level == 0\n to keep the hash table consistent if we switch back to level > 0\n later. (Using level 0 permanently is not an optimal usage of\n zlib, so we don't care about this pathological case.)\n */\n\n n = s.hash_size;\n p = n;\n\n do {\n m = s.head[--p];\n s.head[p] = (m >= _w_size ? m - _w_size : 0);\n } while (--n);\n\n n = _w_size;\n p = n;\n\n do {\n m = s.prev[--p];\n s.prev[p] = (m >= _w_size ? m - _w_size : 0);\n /* If n is not on any hash chain, prev[n] is garbage but\n * its value will never be used.\n */\n } while (--n);\n\n more += _w_size;\n }\n if (s.strm.avail_in === 0) {\n break;\n }\n\n /* If there was no sliding:\n * strstart <= WSIZE+MAX_DIST-1 && lookahead <= MIN_LOOKAHEAD - 1 &&\n * more == window_size - lookahead - strstart\n * => more >= window_size - (MIN_LOOKAHEAD-1 + WSIZE + MAX_DIST-1)\n * => more >= window_size - 2*WSIZE + 2\n * In the BIG_MEM or MMAP case (not yet supported),\n * window_size == input_size + MIN_LOOKAHEAD &&\n * strstart + s->lookahead <= input_size => more >= MIN_LOOKAHEAD.\n * Otherwise, window_size == 2*WSIZE so more >= 2.\n * If there was sliding, more >= WSIZE. So in all cases, more >= 2.\n */\n //Assert(more >= 2, \"more < 2\");\n n = read_buf(s.strm, s.window, s.strstart + s.lookahead, more);\n s.lookahead += n;\n\n /* Initialize the hash value now that we have some input: */\n if (s.lookahead + s.insert >= MIN_MATCH) {\n str = s.strstart - s.insert;\n s.ins_h = s.window[str];\n\n /* UPDATE_HASH(s, s->ins_h, s->window[str + 1]); */\n s.ins_h = HASH(s, s.ins_h, s.window[str + 1]);\n//#if MIN_MATCH != 3\n// Call update_hash() MIN_MATCH-3 more times\n//#endif\n while (s.insert) {\n /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */\n s.ins_h = HASH(s, s.ins_h, s.window[str + MIN_MATCH - 1]);\n\n s.prev[str & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = str;\n str++;\n s.insert--;\n if (s.lookahead + s.insert < MIN_MATCH) {\n break;\n }\n }\n }\n /* If the whole input has less than MIN_MATCH bytes, ins_h is garbage,\n * but this is not important since only literal bytes will be emitted.\n */\n\n } while (s.lookahead < MIN_LOOKAHEAD && s.strm.avail_in !== 0);\n\n /* If the WIN_INIT bytes after the end of the current data have never been\n * written, then zero those bytes in order to avoid memory check reports of\n * the use of uninitialized (or uninitialised as Julian writes) bytes by\n * the longest match routines. Update the high water mark for the next\n * time through here. WIN_INIT is set to MAX_MATCH since the longest match\n * routines allow scanning to strstart + MAX_MATCH, ignoring lookahead.\n */\n// if (s.high_water < s.window_size) {\n// const curr = s.strstart + s.lookahead;\n// let init = 0;\n//\n// if (s.high_water < curr) {\n// /* Previous high water mark below current data -- zero WIN_INIT\n// * bytes or up to end of window, whichever is less.\n// */\n// init = s.window_size - curr;\n// if (init > WIN_INIT)\n// init = WIN_INIT;\n// zmemzero(s->window + curr, (unsigned)init);\n// s->high_water = curr + init;\n// }\n// else if (s->high_water < (ulg)curr + WIN_INIT) {\n// /* High water mark at or above current data, but below current data\n// * plus WIN_INIT -- zero out to current data plus WIN_INIT, or up\n// * to end of window, whichever is less.\n// */\n// init = (ulg)curr + WIN_INIT - s->high_water;\n// if (init > s->window_size - s->high_water)\n// init = s->window_size - s->high_water;\n// zmemzero(s->window + s->high_water, (unsigned)init);\n// s->high_water += init;\n// }\n// }\n//\n// Assert((ulg)s->strstart <= s->window_size - MIN_LOOKAHEAD,\n// \"not enough room for search\");\n};\n\n/* ===========================================================================\n * Copy without compression as much as possible from the input stream, return\n * the current block state.\n * This function does not insert new strings in the dictionary since\n * uncompressible data is probably not useful. This function is used\n * only for the level=0 compression option.\n * NOTE: this function should be optimized to avoid extra copying from\n * window to pending_buf.\n */\nconst deflate_stored = (s, flush) => {\n\n /* Stored blocks are limited to 0xffff bytes, pending_buf is limited\n * to pending_buf_size, and each stored block has a 5 byte header:\n */\n let max_block_size = 0xffff;\n\n if (max_block_size > s.pending_buf_size - 5) {\n max_block_size = s.pending_buf_size - 5;\n }\n\n /* Copy as much as possible from input to output: */\n for (;;) {\n /* Fill the window as much as possible: */\n if (s.lookahead <= 1) {\n\n //Assert(s->strstart < s->w_size+MAX_DIST(s) ||\n // s->block_start >= (long)s->w_size, \"slide too late\");\n// if (!(s.strstart < s.w_size + (s.w_size - MIN_LOOKAHEAD) ||\n// s.block_start >= s.w_size)) {\n// throw new Error(\"slide too late\");\n// }\n\n fill_window(s);\n if (s.lookahead === 0 && flush === Z_NO_FLUSH$2) {\n return BS_NEED_MORE;\n }\n\n if (s.lookahead === 0) {\n break;\n }\n /* flush the current block */\n }\n //Assert(s->block_start >= 0L, \"block gone\");\n// if (s.block_start < 0) throw new Error(\"block gone\");\n\n s.strstart += s.lookahead;\n s.lookahead = 0;\n\n /* Emit a stored block if pending_buf will be full: */\n const max_start = s.block_start + max_block_size;\n\n if (s.strstart === 0 || s.strstart >= max_start) {\n /* strstart == 0 is possible when wraparound on 16-bit machine */\n s.lookahead = s.strstart - max_start;\n s.strstart = max_start;\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n\n\n }\n /* Flush if we may have to slide, otherwise block_start may become\n * negative and the data will be gone:\n */\n if (s.strstart - s.block_start >= (s.w_size - MIN_LOOKAHEAD)) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n\n s.insert = 0;\n\n if (flush === Z_FINISH$3) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n\n if (s.strstart > s.block_start) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n return BS_NEED_MORE;\n};\n\n/* ===========================================================================\n * Compress as much as possible from the input stream, return the current\n * block state.\n * This function does not perform lazy evaluation of matches and inserts\n * new strings in the dictionary only for unmatched strings or for short\n * matches. It is used only for the fast compression options.\n */\nconst deflate_fast = (s, flush) => {\n\n let hash_head; /* head of the hash chain */\n let bflush; /* set if current block must be flushed */\n\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the next match, plus MIN_MATCH bytes to insert the\n * string following the next match.\n */\n if (s.lookahead < MIN_LOOKAHEAD) {\n fill_window(s);\n if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH$2) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) {\n break; /* flush the current block */\n }\n }\n\n /* Insert the string window[strstart .. strstart+2] in the\n * dictionary, and set hash_head to the head of the hash chain:\n */\n hash_head = 0/*NIL*/;\n if (s.lookahead >= MIN_MATCH) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n\n /* Find the longest match, discarding those <= prev_length.\n * At this point we have always match_length < MIN_MATCH\n */\n if (hash_head !== 0/*NIL*/ && ((s.strstart - hash_head) <= (s.w_size - MIN_LOOKAHEAD))) {\n /* To simplify the code, we prevent matches with the string\n * of window index 0 (in particular we have to avoid a match\n * of the string with itself at the start of the input file).\n */\n s.match_length = longest_match(s, hash_head);\n /* longest_match() sets match_start */\n }\n if (s.match_length >= MIN_MATCH) {\n // check_match(s, s.strstart, s.match_start, s.match_length); // for debug only\n\n /*** _tr_tally_dist(s, s.strstart - s.match_start,\n s.match_length - MIN_MATCH, bflush); ***/\n bflush = _tr_tally(s, s.strstart - s.match_start, s.match_length - MIN_MATCH);\n\n s.lookahead -= s.match_length;\n\n /* Insert new strings in the hash table only if the match length\n * is not too large. This saves time but degrades compression.\n */\n if (s.match_length <= s.max_lazy_match/*max_insert_length*/ && s.lookahead >= MIN_MATCH) {\n s.match_length--; /* string at strstart already in table */\n do {\n s.strstart++;\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n /* strstart never exceeds WSIZE-MAX_MATCH, so there are\n * always MIN_MATCH bytes ahead.\n */\n } while (--s.match_length !== 0);\n s.strstart++;\n } else\n {\n s.strstart += s.match_length;\n s.match_length = 0;\n s.ins_h = s.window[s.strstart];\n /* UPDATE_HASH(s, s.ins_h, s.window[s.strstart+1]); */\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + 1]);\n\n//#if MIN_MATCH != 3\n// Call UPDATE_HASH() MIN_MATCH-3 more times\n//#endif\n /* If lookahead < MIN_MATCH, ins_h is garbage, but it does not\n * matter since it will be recomputed at next deflate call.\n */\n }\n } else {\n /* No match, output a literal byte */\n //Tracevv((stderr,\"%c\", s.window[s.strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart]);\n\n s.lookahead--;\n s.strstart++;\n }\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = ((s.strstart < (MIN_MATCH - 1)) ? s.strstart : MIN_MATCH - 1);\n if (flush === Z_FINISH$3) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n};\n\n/* ===========================================================================\n * Same as above, but achieves better compression. We use a lazy\n * evaluation for matches: a match is finally adopted only if there is\n * no better match at the next window position.\n */\nconst deflate_slow = (s, flush) => {\n\n let hash_head; /* head of hash chain */\n let bflush; /* set if current block must be flushed */\n\n let max_insert;\n\n /* Process the input block. */\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the next match, plus MIN_MATCH bytes to insert the\n * string following the next match.\n */\n if (s.lookahead < MIN_LOOKAHEAD) {\n fill_window(s);\n if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH$2) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) { break; } /* flush the current block */\n }\n\n /* Insert the string window[strstart .. strstart+2] in the\n * dictionary, and set hash_head to the head of the hash chain:\n */\n hash_head = 0/*NIL*/;\n if (s.lookahead >= MIN_MATCH) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n\n /* Find the longest match, discarding those <= prev_length.\n */\n s.prev_length = s.match_length;\n s.prev_match = s.match_start;\n s.match_length = MIN_MATCH - 1;\n\n if (hash_head !== 0/*NIL*/ && s.prev_length < s.max_lazy_match &&\n s.strstart - hash_head <= (s.w_size - MIN_LOOKAHEAD)/*MAX_DIST(s)*/) {\n /* To simplify the code, we prevent matches with the string\n * of window index 0 (in particular we have to avoid a match\n * of the string with itself at the start of the input file).\n */\n s.match_length = longest_match(s, hash_head);\n /* longest_match() sets match_start */\n\n if (s.match_length <= 5 &&\n (s.strategy === Z_FILTERED || (s.match_length === MIN_MATCH && s.strstart - s.match_start > 4096/*TOO_FAR*/))) {\n\n /* If prev_match is also MIN_MATCH, match_start is garbage\n * but we will ignore the current match anyway.\n */\n s.match_length = MIN_MATCH - 1;\n }\n }\n /* If there was a match at the previous step and the current\n * match is not better, output the previous match:\n */\n if (s.prev_length >= MIN_MATCH && s.match_length <= s.prev_length) {\n max_insert = s.strstart + s.lookahead - MIN_MATCH;\n /* Do not insert strings in hash table beyond this. */\n\n //check_match(s, s.strstart-1, s.prev_match, s.prev_length);\n\n /***_tr_tally_dist(s, s.strstart - 1 - s.prev_match,\n s.prev_length - MIN_MATCH, bflush);***/\n bflush = _tr_tally(s, s.strstart - 1 - s.prev_match, s.prev_length - MIN_MATCH);\n /* Insert in hash table all strings up to the end of the match.\n * strstart-1 and strstart are already inserted. If there is not\n * enough lookahead, the last two strings are not inserted in\n * the hash table.\n */\n s.lookahead -= s.prev_length - 1;\n s.prev_length -= 2;\n do {\n if (++s.strstart <= max_insert) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n } while (--s.prev_length !== 0);\n s.match_available = 0;\n s.match_length = MIN_MATCH - 1;\n s.strstart++;\n\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n } else if (s.match_available) {\n /* If there was no match at the previous position, output a\n * single literal. If there was a match but the current match\n * is longer, truncate the previous match to a single literal.\n */\n //Tracevv((stderr,\"%c\", s->window[s->strstart-1]));\n /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart - 1]);\n\n if (bflush) {\n /*** FLUSH_BLOCK_ONLY(s, 0) ***/\n flush_block_only(s, false);\n /***/\n }\n s.strstart++;\n s.lookahead--;\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n } else {\n /* There is no previous match to compare with, wait for\n * the next step to decide.\n */\n s.match_available = 1;\n s.strstart++;\n s.lookahead--;\n }\n }\n //Assert (flush != Z_NO_FLUSH, \"no flush?\");\n if (s.match_available) {\n //Tracevv((stderr,\"%c\", s->window[s->strstart-1]));\n /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart - 1]);\n\n s.match_available = 0;\n }\n s.insert = s.strstart < MIN_MATCH - 1 ? s.strstart : MIN_MATCH - 1;\n if (flush === Z_FINISH$3) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n return BS_BLOCK_DONE;\n};\n\n\n/* ===========================================================================\n * For Z_RLE, simply look for runs of bytes, generate matches only of distance\n * one. Do not maintain a hash table. (It will be regenerated if this run of\n * deflate switches away from Z_RLE.)\n */\nconst deflate_rle = (s, flush) => {\n\n let bflush; /* set if current block must be flushed */\n let prev; /* byte at distance one to match */\n let scan, strend; /* scan goes up to strend for length of run */\n\n const _win = s.window;\n\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the longest run, plus one for the unrolled loop.\n */\n if (s.lookahead <= MAX_MATCH) {\n fill_window(s);\n if (s.lookahead <= MAX_MATCH && flush === Z_NO_FLUSH$2) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) { break; } /* flush the current block */\n }\n\n /* See how many times the previous byte repeats */\n s.match_length = 0;\n if (s.lookahead >= MIN_MATCH && s.strstart > 0) {\n scan = s.strstart - 1;\n prev = _win[scan];\n if (prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan]) {\n strend = s.strstart + MAX_MATCH;\n do {\n /*jshint noempty:false*/\n } while (prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n scan < strend);\n s.match_length = MAX_MATCH - (strend - scan);\n if (s.match_length > s.lookahead) {\n s.match_length = s.lookahead;\n }\n }\n //Assert(scan <= s->window+(uInt)(s->window_size-1), \"wild scan\");\n }\n\n /* Emit match if have run of MIN_MATCH or longer, else emit literal */\n if (s.match_length >= MIN_MATCH) {\n //check_match(s, s.strstart, s.strstart - 1, s.match_length);\n\n /*** _tr_tally_dist(s, 1, s.match_length - MIN_MATCH, bflush); ***/\n bflush = _tr_tally(s, 1, s.match_length - MIN_MATCH);\n\n s.lookahead -= s.match_length;\n s.strstart += s.match_length;\n s.match_length = 0;\n } else {\n /* No match, output a literal byte */\n //Tracevv((stderr,\"%c\", s->window[s->strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart]);\n\n s.lookahead--;\n s.strstart++;\n }\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = 0;\n if (flush === Z_FINISH$3) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n};\n\n/* ===========================================================================\n * For Z_HUFFMAN_ONLY, do not look for matches. Do not maintain a hash table.\n * (It will be regenerated if this run of deflate switches away from Huffman.)\n */\nconst deflate_huff = (s, flush) => {\n\n let bflush; /* set if current block must be flushed */\n\n for (;;) {\n /* Make sure that we have a literal to write. */\n if (s.lookahead === 0) {\n fill_window(s);\n if (s.lookahead === 0) {\n if (flush === Z_NO_FLUSH$2) {\n return BS_NEED_MORE;\n }\n break; /* flush the current block */\n }\n }\n\n /* Output a literal byte */\n s.match_length = 0;\n //Tracevv((stderr,\"%c\", s->window[s->strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart]);\n s.lookahead--;\n s.strstart++;\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = 0;\n if (flush === Z_FINISH$3) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n};\n\n/* Values for max_lazy_match, good_match and max_chain_length, depending on\n * the desired pack level (0..9). The values given below have been tuned to\n * exclude worst case performance for pathological files. Better values may be\n * found for specific files.\n */\nfunction Config(good_length, max_lazy, nice_length, max_chain, func) {\n\n this.good_length = good_length;\n this.max_lazy = max_lazy;\n this.nice_length = nice_length;\n this.max_chain = max_chain;\n this.func = func;\n}\n\nconst configuration_table = [\n /* good lazy nice chain */\n new Config(0, 0, 0, 0, deflate_stored), /* 0 store only */\n new Config(4, 4, 8, 4, deflate_fast), /* 1 max speed, no lazy matches */\n new Config(4, 5, 16, 8, deflate_fast), /* 2 */\n new Config(4, 6, 32, 32, deflate_fast), /* 3 */\n\n new Config(4, 4, 16, 16, deflate_slow), /* 4 lazy matches */\n new Config(8, 16, 32, 32, deflate_slow), /* 5 */\n new Config(8, 16, 128, 128, deflate_slow), /* 6 */\n new Config(8, 32, 128, 256, deflate_slow), /* 7 */\n new Config(32, 128, 258, 1024, deflate_slow), /* 8 */\n new Config(32, 258, 258, 4096, deflate_slow) /* 9 max compression */\n];\n\n\n/* ===========================================================================\n * Initialize the \"longest match\" routines for a new zlib stream\n */\nconst lm_init = (s) => {\n\n s.window_size = 2 * s.w_size;\n\n /*** CLEAR_HASH(s); ***/\n zero(s.head); // Fill with NIL (= 0);\n\n /* Set the default configuration parameters:\n */\n s.max_lazy_match = configuration_table[s.level].max_lazy;\n s.good_match = configuration_table[s.level].good_length;\n s.nice_match = configuration_table[s.level].nice_length;\n s.max_chain_length = configuration_table[s.level].max_chain;\n\n s.strstart = 0;\n s.block_start = 0;\n s.lookahead = 0;\n s.insert = 0;\n s.match_length = s.prev_length = MIN_MATCH - 1;\n s.match_available = 0;\n s.ins_h = 0;\n};\n\n\nfunction DeflateState() {\n this.strm = null; /* pointer back to this zlib stream */\n this.status = 0; /* as the name implies */\n this.pending_buf = null; /* output still pending */\n this.pending_buf_size = 0; /* size of pending_buf */\n this.pending_out = 0; /* next pending byte to output to the stream */\n this.pending = 0; /* nb of bytes in the pending buffer */\n this.wrap = 0; /* bit 0 true for zlib, bit 1 true for gzip */\n this.gzhead = null; /* gzip header information to write */\n this.gzindex = 0; /* where in extra, name, or comment */\n this.method = Z_DEFLATED$2; /* can only be DEFLATED */\n this.last_flush = -1; /* value of flush param for previous deflate call */\n\n this.w_size = 0; /* LZ77 window size (32K by default) */\n this.w_bits = 0; /* log2(w_size) (8..16) */\n this.w_mask = 0; /* w_size - 1 */\n\n this.window = null;\n /* Sliding window. Input bytes are read into the second half of the window,\n * and move to the first half later to keep a dictionary of at least wSize\n * bytes. With this organization, matches are limited to a distance of\n * wSize-MAX_MATCH bytes, but this ensures that IO is always\n * performed with a length multiple of the block size.\n */\n\n this.window_size = 0;\n /* Actual size of window: 2*wSize, except when the user input buffer\n * is directly used as sliding window.\n */\n\n this.prev = null;\n /* Link to older string with same hash index. To limit the size of this\n * array to 64K, this link is maintained only for the last 32K strings.\n * An index in this array is thus a window index modulo 32K.\n */\n\n this.head = null; /* Heads of the hash chains or NIL. */\n\n this.ins_h = 0; /* hash index of string to be inserted */\n this.hash_size = 0; /* number of elements in hash table */\n this.hash_bits = 0; /* log2(hash_size) */\n this.hash_mask = 0; /* hash_size-1 */\n\n this.hash_shift = 0;\n /* Number of bits by which ins_h must be shifted at each input\n * step. It must be such that after MIN_MATCH steps, the oldest\n * byte no longer takes part in the hash key, that is:\n * hash_shift * MIN_MATCH >= hash_bits\n */\n\n this.block_start = 0;\n /* Window position at the beginning of the current output block. Gets\n * negative when the window is moved backwards.\n */\n\n this.match_length = 0; /* length of best match */\n this.prev_match = 0; /* previous match */\n this.match_available = 0; /* set if previous match exists */\n this.strstart = 0; /* start of string to insert */\n this.match_start = 0; /* start of matching string */\n this.lookahead = 0; /* number of valid bytes ahead in window */\n\n this.prev_length = 0;\n /* Length of the best match at previous step. Matches not greater than this\n * are discarded. This is used in the lazy match evaluation.\n */\n\n this.max_chain_length = 0;\n /* To speed up deflation, hash chains are never searched beyond this\n * length. A higher limit improves compression ratio but degrades the\n * speed.\n */\n\n this.max_lazy_match = 0;\n /* Attempt to find a better match only when the current match is strictly\n * smaller than this value. This mechanism is used only for compression\n * levels >= 4.\n */\n // That's alias to max_lazy_match, don't use directly\n //this.max_insert_length = 0;\n /* Insert new strings in the hash table only if the match length is not\n * greater than this length. This saves time but degrades compression.\n * max_insert_length is used only for compression levels <= 3.\n */\n\n this.level = 0; /* compression level (1..9) */\n this.strategy = 0; /* favor or force Huffman coding*/\n\n this.good_match = 0;\n /* Use a faster search when the previous match is longer than this */\n\n this.nice_match = 0; /* Stop searching when current match exceeds this */\n\n /* used by trees.c: */\n\n /* Didn't use ct_data typedef below to suppress compiler warning */\n\n // struct ct_data_s dyn_ltree[HEAP_SIZE]; /* literal and length tree */\n // struct ct_data_s dyn_dtree[2*D_CODES+1]; /* distance tree */\n // struct ct_data_s bl_tree[2*BL_CODES+1]; /* Huffman tree for bit lengths */\n\n // Use flat array of DOUBLE size, with interleaved fata,\n // because JS does not support effective\n this.dyn_ltree = new Uint16Array(HEAP_SIZE * 2);\n this.dyn_dtree = new Uint16Array((2 * D_CODES + 1) * 2);\n this.bl_tree = new Uint16Array((2 * BL_CODES + 1) * 2);\n zero(this.dyn_ltree);\n zero(this.dyn_dtree);\n zero(this.bl_tree);\n\n this.l_desc = null; /* desc. for literal tree */\n this.d_desc = null; /* desc. for distance tree */\n this.bl_desc = null; /* desc. for bit length tree */\n\n //ush bl_count[MAX_BITS+1];\n this.bl_count = new Uint16Array(MAX_BITS + 1);\n /* number of codes at each bit length for an optimal tree */\n\n //int heap[2*L_CODES+1]; /* heap used to build the Huffman trees */\n this.heap = new Uint16Array(2 * L_CODES + 1); /* heap used to build the Huffman trees */\n zero(this.heap);\n\n this.heap_len = 0; /* number of elements in the heap */\n this.heap_max = 0; /* element of largest frequency */\n /* The sons of heap[n] are heap[2*n] and heap[2*n+1]. heap[0] is not used.\n * The same heap array is used to build all trees.\n */\n\n this.depth = new Uint16Array(2 * L_CODES + 1); //uch depth[2*L_CODES+1];\n zero(this.depth);\n /* Depth of each subtree used as tie breaker for trees of equal frequency\n */\n\n this.l_buf = 0; /* buffer index for literals or lengths */\n\n this.lit_bufsize = 0;\n /* Size of match buffer for literals/lengths. There are 4 reasons for\n * limiting lit_bufsize to 64K:\n * - frequencies can be kept in 16 bit counters\n * - if compression is not successful for the first block, all input\n * data is still in the window so we can still emit a stored block even\n * when input comes from standard input. (This can also be done for\n * all blocks if lit_bufsize is not greater than 32K.)\n * - if compression is not successful for a file smaller than 64K, we can\n * even emit a stored file instead of a stored block (saving 5 bytes).\n * This is applicable only for zip (not gzip or zlib).\n * - creating new Huffman trees less frequently may not provide fast\n * adaptation to changes in the input data statistics. (Take for\n * example a binary file with poorly compressible code followed by\n * a highly compressible string table.) Smaller buffer sizes give\n * fast adaptation but have of course the overhead of transmitting\n * trees more frequently.\n * - I can't count above 4\n */\n\n this.last_lit = 0; /* running index in l_buf */\n\n this.d_buf = 0;\n /* Buffer index for distances. To simplify the code, d_buf and l_buf have\n * the same number of elements. To use different lengths, an extra flag\n * array would be necessary.\n */\n\n this.opt_len = 0; /* bit length of current block with optimal trees */\n this.static_len = 0; /* bit length of current block with static trees */\n this.matches = 0; /* number of string matches in current block */\n this.insert = 0; /* bytes at end of window left to insert */\n\n\n this.bi_buf = 0;\n /* Output buffer. bits are inserted starting at the bottom (least\n * significant bits).\n */\n this.bi_valid = 0;\n /* Number of valid bits in bi_buf. All bits above the last valid bit\n * are always zero.\n */\n\n // Used for window memory init. We safely ignore it for JS. That makes\n // sense only for pointers and memory check tools.\n //this.high_water = 0;\n /* High water mark offset in window for initialized bytes -- bytes above\n * this are set to zero in order to avoid memory check warnings when\n * longest match routines access bytes past the input. This is then\n * updated to the new high water mark.\n */\n}\n\n\nconst deflateResetKeep = (strm) => {\n\n if (!strm || !strm.state) {\n return err(strm, Z_STREAM_ERROR$2);\n }\n\n strm.total_in = strm.total_out = 0;\n strm.data_type = Z_UNKNOWN;\n\n const s = strm.state;\n s.pending = 0;\n s.pending_out = 0;\n\n if (s.wrap < 0) {\n s.wrap = -s.wrap;\n /* was made negative by deflate(..., Z_FINISH); */\n }\n s.status = (s.wrap ? INIT_STATE : BUSY_STATE);\n strm.adler = (s.wrap === 2) ?\n 0 // crc32(0, Z_NULL, 0)\n :\n 1; // adler32(0, Z_NULL, 0)\n s.last_flush = Z_NO_FLUSH$2;\n _tr_init(s);\n return Z_OK$3;\n};\n\n\nconst deflateReset = (strm) => {\n\n const ret = deflateResetKeep(strm);\n if (ret === Z_OK$3) {\n lm_init(strm.state);\n }\n return ret;\n};\n\n\nconst deflateSetHeader = (strm, head) => {\n\n if (!strm || !strm.state) { return Z_STREAM_ERROR$2; }\n if (strm.state.wrap !== 2) { return Z_STREAM_ERROR$2; }\n strm.state.gzhead = head;\n return Z_OK$3;\n};\n\n\nconst deflateInit2 = (strm, level, method, windowBits, memLevel, strategy) => {\n\n if (!strm) { // === Z_NULL\n return Z_STREAM_ERROR$2;\n }\n let wrap = 1;\n\n if (level === Z_DEFAULT_COMPRESSION$1) {\n level = 6;\n }\n\n if (windowBits < 0) { /* suppress zlib wrapper */\n wrap = 0;\n windowBits = -windowBits;\n }\n\n else if (windowBits > 15) {\n wrap = 2; /* write gzip wrapper instead */\n windowBits -= 16;\n }\n\n\n if (memLevel < 1 || memLevel > MAX_MEM_LEVEL || method !== Z_DEFLATED$2 ||\n windowBits < 8 || windowBits > 15 || level < 0 || level > 9 ||\n strategy < 0 || strategy > Z_FIXED) {\n return err(strm, Z_STREAM_ERROR$2);\n }\n\n\n if (windowBits === 8) {\n windowBits = 9;\n }\n /* until 256-byte window bug fixed */\n\n const s = new DeflateState();\n\n strm.state = s;\n s.strm = strm;\n\n s.wrap = wrap;\n s.gzhead = null;\n s.w_bits = windowBits;\n s.w_size = 1 << s.w_bits;\n s.w_mask = s.w_size - 1;\n\n s.hash_bits = memLevel + 7;\n s.hash_size = 1 << s.hash_bits;\n s.hash_mask = s.hash_size - 1;\n s.hash_shift = ~~((s.hash_bits + MIN_MATCH - 1) / MIN_MATCH);\n\n s.window = new Uint8Array(s.w_size * 2);\n s.head = new Uint16Array(s.hash_size);\n s.prev = new Uint16Array(s.w_size);\n\n // Don't need mem init magic for JS.\n //s.high_water = 0; /* nothing written to s->window yet */\n\n s.lit_bufsize = 1 << (memLevel + 6); /* 16K elements by default */\n\n s.pending_buf_size = s.lit_bufsize * 4;\n\n //overlay = (ushf *) ZALLOC(strm, s->lit_bufsize, sizeof(ush)+2);\n //s->pending_buf = (uchf *) overlay;\n s.pending_buf = new Uint8Array(s.pending_buf_size);\n\n // It is offset from `s.pending_buf` (size is `s.lit_bufsize * 2`)\n //s->d_buf = overlay + s->lit_bufsize/sizeof(ush);\n s.d_buf = 1 * s.lit_bufsize;\n\n //s->l_buf = s->pending_buf + (1+sizeof(ush))*s->lit_bufsize;\n s.l_buf = (1 + 2) * s.lit_bufsize;\n\n s.level = level;\n s.strategy = strategy;\n s.method = method;\n\n return deflateReset(strm);\n};\n\nconst deflateInit = (strm, level) => {\n\n return deflateInit2(strm, level, Z_DEFLATED$2, MAX_WBITS$1, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY$1);\n};\n\n\nconst deflate$2 = (strm, flush) => {\n\n let beg, val; // for gzip header write only\n\n if (!strm || !strm.state ||\n flush > Z_BLOCK$1 || flush < 0) {\n return strm ? err(strm, Z_STREAM_ERROR$2) : Z_STREAM_ERROR$2;\n }\n\n const s = strm.state;\n\n if (!strm.output ||\n (!strm.input && strm.avail_in !== 0) ||\n (s.status === FINISH_STATE && flush !== Z_FINISH$3)) {\n return err(strm, (strm.avail_out === 0) ? Z_BUF_ERROR$1 : Z_STREAM_ERROR$2);\n }\n\n s.strm = strm; /* just in case */\n const old_flush = s.last_flush;\n s.last_flush = flush;\n\n /* Write the header */\n if (s.status === INIT_STATE) {\n\n if (s.wrap === 2) { // GZIP header\n strm.adler = 0; //crc32(0L, Z_NULL, 0);\n put_byte(s, 31);\n put_byte(s, 139);\n put_byte(s, 8);\n if (!s.gzhead) { // s->gzhead == Z_NULL\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, s.level === 9 ? 2 :\n (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ?\n 4 : 0));\n put_byte(s, OS_CODE);\n s.status = BUSY_STATE;\n }\n else {\n put_byte(s, (s.gzhead.text ? 1 : 0) +\n (s.gzhead.hcrc ? 2 : 0) +\n (!s.gzhead.extra ? 0 : 4) +\n (!s.gzhead.name ? 0 : 8) +\n (!s.gzhead.comment ? 0 : 16)\n );\n put_byte(s, s.gzhead.time & 0xff);\n put_byte(s, (s.gzhead.time >> 8) & 0xff);\n put_byte(s, (s.gzhead.time >> 16) & 0xff);\n put_byte(s, (s.gzhead.time >> 24) & 0xff);\n put_byte(s, s.level === 9 ? 2 :\n (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ?\n 4 : 0));\n put_byte(s, s.gzhead.os & 0xff);\n if (s.gzhead.extra && s.gzhead.extra.length) {\n put_byte(s, s.gzhead.extra.length & 0xff);\n put_byte(s, (s.gzhead.extra.length >> 8) & 0xff);\n }\n if (s.gzhead.hcrc) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending, 0);\n }\n s.gzindex = 0;\n s.status = EXTRA_STATE;\n }\n }\n else // DEFLATE header\n {\n let header = (Z_DEFLATED$2 + ((s.w_bits - 8) << 4)) << 8;\n let level_flags = -1;\n\n if (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2) {\n level_flags = 0;\n } else if (s.level < 6) {\n level_flags = 1;\n } else if (s.level === 6) {\n level_flags = 2;\n } else {\n level_flags = 3;\n }\n header |= (level_flags << 6);\n if (s.strstart !== 0) { header |= PRESET_DICT; }\n header += 31 - (header % 31);\n\n s.status = BUSY_STATE;\n putShortMSB(s, header);\n\n /* Save the adler32 of the preset dictionary: */\n if (s.strstart !== 0) {\n putShortMSB(s, strm.adler >>> 16);\n putShortMSB(s, strm.adler & 0xffff);\n }\n strm.adler = 1; // adler32(0L, Z_NULL, 0);\n }\n }\n\n//#ifdef GZIP\n if (s.status === EXTRA_STATE) {\n if (s.gzhead.extra/* != Z_NULL*/) {\n beg = s.pending; /* start of bytes to update crc */\n\n while (s.gzindex < (s.gzhead.extra.length & 0xffff)) {\n if (s.pending === s.pending_buf_size) {\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n flush_pending(strm);\n beg = s.pending;\n if (s.pending === s.pending_buf_size) {\n break;\n }\n }\n put_byte(s, s.gzhead.extra[s.gzindex] & 0xff);\n s.gzindex++;\n }\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n if (s.gzindex === s.gzhead.extra.length) {\n s.gzindex = 0;\n s.status = NAME_STATE;\n }\n }\n else {\n s.status = NAME_STATE;\n }\n }\n if (s.status === NAME_STATE) {\n if (s.gzhead.name/* != Z_NULL*/) {\n beg = s.pending; /* start of bytes to update crc */\n //int val;\n\n do {\n if (s.pending === s.pending_buf_size) {\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n flush_pending(strm);\n beg = s.pending;\n if (s.pending === s.pending_buf_size) {\n val = 1;\n break;\n }\n }\n // JS specific: little magic to add zero terminator to end of string\n if (s.gzindex < s.gzhead.name.length) {\n val = s.gzhead.name.charCodeAt(s.gzindex++) & 0xff;\n } else {\n val = 0;\n }\n put_byte(s, val);\n } while (val !== 0);\n\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n if (val === 0) {\n s.gzindex = 0;\n s.status = COMMENT_STATE;\n }\n }\n else {\n s.status = COMMENT_STATE;\n }\n }\n if (s.status === COMMENT_STATE) {\n if (s.gzhead.comment/* != Z_NULL*/) {\n beg = s.pending; /* start of bytes to update crc */\n //int val;\n\n do {\n if (s.pending === s.pending_buf_size) {\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n flush_pending(strm);\n beg = s.pending;\n if (s.pending === s.pending_buf_size) {\n val = 1;\n break;\n }\n }\n // JS specific: little magic to add zero terminator to end of string\n if (s.gzindex < s.gzhead.comment.length) {\n val = s.gzhead.comment.charCodeAt(s.gzindex++) & 0xff;\n } else {\n val = 0;\n }\n put_byte(s, val);\n } while (val !== 0);\n\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n if (val === 0) {\n s.status = HCRC_STATE;\n }\n }\n else {\n s.status = HCRC_STATE;\n }\n }\n if (s.status === HCRC_STATE) {\n if (s.gzhead.hcrc) {\n if (s.pending + 2 > s.pending_buf_size) {\n flush_pending(strm);\n }\n if (s.pending + 2 <= s.pending_buf_size) {\n put_byte(s, strm.adler & 0xff);\n put_byte(s, (strm.adler >> 8) & 0xff);\n strm.adler = 0; //crc32(0L, Z_NULL, 0);\n s.status = BUSY_STATE;\n }\n }\n else {\n s.status = BUSY_STATE;\n }\n }\n//#endif\n\n /* Flush as much pending output as possible */\n if (s.pending !== 0) {\n flush_pending(strm);\n if (strm.avail_out === 0) {\n /* Since avail_out is 0, deflate will be called again with\n * more output space, but possibly with both pending and\n * avail_in equal to zero. There won't be anything to do,\n * but this is not an error situation so make sure we\n * return OK instead of BUF_ERROR at next call of deflate:\n */\n s.last_flush = -1;\n return Z_OK$3;\n }\n\n /* Make sure there is something to do and avoid duplicate consecutive\n * flushes. For repeated and useless calls with Z_FINISH, we keep\n * returning Z_STREAM_END instead of Z_BUF_ERROR.\n */\n } else if (strm.avail_in === 0 && rank(flush) <= rank(old_flush) &&\n flush !== Z_FINISH$3) {\n return err(strm, Z_BUF_ERROR$1);\n }\n\n /* User must not provide more input after the first FINISH: */\n if (s.status === FINISH_STATE && strm.avail_in !== 0) {\n return err(strm, Z_BUF_ERROR$1);\n }\n\n /* Start a new block or continue the current one.\n */\n if (strm.avail_in !== 0 || s.lookahead !== 0 ||\n (flush !== Z_NO_FLUSH$2 && s.status !== FINISH_STATE)) {\n let bstate = (s.strategy === Z_HUFFMAN_ONLY) ? deflate_huff(s, flush) :\n (s.strategy === Z_RLE ? deflate_rle(s, flush) :\n configuration_table[s.level].func(s, flush));\n\n if (bstate === BS_FINISH_STARTED || bstate === BS_FINISH_DONE) {\n s.status = FINISH_STATE;\n }\n if (bstate === BS_NEED_MORE || bstate === BS_FINISH_STARTED) {\n if (strm.avail_out === 0) {\n s.last_flush = -1;\n /* avoid BUF_ERROR next call, see above */\n }\n return Z_OK$3;\n /* If flush != Z_NO_FLUSH && avail_out == 0, the next call\n * of deflate should use the same flush parameter to make sure\n * that the flush is complete. So we don't have to output an\n * empty block here, this will be done at next call. This also\n * ensures that for a very small output buffer, we emit at most\n * one empty block.\n */\n }\n if (bstate === BS_BLOCK_DONE) {\n if (flush === Z_PARTIAL_FLUSH) {\n _tr_align(s);\n }\n else if (flush !== Z_BLOCK$1) { /* FULL_FLUSH or SYNC_FLUSH */\n\n _tr_stored_block(s, 0, 0, false);\n /* For a full flush, this empty block will be recognized\n * as a special marker by inflate_sync().\n */\n if (flush === Z_FULL_FLUSH$1) {\n /*** CLEAR_HASH(s); ***/ /* forget history */\n zero(s.head); // Fill with NIL (= 0);\n\n if (s.lookahead === 0) {\n s.strstart = 0;\n s.block_start = 0;\n s.insert = 0;\n }\n }\n }\n flush_pending(strm);\n if (strm.avail_out === 0) {\n s.last_flush = -1; /* avoid BUF_ERROR at next call, see above */\n return Z_OK$3;\n }\n }\n }\n //Assert(strm->avail_out > 0, \"bug2\");\n //if (strm.avail_out <= 0) { throw new Error(\"bug2\");}\n\n if (flush !== Z_FINISH$3) { return Z_OK$3; }\n if (s.wrap <= 0) { return Z_STREAM_END$3; }\n\n /* Write the trailer */\n if (s.wrap === 2) {\n put_byte(s, strm.adler & 0xff);\n put_byte(s, (strm.adler >> 8) & 0xff);\n put_byte(s, (strm.adler >> 16) & 0xff);\n put_byte(s, (strm.adler >> 24) & 0xff);\n put_byte(s, strm.total_in & 0xff);\n put_byte(s, (strm.total_in >> 8) & 0xff);\n put_byte(s, (strm.total_in >> 16) & 0xff);\n put_byte(s, (strm.total_in >> 24) & 0xff);\n }\n else\n {\n putShortMSB(s, strm.adler >>> 16);\n putShortMSB(s, strm.adler & 0xffff);\n }\n\n flush_pending(strm);\n /* If avail_out is zero, the application will call deflate again\n * to flush the rest.\n */\n if (s.wrap > 0) { s.wrap = -s.wrap; }\n /* write the trailer only once! */\n return s.pending !== 0 ? Z_OK$3 : Z_STREAM_END$3;\n};\n\n\nconst deflateEnd = (strm) => {\n\n if (!strm/*== Z_NULL*/ || !strm.state/*== Z_NULL*/) {\n return Z_STREAM_ERROR$2;\n }\n\n const status = strm.state.status;\n if (status !== INIT_STATE &&\n status !== EXTRA_STATE &&\n status !== NAME_STATE &&\n status !== COMMENT_STATE &&\n status !== HCRC_STATE &&\n status !== BUSY_STATE &&\n status !== FINISH_STATE\n ) {\n return err(strm, Z_STREAM_ERROR$2);\n }\n\n strm.state = null;\n\n return status === BUSY_STATE ? err(strm, Z_DATA_ERROR$2) : Z_OK$3;\n};\n\n\n/* =========================================================================\n * Initializes the compression dictionary from the given byte\n * sequence without producing any compressed output.\n */\nconst deflateSetDictionary = (strm, dictionary) => {\n\n let dictLength = dictionary.length;\n\n if (!strm/*== Z_NULL*/ || !strm.state/*== Z_NULL*/) {\n return Z_STREAM_ERROR$2;\n }\n\n const s = strm.state;\n const wrap = s.wrap;\n\n if (wrap === 2 || (wrap === 1 && s.status !== INIT_STATE) || s.lookahead) {\n return Z_STREAM_ERROR$2;\n }\n\n /* when using zlib wrappers, compute Adler-32 for provided dictionary */\n if (wrap === 1) {\n /* adler32(strm->adler, dictionary, dictLength); */\n strm.adler = adler32_1(strm.adler, dictionary, dictLength, 0);\n }\n\n s.wrap = 0; /* avoid computing Adler-32 in read_buf */\n\n /* if dictionary would fill window, just replace the history */\n if (dictLength >= s.w_size) {\n if (wrap === 0) { /* already empty otherwise */\n /*** CLEAR_HASH(s); ***/\n zero(s.head); // Fill with NIL (= 0);\n s.strstart = 0;\n s.block_start = 0;\n s.insert = 0;\n }\n /* use the tail */\n // dictionary = dictionary.slice(dictLength - s.w_size);\n let tmpDict = new Uint8Array(s.w_size);\n tmpDict.set(dictionary.subarray(dictLength - s.w_size, dictLength), 0);\n dictionary = tmpDict;\n dictLength = s.w_size;\n }\n /* insert dictionary into window and hash */\n const avail = strm.avail_in;\n const next = strm.next_in;\n const input = strm.input;\n strm.avail_in = dictLength;\n strm.next_in = 0;\n strm.input = dictionary;\n fill_window(s);\n while (s.lookahead >= MIN_MATCH) {\n let str = s.strstart;\n let n = s.lookahead - (MIN_MATCH - 1);\n do {\n /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */\n s.ins_h = HASH(s, s.ins_h, s.window[str + MIN_MATCH - 1]);\n\n s.prev[str & s.w_mask] = s.head[s.ins_h];\n\n s.head[s.ins_h] = str;\n str++;\n } while (--n);\n s.strstart = str;\n s.lookahead = MIN_MATCH - 1;\n fill_window(s);\n }\n s.strstart += s.lookahead;\n s.block_start = s.strstart;\n s.insert = s.lookahead;\n s.lookahead = 0;\n s.match_length = s.prev_length = MIN_MATCH - 1;\n s.match_available = 0;\n strm.next_in = next;\n strm.input = input;\n strm.avail_in = avail;\n s.wrap = wrap;\n return Z_OK$3;\n};\n\n\nvar deflateInit_1 = deflateInit;\nvar deflateInit2_1 = deflateInit2;\nvar deflateReset_1 = deflateReset;\nvar deflateResetKeep_1 = deflateResetKeep;\nvar deflateSetHeader_1 = deflateSetHeader;\nvar deflate_2$1 = deflate$2;\nvar deflateEnd_1 = deflateEnd;\nvar deflateSetDictionary_1 = deflateSetDictionary;\nvar deflateInfo = 'pako deflate (from Nodeca project)';\n\n/* Not implemented\nmodule.exports.deflateBound = deflateBound;\nmodule.exports.deflateCopy = deflateCopy;\nmodule.exports.deflateParams = deflateParams;\nmodule.exports.deflatePending = deflatePending;\nmodule.exports.deflatePrime = deflatePrime;\nmodule.exports.deflateTune = deflateTune;\n*/\n\nvar deflate_1$2 = {\n\tdeflateInit: deflateInit_1,\n\tdeflateInit2: deflateInit2_1,\n\tdeflateReset: deflateReset_1,\n\tdeflateResetKeep: deflateResetKeep_1,\n\tdeflateSetHeader: deflateSetHeader_1,\n\tdeflate: deflate_2$1,\n\tdeflateEnd: deflateEnd_1,\n\tdeflateSetDictionary: deflateSetDictionary_1,\n\tdeflateInfo: deflateInfo\n};\n\nconst _has = (obj, key) => {\n return Object.prototype.hasOwnProperty.call(obj, key);\n};\n\nvar assign = function (obj /*from1, from2, from3, ...*/) {\n const sources = Array.prototype.slice.call(arguments, 1);\n while (sources.length) {\n const source = sources.shift();\n if (!source) { continue; }\n\n if (typeof source !== 'object') {\n throw new TypeError(source + 'must be non-object');\n }\n\n for (const p in source) {\n if (_has(source, p)) {\n obj[p] = source[p];\n }\n }\n }\n\n return obj;\n};\n\n\n// Join array of chunks to single array.\nvar flattenChunks = (chunks) => {\n // calculate data length\n let len = 0;\n\n for (let i = 0, l = chunks.length; i < l; i++) {\n len += chunks[i].length;\n }\n\n // join chunks\n const result = new Uint8Array(len);\n\n for (let i = 0, pos = 0, l = chunks.length; i < l; i++) {\n let chunk = chunks[i];\n result.set(chunk, pos);\n pos += chunk.length;\n }\n\n return result;\n};\n\nvar common = {\n\tassign: assign,\n\tflattenChunks: flattenChunks\n};\n\n// String encode/decode helpers\n\n\n// Quick check if we can use fast array to bin string conversion\n//\n// - apply(Array) can fail on Android 2.2\n// - apply(Uint8Array) can fail on iOS 5.1 Safari\n//\nlet STR_APPLY_UIA_OK = true;\n\ntry { String.fromCharCode.apply(null, new Uint8Array(1)); } catch (__) { STR_APPLY_UIA_OK = false; }\n\n\n// Table with utf8 lengths (calculated by first byte of sequence)\n// Note, that 5 & 6-byte values and some 4-byte values can not be represented in JS,\n// because max possible codepoint is 0x10ffff\nconst _utf8len = new Uint8Array(256);\nfor (let q = 0; q < 256; q++) {\n _utf8len[q] = (q >= 252 ? 6 : q >= 248 ? 5 : q >= 240 ? 4 : q >= 224 ? 3 : q >= 192 ? 2 : 1);\n}\n_utf8len[254] = _utf8len[254] = 1; // Invalid sequence start\n\n\n// convert string to array (typed, when possible)\nvar string2buf = (str) => {\n if (typeof TextEncoder === 'function' && TextEncoder.prototype.encode) {\n return new TextEncoder().encode(str);\n }\n\n let buf, c, c2, m_pos, i, str_len = str.length, buf_len = 0;\n\n // count binary size\n for (m_pos = 0; m_pos < str_len; m_pos++) {\n c = str.charCodeAt(m_pos);\n if ((c & 0xfc00) === 0xd800 && (m_pos + 1 < str_len)) {\n c2 = str.charCodeAt(m_pos + 1);\n if ((c2 & 0xfc00) === 0xdc00) {\n c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);\n m_pos++;\n }\n }\n buf_len += c < 0x80 ? 1 : c < 0x800 ? 2 : c < 0x10000 ? 3 : 4;\n }\n\n // allocate buffer\n buf = new Uint8Array(buf_len);\n\n // convert\n for (i = 0, m_pos = 0; i < buf_len; m_pos++) {\n c = str.charCodeAt(m_pos);\n if ((c & 0xfc00) === 0xd800 && (m_pos + 1 < str_len)) {\n c2 = str.charCodeAt(m_pos + 1);\n if ((c2 & 0xfc00) === 0xdc00) {\n c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);\n m_pos++;\n }\n }\n if (c < 0x80) {\n /* one byte */\n buf[i++] = c;\n } else if (c < 0x800) {\n /* two bytes */\n buf[i++] = 0xC0 | (c >>> 6);\n buf[i++] = 0x80 | (c & 0x3f);\n } else if (c < 0x10000) {\n /* three bytes */\n buf[i++] = 0xE0 | (c >>> 12);\n buf[i++] = 0x80 | (c >>> 6 & 0x3f);\n buf[i++] = 0x80 | (c & 0x3f);\n } else {\n /* four bytes */\n buf[i++] = 0xf0 | (c >>> 18);\n buf[i++] = 0x80 | (c >>> 12 & 0x3f);\n buf[i++] = 0x80 | (c >>> 6 & 0x3f);\n buf[i++] = 0x80 | (c & 0x3f);\n }\n }\n\n return buf;\n};\n\n// Helper\nconst buf2binstring = (buf, len) => {\n // On Chrome, the arguments in a function call that are allowed is `65534`.\n // If the length of the buffer is smaller than that, we can use this optimization,\n // otherwise we will take a slower path.\n if (len < 65534) {\n if (buf.subarray && STR_APPLY_UIA_OK) {\n return String.fromCharCode.apply(null, buf.length === len ? buf : buf.subarray(0, len));\n }\n }\n\n let result = '';\n for (let i = 0; i < len; i++) {\n result += String.fromCharCode(buf[i]);\n }\n return result;\n};\n\n\n// convert array to string\nvar buf2string = (buf, max) => {\n const len = max || buf.length;\n\n if (typeof TextDecoder === 'function' && TextDecoder.prototype.decode) {\n return new TextDecoder().decode(buf.subarray(0, max));\n }\n\n let i, out;\n\n // Reserve max possible length (2 words per char)\n // NB: by unknown reasons, Array is significantly faster for\n // String.fromCharCode.apply than Uint16Array.\n const utf16buf = new Array(len * 2);\n\n for (out = 0, i = 0; i < len;) {\n let c = buf[i++];\n // quick process ascii\n if (c < 0x80) { utf16buf[out++] = c; continue; }\n\n let c_len = _utf8len[c];\n // skip 5 & 6 byte codes\n if (c_len > 4) { utf16buf[out++] = 0xfffd; i += c_len - 1; continue; }\n\n // apply mask on first byte\n c &= c_len === 2 ? 0x1f : c_len === 3 ? 0x0f : 0x07;\n // join the rest\n while (c_len > 1 && i < len) {\n c = (c << 6) | (buf[i++] & 0x3f);\n c_len--;\n }\n\n // terminated by end of string?\n if (c_len > 1) { utf16buf[out++] = 0xfffd; continue; }\n\n if (c < 0x10000) {\n utf16buf[out++] = c;\n } else {\n c -= 0x10000;\n utf16buf[out++] = 0xd800 | ((c >> 10) & 0x3ff);\n utf16buf[out++] = 0xdc00 | (c & 0x3ff);\n }\n }\n\n return buf2binstring(utf16buf, out);\n};\n\n\n// Calculate max possible position in utf8 buffer,\n// that will not break sequence. If that's not possible\n// - (very small limits) return max size as is.\n//\n// buf[] - utf8 bytes array\n// max - length limit (mandatory);\nvar utf8border = (buf, max) => {\n\n max = max || buf.length;\n if (max > buf.length) { max = buf.length; }\n\n // go back from last position, until start of sequence found\n let pos = max - 1;\n while (pos >= 0 && (buf[pos] & 0xC0) === 0x80) { pos--; }\n\n // Very small and broken sequence,\n // return max, because we should return something anyway.\n if (pos < 0) { return max; }\n\n // If we came to start of buffer - that means buffer is too small,\n // return max too.\n if (pos === 0) { return max; }\n\n return (pos + _utf8len[buf[pos]] > max) ? pos : max;\n};\n\nvar strings = {\n\tstring2buf: string2buf,\n\tbuf2string: buf2string,\n\tutf8border: utf8border\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nfunction ZStream() {\n /* next input byte */\n this.input = null; // JS specific, because we have no pointers\n this.next_in = 0;\n /* number of bytes available at input */\n this.avail_in = 0;\n /* total number of input bytes read so far */\n this.total_in = 0;\n /* next output byte should be put there */\n this.output = null; // JS specific, because we have no pointers\n this.next_out = 0;\n /* remaining free space at output */\n this.avail_out = 0;\n /* total number of bytes output so far */\n this.total_out = 0;\n /* last error message, NULL if no error */\n this.msg = ''/*Z_NULL*/;\n /* not visible by applications */\n this.state = null;\n /* best guess about the data type: binary or text */\n this.data_type = 2/*Z_UNKNOWN*/;\n /* adler32 value of the uncompressed data */\n this.adler = 0;\n}\n\nvar zstream = ZStream;\n\nconst toString$1 = Object.prototype.toString;\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nconst {\n Z_NO_FLUSH: Z_NO_FLUSH$1, Z_SYNC_FLUSH, Z_FULL_FLUSH, Z_FINISH: Z_FINISH$2,\n Z_OK: Z_OK$2, Z_STREAM_END: Z_STREAM_END$2,\n Z_DEFAULT_COMPRESSION,\n Z_DEFAULT_STRATEGY,\n Z_DEFLATED: Z_DEFLATED$1\n} = constants$2;\n\n/* ===========================================================================*/\n\n\n/**\n * class Deflate\n *\n * Generic JS-style wrapper for zlib calls. If you don't need\n * streaming behaviour - use more simple functions: [[deflate]],\n * [[deflateRaw]] and [[gzip]].\n **/\n\n/* internal\n * Deflate.chunks -> Array\n *\n * Chunks of output data, if [[Deflate#onData]] not overridden.\n **/\n\n/**\n * Deflate.result -> Uint8Array\n *\n * Compressed result, generated by default [[Deflate#onData]]\n * and [[Deflate#onEnd]] handlers. Filled after you push last chunk\n * (call [[Deflate#push]] with `Z_FINISH` / `true` param).\n **/\n\n/**\n * Deflate.err -> Number\n *\n * Error code after deflate finished. 0 (Z_OK) on success.\n * You will not need it in real life, because deflate errors\n * are possible only on wrong options or bad `onData` / `onEnd`\n * custom handlers.\n **/\n\n/**\n * Deflate.msg -> String\n *\n * Error message, if [[Deflate.err]] != 0\n **/\n\n\n/**\n * new Deflate(options)\n * - options (Object): zlib deflate options.\n *\n * Creates new deflator instance with specified params. Throws exception\n * on bad params. Supported options:\n *\n * - `level`\n * - `windowBits`\n * - `memLevel`\n * - `strategy`\n * - `dictionary`\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Additional options, for internal needs:\n *\n * - `chunkSize` - size of generated data chunks (16K by default)\n * - `raw` (Boolean) - do raw deflate\n * - `gzip` (Boolean) - create gzip wrapper\n * - `header` (Object) - custom header for gzip\n * - `text` (Boolean) - true if compressed data believed to be text\n * - `time` (Number) - modification time, unix timestamp\n * - `os` (Number) - operation system code\n * - `extra` (Array) - array of bytes with extra data (max 65536)\n * - `name` (String) - file name (binary string)\n * - `comment` (String) - comment (binary string)\n * - `hcrc` (Boolean) - true if header crc should be added\n *\n * ##### Example:\n *\n * ```javascript\n * const pako = require('pako')\n * , chunk1 = new Uint8Array([1,2,3,4,5,6,7,8,9])\n * , chunk2 = new Uint8Array([10,11,12,13,14,15,16,17,18,19]);\n *\n * const deflate = new pako.Deflate({ level: 3});\n *\n * deflate.push(chunk1, false);\n * deflate.push(chunk2, true); // true -> last chunk\n *\n * if (deflate.err) { throw new Error(deflate.err); }\n *\n * console.log(deflate.result);\n * ```\n **/\nfunction Deflate$1(options) {\n this.options = common.assign({\n level: Z_DEFAULT_COMPRESSION,\n method: Z_DEFLATED$1,\n chunkSize: 16384,\n windowBits: 15,\n memLevel: 8,\n strategy: Z_DEFAULT_STRATEGY\n }, options || {});\n\n let opt = this.options;\n\n if (opt.raw && (opt.windowBits > 0)) {\n opt.windowBits = -opt.windowBits;\n }\n\n else if (opt.gzip && (opt.windowBits > 0) && (opt.windowBits < 16)) {\n opt.windowBits += 16;\n }\n\n this.err = 0; // error code, if happens (0 = Z_OK)\n this.msg = ''; // error message\n this.ended = false; // used to avoid multiple onEnd() calls\n this.chunks = []; // chunks of compressed data\n\n this.strm = new zstream();\n this.strm.avail_out = 0;\n\n let status = deflate_1$2.deflateInit2(\n this.strm,\n opt.level,\n opt.method,\n opt.windowBits,\n opt.memLevel,\n opt.strategy\n );\n\n if (status !== Z_OK$2) {\n throw new Error(messages[status]);\n }\n\n if (opt.header) {\n deflate_1$2.deflateSetHeader(this.strm, opt.header);\n }\n\n if (opt.dictionary) {\n let dict;\n // Convert data if needed\n if (typeof opt.dictionary === 'string') {\n // If we need to compress text, change encoding to utf8.\n dict = strings.string2buf(opt.dictionary);\n } else if (toString$1.call(opt.dictionary) === '[object ArrayBuffer]') {\n dict = new Uint8Array(opt.dictionary);\n } else {\n dict = opt.dictionary;\n }\n\n status = deflate_1$2.deflateSetDictionary(this.strm, dict);\n\n if (status !== Z_OK$2) {\n throw new Error(messages[status]);\n }\n\n this._dict_set = true;\n }\n}\n\n/**\n * Deflate#push(data[, flush_mode]) -> Boolean\n * - data (Uint8Array|ArrayBuffer|String): input data. Strings will be\n * converted to utf8 byte sequence.\n * - flush_mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE modes.\n * See constants. Skipped or `false` means Z_NO_FLUSH, `true` means Z_FINISH.\n *\n * Sends input data to deflate pipe, generating [[Deflate#onData]] calls with\n * new compressed chunks. Returns `true` on success. The last data block must\n * have `flush_mode` Z_FINISH (or `true`). That will flush internal pending\n * buffers and call [[Deflate#onEnd]].\n *\n * On fail call [[Deflate#onEnd]] with error code and return false.\n *\n * ##### Example\n *\n * ```javascript\n * push(chunk, false); // push one of data chunks\n * ...\n * push(chunk, true); // push last chunk\n * ```\n **/\nDeflate$1.prototype.push = function (data, flush_mode) {\n const strm = this.strm;\n const chunkSize = this.options.chunkSize;\n let status, _flush_mode;\n\n if (this.ended) { return false; }\n\n if (flush_mode === ~~flush_mode) _flush_mode = flush_mode;\n else _flush_mode = flush_mode === true ? Z_FINISH$2 : Z_NO_FLUSH$1;\n\n // Convert data if needed\n if (typeof data === 'string') {\n // If we need to compress text, change encoding to utf8.\n strm.input = strings.string2buf(data);\n } else if (toString$1.call(data) === '[object ArrayBuffer]') {\n strm.input = new Uint8Array(data);\n } else {\n strm.input = data;\n }\n\n strm.next_in = 0;\n strm.avail_in = strm.input.length;\n\n for (;;) {\n if (strm.avail_out === 0) {\n strm.output = new Uint8Array(chunkSize);\n strm.next_out = 0;\n strm.avail_out = chunkSize;\n }\n\n // Make sure avail_out > 6 to avoid repeating markers\n if ((_flush_mode === Z_SYNC_FLUSH || _flush_mode === Z_FULL_FLUSH) && strm.avail_out <= 6) {\n this.onData(strm.output.subarray(0, strm.next_out));\n strm.avail_out = 0;\n continue;\n }\n\n status = deflate_1$2.deflate(strm, _flush_mode);\n\n // Ended => flush and finish\n if (status === Z_STREAM_END$2) {\n if (strm.next_out > 0) {\n this.onData(strm.output.subarray(0, strm.next_out));\n }\n status = deflate_1$2.deflateEnd(this.strm);\n this.onEnd(status);\n this.ended = true;\n return status === Z_OK$2;\n }\n\n // Flush if out buffer full\n if (strm.avail_out === 0) {\n this.onData(strm.output);\n continue;\n }\n\n // Flush if requested and has data\n if (_flush_mode > 0 && strm.next_out > 0) {\n this.onData(strm.output.subarray(0, strm.next_out));\n strm.avail_out = 0;\n continue;\n }\n\n if (strm.avail_in === 0) break;\n }\n\n return true;\n};\n\n\n/**\n * Deflate#onData(chunk) -> Void\n * - chunk (Uint8Array): output data.\n *\n * By default, stores data blocks in `chunks[]` property and glue\n * those in `onEnd`. Override this handler, if you need another behaviour.\n **/\nDeflate$1.prototype.onData = function (chunk) {\n this.chunks.push(chunk);\n};\n\n\n/**\n * Deflate#onEnd(status) -> Void\n * - status (Number): deflate status. 0 (Z_OK) on success,\n * other if not.\n *\n * Called once after you tell deflate that the input stream is\n * complete (Z_FINISH). By default - join collected chunks,\n * free memory and fill `results` / `err` properties.\n **/\nDeflate$1.prototype.onEnd = function (status) {\n // On success - join\n if (status === Z_OK$2) {\n this.result = common.flattenChunks(this.chunks);\n }\n this.chunks = [];\n this.err = status;\n this.msg = this.strm.msg;\n};\n\n\n/**\n * deflate(data[, options]) -> Uint8Array\n * - data (Uint8Array|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * Compress `data` with deflate algorithm and `options`.\n *\n * Supported options are:\n *\n * - level\n * - windowBits\n * - memLevel\n * - strategy\n * - dictionary\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Sugar (options):\n *\n * - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify\n * negative windowBits implicitly.\n *\n * ##### Example:\n *\n * ```javascript\n * const pako = require('pako')\n * const data = new Uint8Array([1,2,3,4,5,6,7,8,9]);\n *\n * console.log(pako.deflate(data));\n * ```\n **/\nfunction deflate$1(input, options) {\n const deflator = new Deflate$1(options);\n\n deflator.push(input, true);\n\n // That will never happens, if you don't cheat with options :)\n if (deflator.err) { throw deflator.msg || messages[deflator.err]; }\n\n return deflator.result;\n}\n\n\n/**\n * deflateRaw(data[, options]) -> Uint8Array\n * - data (Uint8Array|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * The same as [[deflate]], but creates raw data, without wrapper\n * (header and adler32 crc).\n **/\nfunction deflateRaw$1(input, options) {\n options = options || {};\n options.raw = true;\n return deflate$1(input, options);\n}\n\n\n/**\n * gzip(data[, options]) -> Uint8Array\n * - data (Uint8Array|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * The same as [[deflate]], but create gzip wrapper instead of\n * deflate one.\n **/\nfunction gzip$1(input, options) {\n options = options || {};\n options.gzip = true;\n return deflate$1(input, options);\n}\n\n\nvar Deflate_1$1 = Deflate$1;\nvar deflate_2 = deflate$1;\nvar deflateRaw_1$1 = deflateRaw$1;\nvar gzip_1$1 = gzip$1;\nvar constants$1 = constants$2;\n\nvar deflate_1$1 = {\n\tDeflate: Deflate_1$1,\n\tdeflate: deflate_2,\n\tdeflateRaw: deflateRaw_1$1,\n\tgzip: gzip_1$1,\n\tconstants: constants$1\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n// See state defs from inflate.js\nconst BAD$1 = 30; /* got a data error -- remain here until reset */\nconst TYPE$1 = 12; /* i: waiting for type bits, including last-flag bit */\n\n/*\n Decode literal, length, and distance codes and write out the resulting\n literal and match bytes until either not enough input or output is\n available, an end-of-block is encountered, or a data error is encountered.\n When large enough input and output buffers are supplied to inflate(), for\n example, a 16K input buffer and a 64K output buffer, more than 95% of the\n inflate execution time is spent in this routine.\n\n Entry assumptions:\n\n state.mode === LEN\n strm.avail_in >= 6\n strm.avail_out >= 258\n start >= strm.avail_out\n state.bits < 8\n\n On return, state.mode is one of:\n\n LEN -- ran out of enough output space or enough available input\n TYPE -- reached end of block code, inflate() to interpret next block\n BAD -- error in block data\n\n Notes:\n\n - The maximum input bits used by a length/distance pair is 15 bits for the\n length code, 5 bits for the length extra, 15 bits for the distance code,\n and 13 bits for the distance extra. This totals 48 bits, or six bytes.\n Therefore if strm.avail_in >= 6, then there is enough input to avoid\n checking for available input while decoding.\n\n - The maximum bytes that a single length/distance pair can output is 258\n bytes, which is the maximum length that can be coded. inflate_fast()\n requires strm.avail_out >= 258 for each loop to avoid checking for\n output space.\n */\nvar inffast = function inflate_fast(strm, start) {\n let _in; /* local strm.input */\n let last; /* have enough input while in < last */\n let _out; /* local strm.output */\n let beg; /* inflate()'s initial strm.output */\n let end; /* while out < end, enough space available */\n//#ifdef INFLATE_STRICT\n let dmax; /* maximum distance from zlib header */\n//#endif\n let wsize; /* window size or zero if not using window */\n let whave; /* valid bytes in the window */\n let wnext; /* window write index */\n // Use `s_window` instead `window`, avoid conflict with instrumentation tools\n let s_window; /* allocated sliding window, if wsize != 0 */\n let hold; /* local strm.hold */\n let bits; /* local strm.bits */\n let lcode; /* local strm.lencode */\n let dcode; /* local strm.distcode */\n let lmask; /* mask for first level of length codes */\n let dmask; /* mask for first level of distance codes */\n let here; /* retrieved table entry */\n let op; /* code bits, operation, extra bits, or */\n /* window position, window bytes to copy */\n let len; /* match length, unused bytes */\n let dist; /* match distance */\n let from; /* where to copy match from */\n let from_source;\n\n\n let input, output; // JS specific, because we have no pointers\n\n /* copy state to local variables */\n const state = strm.state;\n //here = state.here;\n _in = strm.next_in;\n input = strm.input;\n last = _in + (strm.avail_in - 5);\n _out = strm.next_out;\n output = strm.output;\n beg = _out - (start - strm.avail_out);\n end = _out + (strm.avail_out - 257);\n//#ifdef INFLATE_STRICT\n dmax = state.dmax;\n//#endif\n wsize = state.wsize;\n whave = state.whave;\n wnext = state.wnext;\n s_window = state.window;\n hold = state.hold;\n bits = state.bits;\n lcode = state.lencode;\n dcode = state.distcode;\n lmask = (1 << state.lenbits) - 1;\n dmask = (1 << state.distbits) - 1;\n\n\n /* decode literals and length/distances until end-of-block or not enough\n input data or output space */\n\n top:\n do {\n if (bits < 15) {\n hold += input[_in++] << bits;\n bits += 8;\n hold += input[_in++] << bits;\n bits += 8;\n }\n\n here = lcode[hold & lmask];\n\n dolen:\n for (;;) { // Goto emulation\n op = here >>> 24/*here.bits*/;\n hold >>>= op;\n bits -= op;\n op = (here >>> 16) & 0xff/*here.op*/;\n if (op === 0) { /* literal */\n //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?\n // \"inflate: literal '%c'\\n\" :\n // \"inflate: literal 0x%02x\\n\", here.val));\n output[_out++] = here & 0xffff/*here.val*/;\n }\n else if (op & 16) { /* length base */\n len = here & 0xffff/*here.val*/;\n op &= 15; /* number of extra bits */\n if (op) {\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n }\n len += hold & ((1 << op) - 1);\n hold >>>= op;\n bits -= op;\n }\n //Tracevv((stderr, \"inflate: length %u\\n\", len));\n if (bits < 15) {\n hold += input[_in++] << bits;\n bits += 8;\n hold += input[_in++] << bits;\n bits += 8;\n }\n here = dcode[hold & dmask];\n\n dodist:\n for (;;) { // goto emulation\n op = here >>> 24/*here.bits*/;\n hold >>>= op;\n bits -= op;\n op = (here >>> 16) & 0xff/*here.op*/;\n\n if (op & 16) { /* distance base */\n dist = here & 0xffff/*here.val*/;\n op &= 15; /* number of extra bits */\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n }\n }\n dist += hold & ((1 << op) - 1);\n//#ifdef INFLATE_STRICT\n if (dist > dmax) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD$1;\n break top;\n }\n//#endif\n hold >>>= op;\n bits -= op;\n //Tracevv((stderr, \"inflate: distance %u\\n\", dist));\n op = _out - beg; /* max distance in output */\n if (dist > op) { /* see if copy from window */\n op = dist - op; /* distance back in window */\n if (op > whave) {\n if (state.sane) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD$1;\n break top;\n }\n\n// (!) This block is disabled in zlib defaults,\n// don't enable it for binary compatibility\n//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR\n// if (len <= op - whave) {\n// do {\n// output[_out++] = 0;\n// } while (--len);\n// continue top;\n// }\n// len -= op - whave;\n// do {\n// output[_out++] = 0;\n// } while (--op > whave);\n// if (op === 0) {\n// from = _out - dist;\n// do {\n// output[_out++] = output[from++];\n// } while (--len);\n// continue top;\n// }\n//#endif\n }\n from = 0; // window index\n from_source = s_window;\n if (wnext === 0) { /* very common case */\n from += wsize - op;\n if (op < len) { /* some from window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n else if (wnext < op) { /* wrap around window */\n from += wsize + wnext - op;\n op -= wnext;\n if (op < len) { /* some from end of window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = 0;\n if (wnext < len) { /* some from start of window */\n op = wnext;\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n }\n else { /* contiguous in window */\n from += wnext - op;\n if (op < len) { /* some from window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n while (len > 2) {\n output[_out++] = from_source[from++];\n output[_out++] = from_source[from++];\n output[_out++] = from_source[from++];\n len -= 3;\n }\n if (len) {\n output[_out++] = from_source[from++];\n if (len > 1) {\n output[_out++] = from_source[from++];\n }\n }\n }\n else {\n from = _out - dist; /* copy direct from output */\n do { /* minimum length is three */\n output[_out++] = output[from++];\n output[_out++] = output[from++];\n output[_out++] = output[from++];\n len -= 3;\n } while (len > 2);\n if (len) {\n output[_out++] = output[from++];\n if (len > 1) {\n output[_out++] = output[from++];\n }\n }\n }\n }\n else if ((op & 64) === 0) { /* 2nd level distance code */\n here = dcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];\n continue dodist;\n }\n else {\n strm.msg = 'invalid distance code';\n state.mode = BAD$1;\n break top;\n }\n\n break; // need to emulate goto via \"continue\"\n }\n }\n else if ((op & 64) === 0) { /* 2nd level length code */\n here = lcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];\n continue dolen;\n }\n else if (op & 32) { /* end-of-block */\n //Tracevv((stderr, \"inflate: end of block\\n\"));\n state.mode = TYPE$1;\n break top;\n }\n else {\n strm.msg = 'invalid literal/length code';\n state.mode = BAD$1;\n break top;\n }\n\n break; // need to emulate goto via \"continue\"\n }\n } while (_in < last && _out < end);\n\n /* return unused bytes (on entry, bits < 8, so in won't go too far back) */\n len = bits >> 3;\n _in -= len;\n bits -= len << 3;\n hold &= (1 << bits) - 1;\n\n /* update state and return */\n strm.next_in = _in;\n strm.next_out = _out;\n strm.avail_in = (_in < last ? 5 + (last - _in) : 5 - (_in - last));\n strm.avail_out = (_out < end ? 257 + (end - _out) : 257 - (_out - end));\n state.hold = hold;\n state.bits = bits;\n return;\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nconst MAXBITS = 15;\nconst ENOUGH_LENS$1 = 852;\nconst ENOUGH_DISTS$1 = 592;\n//const ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS);\n\nconst CODES$1 = 0;\nconst LENS$1 = 1;\nconst DISTS$1 = 2;\n\nconst lbase = new Uint16Array([ /* Length codes 257..285 base */\n 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31,\n 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0\n]);\n\nconst lext = new Uint8Array([ /* Length codes 257..285 extra */\n 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18,\n 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 72, 78\n]);\n\nconst dbase = new Uint16Array([ /* Distance codes 0..29 base */\n 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193,\n 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145,\n 8193, 12289, 16385, 24577, 0, 0\n]);\n\nconst dext = new Uint8Array([ /* Distance codes 0..29 extra */\n 16, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22,\n 23, 23, 24, 24, 25, 25, 26, 26, 27, 27,\n 28, 28, 29, 29, 64, 64\n]);\n\nconst inflate_table = (type, lens, lens_index, codes, table, table_index, work, opts) =>\n{\n const bits = opts.bits;\n //here = opts.here; /* table entry for duplication */\n\n let len = 0; /* a code's length in bits */\n let sym = 0; /* index of code symbols */\n let min = 0, max = 0; /* minimum and maximum code lengths */\n let root = 0; /* number of index bits for root table */\n let curr = 0; /* number of index bits for current table */\n let drop = 0; /* code bits to drop for sub-table */\n let left = 0; /* number of prefix codes available */\n let used = 0; /* code entries in table used */\n let huff = 0; /* Huffman code */\n let incr; /* for incrementing code, index */\n let fill; /* index for replicating entries */\n let low; /* low bits for current root entry */\n let mask; /* mask for low root bits */\n let next; /* next available space in table */\n let base = null; /* base value table to use */\n let base_index = 0;\n// let shoextra; /* extra bits table to use */\n let end; /* use base and extra for symbol > end */\n const count = new Uint16Array(MAXBITS + 1); //[MAXBITS+1]; /* number of codes of each length */\n const offs = new Uint16Array(MAXBITS + 1); //[MAXBITS+1]; /* offsets in table for each length */\n let extra = null;\n let extra_index = 0;\n\n let here_bits, here_op, here_val;\n\n /*\n Process a set of code lengths to create a canonical Huffman code. The\n code lengths are lens[0..codes-1]. Each length corresponds to the\n symbols 0..codes-1. The Huffman code is generated by first sorting the\n symbols by length from short to long, and retaining the symbol order\n for codes with equal lengths. Then the code starts with all zero bits\n for the first code of the shortest length, and the codes are integer\n increments for the same length, and zeros are appended as the length\n increases. For the deflate format, these bits are stored backwards\n from their more natural integer increment ordering, and so when the\n decoding tables are built in the large loop below, the integer codes\n are incremented backwards.\n\n This routine assumes, but does not check, that all of the entries in\n lens[] are in the range 0..MAXBITS. The caller must assure this.\n 1..MAXBITS is interpreted as that code length. zero means that that\n symbol does not occur in this code.\n\n The codes are sorted by computing a count of codes for each length,\n creating from that a table of starting indices for each length in the\n sorted table, and then entering the symbols in order in the sorted\n table. The sorted table is work[], with that space being provided by\n the caller.\n\n The length counts are used for other purposes as well, i.e. finding\n the minimum and maximum length codes, determining if there are any\n codes at all, checking for a valid set of lengths, and looking ahead\n at length counts to determine sub-table sizes when building the\n decoding tables.\n */\n\n /* accumulate lengths for codes (assumes lens[] all in 0..MAXBITS) */\n for (len = 0; len <= MAXBITS; len++) {\n count[len] = 0;\n }\n for (sym = 0; sym < codes; sym++) {\n count[lens[lens_index + sym]]++;\n }\n\n /* bound code lengths, force root to be within code lengths */\n root = bits;\n for (max = MAXBITS; max >= 1; max--) {\n if (count[max] !== 0) { break; }\n }\n if (root > max) {\n root = max;\n }\n if (max === 0) { /* no symbols to code at all */\n //table.op[opts.table_index] = 64; //here.op = (var char)64; /* invalid code marker */\n //table.bits[opts.table_index] = 1; //here.bits = (var char)1;\n //table.val[opts.table_index++] = 0; //here.val = (var short)0;\n table[table_index++] = (1 << 24) | (64 << 16) | 0;\n\n\n //table.op[opts.table_index] = 64;\n //table.bits[opts.table_index] = 1;\n //table.val[opts.table_index++] = 0;\n table[table_index++] = (1 << 24) | (64 << 16) | 0;\n\n opts.bits = 1;\n return 0; /* no symbols, but wait for decoding to report error */\n }\n for (min = 1; min < max; min++) {\n if (count[min] !== 0) { break; }\n }\n if (root < min) {\n root = min;\n }\n\n /* check for an over-subscribed or incomplete set of lengths */\n left = 1;\n for (len = 1; len <= MAXBITS; len++) {\n left <<= 1;\n left -= count[len];\n if (left < 0) {\n return -1;\n } /* over-subscribed */\n }\n if (left > 0 && (type === CODES$1 || max !== 1)) {\n return -1; /* incomplete set */\n }\n\n /* generate offsets into symbol table for each length for sorting */\n offs[1] = 0;\n for (len = 1; len < MAXBITS; len++) {\n offs[len + 1] = offs[len] + count[len];\n }\n\n /* sort symbols by length, by symbol order within each length */\n for (sym = 0; sym < codes; sym++) {\n if (lens[lens_index + sym] !== 0) {\n work[offs[lens[lens_index + sym]]++] = sym;\n }\n }\n\n /*\n Create and fill in decoding tables. In this loop, the table being\n filled is at next and has curr index bits. The code being used is huff\n with length len. That code is converted to an index by dropping drop\n bits off of the bottom. For codes where len is less than drop + curr,\n those top drop + curr - len bits are incremented through all values to\n fill the table with replicated entries.\n\n root is the number of index bits for the root table. When len exceeds\n root, sub-tables are created pointed to by the root entry with an index\n of the low root bits of huff. This is saved in low to check for when a\n new sub-table should be started. drop is zero when the root table is\n being filled, and drop is root when sub-tables are being filled.\n\n When a new sub-table is needed, it is necessary to look ahead in the\n code lengths to determine what size sub-table is needed. The length\n counts are used for this, and so count[] is decremented as codes are\n entered in the tables.\n\n used keeps track of how many table entries have been allocated from the\n provided *table space. It is checked for LENS and DIST tables against\n the constants ENOUGH_LENS and ENOUGH_DISTS to guard against changes in\n the initial root table size constants. See the comments in inftrees.h\n for more information.\n\n sym increments through all symbols, and the loop terminates when\n all codes of length max, i.e. all codes, have been processed. This\n routine permits incomplete codes, so another loop after this one fills\n in the rest of the decoding tables with invalid code markers.\n */\n\n /* set up for code type */\n // poor man optimization - use if-else instead of switch,\n // to avoid deopts in old v8\n if (type === CODES$1) {\n base = extra = work; /* dummy value--not used */\n end = 19;\n\n } else if (type === LENS$1) {\n base = lbase;\n base_index -= 257;\n extra = lext;\n extra_index -= 257;\n end = 256;\n\n } else { /* DISTS */\n base = dbase;\n extra = dext;\n end = -1;\n }\n\n /* initialize opts for loop */\n huff = 0; /* starting code */\n sym = 0; /* starting code symbol */\n len = min; /* starting code length */\n next = table_index; /* current table to fill in */\n curr = root; /* current table index bits */\n drop = 0; /* current bits to drop from code for index */\n low = -1; /* trigger new sub-table when len > root */\n used = 1 << root; /* use root table entries */\n mask = used - 1; /* mask for comparing low */\n\n /* check available table space */\n if ((type === LENS$1 && used > ENOUGH_LENS$1) ||\n (type === DISTS$1 && used > ENOUGH_DISTS$1)) {\n return 1;\n }\n\n /* process all codes and make table entries */\n for (;;) {\n /* create table entry */\n here_bits = len - drop;\n if (work[sym] < end) {\n here_op = 0;\n here_val = work[sym];\n }\n else if (work[sym] > end) {\n here_op = extra[extra_index + work[sym]];\n here_val = base[base_index + work[sym]];\n }\n else {\n here_op = 32 + 64; /* end of block */\n here_val = 0;\n }\n\n /* replicate for those indices with low len bits equal to huff */\n incr = 1 << (len - drop);\n fill = 1 << curr;\n min = fill; /* save offset to next table */\n do {\n fill -= incr;\n table[next + (huff >> drop) + fill] = (here_bits << 24) | (here_op << 16) | here_val |0;\n } while (fill !== 0);\n\n /* backwards increment the len-bit code huff */\n incr = 1 << (len - 1);\n while (huff & incr) {\n incr >>= 1;\n }\n if (incr !== 0) {\n huff &= incr - 1;\n huff += incr;\n } else {\n huff = 0;\n }\n\n /* go to next symbol, update count, len */\n sym++;\n if (--count[len] === 0) {\n if (len === max) { break; }\n len = lens[lens_index + work[sym]];\n }\n\n /* create new sub-table if needed */\n if (len > root && (huff & mask) !== low) {\n /* if first time, transition to sub-tables */\n if (drop === 0) {\n drop = root;\n }\n\n /* increment past last table */\n next += min; /* here min is 1 << curr */\n\n /* determine length of next table */\n curr = len - drop;\n left = 1 << curr;\n while (curr + drop < max) {\n left -= count[curr + drop];\n if (left <= 0) { break; }\n curr++;\n left <<= 1;\n }\n\n /* check for enough space */\n used += 1 << curr;\n if ((type === LENS$1 && used > ENOUGH_LENS$1) ||\n (type === DISTS$1 && used > ENOUGH_DISTS$1)) {\n return 1;\n }\n\n /* point entry in root table to sub-table */\n low = huff & mask;\n /*table.op[low] = curr;\n table.bits[low] = root;\n table.val[low] = next - opts.table_index;*/\n table[low] = (root << 24) | (curr << 16) | (next - table_index) |0;\n }\n }\n\n /* fill in remaining table entry if code is incomplete (guaranteed to have\n at most one remaining entry, since if the code is incomplete, the\n maximum code length that was allowed to get this far is one bit) */\n if (huff !== 0) {\n //table.op[next + huff] = 64; /* invalid code marker */\n //table.bits[next + huff] = len - drop;\n //table.val[next + huff] = 0;\n table[next + huff] = ((len - drop) << 24) | (64 << 16) |0;\n }\n\n /* set return parameters */\n //opts.table_index += used;\n opts.bits = root;\n return 0;\n};\n\n\nvar inftrees = inflate_table;\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n\n\n\n\n\nconst CODES = 0;\nconst LENS = 1;\nconst DISTS = 2;\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nconst {\n Z_FINISH: Z_FINISH$1, Z_BLOCK, Z_TREES,\n Z_OK: Z_OK$1, Z_STREAM_END: Z_STREAM_END$1, Z_NEED_DICT: Z_NEED_DICT$1, Z_STREAM_ERROR: Z_STREAM_ERROR$1, Z_DATA_ERROR: Z_DATA_ERROR$1, Z_MEM_ERROR: Z_MEM_ERROR$1, Z_BUF_ERROR,\n Z_DEFLATED\n} = constants$2;\n\n\n/* STATES ====================================================================*/\n/* ===========================================================================*/\n\n\nconst HEAD = 1; /* i: waiting for magic header */\nconst FLAGS = 2; /* i: waiting for method and flags (gzip) */\nconst TIME = 3; /* i: waiting for modification time (gzip) */\nconst OS = 4; /* i: waiting for extra flags and operating system (gzip) */\nconst EXLEN = 5; /* i: waiting for extra length (gzip) */\nconst EXTRA = 6; /* i: waiting for extra bytes (gzip) */\nconst NAME = 7; /* i: waiting for end of file name (gzip) */\nconst COMMENT = 8; /* i: waiting for end of comment (gzip) */\nconst HCRC = 9; /* i: waiting for header crc (gzip) */\nconst DICTID = 10; /* i: waiting for dictionary check value */\nconst DICT = 11; /* waiting for inflateSetDictionary() call */\nconst TYPE = 12; /* i: waiting for type bits, including last-flag bit */\nconst TYPEDO = 13; /* i: same, but skip check to exit inflate on new block */\nconst STORED = 14; /* i: waiting for stored size (length and complement) */\nconst COPY_ = 15; /* i/o: same as COPY below, but only first time in */\nconst COPY = 16; /* i/o: waiting for input or output to copy stored block */\nconst TABLE = 17; /* i: waiting for dynamic block table lengths */\nconst LENLENS = 18; /* i: waiting for code length code lengths */\nconst CODELENS = 19; /* i: waiting for length/lit and distance code lengths */\nconst LEN_ = 20; /* i: same as LEN below, but only first time in */\nconst LEN = 21; /* i: waiting for length/lit/eob code */\nconst LENEXT = 22; /* i: waiting for length extra bits */\nconst DIST = 23; /* i: waiting for distance code */\nconst DISTEXT = 24; /* i: waiting for distance extra bits */\nconst MATCH = 25; /* o: waiting for output space to copy string */\nconst LIT = 26; /* o: waiting for output space to write literal */\nconst CHECK = 27; /* i: waiting for 32-bit check value */\nconst LENGTH = 28; /* i: waiting for 32-bit length (gzip) */\nconst DONE = 29; /* finished check, done -- remain here until reset */\nconst BAD = 30; /* got a data error -- remain here until reset */\nconst MEM = 31; /* got an inflate() memory error -- remain here until reset */\nconst SYNC = 32; /* looking for synchronization bytes to restart inflate() */\n\n/* ===========================================================================*/\n\n\n\nconst ENOUGH_LENS = 852;\nconst ENOUGH_DISTS = 592;\n//const ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS);\n\nconst MAX_WBITS = 15;\n/* 32K LZ77 window */\nconst DEF_WBITS = MAX_WBITS;\n\n\nconst zswap32 = (q) => {\n\n return (((q >>> 24) & 0xff) +\n ((q >>> 8) & 0xff00) +\n ((q & 0xff00) << 8) +\n ((q & 0xff) << 24));\n};\n\n\nfunction InflateState() {\n this.mode = 0; /* current inflate mode */\n this.last = false; /* true if processing last block */\n this.wrap = 0; /* bit 0 true for zlib, bit 1 true for gzip */\n this.havedict = false; /* true if dictionary provided */\n this.flags = 0; /* gzip header method and flags (0 if zlib) */\n this.dmax = 0; /* zlib header max distance (INFLATE_STRICT) */\n this.check = 0; /* protected copy of check value */\n this.total = 0; /* protected copy of output count */\n // TODO: may be {}\n this.head = null; /* where to save gzip header information */\n\n /* sliding window */\n this.wbits = 0; /* log base 2 of requested window size */\n this.wsize = 0; /* window size or zero if not using window */\n this.whave = 0; /* valid bytes in the window */\n this.wnext = 0; /* window write index */\n this.window = null; /* allocated sliding window, if needed */\n\n /* bit accumulator */\n this.hold = 0; /* input bit accumulator */\n this.bits = 0; /* number of bits in \"in\" */\n\n /* for string and stored block copying */\n this.length = 0; /* literal or length of data to copy */\n this.offset = 0; /* distance back to copy string from */\n\n /* for table and code decoding */\n this.extra = 0; /* extra bits needed */\n\n /* fixed and dynamic code tables */\n this.lencode = null; /* starting table for length/literal codes */\n this.distcode = null; /* starting table for distance codes */\n this.lenbits = 0; /* index bits for lencode */\n this.distbits = 0; /* index bits for distcode */\n\n /* dynamic table building */\n this.ncode = 0; /* number of code length code lengths */\n this.nlen = 0; /* number of length code lengths */\n this.ndist = 0; /* number of distance code lengths */\n this.have = 0; /* number of code lengths in lens[] */\n this.next = null; /* next available space in codes[] */\n\n this.lens = new Uint16Array(320); /* temporary storage for code lengths */\n this.work = new Uint16Array(288); /* work area for code table building */\n\n /*\n because we don't have pointers in js, we use lencode and distcode directly\n as buffers so we don't need codes\n */\n //this.codes = new Int32Array(ENOUGH); /* space for code tables */\n this.lendyn = null; /* dynamic table for length/literal codes (JS specific) */\n this.distdyn = null; /* dynamic table for distance codes (JS specific) */\n this.sane = 0; /* if false, allow invalid distance too far */\n this.back = 0; /* bits back of last unprocessed length/lit */\n this.was = 0; /* initial length of match */\n}\n\n\nconst inflateResetKeep = (strm) => {\n\n if (!strm || !strm.state) { return Z_STREAM_ERROR$1; }\n const state = strm.state;\n strm.total_in = strm.total_out = state.total = 0;\n strm.msg = ''; /*Z_NULL*/\n if (state.wrap) { /* to support ill-conceived Java test suite */\n strm.adler = state.wrap & 1;\n }\n state.mode = HEAD;\n state.last = 0;\n state.havedict = 0;\n state.dmax = 32768;\n state.head = null/*Z_NULL*/;\n state.hold = 0;\n state.bits = 0;\n //state.lencode = state.distcode = state.next = state.codes;\n state.lencode = state.lendyn = new Int32Array(ENOUGH_LENS);\n state.distcode = state.distdyn = new Int32Array(ENOUGH_DISTS);\n\n state.sane = 1;\n state.back = -1;\n //Tracev((stderr, \"inflate: reset\\n\"));\n return Z_OK$1;\n};\n\n\nconst inflateReset = (strm) => {\n\n if (!strm || !strm.state) { return Z_STREAM_ERROR$1; }\n const state = strm.state;\n state.wsize = 0;\n state.whave = 0;\n state.wnext = 0;\n return inflateResetKeep(strm);\n\n};\n\n\nconst inflateReset2 = (strm, windowBits) => {\n let wrap;\n\n /* get the state */\n if (!strm || !strm.state) { return Z_STREAM_ERROR$1; }\n const state = strm.state;\n\n /* extract wrap request from windowBits parameter */\n if (windowBits < 0) {\n wrap = 0;\n windowBits = -windowBits;\n }\n else {\n wrap = (windowBits >> 4) + 1;\n if (windowBits < 48) {\n windowBits &= 15;\n }\n }\n\n /* set number of window bits, free window if different */\n if (windowBits && (windowBits < 8 || windowBits > 15)) {\n return Z_STREAM_ERROR$1;\n }\n if (state.window !== null && state.wbits !== windowBits) {\n state.window = null;\n }\n\n /* update state and reset the rest of it */\n state.wrap = wrap;\n state.wbits = windowBits;\n return inflateReset(strm);\n};\n\n\nconst inflateInit2 = (strm, windowBits) => {\n\n if (!strm) { return Z_STREAM_ERROR$1; }\n //strm.msg = Z_NULL; /* in case we return an error */\n\n const state = new InflateState();\n\n //if (state === Z_NULL) return Z_MEM_ERROR;\n //Tracev((stderr, \"inflate: allocated\\n\"));\n strm.state = state;\n state.window = null/*Z_NULL*/;\n const ret = inflateReset2(strm, windowBits);\n if (ret !== Z_OK$1) {\n strm.state = null/*Z_NULL*/;\n }\n return ret;\n};\n\n\nconst inflateInit = (strm) => {\n\n return inflateInit2(strm, DEF_WBITS);\n};\n\n\n/*\n Return state with length and distance decoding tables and index sizes set to\n fixed code decoding. Normally this returns fixed tables from inffixed.h.\n If BUILDFIXED is defined, then instead this routine builds the tables the\n first time it's called, and returns those tables the first time and\n thereafter. This reduces the size of the code by about 2K bytes, in\n exchange for a little execution time. However, BUILDFIXED should not be\n used for threaded applications, since the rewriting of the tables and virgin\n may not be thread-safe.\n */\nlet virgin = true;\n\nlet lenfix, distfix; // We have no pointers in JS, so keep tables separate\n\n\nconst fixedtables = (state) => {\n\n /* build fixed huffman tables if first call (may not be thread safe) */\n if (virgin) {\n lenfix = new Int32Array(512);\n distfix = new Int32Array(32);\n\n /* literal/length table */\n let sym = 0;\n while (sym < 144) { state.lens[sym++] = 8; }\n while (sym < 256) { state.lens[sym++] = 9; }\n while (sym < 280) { state.lens[sym++] = 7; }\n while (sym < 288) { state.lens[sym++] = 8; }\n\n inftrees(LENS, state.lens, 0, 288, lenfix, 0, state.work, { bits: 9 });\n\n /* distance table */\n sym = 0;\n while (sym < 32) { state.lens[sym++] = 5; }\n\n inftrees(DISTS, state.lens, 0, 32, distfix, 0, state.work, { bits: 5 });\n\n /* do this just once */\n virgin = false;\n }\n\n state.lencode = lenfix;\n state.lenbits = 9;\n state.distcode = distfix;\n state.distbits = 5;\n};\n\n\n/*\n Update the window with the last wsize (normally 32K) bytes written before\n returning. If window does not exist yet, create it. This is only called\n when a window is already in use, or when output has been written during this\n inflate call, but the end of the deflate stream has not been reached yet.\n It is also called to create a window for dictionary data when a dictionary\n is loaded.\n\n Providing output buffers larger than 32K to inflate() should provide a speed\n advantage, since only the last 32K of output is copied to the sliding window\n upon return from inflate(), and since all distances after the first 32K of\n output will fall in the output data, making match copies simpler and faster.\n The advantage may be dependent on the size of the processor's data caches.\n */\nconst updatewindow = (strm, src, end, copy) => {\n\n let dist;\n const state = strm.state;\n\n /* if it hasn't been done already, allocate space for the window */\n if (state.window === null) {\n state.wsize = 1 << state.wbits;\n state.wnext = 0;\n state.whave = 0;\n\n state.window = new Uint8Array(state.wsize);\n }\n\n /* copy state->wsize or less output bytes into the circular window */\n if (copy >= state.wsize) {\n state.window.set(src.subarray(end - state.wsize, end), 0);\n state.wnext = 0;\n state.whave = state.wsize;\n }\n else {\n dist = state.wsize - state.wnext;\n if (dist > copy) {\n dist = copy;\n }\n //zmemcpy(state->window + state->wnext, end - copy, dist);\n state.window.set(src.subarray(end - copy, end - copy + dist), state.wnext);\n copy -= dist;\n if (copy) {\n //zmemcpy(state->window, end - copy, copy);\n state.window.set(src.subarray(end - copy, end), 0);\n state.wnext = copy;\n state.whave = state.wsize;\n }\n else {\n state.wnext += dist;\n if (state.wnext === state.wsize) { state.wnext = 0; }\n if (state.whave < state.wsize) { state.whave += dist; }\n }\n }\n return 0;\n};\n\n\nconst inflate$2 = (strm, flush) => {\n\n let state;\n let input, output; // input/output buffers\n let next; /* next input INDEX */\n let put; /* next output INDEX */\n let have, left; /* available input and output */\n let hold; /* bit buffer */\n let bits; /* bits in bit buffer */\n let _in, _out; /* save starting available input and output */\n let copy; /* number of stored or match bytes to copy */\n let from; /* where to copy match bytes from */\n let from_source;\n let here = 0; /* current decoding table entry */\n let here_bits, here_op, here_val; // paked \"here\" denormalized (JS specific)\n //let last; /* parent table entry */\n let last_bits, last_op, last_val; // paked \"last\" denormalized (JS specific)\n let len; /* length to copy for repeats, bits to drop */\n let ret; /* return code */\n const hbuf = new Uint8Array(4); /* buffer for gzip header crc calculation */\n let opts;\n\n let n; // temporary variable for NEED_BITS\n\n const order = /* permutation of code lengths */\n new Uint8Array([ 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 ]);\n\n\n if (!strm || !strm.state || !strm.output ||\n (!strm.input && strm.avail_in !== 0)) {\n return Z_STREAM_ERROR$1;\n }\n\n state = strm.state;\n if (state.mode === TYPE) { state.mode = TYPEDO; } /* skip check */\n\n\n //--- LOAD() ---\n put = strm.next_out;\n output = strm.output;\n left = strm.avail_out;\n next = strm.next_in;\n input = strm.input;\n have = strm.avail_in;\n hold = state.hold;\n bits = state.bits;\n //---\n\n _in = have;\n _out = left;\n ret = Z_OK$1;\n\n inf_leave: // goto emulation\n for (;;) {\n switch (state.mode) {\n case HEAD:\n if (state.wrap === 0) {\n state.mode = TYPEDO;\n break;\n }\n //=== NEEDBITS(16);\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if ((state.wrap & 2) && hold === 0x8b1f) { /* gzip header */\n state.check = 0/*crc32(0L, Z_NULL, 0)*/;\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32_1(state.check, hbuf, 2, 0);\n //===//\n\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = FLAGS;\n break;\n }\n state.flags = 0; /* expect zlib header */\n if (state.head) {\n state.head.done = false;\n }\n if (!(state.wrap & 1) || /* check if zlib header allowed */\n (((hold & 0xff)/*BITS(8)*/ << 8) + (hold >> 8)) % 31) {\n strm.msg = 'incorrect header check';\n state.mode = BAD;\n break;\n }\n if ((hold & 0x0f)/*BITS(4)*/ !== Z_DEFLATED) {\n strm.msg = 'unknown compression method';\n state.mode = BAD;\n break;\n }\n //--- DROPBITS(4) ---//\n hold >>>= 4;\n bits -= 4;\n //---//\n len = (hold & 0x0f)/*BITS(4)*/ + 8;\n if (state.wbits === 0) {\n state.wbits = len;\n }\n else if (len > state.wbits) {\n strm.msg = 'invalid window size';\n state.mode = BAD;\n break;\n }\n\n // !!! pako patch. Force use `options.windowBits` if passed.\n // Required to always use max window size by default.\n state.dmax = 1 << state.wbits;\n //state.dmax = 1 << len;\n\n //Tracev((stderr, \"inflate: zlib header ok\\n\"));\n strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/;\n state.mode = hold & 0x200 ? DICTID : TYPE;\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n break;\n case FLAGS:\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.flags = hold;\n if ((state.flags & 0xff) !== Z_DEFLATED) {\n strm.msg = 'unknown compression method';\n state.mode = BAD;\n break;\n }\n if (state.flags & 0xe000) {\n strm.msg = 'unknown header flags set';\n state.mode = BAD;\n break;\n }\n if (state.head) {\n state.head.text = ((hold >> 8) & 1);\n }\n if (state.flags & 0x0200) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32_1(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = TIME;\n /* falls through */\n case TIME:\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (state.head) {\n state.head.time = hold;\n }\n if (state.flags & 0x0200) {\n //=== CRC4(state.check, hold)\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n hbuf[2] = (hold >>> 16) & 0xff;\n hbuf[3] = (hold >>> 24) & 0xff;\n state.check = crc32_1(state.check, hbuf, 4, 0);\n //===\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = OS;\n /* falls through */\n case OS:\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (state.head) {\n state.head.xflags = (hold & 0xff);\n state.head.os = (hold >> 8);\n }\n if (state.flags & 0x0200) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32_1(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = EXLEN;\n /* falls through */\n case EXLEN:\n if (state.flags & 0x0400) {\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.length = hold;\n if (state.head) {\n state.head.extra_len = hold;\n }\n if (state.flags & 0x0200) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32_1(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n }\n else if (state.head) {\n state.head.extra = null/*Z_NULL*/;\n }\n state.mode = EXTRA;\n /* falls through */\n case EXTRA:\n if (state.flags & 0x0400) {\n copy = state.length;\n if (copy > have) { copy = have; }\n if (copy) {\n if (state.head) {\n len = state.head.extra_len - state.length;\n if (!state.head.extra) {\n // Use untyped array for more convenient processing later\n state.head.extra = new Uint8Array(state.head.extra_len);\n }\n state.head.extra.set(\n input.subarray(\n next,\n // extra field is limited to 65536 bytes\n // - no need for additional size check\n next + copy\n ),\n /*len + copy > state.head.extra_max - len ? state.head.extra_max : copy,*/\n len\n );\n //zmemcpy(state.head.extra + len, next,\n // len + copy > state.head.extra_max ?\n // state.head.extra_max - len : copy);\n }\n if (state.flags & 0x0200) {\n state.check = crc32_1(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n state.length -= copy;\n }\n if (state.length) { break inf_leave; }\n }\n state.length = 0;\n state.mode = NAME;\n /* falls through */\n case NAME:\n if (state.flags & 0x0800) {\n if (have === 0) { break inf_leave; }\n copy = 0;\n do {\n // TODO: 2 or 1 bytes?\n len = input[next + copy++];\n /* use constant limit because in js we should not preallocate memory */\n if (state.head && len &&\n (state.length < 65536 /*state.head.name_max*/)) {\n state.head.name += String.fromCharCode(len);\n }\n } while (len && copy < have);\n\n if (state.flags & 0x0200) {\n state.check = crc32_1(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n if (len) { break inf_leave; }\n }\n else if (state.head) {\n state.head.name = null;\n }\n state.length = 0;\n state.mode = COMMENT;\n /* falls through */\n case COMMENT:\n if (state.flags & 0x1000) {\n if (have === 0) { break inf_leave; }\n copy = 0;\n do {\n len = input[next + copy++];\n /* use constant limit because in js we should not preallocate memory */\n if (state.head && len &&\n (state.length < 65536 /*state.head.comm_max*/)) {\n state.head.comment += String.fromCharCode(len);\n }\n } while (len && copy < have);\n if (state.flags & 0x0200) {\n state.check = crc32_1(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n if (len) { break inf_leave; }\n }\n else if (state.head) {\n state.head.comment = null;\n }\n state.mode = HCRC;\n /* falls through */\n case HCRC:\n if (state.flags & 0x0200) {\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (hold !== (state.check & 0xffff)) {\n strm.msg = 'header crc mismatch';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n }\n if (state.head) {\n state.head.hcrc = ((state.flags >> 9) & 1);\n state.head.done = true;\n }\n strm.adler = state.check = 0;\n state.mode = TYPE;\n break;\n case DICTID:\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n strm.adler = state.check = zswap32(hold);\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = DICT;\n /* falls through */\n case DICT:\n if (state.havedict === 0) {\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n return Z_NEED_DICT$1;\n }\n strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/;\n state.mode = TYPE;\n /* falls through */\n case TYPE:\n if (flush === Z_BLOCK || flush === Z_TREES) { break inf_leave; }\n /* falls through */\n case TYPEDO:\n if (state.last) {\n //--- BYTEBITS() ---//\n hold >>>= bits & 7;\n bits -= bits & 7;\n //---//\n state.mode = CHECK;\n break;\n }\n //=== NEEDBITS(3); */\n while (bits < 3) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.last = (hold & 0x01)/*BITS(1)*/;\n //--- DROPBITS(1) ---//\n hold >>>= 1;\n bits -= 1;\n //---//\n\n switch ((hold & 0x03)/*BITS(2)*/) {\n case 0: /* stored block */\n //Tracev((stderr, \"inflate: stored block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = STORED;\n break;\n case 1: /* fixed block */\n fixedtables(state);\n //Tracev((stderr, \"inflate: fixed codes block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = LEN_; /* decode codes */\n if (flush === Z_TREES) {\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n break inf_leave;\n }\n break;\n case 2: /* dynamic block */\n //Tracev((stderr, \"inflate: dynamic codes block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = TABLE;\n break;\n case 3:\n strm.msg = 'invalid block type';\n state.mode = BAD;\n }\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n break;\n case STORED:\n //--- BYTEBITS() ---// /* go to byte boundary */\n hold >>>= bits & 7;\n bits -= bits & 7;\n //---//\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if ((hold & 0xffff) !== ((hold >>> 16) ^ 0xffff)) {\n strm.msg = 'invalid stored block lengths';\n state.mode = BAD;\n break;\n }\n state.length = hold & 0xffff;\n //Tracev((stderr, \"inflate: stored length %u\\n\",\n // state.length));\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = COPY_;\n if (flush === Z_TREES) { break inf_leave; }\n /* falls through */\n case COPY_:\n state.mode = COPY;\n /* falls through */\n case COPY:\n copy = state.length;\n if (copy) {\n if (copy > have) { copy = have; }\n if (copy > left) { copy = left; }\n if (copy === 0) { break inf_leave; }\n //--- zmemcpy(put, next, copy); ---\n output.set(input.subarray(next, next + copy), put);\n //---//\n have -= copy;\n next += copy;\n left -= copy;\n put += copy;\n state.length -= copy;\n break;\n }\n //Tracev((stderr, \"inflate: stored end\\n\"));\n state.mode = TYPE;\n break;\n case TABLE:\n //=== NEEDBITS(14); */\n while (bits < 14) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.nlen = (hold & 0x1f)/*BITS(5)*/ + 257;\n //--- DROPBITS(5) ---//\n hold >>>= 5;\n bits -= 5;\n //---//\n state.ndist = (hold & 0x1f)/*BITS(5)*/ + 1;\n //--- DROPBITS(5) ---//\n hold >>>= 5;\n bits -= 5;\n //---//\n state.ncode = (hold & 0x0f)/*BITS(4)*/ + 4;\n //--- DROPBITS(4) ---//\n hold >>>= 4;\n bits -= 4;\n //---//\n//#ifndef PKZIP_BUG_WORKAROUND\n if (state.nlen > 286 || state.ndist > 30) {\n strm.msg = 'too many length or distance symbols';\n state.mode = BAD;\n break;\n }\n//#endif\n //Tracev((stderr, \"inflate: table sizes ok\\n\"));\n state.have = 0;\n state.mode = LENLENS;\n /* falls through */\n case LENLENS:\n while (state.have < state.ncode) {\n //=== NEEDBITS(3);\n while (bits < 3) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.lens[order[state.have++]] = (hold & 0x07);//BITS(3);\n //--- DROPBITS(3) ---//\n hold >>>= 3;\n bits -= 3;\n //---//\n }\n while (state.have < 19) {\n state.lens[order[state.have++]] = 0;\n }\n // We have separate tables & no pointers. 2 commented lines below not needed.\n //state.next = state.codes;\n //state.lencode = state.next;\n // Switch to use dynamic table\n state.lencode = state.lendyn;\n state.lenbits = 7;\n\n opts = { bits: state.lenbits };\n ret = inftrees(CODES, state.lens, 0, 19, state.lencode, 0, state.work, opts);\n state.lenbits = opts.bits;\n\n if (ret) {\n strm.msg = 'invalid code lengths set';\n state.mode = BAD;\n break;\n }\n //Tracev((stderr, \"inflate: code lengths ok\\n\"));\n state.have = 0;\n state.mode = CODELENS;\n /* falls through */\n case CODELENS:\n while (state.have < state.nlen + state.ndist) {\n for (;;) {\n here = state.lencode[hold & ((1 << state.lenbits) - 1)];/*BITS(state.lenbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if (here_val < 16) {\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.lens[state.have++] = here_val;\n }\n else {\n if (here_val === 16) {\n //=== NEEDBITS(here.bits + 2);\n n = here_bits + 2;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n if (state.have === 0) {\n strm.msg = 'invalid bit length repeat';\n state.mode = BAD;\n break;\n }\n len = state.lens[state.have - 1];\n copy = 3 + (hold & 0x03);//BITS(2);\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n }\n else if (here_val === 17) {\n //=== NEEDBITS(here.bits + 3);\n n = here_bits + 3;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n len = 0;\n copy = 3 + (hold & 0x07);//BITS(3);\n //--- DROPBITS(3) ---//\n hold >>>= 3;\n bits -= 3;\n //---//\n }\n else {\n //=== NEEDBITS(here.bits + 7);\n n = here_bits + 7;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n len = 0;\n copy = 11 + (hold & 0x7f);//BITS(7);\n //--- DROPBITS(7) ---//\n hold >>>= 7;\n bits -= 7;\n //---//\n }\n if (state.have + copy > state.nlen + state.ndist) {\n strm.msg = 'invalid bit length repeat';\n state.mode = BAD;\n break;\n }\n while (copy--) {\n state.lens[state.have++] = len;\n }\n }\n }\n\n /* handle error breaks in while */\n if (state.mode === BAD) { break; }\n\n /* check for end-of-block code (better have one) */\n if (state.lens[256] === 0) {\n strm.msg = 'invalid code -- missing end-of-block';\n state.mode = BAD;\n break;\n }\n\n /* build code tables -- note: do not change the lenbits or distbits\n values here (9 and 6) without reading the comments in inftrees.h\n concerning the ENOUGH constants, which depend on those values */\n state.lenbits = 9;\n\n opts = { bits: state.lenbits };\n ret = inftrees(LENS, state.lens, 0, state.nlen, state.lencode, 0, state.work, opts);\n // We have separate tables & no pointers. 2 commented lines below not needed.\n // state.next_index = opts.table_index;\n state.lenbits = opts.bits;\n // state.lencode = state.next;\n\n if (ret) {\n strm.msg = 'invalid literal/lengths set';\n state.mode = BAD;\n break;\n }\n\n state.distbits = 6;\n //state.distcode.copy(state.codes);\n // Switch to use dynamic table\n state.distcode = state.distdyn;\n opts = { bits: state.distbits };\n ret = inftrees(DISTS, state.lens, state.nlen, state.ndist, state.distcode, 0, state.work, opts);\n // We have separate tables & no pointers. 2 commented lines below not needed.\n // state.next_index = opts.table_index;\n state.distbits = opts.bits;\n // state.distcode = state.next;\n\n if (ret) {\n strm.msg = 'invalid distances set';\n state.mode = BAD;\n break;\n }\n //Tracev((stderr, 'inflate: codes ok\\n'));\n state.mode = LEN_;\n if (flush === Z_TREES) { break inf_leave; }\n /* falls through */\n case LEN_:\n state.mode = LEN;\n /* falls through */\n case LEN:\n if (have >= 6 && left >= 258) {\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n inffast(strm, _out);\n //--- LOAD() ---\n put = strm.next_out;\n output = strm.output;\n left = strm.avail_out;\n next = strm.next_in;\n input = strm.input;\n have = strm.avail_in;\n hold = state.hold;\n bits = state.bits;\n //---\n\n if (state.mode === TYPE) {\n state.back = -1;\n }\n break;\n }\n state.back = 0;\n for (;;) {\n here = state.lencode[hold & ((1 << state.lenbits) - 1)]; /*BITS(state.lenbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if (here_bits <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if (here_op && (here_op & 0xf0) === 0) {\n last_bits = here_bits;\n last_op = here_op;\n last_val = here_val;\n for (;;) {\n here = state.lencode[last_val +\n ((hold & ((1 << (last_bits + last_op)) - 1))/*BITS(last.bits + last.op)*/ >> last_bits)];\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((last_bits + here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n //--- DROPBITS(last.bits) ---//\n hold >>>= last_bits;\n bits -= last_bits;\n //---//\n state.back += last_bits;\n }\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.back += here_bits;\n state.length = here_val;\n if (here_op === 0) {\n //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?\n // \"inflate: literal '%c'\\n\" :\n // \"inflate: literal 0x%02x\\n\", here.val));\n state.mode = LIT;\n break;\n }\n if (here_op & 32) {\n //Tracevv((stderr, \"inflate: end of block\\n\"));\n state.back = -1;\n state.mode = TYPE;\n break;\n }\n if (here_op & 64) {\n strm.msg = 'invalid literal/length code';\n state.mode = BAD;\n break;\n }\n state.extra = here_op & 15;\n state.mode = LENEXT;\n /* falls through */\n case LENEXT:\n if (state.extra) {\n //=== NEEDBITS(state.extra);\n n = state.extra;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.length += hold & ((1 << state.extra) - 1)/*BITS(state.extra)*/;\n //--- DROPBITS(state.extra) ---//\n hold >>>= state.extra;\n bits -= state.extra;\n //---//\n state.back += state.extra;\n }\n //Tracevv((stderr, \"inflate: length %u\\n\", state.length));\n state.was = state.length;\n state.mode = DIST;\n /* falls through */\n case DIST:\n for (;;) {\n here = state.distcode[hold & ((1 << state.distbits) - 1)];/*BITS(state.distbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if ((here_op & 0xf0) === 0) {\n last_bits = here_bits;\n last_op = here_op;\n last_val = here_val;\n for (;;) {\n here = state.distcode[last_val +\n ((hold & ((1 << (last_bits + last_op)) - 1))/*BITS(last.bits + last.op)*/ >> last_bits)];\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((last_bits + here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n //--- DROPBITS(last.bits) ---//\n hold >>>= last_bits;\n bits -= last_bits;\n //---//\n state.back += last_bits;\n }\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.back += here_bits;\n if (here_op & 64) {\n strm.msg = 'invalid distance code';\n state.mode = BAD;\n break;\n }\n state.offset = here_val;\n state.extra = (here_op) & 15;\n state.mode = DISTEXT;\n /* falls through */\n case DISTEXT:\n if (state.extra) {\n //=== NEEDBITS(state.extra);\n n = state.extra;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.offset += hold & ((1 << state.extra) - 1)/*BITS(state.extra)*/;\n //--- DROPBITS(state.extra) ---//\n hold >>>= state.extra;\n bits -= state.extra;\n //---//\n state.back += state.extra;\n }\n//#ifdef INFLATE_STRICT\n if (state.offset > state.dmax) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break;\n }\n//#endif\n //Tracevv((stderr, \"inflate: distance %u\\n\", state.offset));\n state.mode = MATCH;\n /* falls through */\n case MATCH:\n if (left === 0) { break inf_leave; }\n copy = _out - left;\n if (state.offset > copy) { /* copy from window */\n copy = state.offset - copy;\n if (copy > state.whave) {\n if (state.sane) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break;\n }\n// (!) This block is disabled in zlib defaults,\n// don't enable it for binary compatibility\n//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR\n// Trace((stderr, \"inflate.c too far\\n\"));\n// copy -= state.whave;\n// if (copy > state.length) { copy = state.length; }\n// if (copy > left) { copy = left; }\n// left -= copy;\n// state.length -= copy;\n// do {\n// output[put++] = 0;\n// } while (--copy);\n// if (state.length === 0) { state.mode = LEN; }\n// break;\n//#endif\n }\n if (copy > state.wnext) {\n copy -= state.wnext;\n from = state.wsize - copy;\n }\n else {\n from = state.wnext - copy;\n }\n if (copy > state.length) { copy = state.length; }\n from_source = state.window;\n }\n else { /* copy from output */\n from_source = output;\n from = put - state.offset;\n copy = state.length;\n }\n if (copy > left) { copy = left; }\n left -= copy;\n state.length -= copy;\n do {\n output[put++] = from_source[from++];\n } while (--copy);\n if (state.length === 0) { state.mode = LEN; }\n break;\n case LIT:\n if (left === 0) { break inf_leave; }\n output[put++] = state.length;\n left--;\n state.mode = LEN;\n break;\n case CHECK:\n if (state.wrap) {\n //=== NEEDBITS(32);\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n // Use '|' instead of '+' to make sure that result is signed\n hold |= input[next++] << bits;\n bits += 8;\n }\n //===//\n _out -= left;\n strm.total_out += _out;\n state.total += _out;\n if (_out) {\n strm.adler = state.check =\n /*UPDATE(state.check, put - _out, _out);*/\n (state.flags ? crc32_1(state.check, output, _out, put - _out) : adler32_1(state.check, output, _out, put - _out));\n\n }\n _out = left;\n // NB: crc32 stored as signed 32-bit int, zswap32 returns signed too\n if ((state.flags ? hold : zswap32(hold)) !== state.check) {\n strm.msg = 'incorrect data check';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n //Tracev((stderr, \"inflate: check matches trailer\\n\"));\n }\n state.mode = LENGTH;\n /* falls through */\n case LENGTH:\n if (state.wrap && state.flags) {\n //=== NEEDBITS(32);\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (hold !== (state.total & 0xffffffff)) {\n strm.msg = 'incorrect length check';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n //Tracev((stderr, \"inflate: length matches trailer\\n\"));\n }\n state.mode = DONE;\n /* falls through */\n case DONE:\n ret = Z_STREAM_END$1;\n break inf_leave;\n case BAD:\n ret = Z_DATA_ERROR$1;\n break inf_leave;\n case MEM:\n return Z_MEM_ERROR$1;\n case SYNC:\n /* falls through */\n default:\n return Z_STREAM_ERROR$1;\n }\n }\n\n // inf_leave <- here is real place for \"goto inf_leave\", emulated via \"break inf_leave\"\n\n /*\n Return from inflate(), updating the total counts and the check value.\n If there was no progress during the inflate() call, return a buffer\n error. Call updatewindow() to create and/or update the window state.\n Note: a memory error from inflate() is non-recoverable.\n */\n\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n\n if (state.wsize || (_out !== strm.avail_out && state.mode < BAD &&\n (state.mode < CHECK || flush !== Z_FINISH$1))) {\n if (updatewindow(strm, strm.output, strm.next_out, _out - strm.avail_out)) ;\n }\n _in -= strm.avail_in;\n _out -= strm.avail_out;\n strm.total_in += _in;\n strm.total_out += _out;\n state.total += _out;\n if (state.wrap && _out) {\n strm.adler = state.check = /*UPDATE(state.check, strm.next_out - _out, _out);*/\n (state.flags ? crc32_1(state.check, output, _out, strm.next_out - _out) : adler32_1(state.check, output, _out, strm.next_out - _out));\n }\n strm.data_type = state.bits + (state.last ? 64 : 0) +\n (state.mode === TYPE ? 128 : 0) +\n (state.mode === LEN_ || state.mode === COPY_ ? 256 : 0);\n if (((_in === 0 && _out === 0) || flush === Z_FINISH$1) && ret === Z_OK$1) {\n ret = Z_BUF_ERROR;\n }\n return ret;\n};\n\n\nconst inflateEnd = (strm) => {\n\n if (!strm || !strm.state /*|| strm->zfree == (free_func)0*/) {\n return Z_STREAM_ERROR$1;\n }\n\n let state = strm.state;\n if (state.window) {\n state.window = null;\n }\n strm.state = null;\n return Z_OK$1;\n};\n\n\nconst inflateGetHeader = (strm, head) => {\n\n /* check state */\n if (!strm || !strm.state) { return Z_STREAM_ERROR$1; }\n const state = strm.state;\n if ((state.wrap & 2) === 0) { return Z_STREAM_ERROR$1; }\n\n /* save header structure */\n state.head = head;\n head.done = false;\n return Z_OK$1;\n};\n\n\nconst inflateSetDictionary = (strm, dictionary) => {\n const dictLength = dictionary.length;\n\n let state;\n let dictid;\n let ret;\n\n /* check state */\n if (!strm /* == Z_NULL */ || !strm.state /* == Z_NULL */) { return Z_STREAM_ERROR$1; }\n state = strm.state;\n\n if (state.wrap !== 0 && state.mode !== DICT) {\n return Z_STREAM_ERROR$1;\n }\n\n /* check for correct dictionary identifier */\n if (state.mode === DICT) {\n dictid = 1; /* adler32(0, null, 0)*/\n /* dictid = adler32(dictid, dictionary, dictLength); */\n dictid = adler32_1(dictid, dictionary, dictLength, 0);\n if (dictid !== state.check) {\n return Z_DATA_ERROR$1;\n }\n }\n /* copy dictionary to window using updatewindow(), which will amend the\n existing dictionary if appropriate */\n ret = updatewindow(strm, dictionary, dictLength, dictLength);\n if (ret) {\n state.mode = MEM;\n return Z_MEM_ERROR$1;\n }\n state.havedict = 1;\n // Tracev((stderr, \"inflate: dictionary set\\n\"));\n return Z_OK$1;\n};\n\n\nvar inflateReset_1 = inflateReset;\nvar inflateReset2_1 = inflateReset2;\nvar inflateResetKeep_1 = inflateResetKeep;\nvar inflateInit_1 = inflateInit;\nvar inflateInit2_1 = inflateInit2;\nvar inflate_2$1 = inflate$2;\nvar inflateEnd_1 = inflateEnd;\nvar inflateGetHeader_1 = inflateGetHeader;\nvar inflateSetDictionary_1 = inflateSetDictionary;\nvar inflateInfo = 'pako inflate (from Nodeca project)';\n\n/* Not implemented\nmodule.exports.inflateCopy = inflateCopy;\nmodule.exports.inflateGetDictionary = inflateGetDictionary;\nmodule.exports.inflateMark = inflateMark;\nmodule.exports.inflatePrime = inflatePrime;\nmodule.exports.inflateSync = inflateSync;\nmodule.exports.inflateSyncPoint = inflateSyncPoint;\nmodule.exports.inflateUndermine = inflateUndermine;\n*/\n\nvar inflate_1$2 = {\n\tinflateReset: inflateReset_1,\n\tinflateReset2: inflateReset2_1,\n\tinflateResetKeep: inflateResetKeep_1,\n\tinflateInit: inflateInit_1,\n\tinflateInit2: inflateInit2_1,\n\tinflate: inflate_2$1,\n\tinflateEnd: inflateEnd_1,\n\tinflateGetHeader: inflateGetHeader_1,\n\tinflateSetDictionary: inflateSetDictionary_1,\n\tinflateInfo: inflateInfo\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nfunction GZheader() {\n /* true if compressed data believed to be text */\n this.text = 0;\n /* modification time */\n this.time = 0;\n /* extra flags (not used when writing a gzip file) */\n this.xflags = 0;\n /* operating system */\n this.os = 0;\n /* pointer to extra field or Z_NULL if none */\n this.extra = null;\n /* extra field length (valid if extra != Z_NULL) */\n this.extra_len = 0; // Actually, we don't need it in JS,\n // but leave for few code modifications\n\n //\n // Setup limits is not necessary because in js we should not preallocate memory\n // for inflate use constant limit in 65536 bytes\n //\n\n /* space at extra (only when reading header) */\n // this.extra_max = 0;\n /* pointer to zero-terminated file name or Z_NULL */\n this.name = '';\n /* space at name (only when reading header) */\n // this.name_max = 0;\n /* pointer to zero-terminated comment or Z_NULL */\n this.comment = '';\n /* space at comment (only when reading header) */\n // this.comm_max = 0;\n /* true if there was or will be a header crc */\n this.hcrc = 0;\n /* true when done reading gzip header (not used when writing a gzip file) */\n this.done = false;\n}\n\nvar gzheader = GZheader;\n\nconst toString = Object.prototype.toString;\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nconst {\n Z_NO_FLUSH, Z_FINISH,\n Z_OK, Z_STREAM_END, Z_NEED_DICT, Z_STREAM_ERROR, Z_DATA_ERROR, Z_MEM_ERROR\n} = constants$2;\n\n/* ===========================================================================*/\n\n\n/**\n * class Inflate\n *\n * Generic JS-style wrapper for zlib calls. If you don't need\n * streaming behaviour - use more simple functions: [[inflate]]\n * and [[inflateRaw]].\n **/\n\n/* internal\n * inflate.chunks -> Array\n *\n * Chunks of output data, if [[Inflate#onData]] not overridden.\n **/\n\n/**\n * Inflate.result -> Uint8Array|String\n *\n * Uncompressed result, generated by default [[Inflate#onData]]\n * and [[Inflate#onEnd]] handlers. Filled after you push last chunk\n * (call [[Inflate#push]] with `Z_FINISH` / `true` param).\n **/\n\n/**\n * Inflate.err -> Number\n *\n * Error code after inflate finished. 0 (Z_OK) on success.\n * Should be checked if broken data possible.\n **/\n\n/**\n * Inflate.msg -> String\n *\n * Error message, if [[Inflate.err]] != 0\n **/\n\n\n/**\n * new Inflate(options)\n * - options (Object): zlib inflate options.\n *\n * Creates new inflator instance with specified params. Throws exception\n * on bad params. Supported options:\n *\n * - `windowBits`\n * - `dictionary`\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Additional options, for internal needs:\n *\n * - `chunkSize` - size of generated data chunks (16K by default)\n * - `raw` (Boolean) - do raw inflate\n * - `to` (String) - if equal to 'string', then result will be converted\n * from utf8 to utf16 (javascript) string. When string output requested,\n * chunk length can differ from `chunkSize`, depending on content.\n *\n * By default, when no options set, autodetect deflate/gzip data format via\n * wrapper header.\n *\n * ##### Example:\n *\n * ```javascript\n * const pako = require('pako')\n * const chunk1 = new Uint8Array([1,2,3,4,5,6,7,8,9])\n * const chunk2 = new Uint8Array([10,11,12,13,14,15,16,17,18,19]);\n *\n * const inflate = new pako.Inflate({ level: 3});\n *\n * inflate.push(chunk1, false);\n * inflate.push(chunk2, true); // true -> last chunk\n *\n * if (inflate.err) { throw new Error(inflate.err); }\n *\n * console.log(inflate.result);\n * ```\n **/\nfunction Inflate$1(options) {\n this.options = common.assign({\n chunkSize: 1024 * 64,\n windowBits: 15,\n to: ''\n }, options || {});\n\n const opt = this.options;\n\n // Force window size for `raw` data, if not set directly,\n // because we have no header for autodetect.\n if (opt.raw && (opt.windowBits >= 0) && (opt.windowBits < 16)) {\n opt.windowBits = -opt.windowBits;\n if (opt.windowBits === 0) { opt.windowBits = -15; }\n }\n\n // If `windowBits` not defined (and mode not raw) - set autodetect flag for gzip/deflate\n if ((opt.windowBits >= 0) && (opt.windowBits < 16) &&\n !(options && options.windowBits)) {\n opt.windowBits += 32;\n }\n\n // Gzip header has no info about windows size, we can do autodetect only\n // for deflate. So, if window size not set, force it to max when gzip possible\n if ((opt.windowBits > 15) && (opt.windowBits < 48)) {\n // bit 3 (16) -> gzipped data\n // bit 4 (32) -> autodetect gzip/deflate\n if ((opt.windowBits & 15) === 0) {\n opt.windowBits |= 15;\n }\n }\n\n this.err = 0; // error code, if happens (0 = Z_OK)\n this.msg = ''; // error message\n this.ended = false; // used to avoid multiple onEnd() calls\n this.chunks = []; // chunks of compressed data\n\n this.strm = new zstream();\n this.strm.avail_out = 0;\n\n let status = inflate_1$2.inflateInit2(\n this.strm,\n opt.windowBits\n );\n\n if (status !== Z_OK) {\n throw new Error(messages[status]);\n }\n\n this.header = new gzheader();\n\n inflate_1$2.inflateGetHeader(this.strm, this.header);\n\n // Setup dictionary\n if (opt.dictionary) {\n // Convert data if needed\n if (typeof opt.dictionary === 'string') {\n opt.dictionary = strings.string2buf(opt.dictionary);\n } else if (toString.call(opt.dictionary) === '[object ArrayBuffer]') {\n opt.dictionary = new Uint8Array(opt.dictionary);\n }\n if (opt.raw) { //In raw mode we need to set the dictionary early\n status = inflate_1$2.inflateSetDictionary(this.strm, opt.dictionary);\n if (status !== Z_OK) {\n throw new Error(messages[status]);\n }\n }\n }\n}\n\n/**\n * Inflate#push(data[, flush_mode]) -> Boolean\n * - data (Uint8Array|ArrayBuffer): input data\n * - flush_mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE\n * flush modes. See constants. Skipped or `false` means Z_NO_FLUSH,\n * `true` means Z_FINISH.\n *\n * Sends input data to inflate pipe, generating [[Inflate#onData]] calls with\n * new output chunks. Returns `true` on success. If end of stream detected,\n * [[Inflate#onEnd]] will be called.\n *\n * `flush_mode` is not needed for normal operation, because end of stream\n * detected automatically. You may try to use it for advanced things, but\n * this functionality was not tested.\n *\n * On fail call [[Inflate#onEnd]] with error code and return false.\n *\n * ##### Example\n *\n * ```javascript\n * push(chunk, false); // push one of data chunks\n * ...\n * push(chunk, true); // push last chunk\n * ```\n **/\nInflate$1.prototype.push = function (data, flush_mode) {\n const strm = this.strm;\n const chunkSize = this.options.chunkSize;\n const dictionary = this.options.dictionary;\n let status, _flush_mode, last_avail_out;\n\n if (this.ended) return false;\n\n if (flush_mode === ~~flush_mode) _flush_mode = flush_mode;\n else _flush_mode = flush_mode === true ? Z_FINISH : Z_NO_FLUSH;\n\n // Convert data if needed\n if (toString.call(data) === '[object ArrayBuffer]') {\n strm.input = new Uint8Array(data);\n } else {\n strm.input = data;\n }\n\n strm.next_in = 0;\n strm.avail_in = strm.input.length;\n\n for (;;) {\n if (strm.avail_out === 0) {\n strm.output = new Uint8Array(chunkSize);\n strm.next_out = 0;\n strm.avail_out = chunkSize;\n }\n\n status = inflate_1$2.inflate(strm, _flush_mode);\n\n if (status === Z_NEED_DICT && dictionary) {\n status = inflate_1$2.inflateSetDictionary(strm, dictionary);\n\n if (status === Z_OK) {\n status = inflate_1$2.inflate(strm, _flush_mode);\n } else if (status === Z_DATA_ERROR) {\n // Replace code with more verbose\n status = Z_NEED_DICT;\n }\n }\n\n // Skip snyc markers if more data follows and not raw mode\n while (strm.avail_in > 0 &&\n status === Z_STREAM_END &&\n strm.state.wrap > 0 &&\n data[strm.next_in] !== 0)\n {\n inflate_1$2.inflateReset(strm);\n status = inflate_1$2.inflate(strm, _flush_mode);\n }\n\n switch (status) {\n case Z_STREAM_ERROR:\n case Z_DATA_ERROR:\n case Z_NEED_DICT:\n case Z_MEM_ERROR:\n this.onEnd(status);\n this.ended = true;\n return false;\n }\n\n // Remember real `avail_out` value, because we may patch out buffer content\n // to align utf8 strings boundaries.\n last_avail_out = strm.avail_out;\n\n if (strm.next_out) {\n if (strm.avail_out === 0 || status === Z_STREAM_END) {\n\n if (this.options.to === 'string') {\n\n let next_out_utf8 = strings.utf8border(strm.output, strm.next_out);\n\n let tail = strm.next_out - next_out_utf8;\n let utf8str = strings.buf2string(strm.output, next_out_utf8);\n\n // move tail & realign counters\n strm.next_out = tail;\n strm.avail_out = chunkSize - tail;\n if (tail) strm.output.set(strm.output.subarray(next_out_utf8, next_out_utf8 + tail), 0);\n\n this.onData(utf8str);\n\n } else {\n this.onData(strm.output.length === strm.next_out ? strm.output : strm.output.subarray(0, strm.next_out));\n }\n }\n }\n\n // Must repeat iteration if out buffer is full\n if (status === Z_OK && last_avail_out === 0) continue;\n\n // Finalize if end of stream reached.\n if (status === Z_STREAM_END) {\n status = inflate_1$2.inflateEnd(this.strm);\n this.onEnd(status);\n this.ended = true;\n return true;\n }\n\n if (strm.avail_in === 0) break;\n }\n\n return true;\n};\n\n\n/**\n * Inflate#onData(chunk) -> Void\n * - chunk (Uint8Array|String): output data. When string output requested,\n * each chunk will be string.\n *\n * By default, stores data blocks in `chunks[]` property and glue\n * those in `onEnd`. Override this handler, if you need another behaviour.\n **/\nInflate$1.prototype.onData = function (chunk) {\n this.chunks.push(chunk);\n};\n\n\n/**\n * Inflate#onEnd(status) -> Void\n * - status (Number): inflate status. 0 (Z_OK) on success,\n * other if not.\n *\n * Called either after you tell inflate that the input stream is\n * complete (Z_FINISH). By default - join collected chunks,\n * free memory and fill `results` / `err` properties.\n **/\nInflate$1.prototype.onEnd = function (status) {\n // On success - join\n if (status === Z_OK) {\n if (this.options.to === 'string') {\n this.result = this.chunks.join('');\n } else {\n this.result = common.flattenChunks(this.chunks);\n }\n }\n this.chunks = [];\n this.err = status;\n this.msg = this.strm.msg;\n};\n\n\n/**\n * inflate(data[, options]) -> Uint8Array|String\n * - data (Uint8Array): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * Decompress `data` with inflate/ungzip and `options`. Autodetect\n * format via wrapper header by default. That's why we don't provide\n * separate `ungzip` method.\n *\n * Supported options are:\n *\n * - windowBits\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information.\n *\n * Sugar (options):\n *\n * - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify\n * negative windowBits implicitly.\n * - `to` (String) - if equal to 'string', then result will be converted\n * from utf8 to utf16 (javascript) string. When string output requested,\n * chunk length can differ from `chunkSize`, depending on content.\n *\n *\n * ##### Example:\n *\n * ```javascript\n * const pako = require('pako');\n * const input = pako.deflate(new Uint8Array([1,2,3,4,5,6,7,8,9]));\n * let output;\n *\n * try {\n * output = pako.inflate(input);\n * } catch (err) {\n * console.log(err);\n * }\n * ```\n **/\nfunction inflate$1(input, options) {\n const inflator = new Inflate$1(options);\n\n inflator.push(input);\n\n // That will never happens, if you don't cheat with options :)\n if (inflator.err) throw inflator.msg || messages[inflator.err];\n\n return inflator.result;\n}\n\n\n/**\n * inflateRaw(data[, options]) -> Uint8Array|String\n * - data (Uint8Array): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * The same as [[inflate]], but creates raw data, without wrapper\n * (header and adler32 crc).\n **/\nfunction inflateRaw$1(input, options) {\n options = options || {};\n options.raw = true;\n return inflate$1(input, options);\n}\n\n\n/**\n * ungzip(data[, options]) -> Uint8Array|String\n * - data (Uint8Array): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * Just shortcut to [[inflate]], because it autodetects format\n * by header.content. Done for convenience.\n **/\n\n\nvar Inflate_1$1 = Inflate$1;\nvar inflate_2 = inflate$1;\nvar inflateRaw_1$1 = inflateRaw$1;\nvar ungzip$1 = inflate$1;\nvar constants = constants$2;\n\nvar inflate_1$1 = {\n\tInflate: Inflate_1$1,\n\tinflate: inflate_2,\n\tinflateRaw: inflateRaw_1$1,\n\tungzip: ungzip$1,\n\tconstants: constants\n};\n\nconst { Deflate, deflate, deflateRaw, gzip } = deflate_1$1;\n\nconst { Inflate, inflate, inflateRaw, ungzip } = inflate_1$1;\n\n\n\nvar Deflate_1 = Deflate;\nvar deflate_1 = deflate;\nvar deflateRaw_1 = deflateRaw;\nvar gzip_1 = gzip;\nvar Inflate_1 = Inflate;\nvar inflate_1 = inflate;\nvar inflateRaw_1 = inflateRaw;\nvar ungzip_1 = ungzip;\nvar constants_1 = constants$2;\n\nvar pako = {\n\tDeflate: Deflate_1,\n\tdeflate: deflate_1,\n\tdeflateRaw: deflateRaw_1,\n\tgzip: gzip_1,\n\tInflate: Inflate_1,\n\tinflate: inflate_1,\n\tinflateRaw: inflateRaw_1,\n\tungzip: ungzip_1,\n\tconstants: constants_1\n};\n\nexport { Deflate_1 as Deflate, Inflate_1 as Inflate, constants_1 as constants, pako as default, deflate_1 as deflate, deflateRaw_1 as deflateRaw, gzip_1 as gzip, inflate_1 as inflate, inflateRaw_1 as inflateRaw, ungzip_1 as ungzip };\n","import pako from \"pako\";\n\nfunction toInt(val) {\n if (isNaN(val)) {\n throw new Error(\"Not a number: \" + val);\n } else if (typeof val == \"string\") {\n return parseInt(val);\n } else return val;\n}\n\nfunction toFloat(val) {\n if (typeof val == \"string\") {\n return parseFloat(val);\n } else return val;\n}\n\nclass BufferStream {\n constructor(sizeOrBuffer, littleEndian) {\n this.buffer =\n typeof sizeOrBuffer == \"number\"\n ? new ArrayBuffer(sizeOrBuffer)\n : sizeOrBuffer;\n if (!this.buffer) {\n this.buffer = new ArrayBuffer(0);\n }\n this.view = new DataView(this.buffer);\n this.offset = 0;\n this.isLittleEndian = littleEndian || false;\n this.size = 0;\n this.encoder = new TextEncoder(\"utf-8\");\n }\n\n setEndian(isLittle) {\n this.isLittleEndian = isLittle;\n }\n\n writeUint8(value) {\n this.checkSize(1);\n this.view.setUint8(this.offset, toInt(value));\n return this.increment(1);\n }\n\n writeUint8Repeat(value, count) {\n const v = toInt(value);\n this.checkSize(count);\n for (let i = 0; i < count; i++) {\n this.view.setUint8(this.offset + i, v);\n }\n return this.increment(count);\n }\n\n writeInt8(value) {\n this.checkSize(1);\n this.view.setInt8(this.offset, toInt(value));\n return this.increment(1);\n }\n\n writeUint16(value) {\n this.checkSize(2);\n this.view.setUint16(this.offset, toInt(value), this.isLittleEndian);\n return this.increment(2);\n }\n\n writeTwoUint16s(value) {\n this.checkSize(4);\n const first = value >> 16;\n const second = value & 0xffff;\n this.view.setUint16(this.offset, toInt(first), this.isLittleEndian);\n this.view.setUint16(\n this.offset + 2,\n toInt(second),\n this.isLittleEndian\n );\n return this.increment(4);\n }\n\n writeInt16(value) {\n this.checkSize(2);\n this.view.setInt16(this.offset, toInt(value), this.isLittleEndian);\n return this.increment(2);\n }\n\n writeUint32(value) {\n this.checkSize(4);\n this.view.setUint32(this.offset, toInt(value), this.isLittleEndian);\n return this.increment(4);\n }\n\n writeInt32(value) {\n this.checkSize(4);\n this.view.setInt32(this.offset, toInt(value), this.isLittleEndian);\n return this.increment(4);\n }\n\n writeFloat(value) {\n this.checkSize(4);\n this.view.setFloat32(this.offset, toFloat(value), this.isLittleEndian);\n return this.increment(4);\n }\n\n writeDouble(value) {\n this.checkSize(8);\n this.view.setFloat64(this.offset, toFloat(value), this.isLittleEndian);\n return this.increment(8);\n }\n\n writeUTF8String(value) {\n const encodedString = this.encoder.encode(value);\n this.checkSize(encodedString.byteLength);\n new Uint8Array(this.buffer).set(encodedString, this.offset);\n return this.increment(encodedString.byteLength);\n }\n\n writeAsciiString(value) {\n value = value || \"\";\n var len = value.length;\n this.checkSize(len);\n var startOffset = this.offset;\n for (let i = 0; i < len; i++) {\n var charcode = value.charCodeAt(i);\n this.view.setUint8(startOffset + i, charcode);\n }\n return this.increment(len);\n }\n\n readUint32() {\n var val = this.view.getUint32(this.offset, this.isLittleEndian);\n this.increment(4);\n return val;\n }\n\n readUint16() {\n var val = this.view.getUint16(this.offset, this.isLittleEndian);\n this.increment(2);\n return val;\n }\n\n readUint8() {\n var val = this.view.getUint8(this.offset);\n this.increment(1);\n return val;\n }\n\n peekUint8(offset) {\n return this.view.getUint8(this.offset + offset);\n }\n\n readUint8Array(length) {\n var arr = new Uint8Array(this.buffer, this.offset, length);\n this.increment(length);\n return arr;\n }\n\n readUint16Array(length) {\n var sixlen = length / 2,\n arr = new Uint16Array(sixlen),\n i = 0;\n while (i++ < sixlen) {\n arr[i] = this.view.getUint16(this.offset, this.isLittleEndian);\n this.offset += 2;\n }\n return arr;\n }\n\n readInt16() {\n var val = this.view.getInt16(this.offset, this.isLittleEndian);\n this.increment(2);\n return val;\n }\n\n readInt32() {\n var val = this.view.getInt32(this.offset, this.isLittleEndian);\n this.increment(4);\n return val;\n }\n\n readFloat() {\n var val = this.view.getFloat32(this.offset, this.isLittleEndian);\n this.increment(4);\n return val;\n }\n\n readDouble() {\n var val = this.view.getFloat64(this.offset, this.isLittleEndian);\n this.increment(8);\n return val;\n }\n\n readAsciiString(length) {\n var result = \"\";\n var start = this.offset;\n var end = this.offset + length;\n if (end >= this.buffer.byteLength) {\n end = this.buffer.byteLength;\n }\n for (let i = start; i < end; ++i) {\n result += String.fromCharCode(this.view.getUint8(i));\n }\n this.increment(end - start);\n return result;\n }\n\n readVR() {\n var vr =\n String.fromCharCode(this.view.getUint8(this.offset)) +\n String.fromCharCode(this.view.getUint8(this.offset + 1));\n this.increment(2);\n return vr;\n }\n\n readEncodedString(length) {\n if (this.offset + length >= this.buffer.byteLength) {\n length = this.buffer.byteLength - this.offset;\n }\n const view = new DataView(this.buffer, this.offset, length);\n const result = this.decoder.decode(view);\n this.increment(length);\n return result;\n }\n\n readHex(length) {\n var hexString = \"\";\n for (var i = 0; i < length; i++) {\n hexString += this.readUint8().toString(16);\n }\n return hexString;\n }\n\n checkSize(step) {\n if (this.offset + step > this.buffer.byteLength) {\n //throw new Error(\"Writing exceeded the size of buffer\");\n //\n // Resize the buffer.\n // The idea is that when it is necessary to increase the buffer size,\n // there will likely be more bytes which need to be written to the\n // buffer in the future. Buffer allocation is costly.\n // So we increase the buffer size right now\n // by a larger amount than necessary, to reserve space for later\n // writes which then can be done much faster. The current size of\n // the buffer is the best estimate of the scale by which the size\n // should increase.\n // So approximately doubling the size of the buffer\n // (while ensuring it fits the new data) is a simple but effective strategy.\n var dstSize = this.offset + step + this.buffer.byteLength;\n var dst = new ArrayBuffer(dstSize);\n new Uint8Array(dst).set(new Uint8Array(this.buffer));\n this.buffer = dst;\n this.view = new DataView(this.buffer);\n }\n }\n\n concat(stream) {\n var available = this.buffer.byteLength - this.offset;\n if (stream.size > available) {\n let newbuf = new ArrayBuffer(this.offset + stream.size);\n let int8 = new Uint8Array(newbuf);\n int8.set(new Uint8Array(this.getBuffer(0, this.offset)));\n int8.set(\n new Uint8Array(stream.getBuffer(0, stream.size)),\n this.offset\n );\n this.buffer = newbuf;\n this.view = new DataView(this.buffer);\n } else {\n let int8 = new Uint8Array(this.buffer);\n int8.set(\n new Uint8Array(stream.getBuffer(0, stream.size)),\n this.offset\n );\n }\n this.offset += stream.size;\n this.size = this.offset;\n return this.buffer.byteLength;\n }\n\n increment(step) {\n this.offset += step;\n if (this.offset > this.size) {\n this.size = this.offset;\n }\n return step;\n }\n\n getBuffer(start, end) {\n if (!start && !end) {\n start = 0;\n end = this.size;\n }\n\n return this.buffer.slice(start, end);\n }\n\n more(length) {\n if (this.offset + length > this.endOffset) {\n throw new Error(\"Request more than currently allocated buffer\");\n }\n\n const newBuf = new ReadBufferStream(this.buffer, null, {\n start: this.offset,\n stop: this.offset + length\n });\n this.increment(length);\n\n return newBuf;\n }\n\n reset() {\n this.offset = 0;\n return this;\n }\n\n end() {\n return this.offset >= this.buffer.byteLength;\n }\n\n toEnd() {\n this.offset = this.buffer.byteLength;\n }\n}\n\nclass ReadBufferStream extends BufferStream {\n constructor(\n buffer,\n littleEndian,\n options = {\n start: null,\n stop: null,\n noCopy: false\n }\n ) {\n super(buffer, littleEndian);\n this.offset = options.start || 0;\n this.size = options.stop || this.buffer.byteLength;\n this.noCopy = options.noCopy;\n this.startOffset = this.offset;\n this.endOffset = this.size;\n this.decoder = new TextDecoder(\"latin1\");\n }\n\n setDecoder(decoder) {\n this.decoder = decoder;\n }\n\n getBuffer(start, end) {\n if (this.noCopy) {\n return new Uint8Array(this.buffer, start, end - start);\n }\n if (!start && !end) {\n start = 0;\n end = this.size;\n }\n\n return this.buffer.slice(start, end);\n }\n\n reset() {\n this.offset = this.startOffset;\n return this;\n }\n\n end() {\n return this.offset >= this.endOffset;\n }\n\n toEnd() {\n this.offset = this.endOffset;\n }\n\n writeUint8(value) {\n throw new Error(value, \"writeUint8 not implemented\");\n }\n\n writeUint8Repeat(value, count) {\n throw new Error(value, \"writeUint8Repeat not implemented\");\n }\n\n writeInt8(value) {\n throw new Error(value, \"writeInt8 not implemented\");\n }\n\n writeUint16(value) {\n throw new Error(value, \"writeUint16 not implemented\");\n }\n\n writeTwoUint16s(value) {\n throw new Error(value, \"writeTwoUint16s not implemented\");\n }\n\n writeInt16(value) {\n throw new Error(value, \"writeInt16 not implemented\");\n }\n\n writeUint32(value) {\n throw new Error(value, \"writeUint32 not implemented\");\n }\n\n writeInt32(value) {\n throw new Error(value, \"writeInt32 not implemented\");\n }\n\n writeFloat(value) {\n throw new Error(value, \"writeFloat not implemented\");\n }\n\n writeDouble(value) {\n throw new Error(value, \"writeDouble not implemented\");\n }\n\n writeAsciiString(value) {\n throw new Error(value, \"writeAsciiString not implemented\");\n }\n\n writeUTF8String(value) {\n throw new Error(value, \"writeUTF8String not implemented\");\n }\n\n checkSize(step) {\n throw new Error(step, \"checkSize not implemented\");\n }\n\n concat(stream) {\n throw new Error(stream, \"concat not implemented\");\n }\n}\n\nclass DeflatedReadBufferStream extends ReadBufferStream {\n constructor(stream, options) {\n const inflatedBuffer = pako.inflateRaw(\n stream.getBuffer(stream.offset, stream.size)\n );\n super(inflatedBuffer.buffer, stream.littleEndian, options);\n }\n}\n\nclass WriteBufferStream extends BufferStream {\n constructor(buffer, littleEndian) {\n super(buffer, littleEndian);\n this.size = 0;\n }\n}\n\nexport { ReadBufferStream };\nexport { DeflatedReadBufferStream };\nexport { WriteBufferStream };\n","// TransferSyntaxUIDs\nexport const IMPLICIT_LITTLE_ENDIAN = \"1.2.840.10008.1.2\";\nexport const EXPLICIT_LITTLE_ENDIAN = \"1.2.840.10008.1.2.1\";\nexport const DEFLATED_EXPLICIT_LITTLE_ENDIAN = \"1.2.840.10008.1.2.1.99\";\nexport const EXPLICIT_BIG_ENDIAN = \"1.2.840.10008.1.2.2\";\n\n// Data Element Length\nexport const UNDEFINED_LENGTH = 0xffffffff;\nexport const ITEM_DELIMITATION_LENGTH = 0x00000000;\n\n// Delimitation Value\nexport const SEQUENCE_DELIMITATION_VALUE = 0x00000000;\n\n// Value multiplicity and padding\nexport const VM_DELIMITER = 0x5c;\nexport const PADDING_NULL = 0x00;\nexport const PADDING_SPACE = 0x20;\n\n// PersonName delimeters\nexport const PN_COMPONENT_DELIMITER = 0x3d;\n","const dictionary = {\n \"(0000,0000)\": {\n tag: \"(0000,0000)\",\n vr: \"UL\",\n name: \"CommandGroupLength\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0000,0002)\": {\n tag: \"(0000,0002)\",\n vr: \"UI\",\n name: \"AffectedSOPClassUID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0000,0003)\": {\n tag: \"(0000,0003)\",\n vr: \"UI\",\n name: \"RequestedSOPClassUID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0000,0100)\": {\n tag: \"(0000,0100)\",\n vr: \"US\",\n name: \"CommandField\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0000,0110)\": {\n tag: \"(0000,0110)\",\n vr: \"US\",\n name: \"MessageID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0000,0120)\": {\n tag: \"(0000,0120)\",\n vr: \"US\",\n name: \"MessageIDBeingRespondedTo\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0000,0600)\": {\n tag: \"(0000,0600)\",\n vr: \"AE\",\n name: \"MoveDestination\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0000,0700)\": {\n tag: \"(0000,0700)\",\n vr: \"US\",\n name: \"Priority\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0000,0800)\": {\n tag: \"(0000,0800)\",\n vr: \"US\",\n name: \"CommandDataSetType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0000,0900)\": {\n tag: \"(0000,0900)\",\n vr: \"US\",\n name: \"Status\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0000,0901)\": {\n tag: \"(0000,0901)\",\n vr: \"AT\",\n name: \"OffendingElement\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0000,0902)\": {\n tag: \"(0000,0902)\",\n vr: \"LO\",\n name: \"ErrorComment\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0000,0903)\": {\n tag: \"(0000,0903)\",\n vr: \"US\",\n name: \"ErrorID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0000,1000)\": {\n tag: \"(0000,1000)\",\n vr: \"UI\",\n name: \"AffectedSOPInstanceUID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0000,1001)\": {\n tag: \"(0000,1001)\",\n vr: \"UI\",\n name: \"RequestedSOPInstanceUID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0000,1002)\": {\n tag: \"(0000,1002)\",\n vr: \"US\",\n name: \"EventTypeID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0000,1005)\": {\n tag: \"(0000,1005)\",\n vr: \"AT\",\n name: \"AttributeIdentifierList\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0000,1008)\": {\n tag: \"(0000,1008)\",\n vr: \"US\",\n name: \"ActionTypeID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0000,1020)\": {\n tag: \"(0000,1020)\",\n vr: \"US\",\n name: \"NumberOfRemainingSuboperations\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0000,1021)\": {\n tag: \"(0000,1021)\",\n vr: \"US\",\n name: \"NumberOfCompletedSuboperations\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0000,1022)\": {\n tag: \"(0000,1022)\",\n vr: \"US\",\n name: \"NumberOfFailedSuboperations\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0000,1023)\": {\n tag: \"(0000,1023)\",\n vr: \"US\",\n name: \"NumberOfWarningSuboperations\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0000,1030)\": {\n tag: \"(0000,1030)\",\n vr: \"AE\",\n name: \"MoveOriginatorApplicationEntityTitle\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0000,1031)\": {\n tag: \"(0000,1031)\",\n vr: \"US\",\n name: \"MoveOriginatorMessageID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0002,0000)\": {\n tag: \"(0002,0000)\",\n vr: \"UL\",\n name: \"FileMetaInformationGroupLength\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0002,0001)\": {\n tag: \"(0002,0001)\",\n vr: \"OB\",\n name: \"FileMetaInformationVersion\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0002,0002)\": {\n tag: \"(0002,0002)\",\n vr: \"UI\",\n name: \"MediaStorageSOPClassUID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0002,0003)\": {\n tag: \"(0002,0003)\",\n vr: \"UI\",\n name: \"MediaStorageSOPInstanceUID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0002,0010)\": {\n tag: \"(0002,0010)\",\n vr: \"UI\",\n name: \"TransferSyntaxUID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0002,0012)\": {\n tag: \"(0002,0012)\",\n vr: \"UI\",\n name: \"ImplementationClassUID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0002,0013)\": {\n tag: \"(0002,0013)\",\n vr: \"SH\",\n name: \"ImplementationVersionName\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0002,0016)\": {\n tag: \"(0002,0016)\",\n vr: \"AE\",\n name: \"SourceApplicationEntityTitle\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0002,0017)\": {\n tag: \"(0002,0017)\",\n vr: \"AE\",\n name: \"SendingApplicationEntityTitle\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0002,0018)\": {\n tag: \"(0002,0018)\",\n vr: \"AE\",\n name: \"ReceivingApplicationEntityTitle\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0002,0100)\": {\n tag: \"(0002,0100)\",\n vr: \"UI\",\n name: \"PrivateInformationCreatorUID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0002,0102)\": {\n tag: \"(0002,0102)\",\n vr: \"OB\",\n name: \"PrivateInformation\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0004,1130)\": {\n tag: \"(0004,1130)\",\n vr: \"CS\",\n name: \"FileSetID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0004,1141)\": {\n tag: \"(0004,1141)\",\n vr: \"CS\",\n name: \"FileSetDescriptorFileID\",\n vm: \"1-8\",\n version: \"DICOM\"\n },\n \"(0004,1142)\": {\n tag: \"(0004,1142)\",\n vr: \"CS\",\n name: \"SpecificCharacterSetOfFileSetDescriptorFile\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0004,1200)\": {\n tag: \"(0004,1200)\",\n vr: \"up\",\n name: \"OffsetOfTheFirstDirectoryRecordOfTheRootDirectoryEntity\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0004,1202)\": {\n tag: \"(0004,1202)\",\n vr: \"up\",\n name: \"OffsetOfTheLastDirectoryRecordOfTheRootDirectoryEntity\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0004,1212)\": {\n tag: \"(0004,1212)\",\n vr: \"US\",\n name: \"FileSetConsistencyFlag\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0004,1220)\": {\n tag: \"(0004,1220)\",\n vr: \"SQ\",\n name: \"DirectoryRecordSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0004,1400)\": {\n tag: \"(0004,1400)\",\n vr: \"up\",\n name: \"OffsetOfTheNextDirectoryRecord\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0004,1410)\": {\n tag: \"(0004,1410)\",\n vr: \"US\",\n name: \"RecordInUseFlag\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0004,1420)\": {\n tag: \"(0004,1420)\",\n vr: \"up\",\n name: \"OffsetOfReferencedLowerLevelDirectoryEntity\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0004,1430)\": {\n tag: \"(0004,1430)\",\n vr: \"CS\",\n name: \"DirectoryRecordType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0004,1432)\": {\n tag: \"(0004,1432)\",\n vr: \"UI\",\n name: \"PrivateRecordUID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0004,1500)\": {\n tag: \"(0004,1500)\",\n vr: \"CS\",\n name: \"ReferencedFileID\",\n vm: \"1-8\",\n version: \"DICOM\"\n },\n \"(0004,1510)\": {\n tag: \"(0004,1510)\",\n vr: \"UI\",\n name: \"ReferencedSOPClassUIDInFile\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0004,1511)\": {\n tag: \"(0004,1511)\",\n vr: \"UI\",\n name: \"ReferencedSOPInstanceUIDInFile\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0004,1512)\": {\n tag: \"(0004,1512)\",\n vr: \"UI\",\n name: \"ReferencedTransferSyntaxUIDInFile\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0004,151A)\": {\n tag: \"(0004,151A)\",\n vr: \"UI\",\n name: \"ReferencedRelatedGeneralSOPClassUIDInFile\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0008,0005)\": {\n tag: \"(0008,0005)\",\n vr: \"CS\",\n name: \"SpecificCharacterSet\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0008,0006)\": {\n tag: \"(0008,0006)\",\n vr: \"SQ\",\n name: \"LanguageCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,0008)\": {\n tag: \"(0008,0008)\",\n vr: \"CS\",\n name: \"ImageType\",\n vm: \"2-n\",\n version: \"DICOM\"\n },\n \"(0008,0012)\": {\n tag: \"(0008,0012)\",\n vr: \"DA\",\n name: \"InstanceCreationDate\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,0013)\": {\n tag: \"(0008,0013)\",\n vr: \"TM\",\n name: \"InstanceCreationTime\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,0014)\": {\n tag: \"(0008,0014)\",\n vr: \"UI\",\n name: \"InstanceCreatorUID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,0015)\": {\n tag: \"(0008,0015)\",\n vr: \"DT\",\n name: \"InstanceCoercionDateTime\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,0016)\": {\n tag: \"(0008,0016)\",\n vr: \"UI\",\n name: \"SOPClassUID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,0018)\": {\n tag: \"(0008,0018)\",\n vr: \"UI\",\n name: \"SOPInstanceUID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,001A)\": {\n tag: \"(0008,001A)\",\n vr: \"UI\",\n name: \"RelatedGeneralSOPClassUID\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0008,001B)\": {\n tag: \"(0008,001B)\",\n vr: \"UI\",\n name: \"OriginalSpecializedSOPClassUID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,0020)\": {\n tag: \"(0008,0020)\",\n vr: \"DA\",\n name: \"StudyDate\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,0021)\": {\n tag: \"(0008,0021)\",\n vr: \"DA\",\n name: \"SeriesDate\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,0022)\": {\n tag: \"(0008,0022)\",\n vr: \"DA\",\n name: \"AcquisitionDate\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,0023)\": {\n tag: \"(0008,0023)\",\n vr: \"DA\",\n name: \"ContentDate\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,002A)\": {\n tag: \"(0008,002A)\",\n vr: \"DT\",\n name: \"AcquisitionDateTime\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,0030)\": {\n tag: \"(0008,0030)\",\n vr: \"TM\",\n name: \"StudyTime\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,0031)\": {\n tag: \"(0008,0031)\",\n vr: \"TM\",\n name: \"SeriesTime\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,0032)\": {\n tag: \"(0008,0032)\",\n vr: \"TM\",\n name: \"AcquisitionTime\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,0033)\": {\n tag: \"(0008,0033)\",\n vr: \"TM\",\n name: \"ContentTime\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,0050)\": {\n tag: \"(0008,0050)\",\n vr: \"SH\",\n name: \"AccessionNumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,0051)\": {\n tag: \"(0008,0051)\",\n vr: \"SQ\",\n name: \"IssuerOfAccessionNumberSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,0052)\": {\n tag: \"(0008,0052)\",\n vr: \"CS\",\n name: \"QueryRetrieveLevel\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,0053)\": {\n tag: \"(0008,0053)\",\n vr: \"CS\",\n name: \"QueryRetrieveView\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,0054)\": {\n tag: \"(0008,0054)\",\n vr: \"AE\",\n name: \"RetrieveAETitle\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0008,0055)\": {\n tag: \"(0008,0055)\",\n vr: \"AE\",\n name: \"StationAETitle\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,0056)\": {\n tag: \"(0008,0056)\",\n vr: \"CS\",\n name: \"InstanceAvailability\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,0058)\": {\n tag: \"(0008,0058)\",\n vr: \"UI\",\n name: \"FailedSOPInstanceUIDList\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0008,0060)\": {\n tag: \"(0008,0060)\",\n vr: \"CS\",\n name: \"Modality\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,0061)\": {\n tag: \"(0008,0061)\",\n vr: \"CS\",\n name: \"ModalitiesInStudy\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0008,0062)\": {\n tag: \"(0008,0062)\",\n vr: \"UI\",\n name: \"SOPClassesInStudy\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0008,0063)\": {\n tag: \"(0008,0063)\",\n vr: \"SQ\",\n name: \"AnatomicRegionsInStudyCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,0064)\": {\n tag: \"(0008,0064)\",\n vr: \"CS\",\n name: \"ConversionType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,0068)\": {\n tag: \"(0008,0068)\",\n vr: \"CS\",\n name: \"PresentationIntentType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,0070)\": {\n tag: \"(0008,0070)\",\n vr: \"LO\",\n name: \"Manufacturer\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,0080)\": {\n tag: \"(0008,0080)\",\n vr: \"LO\",\n name: \"InstitutionName\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,0081)\": {\n tag: \"(0008,0081)\",\n vr: \"ST\",\n name: \"InstitutionAddress\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,0082)\": {\n tag: \"(0008,0082)\",\n vr: \"SQ\",\n name: \"InstitutionCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,0090)\": {\n tag: \"(0008,0090)\",\n vr: \"PN\",\n name: \"ReferringPhysicianName\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,0092)\": {\n tag: \"(0008,0092)\",\n vr: \"ST\",\n name: \"ReferringPhysicianAddress\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,0094)\": {\n tag: \"(0008,0094)\",\n vr: \"SH\",\n name: \"ReferringPhysicianTelephoneNumbers\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0008,0096)\": {\n tag: \"(0008,0096)\",\n vr: \"SQ\",\n name: \"ReferringPhysicianIdentificationSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,009C)\": {\n tag: \"(0008,009C)\",\n vr: \"PN\",\n name: \"ConsultingPhysicianName\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0008,009D)\": {\n tag: \"(0008,009D)\",\n vr: \"SQ\",\n name: \"ConsultingPhysicianIdentificationSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,0100)\": {\n tag: \"(0008,0100)\",\n vr: \"SH\",\n name: \"CodeValue\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,0101)\": {\n tag: \"(0008,0101)\",\n vr: \"LO\",\n name: \"ExtendedCodeValue\",\n vm: \"1\",\n version: \"DICOM/DICOS\"\n },\n \"(0008,0102)\": {\n tag: \"(0008,0102)\",\n vr: \"SH\",\n name: \"CodingSchemeDesignator\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,0103)\": {\n tag: \"(0008,0103)\",\n vr: \"SH\",\n name: \"CodingSchemeVersion\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,0104)\": {\n tag: \"(0008,0104)\",\n vr: \"LO\",\n name: \"CodeMeaning\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,0105)\": {\n tag: \"(0008,0105)\",\n vr: \"CS\",\n name: \"MappingResource\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,0106)\": {\n tag: \"(0008,0106)\",\n vr: \"DT\",\n name: \"ContextGroupVersion\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,0107)\": {\n tag: \"(0008,0107)\",\n vr: \"DT\",\n name: \"ContextGroupLocalVersion\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,0108)\": {\n tag: \"(0008,0108)\",\n vr: \"LT\",\n name: \"ExtendedCodeMeaning\",\n vm: \"1\",\n version: \"DICOM/DICOS\"\n },\n \"(0008,0109)\": {\n tag: \"(0008,0109)\",\n vr: \"SQ\",\n name: \"CodingSchemeResourcesSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,010A)\": {\n tag: \"(0008,010A)\",\n vr: \"CS\",\n name: \"CodingSchemeURLType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,010B)\": {\n tag: \"(0008,010B)\",\n vr: \"CS\",\n name: \"ContextGroupExtensionFlag\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,010C)\": {\n tag: \"(0008,010C)\",\n vr: \"UI\",\n name: \"CodingSchemeUID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,010D)\": {\n tag: \"(0008,010D)\",\n vr: \"UI\",\n name: \"ContextGroupExtensionCreatorUID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,010E)\": {\n tag: \"(0008,010E)\",\n vr: \"UR\",\n name: \"CodingSchemeURL\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,010F)\": {\n tag: \"(0008,010F)\",\n vr: \"CS\",\n name: \"ContextIdentifier\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,0110)\": {\n tag: \"(0008,0110)\",\n vr: \"SQ\",\n name: \"CodingSchemeIdentificationSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,0112)\": {\n tag: \"(0008,0112)\",\n vr: \"LO\",\n name: \"CodingSchemeRegistry\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,0114)\": {\n tag: \"(0008,0114)\",\n vr: \"ST\",\n name: \"CodingSchemeExternalID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,0115)\": {\n tag: \"(0008,0115)\",\n vr: \"ST\",\n name: \"CodingSchemeName\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,0116)\": {\n tag: \"(0008,0116)\",\n vr: \"ST\",\n name: \"CodingSchemeResponsibleOrganization\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,0117)\": {\n tag: \"(0008,0117)\",\n vr: \"UI\",\n name: \"ContextUID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,0118)\": {\n tag: \"(0008,0118)\",\n vr: \"UI\",\n name: \"MappingResourceUID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,0119)\": {\n tag: \"(0008,0119)\",\n vr: \"UC\",\n name: \"LongCodeValue\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,0120)\": {\n tag: \"(0008,0120)\",\n vr: \"UR\",\n name: \"URNCodeValue\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,0121)\": {\n tag: \"(0008,0121)\",\n vr: \"SQ\",\n name: \"EquivalentCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,0122)\": {\n tag: \"(0008,0122)\",\n vr: \"LO\",\n name: \"MappingResourceName\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,0123)\": {\n tag: \"(0008,0123)\",\n vr: \"SQ\",\n name: \"ContextGroupIdentificationSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,0124)\": {\n tag: \"(0008,0124)\",\n vr: \"SQ\",\n name: \"MappingResourceIdentificationSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,0201)\": {\n tag: \"(0008,0201)\",\n vr: \"SH\",\n name: \"TimezoneOffsetFromUTC\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,0220)\": {\n tag: \"(0008,0220)\",\n vr: \"SQ\",\n name: \"ResponsibleGroupCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,0221)\": {\n tag: \"(0008,0221)\",\n vr: \"CS\",\n name: \"EquipmentModality\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,0222)\": {\n tag: \"(0008,0222)\",\n vr: \"LO\",\n name: \"ManufacturerRelatedModelGroup\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,0300)\": {\n tag: \"(0008,0300)\",\n vr: \"SQ\",\n name: \"PrivateDataElementCharacteristicsSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,0301)\": {\n tag: \"(0008,0301)\",\n vr: \"US\",\n name: \"PrivateGroupReference\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,0302)\": {\n tag: \"(0008,0302)\",\n vr: \"LO\",\n name: \"PrivateCreatorReference\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,0303)\": {\n tag: \"(0008,0303)\",\n vr: \"CS\",\n name: \"BlockIdentifyingInformationStatus\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,0304)\": {\n tag: \"(0008,0304)\",\n vr: \"US\",\n name: \"NonidentifyingPrivateElements\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0008,0305)\": {\n tag: \"(0008,0305)\",\n vr: \"SQ\",\n name: \"DeidentificationActionSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,0306)\": {\n tag: \"(0008,0306)\",\n vr: \"US\",\n name: \"IdentifyingPrivateElements\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0008,0307)\": {\n tag: \"(0008,0307)\",\n vr: \"CS\",\n name: \"DeidentificationAction\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,0308)\": {\n tag: \"(0008,0308)\",\n vr: \"US\",\n name: \"PrivateDataElement\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,0309)\": {\n tag: \"(0008,0309)\",\n vr: \"UL\",\n name: \"PrivateDataElementValueMultiplicity\",\n vm: \"1-3\",\n version: \"DICOM\"\n },\n \"(0008,030A)\": {\n tag: \"(0008,030A)\",\n vr: \"CS\",\n name: \"PrivateDataElementValueRepresentation\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,030B)\": {\n tag: \"(0008,030B)\",\n vr: \"UL\",\n name: \"PrivateDataElementNumberOfItems\",\n vm: \"1-2\",\n version: \"DICOM\"\n },\n \"(0008,030C)\": {\n tag: \"(0008,030C)\",\n vr: \"UC\",\n name: \"PrivateDataElementName\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,030D)\": {\n tag: \"(0008,030D)\",\n vr: \"UC\",\n name: \"PrivateDataElementKeyword\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,030E)\": {\n tag: \"(0008,030E)\",\n vr: \"UT\",\n name: \"PrivateDataElementDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,030F)\": {\n tag: \"(0008,030F)\",\n vr: \"UT\",\n name: \"PrivateDataElementEncoding\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,0310)\": {\n tag: \"(0008,0310)\",\n vr: \"SQ\",\n name: \"PrivateDataElementDefinitionSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,1010)\": {\n tag: \"(0008,1010)\",\n vr: \"SH\",\n name: \"StationName\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,1030)\": {\n tag: \"(0008,1030)\",\n vr: \"LO\",\n name: \"StudyDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,1032)\": {\n tag: \"(0008,1032)\",\n vr: \"SQ\",\n name: \"ProcedureCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,103E)\": {\n tag: \"(0008,103E)\",\n vr: \"LO\",\n name: \"SeriesDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,103F)\": {\n tag: \"(0008,103F)\",\n vr: \"SQ\",\n name: \"SeriesDescriptionCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,1040)\": {\n tag: \"(0008,1040)\",\n vr: \"LO\",\n name: \"InstitutionalDepartmentName\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,1041)\": {\n tag: \"(0008,1041)\",\n vr: \"SQ\",\n name: \"InstitutionalDepartmentTypeCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,1048)\": {\n tag: \"(0008,1048)\",\n vr: \"PN\",\n name: \"PhysiciansOfRecord\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0008,1049)\": {\n tag: \"(0008,1049)\",\n vr: \"SQ\",\n name: \"PhysiciansOfRecordIdentificationSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,1050)\": {\n tag: \"(0008,1050)\",\n vr: \"PN\",\n name: \"PerformingPhysicianName\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0008,1052)\": {\n tag: \"(0008,1052)\",\n vr: \"SQ\",\n name: \"PerformingPhysicianIdentificationSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,1060)\": {\n tag: \"(0008,1060)\",\n vr: \"PN\",\n name: \"NameOfPhysiciansReadingStudy\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0008,1062)\": {\n tag: \"(0008,1062)\",\n vr: \"SQ\",\n name: \"PhysiciansReadingStudyIdentificationSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,1070)\": {\n tag: \"(0008,1070)\",\n vr: \"PN\",\n name: \"OperatorsName\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0008,1072)\": {\n tag: \"(0008,1072)\",\n vr: \"SQ\",\n name: \"OperatorIdentificationSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,1080)\": {\n tag: \"(0008,1080)\",\n vr: \"LO\",\n name: \"AdmittingDiagnosesDescription\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0008,1084)\": {\n tag: \"(0008,1084)\",\n vr: \"SQ\",\n name: \"AdmittingDiagnosesCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,1090)\": {\n tag: \"(0008,1090)\",\n vr: \"LO\",\n name: \"ManufacturerModelName\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,1110)\": {\n tag: \"(0008,1110)\",\n vr: \"SQ\",\n name: \"ReferencedStudySequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,1111)\": {\n tag: \"(0008,1111)\",\n vr: \"SQ\",\n name: \"ReferencedPerformedProcedureStepSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,1115)\": {\n tag: \"(0008,1115)\",\n vr: \"SQ\",\n name: \"ReferencedSeriesSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,1120)\": {\n tag: \"(0008,1120)\",\n vr: \"SQ\",\n name: \"ReferencedPatientSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,1125)\": {\n tag: \"(0008,1125)\",\n vr: \"SQ\",\n name: \"ReferencedVisitSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,1134)\": {\n tag: \"(0008,1134)\",\n vr: \"SQ\",\n name: \"ReferencedStereometricInstanceSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,113A)\": {\n tag: \"(0008,113A)\",\n vr: \"SQ\",\n name: \"ReferencedWaveformSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,1140)\": {\n tag: \"(0008,1140)\",\n vr: \"SQ\",\n name: \"ReferencedImageSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,114A)\": {\n tag: \"(0008,114A)\",\n vr: \"SQ\",\n name: \"ReferencedInstanceSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,114B)\": {\n tag: \"(0008,114B)\",\n vr: \"SQ\",\n name: \"ReferencedRealWorldValueMappingInstanceSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,1150)\": {\n tag: \"(0008,1150)\",\n vr: \"UI\",\n name: \"ReferencedSOPClassUID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,1155)\": {\n tag: \"(0008,1155)\",\n vr: \"UI\",\n name: \"ReferencedSOPInstanceUID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,1156)\": {\n tag: \"(0008,1156)\",\n vr: \"SQ\",\n name: \"DefinitionSourceSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,115A)\": {\n tag: \"(0008,115A)\",\n vr: \"UI\",\n name: \"SOPClassesSupported\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0008,1160)\": {\n tag: \"(0008,1160)\",\n vr: \"IS\",\n name: \"ReferencedFrameNumber\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0008,1161)\": {\n tag: \"(0008,1161)\",\n vr: \"UL\",\n name: \"SimpleFrameList\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0008,1162)\": {\n tag: \"(0008,1162)\",\n vr: \"UL\",\n name: \"CalculatedFrameList\",\n vm: \"3-3n\",\n version: \"DICOM\"\n },\n \"(0008,1163)\": {\n tag: \"(0008,1163)\",\n vr: \"FD\",\n name: \"TimeRange\",\n vm: \"2\",\n version: \"DICOM\"\n },\n \"(0008,1164)\": {\n tag: \"(0008,1164)\",\n vr: \"SQ\",\n name: \"FrameExtractionSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,1167)\": {\n tag: \"(0008,1167)\",\n vr: \"UI\",\n name: \"MultiFrameSourceSOPInstanceUID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,1190)\": {\n tag: \"(0008,1190)\",\n vr: \"UR\",\n name: \"RetrieveURL\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,1195)\": {\n tag: \"(0008,1195)\",\n vr: \"UI\",\n name: \"TransactionUID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,1196)\": {\n tag: \"(0008,1196)\",\n vr: \"US\",\n name: \"WarningReason\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,1197)\": {\n tag: \"(0008,1197)\",\n vr: \"US\",\n name: \"FailureReason\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,1198)\": {\n tag: \"(0008,1198)\",\n vr: \"SQ\",\n name: \"FailedSOPSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,1199)\": {\n tag: \"(0008,1199)\",\n vr: \"SQ\",\n name: \"ReferencedSOPSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,119A)\": {\n tag: \"(0008,119A)\",\n vr: \"SQ\",\n name: \"OtherFailuresSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,1200)\": {\n tag: \"(0008,1200)\",\n vr: \"SQ\",\n name: \"StudiesContainingOtherReferencedInstancesSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,1250)\": {\n tag: \"(0008,1250)\",\n vr: \"SQ\",\n name: \"RelatedSeriesSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,2111)\": {\n tag: \"(0008,2111)\",\n vr: \"ST\",\n name: \"DerivationDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,2112)\": {\n tag: \"(0008,2112)\",\n vr: \"SQ\",\n name: \"SourceImageSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,2120)\": {\n tag: \"(0008,2120)\",\n vr: \"SH\",\n name: \"StageName\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,2122)\": {\n tag: \"(0008,2122)\",\n vr: \"IS\",\n name: \"StageNumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,2124)\": {\n tag: \"(0008,2124)\",\n vr: \"IS\",\n name: \"NumberOfStages\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,2127)\": {\n tag: \"(0008,2127)\",\n vr: \"SH\",\n name: \"ViewName\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,2128)\": {\n tag: \"(0008,2128)\",\n vr: \"IS\",\n name: \"ViewNumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,2129)\": {\n tag: \"(0008,2129)\",\n vr: \"IS\",\n name: \"NumberOfEventTimers\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,212A)\": {\n tag: \"(0008,212A)\",\n vr: \"IS\",\n name: \"NumberOfViewsInStage\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,2130)\": {\n tag: \"(0008,2130)\",\n vr: \"DS\",\n name: \"EventElapsedTimes\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0008,2132)\": {\n tag: \"(0008,2132)\",\n vr: \"LO\",\n name: \"EventTimerNames\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0008,2133)\": {\n tag: \"(0008,2133)\",\n vr: \"SQ\",\n name: \"EventTimerSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,2134)\": {\n tag: \"(0008,2134)\",\n vr: \"FD\",\n name: \"EventTimeOffset\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,2135)\": {\n tag: \"(0008,2135)\",\n vr: \"SQ\",\n name: \"EventCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,2142)\": {\n tag: \"(0008,2142)\",\n vr: \"IS\",\n name: \"StartTrim\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,2143)\": {\n tag: \"(0008,2143)\",\n vr: \"IS\",\n name: \"StopTrim\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,2144)\": {\n tag: \"(0008,2144)\",\n vr: \"IS\",\n name: \"RecommendedDisplayFrameRate\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,2218)\": {\n tag: \"(0008,2218)\",\n vr: \"SQ\",\n name: \"AnatomicRegionSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,2220)\": {\n tag: \"(0008,2220)\",\n vr: \"SQ\",\n name: \"AnatomicRegionModifierSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,2228)\": {\n tag: \"(0008,2228)\",\n vr: \"SQ\",\n name: \"PrimaryAnatomicStructureSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,2229)\": {\n tag: \"(0008,2229)\",\n vr: \"SQ\",\n name: \"AnatomicStructureSpaceOrRegionSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,2230)\": {\n tag: \"(0008,2230)\",\n vr: \"SQ\",\n name: \"PrimaryAnatomicStructureModifierSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,3001)\": {\n tag: \"(0008,3001)\",\n vr: \"SQ\",\n name: \"AlternateRepresentationSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,3002)\": {\n tag: \"(0008,3002)\",\n vr: \"UI\",\n name: \"AvailableTransferSyntaxUID\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0008,3010)\": {\n tag: \"(0008,3010)\",\n vr: \"UI\",\n name: \"IrradiationEventUID\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0008,3011)\": {\n tag: \"(0008,3011)\",\n vr: \"SQ\",\n name: \"SourceIrradiationEventSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,3012)\": {\n tag: \"(0008,3012)\",\n vr: \"UI\",\n name: \"RadiopharmaceuticalAdministrationEventUID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,9007)\": {\n tag: \"(0008,9007)\",\n vr: \"CS\",\n name: \"FrameType\",\n vm: \"4\",\n version: \"DICOM\"\n },\n \"(0008,9092)\": {\n tag: \"(0008,9092)\",\n vr: \"SQ\",\n name: \"ReferencedImageEvidenceSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,9121)\": {\n tag: \"(0008,9121)\",\n vr: \"SQ\",\n name: \"ReferencedRawDataSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,9123)\": {\n tag: \"(0008,9123)\",\n vr: \"UI\",\n name: \"CreatorVersionUID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,9124)\": {\n tag: \"(0008,9124)\",\n vr: \"SQ\",\n name: \"DerivationImageSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,9154)\": {\n tag: \"(0008,9154)\",\n vr: \"SQ\",\n name: \"SourceImageEvidenceSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,9205)\": {\n tag: \"(0008,9205)\",\n vr: \"CS\",\n name: \"PixelPresentation\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,9206)\": {\n tag: \"(0008,9206)\",\n vr: \"CS\",\n name: \"VolumetricProperties\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,9207)\": {\n tag: \"(0008,9207)\",\n vr: \"CS\",\n name: \"VolumeBasedCalculationTechnique\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,9208)\": {\n tag: \"(0008,9208)\",\n vr: \"CS\",\n name: \"ComplexImageComponent\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,9209)\": {\n tag: \"(0008,9209)\",\n vr: \"CS\",\n name: \"AcquisitionContrast\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,9215)\": {\n tag: \"(0008,9215)\",\n vr: \"SQ\",\n name: \"DerivationCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,9237)\": {\n tag: \"(0008,9237)\",\n vr: \"SQ\",\n name: \"ReferencedPresentationStateSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,9410)\": {\n tag: \"(0008,9410)\",\n vr: \"SQ\",\n name: \"ReferencedOtherPlaneSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,9458)\": {\n tag: \"(0008,9458)\",\n vr: \"SQ\",\n name: \"FrameDisplaySequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,9459)\": {\n tag: \"(0008,9459)\",\n vr: \"FL\",\n name: \"RecommendedDisplayFrameRateInFloat\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0008,9460)\": {\n tag: \"(0008,9460)\",\n vr: \"CS\",\n name: \"SkipFrameRangeFlag\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0010,0010)\": {\n tag: \"(0010,0010)\",\n vr: \"PN\",\n name: \"PatientName\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0010,0020)\": {\n tag: \"(0010,0020)\",\n vr: \"LO\",\n name: \"PatientID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0010,0021)\": {\n tag: \"(0010,0021)\",\n vr: \"LO\",\n name: \"IssuerOfPatientID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0010,0022)\": {\n tag: \"(0010,0022)\",\n vr: \"CS\",\n name: \"TypeOfPatientID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0010,0024)\": {\n tag: \"(0010,0024)\",\n vr: \"SQ\",\n name: \"IssuerOfPatientIDQualifiersSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0010,0026)\": {\n tag: \"(0010,0026)\",\n vr: \"SQ\",\n name: \"SourcePatientGroupIdentificationSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0010,0027)\": {\n tag: \"(0010,0027)\",\n vr: \"SQ\",\n name: \"GroupOfPatientsIdentificationSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0010,0028)\": {\n tag: \"(0010,0028)\",\n vr: \"US\",\n name: \"SubjectRelativePositionInImage\",\n vm: \"3\",\n version: \"DICOM\"\n },\n \"(0010,0030)\": {\n tag: \"(0010,0030)\",\n vr: \"DA\",\n name: \"PatientBirthDate\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0010,0032)\": {\n tag: \"(0010,0032)\",\n vr: \"TM\",\n name: \"PatientBirthTime\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0010,0033)\": {\n tag: \"(0010,0033)\",\n vr: \"LO\",\n name: \"PatientBirthDateInAlternativeCalendar\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0010,0034)\": {\n tag: \"(0010,0034)\",\n vr: \"LO\",\n name: \"PatientDeathDateInAlternativeCalendar\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0010,0035)\": {\n tag: \"(0010,0035)\",\n vr: \"CS\",\n name: \"PatientAlternativeCalendar\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0010,0040)\": {\n tag: \"(0010,0040)\",\n vr: \"CS\",\n name: \"PatientSex\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0010,0050)\": {\n tag: \"(0010,0050)\",\n vr: \"SQ\",\n name: \"PatientInsurancePlanCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0010,0101)\": {\n tag: \"(0010,0101)\",\n vr: \"SQ\",\n name: \"PatientPrimaryLanguageCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0010,0102)\": {\n tag: \"(0010,0102)\",\n vr: \"SQ\",\n name: \"PatientPrimaryLanguageModifierCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0010,0200)\": {\n tag: \"(0010,0200)\",\n vr: \"CS\",\n name: \"QualityControlSubject\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0010,0201)\": {\n tag: \"(0010,0201)\",\n vr: \"SQ\",\n name: \"QualityControlSubjectTypeCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0010,0212)\": {\n tag: \"(0010,0212)\",\n vr: \"UC\",\n name: \"StrainDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0010,0213)\": {\n tag: \"(0010,0213)\",\n vr: \"LO\",\n name: \"StrainNomenclature\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0010,0214)\": {\n tag: \"(0010,0214)\",\n vr: \"LO\",\n name: \"StrainStockNumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0010,0215)\": {\n tag: \"(0010,0215)\",\n vr: \"SQ\",\n name: \"StrainSourceRegistryCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0010,0216)\": {\n tag: \"(0010,0216)\",\n vr: \"SQ\",\n name: \"StrainStockSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0010,0217)\": {\n tag: \"(0010,0217)\",\n vr: \"LO\",\n name: \"StrainSource\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0010,0218)\": {\n tag: \"(0010,0218)\",\n vr: \"UT\",\n name: \"StrainAdditionalInformation\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0010,0219)\": {\n tag: \"(0010,0219)\",\n vr: \"SQ\",\n name: \"StrainCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0010,0221)\": {\n tag: \"(0010,0221)\",\n vr: \"SQ\",\n name: \"GeneticModificationsSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0010,0222)\": {\n tag: \"(0010,0222)\",\n vr: \"UC\",\n name: \"GeneticModificationsDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0010,0223)\": {\n tag: \"(0010,0223)\",\n vr: \"LO\",\n name: \"GeneticModificationsNomenclature\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0010,0229)\": {\n tag: \"(0010,0229)\",\n vr: \"SQ\",\n name: \"GeneticModificationsCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0010,1000)\": {\n tag: \"(0010,1000)\",\n vr: \"LO\",\n name: \"OtherPatientIDs\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0010,1001)\": {\n tag: \"(0010,1001)\",\n vr: \"PN\",\n name: \"OtherPatientNames\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0010,1002)\": {\n tag: \"(0010,1002)\",\n vr: \"SQ\",\n name: \"OtherPatientIDsSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0010,1005)\": {\n tag: \"(0010,1005)\",\n vr: \"PN\",\n name: \"PatientBirthName\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0010,1010)\": {\n tag: \"(0010,1010)\",\n vr: \"AS\",\n name: \"PatientAge\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0010,1020)\": {\n tag: \"(0010,1020)\",\n vr: \"DS\",\n name: \"PatientSize\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0010,1021)\": {\n tag: \"(0010,1021)\",\n vr: \"SQ\",\n name: \"PatientSizeCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0010,1022)\": {\n tag: \"(0010,1022)\",\n vr: \"DS\",\n name: \"PatientBodyMassIndex\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0010,1023)\": {\n tag: \"(0010,1023)\",\n vr: \"DS\",\n name: \"MeasuredAPDimension\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0010,1024)\": {\n tag: \"(0010,1024)\",\n vr: \"DS\",\n name: \"MeasuredLateralDimension\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0010,1030)\": {\n tag: \"(0010,1030)\",\n vr: \"DS\",\n name: \"PatientWeight\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0010,1040)\": {\n tag: \"(0010,1040)\",\n vr: \"LO\",\n name: \"PatientAddress\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0010,1060)\": {\n tag: \"(0010,1060)\",\n vr: \"PN\",\n name: \"PatientMotherBirthName\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0010,1080)\": {\n tag: \"(0010,1080)\",\n vr: \"LO\",\n name: \"MilitaryRank\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0010,1081)\": {\n tag: \"(0010,1081)\",\n vr: \"LO\",\n name: \"BranchOfService\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0010,1090)\": {\n tag: \"(0010,1090)\",\n vr: \"LO\",\n name: \"MedicalRecordLocator\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0010,1100)\": {\n tag: \"(0010,1100)\",\n vr: \"SQ\",\n name: \"ReferencedPatientPhotoSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0010,2000)\": {\n tag: \"(0010,2000)\",\n vr: \"LO\",\n name: \"MedicalAlerts\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0010,2110)\": {\n tag: \"(0010,2110)\",\n vr: \"LO\",\n name: \"Allergies\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0010,2150)\": {\n tag: \"(0010,2150)\",\n vr: \"LO\",\n name: \"CountryOfResidence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0010,2152)\": {\n tag: \"(0010,2152)\",\n vr: \"LO\",\n name: \"RegionOfResidence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0010,2154)\": {\n tag: \"(0010,2154)\",\n vr: \"SH\",\n name: \"PatientTelephoneNumbers\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0010,2155)\": {\n tag: \"(0010,2155)\",\n vr: \"LT\",\n name: \"PatientTelecomInformation\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0010,2160)\": {\n tag: \"(0010,2160)\",\n vr: \"SH\",\n name: \"EthnicGroup\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0010,2180)\": {\n tag: \"(0010,2180)\",\n vr: \"SH\",\n name: \"Occupation\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0010,21A0)\": {\n tag: \"(0010,21A0)\",\n vr: \"CS\",\n name: \"SmokingStatus\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0010,21B0)\": {\n tag: \"(0010,21B0)\",\n vr: \"LT\",\n name: \"AdditionalPatientHistory\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0010,21C0)\": {\n tag: \"(0010,21C0)\",\n vr: \"US\",\n name: \"PregnancyStatus\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0010,21D0)\": {\n tag: \"(0010,21D0)\",\n vr: \"DA\",\n name: \"LastMenstrualDate\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0010,21F0)\": {\n tag: \"(0010,21F0)\",\n vr: \"LO\",\n name: \"PatientReligiousPreference\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0010,2201)\": {\n tag: \"(0010,2201)\",\n vr: \"LO\",\n name: \"PatientSpeciesDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0010,2202)\": {\n tag: \"(0010,2202)\",\n vr: \"SQ\",\n name: \"PatientSpeciesCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0010,2203)\": {\n tag: \"(0010,2203)\",\n vr: \"CS\",\n name: \"PatientSexNeutered\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0010,2210)\": {\n tag: \"(0010,2210)\",\n vr: \"CS\",\n name: \"AnatomicalOrientationType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0010,2292)\": {\n tag: \"(0010,2292)\",\n vr: \"LO\",\n name: \"PatientBreedDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0010,2293)\": {\n tag: \"(0010,2293)\",\n vr: \"SQ\",\n name: \"PatientBreedCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0010,2294)\": {\n tag: \"(0010,2294)\",\n vr: \"SQ\",\n name: \"BreedRegistrationSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0010,2295)\": {\n tag: \"(0010,2295)\",\n vr: \"LO\",\n name: \"BreedRegistrationNumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0010,2296)\": {\n tag: \"(0010,2296)\",\n vr: \"SQ\",\n name: \"BreedRegistryCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0010,2297)\": {\n tag: \"(0010,2297)\",\n vr: \"PN\",\n name: \"ResponsiblePerson\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0010,2298)\": {\n tag: \"(0010,2298)\",\n vr: \"CS\",\n name: \"ResponsiblePersonRole\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0010,2299)\": {\n tag: \"(0010,2299)\",\n vr: \"LO\",\n name: \"ResponsibleOrganization\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0010,4000)\": {\n tag: \"(0010,4000)\",\n vr: \"LT\",\n name: \"PatientComments\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0010,9431)\": {\n tag: \"(0010,9431)\",\n vr: \"FL\",\n name: \"ExaminedBodyThickness\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0012,0010)\": {\n tag: \"(0012,0010)\",\n vr: \"LO\",\n name: \"ClinicalTrialSponsorName\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0012,0020)\": {\n tag: \"(0012,0020)\",\n vr: \"LO\",\n name: \"ClinicalTrialProtocolID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0012,0021)\": {\n tag: \"(0012,0021)\",\n vr: \"LO\",\n name: \"ClinicalTrialProtocolName\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0012,0030)\": {\n tag: \"(0012,0030)\",\n vr: \"LO\",\n name: \"ClinicalTrialSiteID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0012,0031)\": {\n tag: \"(0012,0031)\",\n vr: \"LO\",\n name: \"ClinicalTrialSiteName\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0012,0040)\": {\n tag: \"(0012,0040)\",\n vr: \"LO\",\n name: \"ClinicalTrialSubjectID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0012,0042)\": {\n tag: \"(0012,0042)\",\n vr: \"LO\",\n name: \"ClinicalTrialSubjectReadingID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0012,0050)\": {\n tag: \"(0012,0050)\",\n vr: \"LO\",\n name: \"ClinicalTrialTimePointID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0012,0051)\": {\n tag: \"(0012,0051)\",\n vr: \"ST\",\n name: \"ClinicalTrialTimePointDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0012,0052)\": {\n tag: \"(0012,0052)\",\n vr: \"FD\",\n name: \"LongitudinalTemporalOffsetFromEvent\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0012,0053)\": {\n tag: \"(0012,0053)\",\n vr: \"CS\",\n name: \"LongitudinalTemporalEventType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0012,0060)\": {\n tag: \"(0012,0060)\",\n vr: \"LO\",\n name: \"ClinicalTrialCoordinatingCenterName\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0012,0062)\": {\n tag: \"(0012,0062)\",\n vr: \"CS\",\n name: \"PatientIdentityRemoved\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0012,0063)\": {\n tag: \"(0012,0063)\",\n vr: \"LO\",\n name: \"DeidentificationMethod\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0012,0064)\": {\n tag: \"(0012,0064)\",\n vr: \"SQ\",\n name: \"DeidentificationMethodCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0012,0071)\": {\n tag: \"(0012,0071)\",\n vr: \"LO\",\n name: \"ClinicalTrialSeriesID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0012,0072)\": {\n tag: \"(0012,0072)\",\n vr: \"LO\",\n name: \"ClinicalTrialSeriesDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0012,0081)\": {\n tag: \"(0012,0081)\",\n vr: \"LO\",\n name: \"ClinicalTrialProtocolEthicsCommitteeName\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0012,0082)\": {\n tag: \"(0012,0082)\",\n vr: \"LO\",\n name: \"ClinicalTrialProtocolEthicsCommitteeApprovalNumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0012,0083)\": {\n tag: \"(0012,0083)\",\n vr: \"SQ\",\n name: \"ConsentForClinicalTrialUseSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0012,0084)\": {\n tag: \"(0012,0084)\",\n vr: \"CS\",\n name: \"DistributionType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0012,0085)\": {\n tag: \"(0012,0085)\",\n vr: \"CS\",\n name: \"ConsentForDistributionFlag\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0014,0025)\": {\n tag: \"(0014,0025)\",\n vr: \"ST\",\n name: \"ComponentManufacturingProcedure\",\n vm: \"1-n\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,0028)\": {\n tag: \"(0014,0028)\",\n vr: \"ST\",\n name: \"ComponentManufacturer\",\n vm: \"1-n\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,0030)\": {\n tag: \"(0014,0030)\",\n vr: \"DS\",\n name: \"MaterialThickness\",\n vm: \"1-n\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,0032)\": {\n tag: \"(0014,0032)\",\n vr: \"DS\",\n name: \"MaterialPipeDiameter\",\n vm: \"1-n\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,0034)\": {\n tag: \"(0014,0034)\",\n vr: \"DS\",\n name: \"MaterialIsolationDiameter\",\n vm: \"1-n\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,0042)\": {\n tag: \"(0014,0042)\",\n vr: \"ST\",\n name: \"MaterialGrade\",\n vm: \"1-n\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,0044)\": {\n tag: \"(0014,0044)\",\n vr: \"ST\",\n name: \"MaterialPropertiesDescription\",\n vm: \"1-n\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,0046)\": {\n tag: \"(0014,0046)\",\n vr: \"LT\",\n name: \"MaterialNotes\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,0050)\": {\n tag: \"(0014,0050)\",\n vr: \"CS\",\n name: \"ComponentShape\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,0052)\": {\n tag: \"(0014,0052)\",\n vr: \"CS\",\n name: \"CurvatureType\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,0054)\": {\n tag: \"(0014,0054)\",\n vr: \"DS\",\n name: \"OuterDiameter\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,0056)\": {\n tag: \"(0014,0056)\",\n vr: \"DS\",\n name: \"InnerDiameter\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,1010)\": {\n tag: \"(0014,1010)\",\n vr: \"ST\",\n name: \"ActualEnvironmentalConditions\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,1020)\": {\n tag: \"(0014,1020)\",\n vr: \"DA\",\n name: \"ExpiryDate\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,1040)\": {\n tag: \"(0014,1040)\",\n vr: \"ST\",\n name: \"EnvironmentalConditions\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,2002)\": {\n tag: \"(0014,2002)\",\n vr: \"SQ\",\n name: \"EvaluatorSequence\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,2004)\": {\n tag: \"(0014,2004)\",\n vr: \"IS\",\n name: \"EvaluatorNumber\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,2006)\": {\n tag: \"(0014,2006)\",\n vr: \"PN\",\n name: \"EvaluatorName\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,2008)\": {\n tag: \"(0014,2008)\",\n vr: \"IS\",\n name: \"EvaluationAttempt\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,2012)\": {\n tag: \"(0014,2012)\",\n vr: \"SQ\",\n name: \"IndicationSequence\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,2014)\": {\n tag: \"(0014,2014)\",\n vr: \"IS\",\n name: \"IndicationNumber\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,2016)\": {\n tag: \"(0014,2016)\",\n vr: \"SH\",\n name: \"IndicationLabel\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,2018)\": {\n tag: \"(0014,2018)\",\n vr: \"ST\",\n name: \"IndicationDescription\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,201A)\": {\n tag: \"(0014,201A)\",\n vr: \"CS\",\n name: \"IndicationType\",\n vm: \"1-n\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,201C)\": {\n tag: \"(0014,201C)\",\n vr: \"CS\",\n name: \"IndicationDisposition\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,201E)\": {\n tag: \"(0014,201E)\",\n vr: \"SQ\",\n name: \"IndicationROISequence\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,2030)\": {\n tag: \"(0014,2030)\",\n vr: \"SQ\",\n name: \"IndicationPhysicalPropertySequence\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,2032)\": {\n tag: \"(0014,2032)\",\n vr: \"SH\",\n name: \"PropertyLabel\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,2202)\": {\n tag: \"(0014,2202)\",\n vr: \"IS\",\n name: \"CoordinateSystemNumberOfAxes\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,2204)\": {\n tag: \"(0014,2204)\",\n vr: \"SQ\",\n name: \"CoordinateSystemAxesSequence\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,2206)\": {\n tag: \"(0014,2206)\",\n vr: \"ST\",\n name: \"CoordinateSystemAxisDescription\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,2208)\": {\n tag: \"(0014,2208)\",\n vr: \"CS\",\n name: \"CoordinateSystemDataSetMapping\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,220A)\": {\n tag: \"(0014,220A)\",\n vr: \"IS\",\n name: \"CoordinateSystemAxisNumber\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,220C)\": {\n tag: \"(0014,220C)\",\n vr: \"CS\",\n name: \"CoordinateSystemAxisType\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,220E)\": {\n tag: \"(0014,220E)\",\n vr: \"CS\",\n name: \"CoordinateSystemAxisUnits\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,2210)\": {\n tag: \"(0014,2210)\",\n vr: \"OB\",\n name: \"CoordinateSystemAxisValues\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,2220)\": {\n tag: \"(0014,2220)\",\n vr: \"SQ\",\n name: \"CoordinateSystemTransformSequence\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,2222)\": {\n tag: \"(0014,2222)\",\n vr: \"ST\",\n name: \"TransformDescription\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,2224)\": {\n tag: \"(0014,2224)\",\n vr: \"IS\",\n name: \"TransformNumberOfAxes\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,2226)\": {\n tag: \"(0014,2226)\",\n vr: \"IS\",\n name: \"TransformOrderOfAxes\",\n vm: \"1-n\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,2228)\": {\n tag: \"(0014,2228)\",\n vr: \"CS\",\n name: \"TransformedAxisUnits\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,222A)\": {\n tag: \"(0014,222A)\",\n vr: \"DS\",\n name: \"CoordinateSystemTransformRotationAndScaleMatrix\",\n vm: \"1-n\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,222C)\": {\n tag: \"(0014,222C)\",\n vr: \"DS\",\n name: \"CoordinateSystemTransformTranslationMatrix\",\n vm: \"1-n\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,3011)\": {\n tag: \"(0014,3011)\",\n vr: \"DS\",\n name: \"InternalDetectorFrameTime\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,3012)\": {\n tag: \"(0014,3012)\",\n vr: \"DS\",\n name: \"NumberOfFramesIntegrated\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,3020)\": {\n tag: \"(0014,3020)\",\n vr: \"SQ\",\n name: \"DetectorTemperatureSequence\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,3022)\": {\n tag: \"(0014,3022)\",\n vr: \"ST\",\n name: \"SensorName\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,3024)\": {\n tag: \"(0014,3024)\",\n vr: \"DS\",\n name: \"HorizontalOffsetOfSensor\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,3026)\": {\n tag: \"(0014,3026)\",\n vr: \"DS\",\n name: \"VerticalOffsetOfSensor\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,3028)\": {\n tag: \"(0014,3028)\",\n vr: \"DS\",\n name: \"SensorTemperature\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,3040)\": {\n tag: \"(0014,3040)\",\n vr: \"SQ\",\n name: \"DarkCurrentSequence\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,3050)\": {\n tag: \"(0014,3050)\",\n vr: \"ox\",\n name: \"DarkCurrentCounts\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,3060)\": {\n tag: \"(0014,3060)\",\n vr: \"SQ\",\n name: \"GainCorrectionReferenceSequence\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,3070)\": {\n tag: \"(0014,3070)\",\n vr: \"ox\",\n name: \"AirCounts\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,3071)\": {\n tag: \"(0014,3071)\",\n vr: \"DS\",\n name: \"KVUsedInGainCalibration\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,3072)\": {\n tag: \"(0014,3072)\",\n vr: \"DS\",\n name: \"MAUsedInGainCalibration\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,3073)\": {\n tag: \"(0014,3073)\",\n vr: \"DS\",\n name: \"NumberOfFramesUsedForIntegration\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,3074)\": {\n tag: \"(0014,3074)\",\n vr: \"LO\",\n name: \"FilterMaterialUsedInGainCalibration\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,3075)\": {\n tag: \"(0014,3075)\",\n vr: \"DS\",\n name: \"FilterThicknessUsedInGainCalibration\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,3076)\": {\n tag: \"(0014,3076)\",\n vr: \"DA\",\n name: \"DateOfGainCalibration\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,3077)\": {\n tag: \"(0014,3077)\",\n vr: \"TM\",\n name: \"TimeOfGainCalibration\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,3080)\": {\n tag: \"(0014,3080)\",\n vr: \"OB\",\n name: \"BadPixelImage\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,3099)\": {\n tag: \"(0014,3099)\",\n vr: \"LT\",\n name: \"CalibrationNotes\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,4002)\": {\n tag: \"(0014,4002)\",\n vr: \"SQ\",\n name: \"PulserEquipmentSequence\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,4004)\": {\n tag: \"(0014,4004)\",\n vr: \"CS\",\n name: \"PulserType\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,4006)\": {\n tag: \"(0014,4006)\",\n vr: \"LT\",\n name: \"PulserNotes\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,4008)\": {\n tag: \"(0014,4008)\",\n vr: \"SQ\",\n name: \"ReceiverEquipmentSequence\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,400A)\": {\n tag: \"(0014,400A)\",\n vr: \"CS\",\n name: \"AmplifierType\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,400C)\": {\n tag: \"(0014,400C)\",\n vr: \"LT\",\n name: \"ReceiverNotes\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,400E)\": {\n tag: \"(0014,400E)\",\n vr: \"SQ\",\n name: \"PreAmplifierEquipmentSequence\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,400F)\": {\n tag: \"(0014,400F)\",\n vr: \"LT\",\n name: \"PreAmplifierNotes\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,4010)\": {\n tag: \"(0014,4010)\",\n vr: \"SQ\",\n name: \"TransmitTransducerSequence\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,4011)\": {\n tag: \"(0014,4011)\",\n vr: \"SQ\",\n name: \"ReceiveTransducerSequence\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,4012)\": {\n tag: \"(0014,4012)\",\n vr: \"US\",\n name: \"NumberOfElements\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,4013)\": {\n tag: \"(0014,4013)\",\n vr: \"CS\",\n name: \"ElementShape\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,4014)\": {\n tag: \"(0014,4014)\",\n vr: \"DS\",\n name: \"ElementDimensionA\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,4015)\": {\n tag: \"(0014,4015)\",\n vr: \"DS\",\n name: \"ElementDimensionB\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,4016)\": {\n tag: \"(0014,4016)\",\n vr: \"DS\",\n name: \"ElementPitchA\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,4017)\": {\n tag: \"(0014,4017)\",\n vr: \"DS\",\n name: \"MeasuredBeamDimensionA\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,4018)\": {\n tag: \"(0014,4018)\",\n vr: \"DS\",\n name: \"MeasuredBeamDimensionB\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,4019)\": {\n tag: \"(0014,4019)\",\n vr: \"DS\",\n name: \"LocationOfMeasuredBeamDiameter\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,401A)\": {\n tag: \"(0014,401A)\",\n vr: \"DS\",\n name: \"NominalFrequency\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,401B)\": {\n tag: \"(0014,401B)\",\n vr: \"DS\",\n name: \"MeasuredCenterFrequency\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,401C)\": {\n tag: \"(0014,401C)\",\n vr: \"DS\",\n name: \"MeasuredBandwidth\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,401D)\": {\n tag: \"(0014,401D)\",\n vr: \"DS\",\n name: \"ElementPitchB\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,4020)\": {\n tag: \"(0014,4020)\",\n vr: \"SQ\",\n name: \"PulserSettingsSequence\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,4022)\": {\n tag: \"(0014,4022)\",\n vr: \"DS\",\n name: \"PulseWidth\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,4024)\": {\n tag: \"(0014,4024)\",\n vr: \"DS\",\n name: \"ExcitationFrequency\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,4026)\": {\n tag: \"(0014,4026)\",\n vr: \"CS\",\n name: \"ModulationType\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,4028)\": {\n tag: \"(0014,4028)\",\n vr: \"DS\",\n name: \"Damping\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,4030)\": {\n tag: \"(0014,4030)\",\n vr: \"SQ\",\n name: \"ReceiverSettingsSequence\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,4031)\": {\n tag: \"(0014,4031)\",\n vr: \"DS\",\n name: \"AcquiredSoundpathLength\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,4032)\": {\n tag: \"(0014,4032)\",\n vr: \"CS\",\n name: \"AcquisitionCompressionType\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,4033)\": {\n tag: \"(0014,4033)\",\n vr: \"IS\",\n name: \"AcquisitionSampleSize\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,4034)\": {\n tag: \"(0014,4034)\",\n vr: \"DS\",\n name: \"RectifierSmoothing\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,4035)\": {\n tag: \"(0014,4035)\",\n vr: \"SQ\",\n name: \"DACSequence\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,4036)\": {\n tag: \"(0014,4036)\",\n vr: \"CS\",\n name: \"DACType\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,4038)\": {\n tag: \"(0014,4038)\",\n vr: \"DS\",\n name: \"DACGainPoints\",\n vm: \"1-n\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,403A)\": {\n tag: \"(0014,403A)\",\n vr: \"DS\",\n name: \"DACTimePoints\",\n vm: \"1-n\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,403C)\": {\n tag: \"(0014,403C)\",\n vr: \"DS\",\n name: \"DACAmplitude\",\n vm: \"1-n\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,4040)\": {\n tag: \"(0014,4040)\",\n vr: \"SQ\",\n name: \"PreAmplifierSettingsSequence\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,4050)\": {\n tag: \"(0014,4050)\",\n vr: \"SQ\",\n name: \"TransmitTransducerSettingsSequence\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,4051)\": {\n tag: \"(0014,4051)\",\n vr: \"SQ\",\n name: \"ReceiveTransducerSettingsSequence\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,4052)\": {\n tag: \"(0014,4052)\",\n vr: \"DS\",\n name: \"IncidentAngle\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,4054)\": {\n tag: \"(0014,4054)\",\n vr: \"ST\",\n name: \"CouplingTechnique\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,4056)\": {\n tag: \"(0014,4056)\",\n vr: \"ST\",\n name: \"CouplingMedium\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,4057)\": {\n tag: \"(0014,4057)\",\n vr: \"DS\",\n name: \"CouplingVelocity\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,4058)\": {\n tag: \"(0014,4058)\",\n vr: \"DS\",\n name: \"ProbeCenterLocationX\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,4059)\": {\n tag: \"(0014,4059)\",\n vr: \"DS\",\n name: \"ProbeCenterLocationZ\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,405A)\": {\n tag: \"(0014,405A)\",\n vr: \"DS\",\n name: \"SoundPathLength\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,405C)\": {\n tag: \"(0014,405C)\",\n vr: \"ST\",\n name: \"DelayLawIdentifier\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,4060)\": {\n tag: \"(0014,4060)\",\n vr: \"SQ\",\n name: \"GateSettingsSequence\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,4062)\": {\n tag: \"(0014,4062)\",\n vr: \"DS\",\n name: \"GateThreshold\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,4064)\": {\n tag: \"(0014,4064)\",\n vr: \"DS\",\n name: \"VelocityOfSound\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,4070)\": {\n tag: \"(0014,4070)\",\n vr: \"SQ\",\n name: \"CalibrationSettingsSequence\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,4072)\": {\n tag: \"(0014,4072)\",\n vr: \"ST\",\n name: \"CalibrationProcedure\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,4074)\": {\n tag: \"(0014,4074)\",\n vr: \"SH\",\n name: \"ProcedureVersion\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,4076)\": {\n tag: \"(0014,4076)\",\n vr: \"DA\",\n name: \"ProcedureCreationDate\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,4078)\": {\n tag: \"(0014,4078)\",\n vr: \"DA\",\n name: \"ProcedureExpirationDate\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,407A)\": {\n tag: \"(0014,407A)\",\n vr: \"DA\",\n name: \"ProcedureLastModifiedDate\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,407C)\": {\n tag: \"(0014,407C)\",\n vr: \"TM\",\n name: \"CalibrationTime\",\n vm: \"1-n\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,407E)\": {\n tag: \"(0014,407E)\",\n vr: \"DA\",\n name: \"CalibrationDate\",\n vm: \"1-n\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,4080)\": {\n tag: \"(0014,4080)\",\n vr: \"SQ\",\n name: \"ProbeDriveEquipmentSequence\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,4081)\": {\n tag: \"(0014,4081)\",\n vr: \"CS\",\n name: \"DriveType\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,4082)\": {\n tag: \"(0014,4082)\",\n vr: \"LT\",\n name: \"ProbeDriveNotes\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,4083)\": {\n tag: \"(0014,4083)\",\n vr: \"SQ\",\n name: \"DriveProbeSequence\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,4084)\": {\n tag: \"(0014,4084)\",\n vr: \"DS\",\n name: \"ProbeInductance\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,4085)\": {\n tag: \"(0014,4085)\",\n vr: \"DS\",\n name: \"ProbeResistance\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,4086)\": {\n tag: \"(0014,4086)\",\n vr: \"SQ\",\n name: \"ReceiveProbeSequence\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,4087)\": {\n tag: \"(0014,4087)\",\n vr: \"SQ\",\n name: \"ProbeDriveSettingsSequence\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,4088)\": {\n tag: \"(0014,4088)\",\n vr: \"DS\",\n name: \"BridgeResistors\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,4089)\": {\n tag: \"(0014,4089)\",\n vr: \"DS\",\n name: \"ProbeOrientationAngle\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,408B)\": {\n tag: \"(0014,408B)\",\n vr: \"DS\",\n name: \"UserSelectedGainY\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,408C)\": {\n tag: \"(0014,408C)\",\n vr: \"DS\",\n name: \"UserSelectedPhase\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,408D)\": {\n tag: \"(0014,408D)\",\n vr: \"DS\",\n name: \"UserSelectedOffsetX\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,408E)\": {\n tag: \"(0014,408E)\",\n vr: \"DS\",\n name: \"UserSelectedOffsetY\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,4091)\": {\n tag: \"(0014,4091)\",\n vr: \"SQ\",\n name: \"ChannelSettingsSequence\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,4092)\": {\n tag: \"(0014,4092)\",\n vr: \"DS\",\n name: \"ChannelThreshold\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,409A)\": {\n tag: \"(0014,409A)\",\n vr: \"SQ\",\n name: \"ScannerSettingsSequence\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,409B)\": {\n tag: \"(0014,409B)\",\n vr: \"ST\",\n name: \"ScanProcedure\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,409C)\": {\n tag: \"(0014,409C)\",\n vr: \"DS\",\n name: \"TranslationRateX\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,409D)\": {\n tag: \"(0014,409D)\",\n vr: \"DS\",\n name: \"TranslationRateY\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,409F)\": {\n tag: \"(0014,409F)\",\n vr: \"DS\",\n name: \"ChannelOverlap\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,40A0)\": {\n tag: \"(0014,40A0)\",\n vr: \"LO\",\n name: \"ImageQualityIndicatorType\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,40A1)\": {\n tag: \"(0014,40A1)\",\n vr: \"LO\",\n name: \"ImageQualityIndicatorMaterial\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,40A2)\": {\n tag: \"(0014,40A2)\",\n vr: \"LO\",\n name: \"ImageQualityIndicatorSize\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,5002)\": {\n tag: \"(0014,5002)\",\n vr: \"IS\",\n name: \"LINACEnergy\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,5004)\": {\n tag: \"(0014,5004)\",\n vr: \"IS\",\n name: \"LINACOutput\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,5100)\": {\n tag: \"(0014,5100)\",\n vr: \"US\",\n name: \"ActiveAperture\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,5101)\": {\n tag: \"(0014,5101)\",\n vr: \"DS\",\n name: \"TotalAperture\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,5102)\": {\n tag: \"(0014,5102)\",\n vr: \"DS\",\n name: \"ApertureElevation\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,5103)\": {\n tag: \"(0014,5103)\",\n vr: \"DS\",\n name: \"MainLobeAngle\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,5104)\": {\n tag: \"(0014,5104)\",\n vr: \"DS\",\n name: \"MainRoofAngle\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,5105)\": {\n tag: \"(0014,5105)\",\n vr: \"CS\",\n name: \"ConnectorType\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,5106)\": {\n tag: \"(0014,5106)\",\n vr: \"SH\",\n name: \"WedgeModelNumber\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,5107)\": {\n tag: \"(0014,5107)\",\n vr: \"DS\",\n name: \"WedgeAngleFloat\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,5108)\": {\n tag: \"(0014,5108)\",\n vr: \"DS\",\n name: \"WedgeRoofAngle\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,5109)\": {\n tag: \"(0014,5109)\",\n vr: \"CS\",\n name: \"WedgeElement1Position\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,510A)\": {\n tag: \"(0014,510A)\",\n vr: \"DS\",\n name: \"WedgeMaterialVelocity\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,510B)\": {\n tag: \"(0014,510B)\",\n vr: \"SH\",\n name: \"WedgeMaterial\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,510C)\": {\n tag: \"(0014,510C)\",\n vr: \"DS\",\n name: \"WedgeOffsetZ\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,510D)\": {\n tag: \"(0014,510D)\",\n vr: \"DS\",\n name: \"WedgeOriginOffsetX\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,510E)\": {\n tag: \"(0014,510E)\",\n vr: \"DS\",\n name: \"WedgeTimeDelay\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,510F)\": {\n tag: \"(0014,510F)\",\n vr: \"SH\",\n name: \"WedgeName\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,5110)\": {\n tag: \"(0014,5110)\",\n vr: \"SH\",\n name: \"WedgeManufacturerName\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,5111)\": {\n tag: \"(0014,5111)\",\n vr: \"LO\",\n name: \"WedgeDescription\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,5112)\": {\n tag: \"(0014,5112)\",\n vr: \"DS\",\n name: \"NominalBeamAngle\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,5113)\": {\n tag: \"(0014,5113)\",\n vr: \"DS\",\n name: \"WedgeOffsetX\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,5114)\": {\n tag: \"(0014,5114)\",\n vr: \"DS\",\n name: \"WedgeOffsetY\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,5115)\": {\n tag: \"(0014,5115)\",\n vr: \"DS\",\n name: \"WedgeTotalLength\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,5116)\": {\n tag: \"(0014,5116)\",\n vr: \"DS\",\n name: \"WedgeInContactLength\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,5117)\": {\n tag: \"(0014,5117)\",\n vr: \"DS\",\n name: \"WedgeFrontGap\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,5118)\": {\n tag: \"(0014,5118)\",\n vr: \"DS\",\n name: \"WedgeTotalHeight\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,5119)\": {\n tag: \"(0014,5119)\",\n vr: \"DS\",\n name: \"WedgeFrontHeight\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,511A)\": {\n tag: \"(0014,511A)\",\n vr: \"DS\",\n name: \"WedgeRearHeight\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,511B)\": {\n tag: \"(0014,511B)\",\n vr: \"DS\",\n name: \"WedgeTotalWidth\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,511C)\": {\n tag: \"(0014,511C)\",\n vr: \"DS\",\n name: \"WedgeInContactWidth\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,511D)\": {\n tag: \"(0014,511D)\",\n vr: \"DS\",\n name: \"WedgeChamferHeight\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,511E)\": {\n tag: \"(0014,511E)\",\n vr: \"CS\",\n name: \"WedgeCurve\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0014,511F)\": {\n tag: \"(0014,511F)\",\n vr: \"DS\",\n name: \"RadiusAlongWedge\",\n vm: \"1\",\n version: \"DICOM/DICONDE\"\n },\n \"(0012,0086)\": {\n tag: \"(0012,0086)\",\n vr: \"DA\",\n name: \"EthicsCommitteeApprovalEffectivenessStartDate\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0012,0087)\": {\n tag: \"(0012,0087)\",\n vr: \"DA\",\n name: \"EthicsCommitteeApprovalEffectivenessEndDate\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0014,0100)\": {\n tag: \"(0014,0100)\",\n vr: \"LO\",\n name: \"ComponentWelderIDs\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0014,0101)\": {\n tag: \"(0014,0101)\",\n vr: \"CS\",\n name: \"SecondaryApprovalStatus\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0014,0102)\": {\n tag: \"(0014,0102)\",\n vr: \"DA\",\n name: \"SecondaryReviewDate\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0014,0103)\": {\n tag: \"(0014,0103)\",\n vr: \"TM\",\n name: \"SecondaryReviewTime\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0014,0104)\": {\n tag: \"(0014,0104)\",\n vr: \"PN\",\n name: \"SecondaryReviewerName\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0014,0105)\": {\n tag: \"(0014,0105)\",\n vr: \"ST\",\n name: \"RepairID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0014,0106)\": {\n tag: \"(0014,0106)\",\n vr: \"SQ\",\n name: \"MultipleComponentApprovalSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0014,0107)\": {\n tag: \"(0014,0107)\",\n vr: \"CS\",\n name: \"OtherApprovalStatus\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0014,0108)\": {\n tag: \"(0014,0108)\",\n vr: \"CS\",\n name: \"OtherSecondaryApprovalStatus\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0016,0001)\": {\n tag: \"(0016,0001)\",\n vr: \"DS\",\n name: \"WhitePoint\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0016,0002)\": {\n tag: \"(0016,0002)\",\n vr: \"DS\",\n name: \"PrimaryChromaticities\",\n vm: \"3\",\n version: \"DICOM\"\n },\n \"(0016,0003)\": {\n tag: \"(0016,0003)\",\n vr: \"UT\",\n name: \"BatteryLevel\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0016,0004)\": {\n tag: \"(0016,0004)\",\n vr: \"DS\",\n name: \"ExposureTimeInSeconds\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0016,0005)\": {\n tag: \"(0016,0005)\",\n vr: \"DS\",\n name: \"FNumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0016,0006)\": {\n tag: \"(0016,0006)\",\n vr: \"IS\",\n name: \"OECFRows\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0016,0007)\": {\n tag: \"(0016,0007)\",\n vr: \"IS\",\n name: \"OECFColumns\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0016,0008)\": {\n tag: \"(0016,0008)\",\n vr: \"UC\",\n name: \"OECFColumnNames\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0016,0009)\": {\n tag: \"(0016,0009)\",\n vr: \"DS\",\n name: \"OECFValues\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0016,000A)\": {\n tag: \"(0016,000A)\",\n vr: \"IS\",\n name: \"SpatialFrequencyResponseRows\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0016,000B)\": {\n tag: \"(0016,000B)\",\n vr: \"IS\",\n name: \"SpatialFrequencyResponseColumns\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0016,000C)\": {\n tag: \"(0016,000C)\",\n vr: \"UC\",\n name: \"SpatialFrequencyResponseColumnNames\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0016,000D)\": {\n tag: \"(0016,000D)\",\n vr: \"DS\",\n name: \"SpatialFrequencyResponseValues\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0016,000E)\": {\n tag: \"(0016,000E)\",\n vr: \"IS\",\n name: \"ColorFilterArrayPatternRows\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0016,000F)\": {\n tag: \"(0016,000F)\",\n vr: \"IS\",\n name: \"ColorFilterArrayPatternColumns\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0016,0010)\": {\n tag: \"(0016,0010)\",\n vr: \"DS\",\n name: \"ColorFilterArrayPatternValues\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0016,0011)\": {\n tag: \"(0016,0011)\",\n vr: \"US\",\n name: \"FlashFiringStatus\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0016,0012)\": {\n tag: \"(0016,0012)\",\n vr: \"US\",\n name: \"FlashReturnStatus\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0016,0013)\": {\n tag: \"(0016,0013)\",\n vr: \"US\",\n name: \"FlashMode\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0016,0014)\": {\n tag: \"(0016,0014)\",\n vr: \"US\",\n name: \"FlashFunctionPresent\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0016,0015)\": {\n tag: \"(0016,0015)\",\n vr: \"US\",\n name: \"FlashRedEyeMode\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0016,0016)\": {\n tag: \"(0016,0016)\",\n vr: \"US\",\n name: \"ExposureProgram\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0016,0017)\": {\n tag: \"(0016,0017)\",\n vr: \"UT\",\n name: \"SpectralSensitivity\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0016,0018)\": {\n tag: \"(0016,0018)\",\n vr: \"IS\",\n name: \"PhotographicSensitivity\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0016,0019)\": {\n tag: \"(0016,0019)\",\n vr: \"IS\",\n name: \"SelfTimerMode\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0016,001A)\": {\n tag: \"(0016,001A)\",\n vr: \"US\",\n name: \"SensitivityType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0016,001B)\": {\n tag: \"(0016,001B)\",\n vr: \"IS\",\n name: \"StandardOutputSensitivity\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0016,001C)\": {\n tag: \"(0016,001C)\",\n vr: \"IS\",\n name: \"RecommendedExposureIndex\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0016,001D)\": {\n tag: \"(0016,001D)\",\n vr: \"IS\",\n name: \"ISOSpeed\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0016,001E)\": {\n tag: \"(0016,001E)\",\n vr: \"IS\",\n name: \"ISOSpeedLatitudeyyy\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0016,001F)\": {\n tag: \"(0016,001F)\",\n vr: \"IS\",\n name: \"ISOSpeedLatitudezzz\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0016,0020)\": {\n tag: \"(0016,0020)\",\n vr: \"UT\",\n name: \"EXIFVersion\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0016,0021)\": {\n tag: \"(0016,0021)\",\n vr: \"DS\",\n name: \"ShutterSpeedValue\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0016,0022)\": {\n tag: \"(0016,0022)\",\n vr: \"DS\",\n name: \"ApertureValue\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0016,0023)\": {\n tag: \"(0016,0023)\",\n vr: \"DS\",\n name: \"BrightnessValue\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0016,0024)\": {\n tag: \"(0016,0024)\",\n vr: \"DS\",\n name: \"ExposureBiasValue\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0016,0025)\": {\n tag: \"(0016,0025)\",\n vr: \"DS\",\n name: \"MaxApertureValue\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0016,0026)\": {\n tag: \"(0016,0026)\",\n vr: \"DS\",\n name: \"SubjectDistance\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0016,0027)\": {\n tag: \"(0016,0027)\",\n vr: \"US\",\n name: \"MeteringMode\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0016,0028)\": {\n tag: \"(0016,0028)\",\n vr: \"US\",\n name: \"LightSource\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0016,0029)\": {\n tag: \"(0016,0029)\",\n vr: \"DS\",\n name: \"FocalLength\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0016,002A)\": {\n tag: \"(0016,002A)\",\n vr: \"IS\",\n name: \"SubjectArea\",\n vm: \"2-4\",\n version: \"DICOM\"\n },\n \"(0016,002B)\": {\n tag: \"(0016,002B)\",\n vr: \"OB\",\n name: \"MakerNote\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0016,0030)\": {\n tag: \"(0016,0030)\",\n vr: \"DS\",\n name: \"Temperature\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0016,0031)\": {\n tag: \"(0016,0031)\",\n vr: \"DS\",\n name: \"Humidity\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0016,0032)\": {\n tag: \"(0016,0032)\",\n vr: \"DS\",\n name: \"Pressure\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0016,0033)\": {\n tag: \"(0016,0033)\",\n vr: \"DS\",\n name: \"WaterDepth\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0016,0034)\": {\n tag: \"(0016,0034)\",\n vr: \"DS\",\n name: \"Acceleration\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0016,0035)\": {\n tag: \"(0016,0035)\",\n vr: \"DS\",\n name: \"CameraElevationAngle\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0016,0036)\": {\n tag: \"(0016,0036)\",\n vr: \"DS\",\n name: \"FlashEnergy\",\n vm: \"1-2\",\n version: \"DICOM\"\n },\n \"(0016,0037)\": {\n tag: \"(0016,0037)\",\n vr: \"IS\",\n name: \"SubjectLocation\",\n vm: \"2\",\n version: \"DICOM\"\n },\n \"(0016,0038)\": {\n tag: \"(0016,0038)\",\n vr: \"DS\",\n name: \"PhotographicExposureIndex\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0016,0039)\": {\n tag: \"(0016,0039)\",\n vr: \"US\",\n name: \"SensingMethod\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0016,003A)\": {\n tag: \"(0016,003A)\",\n vr: \"US\",\n name: \"FileSource\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0016,003B)\": {\n tag: \"(0016,003B)\",\n vr: \"US\",\n name: \"SceneType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0016,0041)\": {\n tag: \"(0016,0041)\",\n vr: \"US\",\n name: \"CustomRendered\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0016,0042)\": {\n tag: \"(0016,0042)\",\n vr: \"US\",\n name: \"ExposureMode\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0016,0043)\": {\n tag: \"(0016,0043)\",\n vr: \"US\",\n name: \"WhiteBalance\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0016,0044)\": {\n tag: \"(0016,0044)\",\n vr: \"DS\",\n name: \"DigitalZoomRatio\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0016,0045)\": {\n tag: \"(0016,0045)\",\n vr: \"IS\",\n name: \"FocalLengthIn35mmFilm\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0016,0046)\": {\n tag: \"(0016,0046)\",\n vr: \"US\",\n name: \"SceneCaptureType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0016,0047)\": {\n tag: \"(0016,0047)\",\n vr: \"US\",\n name: \"GainControl\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0016,0048)\": {\n tag: \"(0016,0048)\",\n vr: \"US\",\n name: \"Contrast\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0016,0049)\": {\n tag: \"(0016,0049)\",\n vr: \"US\",\n name: \"Saturation\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0016,004A)\": {\n tag: \"(0016,004A)\",\n vr: \"US\",\n name: \"Sharpness\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0016,004B)\": {\n tag: \"(0016,004B)\",\n vr: \"OB\",\n name: \"DeviceSettingDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0016,004C)\": {\n tag: \"(0016,004C)\",\n vr: \"US\",\n name: \"SubjectDistanceRange\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0016,004D)\": {\n tag: \"(0016,004D)\",\n vr: \"UT\",\n name: \"CameraOwnerName\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0016,004E)\": {\n tag: \"(0016,004E)\",\n vr: \"DS\",\n name: \"LensSpecification\",\n vm: \"4\",\n version: \"DICOM\"\n },\n \"(0016,004F)\": {\n tag: \"(0016,004F)\",\n vr: \"UT\",\n name: \"LensMake\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0016,0050)\": {\n tag: \"(0016,0050)\",\n vr: \"UT\",\n name: \"LensModel\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0016,0051)\": {\n tag: \"(0016,0051)\",\n vr: \"UT\",\n name: \"LensSerialNumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0016,0061)\": {\n tag: \"(0016,0061)\",\n vr: \"CS\",\n name: \"InteroperabilityIndex\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0016,0062)\": {\n tag: \"(0016,0062)\",\n vr: \"OB\",\n name: \"InteroperabilityVersion\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0016,0070)\": {\n tag: \"(0016,0070)\",\n vr: \"OB\",\n name: \"GPSVersionID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0016,0071)\": {\n tag: \"(0016,0071)\",\n vr: \"CS\",\n name: \"GPSLatitudeRef\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0016,0072)\": {\n tag: \"(0016,0072)\",\n vr: \"DS\",\n name: \"GPSLatitude\",\n vm: \"3\",\n version: \"DICOM\"\n },\n \"(0016,0073)\": {\n tag: \"(0016,0073)\",\n vr: \"CS\",\n name: \"GPSLongitudeRef\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0016,0074)\": {\n tag: \"(0016,0074)\",\n vr: \"DS\",\n name: \"GPSLongitude\",\n vm: \"3\",\n version: \"DICOM\"\n },\n \"(0016,0075)\": {\n tag: \"(0016,0075)\",\n vr: \"US\",\n name: \"GPSAltitudeRef\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0016,0076)\": {\n tag: \"(0016,0076)\",\n vr: \"DS\",\n name: \"GPSAltitude\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0016,0077)\": {\n tag: \"(0016,0077)\",\n vr: \"DT\",\n name: \"GPSTimeStamp\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0016,0078)\": {\n tag: \"(0016,0078)\",\n vr: \"UT\",\n name: \"GPSSatellites\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0016,0079)\": {\n tag: \"(0016,0079)\",\n vr: \"CS\",\n name: \"GPSStatus\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0016,007A)\": {\n tag: \"(0016,007A)\",\n vr: \"CS\",\n name: \"GPSMeasureMode\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0016,007B)\": {\n tag: \"(0016,007B)\",\n vr: \"DS\",\n name: \"GPSDOP\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0016,007C)\": {\n tag: \"(0016,007C)\",\n vr: \"CS\",\n name: \"GPSSpeedRef\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0016,007D)\": {\n tag: \"(0016,007D)\",\n vr: \"DS\",\n name: \"GPSSpeed\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0016,007E)\": {\n tag: \"(0016,007E)\",\n vr: \"CS\",\n name: \"GPSTrackRef\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0016,007F)\": {\n tag: \"(0016,007F)\",\n vr: \"DS\",\n name: \"GPSTrack\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0016,0080)\": {\n tag: \"(0016,0080)\",\n vr: \"CS\",\n name: \"GPSImgDirectionRef\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0016,0081)\": {\n tag: \"(0016,0081)\",\n vr: \"DS\",\n name: \"GPSImgDirection\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0016,0082)\": {\n tag: \"(0016,0082)\",\n vr: \"UT\",\n name: \"GPSMapDatum\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0016,0083)\": {\n tag: \"(0016,0083)\",\n vr: \"CS\",\n name: \"GPSDestLatitudeRef\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0016,0084)\": {\n tag: \"(0016,0084)\",\n vr: \"DS\",\n name: \"GPSDestLatitude\",\n vm: \"3\",\n version: \"DICOM\"\n },\n \"(0016,0085)\": {\n tag: \"(0016,0085)\",\n vr: \"CS\",\n name: \"GPSDestLongitudeRef\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0016,0086)\": {\n tag: \"(0016,0086)\",\n vr: \"DS\",\n name: \"GPSDestLongitude\",\n vm: \"3\",\n version: \"DICOM\"\n },\n \"(0016,0087)\": {\n tag: \"(0016,0087)\",\n vr: \"CS\",\n name: \"GPSDestBearingRef\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0016,0088)\": {\n tag: \"(0016,0088)\",\n vr: \"DS\",\n name: \"GPSDestBearing\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0016,0089)\": {\n tag: \"(0016,0089)\",\n vr: \"CS\",\n name: \"GPSDestDistanceRef\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0016,008A)\": {\n tag: \"(0016,008A)\",\n vr: \"DS\",\n name: \"GPSDestDistance\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0016,008B)\": {\n tag: \"(0016,008B)\",\n vr: \"OB\",\n name: \"GPSProcessingMethod\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0016,008C)\": {\n tag: \"(0016,008C)\",\n vr: \"OB\",\n name: \"GPSAreaInformation\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0016,008D)\": {\n tag: \"(0016,008D)\",\n vr: \"DT\",\n name: \"GPSDateStamp\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0016,008E)\": {\n tag: \"(0016,008E)\",\n vr: \"IS\",\n name: \"GPSDifferential\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0016,1001)\": {\n tag: \"(0016,1001)\",\n vr: \"CS\",\n name: \"LightSourcePolarization\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0016,1002)\": {\n tag: \"(0016,1002)\",\n vr: \"DS\",\n name: \"EmitterColorTemperature\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0016,1003)\": {\n tag: \"(0016,1003)\",\n vr: \"CS\",\n name: \"ContactMethod\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0016,1004)\": {\n tag: \"(0016,1004)\",\n vr: \"CS\",\n name: \"ImmersionMedia\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0016,1005)\": {\n tag: \"(0016,1005)\",\n vr: \"DS\",\n name: \"OpticalMagnificationFactor\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,0010)\": {\n tag: \"(0018,0010)\",\n vr: \"LO\",\n name: \"ContrastBolusAgent\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,0012)\": {\n tag: \"(0018,0012)\",\n vr: \"SQ\",\n name: \"ContrastBolusAgentSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,0013)\": {\n tag: \"(0018,0013)\",\n vr: \"FL\",\n name: \"ContrastBolusT1Relaxivity\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,0014)\": {\n tag: \"(0018,0014)\",\n vr: \"SQ\",\n name: \"ContrastBolusAdministrationRouteSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,0015)\": {\n tag: \"(0018,0015)\",\n vr: \"CS\",\n name: \"BodyPartExamined\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,0020)\": {\n tag: \"(0018,0020)\",\n vr: \"CS\",\n name: \"ScanningSequence\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0018,0021)\": {\n tag: \"(0018,0021)\",\n vr: \"CS\",\n name: \"SequenceVariant\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0018,0022)\": {\n tag: \"(0018,0022)\",\n vr: \"CS\",\n name: \"ScanOptions\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0018,0023)\": {\n tag: \"(0018,0023)\",\n vr: \"CS\",\n name: \"MRAcquisitionType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,0024)\": {\n tag: \"(0018,0024)\",\n vr: \"SH\",\n name: \"SequenceName\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,0025)\": {\n tag: \"(0018,0025)\",\n vr: \"CS\",\n name: \"AngioFlag\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,0026)\": {\n tag: \"(0018,0026)\",\n vr: \"SQ\",\n name: \"InterventionDrugInformationSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,0027)\": {\n tag: \"(0018,0027)\",\n vr: \"TM\",\n name: \"InterventionDrugStopTime\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,0028)\": {\n tag: \"(0018,0028)\",\n vr: \"DS\",\n name: \"InterventionDrugDose\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,0029)\": {\n tag: \"(0018,0029)\",\n vr: \"SQ\",\n name: \"InterventionDrugCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,002A)\": {\n tag: \"(0018,002A)\",\n vr: \"SQ\",\n name: \"AdditionalDrugSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,0031)\": {\n tag: \"(0018,0031)\",\n vr: \"LO\",\n name: \"Radiopharmaceutical\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,0034)\": {\n tag: \"(0018,0034)\",\n vr: \"LO\",\n name: \"InterventionDrugName\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,0035)\": {\n tag: \"(0018,0035)\",\n vr: \"TM\",\n name: \"InterventionDrugStartTime\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,0036)\": {\n tag: \"(0018,0036)\",\n vr: \"SQ\",\n name: \"InterventionSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,0038)\": {\n tag: \"(0018,0038)\",\n vr: \"CS\",\n name: \"InterventionStatus\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,003A)\": {\n tag: \"(0018,003A)\",\n vr: \"ST\",\n name: \"InterventionDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,0040)\": {\n tag: \"(0018,0040)\",\n vr: \"IS\",\n name: \"CineRate\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,0042)\": {\n tag: \"(0018,0042)\",\n vr: \"CS\",\n name: \"InitialCineRunState\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,0050)\": {\n tag: \"(0018,0050)\",\n vr: \"DS\",\n name: \"SliceThickness\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,0060)\": {\n tag: \"(0018,0060)\",\n vr: \"DS\",\n name: \"KVP\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,0070)\": {\n tag: \"(0018,0070)\",\n vr: \"IS\",\n name: \"CountsAccumulated\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,0071)\": {\n tag: \"(0018,0071)\",\n vr: \"CS\",\n name: \"AcquisitionTerminationCondition\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,0072)\": {\n tag: \"(0018,0072)\",\n vr: \"DS\",\n name: \"EffectiveDuration\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,0073)\": {\n tag: \"(0018,0073)\",\n vr: \"CS\",\n name: \"AcquisitionStartCondition\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,0074)\": {\n tag: \"(0018,0074)\",\n vr: \"IS\",\n name: \"AcquisitionStartConditionData\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,0075)\": {\n tag: \"(0018,0075)\",\n vr: \"IS\",\n name: \"AcquisitionTerminationConditionData\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,0080)\": {\n tag: \"(0018,0080)\",\n vr: \"DS\",\n name: \"RepetitionTime\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,0081)\": {\n tag: \"(0018,0081)\",\n vr: \"DS\",\n name: \"EchoTime\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,0082)\": {\n tag: \"(0018,0082)\",\n vr: \"DS\",\n name: \"InversionTime\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,0083)\": {\n tag: \"(0018,0083)\",\n vr: \"DS\",\n name: \"NumberOfAverages\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,0084)\": {\n tag: \"(0018,0084)\",\n vr: \"DS\",\n name: \"ImagingFrequency\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,0085)\": {\n tag: \"(0018,0085)\",\n vr: \"SH\",\n name: \"ImagedNucleus\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,0086)\": {\n tag: \"(0018,0086)\",\n vr: \"IS\",\n name: \"EchoNumbers\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0018,0087)\": {\n tag: \"(0018,0087)\",\n vr: \"DS\",\n name: \"MagneticFieldStrength\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,0088)\": {\n tag: \"(0018,0088)\",\n vr: \"DS\",\n name: \"SpacingBetweenSlices\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,0089)\": {\n tag: \"(0018,0089)\",\n vr: \"IS\",\n name: \"NumberOfPhaseEncodingSteps\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,0090)\": {\n tag: \"(0018,0090)\",\n vr: \"DS\",\n name: \"DataCollectionDiameter\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,0091)\": {\n tag: \"(0018,0091)\",\n vr: \"IS\",\n name: \"EchoTrainLength\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,0093)\": {\n tag: \"(0018,0093)\",\n vr: \"DS\",\n name: \"PercentSampling\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,0094)\": {\n tag: \"(0018,0094)\",\n vr: \"DS\",\n name: \"PercentPhaseFieldOfView\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,0095)\": {\n tag: \"(0018,0095)\",\n vr: \"DS\",\n name: \"PixelBandwidth\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1000)\": {\n tag: \"(0018,1000)\",\n vr: \"LO\",\n name: \"DeviceSerialNumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1002)\": {\n tag: \"(0018,1002)\",\n vr: \"UI\",\n name: \"DeviceUID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1003)\": {\n tag: \"(0018,1003)\",\n vr: \"LO\",\n name: \"DeviceID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1004)\": {\n tag: \"(0018,1004)\",\n vr: \"LO\",\n name: \"PlateID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1005)\": {\n tag: \"(0018,1005)\",\n vr: \"LO\",\n name: \"GeneratorID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1006)\": {\n tag: \"(0018,1006)\",\n vr: \"LO\",\n name: \"GridID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1007)\": {\n tag: \"(0018,1007)\",\n vr: \"LO\",\n name: \"CassetteID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1008)\": {\n tag: \"(0018,1008)\",\n vr: \"LO\",\n name: \"GantryID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1009)\": {\n tag: \"(0018,1009)\",\n vr: \"UT\",\n name: \"UniqueDeviceIdentifier\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,100A)\": {\n tag: \"(0018,100A)\",\n vr: \"SQ\",\n name: \"UDISequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,100B)\": {\n tag: \"(0018,100B)\",\n vr: \"UI\",\n name: \"ManufacturerDeviceClassUID\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0018,1010)\": {\n tag: \"(0018,1010)\",\n vr: \"LO\",\n name: \"SecondaryCaptureDeviceID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1012)\": {\n tag: \"(0018,1012)\",\n vr: \"DA\",\n name: \"DateOfSecondaryCapture\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1014)\": {\n tag: \"(0018,1014)\",\n vr: \"TM\",\n name: \"TimeOfSecondaryCapture\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1016)\": {\n tag: \"(0018,1016)\",\n vr: \"LO\",\n name: \"SecondaryCaptureDeviceManufacturer\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1018)\": {\n tag: \"(0018,1018)\",\n vr: \"LO\",\n name: \"SecondaryCaptureDeviceManufacturerModelName\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1019)\": {\n tag: \"(0018,1019)\",\n vr: \"LO\",\n name: \"SecondaryCaptureDeviceSoftwareVersions\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0018,1020)\": {\n tag: \"(0018,1020)\",\n vr: \"LO\",\n name: \"SoftwareVersions\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0018,1022)\": {\n tag: \"(0018,1022)\",\n vr: \"SH\",\n name: \"VideoImageFormatAcquired\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1023)\": {\n tag: \"(0018,1023)\",\n vr: \"LO\",\n name: \"DigitalImageFormatAcquired\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1030)\": {\n tag: \"(0018,1030)\",\n vr: \"LO\",\n name: \"ProtocolName\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1040)\": {\n tag: \"(0018,1040)\",\n vr: \"LO\",\n name: \"ContrastBolusRoute\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1041)\": {\n tag: \"(0018,1041)\",\n vr: \"DS\",\n name: \"ContrastBolusVolume\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1042)\": {\n tag: \"(0018,1042)\",\n vr: \"TM\",\n name: \"ContrastBolusStartTime\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1043)\": {\n tag: \"(0018,1043)\",\n vr: \"TM\",\n name: \"ContrastBolusStopTime\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1044)\": {\n tag: \"(0018,1044)\",\n vr: \"DS\",\n name: \"ContrastBolusTotalDose\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1045)\": {\n tag: \"(0018,1045)\",\n vr: \"IS\",\n name: \"SyringeCounts\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1046)\": {\n tag: \"(0018,1046)\",\n vr: \"DS\",\n name: \"ContrastFlowRate\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0018,1047)\": {\n tag: \"(0018,1047)\",\n vr: \"DS\",\n name: \"ContrastFlowDuration\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0018,1048)\": {\n tag: \"(0018,1048)\",\n vr: \"CS\",\n name: \"ContrastBolusIngredient\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1049)\": {\n tag: \"(0018,1049)\",\n vr: \"DS\",\n name: \"ContrastBolusIngredientConcentration\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1050)\": {\n tag: \"(0018,1050)\",\n vr: \"DS\",\n name: \"SpatialResolution\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1060)\": {\n tag: \"(0018,1060)\",\n vr: \"DS\",\n name: \"TriggerTime\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1061)\": {\n tag: \"(0018,1061)\",\n vr: \"LO\",\n name: \"TriggerSourceOrType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1062)\": {\n tag: \"(0018,1062)\",\n vr: \"IS\",\n name: \"NominalInterval\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1063)\": {\n tag: \"(0018,1063)\",\n vr: \"DS\",\n name: \"FrameTime\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1064)\": {\n tag: \"(0018,1064)\",\n vr: \"LO\",\n name: \"CardiacFramingType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1065)\": {\n tag: \"(0018,1065)\",\n vr: \"DS\",\n name: \"FrameTimeVector\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0018,1066)\": {\n tag: \"(0018,1066)\",\n vr: \"DS\",\n name: \"FrameDelay\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1067)\": {\n tag: \"(0018,1067)\",\n vr: \"DS\",\n name: \"ImageTriggerDelay\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1068)\": {\n tag: \"(0018,1068)\",\n vr: \"DS\",\n name: \"MultiplexGroupTimeOffset\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1069)\": {\n tag: \"(0018,1069)\",\n vr: \"DS\",\n name: \"TriggerTimeOffset\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,106A)\": {\n tag: \"(0018,106A)\",\n vr: \"CS\",\n name: \"SynchronizationTrigger\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,106C)\": {\n tag: \"(0018,106C)\",\n vr: \"US\",\n name: \"SynchronizationChannel\",\n vm: \"2\",\n version: \"DICOM\"\n },\n \"(0018,106E)\": {\n tag: \"(0018,106E)\",\n vr: \"UL\",\n name: \"TriggerSamplePosition\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1070)\": {\n tag: \"(0018,1070)\",\n vr: \"LO\",\n name: \"RadiopharmaceuticalRoute\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1071)\": {\n tag: \"(0018,1071)\",\n vr: \"DS\",\n name: \"RadiopharmaceuticalVolume\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1072)\": {\n tag: \"(0018,1072)\",\n vr: \"TM\",\n name: \"RadiopharmaceuticalStartTime\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1073)\": {\n tag: \"(0018,1073)\",\n vr: \"TM\",\n name: \"RadiopharmaceuticalStopTime\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1074)\": {\n tag: \"(0018,1074)\",\n vr: \"DS\",\n name: \"RadionuclideTotalDose\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1075)\": {\n tag: \"(0018,1075)\",\n vr: \"DS\",\n name: \"RadionuclideHalfLife\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1076)\": {\n tag: \"(0018,1076)\",\n vr: \"DS\",\n name: \"RadionuclidePositronFraction\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1077)\": {\n tag: \"(0018,1077)\",\n vr: \"DS\",\n name: \"RadiopharmaceuticalSpecificActivity\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1078)\": {\n tag: \"(0018,1078)\",\n vr: \"DT\",\n name: \"RadiopharmaceuticalStartDateTime\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1079)\": {\n tag: \"(0018,1079)\",\n vr: \"DT\",\n name: \"RadiopharmaceuticalStopDateTime\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1080)\": {\n tag: \"(0018,1080)\",\n vr: \"CS\",\n name: \"BeatRejectionFlag\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1081)\": {\n tag: \"(0018,1081)\",\n vr: \"IS\",\n name: \"LowRRValue\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1082)\": {\n tag: \"(0018,1082)\",\n vr: \"IS\",\n name: \"HighRRValue\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1083)\": {\n tag: \"(0018,1083)\",\n vr: \"IS\",\n name: \"IntervalsAcquired\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1084)\": {\n tag: \"(0018,1084)\",\n vr: \"IS\",\n name: \"IntervalsRejected\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1085)\": {\n tag: \"(0018,1085)\",\n vr: \"LO\",\n name: \"PVCRejection\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1086)\": {\n tag: \"(0018,1086)\",\n vr: \"IS\",\n name: \"SkipBeats\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1088)\": {\n tag: \"(0018,1088)\",\n vr: \"IS\",\n name: \"HeartRate\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1090)\": {\n tag: \"(0018,1090)\",\n vr: \"IS\",\n name: \"CardiacNumberOfImages\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1094)\": {\n tag: \"(0018,1094)\",\n vr: \"IS\",\n name: \"TriggerWindow\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1100)\": {\n tag: \"(0018,1100)\",\n vr: \"DS\",\n name: \"ReconstructionDiameter\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1110)\": {\n tag: \"(0018,1110)\",\n vr: \"DS\",\n name: \"DistanceSourceToDetector\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1111)\": {\n tag: \"(0018,1111)\",\n vr: \"DS\",\n name: \"DistanceSourceToPatient\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1114)\": {\n tag: \"(0018,1114)\",\n vr: \"DS\",\n name: \"EstimatedRadiographicMagnificationFactor\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1120)\": {\n tag: \"(0018,1120)\",\n vr: \"DS\",\n name: \"GantryDetectorTilt\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1121)\": {\n tag: \"(0018,1121)\",\n vr: \"DS\",\n name: \"GantryDetectorSlew\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1130)\": {\n tag: \"(0018,1130)\",\n vr: \"DS\",\n name: \"TableHeight\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1131)\": {\n tag: \"(0018,1131)\",\n vr: \"DS\",\n name: \"TableTraverse\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1134)\": {\n tag: \"(0018,1134)\",\n vr: \"CS\",\n name: \"TableMotion\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1135)\": {\n tag: \"(0018,1135)\",\n vr: \"DS\",\n name: \"TableVerticalIncrement\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0018,1136)\": {\n tag: \"(0018,1136)\",\n vr: \"DS\",\n name: \"TableLateralIncrement\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0018,1137)\": {\n tag: \"(0018,1137)\",\n vr: \"DS\",\n name: \"TableLongitudinalIncrement\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0018,1138)\": {\n tag: \"(0018,1138)\",\n vr: \"DS\",\n name: \"TableAngle\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,113A)\": {\n tag: \"(0018,113A)\",\n vr: \"CS\",\n name: \"TableType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1140)\": {\n tag: \"(0018,1140)\",\n vr: \"CS\",\n name: \"RotationDirection\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1142)\": {\n tag: \"(0018,1142)\",\n vr: \"DS\",\n name: \"RadialPosition\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0018,1143)\": {\n tag: \"(0018,1143)\",\n vr: \"DS\",\n name: \"ScanArc\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1144)\": {\n tag: \"(0018,1144)\",\n vr: \"DS\",\n name: \"AngularStep\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1145)\": {\n tag: \"(0018,1145)\",\n vr: \"DS\",\n name: \"CenterOfRotationOffset\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1147)\": {\n tag: \"(0018,1147)\",\n vr: \"CS\",\n name: \"FieldOfViewShape\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1149)\": {\n tag: \"(0018,1149)\",\n vr: \"IS\",\n name: \"FieldOfViewDimensions\",\n vm: \"1-2\",\n version: \"DICOM\"\n },\n \"(0018,1150)\": {\n tag: \"(0018,1150)\",\n vr: \"IS\",\n name: \"ExposureTime\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1151)\": {\n tag: \"(0018,1151)\",\n vr: \"IS\",\n name: \"XRayTubeCurrent\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1152)\": {\n tag: \"(0018,1152)\",\n vr: \"IS\",\n name: \"Exposure\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1153)\": {\n tag: \"(0018,1153)\",\n vr: \"IS\",\n name: \"ExposureInuAs\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1154)\": {\n tag: \"(0018,1154)\",\n vr: \"DS\",\n name: \"AveragePulseWidth\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1155)\": {\n tag: \"(0018,1155)\",\n vr: \"CS\",\n name: \"RadiationSetting\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1156)\": {\n tag: \"(0018,1156)\",\n vr: \"CS\",\n name: \"RectificationType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,115A)\": {\n tag: \"(0018,115A)\",\n vr: \"CS\",\n name: \"RadiationMode\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,115E)\": {\n tag: \"(0018,115E)\",\n vr: \"DS\",\n name: \"ImageAndFluoroscopyAreaDoseProduct\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1160)\": {\n tag: \"(0018,1160)\",\n vr: \"SH\",\n name: \"FilterType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1161)\": {\n tag: \"(0018,1161)\",\n vr: \"LO\",\n name: \"TypeOfFilters\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0018,1162)\": {\n tag: \"(0018,1162)\",\n vr: \"DS\",\n name: \"IntensifierSize\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1164)\": {\n tag: \"(0018,1164)\",\n vr: \"DS\",\n name: \"ImagerPixelSpacing\",\n vm: \"2\",\n version: \"DICOM\"\n },\n \"(0018,1166)\": {\n tag: \"(0018,1166)\",\n vr: \"CS\",\n name: \"Grid\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0018,1170)\": {\n tag: \"(0018,1170)\",\n vr: \"IS\",\n name: \"GeneratorPower\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1180)\": {\n tag: \"(0018,1180)\",\n vr: \"SH\",\n name: \"CollimatorGridName\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1181)\": {\n tag: \"(0018,1181)\",\n vr: \"CS\",\n name: \"CollimatorType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1182)\": {\n tag: \"(0018,1182)\",\n vr: \"IS\",\n name: \"FocalDistance\",\n vm: \"1-2\",\n version: \"DICOM\"\n },\n \"(0018,1183)\": {\n tag: \"(0018,1183)\",\n vr: \"DS\",\n name: \"XFocusCenter\",\n vm: \"1-2\",\n version: \"DICOM\"\n },\n \"(0018,1184)\": {\n tag: \"(0018,1184)\",\n vr: \"DS\",\n name: \"YFocusCenter\",\n vm: \"1-2\",\n version: \"DICOM\"\n },\n \"(0018,1190)\": {\n tag: \"(0018,1190)\",\n vr: \"DS\",\n name: \"FocalSpots\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0018,1191)\": {\n tag: \"(0018,1191)\",\n vr: \"CS\",\n name: \"AnodeTargetMaterial\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,11A0)\": {\n tag: \"(0018,11A0)\",\n vr: \"DS\",\n name: \"BodyPartThickness\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,11A2)\": {\n tag: \"(0018,11A2)\",\n vr: \"DS\",\n name: \"CompressionForce\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,11A3)\": {\n tag: \"(0018,11A3)\",\n vr: \"DS\",\n name: \"CompressionPressure\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,11A4)\": {\n tag: \"(0018,11A4)\",\n vr: \"LO\",\n name: \"PaddleDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,11A5)\": {\n tag: \"(0018,11A5)\",\n vr: \"DS\",\n name: \"CompressionContactArea\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,11B0)\": {\n tag: \"(0018,11B0)\",\n vr: \"LO\",\n name: \"AcquisitionMode\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,11B1)\": {\n tag: \"(0018,11B1)\",\n vr: \"LO\",\n name: \"DoseModeName\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,11B2)\": {\n tag: \"(0018,11B2)\",\n vr: \"CS\",\n name: \"AcquiredSubtractionMaskFlag\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,11B3)\": {\n tag: \"(0018,11B3)\",\n vr: \"CS\",\n name: \"FluoroscopyPersistenceFlag\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,11B4)\": {\n tag: \"(0018,11B4)\",\n vr: \"CS\",\n name: \"FluoroscopyLastImageHoldPersistenceFlag\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,11B5)\": {\n tag: \"(0018,11B5)\",\n vr: \"IS\",\n name: \"UpperLimitNumberOfPersistentFluoroscopyFrames\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,11B6)\": {\n tag: \"(0018,11B6)\",\n vr: \"CS\",\n name: \"ContrastBolusAutoInjectionTriggerFlag\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,11B7)\": {\n tag: \"(0018,11B7)\",\n vr: \"FD\",\n name: \"ContrastBolusInjectionDelay\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,11B8)\": {\n tag: \"(0018,11B8)\",\n vr: \"SQ\",\n name: \"XAAcquisitionPhaseDetailsSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,11B9)\": {\n tag: \"(0018,11B9)\",\n vr: \"FD\",\n name: \"XAAcquisitionFrameRate\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,11BA)\": {\n tag: \"(0018,11BA)\",\n vr: \"SQ\",\n name: \"XAPlaneDetailsSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,11BB)\": {\n tag: \"(0018,11BB)\",\n vr: \"LO\",\n name: \"AcquisitionFieldOfViewLabel\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,11BC)\": {\n tag: \"(0018,11BC)\",\n vr: \"SQ\",\n name: \"XRayFilterDetailsSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,11BD)\": {\n tag: \"(0018,11BD)\",\n vr: \"FD\",\n name: \"XAAcquisitionDuration\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,11BE)\": {\n tag: \"(0018,11BE)\",\n vr: \"CS\",\n name: \"ReconstructionPipelineType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,11BF)\": {\n tag: \"(0018,11BF)\",\n vr: \"SQ\",\n name: \"ImageFilterDetailsSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,11C0)\": {\n tag: \"(0018,11C0)\",\n vr: \"CS\",\n name: \"AppliedMaskSubtractionFlag\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,11C1)\": {\n tag: \"(0018,11C1)\",\n vr: \"SQ\",\n name: \"RequestedSeriesDescriptionCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1200)\": {\n tag: \"(0018,1200)\",\n vr: \"DA\",\n name: \"DateOfLastCalibration\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0018,1201)\": {\n tag: \"(0018,1201)\",\n vr: \"TM\",\n name: \"TimeOfLastCalibration\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0018,1202)\": {\n tag: \"(0018,1202)\",\n vr: \"DT\",\n name: \"DateTimeOfLastCalibration\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1210)\": {\n tag: \"(0018,1210)\",\n vr: \"SH\",\n name: \"ConvolutionKernel\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0018,1242)\": {\n tag: \"(0018,1242)\",\n vr: \"IS\",\n name: \"ActualFrameDuration\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1243)\": {\n tag: \"(0018,1243)\",\n vr: \"IS\",\n name: \"CountRate\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1244)\": {\n tag: \"(0018,1244)\",\n vr: \"US\",\n name: \"PreferredPlaybackSequencing\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1250)\": {\n tag: \"(0018,1250)\",\n vr: \"SH\",\n name: \"ReceiveCoilName\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1251)\": {\n tag: \"(0018,1251)\",\n vr: \"SH\",\n name: \"TransmitCoilName\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1260)\": {\n tag: \"(0018,1260)\",\n vr: \"SH\",\n name: \"PlateType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1261)\": {\n tag: \"(0018,1261)\",\n vr: \"LO\",\n name: \"PhosphorType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1271)\": {\n tag: \"(0018,1271)\",\n vr: \"FD\",\n name: \"WaterEquivalentDiameter\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1272)\": {\n tag: \"(0018,1272)\",\n vr: \"SQ\",\n name: \"WaterEquivalentDiameterCalculationMethodCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1300)\": {\n tag: \"(0018,1300)\",\n vr: \"DS\",\n name: \"ScanVelocity\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1301)\": {\n tag: \"(0018,1301)\",\n vr: \"CS\",\n name: \"WholeBodyTechnique\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0018,1302)\": {\n tag: \"(0018,1302)\",\n vr: \"IS\",\n name: \"ScanLength\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1310)\": {\n tag: \"(0018,1310)\",\n vr: \"US\",\n name: \"AcquisitionMatrix\",\n vm: \"4\",\n version: \"DICOM\"\n },\n \"(0018,1312)\": {\n tag: \"(0018,1312)\",\n vr: \"CS\",\n name: \"InPlanePhaseEncodingDirection\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1314)\": {\n tag: \"(0018,1314)\",\n vr: \"DS\",\n name: \"FlipAngle\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1315)\": {\n tag: \"(0018,1315)\",\n vr: \"CS\",\n name: \"VariableFlipAngleFlag\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1316)\": {\n tag: \"(0018,1316)\",\n vr: \"DS\",\n name: \"SAR\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1318)\": {\n tag: \"(0018,1318)\",\n vr: \"DS\",\n name: \"dBdt\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1400)\": {\n tag: \"(0018,1400)\",\n vr: \"LO\",\n name: \"AcquisitionDeviceProcessingDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1401)\": {\n tag: \"(0018,1401)\",\n vr: \"LO\",\n name: \"AcquisitionDeviceProcessingCode\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1402)\": {\n tag: \"(0018,1402)\",\n vr: \"CS\",\n name: \"CassetteOrientation\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1403)\": {\n tag: \"(0018,1403)\",\n vr: \"CS\",\n name: \"CassetteSize\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1404)\": {\n tag: \"(0018,1404)\",\n vr: \"US\",\n name: \"ExposuresOnPlate\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1405)\": {\n tag: \"(0018,1405)\",\n vr: \"IS\",\n name: \"RelativeXRayExposure\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1411)\": {\n tag: \"(0018,1411)\",\n vr: \"DS\",\n name: \"ExposureIndex\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1412)\": {\n tag: \"(0018,1412)\",\n vr: \"DS\",\n name: \"TargetExposureIndex\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1413)\": {\n tag: \"(0018,1413)\",\n vr: \"DS\",\n name: \"DeviationIndex\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1450)\": {\n tag: \"(0018,1450)\",\n vr: \"DS\",\n name: \"ColumnAngulation\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1460)\": {\n tag: \"(0018,1460)\",\n vr: \"DS\",\n name: \"TomoLayerHeight\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1470)\": {\n tag: \"(0018,1470)\",\n vr: \"DS\",\n name: \"TomoAngle\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1480)\": {\n tag: \"(0018,1480)\",\n vr: \"DS\",\n name: \"TomoTime\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1490)\": {\n tag: \"(0018,1490)\",\n vr: \"CS\",\n name: \"TomoType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1491)\": {\n tag: \"(0018,1491)\",\n vr: \"CS\",\n name: \"TomoClass\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1495)\": {\n tag: \"(0018,1495)\",\n vr: \"IS\",\n name: \"NumberOfTomosynthesisSourceImages\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1500)\": {\n tag: \"(0018,1500)\",\n vr: \"CS\",\n name: \"PositionerMotion\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1508)\": {\n tag: \"(0018,1508)\",\n vr: \"CS\",\n name: \"PositionerType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1510)\": {\n tag: \"(0018,1510)\",\n vr: \"DS\",\n name: \"PositionerPrimaryAngle\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1511)\": {\n tag: \"(0018,1511)\",\n vr: \"DS\",\n name: \"PositionerSecondaryAngle\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1520)\": {\n tag: \"(0018,1520)\",\n vr: \"DS\",\n name: \"PositionerPrimaryAngleIncrement\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0018,1521)\": {\n tag: \"(0018,1521)\",\n vr: \"DS\",\n name: \"PositionerSecondaryAngleIncrement\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0018,1530)\": {\n tag: \"(0018,1530)\",\n vr: \"DS\",\n name: \"DetectorPrimaryAngle\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1531)\": {\n tag: \"(0018,1531)\",\n vr: \"DS\",\n name: \"DetectorSecondaryAngle\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1600)\": {\n tag: \"(0018,1600)\",\n vr: \"CS\",\n name: \"ShutterShape\",\n vm: \"1-3\",\n version: \"DICOM\"\n },\n \"(0018,1602)\": {\n tag: \"(0018,1602)\",\n vr: \"IS\",\n name: \"ShutterLeftVerticalEdge\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1604)\": {\n tag: \"(0018,1604)\",\n vr: \"IS\",\n name: \"ShutterRightVerticalEdge\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1606)\": {\n tag: \"(0018,1606)\",\n vr: \"IS\",\n name: \"ShutterUpperHorizontalEdge\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1608)\": {\n tag: \"(0018,1608)\",\n vr: \"IS\",\n name: \"ShutterLowerHorizontalEdge\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1610)\": {\n tag: \"(0018,1610)\",\n vr: \"IS\",\n name: \"CenterOfCircularShutter\",\n vm: \"2\",\n version: \"DICOM\"\n },\n \"(0018,1612)\": {\n tag: \"(0018,1612)\",\n vr: \"IS\",\n name: \"RadiusOfCircularShutter\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1620)\": {\n tag: \"(0018,1620)\",\n vr: \"IS\",\n name: \"VerticesOfThePolygonalShutter\",\n vm: \"2-2n\",\n version: \"DICOM\"\n },\n \"(0018,1622)\": {\n tag: \"(0018,1622)\",\n vr: \"US\",\n name: \"ShutterPresentationValue\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1623)\": {\n tag: \"(0018,1623)\",\n vr: \"US\",\n name: \"ShutterOverlayGroup\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1624)\": {\n tag: \"(0018,1624)\",\n vr: \"US\",\n name: \"ShutterPresentationColorCIELabValue\",\n vm: \"3\",\n version: \"DICOM\"\n },\n \"(0018,1630)\": {\n tag: \"(0018,1630)\",\n vr: \"CS\",\n name: \"OutlineShapeType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1631)\": {\n tag: \"(0018,1631)\",\n vr: \"FD\",\n name: \"OutlineLeftVerticalEdge\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1632)\": {\n tag: \"(0018,1632)\",\n vr: \"FD\",\n name: \"OutlineRightVerticalEdge\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1633)\": {\n tag: \"(0018,1633)\",\n vr: \"FD\",\n name: \"OutlineUpperHorizontalEdge\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1634)\": {\n tag: \"(0018,1634)\",\n vr: \"FD\",\n name: \"OutlineLowerHorizontalEdge\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1635)\": {\n tag: \"(0018,1635)\",\n vr: \"FD\",\n name: \"CenterOfCircularOutline\",\n vm: \"2\",\n version: \"DICOM\"\n },\n \"(0018,1636)\": {\n tag: \"(0018,1636)\",\n vr: \"FD\",\n name: \"DiameterOfCircularOutline\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1637)\": {\n tag: \"(0018,1637)\",\n vr: \"UL\",\n name: \"NumberOfPolygonalVertices\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1638)\": {\n tag: \"(0018,1638)\",\n vr: \"OF\",\n name: \"VerticesOfThePolygonalOutline\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1700)\": {\n tag: \"(0018,1700)\",\n vr: \"CS\",\n name: \"CollimatorShape\",\n vm: \"1-3\",\n version: \"DICOM\"\n },\n \"(0018,1702)\": {\n tag: \"(0018,1702)\",\n vr: \"IS\",\n name: \"CollimatorLeftVerticalEdge\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1704)\": {\n tag: \"(0018,1704)\",\n vr: \"IS\",\n name: \"CollimatorRightVerticalEdge\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1706)\": {\n tag: \"(0018,1706)\",\n vr: \"IS\",\n name: \"CollimatorUpperHorizontalEdge\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1708)\": {\n tag: \"(0018,1708)\",\n vr: \"IS\",\n name: \"CollimatorLowerHorizontalEdge\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1710)\": {\n tag: \"(0018,1710)\",\n vr: \"IS\",\n name: \"CenterOfCircularCollimator\",\n vm: \"2\",\n version: \"DICOM\"\n },\n \"(0018,1712)\": {\n tag: \"(0018,1712)\",\n vr: \"IS\",\n name: \"RadiusOfCircularCollimator\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1720)\": {\n tag: \"(0018,1720)\",\n vr: \"IS\",\n name: \"VerticesOfThePolygonalCollimator\",\n vm: \"2-2n\",\n version: \"DICOM\"\n },\n \"(0018,1800)\": {\n tag: \"(0018,1800)\",\n vr: \"CS\",\n name: \"AcquisitionTimeSynchronized\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1801)\": {\n tag: \"(0018,1801)\",\n vr: \"SH\",\n name: \"TimeSource\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1802)\": {\n tag: \"(0018,1802)\",\n vr: \"CS\",\n name: \"TimeDistributionProtocol\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,1803)\": {\n tag: \"(0018,1803)\",\n vr: \"LO\",\n name: \"NTPSourceAddress\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,2001)\": {\n tag: \"(0018,2001)\",\n vr: \"IS\",\n name: \"PageNumberVector\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0018,2002)\": {\n tag: \"(0018,2002)\",\n vr: \"SH\",\n name: \"FrameLabelVector\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0018,2003)\": {\n tag: \"(0018,2003)\",\n vr: \"DS\",\n name: \"FramePrimaryAngleVector\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0018,2004)\": {\n tag: \"(0018,2004)\",\n vr: \"DS\",\n name: \"FrameSecondaryAngleVector\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0018,2005)\": {\n tag: \"(0018,2005)\",\n vr: \"DS\",\n name: \"SliceLocationVector\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0018,2006)\": {\n tag: \"(0018,2006)\",\n vr: \"SH\",\n name: \"DisplayWindowLabelVector\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0018,2010)\": {\n tag: \"(0018,2010)\",\n vr: \"DS\",\n name: \"NominalScannedPixelSpacing\",\n vm: \"2\",\n version: \"DICOM\"\n },\n \"(0018,2020)\": {\n tag: \"(0018,2020)\",\n vr: \"CS\",\n name: \"DigitizingDeviceTransportDirection\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,2030)\": {\n tag: \"(0018,2030)\",\n vr: \"DS\",\n name: \"RotationOfScannedFilm\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,2041)\": {\n tag: \"(0018,2041)\",\n vr: \"SQ\",\n name: \"BiopsyTargetSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,2042)\": {\n tag: \"(0018,2042)\",\n vr: \"UI\",\n name: \"TargetUID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,2043)\": {\n tag: \"(0018,2043)\",\n vr: \"FL\",\n name: \"LocalizingCursorPosition\",\n vm: \"2\",\n version: \"DICOM\"\n },\n \"(0018,2044)\": {\n tag: \"(0018,2044)\",\n vr: \"FL\",\n name: \"CalculatedTargetPosition\",\n vm: \"3\",\n version: \"DICOM\"\n },\n \"(0018,2045)\": {\n tag: \"(0018,2045)\",\n vr: \"SH\",\n name: \"TargetLabel\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,2046)\": {\n tag: \"(0018,2046)\",\n vr: \"FL\",\n name: \"DisplayedZValue\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,3100)\": {\n tag: \"(0018,3100)\",\n vr: \"CS\",\n name: \"IVUSAcquisition\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,3101)\": {\n tag: \"(0018,3101)\",\n vr: \"DS\",\n name: \"IVUSPullbackRate\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,3102)\": {\n tag: \"(0018,3102)\",\n vr: \"DS\",\n name: \"IVUSGatedRate\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,3103)\": {\n tag: \"(0018,3103)\",\n vr: \"IS\",\n name: \"IVUSPullbackStartFrameNumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,3104)\": {\n tag: \"(0018,3104)\",\n vr: \"IS\",\n name: \"IVUSPullbackStopFrameNumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,3105)\": {\n tag: \"(0018,3105)\",\n vr: \"IS\",\n name: \"LesionNumber\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0018,5000)\": {\n tag: \"(0018,5000)\",\n vr: \"SH\",\n name: \"OutputPower\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0018,5010)\": {\n tag: \"(0018,5010)\",\n vr: \"LO\",\n name: \"TransducerData\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0018,5011)\": {\n tag: \"(0018,5011)\",\n vr: \"SQ\",\n name: \"TransducerIdentificationSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,5012)\": {\n tag: \"(0018,5012)\",\n vr: \"DS\",\n name: \"FocusDepth\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,5020)\": {\n tag: \"(0018,5020)\",\n vr: \"LO\",\n name: \"ProcessingFunction\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,5022)\": {\n tag: \"(0018,5022)\",\n vr: \"DS\",\n name: \"MechanicalIndex\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,5024)\": {\n tag: \"(0018,5024)\",\n vr: \"DS\",\n name: \"BoneThermalIndex\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,5026)\": {\n tag: \"(0018,5026)\",\n vr: \"DS\",\n name: \"CranialThermalIndex\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,5027)\": {\n tag: \"(0018,5027)\",\n vr: \"DS\",\n name: \"SoftTissueThermalIndex\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,5028)\": {\n tag: \"(0018,5028)\",\n vr: \"DS\",\n name: \"SoftTissueFocusThermalIndex\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,5029)\": {\n tag: \"(0018,5029)\",\n vr: \"DS\",\n name: \"SoftTissueSurfaceThermalIndex\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,5050)\": {\n tag: \"(0018,5050)\",\n vr: \"IS\",\n name: \"DepthOfScanField\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,5100)\": {\n tag: \"(0018,5100)\",\n vr: \"CS\",\n name: \"PatientPosition\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,5101)\": {\n tag: \"(0018,5101)\",\n vr: \"CS\",\n name: \"ViewPosition\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,5104)\": {\n tag: \"(0018,5104)\",\n vr: \"SQ\",\n name: \"ProjectionEponymousNameCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,6000)\": {\n tag: \"(0018,6000)\",\n vr: \"DS\",\n name: \"Sensitivity\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,6011)\": {\n tag: \"(0018,6011)\",\n vr: \"SQ\",\n name: \"SequenceOfUltrasoundRegions\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,6012)\": {\n tag: \"(0018,6012)\",\n vr: \"US\",\n name: \"RegionSpatialFormat\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,6014)\": {\n tag: \"(0018,6014)\",\n vr: \"US\",\n name: \"RegionDataType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,6016)\": {\n tag: \"(0018,6016)\",\n vr: \"UL\",\n name: \"RegionFlags\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,6018)\": {\n tag: \"(0018,6018)\",\n vr: \"UL\",\n name: \"RegionLocationMinX0\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,601A)\": {\n tag: \"(0018,601A)\",\n vr: \"UL\",\n name: \"RegionLocationMinY0\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,601C)\": {\n tag: \"(0018,601C)\",\n vr: \"UL\",\n name: \"RegionLocationMaxX1\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,601E)\": {\n tag: \"(0018,601E)\",\n vr: \"UL\",\n name: \"RegionLocationMaxY1\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,6020)\": {\n tag: \"(0018,6020)\",\n vr: \"SL\",\n name: \"ReferencePixelX0\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,6022)\": {\n tag: \"(0018,6022)\",\n vr: \"SL\",\n name: \"ReferencePixelY0\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,6024)\": {\n tag: \"(0018,6024)\",\n vr: \"US\",\n name: \"PhysicalUnitsXDirection\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,6026)\": {\n tag: \"(0018,6026)\",\n vr: \"US\",\n name: \"PhysicalUnitsYDirection\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,6028)\": {\n tag: \"(0018,6028)\",\n vr: \"FD\",\n name: \"ReferencePixelPhysicalValueX\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,602A)\": {\n tag: \"(0018,602A)\",\n vr: \"FD\",\n name: \"ReferencePixelPhysicalValueY\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,602C)\": {\n tag: \"(0018,602C)\",\n vr: \"FD\",\n name: \"PhysicalDeltaX\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,602E)\": {\n tag: \"(0018,602E)\",\n vr: \"FD\",\n name: \"PhysicalDeltaY\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,6030)\": {\n tag: \"(0018,6030)\",\n vr: \"UL\",\n name: \"TransducerFrequency\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,6031)\": {\n tag: \"(0018,6031)\",\n vr: \"CS\",\n name: \"TransducerType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,6032)\": {\n tag: \"(0018,6032)\",\n vr: \"UL\",\n name: \"PulseRepetitionFrequency\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,6034)\": {\n tag: \"(0018,6034)\",\n vr: \"FD\",\n name: \"DopplerCorrectionAngle\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,6036)\": {\n tag: \"(0018,6036)\",\n vr: \"FD\",\n name: \"SteeringAngle\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,6039)\": {\n tag: \"(0018,6039)\",\n vr: \"SL\",\n name: \"DopplerSampleVolumeXPosition\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,603B)\": {\n tag: \"(0018,603B)\",\n vr: \"SL\",\n name: \"DopplerSampleVolumeYPosition\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,603D)\": {\n tag: \"(0018,603D)\",\n vr: \"SL\",\n name: \"TMLinePositionX0\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,603F)\": {\n tag: \"(0018,603F)\",\n vr: \"SL\",\n name: \"TMLinePositionY0\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,6041)\": {\n tag: \"(0018,6041)\",\n vr: \"SL\",\n name: \"TMLinePositionX1\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,6043)\": {\n tag: \"(0018,6043)\",\n vr: \"SL\",\n name: \"TMLinePositionY1\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,6044)\": {\n tag: \"(0018,6044)\",\n vr: \"US\",\n name: \"PixelComponentOrganization\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,6046)\": {\n tag: \"(0018,6046)\",\n vr: \"UL\",\n name: \"PixelComponentMask\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,6048)\": {\n tag: \"(0018,6048)\",\n vr: \"UL\",\n name: \"PixelComponentRangeStart\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,604A)\": {\n tag: \"(0018,604A)\",\n vr: \"UL\",\n name: \"PixelComponentRangeStop\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,604C)\": {\n tag: \"(0018,604C)\",\n vr: \"US\",\n name: \"PixelComponentPhysicalUnits\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,604E)\": {\n tag: \"(0018,604E)\",\n vr: \"US\",\n name: \"PixelComponentDataType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,6050)\": {\n tag: \"(0018,6050)\",\n vr: \"UL\",\n name: \"NumberOfTableBreakPoints\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,6052)\": {\n tag: \"(0018,6052)\",\n vr: \"UL\",\n name: \"TableOfXBreakPoints\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0018,6054)\": {\n tag: \"(0018,6054)\",\n vr: \"FD\",\n name: \"TableOfYBreakPoints\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0018,6056)\": {\n tag: \"(0018,6056)\",\n vr: \"UL\",\n name: \"NumberOfTableEntries\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,6058)\": {\n tag: \"(0018,6058)\",\n vr: \"UL\",\n name: \"TableOfPixelValues\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0018,605A)\": {\n tag: \"(0018,605A)\",\n vr: \"FL\",\n name: \"TableOfParameterValues\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0018,6060)\": {\n tag: \"(0018,6060)\",\n vr: \"FL\",\n name: \"RWaveTimeVector\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0018,6070)\": {\n tag: \"(0018,6070)\",\n vr: \"US\",\n name: \"ActiveImageAreaOverlayGroup\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,7000)\": {\n tag: \"(0018,7000)\",\n vr: \"CS\",\n name: \"DetectorConditionsNominalFlag\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,7001)\": {\n tag: \"(0018,7001)\",\n vr: \"DS\",\n name: \"DetectorTemperature\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,7004)\": {\n tag: \"(0018,7004)\",\n vr: \"CS\",\n name: \"DetectorType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,7005)\": {\n tag: \"(0018,7005)\",\n vr: \"CS\",\n name: \"DetectorConfiguration\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,7006)\": {\n tag: \"(0018,7006)\",\n vr: \"LT\",\n name: \"DetectorDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,7008)\": {\n tag: \"(0018,7008)\",\n vr: \"LT\",\n name: \"DetectorMode\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,700A)\": {\n tag: \"(0018,700A)\",\n vr: \"SH\",\n name: \"DetectorID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,700C)\": {\n tag: \"(0018,700C)\",\n vr: \"DA\",\n name: \"DateOfLastDetectorCalibration\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,700E)\": {\n tag: \"(0018,700E)\",\n vr: \"TM\",\n name: \"TimeOfLastDetectorCalibration\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,7010)\": {\n tag: \"(0018,7010)\",\n vr: \"IS\",\n name: \"ExposuresOnDetectorSinceLastCalibration\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,7011)\": {\n tag: \"(0018,7011)\",\n vr: \"IS\",\n name: \"ExposuresOnDetectorSinceManufactured\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,7012)\": {\n tag: \"(0018,7012)\",\n vr: \"DS\",\n name: \"DetectorTimeSinceLastExposure\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,7014)\": {\n tag: \"(0018,7014)\",\n vr: \"DS\",\n name: \"DetectorActiveTime\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,7016)\": {\n tag: \"(0018,7016)\",\n vr: \"DS\",\n name: \"DetectorActivationOffsetFromExposure\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,701A)\": {\n tag: \"(0018,701A)\",\n vr: \"DS\",\n name: \"DetectorBinning\",\n vm: \"2\",\n version: \"DICOM\"\n },\n \"(0018,7020)\": {\n tag: \"(0018,7020)\",\n vr: \"DS\",\n name: \"DetectorElementPhysicalSize\",\n vm: \"2\",\n version: \"DICOM\"\n },\n \"(0018,7022)\": {\n tag: \"(0018,7022)\",\n vr: \"DS\",\n name: \"DetectorElementSpacing\",\n vm: \"2\",\n version: \"DICOM\"\n },\n \"(0018,7024)\": {\n tag: \"(0018,7024)\",\n vr: \"CS\",\n name: \"DetectorActiveShape\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,7026)\": {\n tag: \"(0018,7026)\",\n vr: \"DS\",\n name: \"DetectorActiveDimensions\",\n vm: \"1-2\",\n version: \"DICOM\"\n },\n \"(0018,7028)\": {\n tag: \"(0018,7028)\",\n vr: \"DS\",\n name: \"DetectorActiveOrigin\",\n vm: \"2\",\n version: \"DICOM\"\n },\n \"(0018,702A)\": {\n tag: \"(0018,702A)\",\n vr: \"LO\",\n name: \"DetectorManufacturerName\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,702B)\": {\n tag: \"(0018,702B)\",\n vr: \"LO\",\n name: \"DetectorManufacturerModelName\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,7030)\": {\n tag: \"(0018,7030)\",\n vr: \"DS\",\n name: \"FieldOfViewOrigin\",\n vm: \"2\",\n version: \"DICOM\"\n },\n \"(0018,7032)\": {\n tag: \"(0018,7032)\",\n vr: \"DS\",\n name: \"FieldOfViewRotation\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,7034)\": {\n tag: \"(0018,7034)\",\n vr: \"CS\",\n name: \"FieldOfViewHorizontalFlip\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,7036)\": {\n tag: \"(0018,7036)\",\n vr: \"FL\",\n name: \"PixelDataAreaOriginRelativeToFOV\",\n vm: \"2\",\n version: \"DICOM\"\n },\n \"(0018,7038)\": {\n tag: \"(0018,7038)\",\n vr: \"FL\",\n name: \"PixelDataAreaRotationAngleRelativeToFOV\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,7040)\": {\n tag: \"(0018,7040)\",\n vr: \"LT\",\n name: \"GridAbsorbingMaterial\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,7041)\": {\n tag: \"(0018,7041)\",\n vr: \"LT\",\n name: \"GridSpacingMaterial\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,7042)\": {\n tag: \"(0018,7042)\",\n vr: \"DS\",\n name: \"GridThickness\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,7044)\": {\n tag: \"(0018,7044)\",\n vr: \"DS\",\n name: \"GridPitch\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,7046)\": {\n tag: \"(0018,7046)\",\n vr: \"IS\",\n name: \"GridAspectRatio\",\n vm: \"2\",\n version: \"DICOM\"\n },\n \"(0018,7048)\": {\n tag: \"(0018,7048)\",\n vr: \"DS\",\n name: \"GridPeriod\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,704C)\": {\n tag: \"(0018,704C)\",\n vr: \"DS\",\n name: \"GridFocalDistance\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,7050)\": {\n tag: \"(0018,7050)\",\n vr: \"CS\",\n name: \"FilterMaterial\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0018,7052)\": {\n tag: \"(0018,7052)\",\n vr: \"DS\",\n name: \"FilterThicknessMinimum\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0018,7054)\": {\n tag: \"(0018,7054)\",\n vr: \"DS\",\n name: \"FilterThicknessMaximum\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0018,7056)\": {\n tag: \"(0018,7056)\",\n vr: \"FL\",\n name: \"FilterBeamPathLengthMinimum\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0018,7058)\": {\n tag: \"(0018,7058)\",\n vr: \"FL\",\n name: \"FilterBeamPathLengthMaximum\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0018,7060)\": {\n tag: \"(0018,7060)\",\n vr: \"CS\",\n name: \"ExposureControlMode\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,7062)\": {\n tag: \"(0018,7062)\",\n vr: \"LT\",\n name: \"ExposureControlModeDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,7064)\": {\n tag: \"(0018,7064)\",\n vr: \"CS\",\n name: \"ExposureStatus\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,7065)\": {\n tag: \"(0018,7065)\",\n vr: \"DS\",\n name: \"PhototimerSetting\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,8150)\": {\n tag: \"(0018,8150)\",\n vr: \"DS\",\n name: \"ExposureTimeInuS\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,8151)\": {\n tag: \"(0018,8151)\",\n vr: \"DS\",\n name: \"XRayTubeCurrentInuA\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9004)\": {\n tag: \"(0018,9004)\",\n vr: \"CS\",\n name: \"ContentQualification\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9005)\": {\n tag: \"(0018,9005)\",\n vr: \"SH\",\n name: \"PulseSequenceName\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9006)\": {\n tag: \"(0018,9006)\",\n vr: \"SQ\",\n name: \"MRImagingModifierSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9008)\": {\n tag: \"(0018,9008)\",\n vr: \"CS\",\n name: \"EchoPulseSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9009)\": {\n tag: \"(0018,9009)\",\n vr: \"CS\",\n name: \"InversionRecovery\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9010)\": {\n tag: \"(0018,9010)\",\n vr: \"CS\",\n name: \"FlowCompensation\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9011)\": {\n tag: \"(0018,9011)\",\n vr: \"CS\",\n name: \"MultipleSpinEcho\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9012)\": {\n tag: \"(0018,9012)\",\n vr: \"CS\",\n name: \"MultiPlanarExcitation\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9014)\": {\n tag: \"(0018,9014)\",\n vr: \"CS\",\n name: \"PhaseContrast\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9015)\": {\n tag: \"(0018,9015)\",\n vr: \"CS\",\n name: \"TimeOfFlightContrast\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9016)\": {\n tag: \"(0018,9016)\",\n vr: \"CS\",\n name: \"Spoiling\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9017)\": {\n tag: \"(0018,9017)\",\n vr: \"CS\",\n name: \"SteadyStatePulseSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9018)\": {\n tag: \"(0018,9018)\",\n vr: \"CS\",\n name: \"EchoPlanarPulseSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9019)\": {\n tag: \"(0018,9019)\",\n vr: \"FD\",\n name: \"TagAngleFirstAxis\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9020)\": {\n tag: \"(0018,9020)\",\n vr: \"CS\",\n name: \"MagnetizationTransfer\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9021)\": {\n tag: \"(0018,9021)\",\n vr: \"CS\",\n name: \"T2Preparation\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9022)\": {\n tag: \"(0018,9022)\",\n vr: \"CS\",\n name: \"BloodSignalNulling\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9024)\": {\n tag: \"(0018,9024)\",\n vr: \"CS\",\n name: \"SaturationRecovery\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9025)\": {\n tag: \"(0018,9025)\",\n vr: \"CS\",\n name: \"SpectrallySelectedSuppression\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9026)\": {\n tag: \"(0018,9026)\",\n vr: \"CS\",\n name: \"SpectrallySelectedExcitation\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9027)\": {\n tag: \"(0018,9027)\",\n vr: \"CS\",\n name: \"SpatialPresaturation\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9028)\": {\n tag: \"(0018,9028)\",\n vr: \"CS\",\n name: \"Tagging\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9029)\": {\n tag: \"(0018,9029)\",\n vr: \"CS\",\n name: \"OversamplingPhase\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9030)\": {\n tag: \"(0018,9030)\",\n vr: \"FD\",\n name: \"TagSpacingFirstDimension\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9032)\": {\n tag: \"(0018,9032)\",\n vr: \"CS\",\n name: \"GeometryOfKSpaceTraversal\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9033)\": {\n tag: \"(0018,9033)\",\n vr: \"CS\",\n name: \"SegmentedKSpaceTraversal\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9034)\": {\n tag: \"(0018,9034)\",\n vr: \"CS\",\n name: \"RectilinearPhaseEncodeReordering\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9035)\": {\n tag: \"(0018,9035)\",\n vr: \"FD\",\n name: \"TagThickness\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9036)\": {\n tag: \"(0018,9036)\",\n vr: \"CS\",\n name: \"PartialFourierDirection\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9037)\": {\n tag: \"(0018,9037)\",\n vr: \"CS\",\n name: \"CardiacSynchronizationTechnique\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9041)\": {\n tag: \"(0018,9041)\",\n vr: \"LO\",\n name: \"ReceiveCoilManufacturerName\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9042)\": {\n tag: \"(0018,9042)\",\n vr: \"SQ\",\n name: \"MRReceiveCoilSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9043)\": {\n tag: \"(0018,9043)\",\n vr: \"CS\",\n name: \"ReceiveCoilType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9044)\": {\n tag: \"(0018,9044)\",\n vr: \"CS\",\n name: \"QuadratureReceiveCoil\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9045)\": {\n tag: \"(0018,9045)\",\n vr: \"SQ\",\n name: \"MultiCoilDefinitionSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9046)\": {\n tag: \"(0018,9046)\",\n vr: \"LO\",\n name: \"MultiCoilConfiguration\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9047)\": {\n tag: \"(0018,9047)\",\n vr: \"SH\",\n name: \"MultiCoilElementName\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9048)\": {\n tag: \"(0018,9048)\",\n vr: \"CS\",\n name: \"MultiCoilElementUsed\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9049)\": {\n tag: \"(0018,9049)\",\n vr: \"SQ\",\n name: \"MRTransmitCoilSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9050)\": {\n tag: \"(0018,9050)\",\n vr: \"LO\",\n name: \"TransmitCoilManufacturerName\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9051)\": {\n tag: \"(0018,9051)\",\n vr: \"CS\",\n name: \"TransmitCoilType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9052)\": {\n tag: \"(0018,9052)\",\n vr: \"FD\",\n name: \"SpectralWidth\",\n vm: \"1-2\",\n version: \"DICOM\"\n },\n \"(0018,9053)\": {\n tag: \"(0018,9053)\",\n vr: \"FD\",\n name: \"ChemicalShiftReference\",\n vm: \"1-2\",\n version: \"DICOM\"\n },\n \"(0018,9054)\": {\n tag: \"(0018,9054)\",\n vr: \"CS\",\n name: \"VolumeLocalizationTechnique\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9058)\": {\n tag: \"(0018,9058)\",\n vr: \"US\",\n name: \"MRAcquisitionFrequencyEncodingSteps\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9059)\": {\n tag: \"(0018,9059)\",\n vr: \"CS\",\n name: \"Decoupling\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9060)\": {\n tag: \"(0018,9060)\",\n vr: \"CS\",\n name: \"DecoupledNucleus\",\n vm: \"1-2\",\n version: \"DICOM\"\n },\n \"(0018,9061)\": {\n tag: \"(0018,9061)\",\n vr: \"FD\",\n name: \"DecouplingFrequency\",\n vm: \"1-2\",\n version: \"DICOM\"\n },\n \"(0018,9062)\": {\n tag: \"(0018,9062)\",\n vr: \"CS\",\n name: \"DecouplingMethod\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9063)\": {\n tag: \"(0018,9063)\",\n vr: \"FD\",\n name: \"DecouplingChemicalShiftReference\",\n vm: \"1-2\",\n version: \"DICOM\"\n },\n \"(0018,9064)\": {\n tag: \"(0018,9064)\",\n vr: \"CS\",\n name: \"KSpaceFiltering\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9065)\": {\n tag: \"(0018,9065)\",\n vr: \"CS\",\n name: \"TimeDomainFiltering\",\n vm: \"1-2\",\n version: \"DICOM\"\n },\n \"(0018,9066)\": {\n tag: \"(0018,9066)\",\n vr: \"US\",\n name: \"NumberOfZeroFills\",\n vm: \"1-2\",\n version: \"DICOM\"\n },\n \"(0018,9067)\": {\n tag: \"(0018,9067)\",\n vr: \"CS\",\n name: \"BaselineCorrection\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9069)\": {\n tag: \"(0018,9069)\",\n vr: \"FD\",\n name: \"ParallelReductionFactorInPlane\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9070)\": {\n tag: \"(0018,9070)\",\n vr: \"FD\",\n name: \"CardiacRRIntervalSpecified\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9073)\": {\n tag: \"(0018,9073)\",\n vr: \"FD\",\n name: \"AcquisitionDuration\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9074)\": {\n tag: \"(0018,9074)\",\n vr: \"DT\",\n name: \"FrameAcquisitionDateTime\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9075)\": {\n tag: \"(0018,9075)\",\n vr: \"CS\",\n name: \"DiffusionDirectionality\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9076)\": {\n tag: \"(0018,9076)\",\n vr: \"SQ\",\n name: \"DiffusionGradientDirectionSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9077)\": {\n tag: \"(0018,9077)\",\n vr: \"CS\",\n name: \"ParallelAcquisition\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9078)\": {\n tag: \"(0018,9078)\",\n vr: \"CS\",\n name: \"ParallelAcquisitionTechnique\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9079)\": {\n tag: \"(0018,9079)\",\n vr: \"FD\",\n name: \"InversionTimes\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0018,9080)\": {\n tag: \"(0018,9080)\",\n vr: \"ST\",\n name: \"MetaboliteMapDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9081)\": {\n tag: \"(0018,9081)\",\n vr: \"CS\",\n name: \"PartialFourier\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9082)\": {\n tag: \"(0018,9082)\",\n vr: \"FD\",\n name: \"EffectiveEchoTime\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9083)\": {\n tag: \"(0018,9083)\",\n vr: \"SQ\",\n name: \"MetaboliteMapCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9084)\": {\n tag: \"(0018,9084)\",\n vr: \"SQ\",\n name: \"ChemicalShiftSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9085)\": {\n tag: \"(0018,9085)\",\n vr: \"CS\",\n name: \"CardiacSignalSource\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9087)\": {\n tag: \"(0018,9087)\",\n vr: \"FD\",\n name: \"DiffusionBValue\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9089)\": {\n tag: \"(0018,9089)\",\n vr: \"FD\",\n name: \"DiffusionGradientOrientation\",\n vm: \"3\",\n version: \"DICOM\"\n },\n \"(0018,9090)\": {\n tag: \"(0018,9090)\",\n vr: \"FD\",\n name: \"VelocityEncodingDirection\",\n vm: \"3\",\n version: \"DICOM\"\n },\n \"(0018,9091)\": {\n tag: \"(0018,9091)\",\n vr: \"FD\",\n name: \"VelocityEncodingMinimumValue\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9092)\": {\n tag: \"(0018,9092)\",\n vr: \"SQ\",\n name: \"VelocityEncodingAcquisitionSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9093)\": {\n tag: \"(0018,9093)\",\n vr: \"US\",\n name: \"NumberOfKSpaceTrajectories\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9094)\": {\n tag: \"(0018,9094)\",\n vr: \"CS\",\n name: \"CoverageOfKSpace\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9095)\": {\n tag: \"(0018,9095)\",\n vr: \"UL\",\n name: \"SpectroscopyAcquisitionPhaseRows\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9098)\": {\n tag: \"(0018,9098)\",\n vr: \"FD\",\n name: \"TransmitterFrequency\",\n vm: \"1-2\",\n version: \"DICOM\"\n },\n \"(0018,9100)\": {\n tag: \"(0018,9100)\",\n vr: \"CS\",\n name: \"ResonantNucleus\",\n vm: \"1-2\",\n version: \"DICOM\"\n },\n \"(0018,9101)\": {\n tag: \"(0018,9101)\",\n vr: \"CS\",\n name: \"FrequencyCorrection\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9103)\": {\n tag: \"(0018,9103)\",\n vr: \"SQ\",\n name: \"MRSpectroscopyFOVGeometrySequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9104)\": {\n tag: \"(0018,9104)\",\n vr: \"FD\",\n name: \"SlabThickness\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9105)\": {\n tag: \"(0018,9105)\",\n vr: \"FD\",\n name: \"SlabOrientation\",\n vm: \"3\",\n version: \"DICOM\"\n },\n \"(0018,9106)\": {\n tag: \"(0018,9106)\",\n vr: \"FD\",\n name: \"MidSlabPosition\",\n vm: \"3\",\n version: \"DICOM\"\n },\n \"(0018,9107)\": {\n tag: \"(0018,9107)\",\n vr: \"SQ\",\n name: \"MRSpatialSaturationSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9112)\": {\n tag: \"(0018,9112)\",\n vr: \"SQ\",\n name: \"MRTimingAndRelatedParametersSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9114)\": {\n tag: \"(0018,9114)\",\n vr: \"SQ\",\n name: \"MREchoSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9115)\": {\n tag: \"(0018,9115)\",\n vr: \"SQ\",\n name: \"MRModifierSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9117)\": {\n tag: \"(0018,9117)\",\n vr: \"SQ\",\n name: \"MRDiffusionSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9118)\": {\n tag: \"(0018,9118)\",\n vr: \"SQ\",\n name: \"CardiacSynchronizationSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9119)\": {\n tag: \"(0018,9119)\",\n vr: \"SQ\",\n name: \"MRAveragesSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9125)\": {\n tag: \"(0018,9125)\",\n vr: \"SQ\",\n name: \"MRFOVGeometrySequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9126)\": {\n tag: \"(0018,9126)\",\n vr: \"SQ\",\n name: \"VolumeLocalizationSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9127)\": {\n tag: \"(0018,9127)\",\n vr: \"UL\",\n name: \"SpectroscopyAcquisitionDataColumns\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9147)\": {\n tag: \"(0018,9147)\",\n vr: \"CS\",\n name: \"DiffusionAnisotropyType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9151)\": {\n tag: \"(0018,9151)\",\n vr: \"DT\",\n name: \"FrameReferenceDateTime\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9152)\": {\n tag: \"(0018,9152)\",\n vr: \"SQ\",\n name: \"MRMetaboliteMapSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9155)\": {\n tag: \"(0018,9155)\",\n vr: \"FD\",\n name: \"ParallelReductionFactorOutOfPlane\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9159)\": {\n tag: \"(0018,9159)\",\n vr: \"UL\",\n name: \"SpectroscopyAcquisitionOutOfPlanePhaseSteps\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9168)\": {\n tag: \"(0018,9168)\",\n vr: \"FD\",\n name: \"ParallelReductionFactorSecondInPlane\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9169)\": {\n tag: \"(0018,9169)\",\n vr: \"CS\",\n name: \"CardiacBeatRejectionTechnique\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9170)\": {\n tag: \"(0018,9170)\",\n vr: \"CS\",\n name: \"RespiratoryMotionCompensationTechnique\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9171)\": {\n tag: \"(0018,9171)\",\n vr: \"CS\",\n name: \"RespiratorySignalSource\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9172)\": {\n tag: \"(0018,9172)\",\n vr: \"CS\",\n name: \"BulkMotionCompensationTechnique\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9173)\": {\n tag: \"(0018,9173)\",\n vr: \"CS\",\n name: \"BulkMotionSignalSource\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9174)\": {\n tag: \"(0018,9174)\",\n vr: \"CS\",\n name: \"ApplicableSafetyStandardAgency\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9175)\": {\n tag: \"(0018,9175)\",\n vr: \"LO\",\n name: \"ApplicableSafetyStandardDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9176)\": {\n tag: \"(0018,9176)\",\n vr: \"SQ\",\n name: \"OperatingModeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9177)\": {\n tag: \"(0018,9177)\",\n vr: \"CS\",\n name: \"OperatingModeType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9178)\": {\n tag: \"(0018,9178)\",\n vr: \"CS\",\n name: \"OperatingMode\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9179)\": {\n tag: \"(0018,9179)\",\n vr: \"CS\",\n name: \"SpecificAbsorptionRateDefinition\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9180)\": {\n tag: \"(0018,9180)\",\n vr: \"CS\",\n name: \"GradientOutputType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9181)\": {\n tag: \"(0018,9181)\",\n vr: \"FD\",\n name: \"SpecificAbsorptionRateValue\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9182)\": {\n tag: \"(0018,9182)\",\n vr: \"FD\",\n name: \"GradientOutput\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9183)\": {\n tag: \"(0018,9183)\",\n vr: \"CS\",\n name: \"FlowCompensationDirection\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9184)\": {\n tag: \"(0018,9184)\",\n vr: \"FD\",\n name: \"TaggingDelay\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9185)\": {\n tag: \"(0018,9185)\",\n vr: \"ST\",\n name: \"RespiratoryMotionCompensationTechniqueDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9186)\": {\n tag: \"(0018,9186)\",\n vr: \"SH\",\n name: \"RespiratorySignalSourceID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9197)\": {\n tag: \"(0018,9197)\",\n vr: \"SQ\",\n name: \"MRVelocityEncodingSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9198)\": {\n tag: \"(0018,9198)\",\n vr: \"CS\",\n name: \"FirstOrderPhaseCorrection\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9199)\": {\n tag: \"(0018,9199)\",\n vr: \"CS\",\n name: \"WaterReferencedPhaseCorrection\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9200)\": {\n tag: \"(0018,9200)\",\n vr: \"CS\",\n name: \"MRSpectroscopyAcquisitionType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9214)\": {\n tag: \"(0018,9214)\",\n vr: \"CS\",\n name: \"RespiratoryCyclePosition\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9217)\": {\n tag: \"(0018,9217)\",\n vr: \"FD\",\n name: \"VelocityEncodingMaximumValue\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9218)\": {\n tag: \"(0018,9218)\",\n vr: \"FD\",\n name: \"TagSpacingSecondDimension\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9219)\": {\n tag: \"(0018,9219)\",\n vr: \"SS\",\n name: \"TagAngleSecondAxis\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9220)\": {\n tag: \"(0018,9220)\",\n vr: \"FD\",\n name: \"FrameAcquisitionDuration\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9226)\": {\n tag: \"(0018,9226)\",\n vr: \"SQ\",\n name: \"MRImageFrameTypeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9227)\": {\n tag: \"(0018,9227)\",\n vr: \"SQ\",\n name: \"MRSpectroscopyFrameTypeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9231)\": {\n tag: \"(0018,9231)\",\n vr: \"US\",\n name: \"MRAcquisitionPhaseEncodingStepsInPlane\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9232)\": {\n tag: \"(0018,9232)\",\n vr: \"US\",\n name: \"MRAcquisitionPhaseEncodingStepsOutOfPlane\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9234)\": {\n tag: \"(0018,9234)\",\n vr: \"UL\",\n name: \"SpectroscopyAcquisitionPhaseColumns\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9236)\": {\n tag: \"(0018,9236)\",\n vr: \"CS\",\n name: \"CardiacCyclePosition\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9239)\": {\n tag: \"(0018,9239)\",\n vr: \"SQ\",\n name: \"SpecificAbsorptionRateSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9240)\": {\n tag: \"(0018,9240)\",\n vr: \"US\",\n name: \"RFEchoTrainLength\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9241)\": {\n tag: \"(0018,9241)\",\n vr: \"US\",\n name: \"GradientEchoTrainLength\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9250)\": {\n tag: \"(0018,9250)\",\n vr: \"CS\",\n name: \"ArterialSpinLabelingContrast\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9251)\": {\n tag: \"(0018,9251)\",\n vr: \"SQ\",\n name: \"MRArterialSpinLabelingSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9252)\": {\n tag: \"(0018,9252)\",\n vr: \"LO\",\n name: \"ASLTechniqueDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9253)\": {\n tag: \"(0018,9253)\",\n vr: \"US\",\n name: \"ASLSlabNumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9254)\": {\n tag: \"(0018,9254)\",\n vr: \"FD\",\n name: \"ASLSlabThickness\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9255)\": {\n tag: \"(0018,9255)\",\n vr: \"FD\",\n name: \"ASLSlabOrientation\",\n vm: \"3\",\n version: \"DICOM\"\n },\n \"(0018,9256)\": {\n tag: \"(0018,9256)\",\n vr: \"FD\",\n name: \"ASLMidSlabPosition\",\n vm: \"3\",\n version: \"DICOM\"\n },\n \"(0018,9257)\": {\n tag: \"(0018,9257)\",\n vr: \"CS\",\n name: \"ASLContext\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9258)\": {\n tag: \"(0018,9258)\",\n vr: \"UL\",\n name: \"ASLPulseTrainDuration\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9259)\": {\n tag: \"(0018,9259)\",\n vr: \"CS\",\n name: \"ASLCrusherFlag\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,925A)\": {\n tag: \"(0018,925A)\",\n vr: \"FD\",\n name: \"ASLCrusherFlowLimit\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,925B)\": {\n tag: \"(0018,925B)\",\n vr: \"LO\",\n name: \"ASLCrusherDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,925C)\": {\n tag: \"(0018,925C)\",\n vr: \"CS\",\n name: \"ASLBolusCutoffFlag\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,925D)\": {\n tag: \"(0018,925D)\",\n vr: \"SQ\",\n name: \"ASLBolusCutoffTimingSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,925E)\": {\n tag: \"(0018,925E)\",\n vr: \"LO\",\n name: \"ASLBolusCutoffTechnique\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,925F)\": {\n tag: \"(0018,925F)\",\n vr: \"UL\",\n name: \"ASLBolusCutoffDelayTime\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9260)\": {\n tag: \"(0018,9260)\",\n vr: \"SQ\",\n name: \"ASLSlabSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9295)\": {\n tag: \"(0018,9295)\",\n vr: \"FD\",\n name: \"ChemicalShiftMinimumIntegrationLimitInppm\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9296)\": {\n tag: \"(0018,9296)\",\n vr: \"FD\",\n name: \"ChemicalShiftMaximumIntegrationLimitInppm\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9297)\": {\n tag: \"(0018,9297)\",\n vr: \"CS\",\n name: \"WaterReferenceAcquisition\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9298)\": {\n tag: \"(0018,9298)\",\n vr: \"IS\",\n name: \"EchoPeakPosition\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9301)\": {\n tag: \"(0018,9301)\",\n vr: \"SQ\",\n name: \"CTAcquisitionTypeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9302)\": {\n tag: \"(0018,9302)\",\n vr: \"CS\",\n name: \"AcquisitionType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9303)\": {\n tag: \"(0018,9303)\",\n vr: \"FD\",\n name: \"TubeAngle\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9304)\": {\n tag: \"(0018,9304)\",\n vr: \"SQ\",\n name: \"CTAcquisitionDetailsSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9305)\": {\n tag: \"(0018,9305)\",\n vr: \"FD\",\n name: \"RevolutionTime\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9306)\": {\n tag: \"(0018,9306)\",\n vr: \"FD\",\n name: \"SingleCollimationWidth\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9307)\": {\n tag: \"(0018,9307)\",\n vr: \"FD\",\n name: \"TotalCollimationWidth\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9308)\": {\n tag: \"(0018,9308)\",\n vr: \"SQ\",\n name: \"CTTableDynamicsSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9309)\": {\n tag: \"(0018,9309)\",\n vr: \"FD\",\n name: \"TableSpeed\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9310)\": {\n tag: \"(0018,9310)\",\n vr: \"FD\",\n name: \"TableFeedPerRotation\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9311)\": {\n tag: \"(0018,9311)\",\n vr: \"FD\",\n name: \"SpiralPitchFactor\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9312)\": {\n tag: \"(0018,9312)\",\n vr: \"SQ\",\n name: \"CTGeometrySequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9313)\": {\n tag: \"(0018,9313)\",\n vr: \"FD\",\n name: \"DataCollectionCenterPatient\",\n vm: \"3\",\n version: \"DICOM\"\n },\n \"(0018,9314)\": {\n tag: \"(0018,9314)\",\n vr: \"SQ\",\n name: \"CTReconstructionSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9315)\": {\n tag: \"(0018,9315)\",\n vr: \"CS\",\n name: \"ReconstructionAlgorithm\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9316)\": {\n tag: \"(0018,9316)\",\n vr: \"CS\",\n name: \"ConvolutionKernelGroup\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9317)\": {\n tag: \"(0018,9317)\",\n vr: \"FD\",\n name: \"ReconstructionFieldOfView\",\n vm: \"2\",\n version: \"DICOM\"\n },\n \"(0018,9318)\": {\n tag: \"(0018,9318)\",\n vr: \"FD\",\n name: \"ReconstructionTargetCenterPatient\",\n vm: \"3\",\n version: \"DICOM\"\n },\n \"(0018,9319)\": {\n tag: \"(0018,9319)\",\n vr: \"FD\",\n name: \"ReconstructionAngle\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9320)\": {\n tag: \"(0018,9320)\",\n vr: \"SH\",\n name: \"ImageFilter\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9321)\": {\n tag: \"(0018,9321)\",\n vr: \"SQ\",\n name: \"CTExposureSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9322)\": {\n tag: \"(0018,9322)\",\n vr: \"FD\",\n name: \"ReconstructionPixelSpacing\",\n vm: \"2\",\n version: \"DICOM\"\n },\n \"(0018,9323)\": {\n tag: \"(0018,9323)\",\n vr: \"CS\",\n name: \"ExposureModulationType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9324)\": {\n tag: \"(0018,9324)\",\n vr: \"FD\",\n name: \"EstimatedDoseSaving\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9325)\": {\n tag: \"(0018,9325)\",\n vr: \"SQ\",\n name: \"CTXRayDetailsSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9326)\": {\n tag: \"(0018,9326)\",\n vr: \"SQ\",\n name: \"CTPositionSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9327)\": {\n tag: \"(0018,9327)\",\n vr: \"FD\",\n name: \"TablePosition\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9328)\": {\n tag: \"(0018,9328)\",\n vr: \"FD\",\n name: \"ExposureTimeInms\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9329)\": {\n tag: \"(0018,9329)\",\n vr: \"SQ\",\n name: \"CTImageFrameTypeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9330)\": {\n tag: \"(0018,9330)\",\n vr: \"FD\",\n name: \"XRayTubeCurrentInmA\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9332)\": {\n tag: \"(0018,9332)\",\n vr: \"FD\",\n name: \"ExposureInmAs\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9333)\": {\n tag: \"(0018,9333)\",\n vr: \"CS\",\n name: \"ConstantVolumeFlag\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9334)\": {\n tag: \"(0018,9334)\",\n vr: \"CS\",\n name: \"FluoroscopyFlag\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9335)\": {\n tag: \"(0018,9335)\",\n vr: \"FD\",\n name: \"DistanceSourceToDataCollectionCenter\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9337)\": {\n tag: \"(0018,9337)\",\n vr: \"US\",\n name: \"ContrastBolusAgentNumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9338)\": {\n tag: \"(0018,9338)\",\n vr: \"SQ\",\n name: \"ContrastBolusIngredientCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9340)\": {\n tag: \"(0018,9340)\",\n vr: \"SQ\",\n name: \"ContrastAdministrationProfileSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9341)\": {\n tag: \"(0018,9341)\",\n vr: \"SQ\",\n name: \"ContrastBolusUsageSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9342)\": {\n tag: \"(0018,9342)\",\n vr: \"CS\",\n name: \"ContrastBolusAgentAdministered\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9343)\": {\n tag: \"(0018,9343)\",\n vr: \"CS\",\n name: \"ContrastBolusAgentDetected\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9344)\": {\n tag: \"(0018,9344)\",\n vr: \"CS\",\n name: \"ContrastBolusAgentPhase\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9345)\": {\n tag: \"(0018,9345)\",\n vr: \"FD\",\n name: \"CTDIvol\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9346)\": {\n tag: \"(0018,9346)\",\n vr: \"SQ\",\n name: \"CTDIPhantomTypeCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9351)\": {\n tag: \"(0018,9351)\",\n vr: \"FL\",\n name: \"CalciumScoringMassFactorPatient\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9352)\": {\n tag: \"(0018,9352)\",\n vr: \"FL\",\n name: \"CalciumScoringMassFactorDevice\",\n vm: \"3\",\n version: \"DICOM\"\n },\n \"(0018,9353)\": {\n tag: \"(0018,9353)\",\n vr: \"FL\",\n name: \"EnergyWeightingFactor\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9360)\": {\n tag: \"(0018,9360)\",\n vr: \"SQ\",\n name: \"CTAdditionalXRaySourceSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9361)\": {\n tag: \"(0018,9361)\",\n vr: \"CS\",\n name: \"MultienergyCTAcquisition\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9362)\": {\n tag: \"(0018,9362)\",\n vr: \"SQ\",\n name: \"MultienergyCTAcquisitionSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9363)\": {\n tag: \"(0018,9363)\",\n vr: \"SQ\",\n name: \"MultienergyCTProcessingSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9364)\": {\n tag: \"(0018,9364)\",\n vr: \"SQ\",\n name: \"MultienergyCTCharacteristicsSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9365)\": {\n tag: \"(0018,9365)\",\n vr: \"SQ\",\n name: \"MultienergyCTXRaySourceSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9366)\": {\n tag: \"(0018,9366)\",\n vr: \"US\",\n name: \"XRaySourceIndex\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9367)\": {\n tag: \"(0018,9367)\",\n vr: \"UC\",\n name: \"XRaySourceID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9368)\": {\n tag: \"(0018,9368)\",\n vr: \"CS\",\n name: \"MultienergySourceTechnique\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9369)\": {\n tag: \"(0018,9369)\",\n vr: \"DT\",\n name: \"SourceStartDateTime\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,936A)\": {\n tag: \"(0018,936A)\",\n vr: \"DT\",\n name: \"SourceEndDateTime\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,936B)\": {\n tag: \"(0018,936B)\",\n vr: \"US\",\n name: \"SwitchingPhaseNumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,936C)\": {\n tag: \"(0018,936C)\",\n vr: \"DS\",\n name: \"SwitchingPhaseNominalDuration\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,936D)\": {\n tag: \"(0018,936D)\",\n vr: \"DS\",\n name: \"SwitchingPhaseTransitionDuration\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,936E)\": {\n tag: \"(0018,936E)\",\n vr: \"DS\",\n name: \"EffectiveBinEnergy\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,936F)\": {\n tag: \"(0018,936F)\",\n vr: \"SQ\",\n name: \"MultienergyCTXRayDetectorSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9370)\": {\n tag: \"(0018,9370)\",\n vr: \"US\",\n name: \"XRayDetectorIndex\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9371)\": {\n tag: \"(0018,9371)\",\n vr: \"UC\",\n name: \"XRayDetectorID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9372)\": {\n tag: \"(0018,9372)\",\n vr: \"CS\",\n name: \"MultienergyDetectorType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9373)\": {\n tag: \"(0018,9373)\",\n vr: \"ST\",\n name: \"XRayDetectorLabel\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9374)\": {\n tag: \"(0018,9374)\",\n vr: \"DS\",\n name: \"NominalMaxEnergy\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9375)\": {\n tag: \"(0018,9375)\",\n vr: \"DS\",\n name: \"NominalMinEnergy\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9376)\": {\n tag: \"(0018,9376)\",\n vr: \"US\",\n name: \"ReferencedXRayDetectorIndex\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0018,9377)\": {\n tag: \"(0018,9377)\",\n vr: \"US\",\n name: \"ReferencedXRaySourceIndex\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0018,9378)\": {\n tag: \"(0018,9378)\",\n vr: \"US\",\n name: \"ReferencedPathIndex\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0018,9379)\": {\n tag: \"(0018,9379)\",\n vr: \"SQ\",\n name: \"MultienergyCTPathSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,937A)\": {\n tag: \"(0018,937A)\",\n vr: \"US\",\n name: \"MultienergyCTPathIndex\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,937B)\": {\n tag: \"(0018,937B)\",\n vr: \"UT\",\n name: \"MultienergyAcquisitionDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,937C)\": {\n tag: \"(0018,937C)\",\n vr: \"FD\",\n name: \"MonoenergeticEnergyEquivalent\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,937D)\": {\n tag: \"(0018,937D)\",\n vr: \"SQ\",\n name: \"MaterialCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,937E)\": {\n tag: \"(0018,937E)\",\n vr: \"CS\",\n name: \"DecompositionMethod\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,937F)\": {\n tag: \"(0018,937F)\",\n vr: \"UT\",\n name: \"DecompositionDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9380)\": {\n tag: \"(0018,9380)\",\n vr: \"SQ\",\n name: \"DecompositionAlgorithmIdentificationSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9381)\": {\n tag: \"(0018,9381)\",\n vr: \"SQ\",\n name: \"DecompositionMaterialSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9382)\": {\n tag: \"(0018,9382)\",\n vr: \"SQ\",\n name: \"MaterialAttenuationSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9383)\": {\n tag: \"(0018,9383)\",\n vr: \"DS\",\n name: \"PhotonEnergy\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9384)\": {\n tag: \"(0018,9384)\",\n vr: \"DS\",\n name: \"XRayMassAttenuationCoefficient\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9401)\": {\n tag: \"(0018,9401)\",\n vr: \"SQ\",\n name: \"ProjectionPixelCalibrationSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9402)\": {\n tag: \"(0018,9402)\",\n vr: \"FL\",\n name: \"DistanceSourceToIsocenter\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9403)\": {\n tag: \"(0018,9403)\",\n vr: \"FL\",\n name: \"DistanceObjectToTableTop\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9404)\": {\n tag: \"(0018,9404)\",\n vr: \"FL\",\n name: \"ObjectPixelSpacingInCenterOfBeam\",\n vm: \"2\",\n version: \"DICOM\"\n },\n \"(0018,9405)\": {\n tag: \"(0018,9405)\",\n vr: \"SQ\",\n name: \"PositionerPositionSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9406)\": {\n tag: \"(0018,9406)\",\n vr: \"SQ\",\n name: \"TablePositionSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9407)\": {\n tag: \"(0018,9407)\",\n vr: \"SQ\",\n name: \"CollimatorShapeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9410)\": {\n tag: \"(0018,9410)\",\n vr: \"CS\",\n name: \"PlanesInAcquisition\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9412)\": {\n tag: \"(0018,9412)\",\n vr: \"SQ\",\n name: \"XAXRFFrameCharacteristicsSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9417)\": {\n tag: \"(0018,9417)\",\n vr: \"SQ\",\n name: \"FrameAcquisitionSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9420)\": {\n tag: \"(0018,9420)\",\n vr: \"CS\",\n name: \"XRayReceptorType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9423)\": {\n tag: \"(0018,9423)\",\n vr: \"LO\",\n name: \"AcquisitionProtocolName\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9424)\": {\n tag: \"(0018,9424)\",\n vr: \"LT\",\n name: \"AcquisitionProtocolDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9425)\": {\n tag: \"(0018,9425)\",\n vr: \"CS\",\n name: \"ContrastBolusIngredientOpaque\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9426)\": {\n tag: \"(0018,9426)\",\n vr: \"FL\",\n name: \"DistanceReceptorPlaneToDetectorHousing\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9427)\": {\n tag: \"(0018,9427)\",\n vr: \"CS\",\n name: \"IntensifierActiveShape\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9428)\": {\n tag: \"(0018,9428)\",\n vr: \"FL\",\n name: \"IntensifierActiveDimensions\",\n vm: \"1-2\",\n version: \"DICOM\"\n },\n \"(0018,9429)\": {\n tag: \"(0018,9429)\",\n vr: \"FL\",\n name: \"PhysicalDetectorSize\",\n vm: \"2\",\n version: \"DICOM\"\n },\n \"(0018,9430)\": {\n tag: \"(0018,9430)\",\n vr: \"FL\",\n name: \"PositionOfIsocenterProjection\",\n vm: \"2\",\n version: \"DICOM\"\n },\n \"(0018,9432)\": {\n tag: \"(0018,9432)\",\n vr: \"SQ\",\n name: \"FieldOfViewSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9433)\": {\n tag: \"(0018,9433)\",\n vr: \"LO\",\n name: \"FieldOfViewDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9434)\": {\n tag: \"(0018,9434)\",\n vr: \"SQ\",\n name: \"ExposureControlSensingRegionsSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9435)\": {\n tag: \"(0018,9435)\",\n vr: \"CS\",\n name: \"ExposureControlSensingRegionShape\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9436)\": {\n tag: \"(0018,9436)\",\n vr: \"SS\",\n name: \"ExposureControlSensingRegionLeftVerticalEdge\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9437)\": {\n tag: \"(0018,9437)\",\n vr: \"SS\",\n name: \"ExposureControlSensingRegionRightVerticalEdge\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9438)\": {\n tag: \"(0018,9438)\",\n vr: \"SS\",\n name: \"ExposureControlSensingRegionUpperHorizontalEdge\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9439)\": {\n tag: \"(0018,9439)\",\n vr: \"SS\",\n name: \"ExposureControlSensingRegionLowerHorizontalEdge\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9440)\": {\n tag: \"(0018,9440)\",\n vr: \"SS\",\n name: \"CenterOfCircularExposureControlSensingRegion\",\n vm: \"2\",\n version: \"DICOM\"\n },\n \"(0018,9441)\": {\n tag: \"(0018,9441)\",\n vr: \"US\",\n name: \"RadiusOfCircularExposureControlSensingRegion\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9442)\": {\n tag: \"(0018,9442)\",\n vr: \"SS\",\n name: \"VerticesOfThePolygonalExposureControlSensingRegion\",\n vm: \"2-n\",\n version: \"DICOM\"\n },\n \"(0018,9447)\": {\n tag: \"(0018,9447)\",\n vr: \"FL\",\n name: \"ColumnAngulationPatient\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9449)\": {\n tag: \"(0018,9449)\",\n vr: \"FL\",\n name: \"BeamAngle\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9451)\": {\n tag: \"(0018,9451)\",\n vr: \"SQ\",\n name: \"FrameDetectorParametersSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9452)\": {\n tag: \"(0018,9452)\",\n vr: \"FL\",\n name: \"CalculatedAnatomyThickness\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9455)\": {\n tag: \"(0018,9455)\",\n vr: \"SQ\",\n name: \"CalibrationSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9456)\": {\n tag: \"(0018,9456)\",\n vr: \"SQ\",\n name: \"ObjectThicknessSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9457)\": {\n tag: \"(0018,9457)\",\n vr: \"CS\",\n name: \"PlaneIdentification\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9461)\": {\n tag: \"(0018,9461)\",\n vr: \"FL\",\n name: \"FieldOfViewDimensionsInFloat\",\n vm: \"1-2\",\n version: \"DICOM\"\n },\n \"(0018,9462)\": {\n tag: \"(0018,9462)\",\n vr: \"SQ\",\n name: \"IsocenterReferenceSystemSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9463)\": {\n tag: \"(0018,9463)\",\n vr: \"FL\",\n name: \"PositionerIsocenterPrimaryAngle\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9464)\": {\n tag: \"(0018,9464)\",\n vr: \"FL\",\n name: \"PositionerIsocenterSecondaryAngle\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9465)\": {\n tag: \"(0018,9465)\",\n vr: \"FL\",\n name: \"PositionerIsocenterDetectorRotationAngle\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9466)\": {\n tag: \"(0018,9466)\",\n vr: \"FL\",\n name: \"TableXPositionToIsocenter\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9467)\": {\n tag: \"(0018,9467)\",\n vr: \"FL\",\n name: \"TableYPositionToIsocenter\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9468)\": {\n tag: \"(0018,9468)\",\n vr: \"FL\",\n name: \"TableZPositionToIsocenter\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9469)\": {\n tag: \"(0018,9469)\",\n vr: \"FL\",\n name: \"TableHorizontalRotationAngle\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9470)\": {\n tag: \"(0018,9470)\",\n vr: \"FL\",\n name: \"TableHeadTiltAngle\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9471)\": {\n tag: \"(0018,9471)\",\n vr: \"FL\",\n name: \"TableCradleTiltAngle\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9472)\": {\n tag: \"(0018,9472)\",\n vr: \"SQ\",\n name: \"FrameDisplayShutterSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9473)\": {\n tag: \"(0018,9473)\",\n vr: \"FL\",\n name: \"AcquiredImageAreaDoseProduct\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9474)\": {\n tag: \"(0018,9474)\",\n vr: \"CS\",\n name: \"CArmPositionerTabletopRelationship\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9476)\": {\n tag: \"(0018,9476)\",\n vr: \"SQ\",\n name: \"XRayGeometrySequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9477)\": {\n tag: \"(0018,9477)\",\n vr: \"SQ\",\n name: \"IrradiationEventIdentificationSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9504)\": {\n tag: \"(0018,9504)\",\n vr: \"SQ\",\n name: \"XRay3DFrameTypeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9506)\": {\n tag: \"(0018,9506)\",\n vr: \"SQ\",\n name: \"ContributingSourcesSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9507)\": {\n tag: \"(0018,9507)\",\n vr: \"SQ\",\n name: \"XRay3DAcquisitionSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9508)\": {\n tag: \"(0018,9508)\",\n vr: \"FL\",\n name: \"PrimaryPositionerScanArc\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9509)\": {\n tag: \"(0018,9509)\",\n vr: \"FL\",\n name: \"SecondaryPositionerScanArc\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9510)\": {\n tag: \"(0018,9510)\",\n vr: \"FL\",\n name: \"PrimaryPositionerScanStartAngle\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9511)\": {\n tag: \"(0018,9511)\",\n vr: \"FL\",\n name: \"SecondaryPositionerScanStartAngle\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9514)\": {\n tag: \"(0018,9514)\",\n vr: \"FL\",\n name: \"PrimaryPositionerIncrement\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9515)\": {\n tag: \"(0018,9515)\",\n vr: \"FL\",\n name: \"SecondaryPositionerIncrement\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9516)\": {\n tag: \"(0018,9516)\",\n vr: \"DT\",\n name: \"StartAcquisitionDateTime\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9517)\": {\n tag: \"(0018,9517)\",\n vr: \"DT\",\n name: \"EndAcquisitionDateTime\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9518)\": {\n tag: \"(0018,9518)\",\n vr: \"SS\",\n name: \"PrimaryPositionerIncrementSign\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9519)\": {\n tag: \"(0018,9519)\",\n vr: \"SS\",\n name: \"SecondaryPositionerIncrementSign\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9524)\": {\n tag: \"(0018,9524)\",\n vr: \"LO\",\n name: \"ApplicationName\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9525)\": {\n tag: \"(0018,9525)\",\n vr: \"LO\",\n name: \"ApplicationVersion\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9526)\": {\n tag: \"(0018,9526)\",\n vr: \"LO\",\n name: \"ApplicationManufacturer\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9527)\": {\n tag: \"(0018,9527)\",\n vr: \"CS\",\n name: \"AlgorithmType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9528)\": {\n tag: \"(0018,9528)\",\n vr: \"LO\",\n name: \"AlgorithmDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9530)\": {\n tag: \"(0018,9530)\",\n vr: \"SQ\",\n name: \"XRay3DReconstructionSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9531)\": {\n tag: \"(0018,9531)\",\n vr: \"LO\",\n name: \"ReconstructionDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9538)\": {\n tag: \"(0018,9538)\",\n vr: \"SQ\",\n name: \"PerProjectionAcquisitionSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9541)\": {\n tag: \"(0018,9541)\",\n vr: \"SQ\",\n name: \"DetectorPositionSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9542)\": {\n tag: \"(0018,9542)\",\n vr: \"SQ\",\n name: \"XRayAcquisitionDoseSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9543)\": {\n tag: \"(0018,9543)\",\n vr: \"FD\",\n name: \"XRaySourceIsocenterPrimaryAngle\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9544)\": {\n tag: \"(0018,9544)\",\n vr: \"FD\",\n name: \"XRaySourceIsocenterSecondaryAngle\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9545)\": {\n tag: \"(0018,9545)\",\n vr: \"FD\",\n name: \"BreastSupportIsocenterPrimaryAngle\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9546)\": {\n tag: \"(0018,9546)\",\n vr: \"FD\",\n name: \"BreastSupportIsocenterSecondaryAngle\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9547)\": {\n tag: \"(0018,9547)\",\n vr: \"FD\",\n name: \"BreastSupportXPositionToIsocenter\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9548)\": {\n tag: \"(0018,9548)\",\n vr: \"FD\",\n name: \"BreastSupportYPositionToIsocenter\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9549)\": {\n tag: \"(0018,9549)\",\n vr: \"FD\",\n name: \"BreastSupportZPositionToIsocenter\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9550)\": {\n tag: \"(0018,9550)\",\n vr: \"FD\",\n name: \"DetectorIsocenterPrimaryAngle\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9551)\": {\n tag: \"(0018,9551)\",\n vr: \"FD\",\n name: \"DetectorIsocenterSecondaryAngle\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9552)\": {\n tag: \"(0018,9552)\",\n vr: \"FD\",\n name: \"DetectorXPositionToIsocenter\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9553)\": {\n tag: \"(0018,9553)\",\n vr: \"FD\",\n name: \"DetectorYPositionToIsocenter\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9554)\": {\n tag: \"(0018,9554)\",\n vr: \"FD\",\n name: \"DetectorZPositionToIsocenter\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9555)\": {\n tag: \"(0018,9555)\",\n vr: \"SQ\",\n name: \"XRayGridSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9556)\": {\n tag: \"(0018,9556)\",\n vr: \"SQ\",\n name: \"XRayFilterSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9557)\": {\n tag: \"(0018,9557)\",\n vr: \"FD\",\n name: \"DetectorActiveAreaTLHCPosition\",\n vm: \"3\",\n version: \"DICOM\"\n },\n \"(0018,9558)\": {\n tag: \"(0018,9558)\",\n vr: \"FD\",\n name: \"DetectorActiveAreaOrientation\",\n vm: \"6\",\n version: \"DICOM\"\n },\n \"(0018,9559)\": {\n tag: \"(0018,9559)\",\n vr: \"CS\",\n name: \"PositionerPrimaryAngleDirection\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9601)\": {\n tag: \"(0018,9601)\",\n vr: \"SQ\",\n name: \"DiffusionBMatrixSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9602)\": {\n tag: \"(0018,9602)\",\n vr: \"FD\",\n name: \"DiffusionBValueXX\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9603)\": {\n tag: \"(0018,9603)\",\n vr: \"FD\",\n name: \"DiffusionBValueXY\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9604)\": {\n tag: \"(0018,9604)\",\n vr: \"FD\",\n name: \"DiffusionBValueXZ\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9605)\": {\n tag: \"(0018,9605)\",\n vr: \"FD\",\n name: \"DiffusionBValueYY\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9606)\": {\n tag: \"(0018,9606)\",\n vr: \"FD\",\n name: \"DiffusionBValueYZ\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9607)\": {\n tag: \"(0018,9607)\",\n vr: \"FD\",\n name: \"DiffusionBValueZZ\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9621)\": {\n tag: \"(0018,9621)\",\n vr: \"SQ\",\n name: \"FunctionalMRSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9622)\": {\n tag: \"(0018,9622)\",\n vr: \"CS\",\n name: \"FunctionalSettlingPhaseFramesPresent\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9623)\": {\n tag: \"(0018,9623)\",\n vr: \"DT\",\n name: \"FunctionalSyncPulse\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9624)\": {\n tag: \"(0018,9624)\",\n vr: \"CS\",\n name: \"SettlingPhaseFrame\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9701)\": {\n tag: \"(0018,9701)\",\n vr: \"DT\",\n name: \"DecayCorrectionDateTime\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9715)\": {\n tag: \"(0018,9715)\",\n vr: \"FD\",\n name: \"StartDensityThreshold\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9716)\": {\n tag: \"(0018,9716)\",\n vr: \"FD\",\n name: \"StartRelativeDensityDifferenceThreshold\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9717)\": {\n tag: \"(0018,9717)\",\n vr: \"FD\",\n name: \"StartCardiacTriggerCountThreshold\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9718)\": {\n tag: \"(0018,9718)\",\n vr: \"FD\",\n name: \"StartRespiratoryTriggerCountThreshold\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9719)\": {\n tag: \"(0018,9719)\",\n vr: \"FD\",\n name: \"TerminationCountsThreshold\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9720)\": {\n tag: \"(0018,9720)\",\n vr: \"FD\",\n name: \"TerminationDensityThreshold\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9721)\": {\n tag: \"(0018,9721)\",\n vr: \"FD\",\n name: \"TerminationRelativeDensityThreshold\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9722)\": {\n tag: \"(0018,9722)\",\n vr: \"FD\",\n name: \"TerminationTimeThreshold\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9723)\": {\n tag: \"(0018,9723)\",\n vr: \"FD\",\n name: \"TerminationCardiacTriggerCountThreshold\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9724)\": {\n tag: \"(0018,9724)\",\n vr: \"FD\",\n name: \"TerminationRespiratoryTriggerCountThreshold\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9725)\": {\n tag: \"(0018,9725)\",\n vr: \"CS\",\n name: \"DetectorGeometry\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9726)\": {\n tag: \"(0018,9726)\",\n vr: \"FD\",\n name: \"TransverseDetectorSeparation\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9727)\": {\n tag: \"(0018,9727)\",\n vr: \"FD\",\n name: \"AxialDetectorDimension\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9729)\": {\n tag: \"(0018,9729)\",\n vr: \"US\",\n name: \"RadiopharmaceuticalAgentNumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9732)\": {\n tag: \"(0018,9732)\",\n vr: \"SQ\",\n name: \"PETFrameAcquisitionSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9733)\": {\n tag: \"(0018,9733)\",\n vr: \"SQ\",\n name: \"PETDetectorMotionDetailsSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9734)\": {\n tag: \"(0018,9734)\",\n vr: \"SQ\",\n name: \"PETTableDynamicsSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9735)\": {\n tag: \"(0018,9735)\",\n vr: \"SQ\",\n name: \"PETPositionSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9736)\": {\n tag: \"(0018,9736)\",\n vr: \"SQ\",\n name: \"PETFrameCorrectionFactorsSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9737)\": {\n tag: \"(0018,9737)\",\n vr: \"SQ\",\n name: \"RadiopharmaceuticalUsageSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9738)\": {\n tag: \"(0018,9738)\",\n vr: \"CS\",\n name: \"AttenuationCorrectionSource\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9739)\": {\n tag: \"(0018,9739)\",\n vr: \"US\",\n name: \"NumberOfIterations\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9740)\": {\n tag: \"(0018,9740)\",\n vr: \"US\",\n name: \"NumberOfSubsets\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9749)\": {\n tag: \"(0018,9749)\",\n vr: \"SQ\",\n name: \"PETReconstructionSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9751)\": {\n tag: \"(0018,9751)\",\n vr: \"SQ\",\n name: \"PETFrameTypeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9755)\": {\n tag: \"(0018,9755)\",\n vr: \"CS\",\n name: \"TimeOfFlightInformationUsed\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9756)\": {\n tag: \"(0018,9756)\",\n vr: \"CS\",\n name: \"ReconstructionType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9758)\": {\n tag: \"(0018,9758)\",\n vr: \"CS\",\n name: \"DecayCorrected\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9759)\": {\n tag: \"(0018,9759)\",\n vr: \"CS\",\n name: \"AttenuationCorrected\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9760)\": {\n tag: \"(0018,9760)\",\n vr: \"CS\",\n name: \"ScatterCorrected\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9761)\": {\n tag: \"(0018,9761)\",\n vr: \"CS\",\n name: \"DeadTimeCorrected\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9762)\": {\n tag: \"(0018,9762)\",\n vr: \"CS\",\n name: \"GantryMotionCorrected\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9763)\": {\n tag: \"(0018,9763)\",\n vr: \"CS\",\n name: \"PatientMotionCorrected\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9764)\": {\n tag: \"(0018,9764)\",\n vr: \"CS\",\n name: \"CountLossNormalizationCorrected\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9765)\": {\n tag: \"(0018,9765)\",\n vr: \"CS\",\n name: \"RandomsCorrected\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9766)\": {\n tag: \"(0018,9766)\",\n vr: \"CS\",\n name: \"NonUniformRadialSamplingCorrected\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9767)\": {\n tag: \"(0018,9767)\",\n vr: \"CS\",\n name: \"SensitivityCalibrated\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9768)\": {\n tag: \"(0018,9768)\",\n vr: \"CS\",\n name: \"DetectorNormalizationCorrection\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9769)\": {\n tag: \"(0018,9769)\",\n vr: \"CS\",\n name: \"IterativeReconstructionMethod\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9770)\": {\n tag: \"(0018,9770)\",\n vr: \"CS\",\n name: \"AttenuationCorrectionTemporalRelationship\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9771)\": {\n tag: \"(0018,9771)\",\n vr: \"SQ\",\n name: \"PatientPhysiologicalStateSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9772)\": {\n tag: \"(0018,9772)\",\n vr: \"SQ\",\n name: \"PatientPhysiologicalStateCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9801)\": {\n tag: \"(0018,9801)\",\n vr: \"FD\",\n name: \"DepthsOfFocus\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0018,9803)\": {\n tag: \"(0018,9803)\",\n vr: \"SQ\",\n name: \"ExcludedIntervalsSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9804)\": {\n tag: \"(0018,9804)\",\n vr: \"DT\",\n name: \"ExclusionStartDateTime\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9805)\": {\n tag: \"(0018,9805)\",\n vr: \"FD\",\n name: \"ExclusionDuration\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9806)\": {\n tag: \"(0018,9806)\",\n vr: \"SQ\",\n name: \"USImageDescriptionSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9807)\": {\n tag: \"(0018,9807)\",\n vr: \"SQ\",\n name: \"ImageDataTypeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9808)\": {\n tag: \"(0018,9808)\",\n vr: \"CS\",\n name: \"DataType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9809)\": {\n tag: \"(0018,9809)\",\n vr: \"SQ\",\n name: \"TransducerScanPatternCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,980B)\": {\n tag: \"(0018,980B)\",\n vr: \"CS\",\n name: \"AliasedDataType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,980C)\": {\n tag: \"(0018,980C)\",\n vr: \"CS\",\n name: \"PositionMeasuringDeviceUsed\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,980D)\": {\n tag: \"(0018,980D)\",\n vr: \"SQ\",\n name: \"TransducerGeometryCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,980E)\": {\n tag: \"(0018,980E)\",\n vr: \"SQ\",\n name: \"TransducerBeamSteeringCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,980F)\": {\n tag: \"(0018,980F)\",\n vr: \"SQ\",\n name: \"TransducerApplicationCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9810)\": {\n tag: \"(0018,9810)\",\n vr: \"xs\",\n name: \"ZeroVelocityPixelValue\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9900)\": {\n tag: \"(0018,9900)\",\n vr: \"LO\",\n name: \"ReferenceLocationLabel\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9901)\": {\n tag: \"(0018,9901)\",\n vr: \"UT\",\n name: \"ReferenceLocationDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9902)\": {\n tag: \"(0018,9902)\",\n vr: \"SQ\",\n name: \"ReferenceBasisCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9903)\": {\n tag: \"(0018,9903)\",\n vr: \"SQ\",\n name: \"ReferenceGeometryCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9904)\": {\n tag: \"(0018,9904)\",\n vr: \"DS\",\n name: \"OffsetDistance\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9905)\": {\n tag: \"(0018,9905)\",\n vr: \"CS\",\n name: \"OffsetDirection\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9906)\": {\n tag: \"(0018,9906)\",\n vr: \"SQ\",\n name: \"PotentialScheduledProtocolCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9907)\": {\n tag: \"(0018,9907)\",\n vr: \"SQ\",\n name: \"PotentialRequestedProcedureCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9908)\": {\n tag: \"(0018,9908)\",\n vr: \"UC\",\n name: \"PotentialReasonsForProcedure\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0018,9909)\": {\n tag: \"(0018,9909)\",\n vr: \"SQ\",\n name: \"PotentialReasonsForProcedureCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,990A)\": {\n tag: \"(0018,990A)\",\n vr: \"UC\",\n name: \"PotentialDiagnosticTasks\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0018,990B)\": {\n tag: \"(0018,990B)\",\n vr: \"SQ\",\n name: \"ContraindicationsCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,990C)\": {\n tag: \"(0018,990C)\",\n vr: \"SQ\",\n name: \"ReferencedDefinedProtocolSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,990D)\": {\n tag: \"(0018,990D)\",\n vr: \"SQ\",\n name: \"ReferencedPerformedProtocolSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,990E)\": {\n tag: \"(0018,990E)\",\n vr: \"SQ\",\n name: \"PredecessorProtocolSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,990F)\": {\n tag: \"(0018,990F)\",\n vr: \"UT\",\n name: \"ProtocolPlanningInformation\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9910)\": {\n tag: \"(0018,9910)\",\n vr: \"UT\",\n name: \"ProtocolDesignRationale\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9911)\": {\n tag: \"(0018,9911)\",\n vr: \"SQ\",\n name: \"PatientSpecificationSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9912)\": {\n tag: \"(0018,9912)\",\n vr: \"SQ\",\n name: \"ModelSpecificationSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9913)\": {\n tag: \"(0018,9913)\",\n vr: \"SQ\",\n name: \"ParametersSpecificationSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9914)\": {\n tag: \"(0018,9914)\",\n vr: \"SQ\",\n name: \"InstructionSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9915)\": {\n tag: \"(0018,9915)\",\n vr: \"US\",\n name: \"InstructionIndex\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9916)\": {\n tag: \"(0018,9916)\",\n vr: \"LO\",\n name: \"InstructionText\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9917)\": {\n tag: \"(0018,9917)\",\n vr: \"UT\",\n name: \"InstructionDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9918)\": {\n tag: \"(0018,9918)\",\n vr: \"CS\",\n name: \"InstructionPerformedFlag\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9919)\": {\n tag: \"(0018,9919)\",\n vr: \"DT\",\n name: \"InstructionPerformedDateTime\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,991A)\": {\n tag: \"(0018,991A)\",\n vr: \"UT\",\n name: \"InstructionPerformanceComment\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,991B)\": {\n tag: \"(0018,991B)\",\n vr: \"SQ\",\n name: \"PatientPositioningInstructionSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,991C)\": {\n tag: \"(0018,991C)\",\n vr: \"SQ\",\n name: \"PositioningMethodCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,991D)\": {\n tag: \"(0018,991D)\",\n vr: \"SQ\",\n name: \"PositioningLandmarkSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,991E)\": {\n tag: \"(0018,991E)\",\n vr: \"UI\",\n name: \"TargetFrameOfReferenceUID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,991F)\": {\n tag: \"(0018,991F)\",\n vr: \"SQ\",\n name: \"AcquisitionProtocolElementSpecificationSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9920)\": {\n tag: \"(0018,9920)\",\n vr: \"SQ\",\n name: \"AcquisitionProtocolElementSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9921)\": {\n tag: \"(0018,9921)\",\n vr: \"US\",\n name: \"ProtocolElementNumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9922)\": {\n tag: \"(0018,9922)\",\n vr: \"LO\",\n name: \"ProtocolElementName\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9923)\": {\n tag: \"(0018,9923)\",\n vr: \"UT\",\n name: \"ProtocolElementCharacteristicsSummary\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9924)\": {\n tag: \"(0018,9924)\",\n vr: \"UT\",\n name: \"ProtocolElementPurpose\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9930)\": {\n tag: \"(0018,9930)\",\n vr: \"CS\",\n name: \"AcquisitionMotion\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9931)\": {\n tag: \"(0018,9931)\",\n vr: \"SQ\",\n name: \"AcquisitionStartLocationSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9932)\": {\n tag: \"(0018,9932)\",\n vr: \"SQ\",\n name: \"AcquisitionEndLocationSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9933)\": {\n tag: \"(0018,9933)\",\n vr: \"SQ\",\n name: \"ReconstructionProtocolElementSpecificationSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9934)\": {\n tag: \"(0018,9934)\",\n vr: \"SQ\",\n name: \"ReconstructionProtocolElementSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9935)\": {\n tag: \"(0018,9935)\",\n vr: \"SQ\",\n name: \"StorageProtocolElementSpecificationSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9936)\": {\n tag: \"(0018,9936)\",\n vr: \"SQ\",\n name: \"StorageProtocolElementSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9937)\": {\n tag: \"(0018,9937)\",\n vr: \"LO\",\n name: \"RequestedSeriesDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9938)\": {\n tag: \"(0018,9938)\",\n vr: \"US\",\n name: \"SourceAcquisitionProtocolElementNumber\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0018,9939)\": {\n tag: \"(0018,9939)\",\n vr: \"US\",\n name: \"SourceAcquisitionBeamNumber\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0018,993A)\": {\n tag: \"(0018,993A)\",\n vr: \"US\",\n name: \"SourceReconstructionProtocolElementNumber\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0018,993B)\": {\n tag: \"(0018,993B)\",\n vr: \"SQ\",\n name: \"ReconstructionStartLocationSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,993C)\": {\n tag: \"(0018,993C)\",\n vr: \"SQ\",\n name: \"ReconstructionEndLocationSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,993D)\": {\n tag: \"(0018,993D)\",\n vr: \"SQ\",\n name: \"ReconstructionAlgorithmSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,993E)\": {\n tag: \"(0018,993E)\",\n vr: \"SQ\",\n name: \"ReconstructionTargetCenterLocationSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9941)\": {\n tag: \"(0018,9941)\",\n vr: \"UT\",\n name: \"ImageFilterDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9942)\": {\n tag: \"(0018,9942)\",\n vr: \"FD\",\n name: \"CTDIvolNotificationTrigger\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9943)\": {\n tag: \"(0018,9943)\",\n vr: \"FD\",\n name: \"DLPNotificationTrigger\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9944)\": {\n tag: \"(0018,9944)\",\n vr: \"CS\",\n name: \"AutoKVPSelectionType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9945)\": {\n tag: \"(0018,9945)\",\n vr: \"FD\",\n name: \"AutoKVPUpperBound\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9946)\": {\n tag: \"(0018,9946)\",\n vr: \"FD\",\n name: \"AutoKVPLowerBound\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,9947)\": {\n tag: \"(0018,9947)\",\n vr: \"CS\",\n name: \"ProtocolDefinedPatientPosition\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,A001)\": {\n tag: \"(0018,A001)\",\n vr: \"SQ\",\n name: \"ContributingEquipmentSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,A002)\": {\n tag: \"(0018,A002)\",\n vr: \"DT\",\n name: \"ContributionDateTime\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0018,A003)\": {\n tag: \"(0018,A003)\",\n vr: \"ST\",\n name: \"ContributionDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0020,000D)\": {\n tag: \"(0020,000D)\",\n vr: \"UI\",\n name: \"StudyInstanceUID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0020,000E)\": {\n tag: \"(0020,000E)\",\n vr: \"UI\",\n name: \"SeriesInstanceUID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0020,0010)\": {\n tag: \"(0020,0010)\",\n vr: \"SH\",\n name: \"StudyID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0020,0011)\": {\n tag: \"(0020,0011)\",\n vr: \"IS\",\n name: \"SeriesNumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0020,0012)\": {\n tag: \"(0020,0012)\",\n vr: \"IS\",\n name: \"AcquisitionNumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0020,0013)\": {\n tag: \"(0020,0013)\",\n vr: \"IS\",\n name: \"InstanceNumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0020,0019)\": {\n tag: \"(0020,0019)\",\n vr: \"IS\",\n name: \"ItemNumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0020,0020)\": {\n tag: \"(0020,0020)\",\n vr: \"CS\",\n name: \"PatientOrientation\",\n vm: \"2\",\n version: \"DICOM\"\n },\n \"(0020,0032)\": {\n tag: \"(0020,0032)\",\n vr: \"DS\",\n name: \"ImagePositionPatient\",\n vm: \"3\",\n version: \"DICOM\"\n },\n \"(0020,0037)\": {\n tag: \"(0020,0037)\",\n vr: \"DS\",\n name: \"ImageOrientationPatient\",\n vm: \"6\",\n version: \"DICOM\"\n },\n \"(0020,0052)\": {\n tag: \"(0020,0052)\",\n vr: \"UI\",\n name: \"FrameOfReferenceUID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0020,0060)\": {\n tag: \"(0020,0060)\",\n vr: \"CS\",\n name: \"Laterality\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0020,0062)\": {\n tag: \"(0020,0062)\",\n vr: \"CS\",\n name: \"ImageLaterality\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0020,0100)\": {\n tag: \"(0020,0100)\",\n vr: \"IS\",\n name: \"TemporalPositionIdentifier\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0020,0105)\": {\n tag: \"(0020,0105)\",\n vr: \"IS\",\n name: \"NumberOfTemporalPositions\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0020,0110)\": {\n tag: \"(0020,0110)\",\n vr: \"DS\",\n name: \"TemporalResolution\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0020,0200)\": {\n tag: \"(0020,0200)\",\n vr: \"UI\",\n name: \"SynchronizationFrameOfReferenceUID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0020,0242)\": {\n tag: \"(0020,0242)\",\n vr: \"UI\",\n name: \"SOPInstanceUIDOfConcatenationSource\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0020,1002)\": {\n tag: \"(0020,1002)\",\n vr: \"IS\",\n name: \"ImagesInAcquisition\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0020,103F)\": {\n tag: \"(0020,103F)\",\n vr: \"LO\",\n name: \"TargetPositionReferenceIndicator\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0020,1040)\": {\n tag: \"(0020,1040)\",\n vr: \"LO\",\n name: \"PositionReferenceIndicator\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0020,1041)\": {\n tag: \"(0020,1041)\",\n vr: \"DS\",\n name: \"SliceLocation\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0020,1200)\": {\n tag: \"(0020,1200)\",\n vr: \"IS\",\n name: \"NumberOfPatientRelatedStudies\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0020,1202)\": {\n tag: \"(0020,1202)\",\n vr: \"IS\",\n name: \"NumberOfPatientRelatedSeries\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0020,1204)\": {\n tag: \"(0020,1204)\",\n vr: \"IS\",\n name: \"NumberOfPatientRelatedInstances\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0020,1206)\": {\n tag: \"(0020,1206)\",\n vr: \"IS\",\n name: \"NumberOfStudyRelatedSeries\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0020,1208)\": {\n tag: \"(0020,1208)\",\n vr: \"IS\",\n name: \"NumberOfStudyRelatedInstances\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0020,1209)\": {\n tag: \"(0020,1209)\",\n vr: \"IS\",\n name: \"NumberOfSeriesRelatedInstances\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0020,4000)\": {\n tag: \"(0020,4000)\",\n vr: \"LT\",\n name: \"ImageComments\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0020,9056)\": {\n tag: \"(0020,9056)\",\n vr: \"SH\",\n name: \"StackID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0020,9057)\": {\n tag: \"(0020,9057)\",\n vr: \"UL\",\n name: \"InStackPositionNumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0020,9071)\": {\n tag: \"(0020,9071)\",\n vr: \"SQ\",\n name: \"FrameAnatomySequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0020,9072)\": {\n tag: \"(0020,9072)\",\n vr: \"CS\",\n name: \"FrameLaterality\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0020,9111)\": {\n tag: \"(0020,9111)\",\n vr: \"SQ\",\n name: \"FrameContentSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0020,9113)\": {\n tag: \"(0020,9113)\",\n vr: \"SQ\",\n name: \"PlanePositionSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0020,9116)\": {\n tag: \"(0020,9116)\",\n vr: \"SQ\",\n name: \"PlaneOrientationSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0020,9128)\": {\n tag: \"(0020,9128)\",\n vr: \"UL\",\n name: \"TemporalPositionIndex\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0020,9153)\": {\n tag: \"(0020,9153)\",\n vr: \"FD\",\n name: \"NominalCardiacTriggerDelayTime\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0020,9154)\": {\n tag: \"(0020,9154)\",\n vr: \"FL\",\n name: \"NominalCardiacTriggerTimePriorToRPeak\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0020,9155)\": {\n tag: \"(0020,9155)\",\n vr: \"FL\",\n name: \"ActualCardiacTriggerTimePriorToRPeak\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0020,9156)\": {\n tag: \"(0020,9156)\",\n vr: \"US\",\n name: \"FrameAcquisitionNumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0020,9157)\": {\n tag: \"(0020,9157)\",\n vr: \"UL\",\n name: \"DimensionIndexValues\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0020,9158)\": {\n tag: \"(0020,9158)\",\n vr: \"LT\",\n name: \"FrameComments\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0020,9161)\": {\n tag: \"(0020,9161)\",\n vr: \"UI\",\n name: \"ConcatenationUID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0020,9162)\": {\n tag: \"(0020,9162)\",\n vr: \"US\",\n name: \"InConcatenationNumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0020,9163)\": {\n tag: \"(0020,9163)\",\n vr: \"US\",\n name: \"InConcatenationTotalNumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0020,9164)\": {\n tag: \"(0020,9164)\",\n vr: \"UI\",\n name: \"DimensionOrganizationUID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0020,9165)\": {\n tag: \"(0020,9165)\",\n vr: \"AT\",\n name: \"DimensionIndexPointer\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0020,9167)\": {\n tag: \"(0020,9167)\",\n vr: \"AT\",\n name: \"FunctionalGroupPointer\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0020,9170)\": {\n tag: \"(0020,9170)\",\n vr: \"SQ\",\n name: \"UnassignedSharedConvertedAttributesSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0020,9171)\": {\n tag: \"(0020,9171)\",\n vr: \"SQ\",\n name: \"UnassignedPerFrameConvertedAttributesSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0020,9172)\": {\n tag: \"(0020,9172)\",\n vr: \"SQ\",\n name: \"ConversionSourceAttributesSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0020,9213)\": {\n tag: \"(0020,9213)\",\n vr: \"LO\",\n name: \"DimensionIndexPrivateCreator\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0020,9221)\": {\n tag: \"(0020,9221)\",\n vr: \"SQ\",\n name: \"DimensionOrganizationSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0020,9222)\": {\n tag: \"(0020,9222)\",\n vr: \"SQ\",\n name: \"DimensionIndexSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0020,9228)\": {\n tag: \"(0020,9228)\",\n vr: \"UL\",\n name: \"ConcatenationFrameOffsetNumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0020,9238)\": {\n tag: \"(0020,9238)\",\n vr: \"LO\",\n name: \"FunctionalGroupPrivateCreator\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0020,9241)\": {\n tag: \"(0020,9241)\",\n vr: \"FL\",\n name: \"NominalPercentageOfCardiacPhase\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0020,9245)\": {\n tag: \"(0020,9245)\",\n vr: \"FL\",\n name: \"NominalPercentageOfRespiratoryPhase\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0020,9246)\": {\n tag: \"(0020,9246)\",\n vr: \"FL\",\n name: \"StartingRespiratoryAmplitude\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0020,9247)\": {\n tag: \"(0020,9247)\",\n vr: \"CS\",\n name: \"StartingRespiratoryPhase\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0020,9248)\": {\n tag: \"(0020,9248)\",\n vr: \"FL\",\n name: \"EndingRespiratoryAmplitude\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0020,9249)\": {\n tag: \"(0020,9249)\",\n vr: \"CS\",\n name: \"EndingRespiratoryPhase\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0020,9250)\": {\n tag: \"(0020,9250)\",\n vr: \"CS\",\n name: \"RespiratoryTriggerType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0020,9251)\": {\n tag: \"(0020,9251)\",\n vr: \"FD\",\n name: \"RRIntervalTimeNominal\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0020,9252)\": {\n tag: \"(0020,9252)\",\n vr: \"FD\",\n name: \"ActualCardiacTriggerDelayTime\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0020,9253)\": {\n tag: \"(0020,9253)\",\n vr: \"SQ\",\n name: \"RespiratorySynchronizationSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0020,9254)\": {\n tag: \"(0020,9254)\",\n vr: \"FD\",\n name: \"RespiratoryIntervalTime\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0020,9255)\": {\n tag: \"(0020,9255)\",\n vr: \"FD\",\n name: \"NominalRespiratoryTriggerDelayTime\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0020,9256)\": {\n tag: \"(0020,9256)\",\n vr: \"FD\",\n name: \"RespiratoryTriggerDelayThreshold\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0020,9257)\": {\n tag: \"(0020,9257)\",\n vr: \"FD\",\n name: \"ActualRespiratoryTriggerDelayTime\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0020,9301)\": {\n tag: \"(0020,9301)\",\n vr: \"FD\",\n name: \"ImagePositionVolume\",\n vm: \"3\",\n version: \"DICOM\"\n },\n \"(0020,9302)\": {\n tag: \"(0020,9302)\",\n vr: \"FD\",\n name: \"ImageOrientationVolume\",\n vm: \"6\",\n version: \"DICOM\"\n },\n \"(0020,9307)\": {\n tag: \"(0020,9307)\",\n vr: \"CS\",\n name: \"UltrasoundAcquisitionGeometry\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0020,9308)\": {\n tag: \"(0020,9308)\",\n vr: \"FD\",\n name: \"ApexPosition\",\n vm: \"3\",\n version: \"DICOM\"\n },\n \"(0020,9309)\": {\n tag: \"(0020,9309)\",\n vr: \"FD\",\n name: \"VolumeToTransducerMappingMatrix\",\n vm: \"16\",\n version: \"DICOM\"\n },\n \"(0020,930A)\": {\n tag: \"(0020,930A)\",\n vr: \"FD\",\n name: \"VolumeToTableMappingMatrix\",\n vm: \"16\",\n version: \"DICOM\"\n },\n \"(0020,930B)\": {\n tag: \"(0020,930B)\",\n vr: \"CS\",\n name: \"VolumeToTransducerRelationship\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0020,930C)\": {\n tag: \"(0020,930C)\",\n vr: \"CS\",\n name: \"PatientFrameOfReferenceSource\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0020,930D)\": {\n tag: \"(0020,930D)\",\n vr: \"FD\",\n name: \"TemporalPositionTimeOffset\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0020,930E)\": {\n tag: \"(0020,930E)\",\n vr: \"SQ\",\n name: \"PlanePositionVolumeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0020,930F)\": {\n tag: \"(0020,930F)\",\n vr: \"SQ\",\n name: \"PlaneOrientationVolumeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0020,9310)\": {\n tag: \"(0020,9310)\",\n vr: \"SQ\",\n name: \"TemporalPositionSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0020,9311)\": {\n tag: \"(0020,9311)\",\n vr: \"CS\",\n name: \"DimensionOrganizationType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0020,9312)\": {\n tag: \"(0020,9312)\",\n vr: \"UI\",\n name: \"VolumeFrameOfReferenceUID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0020,9313)\": {\n tag: \"(0020,9313)\",\n vr: \"UI\",\n name: \"TableFrameOfReferenceUID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0020,9421)\": {\n tag: \"(0020,9421)\",\n vr: \"LO\",\n name: \"DimensionDescriptionLabel\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0020,9450)\": {\n tag: \"(0020,9450)\",\n vr: \"SQ\",\n name: \"PatientOrientationInFrameSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0020,9453)\": {\n tag: \"(0020,9453)\",\n vr: \"LO\",\n name: \"FrameLabel\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0020,9518)\": {\n tag: \"(0020,9518)\",\n vr: \"US\",\n name: \"AcquisitionIndex\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0020,9529)\": {\n tag: \"(0020,9529)\",\n vr: \"SQ\",\n name: \"ContributingSOPInstancesReferenceSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0020,9536)\": {\n tag: \"(0020,9536)\",\n vr: \"US\",\n name: \"ReconstructionIndex\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,0001)\": {\n tag: \"(0022,0001)\",\n vr: \"US\",\n name: \"LightPathFilterPassThroughWavelength\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,0002)\": {\n tag: \"(0022,0002)\",\n vr: \"US\",\n name: \"LightPathFilterPassBand\",\n vm: \"2\",\n version: \"DICOM\"\n },\n \"(0022,0003)\": {\n tag: \"(0022,0003)\",\n vr: \"US\",\n name: \"ImagePathFilterPassThroughWavelength\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,0004)\": {\n tag: \"(0022,0004)\",\n vr: \"US\",\n name: \"ImagePathFilterPassBand\",\n vm: \"2\",\n version: \"DICOM\"\n },\n \"(0022,0005)\": {\n tag: \"(0022,0005)\",\n vr: \"CS\",\n name: \"PatientEyeMovementCommanded\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,0006)\": {\n tag: \"(0022,0006)\",\n vr: \"SQ\",\n name: \"PatientEyeMovementCommandCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,0007)\": {\n tag: \"(0022,0007)\",\n vr: \"FL\",\n name: \"SphericalLensPower\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,0008)\": {\n tag: \"(0022,0008)\",\n vr: \"FL\",\n name: \"CylinderLensPower\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,0009)\": {\n tag: \"(0022,0009)\",\n vr: \"FL\",\n name: \"CylinderAxis\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,000A)\": {\n tag: \"(0022,000A)\",\n vr: \"FL\",\n name: \"EmmetropicMagnification\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,000B)\": {\n tag: \"(0022,000B)\",\n vr: \"FL\",\n name: \"IntraOcularPressure\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,000C)\": {\n tag: \"(0022,000C)\",\n vr: \"FL\",\n name: \"HorizontalFieldOfView\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,000D)\": {\n tag: \"(0022,000D)\",\n vr: \"CS\",\n name: \"PupilDilated\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,000E)\": {\n tag: \"(0022,000E)\",\n vr: \"FL\",\n name: \"DegreeOfDilation\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,0010)\": {\n tag: \"(0022,0010)\",\n vr: \"FL\",\n name: \"StereoBaselineAngle\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,0011)\": {\n tag: \"(0022,0011)\",\n vr: \"FL\",\n name: \"StereoBaselineDisplacement\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,0012)\": {\n tag: \"(0022,0012)\",\n vr: \"FL\",\n name: \"StereoHorizontalPixelOffset\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,0013)\": {\n tag: \"(0022,0013)\",\n vr: \"FL\",\n name: \"StereoVerticalPixelOffset\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,0014)\": {\n tag: \"(0022,0014)\",\n vr: \"FL\",\n name: \"StereoRotation\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,0015)\": {\n tag: \"(0022,0015)\",\n vr: \"SQ\",\n name: \"AcquisitionDeviceTypeCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,0016)\": {\n tag: \"(0022,0016)\",\n vr: \"SQ\",\n name: \"IlluminationTypeCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,0017)\": {\n tag: \"(0022,0017)\",\n vr: \"SQ\",\n name: \"LightPathFilterTypeStackCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,0018)\": {\n tag: \"(0022,0018)\",\n vr: \"SQ\",\n name: \"ImagePathFilterTypeStackCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,0019)\": {\n tag: \"(0022,0019)\",\n vr: \"SQ\",\n name: \"LensesCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,001A)\": {\n tag: \"(0022,001A)\",\n vr: \"SQ\",\n name: \"ChannelDescriptionCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,001B)\": {\n tag: \"(0022,001B)\",\n vr: \"SQ\",\n name: \"RefractiveStateSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,001C)\": {\n tag: \"(0022,001C)\",\n vr: \"SQ\",\n name: \"MydriaticAgentCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,001D)\": {\n tag: \"(0022,001D)\",\n vr: \"SQ\",\n name: \"RelativeImagePositionCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,001E)\": {\n tag: \"(0022,001E)\",\n vr: \"FL\",\n name: \"CameraAngleOfView\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,0020)\": {\n tag: \"(0022,0020)\",\n vr: \"SQ\",\n name: \"StereoPairsSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,0021)\": {\n tag: \"(0022,0021)\",\n vr: \"SQ\",\n name: \"LeftImageSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,0022)\": {\n tag: \"(0022,0022)\",\n vr: \"SQ\",\n name: \"RightImageSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,0028)\": {\n tag: \"(0022,0028)\",\n vr: \"CS\",\n name: \"StereoPairsPresent\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,0030)\": {\n tag: \"(0022,0030)\",\n vr: \"FL\",\n name: \"AxialLengthOfTheEye\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,0031)\": {\n tag: \"(0022,0031)\",\n vr: \"SQ\",\n name: \"OphthalmicFrameLocationSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,0032)\": {\n tag: \"(0022,0032)\",\n vr: \"FL\",\n name: \"ReferenceCoordinates\",\n vm: \"2-2n\",\n version: \"DICOM\"\n },\n \"(0022,0035)\": {\n tag: \"(0022,0035)\",\n vr: \"FL\",\n name: \"DepthSpatialResolution\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,0036)\": {\n tag: \"(0022,0036)\",\n vr: \"FL\",\n name: \"MaximumDepthDistortion\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,0037)\": {\n tag: \"(0022,0037)\",\n vr: \"FL\",\n name: \"AlongScanSpatialResolution\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,0038)\": {\n tag: \"(0022,0038)\",\n vr: \"FL\",\n name: \"MaximumAlongScanDistortion\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,0039)\": {\n tag: \"(0022,0039)\",\n vr: \"CS\",\n name: \"OphthalmicImageOrientation\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,0041)\": {\n tag: \"(0022,0041)\",\n vr: \"FL\",\n name: \"DepthOfTransverseImage\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,0042)\": {\n tag: \"(0022,0042)\",\n vr: \"SQ\",\n name: \"MydriaticAgentConcentrationUnitsSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,0048)\": {\n tag: \"(0022,0048)\",\n vr: \"FL\",\n name: \"AcrossScanSpatialResolution\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,0049)\": {\n tag: \"(0022,0049)\",\n vr: \"FL\",\n name: \"MaximumAcrossScanDistortion\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,004E)\": {\n tag: \"(0022,004E)\",\n vr: \"DS\",\n name: \"MydriaticAgentConcentration\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,0055)\": {\n tag: \"(0022,0055)\",\n vr: \"FL\",\n name: \"IlluminationWaveLength\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,0056)\": {\n tag: \"(0022,0056)\",\n vr: \"FL\",\n name: \"IlluminationPower\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,0057)\": {\n tag: \"(0022,0057)\",\n vr: \"FL\",\n name: \"IlluminationBandwidth\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,0058)\": {\n tag: \"(0022,0058)\",\n vr: \"SQ\",\n name: \"MydriaticAgentSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1007)\": {\n tag: \"(0022,1007)\",\n vr: \"SQ\",\n name: \"OphthalmicAxialMeasurementsRightEyeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1008)\": {\n tag: \"(0022,1008)\",\n vr: \"SQ\",\n name: \"OphthalmicAxialMeasurementsLeftEyeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1009)\": {\n tag: \"(0022,1009)\",\n vr: \"CS\",\n name: \"OphthalmicAxialMeasurementsDeviceType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1010)\": {\n tag: \"(0022,1010)\",\n vr: \"CS\",\n name: \"OphthalmicAxialLengthMeasurementsType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1012)\": {\n tag: \"(0022,1012)\",\n vr: \"SQ\",\n name: \"OphthalmicAxialLengthSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1019)\": {\n tag: \"(0022,1019)\",\n vr: \"FL\",\n name: \"OphthalmicAxialLength\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1024)\": {\n tag: \"(0022,1024)\",\n vr: \"SQ\",\n name: \"LensStatusCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1025)\": {\n tag: \"(0022,1025)\",\n vr: \"SQ\",\n name: \"VitreousStatusCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1028)\": {\n tag: \"(0022,1028)\",\n vr: \"SQ\",\n name: \"IOLFormulaCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1029)\": {\n tag: \"(0022,1029)\",\n vr: \"LO\",\n name: \"IOLFormulaDetail\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1033)\": {\n tag: \"(0022,1033)\",\n vr: \"FL\",\n name: \"KeratometerIndex\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1035)\": {\n tag: \"(0022,1035)\",\n vr: \"SQ\",\n name: \"SourceOfOphthalmicAxialLengthCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1036)\": {\n tag: \"(0022,1036)\",\n vr: \"SQ\",\n name: \"SourceOfCornealSizeDataCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1037)\": {\n tag: \"(0022,1037)\",\n vr: \"FL\",\n name: \"TargetRefraction\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1039)\": {\n tag: \"(0022,1039)\",\n vr: \"CS\",\n name: \"RefractiveProcedureOccurred\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1040)\": {\n tag: \"(0022,1040)\",\n vr: \"SQ\",\n name: \"RefractiveSurgeryTypeCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1044)\": {\n tag: \"(0022,1044)\",\n vr: \"SQ\",\n name: \"OphthalmicUltrasoundMethodCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1045)\": {\n tag: \"(0022,1045)\",\n vr: \"SQ\",\n name: \"SurgicallyInducedAstigmatismSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1046)\": {\n tag: \"(0022,1046)\",\n vr: \"CS\",\n name: \"TypeOfOpticalCorrection\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1047)\": {\n tag: \"(0022,1047)\",\n vr: \"SQ\",\n name: \"ToricIOLPowerSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1048)\": {\n tag: \"(0022,1048)\",\n vr: \"SQ\",\n name: \"PredictedToricErrorSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1049)\": {\n tag: \"(0022,1049)\",\n vr: \"CS\",\n name: \"PreSelectedForImplantation\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,104A)\": {\n tag: \"(0022,104A)\",\n vr: \"SQ\",\n name: \"ToricIOLPowerForExactEmmetropiaSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,104B)\": {\n tag: \"(0022,104B)\",\n vr: \"SQ\",\n name: \"ToricIOLPowerForExactTargetRefractionSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1050)\": {\n tag: \"(0022,1050)\",\n vr: \"SQ\",\n name: \"OphthalmicAxialLengthMeasurementsSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1053)\": {\n tag: \"(0022,1053)\",\n vr: \"FL\",\n name: \"IOLPower\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1054)\": {\n tag: \"(0022,1054)\",\n vr: \"FL\",\n name: \"PredictedRefractiveError\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1059)\": {\n tag: \"(0022,1059)\",\n vr: \"FL\",\n name: \"OphthalmicAxialLengthVelocity\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1065)\": {\n tag: \"(0022,1065)\",\n vr: \"LO\",\n name: \"LensStatusDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1066)\": {\n tag: \"(0022,1066)\",\n vr: \"LO\",\n name: \"VitreousStatusDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1090)\": {\n tag: \"(0022,1090)\",\n vr: \"SQ\",\n name: \"IOLPowerSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1092)\": {\n tag: \"(0022,1092)\",\n vr: \"SQ\",\n name: \"LensConstantSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1093)\": {\n tag: \"(0022,1093)\",\n vr: \"LO\",\n name: \"IOLManufacturer\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1095)\": {\n tag: \"(0022,1095)\",\n vr: \"LO\",\n name: \"ImplantName\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1096)\": {\n tag: \"(0022,1096)\",\n vr: \"SQ\",\n name: \"KeratometryMeasurementTypeCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1097)\": {\n tag: \"(0022,1097)\",\n vr: \"LO\",\n name: \"ImplantPartNumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1100)\": {\n tag: \"(0022,1100)\",\n vr: \"SQ\",\n name: \"ReferencedOphthalmicAxialMeasurementsSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1101)\": {\n tag: \"(0022,1101)\",\n vr: \"SQ\",\n name: \"OphthalmicAxialLengthMeasurementsSegmentNameCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1103)\": {\n tag: \"(0022,1103)\",\n vr: \"SQ\",\n name: \"RefractiveErrorBeforeRefractiveSurgeryCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1121)\": {\n tag: \"(0022,1121)\",\n vr: \"FL\",\n name: \"IOLPowerForExactEmmetropia\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1122)\": {\n tag: \"(0022,1122)\",\n vr: \"FL\",\n name: \"IOLPowerForExactTargetRefraction\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1125)\": {\n tag: \"(0022,1125)\",\n vr: \"SQ\",\n name: \"AnteriorChamberDepthDefinitionCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1127)\": {\n tag: \"(0022,1127)\",\n vr: \"SQ\",\n name: \"LensThicknessSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1128)\": {\n tag: \"(0022,1128)\",\n vr: \"SQ\",\n name: \"AnteriorChamberDepthSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,112A)\": {\n tag: \"(0022,112A)\",\n vr: \"SQ\",\n name: \"CalculationCommentSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,112B)\": {\n tag: \"(0022,112B)\",\n vr: \"CS\",\n name: \"CalculationCommentType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,112C)\": {\n tag: \"(0022,112C)\",\n vr: \"LT\",\n name: \"CalculationComment\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1130)\": {\n tag: \"(0022,1130)\",\n vr: \"FL\",\n name: \"LensThickness\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1131)\": {\n tag: \"(0022,1131)\",\n vr: \"FL\",\n name: \"AnteriorChamberDepth\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1132)\": {\n tag: \"(0022,1132)\",\n vr: \"SQ\",\n name: \"SourceOfLensThicknessDataCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1133)\": {\n tag: \"(0022,1133)\",\n vr: \"SQ\",\n name: \"SourceOfAnteriorChamberDepthDataCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1134)\": {\n tag: \"(0022,1134)\",\n vr: \"SQ\",\n name: \"SourceOfRefractiveMeasurementsSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1135)\": {\n tag: \"(0022,1135)\",\n vr: \"SQ\",\n name: \"SourceOfRefractiveMeasurementsCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1140)\": {\n tag: \"(0022,1140)\",\n vr: \"CS\",\n name: \"OphthalmicAxialLengthMeasurementModified\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1150)\": {\n tag: \"(0022,1150)\",\n vr: \"SQ\",\n name: \"OphthalmicAxialLengthDataSourceCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1155)\": {\n tag: \"(0022,1155)\",\n vr: \"FL\",\n name: \"SignalToNoiseRatio\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1159)\": {\n tag: \"(0022,1159)\",\n vr: \"LO\",\n name: \"OphthalmicAxialLengthDataSourceDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1210)\": {\n tag: \"(0022,1210)\",\n vr: \"SQ\",\n name: \"OphthalmicAxialLengthMeasurementsTotalLengthSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1211)\": {\n tag: \"(0022,1211)\",\n vr: \"SQ\",\n name: \"OphthalmicAxialLengthMeasurementsSegmentalLengthSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1212)\": {\n tag: \"(0022,1212)\",\n vr: \"SQ\",\n name: \"OphthalmicAxialLengthMeasurementsLengthSummationSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1220)\": {\n tag: \"(0022,1220)\",\n vr: \"SQ\",\n name: \"UltrasoundOphthalmicAxialLengthMeasurementsSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1225)\": {\n tag: \"(0022,1225)\",\n vr: \"SQ\",\n name: \"OpticalOphthalmicAxialLengthMeasurementsSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1230)\": {\n tag: \"(0022,1230)\",\n vr: \"SQ\",\n name: \"UltrasoundSelectedOphthalmicAxialLengthSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1250)\": {\n tag: \"(0022,1250)\",\n vr: \"SQ\",\n name: \"OphthalmicAxialLengthSelectionMethodCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1255)\": {\n tag: \"(0022,1255)\",\n vr: \"SQ\",\n name: \"OpticalSelectedOphthalmicAxialLengthSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1257)\": {\n tag: \"(0022,1257)\",\n vr: \"SQ\",\n name: \"SelectedSegmentalOphthalmicAxialLengthSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1260)\": {\n tag: \"(0022,1260)\",\n vr: \"SQ\",\n name: \"SelectedTotalOphthalmicAxialLengthSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1262)\": {\n tag: \"(0022,1262)\",\n vr: \"SQ\",\n name: \"OphthalmicAxialLengthQualityMetricSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1300)\": {\n tag: \"(0022,1300)\",\n vr: \"SQ\",\n name: \"IntraocularLensCalculationsRightEyeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1310)\": {\n tag: \"(0022,1310)\",\n vr: \"SQ\",\n name: \"IntraocularLensCalculationsLeftEyeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1330)\": {\n tag: \"(0022,1330)\",\n vr: \"SQ\",\n name: \"ReferencedOphthalmicAxialLengthMeasurementQCImageSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1415)\": {\n tag: \"(0022,1415)\",\n vr: \"CS\",\n name: \"OphthalmicMappingDeviceType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1420)\": {\n tag: \"(0022,1420)\",\n vr: \"SQ\",\n name: \"AcquisitionMethodCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1423)\": {\n tag: \"(0022,1423)\",\n vr: \"SQ\",\n name: \"AcquisitionMethodAlgorithmSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1436)\": {\n tag: \"(0022,1436)\",\n vr: \"SQ\",\n name: \"OphthalmicThicknessMapTypeCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1443)\": {\n tag: \"(0022,1443)\",\n vr: \"SQ\",\n name: \"OphthalmicThicknessMappingNormalsSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1445)\": {\n tag: \"(0022,1445)\",\n vr: \"SQ\",\n name: \"RetinalThicknessDefinitionCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1450)\": {\n tag: \"(0022,1450)\",\n vr: \"SQ\",\n name: \"PixelValueMappingToCodedConceptSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1452)\": {\n tag: \"(0022,1452)\",\n vr: \"xs\",\n name: \"MappedPixelValue\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1454)\": {\n tag: \"(0022,1454)\",\n vr: \"LO\",\n name: \"PixelValueMappingExplanation\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1458)\": {\n tag: \"(0022,1458)\",\n vr: \"SQ\",\n name: \"OphthalmicThicknessMapQualityThresholdSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1460)\": {\n tag: \"(0022,1460)\",\n vr: \"FL\",\n name: \"OphthalmicThicknessMapThresholdQualityRating\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1463)\": {\n tag: \"(0022,1463)\",\n vr: \"FL\",\n name: \"AnatomicStructureReferencePoint\",\n vm: \"2\",\n version: \"DICOM\"\n },\n \"(0022,1465)\": {\n tag: \"(0022,1465)\",\n vr: \"SQ\",\n name: \"RegistrationToLocalizerSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1466)\": {\n tag: \"(0022,1466)\",\n vr: \"CS\",\n name: \"RegisteredLocalizerUnits\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1467)\": {\n tag: \"(0022,1467)\",\n vr: \"FL\",\n name: \"RegisteredLocalizerTopLeftHandCorner\",\n vm: \"2\",\n version: \"DICOM\"\n },\n \"(0022,1468)\": {\n tag: \"(0022,1468)\",\n vr: \"FL\",\n name: \"RegisteredLocalizerBottomRightHandCorner\",\n vm: \"2\",\n version: \"DICOM\"\n },\n \"(0022,1470)\": {\n tag: \"(0022,1470)\",\n vr: \"SQ\",\n name: \"OphthalmicThicknessMapQualityRatingSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1472)\": {\n tag: \"(0022,1472)\",\n vr: \"SQ\",\n name: \"RelevantOPTAttributesSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1512)\": {\n tag: \"(0022,1512)\",\n vr: \"SQ\",\n name: \"TransformationMethodCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1513)\": {\n tag: \"(0022,1513)\",\n vr: \"SQ\",\n name: \"TransformationAlgorithmSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1515)\": {\n tag: \"(0022,1515)\",\n vr: \"CS\",\n name: \"OphthalmicAxialLengthMethod\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1517)\": {\n tag: \"(0022,1517)\",\n vr: \"FL\",\n name: \"OphthalmicFOV\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1518)\": {\n tag: \"(0022,1518)\",\n vr: \"SQ\",\n name: \"TwoDimensionalToThreeDimensionalMapSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1525)\": {\n tag: \"(0022,1525)\",\n vr: \"SQ\",\n name: \"WideFieldOphthalmicPhotographyQualityRatingSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1526)\": {\n tag: \"(0022,1526)\",\n vr: \"SQ\",\n name: \"WideFieldOphthalmicPhotographyQualityThresholdSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1527)\": {\n tag: \"(0022,1527)\",\n vr: \"FL\",\n name: \"WideFieldOphthalmicPhotographyThresholdQualityRating\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1528)\": {\n tag: \"(0022,1528)\",\n vr: \"FL\",\n name: \"XCoordinatesCenterPixelViewAngle\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1529)\": {\n tag: \"(0022,1529)\",\n vr: \"FL\",\n name: \"YCoordinatesCenterPixelViewAngle\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1530)\": {\n tag: \"(0022,1530)\",\n vr: \"UL\",\n name: \"NumberOfMapPoints\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1531)\": {\n tag: \"(0022,1531)\",\n vr: \"OF\",\n name: \"TwoDimensionalToThreeDimensionalMapData\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1612)\": {\n tag: \"(0022,1612)\",\n vr: \"SQ\",\n name: \"DerivationAlgorithmSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1615)\": {\n tag: \"(0022,1615)\",\n vr: \"SQ\",\n name: \"OphthalmicImageTypeCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1616)\": {\n tag: \"(0022,1616)\",\n vr: \"LO\",\n name: \"OphthalmicImageTypeDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1618)\": {\n tag: \"(0022,1618)\",\n vr: \"SQ\",\n name: \"ScanPatternTypeCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1620)\": {\n tag: \"(0022,1620)\",\n vr: \"SQ\",\n name: \"ReferencedSurfaceMeshIdentificationSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1622)\": {\n tag: \"(0022,1622)\",\n vr: \"CS\",\n name: \"OphthalmicVolumetricPropertiesFlag\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1624)\": {\n tag: \"(0022,1624)\",\n vr: \"FL\",\n name: \"OphthalmicAnatomicReferencePointXCoordinate\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1626)\": {\n tag: \"(0022,1626)\",\n vr: \"FL\",\n name: \"OphthalmicAnatomicReferencePointYCoordinate\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1628)\": {\n tag: \"(0022,1628)\",\n vr: \"SQ\",\n name: \"OphthalmicEnFaceImageQualityRatingSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1630)\": {\n tag: \"(0022,1630)\",\n vr: \"DS\",\n name: \"QualityThreshold\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1640)\": {\n tag: \"(0022,1640)\",\n vr: \"SQ\",\n name: \"OCTBscanAnalysisAcquisitionParametersSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1642)\": {\n tag: \"(0022,1642)\",\n vr: \"UL\",\n name: \"NumberofBscansPerFrame\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1643)\": {\n tag: \"(0022,1643)\",\n vr: \"FL\",\n name: \"BscanSlabThickness\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1644)\": {\n tag: \"(0022,1644)\",\n vr: \"FL\",\n name: \"DistanceBetweenBscanSlabs\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1645)\": {\n tag: \"(0022,1645)\",\n vr: \"FL\",\n name: \"BscanCycleTime\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1646)\": {\n tag: \"(0022,1646)\",\n vr: \"FL\",\n name: \"BscanCycleTimeVector\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0022,1649)\": {\n tag: \"(0022,1649)\",\n vr: \"FL\",\n name: \"AscanRate\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1650)\": {\n tag: \"(0022,1650)\",\n vr: \"FL\",\n name: \"BscanRate\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0022,1658)\": {\n tag: \"(0022,1658)\",\n vr: \"UL\",\n name: \"SurfaceMeshZPixelOffset\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0024,0010)\": {\n tag: \"(0024,0010)\",\n vr: \"FL\",\n name: \"VisualFieldHorizontalExtent\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0024,0011)\": {\n tag: \"(0024,0011)\",\n vr: \"FL\",\n name: \"VisualFieldVerticalExtent\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0024,0012)\": {\n tag: \"(0024,0012)\",\n vr: \"CS\",\n name: \"VisualFieldShape\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0024,0016)\": {\n tag: \"(0024,0016)\",\n vr: \"SQ\",\n name: \"ScreeningTestModeCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0024,0018)\": {\n tag: \"(0024,0018)\",\n vr: \"FL\",\n name: \"MaximumStimulusLuminance\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0024,0020)\": {\n tag: \"(0024,0020)\",\n vr: \"FL\",\n name: \"BackgroundLuminance\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0024,0021)\": {\n tag: \"(0024,0021)\",\n vr: \"SQ\",\n name: \"StimulusColorCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0024,0024)\": {\n tag: \"(0024,0024)\",\n vr: \"SQ\",\n name: \"BackgroundIlluminationColorCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0024,0025)\": {\n tag: \"(0024,0025)\",\n vr: \"FL\",\n name: \"StimulusArea\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0024,0028)\": {\n tag: \"(0024,0028)\",\n vr: \"FL\",\n name: \"StimulusPresentationTime\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0024,0032)\": {\n tag: \"(0024,0032)\",\n vr: \"SQ\",\n name: \"FixationSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0024,0033)\": {\n tag: \"(0024,0033)\",\n vr: \"SQ\",\n name: \"FixationMonitoringCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0024,0034)\": {\n tag: \"(0024,0034)\",\n vr: \"SQ\",\n name: \"VisualFieldCatchTrialSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0024,0035)\": {\n tag: \"(0024,0035)\",\n vr: \"US\",\n name: \"FixationCheckedQuantity\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0024,0036)\": {\n tag: \"(0024,0036)\",\n vr: \"US\",\n name: \"PatientNotProperlyFixatedQuantity\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0024,0037)\": {\n tag: \"(0024,0037)\",\n vr: \"CS\",\n name: \"PresentedVisualStimuliDataFlag\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0024,0038)\": {\n tag: \"(0024,0038)\",\n vr: \"US\",\n name: \"NumberOfVisualStimuli\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0024,0039)\": {\n tag: \"(0024,0039)\",\n vr: \"CS\",\n name: \"ExcessiveFixationLossesDataFlag\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0024,0040)\": {\n tag: \"(0024,0040)\",\n vr: \"CS\",\n name: \"ExcessiveFixationLosses\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0024,0042)\": {\n tag: \"(0024,0042)\",\n vr: \"US\",\n name: \"StimuliRetestingQuantity\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0024,0044)\": {\n tag: \"(0024,0044)\",\n vr: \"LT\",\n name: \"CommentsOnPatientPerformanceOfVisualField\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0024,0045)\": {\n tag: \"(0024,0045)\",\n vr: \"CS\",\n name: \"FalseNegativesEstimateFlag\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0024,0046)\": {\n tag: \"(0024,0046)\",\n vr: \"FL\",\n name: \"FalseNegativesEstimate\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0024,0048)\": {\n tag: \"(0024,0048)\",\n vr: \"US\",\n name: \"NegativeCatchTrialsQuantity\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0024,0050)\": {\n tag: \"(0024,0050)\",\n vr: \"US\",\n name: \"FalseNegativesQuantity\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0024,0051)\": {\n tag: \"(0024,0051)\",\n vr: \"CS\",\n name: \"ExcessiveFalseNegativesDataFlag\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0024,0052)\": {\n tag: \"(0024,0052)\",\n vr: \"CS\",\n name: \"ExcessiveFalseNegatives\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0024,0053)\": {\n tag: \"(0024,0053)\",\n vr: \"CS\",\n name: \"FalsePositivesEstimateFlag\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0024,0054)\": {\n tag: \"(0024,0054)\",\n vr: \"FL\",\n name: \"FalsePositivesEstimate\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0024,0055)\": {\n tag: \"(0024,0055)\",\n vr: \"CS\",\n name: \"CatchTrialsDataFlag\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0024,0056)\": {\n tag: \"(0024,0056)\",\n vr: \"US\",\n name: \"PositiveCatchTrialsQuantity\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0024,0057)\": {\n tag: \"(0024,0057)\",\n vr: \"CS\",\n name: \"TestPointNormalsDataFlag\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0024,0058)\": {\n tag: \"(0024,0058)\",\n vr: \"SQ\",\n name: \"TestPointNormalsSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0024,0059)\": {\n tag: \"(0024,0059)\",\n vr: \"CS\",\n name: \"GlobalDeviationProbabilityNormalsFlag\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0024,0060)\": {\n tag: \"(0024,0060)\",\n vr: \"US\",\n name: \"FalsePositivesQuantity\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0024,0061)\": {\n tag: \"(0024,0061)\",\n vr: \"CS\",\n name: \"ExcessiveFalsePositivesDataFlag\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0024,0062)\": {\n tag: \"(0024,0062)\",\n vr: \"CS\",\n name: \"ExcessiveFalsePositives\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0024,0063)\": {\n tag: \"(0024,0063)\",\n vr: \"CS\",\n name: \"VisualFieldTestNormalsFlag\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0024,0064)\": {\n tag: \"(0024,0064)\",\n vr: \"SQ\",\n name: \"ResultsNormalsSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0024,0065)\": {\n tag: \"(0024,0065)\",\n vr: \"SQ\",\n name: \"AgeCorrectedSensitivityDeviationAlgorithmSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0024,0066)\": {\n tag: \"(0024,0066)\",\n vr: \"FL\",\n name: \"GlobalDeviationFromNormal\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0024,0067)\": {\n tag: \"(0024,0067)\",\n vr: \"SQ\",\n name: \"GeneralizedDefectSensitivityDeviationAlgorithmSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0024,0068)\": {\n tag: \"(0024,0068)\",\n vr: \"FL\",\n name: \"LocalizedDeviationFromNormal\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0024,0069)\": {\n tag: \"(0024,0069)\",\n vr: \"LO\",\n name: \"PatientReliabilityIndicator\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0024,0070)\": {\n tag: \"(0024,0070)\",\n vr: \"FL\",\n name: \"VisualFieldMeanSensitivity\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0024,0071)\": {\n tag: \"(0024,0071)\",\n vr: \"FL\",\n name: \"GlobalDeviationProbability\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0024,0072)\": {\n tag: \"(0024,0072)\",\n vr: \"CS\",\n name: \"LocalDeviationProbabilityNormalsFlag\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0024,0073)\": {\n tag: \"(0024,0073)\",\n vr: \"FL\",\n name: \"LocalizedDeviationProbability\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0024,0074)\": {\n tag: \"(0024,0074)\",\n vr: \"CS\",\n name: \"ShortTermFluctuationCalculated\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0024,0075)\": {\n tag: \"(0024,0075)\",\n vr: \"FL\",\n name: \"ShortTermFluctuation\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0024,0076)\": {\n tag: \"(0024,0076)\",\n vr: \"CS\",\n name: \"ShortTermFluctuationProbabilityCalculated\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0024,0077)\": {\n tag: \"(0024,0077)\",\n vr: \"FL\",\n name: \"ShortTermFluctuationProbability\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0024,0078)\": {\n tag: \"(0024,0078)\",\n vr: \"CS\",\n name: \"CorrectedLocalizedDeviationFromNormalCalculated\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0024,0079)\": {\n tag: \"(0024,0079)\",\n vr: \"FL\",\n name: \"CorrectedLocalizedDeviationFromNormal\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0024,0080)\": {\n tag: \"(0024,0080)\",\n vr: \"CS\",\n name: \"CorrectedLocalizedDeviationFromNormalProbabilityCalculated\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0024,0081)\": {\n tag: \"(0024,0081)\",\n vr: \"FL\",\n name: \"CorrectedLocalizedDeviationFromNormalProbability\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0024,0083)\": {\n tag: \"(0024,0083)\",\n vr: \"SQ\",\n name: \"GlobalDeviationProbabilitySequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0024,0085)\": {\n tag: \"(0024,0085)\",\n vr: \"SQ\",\n name: \"LocalizedDeviationProbabilitySequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0024,0086)\": {\n tag: \"(0024,0086)\",\n vr: \"CS\",\n name: \"FovealSensitivityMeasured\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0024,0087)\": {\n tag: \"(0024,0087)\",\n vr: \"FL\",\n name: \"FovealSensitivity\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0024,0088)\": {\n tag: \"(0024,0088)\",\n vr: \"FL\",\n name: \"VisualFieldTestDuration\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0024,0089)\": {\n tag: \"(0024,0089)\",\n vr: \"SQ\",\n name: \"VisualFieldTestPointSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0024,0090)\": {\n tag: \"(0024,0090)\",\n vr: \"FL\",\n name: \"VisualFieldTestPointXCoordinate\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0024,0091)\": {\n tag: \"(0024,0091)\",\n vr: \"FL\",\n name: \"VisualFieldTestPointYCoordinate\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0024,0092)\": {\n tag: \"(0024,0092)\",\n vr: \"FL\",\n name: \"AgeCorrectedSensitivityDeviationValue\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0024,0093)\": {\n tag: \"(0024,0093)\",\n vr: \"CS\",\n name: \"StimulusResults\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0024,0094)\": {\n tag: \"(0024,0094)\",\n vr: \"FL\",\n name: \"SensitivityValue\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0024,0095)\": {\n tag: \"(0024,0095)\",\n vr: \"CS\",\n name: \"RetestStimulusSeen\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0024,0096)\": {\n tag: \"(0024,0096)\",\n vr: \"FL\",\n name: \"RetestSensitivityValue\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0024,0097)\": {\n tag: \"(0024,0097)\",\n vr: \"SQ\",\n name: \"VisualFieldTestPointNormalsSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0024,0098)\": {\n tag: \"(0024,0098)\",\n vr: \"FL\",\n name: \"QuantifiedDefect\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0024,0100)\": {\n tag: \"(0024,0100)\",\n vr: \"FL\",\n name: \"AgeCorrectedSensitivityDeviationProbabilityValue\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0024,0102)\": {\n tag: \"(0024,0102)\",\n vr: \"CS\",\n name: \"GeneralizedDefectCorrectedSensitivityDeviationFlag\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0024,0103)\": {\n tag: \"(0024,0103)\",\n vr: \"FL\",\n name: \"GeneralizedDefectCorrectedSensitivityDeviationValue\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0024,0104)\": {\n tag: \"(0024,0104)\",\n vr: \"FL\",\n name: \"GeneralizedDefectCorrectedSensitivityDeviationProbabilityValue\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0024,0105)\": {\n tag: \"(0024,0105)\",\n vr: \"FL\",\n name: \"MinimumSensitivityValue\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0024,0106)\": {\n tag: \"(0024,0106)\",\n vr: \"CS\",\n name: \"BlindSpotLocalized\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0024,0107)\": {\n tag: \"(0024,0107)\",\n vr: \"FL\",\n name: \"BlindSpotXCoordinate\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0024,0108)\": {\n tag: \"(0024,0108)\",\n vr: \"FL\",\n name: \"BlindSpotYCoordinate\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0024,0110)\": {\n tag: \"(0024,0110)\",\n vr: \"SQ\",\n name: \"VisualAcuityMeasurementSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0024,0112)\": {\n tag: \"(0024,0112)\",\n vr: \"SQ\",\n name: \"RefractiveParametersUsedOnPatientSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0024,0113)\": {\n tag: \"(0024,0113)\",\n vr: \"CS\",\n name: \"MeasurementLaterality\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0024,0114)\": {\n tag: \"(0024,0114)\",\n vr: \"SQ\",\n name: \"OphthalmicPatientClinicalInformationLeftEyeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0024,0115)\": {\n tag: \"(0024,0115)\",\n vr: \"SQ\",\n name: \"OphthalmicPatientClinicalInformationRightEyeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0024,0117)\": {\n tag: \"(0024,0117)\",\n vr: \"CS\",\n name: \"FovealPointNormativeDataFlag\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0024,0118)\": {\n tag: \"(0024,0118)\",\n vr: \"FL\",\n name: \"FovealPointProbabilityValue\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0024,0120)\": {\n tag: \"(0024,0120)\",\n vr: \"CS\",\n name: \"ScreeningBaselineMeasured\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0024,0122)\": {\n tag: \"(0024,0122)\",\n vr: \"SQ\",\n name: \"ScreeningBaselineMeasuredSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0024,0124)\": {\n tag: \"(0024,0124)\",\n vr: \"CS\",\n name: \"ScreeningBaselineType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0024,0126)\": {\n tag: \"(0024,0126)\",\n vr: \"FL\",\n name: \"ScreeningBaselineValue\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0024,0202)\": {\n tag: \"(0024,0202)\",\n vr: \"LO\",\n name: \"AlgorithmSource\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0024,0306)\": {\n tag: \"(0024,0306)\",\n vr: \"LO\",\n name: \"DataSetName\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0024,0307)\": {\n tag: \"(0024,0307)\",\n vr: \"LO\",\n name: \"DataSetVersion\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0024,0308)\": {\n tag: \"(0024,0308)\",\n vr: \"LO\",\n name: \"DataSetSource\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0024,0309)\": {\n tag: \"(0024,0309)\",\n vr: \"LO\",\n name: \"DataSetDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0024,0317)\": {\n tag: \"(0024,0317)\",\n vr: \"SQ\",\n name: \"VisualFieldTestReliabilityGlobalIndexSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0024,0320)\": {\n tag: \"(0024,0320)\",\n vr: \"SQ\",\n name: \"VisualFieldGlobalResultsIndexSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0024,0325)\": {\n tag: \"(0024,0325)\",\n vr: \"SQ\",\n name: \"DataObservationSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0024,0338)\": {\n tag: \"(0024,0338)\",\n vr: \"CS\",\n name: \"IndexNormalsFlag\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0024,0341)\": {\n tag: \"(0024,0341)\",\n vr: \"FL\",\n name: \"IndexProbability\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0024,0344)\": {\n tag: \"(0024,0344)\",\n vr: \"SQ\",\n name: \"IndexProbabilitySequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,0002)\": {\n tag: \"(0028,0002)\",\n vr: \"US\",\n name: \"SamplesPerPixel\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,0003)\": {\n tag: \"(0028,0003)\",\n vr: \"US\",\n name: \"SamplesPerPixelUsed\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,0004)\": {\n tag: \"(0028,0004)\",\n vr: \"CS\",\n name: \"PhotometricInterpretation\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,0006)\": {\n tag: \"(0028,0006)\",\n vr: \"US\",\n name: \"PlanarConfiguration\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,0008)\": {\n tag: \"(0028,0008)\",\n vr: \"IS\",\n name: \"NumberOfFrames\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,0009)\": {\n tag: \"(0028,0009)\",\n vr: \"AT\",\n name: \"FrameIncrementPointer\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0028,000A)\": {\n tag: \"(0028,000A)\",\n vr: \"AT\",\n name: \"FrameDimensionPointer\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0028,0010)\": {\n tag: \"(0028,0010)\",\n vr: \"US\",\n name: \"Rows\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,0011)\": {\n tag: \"(0028,0011)\",\n vr: \"US\",\n name: \"Columns\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,0014)\": {\n tag: \"(0028,0014)\",\n vr: \"US\",\n name: \"UltrasoundColorDataPresent\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,0030)\": {\n tag: \"(0028,0030)\",\n vr: \"DS\",\n name: \"PixelSpacing\",\n vm: \"2\",\n version: \"DICOM\"\n },\n \"(0028,0031)\": {\n tag: \"(0028,0031)\",\n vr: \"DS\",\n name: \"ZoomFactor\",\n vm: \"2\",\n version: \"DICOM\"\n },\n \"(0028,0032)\": {\n tag: \"(0028,0032)\",\n vr: \"DS\",\n name: \"ZoomCenter\",\n vm: \"2\",\n version: \"DICOM\"\n },\n \"(0028,0034)\": {\n tag: \"(0028,0034)\",\n vr: \"IS\",\n name: \"PixelAspectRatio\",\n vm: \"2\",\n version: \"DICOM\"\n },\n \"(0028,0051)\": {\n tag: \"(0028,0051)\",\n vr: \"CS\",\n name: \"CorrectedImage\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0028,0100)\": {\n tag: \"(0028,0100)\",\n vr: \"US\",\n name: \"BitsAllocated\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,0101)\": {\n tag: \"(0028,0101)\",\n vr: \"US\",\n name: \"BitsStored\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,0102)\": {\n tag: \"(0028,0102)\",\n vr: \"US\",\n name: \"HighBit\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,0103)\": {\n tag: \"(0028,0103)\",\n vr: \"US\",\n name: \"PixelRepresentation\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,0106)\": {\n tag: \"(0028,0106)\",\n vr: \"xs\",\n name: \"SmallestImagePixelValue\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,0107)\": {\n tag: \"(0028,0107)\",\n vr: \"xs\",\n name: \"LargestImagePixelValue\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,0108)\": {\n tag: \"(0028,0108)\",\n vr: \"xs\",\n name: \"SmallestPixelValueInSeries\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,0109)\": {\n tag: \"(0028,0109)\",\n vr: \"xs\",\n name: \"LargestPixelValueInSeries\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,0120)\": {\n tag: \"(0028,0120)\",\n vr: \"xs\",\n name: \"PixelPaddingValue\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,0121)\": {\n tag: \"(0028,0121)\",\n vr: \"xs\",\n name: \"PixelPaddingRangeLimit\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,0122)\": {\n tag: \"(0028,0122)\",\n vr: \"FL\",\n name: \"FloatPixelPaddingValue\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,0123)\": {\n tag: \"(0028,0123)\",\n vr: \"FD\",\n name: \"DoubleFloatPixelPaddingValue\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,0124)\": {\n tag: \"(0028,0124)\",\n vr: \"FL\",\n name: \"FloatPixelPaddingRangeLimit\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,0125)\": {\n tag: \"(0028,0125)\",\n vr: \"FD\",\n name: \"DoubleFloatPixelPaddingRangeLimit\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,0300)\": {\n tag: \"(0028,0300)\",\n vr: \"CS\",\n name: \"QualityControlImage\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,0301)\": {\n tag: \"(0028,0301)\",\n vr: \"CS\",\n name: \"BurnedInAnnotation\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,0302)\": {\n tag: \"(0028,0302)\",\n vr: \"CS\",\n name: \"RecognizableVisualFeatures\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,0303)\": {\n tag: \"(0028,0303)\",\n vr: \"CS\",\n name: \"LongitudinalTemporalInformationModified\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,0304)\": {\n tag: \"(0028,0304)\",\n vr: \"UI\",\n name: \"ReferencedColorPaletteInstanceUID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,0A02)\": {\n tag: \"(0028,0A02)\",\n vr: \"CS\",\n name: \"PixelSpacingCalibrationType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,0A04)\": {\n tag: \"(0028,0A04)\",\n vr: \"LO\",\n name: \"PixelSpacingCalibrationDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,1040)\": {\n tag: \"(0028,1040)\",\n vr: \"CS\",\n name: \"PixelIntensityRelationship\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,1041)\": {\n tag: \"(0028,1041)\",\n vr: \"SS\",\n name: \"PixelIntensityRelationshipSign\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,1050)\": {\n tag: \"(0028,1050)\",\n vr: \"DS\",\n name: \"WindowCenter\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0028,1051)\": {\n tag: \"(0028,1051)\",\n vr: \"DS\",\n name: \"WindowWidth\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0028,1052)\": {\n tag: \"(0028,1052)\",\n vr: \"DS\",\n name: \"RescaleIntercept\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,1053)\": {\n tag: \"(0028,1053)\",\n vr: \"DS\",\n name: \"RescaleSlope\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,1054)\": {\n tag: \"(0028,1054)\",\n vr: \"LO\",\n name: \"RescaleType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,1055)\": {\n tag: \"(0028,1055)\",\n vr: \"LO\",\n name: \"WindowCenterWidthExplanation\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0028,1056)\": {\n tag: \"(0028,1056)\",\n vr: \"CS\",\n name: \"VOILUTFunction\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,1090)\": {\n tag: \"(0028,1090)\",\n vr: \"CS\",\n name: \"RecommendedViewingMode\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,1101)\": {\n tag: \"(0028,1101)\",\n vr: \"xs\",\n name: \"RedPaletteColorLookupTableDescriptor\",\n vm: \"3\",\n version: \"DICOM\"\n },\n \"(0028,1102)\": {\n tag: \"(0028,1102)\",\n vr: \"xs\",\n name: \"GreenPaletteColorLookupTableDescriptor\",\n vm: \"3\",\n version: \"DICOM\"\n },\n \"(0028,1103)\": {\n tag: \"(0028,1103)\",\n vr: \"xs\",\n name: \"BluePaletteColorLookupTableDescriptor\",\n vm: \"3\",\n version: \"DICOM\"\n },\n \"(0028,1104)\": {\n tag: \"(0028,1104)\",\n vr: \"US\",\n name: \"AlphaPaletteColorLookupTableDescriptor\",\n vm: \"3\",\n version: \"DICOM\"\n },\n \"(0028,1199)\": {\n tag: \"(0028,1199)\",\n vr: \"UI\",\n name: \"PaletteColorLookupTableUID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,1201)\": {\n tag: \"(0028,1201)\",\n vr: \"OW\",\n name: \"RedPaletteColorLookupTableData\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,1202)\": {\n tag: \"(0028,1202)\",\n vr: \"OW\",\n name: \"GreenPaletteColorLookupTableData\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,1203)\": {\n tag: \"(0028,1203)\",\n vr: \"OW\",\n name: \"BluePaletteColorLookupTableData\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,1204)\": {\n tag: \"(0028,1204)\",\n vr: \"OW\",\n name: \"AlphaPaletteColorLookupTableData\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,1221)\": {\n tag: \"(0028,1221)\",\n vr: \"OW\",\n name: \"SegmentedRedPaletteColorLookupTableData\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,1222)\": {\n tag: \"(0028,1222)\",\n vr: \"OW\",\n name: \"SegmentedGreenPaletteColorLookupTableData\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,1223)\": {\n tag: \"(0028,1223)\",\n vr: \"OW\",\n name: \"SegmentedBluePaletteColorLookupTableData\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,1230)\": {\n tag: \"(0028,1230)\",\n vr: \"SQ\",\n name: \"StoredValueColorRangeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,1231)\": {\n tag: \"(0028,1231)\",\n vr: \"FD\",\n name: \"MinimumStoredValueMapped\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,1232)\": {\n tag: \"(0028,1232)\",\n vr: \"FD\",\n name: \"MaximumStoredValueMapped\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,1300)\": {\n tag: \"(0028,1300)\",\n vr: \"CS\",\n name: \"BreastImplantPresent\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,1350)\": {\n tag: \"(0028,1350)\",\n vr: \"CS\",\n name: \"PartialView\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,1351)\": {\n tag: \"(0028,1351)\",\n vr: \"ST\",\n name: \"PartialViewDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,1352)\": {\n tag: \"(0028,1352)\",\n vr: \"SQ\",\n name: \"PartialViewCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,135A)\": {\n tag: \"(0028,135A)\",\n vr: \"CS\",\n name: \"SpatialLocationsPreserved\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,1401)\": {\n tag: \"(0028,1401)\",\n vr: \"SQ\",\n name: \"DataFrameAssignmentSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,1402)\": {\n tag: \"(0028,1402)\",\n vr: \"CS\",\n name: \"DataPathAssignment\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,1403)\": {\n tag: \"(0028,1403)\",\n vr: \"US\",\n name: \"BitsMappedToColorLookupTable\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,1404)\": {\n tag: \"(0028,1404)\",\n vr: \"SQ\",\n name: \"BlendingLUT1Sequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,1405)\": {\n tag: \"(0028,1405)\",\n vr: \"CS\",\n name: \"BlendingLUT1TransferFunction\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,1406)\": {\n tag: \"(0028,1406)\",\n vr: \"FD\",\n name: \"BlendingWeightConstant\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,1407)\": {\n tag: \"(0028,1407)\",\n vr: \"US\",\n name: \"BlendingLookupTableDescriptor\",\n vm: \"3\",\n version: \"DICOM\"\n },\n \"(0028,1408)\": {\n tag: \"(0028,1408)\",\n vr: \"OW\",\n name: \"BlendingLookupTableData\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,140B)\": {\n tag: \"(0028,140B)\",\n vr: \"SQ\",\n name: \"EnhancedPaletteColorLookupTableSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,140C)\": {\n tag: \"(0028,140C)\",\n vr: \"SQ\",\n name: \"BlendingLUT2Sequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,140D)\": {\n tag: \"(0028,140D)\",\n vr: \"CS\",\n name: \"BlendingLUT2TransferFunction\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,140E)\": {\n tag: \"(0028,140E)\",\n vr: \"CS\",\n name: \"DataPathID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,140F)\": {\n tag: \"(0028,140F)\",\n vr: \"CS\",\n name: \"RGBLUTTransferFunction\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,1410)\": {\n tag: \"(0028,1410)\",\n vr: \"CS\",\n name: \"AlphaLUTTransferFunction\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,2000)\": {\n tag: \"(0028,2000)\",\n vr: \"OB\",\n name: \"ICCProfile\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,2110)\": {\n tag: \"(0028,2110)\",\n vr: \"CS\",\n name: \"LossyImageCompression\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,2112)\": {\n tag: \"(0028,2112)\",\n vr: \"DS\",\n name: \"LossyImageCompressionRatio\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0028,2114)\": {\n tag: \"(0028,2114)\",\n vr: \"CS\",\n name: \"LossyImageCompressionMethod\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0028,3000)\": {\n tag: \"(0028,3000)\",\n vr: \"SQ\",\n name: \"ModalityLUTSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,3002)\": {\n tag: \"(0028,3002)\",\n vr: \"xs\",\n name: \"LUTDescriptor\",\n vm: \"3\",\n version: \"DICOM\"\n },\n \"(0028,3003)\": {\n tag: \"(0028,3003)\",\n vr: \"LO\",\n name: \"LUTExplanation\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,3004)\": {\n tag: \"(0028,3004)\",\n vr: \"LO\",\n name: \"ModalityLUTType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,3006)\": {\n tag: \"(0028,3006)\",\n vr: \"lt\",\n name: \"LUTData\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0028,3010)\": {\n tag: \"(0028,3010)\",\n vr: \"SQ\",\n name: \"VOILUTSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,3110)\": {\n tag: \"(0028,3110)\",\n vr: \"SQ\",\n name: \"SoftcopyVOILUTSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,6010)\": {\n tag: \"(0028,6010)\",\n vr: \"US\",\n name: \"RepresentativeFrameNumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,6020)\": {\n tag: \"(0028,6020)\",\n vr: \"US\",\n name: \"FrameNumbersOfInterest\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0028,6022)\": {\n tag: \"(0028,6022)\",\n vr: \"LO\",\n name: \"FrameOfInterestDescription\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0028,6023)\": {\n tag: \"(0028,6023)\",\n vr: \"CS\",\n name: \"FrameOfInterestType\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0028,6040)\": {\n tag: \"(0028,6040)\",\n vr: \"US\",\n name: \"RWavePointer\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0028,6100)\": {\n tag: \"(0028,6100)\",\n vr: \"SQ\",\n name: \"MaskSubtractionSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,6101)\": {\n tag: \"(0028,6101)\",\n vr: \"CS\",\n name: \"MaskOperation\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,6102)\": {\n tag: \"(0028,6102)\",\n vr: \"US\",\n name: \"ApplicableFrameRange\",\n vm: \"2-2n\",\n version: \"DICOM\"\n },\n \"(0028,6110)\": {\n tag: \"(0028,6110)\",\n vr: \"US\",\n name: \"MaskFrameNumbers\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0028,6112)\": {\n tag: \"(0028,6112)\",\n vr: \"US\",\n name: \"ContrastFrameAveraging\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,6114)\": {\n tag: \"(0028,6114)\",\n vr: \"FL\",\n name: \"MaskSubPixelShift\",\n vm: \"2\",\n version: \"DICOM\"\n },\n \"(0028,6120)\": {\n tag: \"(0028,6120)\",\n vr: \"SS\",\n name: \"TIDOffset\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,6190)\": {\n tag: \"(0028,6190)\",\n vr: \"ST\",\n name: \"MaskOperationExplanation\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,7000)\": {\n tag: \"(0028,7000)\",\n vr: \"SQ\",\n name: \"EquipmentAdministratorSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,7001)\": {\n tag: \"(0028,7001)\",\n vr: \"US\",\n name: \"NumberOfDisplaySubsystems\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,7002)\": {\n tag: \"(0028,7002)\",\n vr: \"US\",\n name: \"CurrentConfigurationID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,7003)\": {\n tag: \"(0028,7003)\",\n vr: \"US\",\n name: \"DisplaySubsystemID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,7004)\": {\n tag: \"(0028,7004)\",\n vr: \"SH\",\n name: \"DisplaySubsystemName\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,7005)\": {\n tag: \"(0028,7005)\",\n vr: \"LO\",\n name: \"DisplaySubsystemDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,7006)\": {\n tag: \"(0028,7006)\",\n vr: \"CS\",\n name: \"SystemStatus\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,7007)\": {\n tag: \"(0028,7007)\",\n vr: \"LO\",\n name: \"SystemStatusComment\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,7008)\": {\n tag: \"(0028,7008)\",\n vr: \"SQ\",\n name: \"TargetLuminanceCharacteristicsSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,7009)\": {\n tag: \"(0028,7009)\",\n vr: \"US\",\n name: \"LuminanceCharacteristicsID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,700A)\": {\n tag: \"(0028,700A)\",\n vr: \"SQ\",\n name: \"DisplaySubsystemConfigurationSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,700B)\": {\n tag: \"(0028,700B)\",\n vr: \"US\",\n name: \"ConfigurationID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,700C)\": {\n tag: \"(0028,700C)\",\n vr: \"SH\",\n name: \"ConfigurationName\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,700D)\": {\n tag: \"(0028,700D)\",\n vr: \"LO\",\n name: \"ConfigurationDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,700E)\": {\n tag: \"(0028,700E)\",\n vr: \"US\",\n name: \"ReferencedTargetLuminanceCharacteristicsID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,700F)\": {\n tag: \"(0028,700F)\",\n vr: \"SQ\",\n name: \"QAResultsSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,7010)\": {\n tag: \"(0028,7010)\",\n vr: \"SQ\",\n name: \"DisplaySubsystemQAResultsSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,7011)\": {\n tag: \"(0028,7011)\",\n vr: \"SQ\",\n name: \"ConfigurationQAResultsSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,7012)\": {\n tag: \"(0028,7012)\",\n vr: \"SQ\",\n name: \"MeasurementEquipmentSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,7013)\": {\n tag: \"(0028,7013)\",\n vr: \"CS\",\n name: \"MeasurementFunctions\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0028,7014)\": {\n tag: \"(0028,7014)\",\n vr: \"CS\",\n name: \"MeasurementEquipmentType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,7015)\": {\n tag: \"(0028,7015)\",\n vr: \"SQ\",\n name: \"VisualEvaluationResultSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,7016)\": {\n tag: \"(0028,7016)\",\n vr: \"SQ\",\n name: \"DisplayCalibrationResultSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,7017)\": {\n tag: \"(0028,7017)\",\n vr: \"US\",\n name: \"DDLValue\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,7018)\": {\n tag: \"(0028,7018)\",\n vr: \"FL\",\n name: \"CIExyWhitePoint\",\n vm: \"2\",\n version: \"DICOM\"\n },\n \"(0028,7019)\": {\n tag: \"(0028,7019)\",\n vr: \"CS\",\n name: \"DisplayFunctionType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,701A)\": {\n tag: \"(0028,701A)\",\n vr: \"FL\",\n name: \"GammaValue\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,701B)\": {\n tag: \"(0028,701B)\",\n vr: \"US\",\n name: \"NumberOfLuminancePoints\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,701C)\": {\n tag: \"(0028,701C)\",\n vr: \"SQ\",\n name: \"LuminanceResponseSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,701D)\": {\n tag: \"(0028,701D)\",\n vr: \"FL\",\n name: \"TargetMinimumLuminance\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,701E)\": {\n tag: \"(0028,701E)\",\n vr: \"FL\",\n name: \"TargetMaximumLuminance\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,701F)\": {\n tag: \"(0028,701F)\",\n vr: \"FL\",\n name: \"LuminanceValue\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,7020)\": {\n tag: \"(0028,7020)\",\n vr: \"LO\",\n name: \"LuminanceResponseDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,7021)\": {\n tag: \"(0028,7021)\",\n vr: \"CS\",\n name: \"WhitePointFlag\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,7022)\": {\n tag: \"(0028,7022)\",\n vr: \"SQ\",\n name: \"DisplayDeviceTypeCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,7023)\": {\n tag: \"(0028,7023)\",\n vr: \"SQ\",\n name: \"DisplaySubsystemSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,7024)\": {\n tag: \"(0028,7024)\",\n vr: \"SQ\",\n name: \"LuminanceResultSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,7025)\": {\n tag: \"(0028,7025)\",\n vr: \"CS\",\n name: \"AmbientLightValueSource\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,7026)\": {\n tag: \"(0028,7026)\",\n vr: \"CS\",\n name: \"MeasuredCharacteristics\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0028,7027)\": {\n tag: \"(0028,7027)\",\n vr: \"SQ\",\n name: \"LuminanceUniformityResultSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,7028)\": {\n tag: \"(0028,7028)\",\n vr: \"SQ\",\n name: \"VisualEvaluationTestSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,7029)\": {\n tag: \"(0028,7029)\",\n vr: \"CS\",\n name: \"TestResult\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,702A)\": {\n tag: \"(0028,702A)\",\n vr: \"LO\",\n name: \"TestResultComment\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,702B)\": {\n tag: \"(0028,702B)\",\n vr: \"CS\",\n name: \"TestImageValidation\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,702C)\": {\n tag: \"(0028,702C)\",\n vr: \"SQ\",\n name: \"TestPatternCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,702D)\": {\n tag: \"(0028,702D)\",\n vr: \"SQ\",\n name: \"MeasurementPatternCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,702E)\": {\n tag: \"(0028,702E)\",\n vr: \"SQ\",\n name: \"VisualEvaluationMethodCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,7FE0)\": {\n tag: \"(0028,7FE0)\",\n vr: \"UR\",\n name: \"PixelDataProviderURL\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,9001)\": {\n tag: \"(0028,9001)\",\n vr: \"UL\",\n name: \"DataPointRows\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,9002)\": {\n tag: \"(0028,9002)\",\n vr: \"UL\",\n name: \"DataPointColumns\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,9003)\": {\n tag: \"(0028,9003)\",\n vr: \"CS\",\n name: \"SignalDomainColumns\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,9108)\": {\n tag: \"(0028,9108)\",\n vr: \"CS\",\n name: \"DataRepresentation\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,9110)\": {\n tag: \"(0028,9110)\",\n vr: \"SQ\",\n name: \"PixelMeasuresSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,9132)\": {\n tag: \"(0028,9132)\",\n vr: \"SQ\",\n name: \"FrameVOILUTSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,9145)\": {\n tag: \"(0028,9145)\",\n vr: \"SQ\",\n name: \"PixelValueTransformationSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,9235)\": {\n tag: \"(0028,9235)\",\n vr: \"CS\",\n name: \"SignalDomainRows\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,9411)\": {\n tag: \"(0028,9411)\",\n vr: \"FL\",\n name: \"DisplayFilterPercentage\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,9415)\": {\n tag: \"(0028,9415)\",\n vr: \"SQ\",\n name: \"FramePixelShiftSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,9416)\": {\n tag: \"(0028,9416)\",\n vr: \"US\",\n name: \"SubtractionItemID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,9422)\": {\n tag: \"(0028,9422)\",\n vr: \"SQ\",\n name: \"PixelIntensityRelationshipLUTSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,9443)\": {\n tag: \"(0028,9443)\",\n vr: \"SQ\",\n name: \"FramePixelDataPropertiesSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,9444)\": {\n tag: \"(0028,9444)\",\n vr: \"CS\",\n name: \"GeometricalProperties\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,9445)\": {\n tag: \"(0028,9445)\",\n vr: \"FL\",\n name: \"GeometricMaximumDistortion\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,9446)\": {\n tag: \"(0028,9446)\",\n vr: \"CS\",\n name: \"ImageProcessingApplied\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0028,9454)\": {\n tag: \"(0028,9454)\",\n vr: \"CS\",\n name: \"MaskSelectionMode\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,9474)\": {\n tag: \"(0028,9474)\",\n vr: \"CS\",\n name: \"LUTFunction\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,9478)\": {\n tag: \"(0028,9478)\",\n vr: \"FL\",\n name: \"MaskVisibilityPercentage\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,9501)\": {\n tag: \"(0028,9501)\",\n vr: \"SQ\",\n name: \"PixelShiftSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,9502)\": {\n tag: \"(0028,9502)\",\n vr: \"SQ\",\n name: \"RegionPixelShiftSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,9503)\": {\n tag: \"(0028,9503)\",\n vr: \"SS\",\n name: \"VerticesOfTheRegion\",\n vm: \"2-2n\",\n version: \"DICOM\"\n },\n \"(0028,9505)\": {\n tag: \"(0028,9505)\",\n vr: \"SQ\",\n name: \"MultiFramePresentationSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,9506)\": {\n tag: \"(0028,9506)\",\n vr: \"US\",\n name: \"PixelShiftFrameRange\",\n vm: \"2-2n\",\n version: \"DICOM\"\n },\n \"(0028,9507)\": {\n tag: \"(0028,9507)\",\n vr: \"US\",\n name: \"LUTFrameRange\",\n vm: \"2-2n\",\n version: \"DICOM\"\n },\n \"(0028,9520)\": {\n tag: \"(0028,9520)\",\n vr: \"DS\",\n name: \"ImageToEquipmentMappingMatrix\",\n vm: \"16\",\n version: \"DICOM\"\n },\n \"(0028,9537)\": {\n tag: \"(0028,9537)\",\n vr: \"CS\",\n name: \"EquipmentCoordinateSystemIdentification\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0032,1031)\": {\n tag: \"(0032,1031)\",\n vr: \"SQ\",\n name: \"RequestingPhysicianIdentificationSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0032,1032)\": {\n tag: \"(0032,1032)\",\n vr: \"PN\",\n name: \"RequestingPhysician\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0032,1033)\": {\n tag: \"(0032,1033)\",\n vr: \"LO\",\n name: \"RequestingService\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0032,1034)\": {\n tag: \"(0032,1034)\",\n vr: \"SQ\",\n name: \"RequestingServiceCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0032,1060)\": {\n tag: \"(0032,1060)\",\n vr: \"LO\",\n name: \"RequestedProcedureDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0032,1064)\": {\n tag: \"(0032,1064)\",\n vr: \"SQ\",\n name: \"RequestedProcedureCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0032,1066)\": {\n tag: \"(0032,1066)\",\n vr: \"UT\",\n name: \"ReasonForVisit\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0032,1067)\": {\n tag: \"(0032,1067)\",\n vr: \"SQ\",\n name: \"ReasonForVisitCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0032,1070)\": {\n tag: \"(0032,1070)\",\n vr: \"LO\",\n name: \"RequestedContrastAgent\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0034,0001)\": {\n tag: \"(0034,0001)\",\n vr: \"SQ\",\n name: \"FlowIdentifierSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0034,0002)\": {\n tag: \"(0034,0002)\",\n vr: \"OB\",\n name: \"FlowIdentifier\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0034,0003)\": {\n tag: \"(0034,0003)\",\n vr: \"UI\",\n name: \"FlowTransferSyntaxUID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0034,0004)\": {\n tag: \"(0034,0004)\",\n vr: \"UL\",\n name: \"FlowRTPSamplingRate\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0034,0005)\": {\n tag: \"(0034,0005)\",\n vr: \"OB\",\n name: \"SourceIdentifier\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0034,0007)\": {\n tag: \"(0034,0007)\",\n vr: \"OB\",\n name: \"FrameOriginTimestamp\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0034,0008)\": {\n tag: \"(0034,0008)\",\n vr: \"CS\",\n name: \"IncludesImagingSubject\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0034,0009)\": {\n tag: \"(0034,0009)\",\n vr: \"SQ\",\n name: \"FrameUsefulnessGroupSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0034,000A)\": {\n tag: \"(0034,000A)\",\n vr: \"SQ\",\n name: \"RealTimeBulkDataFlowSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0034,000B)\": {\n tag: \"(0034,000B)\",\n vr: \"SQ\",\n name: \"CameraPositionGroupSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0034,000C)\": {\n tag: \"(0034,000C)\",\n vr: \"CS\",\n name: \"IncludesInformation\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0034,000D)\": {\n tag: \"(0034,000D)\",\n vr: \"SQ\",\n name: \"TimeOfFrameGroupSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0038,0004)\": {\n tag: \"(0038,0004)\",\n vr: \"SQ\",\n name: \"ReferencedPatientAliasSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0038,0008)\": {\n tag: \"(0038,0008)\",\n vr: \"CS\",\n name: \"VisitStatusID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0038,0010)\": {\n tag: \"(0038,0010)\",\n vr: \"LO\",\n name: \"AdmissionID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0038,0014)\": {\n tag: \"(0038,0014)\",\n vr: \"SQ\",\n name: \"IssuerOfAdmissionIDSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0038,0016)\": {\n tag: \"(0038,0016)\",\n vr: \"LO\",\n name: \"RouteOfAdmissions\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0038,0020)\": {\n tag: \"(0038,0020)\",\n vr: \"DA\",\n name: \"AdmittingDate\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0038,0021)\": {\n tag: \"(0038,0021)\",\n vr: \"TM\",\n name: \"AdmittingTime\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0038,0050)\": {\n tag: \"(0038,0050)\",\n vr: \"LO\",\n name: \"SpecialNeeds\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0038,0060)\": {\n tag: \"(0038,0060)\",\n vr: \"LO\",\n name: \"ServiceEpisodeID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0038,0062)\": {\n tag: \"(0038,0062)\",\n vr: \"LO\",\n name: \"ServiceEpisodeDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0038,0064)\": {\n tag: \"(0038,0064)\",\n vr: \"SQ\",\n name: \"IssuerOfServiceEpisodeIDSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0038,0100)\": {\n tag: \"(0038,0100)\",\n vr: \"SQ\",\n name: \"PertinentDocumentsSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0038,0101)\": {\n tag: \"(0038,0101)\",\n vr: \"SQ\",\n name: \"PertinentResourcesSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0038,0102)\": {\n tag: \"(0038,0102)\",\n vr: \"LO\",\n name: \"ResourceDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0038,0300)\": {\n tag: \"(0038,0300)\",\n vr: \"LO\",\n name: \"CurrentPatientLocation\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0038,0400)\": {\n tag: \"(0038,0400)\",\n vr: \"LO\",\n name: \"PatientInstitutionResidence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0038,0500)\": {\n tag: \"(0038,0500)\",\n vr: \"LO\",\n name: \"PatientState\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0038,0502)\": {\n tag: \"(0038,0502)\",\n vr: \"SQ\",\n name: \"PatientClinicalTrialParticipationSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0038,4000)\": {\n tag: \"(0038,4000)\",\n vr: \"LT\",\n name: \"VisitComments\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(003A,0004)\": {\n tag: \"(003A,0004)\",\n vr: \"CS\",\n name: \"WaveformOriginality\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(003A,0005)\": {\n tag: \"(003A,0005)\",\n vr: \"US\",\n name: \"NumberOfWaveformChannels\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(003A,0010)\": {\n tag: \"(003A,0010)\",\n vr: \"UL\",\n name: \"NumberOfWaveformSamples\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(003A,001A)\": {\n tag: \"(003A,001A)\",\n vr: \"DS\",\n name: \"SamplingFrequency\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(003A,0020)\": {\n tag: \"(003A,0020)\",\n vr: \"SH\",\n name: \"MultiplexGroupLabel\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(003A,0200)\": {\n tag: \"(003A,0200)\",\n vr: \"SQ\",\n name: \"ChannelDefinitionSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(003A,0202)\": {\n tag: \"(003A,0202)\",\n vr: \"IS\",\n name: \"WaveformChannelNumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(003A,0203)\": {\n tag: \"(003A,0203)\",\n vr: \"SH\",\n name: \"ChannelLabel\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(003A,0205)\": {\n tag: \"(003A,0205)\",\n vr: \"CS\",\n name: \"ChannelStatus\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(003A,0208)\": {\n tag: \"(003A,0208)\",\n vr: \"SQ\",\n name: \"ChannelSourceSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(003A,0209)\": {\n tag: \"(003A,0209)\",\n vr: \"SQ\",\n name: \"ChannelSourceModifiersSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(003A,020A)\": {\n tag: \"(003A,020A)\",\n vr: \"SQ\",\n name: \"SourceWaveformSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(003A,020C)\": {\n tag: \"(003A,020C)\",\n vr: \"LO\",\n name: \"ChannelDerivationDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(003A,0210)\": {\n tag: \"(003A,0210)\",\n vr: \"DS\",\n name: \"ChannelSensitivity\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(003A,0211)\": {\n tag: \"(003A,0211)\",\n vr: \"SQ\",\n name: \"ChannelSensitivityUnitsSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(003A,0212)\": {\n tag: \"(003A,0212)\",\n vr: \"DS\",\n name: \"ChannelSensitivityCorrectionFactor\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(003A,0213)\": {\n tag: \"(003A,0213)\",\n vr: \"DS\",\n name: \"ChannelBaseline\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(003A,0214)\": {\n tag: \"(003A,0214)\",\n vr: \"DS\",\n name: \"ChannelTimeSkew\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(003A,0215)\": {\n tag: \"(003A,0215)\",\n vr: \"DS\",\n name: \"ChannelSampleSkew\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(003A,0218)\": {\n tag: \"(003A,0218)\",\n vr: \"DS\",\n name: \"ChannelOffset\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(003A,021A)\": {\n tag: \"(003A,021A)\",\n vr: \"US\",\n name: \"WaveformBitsStored\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(003A,0220)\": {\n tag: \"(003A,0220)\",\n vr: \"DS\",\n name: \"FilterLowFrequency\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(003A,0221)\": {\n tag: \"(003A,0221)\",\n vr: \"DS\",\n name: \"FilterHighFrequency\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(003A,0222)\": {\n tag: \"(003A,0222)\",\n vr: \"DS\",\n name: \"NotchFilterFrequency\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(003A,0223)\": {\n tag: \"(003A,0223)\",\n vr: \"DS\",\n name: \"NotchFilterBandwidth\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(003A,0230)\": {\n tag: \"(003A,0230)\",\n vr: \"FL\",\n name: \"WaveformDataDisplayScale\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(003A,0231)\": {\n tag: \"(003A,0231)\",\n vr: \"US\",\n name: \"WaveformDisplayBackgroundCIELabValue\",\n vm: \"3\",\n version: \"DICOM\"\n },\n \"(003A,0240)\": {\n tag: \"(003A,0240)\",\n vr: \"SQ\",\n name: \"WaveformPresentationGroupSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(003A,0241)\": {\n tag: \"(003A,0241)\",\n vr: \"US\",\n name: \"PresentationGroupNumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(003A,0242)\": {\n tag: \"(003A,0242)\",\n vr: \"SQ\",\n name: \"ChannelDisplaySequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(003A,0244)\": {\n tag: \"(003A,0244)\",\n vr: \"US\",\n name: \"ChannelRecommendedDisplayCIELabValue\",\n vm: \"3\",\n version: \"DICOM\"\n },\n \"(003A,0245)\": {\n tag: \"(003A,0245)\",\n vr: \"FL\",\n name: \"ChannelPosition\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(003A,0246)\": {\n tag: \"(003A,0246)\",\n vr: \"CS\",\n name: \"DisplayShadingFlag\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(003A,0247)\": {\n tag: \"(003A,0247)\",\n vr: \"FL\",\n name: \"FractionalChannelDisplayScale\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(003A,0248)\": {\n tag: \"(003A,0248)\",\n vr: \"FL\",\n name: \"AbsoluteChannelDisplayScale\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(003A,0300)\": {\n tag: \"(003A,0300)\",\n vr: \"SQ\",\n name: \"MultiplexedAudioChannelsDescriptionCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(003A,0301)\": {\n tag: \"(003A,0301)\",\n vr: \"IS\",\n name: \"ChannelIdentificationCode\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(003A,0302)\": {\n tag: \"(003A,0302)\",\n vr: \"CS\",\n name: \"ChannelMode\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(003A,0310)\": {\n tag: \"(003A,0310)\",\n vr: \"UI\",\n name: \"MultiplexGroupUID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(003A,0311)\": {\n tag: \"(003A,0311)\",\n vr: \"DS\",\n name: \"PowerlineFrequency\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(003A,0312)\": {\n tag: \"(003A,0312)\",\n vr: \"SQ\",\n name: \"ChannelImpedanceSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(003A,0313)\": {\n tag: \"(003A,0313)\",\n vr: \"DS\",\n name: \"ImpedanceValue\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(003A,0314)\": {\n tag: \"(003A,0314)\",\n vr: \"DT\",\n name: \"ImpedanceMeasurementDateTime\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(003A,0315)\": {\n tag: \"(003A,0315)\",\n vr: \"DS\",\n name: \"ImpedanceMeasurementFrequency\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(003A,0316)\": {\n tag: \"(003A,0316)\",\n vr: \"CS\",\n name: \"ImpedanceMeasurementCurrentType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,0001)\": {\n tag: \"(0040,0001)\",\n vr: \"AE\",\n name: \"ScheduledStationAETitle\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0040,0002)\": {\n tag: \"(0040,0002)\",\n vr: \"DA\",\n name: \"ScheduledProcedureStepStartDate\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,0003)\": {\n tag: \"(0040,0003)\",\n vr: \"TM\",\n name: \"ScheduledProcedureStepStartTime\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,0004)\": {\n tag: \"(0040,0004)\",\n vr: \"DA\",\n name: \"ScheduledProcedureStepEndDate\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,0005)\": {\n tag: \"(0040,0005)\",\n vr: \"TM\",\n name: \"ScheduledProcedureStepEndTime\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,0006)\": {\n tag: \"(0040,0006)\",\n vr: \"PN\",\n name: \"ScheduledPerformingPhysicianName\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,0007)\": {\n tag: \"(0040,0007)\",\n vr: \"LO\",\n name: \"ScheduledProcedureStepDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,0008)\": {\n tag: \"(0040,0008)\",\n vr: \"SQ\",\n name: \"ScheduledProtocolCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,0009)\": {\n tag: \"(0040,0009)\",\n vr: \"SH\",\n name: \"ScheduledProcedureStepID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,000A)\": {\n tag: \"(0040,000A)\",\n vr: \"SQ\",\n name: \"StageCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,000B)\": {\n tag: \"(0040,000B)\",\n vr: \"SQ\",\n name: \"ScheduledPerformingPhysicianIdentificationSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,0010)\": {\n tag: \"(0040,0010)\",\n vr: \"SH\",\n name: \"ScheduledStationName\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0040,0011)\": {\n tag: \"(0040,0011)\",\n vr: \"SH\",\n name: \"ScheduledProcedureStepLocation\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,0012)\": {\n tag: \"(0040,0012)\",\n vr: \"LO\",\n name: \"PreMedication\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,0020)\": {\n tag: \"(0040,0020)\",\n vr: \"CS\",\n name: \"ScheduledProcedureStepStatus\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,0026)\": {\n tag: \"(0040,0026)\",\n vr: \"SQ\",\n name: \"OrderPlacerIdentifierSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,0027)\": {\n tag: \"(0040,0027)\",\n vr: \"SQ\",\n name: \"OrderFillerIdentifierSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,0031)\": {\n tag: \"(0040,0031)\",\n vr: \"UT\",\n name: \"LocalNamespaceEntityID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,0032)\": {\n tag: \"(0040,0032)\",\n vr: \"UT\",\n name: \"UniversalEntityID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,0033)\": {\n tag: \"(0040,0033)\",\n vr: \"CS\",\n name: \"UniversalEntityIDType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,0035)\": {\n tag: \"(0040,0035)\",\n vr: \"CS\",\n name: \"IdentifierTypeCode\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,0036)\": {\n tag: \"(0040,0036)\",\n vr: \"SQ\",\n name: \"AssigningFacilitySequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,0039)\": {\n tag: \"(0040,0039)\",\n vr: \"SQ\",\n name: \"AssigningJurisdictionCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,003A)\": {\n tag: \"(0040,003A)\",\n vr: \"SQ\",\n name: \"AssigningAgencyOrDepartmentCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,0100)\": {\n tag: \"(0040,0100)\",\n vr: \"SQ\",\n name: \"ScheduledProcedureStepSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,0220)\": {\n tag: \"(0040,0220)\",\n vr: \"SQ\",\n name: \"ReferencedNonImageCompositeSOPInstanceSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,0241)\": {\n tag: \"(0040,0241)\",\n vr: \"AE\",\n name: \"PerformedStationAETitle\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,0242)\": {\n tag: \"(0040,0242)\",\n vr: \"SH\",\n name: \"PerformedStationName\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,0243)\": {\n tag: \"(0040,0243)\",\n vr: \"SH\",\n name: \"PerformedLocation\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,0244)\": {\n tag: \"(0040,0244)\",\n vr: \"DA\",\n name: \"PerformedProcedureStepStartDate\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,0245)\": {\n tag: \"(0040,0245)\",\n vr: \"TM\",\n name: \"PerformedProcedureStepStartTime\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,0250)\": {\n tag: \"(0040,0250)\",\n vr: \"DA\",\n name: \"PerformedProcedureStepEndDate\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,0251)\": {\n tag: \"(0040,0251)\",\n vr: \"TM\",\n name: \"PerformedProcedureStepEndTime\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,0252)\": {\n tag: \"(0040,0252)\",\n vr: \"CS\",\n name: \"PerformedProcedureStepStatus\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,0253)\": {\n tag: \"(0040,0253)\",\n vr: \"SH\",\n name: \"PerformedProcedureStepID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,0254)\": {\n tag: \"(0040,0254)\",\n vr: \"LO\",\n name: \"PerformedProcedureStepDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,0255)\": {\n tag: \"(0040,0255)\",\n vr: \"LO\",\n name: \"PerformedProcedureTypeDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,0260)\": {\n tag: \"(0040,0260)\",\n vr: \"SQ\",\n name: \"PerformedProtocolCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,0261)\": {\n tag: \"(0040,0261)\",\n vr: \"CS\",\n name: \"PerformedProtocolType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,0270)\": {\n tag: \"(0040,0270)\",\n vr: \"SQ\",\n name: \"ScheduledStepAttributesSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,0275)\": {\n tag: \"(0040,0275)\",\n vr: \"SQ\",\n name: \"RequestAttributesSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,0280)\": {\n tag: \"(0040,0280)\",\n vr: \"ST\",\n name: \"CommentsOnThePerformedProcedureStep\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,0281)\": {\n tag: \"(0040,0281)\",\n vr: \"SQ\",\n name: \"PerformedProcedureStepDiscontinuationReasonCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,0293)\": {\n tag: \"(0040,0293)\",\n vr: \"SQ\",\n name: \"QuantitySequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,0294)\": {\n tag: \"(0040,0294)\",\n vr: \"DS\",\n name: \"Quantity\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,0295)\": {\n tag: \"(0040,0295)\",\n vr: \"SQ\",\n name: \"MeasuringUnitsSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,0296)\": {\n tag: \"(0040,0296)\",\n vr: \"SQ\",\n name: \"BillingItemSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,0300)\": {\n tag: \"(0040,0300)\",\n vr: \"US\",\n name: \"TotalTimeOfFluoroscopy\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,0301)\": {\n tag: \"(0040,0301)\",\n vr: \"US\",\n name: \"TotalNumberOfExposures\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,0302)\": {\n tag: \"(0040,0302)\",\n vr: \"US\",\n name: \"EntranceDose\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,0303)\": {\n tag: \"(0040,0303)\",\n vr: \"US\",\n name: \"ExposedArea\",\n vm: \"1-2\",\n version: \"DICOM\"\n },\n \"(0040,0306)\": {\n tag: \"(0040,0306)\",\n vr: \"DS\",\n name: \"DistanceSourceToEntrance\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,030E)\": {\n tag: \"(0040,030E)\",\n vr: \"SQ\",\n name: \"ExposureDoseSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,0310)\": {\n tag: \"(0040,0310)\",\n vr: \"ST\",\n name: \"CommentsOnRadiationDose\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,0312)\": {\n tag: \"(0040,0312)\",\n vr: \"DS\",\n name: \"XRayOutput\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,0314)\": {\n tag: \"(0040,0314)\",\n vr: \"DS\",\n name: \"HalfValueLayer\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,0316)\": {\n tag: \"(0040,0316)\",\n vr: \"DS\",\n name: \"OrganDose\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,0318)\": {\n tag: \"(0040,0318)\",\n vr: \"CS\",\n name: \"OrganExposed\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,0320)\": {\n tag: \"(0040,0320)\",\n vr: \"SQ\",\n name: \"BillingProcedureStepSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,0321)\": {\n tag: \"(0040,0321)\",\n vr: \"SQ\",\n name: \"FilmConsumptionSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,0324)\": {\n tag: \"(0040,0324)\",\n vr: \"SQ\",\n name: \"BillingSuppliesAndDevicesSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,0340)\": {\n tag: \"(0040,0340)\",\n vr: \"SQ\",\n name: \"PerformedSeriesSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,0400)\": {\n tag: \"(0040,0400)\",\n vr: \"LT\",\n name: \"CommentsOnTheScheduledProcedureStep\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,0440)\": {\n tag: \"(0040,0440)\",\n vr: \"SQ\",\n name: \"ProtocolContextSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,0441)\": {\n tag: \"(0040,0441)\",\n vr: \"SQ\",\n name: \"ContentItemModifierSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,0500)\": {\n tag: \"(0040,0500)\",\n vr: \"SQ\",\n name: \"ScheduledSpecimenSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,0512)\": {\n tag: \"(0040,0512)\",\n vr: \"LO\",\n name: \"ContainerIdentifier\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,0513)\": {\n tag: \"(0040,0513)\",\n vr: \"SQ\",\n name: \"IssuerOfTheContainerIdentifierSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,0515)\": {\n tag: \"(0040,0515)\",\n vr: \"SQ\",\n name: \"AlternateContainerIdentifierSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,0518)\": {\n tag: \"(0040,0518)\",\n vr: \"SQ\",\n name: \"ContainerTypeCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,051A)\": {\n tag: \"(0040,051A)\",\n vr: \"LO\",\n name: \"ContainerDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,0520)\": {\n tag: \"(0040,0520)\",\n vr: \"SQ\",\n name: \"ContainerComponentSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,0551)\": {\n tag: \"(0040,0551)\",\n vr: \"LO\",\n name: \"SpecimenIdentifier\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,0554)\": {\n tag: \"(0040,0554)\",\n vr: \"UI\",\n name: \"SpecimenUID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,0555)\": {\n tag: \"(0040,0555)\",\n vr: \"SQ\",\n name: \"AcquisitionContextSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,0556)\": {\n tag: \"(0040,0556)\",\n vr: \"ST\",\n name: \"AcquisitionContextDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,0560)\": {\n tag: \"(0040,0560)\",\n vr: \"SQ\",\n name: \"SpecimenDescriptionSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,0562)\": {\n tag: \"(0040,0562)\",\n vr: \"SQ\",\n name: \"IssuerOfTheSpecimenIdentifierSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,059A)\": {\n tag: \"(0040,059A)\",\n vr: \"SQ\",\n name: \"SpecimenTypeCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,0600)\": {\n tag: \"(0040,0600)\",\n vr: \"LO\",\n name: \"SpecimenShortDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,0602)\": {\n tag: \"(0040,0602)\",\n vr: \"UT\",\n name: \"SpecimenDetailedDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,0610)\": {\n tag: \"(0040,0610)\",\n vr: \"SQ\",\n name: \"SpecimenPreparationSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,0612)\": {\n tag: \"(0040,0612)\",\n vr: \"SQ\",\n name: \"SpecimenPreparationStepContentItemSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,0620)\": {\n tag: \"(0040,0620)\",\n vr: \"SQ\",\n name: \"SpecimenLocalizationContentItemSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,0710)\": {\n tag: \"(0040,0710)\",\n vr: \"SQ\",\n name: \"WholeSlideMicroscopyImageFrameTypeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,071A)\": {\n tag: \"(0040,071A)\",\n vr: \"SQ\",\n name: \"ImageCenterPointCoordinatesSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,072A)\": {\n tag: \"(0040,072A)\",\n vr: \"DS\",\n name: \"XOffsetInSlideCoordinateSystem\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,073A)\": {\n tag: \"(0040,073A)\",\n vr: \"DS\",\n name: \"YOffsetInSlideCoordinateSystem\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,074A)\": {\n tag: \"(0040,074A)\",\n vr: \"DS\",\n name: \"ZOffsetInSlideCoordinateSystem\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,08EA)\": {\n tag: \"(0040,08EA)\",\n vr: \"SQ\",\n name: \"MeasurementUnitsCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,1001)\": {\n tag: \"(0040,1001)\",\n vr: \"SH\",\n name: \"RequestedProcedureID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,1002)\": {\n tag: \"(0040,1002)\",\n vr: \"LO\",\n name: \"ReasonForTheRequestedProcedure\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,1003)\": {\n tag: \"(0040,1003)\",\n vr: \"SH\",\n name: \"RequestedProcedurePriority\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,1004)\": {\n tag: \"(0040,1004)\",\n vr: \"LO\",\n name: \"PatientTransportArrangements\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,1005)\": {\n tag: \"(0040,1005)\",\n vr: \"LO\",\n name: \"RequestedProcedureLocation\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,1008)\": {\n tag: \"(0040,1008)\",\n vr: \"LO\",\n name: \"ConfidentialityCode\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,1009)\": {\n tag: \"(0040,1009)\",\n vr: \"SH\",\n name: \"ReportingPriority\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,100A)\": {\n tag: \"(0040,100A)\",\n vr: \"SQ\",\n name: \"ReasonForRequestedProcedureCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,1010)\": {\n tag: \"(0040,1010)\",\n vr: \"PN\",\n name: \"NamesOfIntendedRecipientsOfResults\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0040,1011)\": {\n tag: \"(0040,1011)\",\n vr: \"SQ\",\n name: \"IntendedRecipientsOfResultsIdentificationSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,1012)\": {\n tag: \"(0040,1012)\",\n vr: \"SQ\",\n name: \"ReasonForPerformedProcedureCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,1101)\": {\n tag: \"(0040,1101)\",\n vr: \"SQ\",\n name: \"PersonIdentificationCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,1102)\": {\n tag: \"(0040,1102)\",\n vr: \"ST\",\n name: \"PersonAddress\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,1103)\": {\n tag: \"(0040,1103)\",\n vr: \"LO\",\n name: \"PersonTelephoneNumbers\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0040,1104)\": {\n tag: \"(0040,1104)\",\n vr: \"LT\",\n name: \"PersonTelecomInformation\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,1400)\": {\n tag: \"(0040,1400)\",\n vr: \"LT\",\n name: \"RequestedProcedureComments\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,2004)\": {\n tag: \"(0040,2004)\",\n vr: \"DA\",\n name: \"IssueDateOfImagingServiceRequest\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,2005)\": {\n tag: \"(0040,2005)\",\n vr: \"TM\",\n name: \"IssueTimeOfImagingServiceRequest\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,2008)\": {\n tag: \"(0040,2008)\",\n vr: \"PN\",\n name: \"OrderEnteredBy\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,2009)\": {\n tag: \"(0040,2009)\",\n vr: \"SH\",\n name: \"OrderEntererLocation\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,2010)\": {\n tag: \"(0040,2010)\",\n vr: \"SH\",\n name: \"OrderCallbackPhoneNumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,2011)\": {\n tag: \"(0040,2011)\",\n vr: \"LT\",\n name: \"OrderCallbackTelecomInformation\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,2016)\": {\n tag: \"(0040,2016)\",\n vr: \"LO\",\n name: \"PlacerOrderNumberImagingServiceRequest\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,2017)\": {\n tag: \"(0040,2017)\",\n vr: \"LO\",\n name: \"FillerOrderNumberImagingServiceRequest\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,2400)\": {\n tag: \"(0040,2400)\",\n vr: \"LT\",\n name: \"ImagingServiceRequestComments\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,3001)\": {\n tag: \"(0040,3001)\",\n vr: \"LO\",\n name: \"ConfidentialityConstraintOnPatientDataDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,4005)\": {\n tag: \"(0040,4005)\",\n vr: \"DT\",\n name: \"ScheduledProcedureStepStartDateTime\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,4007)\": {\n tag: \"(0040,4007)\",\n vr: \"SQ\",\n name: \"PerformedProcessingApplicationsCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,4008)\": {\n tag: \"(0040,4008)\",\n vr: \"DT\",\n name: \"ScheduledProcedureStepExpirationDateTime\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,4009)\": {\n tag: \"(0040,4009)\",\n vr: \"SQ\",\n name: \"HumanPerformerCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,4010)\": {\n tag: \"(0040,4010)\",\n vr: \"DT\",\n name: \"ScheduledProcedureStepModificationDateTime\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,4011)\": {\n tag: \"(0040,4011)\",\n vr: \"DT\",\n name: \"ExpectedCompletionDateTime\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,4018)\": {\n tag: \"(0040,4018)\",\n vr: \"SQ\",\n name: \"ScheduledWorkitemCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,4019)\": {\n tag: \"(0040,4019)\",\n vr: \"SQ\",\n name: \"PerformedWorkitemCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,4020)\": {\n tag: \"(0040,4020)\",\n vr: \"CS\",\n name: \"InputAvailabilityFlag\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,4021)\": {\n tag: \"(0040,4021)\",\n vr: \"SQ\",\n name: \"InputInformationSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,4025)\": {\n tag: \"(0040,4025)\",\n vr: \"SQ\",\n name: \"ScheduledStationNameCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,4026)\": {\n tag: \"(0040,4026)\",\n vr: \"SQ\",\n name: \"ScheduledStationClassCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,4027)\": {\n tag: \"(0040,4027)\",\n vr: \"SQ\",\n name: \"ScheduledStationGeographicLocationCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,4028)\": {\n tag: \"(0040,4028)\",\n vr: \"SQ\",\n name: \"PerformedStationNameCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,4029)\": {\n tag: \"(0040,4029)\",\n vr: \"SQ\",\n name: \"PerformedStationClassCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,4030)\": {\n tag: \"(0040,4030)\",\n vr: \"SQ\",\n name: \"PerformedStationGeographicLocationCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,4033)\": {\n tag: \"(0040,4033)\",\n vr: \"SQ\",\n name: \"OutputInformationSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,4034)\": {\n tag: \"(0040,4034)\",\n vr: \"SQ\",\n name: \"ScheduledHumanPerformersSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,4035)\": {\n tag: \"(0040,4035)\",\n vr: \"SQ\",\n name: \"ActualHumanPerformersSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,4036)\": {\n tag: \"(0040,4036)\",\n vr: \"LO\",\n name: \"HumanPerformerOrganization\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,4037)\": {\n tag: \"(0040,4037)\",\n vr: \"PN\",\n name: \"HumanPerformerName\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,4040)\": {\n tag: \"(0040,4040)\",\n vr: \"CS\",\n name: \"RawDataHandling\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,4041)\": {\n tag: \"(0040,4041)\",\n vr: \"CS\",\n name: \"InputReadinessState\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,4050)\": {\n tag: \"(0040,4050)\",\n vr: \"DT\",\n name: \"PerformedProcedureStepStartDateTime\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,4051)\": {\n tag: \"(0040,4051)\",\n vr: \"DT\",\n name: \"PerformedProcedureStepEndDateTime\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,4052)\": {\n tag: \"(0040,4052)\",\n vr: \"DT\",\n name: \"ProcedureStepCancellationDateTime\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,8302)\": {\n tag: \"(0040,8302)\",\n vr: \"DS\",\n name: \"EntranceDoseInmGy\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,8303)\": {\n tag: \"(0040,8303)\",\n vr: \"CS\",\n name: \"EntranceDoseDerivation\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,9092)\": {\n tag: \"(0040,9092)\",\n vr: \"SQ\",\n name: \"ParametricMapFrameTypeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,9094)\": {\n tag: \"(0040,9094)\",\n vr: \"SQ\",\n name: \"ReferencedImageRealWorldValueMappingSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,9096)\": {\n tag: \"(0040,9096)\",\n vr: \"SQ\",\n name: \"RealWorldValueMappingSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,9098)\": {\n tag: \"(0040,9098)\",\n vr: \"SQ\",\n name: \"PixelValueMappingCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,9210)\": {\n tag: \"(0040,9210)\",\n vr: \"SH\",\n name: \"LUTLabel\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,9211)\": {\n tag: \"(0040,9211)\",\n vr: \"xs\",\n name: \"RealWorldValueLastValueMapped\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,9212)\": {\n tag: \"(0040,9212)\",\n vr: \"FD\",\n name: \"RealWorldValueLUTData\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0040,9216)\": {\n tag: \"(0040,9216)\",\n vr: \"xs\",\n name: \"RealWorldValueFirstValueMapped\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,9220)\": {\n tag: \"(0040,9220)\",\n vr: \"SQ\",\n name: \"QuantityDefinitionSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,9224)\": {\n tag: \"(0040,9224)\",\n vr: \"FD\",\n name: \"RealWorldValueIntercept\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,9225)\": {\n tag: \"(0040,9225)\",\n vr: \"FD\",\n name: \"RealWorldValueSlope\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,A010)\": {\n tag: \"(0040,A010)\",\n vr: \"CS\",\n name: \"RelationshipType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,A027)\": {\n tag: \"(0040,A027)\",\n vr: \"LO\",\n name: \"VerifyingOrganization\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,A030)\": {\n tag: \"(0040,A030)\",\n vr: \"DT\",\n name: \"VerificationDateTime\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,A032)\": {\n tag: \"(0040,A032)\",\n vr: \"DT\",\n name: \"ObservationDateTime\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,A033)\": {\n tag: \"(0040,A033)\",\n vr: \"DT\",\n name: \"ObservationStartDateTime\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,A040)\": {\n tag: \"(0040,A040)\",\n vr: \"CS\",\n name: \"ValueType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,A043)\": {\n tag: \"(0040,A043)\",\n vr: \"SQ\",\n name: \"ConceptNameCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,A050)\": {\n tag: \"(0040,A050)\",\n vr: \"CS\",\n name: \"ContinuityOfContent\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,A073)\": {\n tag: \"(0040,A073)\",\n vr: \"SQ\",\n name: \"VerifyingObserverSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,A075)\": {\n tag: \"(0040,A075)\",\n vr: \"PN\",\n name: \"VerifyingObserverName\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,A078)\": {\n tag: \"(0040,A078)\",\n vr: \"SQ\",\n name: \"AuthorObserverSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,A07A)\": {\n tag: \"(0040,A07A)\",\n vr: \"SQ\",\n name: \"ParticipantSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,A07C)\": {\n tag: \"(0040,A07C)\",\n vr: \"SQ\",\n name: \"CustodialOrganizationSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,A080)\": {\n tag: \"(0040,A080)\",\n vr: \"CS\",\n name: \"ParticipationType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,A082)\": {\n tag: \"(0040,A082)\",\n vr: \"DT\",\n name: \"ParticipationDateTime\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,A084)\": {\n tag: \"(0040,A084)\",\n vr: \"CS\",\n name: \"ObserverType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,A088)\": {\n tag: \"(0040,A088)\",\n vr: \"SQ\",\n name: \"VerifyingObserverIdentificationCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,A0B0)\": {\n tag: \"(0040,A0B0)\",\n vr: \"US\",\n name: \"ReferencedWaveformChannels\",\n vm: \"2-2n\",\n version: \"DICOM\"\n },\n \"(0040,A120)\": {\n tag: \"(0040,A120)\",\n vr: \"DT\",\n name: \"DateTime\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,A121)\": {\n tag: \"(0040,A121)\",\n vr: \"DA\",\n name: \"Date\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,A122)\": {\n tag: \"(0040,A122)\",\n vr: \"TM\",\n name: \"Time\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,A123)\": {\n tag: \"(0040,A123)\",\n vr: \"PN\",\n name: \"PersonName\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,A124)\": {\n tag: \"(0040,A124)\",\n vr: \"UI\",\n name: \"UID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,A130)\": {\n tag: \"(0040,A130)\",\n vr: \"CS\",\n name: \"TemporalRangeType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,A132)\": {\n tag: \"(0040,A132)\",\n vr: \"UL\",\n name: \"ReferencedSamplePositions\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0040,A136)\": {\n tag: \"(0040,A136)\",\n vr: \"US\",\n name: \"ReferencedFrameNumbers\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0040,A138)\": {\n tag: \"(0040,A138)\",\n vr: \"DS\",\n name: \"ReferencedTimeOffsets\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0040,A13A)\": {\n tag: \"(0040,A13A)\",\n vr: \"DT\",\n name: \"ReferencedDateTime\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0040,A160)\": {\n tag: \"(0040,A160)\",\n vr: \"UT\",\n name: \"TextValue\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,A161)\": {\n tag: \"(0040,A161)\",\n vr: \"FD\",\n name: \"FloatingPointValue\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0040,A162)\": {\n tag: \"(0040,A162)\",\n vr: \"SL\",\n name: \"RationalNumeratorValue\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0040,A163)\": {\n tag: \"(0040,A163)\",\n vr: \"UL\",\n name: \"RationalDenominatorValue\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0040,A168)\": {\n tag: \"(0040,A168)\",\n vr: \"SQ\",\n name: \"ConceptCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,A170)\": {\n tag: \"(0040,A170)\",\n vr: \"SQ\",\n name: \"PurposeOfReferenceCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,A171)\": {\n tag: \"(0040,A171)\",\n vr: \"UI\",\n name: \"ObservationUID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,A180)\": {\n tag: \"(0040,A180)\",\n vr: \"US\",\n name: \"AnnotationGroupNumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,A195)\": {\n tag: \"(0040,A195)\",\n vr: \"SQ\",\n name: \"ModifierCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,A300)\": {\n tag: \"(0040,A300)\",\n vr: \"SQ\",\n name: \"MeasuredValueSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,A301)\": {\n tag: \"(0040,A301)\",\n vr: \"SQ\",\n name: \"NumericValueQualifierCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,A30A)\": {\n tag: \"(0040,A30A)\",\n vr: \"DS\",\n name: \"NumericValue\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0040,A360)\": {\n tag: \"(0040,A360)\",\n vr: \"SQ\",\n name: \"PredecessorDocumentsSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,A370)\": {\n tag: \"(0040,A370)\",\n vr: \"SQ\",\n name: \"ReferencedRequestSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,A372)\": {\n tag: \"(0040,A372)\",\n vr: \"SQ\",\n name: \"PerformedProcedureCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,A375)\": {\n tag: \"(0040,A375)\",\n vr: \"SQ\",\n name: \"CurrentRequestedProcedureEvidenceSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,A385)\": {\n tag: \"(0040,A385)\",\n vr: \"SQ\",\n name: \"PertinentOtherEvidenceSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,A390)\": {\n tag: \"(0040,A390)\",\n vr: \"SQ\",\n name: \"HL7StructuredDocumentReferenceSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,A491)\": {\n tag: \"(0040,A491)\",\n vr: \"CS\",\n name: \"CompletionFlag\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,A492)\": {\n tag: \"(0040,A492)\",\n vr: \"LO\",\n name: \"CompletionFlagDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,A493)\": {\n tag: \"(0040,A493)\",\n vr: \"CS\",\n name: \"VerificationFlag\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,A494)\": {\n tag: \"(0040,A494)\",\n vr: \"CS\",\n name: \"ArchiveRequested\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,A496)\": {\n tag: \"(0040,A496)\",\n vr: \"CS\",\n name: \"PreliminaryFlag\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,A504)\": {\n tag: \"(0040,A504)\",\n vr: \"SQ\",\n name: \"ContentTemplateSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,A525)\": {\n tag: \"(0040,A525)\",\n vr: \"SQ\",\n name: \"IdenticalDocumentsSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,A730)\": {\n tag: \"(0040,A730)\",\n vr: \"SQ\",\n name: \"ContentSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,A801)\": {\n tag: \"(0040,A801)\",\n vr: \"SQ\",\n name: \"TabulatedValuesSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,A802)\": {\n tag: \"(0040,A802)\",\n vr: \"UL\",\n name: \"NumberOfTableRows\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,A803)\": {\n tag: \"(0040,A803)\",\n vr: \"UL\",\n name: \"NumbeOfTableColumns\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,A804)\": {\n tag: \"(0040,A804)\",\n vr: \"UL\",\n name: \"TableRowNumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,A805)\": {\n tag: \"(0040,A805)\",\n vr: \"UL\",\n name: \"TableColumnNumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,A806)\": {\n tag: \"(0040,A806)\",\n vr: \"SQ\",\n name: \"TableRowDefinitionSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,A807)\": {\n tag: \"(0040,A807)\",\n vr: \"SQ\",\n name: \"TableColumnDefinitionSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,A808)\": {\n tag: \"(0040,A808)\",\n vr: \"SQ\",\n name: \"CellValuesSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,B020)\": {\n tag: \"(0040,B020)\",\n vr: \"SQ\",\n name: \"WaveformAnnotationSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,DB00)\": {\n tag: \"(0040,DB00)\",\n vr: \"CS\",\n name: \"TemplateIdentifier\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,DB73)\": {\n tag: \"(0040,DB73)\",\n vr: \"UL\",\n name: \"ReferencedContentItemIdentifier\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0040,E001)\": {\n tag: \"(0040,E001)\",\n vr: \"ST\",\n name: \"HL7InstanceIdentifier\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,E004)\": {\n tag: \"(0040,E004)\",\n vr: \"DT\",\n name: \"HL7DocumentEffectiveTime\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,E006)\": {\n tag: \"(0040,E006)\",\n vr: \"SQ\",\n name: \"HL7DocumentTypeCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,E008)\": {\n tag: \"(0040,E008)\",\n vr: \"SQ\",\n name: \"DocumentClassCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,E010)\": {\n tag: \"(0040,E010)\",\n vr: \"UR\",\n name: \"RetrieveURI\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,E011)\": {\n tag: \"(0040,E011)\",\n vr: \"UI\",\n name: \"RetrieveLocationUID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,E020)\": {\n tag: \"(0040,E020)\",\n vr: \"CS\",\n name: \"TypeOfInstances\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,E021)\": {\n tag: \"(0040,E021)\",\n vr: \"SQ\",\n name: \"DICOMRetrievalSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,E022)\": {\n tag: \"(0040,E022)\",\n vr: \"SQ\",\n name: \"DICOMMediaRetrievalSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,E023)\": {\n tag: \"(0040,E023)\",\n vr: \"SQ\",\n name: \"WADORetrievalSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,E024)\": {\n tag: \"(0040,E024)\",\n vr: \"SQ\",\n name: \"XDSRetrievalSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,E025)\": {\n tag: \"(0040,E025)\",\n vr: \"SQ\",\n name: \"WADORSRetrievalSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,E030)\": {\n tag: \"(0040,E030)\",\n vr: \"UI\",\n name: \"RepositoryUniqueID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0040,E031)\": {\n tag: \"(0040,E031)\",\n vr: \"UI\",\n name: \"HomeCommunityID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0042,0010)\": {\n tag: \"(0042,0010)\",\n vr: \"ST\",\n name: \"DocumentTitle\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0042,0011)\": {\n tag: \"(0042,0011)\",\n vr: \"OB\",\n name: \"EncapsulatedDocument\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0042,0012)\": {\n tag: \"(0042,0012)\",\n vr: \"LO\",\n name: \"MIMETypeOfEncapsulatedDocument\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0042,0013)\": {\n tag: \"(0042,0013)\",\n vr: \"SQ\",\n name: \"SourceInstanceSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0042,0014)\": {\n tag: \"(0042,0014)\",\n vr: \"LO\",\n name: \"ListOfMIMETypes\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0042,0015)\": {\n tag: \"(0042,0015)\",\n vr: \"UL\",\n name: \"EncapsulatedDocumentLength\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0044,0001)\": {\n tag: \"(0044,0001)\",\n vr: \"ST\",\n name: \"ProductPackageIdentifier\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0044,0002)\": {\n tag: \"(0044,0002)\",\n vr: \"CS\",\n name: \"SubstanceAdministrationApproval\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0044,0003)\": {\n tag: \"(0044,0003)\",\n vr: \"LT\",\n name: \"ApprovalStatusFurtherDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0044,0004)\": {\n tag: \"(0044,0004)\",\n vr: \"DT\",\n name: \"ApprovalStatusDateTime\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0044,0007)\": {\n tag: \"(0044,0007)\",\n vr: \"SQ\",\n name: \"ProductTypeCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0044,0008)\": {\n tag: \"(0044,0008)\",\n vr: \"LO\",\n name: \"ProductName\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0044,0009)\": {\n tag: \"(0044,0009)\",\n vr: \"LT\",\n name: \"ProductDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0044,000A)\": {\n tag: \"(0044,000A)\",\n vr: \"LO\",\n name: \"ProductLotIdentifier\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0044,000B)\": {\n tag: \"(0044,000B)\",\n vr: \"DT\",\n name: \"ProductExpirationDateTime\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0044,0010)\": {\n tag: \"(0044,0010)\",\n vr: \"DT\",\n name: \"SubstanceAdministrationDateTime\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0044,0011)\": {\n tag: \"(0044,0011)\",\n vr: \"LO\",\n name: \"SubstanceAdministrationNotes\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0044,0012)\": {\n tag: \"(0044,0012)\",\n vr: \"LO\",\n name: \"SubstanceAdministrationDeviceID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0044,0013)\": {\n tag: \"(0044,0013)\",\n vr: \"SQ\",\n name: \"ProductParameterSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0044,0019)\": {\n tag: \"(0044,0019)\",\n vr: \"SQ\",\n name: \"SubstanceAdministrationParameterSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0044,0100)\": {\n tag: \"(0044,0100)\",\n vr: \"SQ\",\n name: \"ApprovalSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0044,0101)\": {\n tag: \"(0044,0101)\",\n vr: \"SQ\",\n name: \"AssertionCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0044,0102)\": {\n tag: \"(0044,0102)\",\n vr: \"UI\",\n name: \"AssertionUID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0044,0103)\": {\n tag: \"(0044,0103)\",\n vr: \"SQ\",\n name: \"AsserterIdentificationSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0044,0104)\": {\n tag: \"(0044,0104)\",\n vr: \"DT\",\n name: \"AssertionDateTime\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0044,0105)\": {\n tag: \"(0044,0105)\",\n vr: \"DT\",\n name: \"AssertionExpirationDateTime\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0044,0106)\": {\n tag: \"(0044,0106)\",\n vr: \"UT\",\n name: \"AssertionComments\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0044,0107)\": {\n tag: \"(0044,0107)\",\n vr: \"SQ\",\n name: \"RelatedAssertionSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0044,0108)\": {\n tag: \"(0044,0108)\",\n vr: \"UI\",\n name: \"ReferencedAssertionUID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0044,0109)\": {\n tag: \"(0044,0109)\",\n vr: \"SQ\",\n name: \"ApprovalSubjectSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0044,010A)\": {\n tag: \"(0044,010A)\",\n vr: \"SQ\",\n name: \"OrganizationalRoleCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0046,0012)\": {\n tag: \"(0046,0012)\",\n vr: \"LO\",\n name: \"LensDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0046,0014)\": {\n tag: \"(0046,0014)\",\n vr: \"SQ\",\n name: \"RightLensSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0046,0015)\": {\n tag: \"(0046,0015)\",\n vr: \"SQ\",\n name: \"LeftLensSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0046,0016)\": {\n tag: \"(0046,0016)\",\n vr: \"SQ\",\n name: \"UnspecifiedLateralityLensSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0046,0018)\": {\n tag: \"(0046,0018)\",\n vr: \"SQ\",\n name: \"CylinderSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0046,0028)\": {\n tag: \"(0046,0028)\",\n vr: \"SQ\",\n name: \"PrismSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0046,0030)\": {\n tag: \"(0046,0030)\",\n vr: \"FD\",\n name: \"HorizontalPrismPower\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0046,0032)\": {\n tag: \"(0046,0032)\",\n vr: \"CS\",\n name: \"HorizontalPrismBase\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0046,0034)\": {\n tag: \"(0046,0034)\",\n vr: \"FD\",\n name: \"VerticalPrismPower\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0046,0036)\": {\n tag: \"(0046,0036)\",\n vr: \"CS\",\n name: \"VerticalPrismBase\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0046,0038)\": {\n tag: \"(0046,0038)\",\n vr: \"CS\",\n name: \"LensSegmentType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0046,0040)\": {\n tag: \"(0046,0040)\",\n vr: \"FD\",\n name: \"OpticalTransmittance\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0046,0042)\": {\n tag: \"(0046,0042)\",\n vr: \"FD\",\n name: \"ChannelWidth\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0046,0044)\": {\n tag: \"(0046,0044)\",\n vr: \"FD\",\n name: \"PupilSize\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0046,0046)\": {\n tag: \"(0046,0046)\",\n vr: \"FD\",\n name: \"CornealSize\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0046,0047)\": {\n tag: \"(0046,0047)\",\n vr: \"SQ\",\n name: \"CornealSizeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0046,0050)\": {\n tag: \"(0046,0050)\",\n vr: \"SQ\",\n name: \"AutorefractionRightEyeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0046,0052)\": {\n tag: \"(0046,0052)\",\n vr: \"SQ\",\n name: \"AutorefractionLeftEyeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0046,0060)\": {\n tag: \"(0046,0060)\",\n vr: \"FD\",\n name: \"DistancePupillaryDistance\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0046,0062)\": {\n tag: \"(0046,0062)\",\n vr: \"FD\",\n name: \"NearPupillaryDistance\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0046,0063)\": {\n tag: \"(0046,0063)\",\n vr: \"FD\",\n name: \"IntermediatePupillaryDistance\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0046,0064)\": {\n tag: \"(0046,0064)\",\n vr: \"FD\",\n name: \"OtherPupillaryDistance\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0046,0070)\": {\n tag: \"(0046,0070)\",\n vr: \"SQ\",\n name: \"KeratometryRightEyeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0046,0071)\": {\n tag: \"(0046,0071)\",\n vr: \"SQ\",\n name: \"KeratometryLeftEyeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0046,0074)\": {\n tag: \"(0046,0074)\",\n vr: \"SQ\",\n name: \"SteepKeratometricAxisSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0046,0075)\": {\n tag: \"(0046,0075)\",\n vr: \"FD\",\n name: \"RadiusOfCurvature\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0046,0076)\": {\n tag: \"(0046,0076)\",\n vr: \"FD\",\n name: \"KeratometricPower\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0046,0077)\": {\n tag: \"(0046,0077)\",\n vr: \"FD\",\n name: \"KeratometricAxis\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0046,0080)\": {\n tag: \"(0046,0080)\",\n vr: \"SQ\",\n name: \"FlatKeratometricAxisSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0046,0092)\": {\n tag: \"(0046,0092)\",\n vr: \"CS\",\n name: \"BackgroundColor\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0046,0094)\": {\n tag: \"(0046,0094)\",\n vr: \"CS\",\n name: \"Optotype\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0046,0095)\": {\n tag: \"(0046,0095)\",\n vr: \"CS\",\n name: \"OptotypePresentation\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0046,0097)\": {\n tag: \"(0046,0097)\",\n vr: \"SQ\",\n name: \"SubjectiveRefractionRightEyeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0046,0098)\": {\n tag: \"(0046,0098)\",\n vr: \"SQ\",\n name: \"SubjectiveRefractionLeftEyeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0046,0100)\": {\n tag: \"(0046,0100)\",\n vr: \"SQ\",\n name: \"AddNearSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0046,0101)\": {\n tag: \"(0046,0101)\",\n vr: \"SQ\",\n name: \"AddIntermediateSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0046,0102)\": {\n tag: \"(0046,0102)\",\n vr: \"SQ\",\n name: \"AddOtherSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0046,0104)\": {\n tag: \"(0046,0104)\",\n vr: \"FD\",\n name: \"AddPower\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0046,0106)\": {\n tag: \"(0046,0106)\",\n vr: \"FD\",\n name: \"ViewingDistance\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0046,0110)\": {\n tag: \"(0046,0110)\",\n vr: \"SQ\",\n name: \"CorneaMeasurementsSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0046,0111)\": {\n tag: \"(0046,0111)\",\n vr: \"SQ\",\n name: \"SourceOfCorneaMeasurementDataCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0046,0112)\": {\n tag: \"(0046,0112)\",\n vr: \"SQ\",\n name: \"SteepCornealAxisSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0046,0113)\": {\n tag: \"(0046,0113)\",\n vr: \"SQ\",\n name: \"FlatCornealAxisSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0046,0114)\": {\n tag: \"(0046,0114)\",\n vr: \"FD\",\n name: \"CornealPower\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0046,0115)\": {\n tag: \"(0046,0115)\",\n vr: \"FD\",\n name: \"CornealAxis\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0046,0116)\": {\n tag: \"(0046,0116)\",\n vr: \"SQ\",\n name: \"CorneaMeasurementMethodCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0046,0117)\": {\n tag: \"(0046,0117)\",\n vr: \"FL\",\n name: \"RefractiveIndexOfCornea\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0046,0118)\": {\n tag: \"(0046,0118)\",\n vr: \"FL\",\n name: \"RefractiveIndexOfAqueousHumor\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0046,0121)\": {\n tag: \"(0046,0121)\",\n vr: \"SQ\",\n name: \"VisualAcuityTypeCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0046,0122)\": {\n tag: \"(0046,0122)\",\n vr: \"SQ\",\n name: \"VisualAcuityRightEyeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0046,0123)\": {\n tag: \"(0046,0123)\",\n vr: \"SQ\",\n name: \"VisualAcuityLeftEyeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0046,0124)\": {\n tag: \"(0046,0124)\",\n vr: \"SQ\",\n name: \"VisualAcuityBothEyesOpenSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0046,0125)\": {\n tag: \"(0046,0125)\",\n vr: \"CS\",\n name: \"ViewingDistanceType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0046,0135)\": {\n tag: \"(0046,0135)\",\n vr: \"SS\",\n name: \"VisualAcuityModifiers\",\n vm: \"2\",\n version: \"DICOM\"\n },\n \"(0046,0137)\": {\n tag: \"(0046,0137)\",\n vr: \"FD\",\n name: \"DecimalVisualAcuity\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0046,0139)\": {\n tag: \"(0046,0139)\",\n vr: \"LO\",\n name: \"OptotypeDetailedDefinition\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0046,0145)\": {\n tag: \"(0046,0145)\",\n vr: \"SQ\",\n name: \"ReferencedRefractiveMeasurementsSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0046,0146)\": {\n tag: \"(0046,0146)\",\n vr: \"FD\",\n name: \"SpherePower\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0046,0147)\": {\n tag: \"(0046,0147)\",\n vr: \"FD\",\n name: \"CylinderPower\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0046,0201)\": {\n tag: \"(0046,0201)\",\n vr: \"CS\",\n name: \"CornealTopographySurface\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0046,0202)\": {\n tag: \"(0046,0202)\",\n vr: \"FL\",\n name: \"CornealVertexLocation\",\n vm: \"2\",\n version: \"DICOM\"\n },\n \"(0046,0203)\": {\n tag: \"(0046,0203)\",\n vr: \"FL\",\n name: \"PupilCentroidXCoordinate\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0046,0204)\": {\n tag: \"(0046,0204)\",\n vr: \"FL\",\n name: \"PupilCentroidYCoordinate\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0046,0205)\": {\n tag: \"(0046,0205)\",\n vr: \"FL\",\n name: \"EquivalentPupilRadius\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0046,0207)\": {\n tag: \"(0046,0207)\",\n vr: \"SQ\",\n name: \"CornealTopographyMapTypeCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0046,0208)\": {\n tag: \"(0046,0208)\",\n vr: \"IS\",\n name: \"VerticesOfTheOutlineOfPupil\",\n vm: \"2-2n\",\n version: \"DICOM\"\n },\n \"(0046,0210)\": {\n tag: \"(0046,0210)\",\n vr: \"SQ\",\n name: \"CornealTopographyMappingNormalsSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0046,0211)\": {\n tag: \"(0046,0211)\",\n vr: \"SQ\",\n name: \"MaximumCornealCurvatureSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0046,0212)\": {\n tag: \"(0046,0212)\",\n vr: \"FL\",\n name: \"MaximumCornealCurvature\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0046,0213)\": {\n tag: \"(0046,0213)\",\n vr: \"FL\",\n name: \"MaximumCornealCurvatureLocation\",\n vm: \"2\",\n version: \"DICOM\"\n },\n \"(0046,0215)\": {\n tag: \"(0046,0215)\",\n vr: \"SQ\",\n name: \"MinimumKeratometricSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0046,0218)\": {\n tag: \"(0046,0218)\",\n vr: \"SQ\",\n name: \"SimulatedKeratometricCylinderSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0046,0220)\": {\n tag: \"(0046,0220)\",\n vr: \"FL\",\n name: \"AverageCornealPower\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0046,0224)\": {\n tag: \"(0046,0224)\",\n vr: \"FL\",\n name: \"CornealISValue\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0046,0227)\": {\n tag: \"(0046,0227)\",\n vr: \"FL\",\n name: \"AnalyzedArea\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0046,0230)\": {\n tag: \"(0046,0230)\",\n vr: \"FL\",\n name: \"SurfaceRegularityIndex\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0046,0232)\": {\n tag: \"(0046,0232)\",\n vr: \"FL\",\n name: \"SurfaceAsymmetryIndex\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0046,0234)\": {\n tag: \"(0046,0234)\",\n vr: \"FL\",\n name: \"CornealEccentricityIndex\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0046,0236)\": {\n tag: \"(0046,0236)\",\n vr: \"FL\",\n name: \"KeratoconusPredictionIndex\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0046,0238)\": {\n tag: \"(0046,0238)\",\n vr: \"FL\",\n name: \"DecimalPotentialVisualAcuity\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0046,0242)\": {\n tag: \"(0046,0242)\",\n vr: \"CS\",\n name: \"CornealTopographyMapQualityEvaluation\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0046,0244)\": {\n tag: \"(0046,0244)\",\n vr: \"SQ\",\n name: \"SourceImageCornealProcessedDataSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0046,0247)\": {\n tag: \"(0046,0247)\",\n vr: \"FL\",\n name: \"CornealPointLocation\",\n vm: \"3\",\n version: \"DICOM\"\n },\n \"(0046,0248)\": {\n tag: \"(0046,0248)\",\n vr: \"CS\",\n name: \"CornealPointEstimated\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0046,0249)\": {\n tag: \"(0046,0249)\",\n vr: \"FL\",\n name: \"AxialPower\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0046,0250)\": {\n tag: \"(0046,0250)\",\n vr: \"FL\",\n name: \"TangentialPower\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0046,0251)\": {\n tag: \"(0046,0251)\",\n vr: \"FL\",\n name: \"RefractivePower\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0046,0252)\": {\n tag: \"(0046,0252)\",\n vr: \"FL\",\n name: \"RelativeElevation\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0046,0253)\": {\n tag: \"(0046,0253)\",\n vr: \"FL\",\n name: \"CornealWavefront\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0048,0001)\": {\n tag: \"(0048,0001)\",\n vr: \"FL\",\n name: \"ImagedVolumeWidth\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0048,0002)\": {\n tag: \"(0048,0002)\",\n vr: \"FL\",\n name: \"ImagedVolumeHeight\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0048,0003)\": {\n tag: \"(0048,0003)\",\n vr: \"FL\",\n name: \"ImagedVolumeDepth\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0048,0006)\": {\n tag: \"(0048,0006)\",\n vr: \"UL\",\n name: \"TotalPixelMatrixColumns\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0048,0007)\": {\n tag: \"(0048,0007)\",\n vr: \"UL\",\n name: \"TotalPixelMatrixRows\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0048,0008)\": {\n tag: \"(0048,0008)\",\n vr: \"SQ\",\n name: \"TotalPixelMatrixOriginSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0048,0010)\": {\n tag: \"(0048,0010)\",\n vr: \"CS\",\n name: \"SpecimenLabelInImage\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0048,0011)\": {\n tag: \"(0048,0011)\",\n vr: \"CS\",\n name: \"FocusMethod\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0048,0012)\": {\n tag: \"(0048,0012)\",\n vr: \"CS\",\n name: \"ExtendedDepthOfField\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0048,0013)\": {\n tag: \"(0048,0013)\",\n vr: \"US\",\n name: \"NumberOfFocalPlanes\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0048,0014)\": {\n tag: \"(0048,0014)\",\n vr: \"FL\",\n name: \"DistanceBetweenFocalPlanes\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0048,0015)\": {\n tag: \"(0048,0015)\",\n vr: \"US\",\n name: \"RecommendedAbsentPixelCIELabValue\",\n vm: \"3\",\n version: \"DICOM\"\n },\n \"(0048,0100)\": {\n tag: \"(0048,0100)\",\n vr: \"SQ\",\n name: \"IlluminatorTypeCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0048,0102)\": {\n tag: \"(0048,0102)\",\n vr: \"DS\",\n name: \"ImageOrientationSlide\",\n vm: \"6\",\n version: \"DICOM\"\n },\n \"(0048,0105)\": {\n tag: \"(0048,0105)\",\n vr: \"SQ\",\n name: \"OpticalPathSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0048,0106)\": {\n tag: \"(0048,0106)\",\n vr: \"SH\",\n name: \"OpticalPathIdentifier\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0048,0107)\": {\n tag: \"(0048,0107)\",\n vr: \"ST\",\n name: \"OpticalPathDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0048,0108)\": {\n tag: \"(0048,0108)\",\n vr: \"SQ\",\n name: \"IlluminationColorCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0048,0110)\": {\n tag: \"(0048,0110)\",\n vr: \"SQ\",\n name: \"SpecimenReferenceSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0048,0111)\": {\n tag: \"(0048,0111)\",\n vr: \"DS\",\n name: \"CondenserLensPower\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0048,0112)\": {\n tag: \"(0048,0112)\",\n vr: \"DS\",\n name: \"ObjectiveLensPower\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0048,0113)\": {\n tag: \"(0048,0113)\",\n vr: \"DS\",\n name: \"ObjectiveLensNumericalAperture\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0048,0120)\": {\n tag: \"(0048,0120)\",\n vr: \"SQ\",\n name: \"PaletteColorLookupTableSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0048,0200)\": {\n tag: \"(0048,0200)\",\n vr: \"SQ\",\n name: \"ReferencedImageNavigationSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0048,0201)\": {\n tag: \"(0048,0201)\",\n vr: \"US\",\n name: \"TopLeftHandCornerOfLocalizerArea\",\n vm: \"2\",\n version: \"DICOM\"\n },\n \"(0048,0202)\": {\n tag: \"(0048,0202)\",\n vr: \"US\",\n name: \"BottomRightHandCornerOfLocalizerArea\",\n vm: \"2\",\n version: \"DICOM\"\n },\n \"(0048,0207)\": {\n tag: \"(0048,0207)\",\n vr: \"SQ\",\n name: \"OpticalPathIdentificationSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0048,021A)\": {\n tag: \"(0048,021A)\",\n vr: \"SQ\",\n name: \"PlanePositionSlideSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0048,021E)\": {\n tag: \"(0048,021E)\",\n vr: \"SL\",\n name: \"ColumnPositionInTotalImagePixelMatrix\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0048,021F)\": {\n tag: \"(0048,021F)\",\n vr: \"SL\",\n name: \"RowPositionInTotalImagePixelMatrix\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0048,0301)\": {\n tag: \"(0048,0301)\",\n vr: \"CS\",\n name: \"PixelOriginInterpretation\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0048,0302)\": {\n tag: \"(0048,0302)\",\n vr: \"UL\",\n name: \"NumberOfOpticalPaths\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0048,0303)\": {\n tag: \"(0048,0303)\",\n vr: \"UL\",\n name: \"TotalPixelMatrixFocalPlanes\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0050,0004)\": {\n tag: \"(0050,0004)\",\n vr: \"CS\",\n name: \"CalibrationImage\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0050,0010)\": {\n tag: \"(0050,0010)\",\n vr: \"SQ\",\n name: \"DeviceSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0050,0012)\": {\n tag: \"(0050,0012)\",\n vr: \"SQ\",\n name: \"ContainerComponentTypeCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0050,0013)\": {\n tag: \"(0050,0013)\",\n vr: \"FD\",\n name: \"ContainerComponentThickness\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0050,0014)\": {\n tag: \"(0050,0014)\",\n vr: \"DS\",\n name: \"DeviceLength\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0050,0015)\": {\n tag: \"(0050,0015)\",\n vr: \"FD\",\n name: \"ContainerComponentWidth\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0050,0016)\": {\n tag: \"(0050,0016)\",\n vr: \"DS\",\n name: \"DeviceDiameter\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0050,0017)\": {\n tag: \"(0050,0017)\",\n vr: \"CS\",\n name: \"DeviceDiameterUnits\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0050,0018)\": {\n tag: \"(0050,0018)\",\n vr: \"DS\",\n name: \"DeviceVolume\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0050,0019)\": {\n tag: \"(0050,0019)\",\n vr: \"DS\",\n name: \"InterMarkerDistance\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0050,001A)\": {\n tag: \"(0050,001A)\",\n vr: \"CS\",\n name: \"ContainerComponentMaterial\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0050,001B)\": {\n tag: \"(0050,001B)\",\n vr: \"LO\",\n name: \"ContainerComponentID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0050,001C)\": {\n tag: \"(0050,001C)\",\n vr: \"FD\",\n name: \"ContainerComponentLength\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0050,001D)\": {\n tag: \"(0050,001D)\",\n vr: \"FD\",\n name: \"ContainerComponentDiameter\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0050,001E)\": {\n tag: \"(0050,001E)\",\n vr: \"LO\",\n name: \"ContainerComponentDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0050,0020)\": {\n tag: \"(0050,0020)\",\n vr: \"LO\",\n name: \"DeviceDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0050,0021)\": {\n tag: \"(0050,0021)\",\n vr: \"ST\",\n name: \"LongDeviceDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0052,0001)\": {\n tag: \"(0052,0001)\",\n vr: \"FL\",\n name: \"ContrastBolusIngredientPercentByVolume\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0052,0002)\": {\n tag: \"(0052,0002)\",\n vr: \"FD\",\n name: \"OCTFocalDistance\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0052,0003)\": {\n tag: \"(0052,0003)\",\n vr: \"FD\",\n name: \"BeamSpotSize\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0052,0004)\": {\n tag: \"(0052,0004)\",\n vr: \"FD\",\n name: \"EffectiveRefractiveIndex\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0052,0006)\": {\n tag: \"(0052,0006)\",\n vr: \"CS\",\n name: \"OCTAcquisitionDomain\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0052,0007)\": {\n tag: \"(0052,0007)\",\n vr: \"FD\",\n name: \"OCTOpticalCenterWavelength\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0052,0008)\": {\n tag: \"(0052,0008)\",\n vr: \"FD\",\n name: \"AxialResolution\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0052,0009)\": {\n tag: \"(0052,0009)\",\n vr: \"FD\",\n name: \"RangingDepth\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0052,0011)\": {\n tag: \"(0052,0011)\",\n vr: \"FD\",\n name: \"ALineRate\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0052,0012)\": {\n tag: \"(0052,0012)\",\n vr: \"US\",\n name: \"ALinesPerFrame\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0052,0013)\": {\n tag: \"(0052,0013)\",\n vr: \"FD\",\n name: \"CatheterRotationalRate\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0052,0014)\": {\n tag: \"(0052,0014)\",\n vr: \"FD\",\n name: \"ALinePixelSpacing\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0052,0016)\": {\n tag: \"(0052,0016)\",\n vr: \"SQ\",\n name: \"ModeOfPercutaneousAccessSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0052,0025)\": {\n tag: \"(0052,0025)\",\n vr: \"SQ\",\n name: \"IntravascularOCTFrameTypeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0052,0026)\": {\n tag: \"(0052,0026)\",\n vr: \"CS\",\n name: \"OCTZOffsetApplied\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0052,0027)\": {\n tag: \"(0052,0027)\",\n vr: \"SQ\",\n name: \"IntravascularFrameContentSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0052,0028)\": {\n tag: \"(0052,0028)\",\n vr: \"FD\",\n name: \"IntravascularLongitudinalDistance\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0052,0029)\": {\n tag: \"(0052,0029)\",\n vr: \"SQ\",\n name: \"IntravascularOCTFrameContentSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0052,0030)\": {\n tag: \"(0052,0030)\",\n vr: \"SS\",\n name: \"OCTZOffsetCorrection\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0052,0031)\": {\n tag: \"(0052,0031)\",\n vr: \"CS\",\n name: \"CatheterDirectionOfRotation\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0052,0033)\": {\n tag: \"(0052,0033)\",\n vr: \"FD\",\n name: \"SeamLineLocation\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0052,0034)\": {\n tag: \"(0052,0034)\",\n vr: \"FD\",\n name: \"FirstALineLocation\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0052,0036)\": {\n tag: \"(0052,0036)\",\n vr: \"US\",\n name: \"SeamLineIndex\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0052,0038)\": {\n tag: \"(0052,0038)\",\n vr: \"US\",\n name: \"NumberOfPaddedALines\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0052,0039)\": {\n tag: \"(0052,0039)\",\n vr: \"CS\",\n name: \"InterpolationType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0052,003A)\": {\n tag: \"(0052,003A)\",\n vr: \"CS\",\n name: \"RefractiveIndexApplied\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0054,0010)\": {\n tag: \"(0054,0010)\",\n vr: \"US\",\n name: \"EnergyWindowVector\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0054,0011)\": {\n tag: \"(0054,0011)\",\n vr: \"US\",\n name: \"NumberOfEnergyWindows\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0054,0012)\": {\n tag: \"(0054,0012)\",\n vr: \"SQ\",\n name: \"EnergyWindowInformationSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0054,0013)\": {\n tag: \"(0054,0013)\",\n vr: \"SQ\",\n name: \"EnergyWindowRangeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0054,0014)\": {\n tag: \"(0054,0014)\",\n vr: \"DS\",\n name: \"EnergyWindowLowerLimit\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0054,0015)\": {\n tag: \"(0054,0015)\",\n vr: \"DS\",\n name: \"EnergyWindowUpperLimit\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0054,0016)\": {\n tag: \"(0054,0016)\",\n vr: \"SQ\",\n name: \"RadiopharmaceuticalInformationSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0054,0017)\": {\n tag: \"(0054,0017)\",\n vr: \"IS\",\n name: \"ResidualSyringeCounts\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0054,0018)\": {\n tag: \"(0054,0018)\",\n vr: \"SH\",\n name: \"EnergyWindowName\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0054,0020)\": {\n tag: \"(0054,0020)\",\n vr: \"US\",\n name: \"DetectorVector\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0054,0021)\": {\n tag: \"(0054,0021)\",\n vr: \"US\",\n name: \"NumberOfDetectors\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0054,0022)\": {\n tag: \"(0054,0022)\",\n vr: \"SQ\",\n name: \"DetectorInformationSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0054,0030)\": {\n tag: \"(0054,0030)\",\n vr: \"US\",\n name: \"PhaseVector\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0054,0031)\": {\n tag: \"(0054,0031)\",\n vr: \"US\",\n name: \"NumberOfPhases\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0054,0032)\": {\n tag: \"(0054,0032)\",\n vr: \"SQ\",\n name: \"PhaseInformationSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0054,0033)\": {\n tag: \"(0054,0033)\",\n vr: \"US\",\n name: \"NumberOfFramesInPhase\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0054,0036)\": {\n tag: \"(0054,0036)\",\n vr: \"IS\",\n name: \"PhaseDelay\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0054,0038)\": {\n tag: \"(0054,0038)\",\n vr: \"IS\",\n name: \"PauseBetweenFrames\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0054,0039)\": {\n tag: \"(0054,0039)\",\n vr: \"CS\",\n name: \"PhaseDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0054,0050)\": {\n tag: \"(0054,0050)\",\n vr: \"US\",\n name: \"RotationVector\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0054,0051)\": {\n tag: \"(0054,0051)\",\n vr: \"US\",\n name: \"NumberOfRotations\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0054,0052)\": {\n tag: \"(0054,0052)\",\n vr: \"SQ\",\n name: \"RotationInformationSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0054,0053)\": {\n tag: \"(0054,0053)\",\n vr: \"US\",\n name: \"NumberOfFramesInRotation\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0054,0060)\": {\n tag: \"(0054,0060)\",\n vr: \"US\",\n name: \"RRIntervalVector\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0054,0061)\": {\n tag: \"(0054,0061)\",\n vr: \"US\",\n name: \"NumberOfRRIntervals\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0054,0062)\": {\n tag: \"(0054,0062)\",\n vr: \"SQ\",\n name: \"GatedInformationSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0054,0063)\": {\n tag: \"(0054,0063)\",\n vr: \"SQ\",\n name: \"DataInformationSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0054,0070)\": {\n tag: \"(0054,0070)\",\n vr: \"US\",\n name: \"TimeSlotVector\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0054,0071)\": {\n tag: \"(0054,0071)\",\n vr: \"US\",\n name: \"NumberOfTimeSlots\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0054,0072)\": {\n tag: \"(0054,0072)\",\n vr: \"SQ\",\n name: \"TimeSlotInformationSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0054,0073)\": {\n tag: \"(0054,0073)\",\n vr: \"DS\",\n name: \"TimeSlotTime\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0054,0080)\": {\n tag: \"(0054,0080)\",\n vr: \"US\",\n name: \"SliceVector\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0054,0081)\": {\n tag: \"(0054,0081)\",\n vr: \"US\",\n name: \"NumberOfSlices\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0054,0090)\": {\n tag: \"(0054,0090)\",\n vr: \"US\",\n name: \"AngularViewVector\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0054,0100)\": {\n tag: \"(0054,0100)\",\n vr: \"US\",\n name: \"TimeSliceVector\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0054,0101)\": {\n tag: \"(0054,0101)\",\n vr: \"US\",\n name: \"NumberOfTimeSlices\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0054,0200)\": {\n tag: \"(0054,0200)\",\n vr: \"DS\",\n name: \"StartAngle\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0054,0202)\": {\n tag: \"(0054,0202)\",\n vr: \"CS\",\n name: \"TypeOfDetectorMotion\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0054,0210)\": {\n tag: \"(0054,0210)\",\n vr: \"IS\",\n name: \"TriggerVector\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0054,0211)\": {\n tag: \"(0054,0211)\",\n vr: \"US\",\n name: \"NumberOfTriggersInPhase\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0054,0220)\": {\n tag: \"(0054,0220)\",\n vr: \"SQ\",\n name: \"ViewCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0054,0222)\": {\n tag: \"(0054,0222)\",\n vr: \"SQ\",\n name: \"ViewModifierCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0054,0300)\": {\n tag: \"(0054,0300)\",\n vr: \"SQ\",\n name: \"RadionuclideCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0054,0302)\": {\n tag: \"(0054,0302)\",\n vr: \"SQ\",\n name: \"AdministrationRouteCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0054,0304)\": {\n tag: \"(0054,0304)\",\n vr: \"SQ\",\n name: \"RadiopharmaceuticalCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0054,0306)\": {\n tag: \"(0054,0306)\",\n vr: \"SQ\",\n name: \"CalibrationDataSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0054,0308)\": {\n tag: \"(0054,0308)\",\n vr: \"US\",\n name: \"EnergyWindowNumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0054,0400)\": {\n tag: \"(0054,0400)\",\n vr: \"SH\",\n name: \"ImageID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0054,0410)\": {\n tag: \"(0054,0410)\",\n vr: \"SQ\",\n name: \"PatientOrientationCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0054,0412)\": {\n tag: \"(0054,0412)\",\n vr: \"SQ\",\n name: \"PatientOrientationModifierCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0054,0414)\": {\n tag: \"(0054,0414)\",\n vr: \"SQ\",\n name: \"PatientGantryRelationshipCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0054,0500)\": {\n tag: \"(0054,0500)\",\n vr: \"CS\",\n name: \"SliceProgressionDirection\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0054,0501)\": {\n tag: \"(0054,0501)\",\n vr: \"CS\",\n name: \"ScanProgressionDirection\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0054,1000)\": {\n tag: \"(0054,1000)\",\n vr: \"CS\",\n name: \"SeriesType\",\n vm: \"2\",\n version: \"DICOM\"\n },\n \"(0054,1001)\": {\n tag: \"(0054,1001)\",\n vr: \"CS\",\n name: \"Units\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0054,1002)\": {\n tag: \"(0054,1002)\",\n vr: \"CS\",\n name: \"CountsSource\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0054,1004)\": {\n tag: \"(0054,1004)\",\n vr: \"CS\",\n name: \"ReprojectionMethod\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0054,1006)\": {\n tag: \"(0054,1006)\",\n vr: \"CS\",\n name: \"SUVType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0054,1100)\": {\n tag: \"(0054,1100)\",\n vr: \"CS\",\n name: \"RandomsCorrectionMethod\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0054,1101)\": {\n tag: \"(0054,1101)\",\n vr: \"LO\",\n name: \"AttenuationCorrectionMethod\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0054,1102)\": {\n tag: \"(0054,1102)\",\n vr: \"CS\",\n name: \"DecayCorrection\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0054,1103)\": {\n tag: \"(0054,1103)\",\n vr: \"LO\",\n name: \"ReconstructionMethod\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0054,1104)\": {\n tag: \"(0054,1104)\",\n vr: \"LO\",\n name: \"DetectorLinesOfResponseUsed\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0054,1105)\": {\n tag: \"(0054,1105)\",\n vr: \"LO\",\n name: \"ScatterCorrectionMethod\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0054,1200)\": {\n tag: \"(0054,1200)\",\n vr: \"DS\",\n name: \"AxialAcceptance\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0054,1201)\": {\n tag: \"(0054,1201)\",\n vr: \"IS\",\n name: \"AxialMash\",\n vm: \"2\",\n version: \"DICOM\"\n },\n \"(0054,1202)\": {\n tag: \"(0054,1202)\",\n vr: \"IS\",\n name: \"TransverseMash\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0054,1203)\": {\n tag: \"(0054,1203)\",\n vr: \"DS\",\n name: \"DetectorElementSize\",\n vm: \"2\",\n version: \"DICOM\"\n },\n \"(0054,1210)\": {\n tag: \"(0054,1210)\",\n vr: \"DS\",\n name: \"CoincidenceWindowWidth\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0054,1220)\": {\n tag: \"(0054,1220)\",\n vr: \"CS\",\n name: \"SecondaryCountsType\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0054,1300)\": {\n tag: \"(0054,1300)\",\n vr: \"DS\",\n name: \"FrameReferenceTime\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0054,1310)\": {\n tag: \"(0054,1310)\",\n vr: \"IS\",\n name: \"PrimaryPromptsCountsAccumulated\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0054,1311)\": {\n tag: \"(0054,1311)\",\n vr: \"IS\",\n name: \"SecondaryCountsAccumulated\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0054,1320)\": {\n tag: \"(0054,1320)\",\n vr: \"DS\",\n name: \"SliceSensitivityFactor\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0054,1321)\": {\n tag: \"(0054,1321)\",\n vr: \"DS\",\n name: \"DecayFactor\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0054,1322)\": {\n tag: \"(0054,1322)\",\n vr: \"DS\",\n name: \"DoseCalibrationFactor\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0054,1323)\": {\n tag: \"(0054,1323)\",\n vr: \"DS\",\n name: \"ScatterFractionFactor\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0054,1324)\": {\n tag: \"(0054,1324)\",\n vr: \"DS\",\n name: \"DeadTimeFactor\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0054,1330)\": {\n tag: \"(0054,1330)\",\n vr: \"US\",\n name: \"ImageIndex\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0060,3000)\": {\n tag: \"(0060,3000)\",\n vr: \"SQ\",\n name: \"HistogramSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0060,3002)\": {\n tag: \"(0060,3002)\",\n vr: \"US\",\n name: \"HistogramNumberOfBins\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0060,3004)\": {\n tag: \"(0060,3004)\",\n vr: \"xs\",\n name: \"HistogramFirstBinValue\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0060,3006)\": {\n tag: \"(0060,3006)\",\n vr: \"xs\",\n name: \"HistogramLastBinValue\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0060,3008)\": {\n tag: \"(0060,3008)\",\n vr: \"US\",\n name: \"HistogramBinWidth\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0060,3010)\": {\n tag: \"(0060,3010)\",\n vr: \"LO\",\n name: \"HistogramExplanation\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0060,3020)\": {\n tag: \"(0060,3020)\",\n vr: \"UL\",\n name: \"HistogramData\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0062,0001)\": {\n tag: \"(0062,0001)\",\n vr: \"CS\",\n name: \"SegmentationType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0062,0002)\": {\n tag: \"(0062,0002)\",\n vr: \"SQ\",\n name: \"SegmentSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0062,0003)\": {\n tag: \"(0062,0003)\",\n vr: \"SQ\",\n name: \"SegmentedPropertyCategoryCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0062,0004)\": {\n tag: \"(0062,0004)\",\n vr: \"US\",\n name: \"SegmentNumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0062,0005)\": {\n tag: \"(0062,0005)\",\n vr: \"LO\",\n name: \"SegmentLabel\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0062,0006)\": {\n tag: \"(0062,0006)\",\n vr: \"ST\",\n name: \"SegmentDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0062,0007)\": {\n tag: \"(0062,0007)\",\n vr: \"SQ\",\n name: \"SegmentationAlgorithmIdentificationSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0062,0008)\": {\n tag: \"(0062,0008)\",\n vr: \"CS\",\n name: \"SegmentAlgorithmType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0062,0009)\": {\n tag: \"(0062,0009)\",\n vr: \"LO\",\n name: \"SegmentAlgorithmName\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0062,000A)\": {\n tag: \"(0062,000A)\",\n vr: \"SQ\",\n name: \"SegmentIdentificationSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0062,000B)\": {\n tag: \"(0062,000B)\",\n vr: \"US\",\n name: \"ReferencedSegmentNumber\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0062,000C)\": {\n tag: \"(0062,000C)\",\n vr: \"US\",\n name: \"RecommendedDisplayGrayscaleValue\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0062,000D)\": {\n tag: \"(0062,000D)\",\n vr: \"US\",\n name: \"RecommendedDisplayCIELabValue\",\n vm: \"3\",\n version: \"DICOM\"\n },\n \"(0062,000E)\": {\n tag: \"(0062,000E)\",\n vr: \"US\",\n name: \"MaximumFractionalValue\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0062,000F)\": {\n tag: \"(0062,000F)\",\n vr: \"SQ\",\n name: \"SegmentedPropertyTypeCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0062,0010)\": {\n tag: \"(0062,0010)\",\n vr: \"CS\",\n name: \"SegmentationFractionalType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0062,0011)\": {\n tag: \"(0062,0011)\",\n vr: \"SQ\",\n name: \"SegmentedPropertyTypeModifierCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0062,0012)\": {\n tag: \"(0062,0012)\",\n vr: \"SQ\",\n name: \"UsedSegmentsSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0062,0013)\": {\n tag: \"(0062,0013)\",\n vr: \"CS\",\n name: \"SegmentsOverlap\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0062,0020)\": {\n tag: \"(0062,0020)\",\n vr: \"UT\",\n name: \"TrackingID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0062,0021)\": {\n tag: \"(0062,0021)\",\n vr: \"UI\",\n name: \"TrackingUID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0064,0002)\": {\n tag: \"(0064,0002)\",\n vr: \"SQ\",\n name: \"DeformableRegistrationSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0064,0003)\": {\n tag: \"(0064,0003)\",\n vr: \"UI\",\n name: \"SourceFrameOfReferenceUID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0064,0005)\": {\n tag: \"(0064,0005)\",\n vr: \"SQ\",\n name: \"DeformableRegistrationGridSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0064,0007)\": {\n tag: \"(0064,0007)\",\n vr: \"UL\",\n name: \"GridDimensions\",\n vm: \"3\",\n version: \"DICOM\"\n },\n \"(0064,0008)\": {\n tag: \"(0064,0008)\",\n vr: \"FD\",\n name: \"GridResolution\",\n vm: \"3\",\n version: \"DICOM\"\n },\n \"(0064,0009)\": {\n tag: \"(0064,0009)\",\n vr: \"OF\",\n name: \"VectorGridData\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0064,000F)\": {\n tag: \"(0064,000F)\",\n vr: \"SQ\",\n name: \"PreDeformationMatrixRegistrationSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0064,0010)\": {\n tag: \"(0064,0010)\",\n vr: \"SQ\",\n name: \"PostDeformationMatrixRegistrationSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0066,0001)\": {\n tag: \"(0066,0001)\",\n vr: \"UL\",\n name: \"NumberOfSurfaces\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0066,0002)\": {\n tag: \"(0066,0002)\",\n vr: \"SQ\",\n name: \"SurfaceSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0066,0003)\": {\n tag: \"(0066,0003)\",\n vr: \"UL\",\n name: \"SurfaceNumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0066,0004)\": {\n tag: \"(0066,0004)\",\n vr: \"LT\",\n name: \"SurfaceComments\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0066,0009)\": {\n tag: \"(0066,0009)\",\n vr: \"CS\",\n name: \"SurfaceProcessing\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0066,000A)\": {\n tag: \"(0066,000A)\",\n vr: \"FL\",\n name: \"SurfaceProcessingRatio\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0066,000B)\": {\n tag: \"(0066,000B)\",\n vr: \"LO\",\n name: \"SurfaceProcessingDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0066,000C)\": {\n tag: \"(0066,000C)\",\n vr: \"FL\",\n name: \"RecommendedPresentationOpacity\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0066,000D)\": {\n tag: \"(0066,000D)\",\n vr: \"CS\",\n name: \"RecommendedPresentationType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0066,000E)\": {\n tag: \"(0066,000E)\",\n vr: \"CS\",\n name: \"FiniteVolume\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0066,0010)\": {\n tag: \"(0066,0010)\",\n vr: \"CS\",\n name: \"Manifold\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0066,0011)\": {\n tag: \"(0066,0011)\",\n vr: \"SQ\",\n name: \"SurfacePointsSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0066,0012)\": {\n tag: \"(0066,0012)\",\n vr: \"SQ\",\n name: \"SurfacePointsNormalsSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0066,0013)\": {\n tag: \"(0066,0013)\",\n vr: \"SQ\",\n name: \"SurfaceMeshPrimitivesSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0066,0015)\": {\n tag: \"(0066,0015)\",\n vr: \"UL\",\n name: \"NumberOfSurfacePoints\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0066,0016)\": {\n tag: \"(0066,0016)\",\n vr: \"OF\",\n name: \"PointCoordinatesData\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0066,0017)\": {\n tag: \"(0066,0017)\",\n vr: \"FL\",\n name: \"PointPositionAccuracy\",\n vm: \"3\",\n version: \"DICOM\"\n },\n \"(0066,0018)\": {\n tag: \"(0066,0018)\",\n vr: \"FL\",\n name: \"MeanPointDistance\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0066,0019)\": {\n tag: \"(0066,0019)\",\n vr: \"FL\",\n name: \"MaximumPointDistance\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0066,001A)\": {\n tag: \"(0066,001A)\",\n vr: \"FL\",\n name: \"PointsBoundingBoxCoordinates\",\n vm: \"6\",\n version: \"DICOM\"\n },\n \"(0066,001B)\": {\n tag: \"(0066,001B)\",\n vr: \"FL\",\n name: \"AxisOfRotation\",\n vm: \"3\",\n version: \"DICOM\"\n },\n \"(0066,001C)\": {\n tag: \"(0066,001C)\",\n vr: \"FL\",\n name: \"CenterOfRotation\",\n vm: \"3\",\n version: \"DICOM\"\n },\n \"(0066,001E)\": {\n tag: \"(0066,001E)\",\n vr: \"UL\",\n name: \"NumberOfVectors\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0066,001F)\": {\n tag: \"(0066,001F)\",\n vr: \"US\",\n name: \"VectorDimensionality\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0066,0020)\": {\n tag: \"(0066,0020)\",\n vr: \"FL\",\n name: \"VectorAccuracy\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0066,0021)\": {\n tag: \"(0066,0021)\",\n vr: \"OF\",\n name: \"VectorCoordinateData\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0066,0023)\": {\n tag: \"(0066,0023)\",\n vr: \"OW\",\n name: \"TrianglePointIndexList\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0066,0024)\": {\n tag: \"(0066,0024)\",\n vr: \"OW\",\n name: \"EdgePointIndexList\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0066,0025)\": {\n tag: \"(0066,0025)\",\n vr: \"OW\",\n name: \"VertexPointIndexList\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0066,0026)\": {\n tag: \"(0066,0026)\",\n vr: \"SQ\",\n name: \"TriangleStripSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0066,0027)\": {\n tag: \"(0066,0027)\",\n vr: \"SQ\",\n name: \"TriangleFanSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0066,0028)\": {\n tag: \"(0066,0028)\",\n vr: \"SQ\",\n name: \"LineSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0066,0029)\": {\n tag: \"(0066,0029)\",\n vr: \"OW\",\n name: \"PrimitivePointIndexList\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0066,002A)\": {\n tag: \"(0066,002A)\",\n vr: \"UL\",\n name: \"SurfaceCount\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0066,002B)\": {\n tag: \"(0066,002B)\",\n vr: \"SQ\",\n name: \"ReferencedSurfaceSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0066,002C)\": {\n tag: \"(0066,002C)\",\n vr: \"UL\",\n name: \"ReferencedSurfaceNumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0066,002D)\": {\n tag: \"(0066,002D)\",\n vr: \"SQ\",\n name: \"SegmentSurfaceGenerationAlgorithmIdentificationSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0066,002E)\": {\n tag: \"(0066,002E)\",\n vr: \"SQ\",\n name: \"SegmentSurfaceSourceInstanceSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0066,002F)\": {\n tag: \"(0066,002F)\",\n vr: \"SQ\",\n name: \"AlgorithmFamilyCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0066,0030)\": {\n tag: \"(0066,0030)\",\n vr: \"SQ\",\n name: \"AlgorithmNameCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0066,0031)\": {\n tag: \"(0066,0031)\",\n vr: \"LO\",\n name: \"AlgorithmVersion\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0066,0032)\": {\n tag: \"(0066,0032)\",\n vr: \"LT\",\n name: \"AlgorithmParameters\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0066,0034)\": {\n tag: \"(0066,0034)\",\n vr: \"SQ\",\n name: \"FacetSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0066,0035)\": {\n tag: \"(0066,0035)\",\n vr: \"SQ\",\n name: \"SurfaceProcessingAlgorithmIdentificationSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0066,0036)\": {\n tag: \"(0066,0036)\",\n vr: \"LO\",\n name: \"AlgorithmName\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0066,0037)\": {\n tag: \"(0066,0037)\",\n vr: \"FL\",\n name: \"RecommendedPointRadius\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0066,0038)\": {\n tag: \"(0066,0038)\",\n vr: \"FL\",\n name: \"RecommendedLineThickness\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0066,0040)\": {\n tag: \"(0066,0040)\",\n vr: \"UL\",\n name: \"LongPrimitivePointIndexList\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0066,0041)\": {\n tag: \"(0066,0041)\",\n vr: \"UL\",\n name: \"LongTrianglePointIndexList\",\n vm: \"3-3n\",\n version: \"DICOM\"\n },\n \"(0066,0042)\": {\n tag: \"(0066,0042)\",\n vr: \"UL\",\n name: \"LongEdgePointIndexList\",\n vm: \"2-2n\",\n version: \"DICOM\"\n },\n \"(0066,0043)\": {\n tag: \"(0066,0043)\",\n vr: \"UL\",\n name: \"LongVertexPointIndexList\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0066,0101)\": {\n tag: \"(0066,0101)\",\n vr: \"SQ\",\n name: \"TrackSetSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0066,0102)\": {\n tag: \"(0066,0102)\",\n vr: \"SQ\",\n name: \"TrackSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0066,0103)\": {\n tag: \"(0066,0103)\",\n vr: \"OW\",\n name: \"RecommendedDisplayCIELabValueList\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0066,0104)\": {\n tag: \"(0066,0104)\",\n vr: \"SQ\",\n name: \"TrackingAlgorithmIdentificationSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0066,0105)\": {\n tag: \"(0066,0105)\",\n vr: \"UL\",\n name: \"TrackSetNumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0066,0106)\": {\n tag: \"(0066,0106)\",\n vr: \"LO\",\n name: \"TrackSetLabel\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0066,0107)\": {\n tag: \"(0066,0107)\",\n vr: \"UT\",\n name: \"TrackSetDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0066,0108)\": {\n tag: \"(0066,0108)\",\n vr: \"SQ\",\n name: \"TrackSetAnatomicalTypeCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0066,0121)\": {\n tag: \"(0066,0121)\",\n vr: \"SQ\",\n name: \"MeasurementsSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0066,0124)\": {\n tag: \"(0066,0124)\",\n vr: \"SQ\",\n name: \"TrackSetStatisticsSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0066,0125)\": {\n tag: \"(0066,0125)\",\n vr: \"OF\",\n name: \"FloatingPointValues\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0066,0129)\": {\n tag: \"(0066,0129)\",\n vr: \"OL\",\n name: \"TrackPointIndexList\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0066,0130)\": {\n tag: \"(0066,0130)\",\n vr: \"SQ\",\n name: \"TrackStatisticsSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0066,0132)\": {\n tag: \"(0066,0132)\",\n vr: \"SQ\",\n name: \"MeasurementValuesSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0066,0133)\": {\n tag: \"(0066,0133)\",\n vr: \"SQ\",\n name: \"DiffusionAcquisitionCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0066,0134)\": {\n tag: \"(0066,0134)\",\n vr: \"SQ\",\n name: \"DiffusionModelCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0068,6210)\": {\n tag: \"(0068,6210)\",\n vr: \"LO\",\n name: \"ImplantSize\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0068,6221)\": {\n tag: \"(0068,6221)\",\n vr: \"LO\",\n name: \"ImplantTemplateVersion\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0068,6222)\": {\n tag: \"(0068,6222)\",\n vr: \"SQ\",\n name: \"ReplacedImplantTemplateSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0068,6223)\": {\n tag: \"(0068,6223)\",\n vr: \"CS\",\n name: \"ImplantType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0068,6224)\": {\n tag: \"(0068,6224)\",\n vr: \"SQ\",\n name: \"DerivationImplantTemplateSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0068,6225)\": {\n tag: \"(0068,6225)\",\n vr: \"SQ\",\n name: \"OriginalImplantTemplateSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0068,6226)\": {\n tag: \"(0068,6226)\",\n vr: \"DT\",\n name: \"EffectiveDateTime\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0068,6230)\": {\n tag: \"(0068,6230)\",\n vr: \"SQ\",\n name: \"ImplantTargetAnatomySequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0068,6260)\": {\n tag: \"(0068,6260)\",\n vr: \"SQ\",\n name: \"InformationFromManufacturerSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0068,6265)\": {\n tag: \"(0068,6265)\",\n vr: \"SQ\",\n name: \"NotificationFromManufacturerSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0068,6270)\": {\n tag: \"(0068,6270)\",\n vr: \"DT\",\n name: \"InformationIssueDateTime\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0068,6280)\": {\n tag: \"(0068,6280)\",\n vr: \"ST\",\n name: \"InformationSummary\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0068,62A0)\": {\n tag: \"(0068,62A0)\",\n vr: \"SQ\",\n name: \"ImplantRegulatoryDisapprovalCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0068,62A5)\": {\n tag: \"(0068,62A5)\",\n vr: \"FD\",\n name: \"OverallTemplateSpatialTolerance\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0068,62C0)\": {\n tag: \"(0068,62C0)\",\n vr: \"SQ\",\n name: \"HPGLDocumentSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0068,62D0)\": {\n tag: \"(0068,62D0)\",\n vr: \"US\",\n name: \"HPGLDocumentID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0068,62D5)\": {\n tag: \"(0068,62D5)\",\n vr: \"LO\",\n name: \"HPGLDocumentLabel\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0068,62E0)\": {\n tag: \"(0068,62E0)\",\n vr: \"SQ\",\n name: \"ViewOrientationCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0068,62F0)\": {\n tag: \"(0068,62F0)\",\n vr: \"FD\",\n name: \"ViewOrientationModifier\",\n vm: \"9\",\n version: \"DICOM\"\n },\n \"(0068,62F2)\": {\n tag: \"(0068,62F2)\",\n vr: \"FD\",\n name: \"HPGLDocumentScaling\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0068,6300)\": {\n tag: \"(0068,6300)\",\n vr: \"OB\",\n name: \"HPGLDocument\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0068,6310)\": {\n tag: \"(0068,6310)\",\n vr: \"US\",\n name: \"HPGLContourPenNumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0068,6320)\": {\n tag: \"(0068,6320)\",\n vr: \"SQ\",\n name: \"HPGLPenSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0068,6330)\": {\n tag: \"(0068,6330)\",\n vr: \"US\",\n name: \"HPGLPenNumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0068,6340)\": {\n tag: \"(0068,6340)\",\n vr: \"LO\",\n name: \"HPGLPenLabel\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0068,6345)\": {\n tag: \"(0068,6345)\",\n vr: \"ST\",\n name: \"HPGLPenDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0068,6346)\": {\n tag: \"(0068,6346)\",\n vr: \"FD\",\n name: \"RecommendedRotationPoint\",\n vm: \"2\",\n version: \"DICOM\"\n },\n \"(0068,6347)\": {\n tag: \"(0068,6347)\",\n vr: \"FD\",\n name: \"BoundingRectangle\",\n vm: \"4\",\n version: \"DICOM\"\n },\n \"(0068,6350)\": {\n tag: \"(0068,6350)\",\n vr: \"US\",\n name: \"ImplantTemplate3DModelSurfaceNumber\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0068,6360)\": {\n tag: \"(0068,6360)\",\n vr: \"SQ\",\n name: \"SurfaceModelDescriptionSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0068,6380)\": {\n tag: \"(0068,6380)\",\n vr: \"LO\",\n name: \"SurfaceModelLabel\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0068,6390)\": {\n tag: \"(0068,6390)\",\n vr: \"FD\",\n name: \"SurfaceModelScalingFactor\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0068,63A0)\": {\n tag: \"(0068,63A0)\",\n vr: \"SQ\",\n name: \"MaterialsCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0068,63A4)\": {\n tag: \"(0068,63A4)\",\n vr: \"SQ\",\n name: \"CoatingMaterialsCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0068,63A8)\": {\n tag: \"(0068,63A8)\",\n vr: \"SQ\",\n name: \"ImplantTypeCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0068,63AC)\": {\n tag: \"(0068,63AC)\",\n vr: \"SQ\",\n name: \"FixationMethodCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0068,63B0)\": {\n tag: \"(0068,63B0)\",\n vr: \"SQ\",\n name: \"MatingFeatureSetsSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0068,63C0)\": {\n tag: \"(0068,63C0)\",\n vr: \"US\",\n name: \"MatingFeatureSetID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0068,63D0)\": {\n tag: \"(0068,63D0)\",\n vr: \"LO\",\n name: \"MatingFeatureSetLabel\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0068,63E0)\": {\n tag: \"(0068,63E0)\",\n vr: \"SQ\",\n name: \"MatingFeatureSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0068,63F0)\": {\n tag: \"(0068,63F0)\",\n vr: \"US\",\n name: \"MatingFeatureID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0068,6400)\": {\n tag: \"(0068,6400)\",\n vr: \"SQ\",\n name: \"MatingFeatureDegreeOfFreedomSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0068,6410)\": {\n tag: \"(0068,6410)\",\n vr: \"US\",\n name: \"DegreeOfFreedomID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0068,6420)\": {\n tag: \"(0068,6420)\",\n vr: \"CS\",\n name: \"DegreeOfFreedomType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0068,6430)\": {\n tag: \"(0068,6430)\",\n vr: \"SQ\",\n name: \"TwoDMatingFeatureCoordinatesSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0068,6440)\": {\n tag: \"(0068,6440)\",\n vr: \"US\",\n name: \"ReferencedHPGLDocumentID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0068,6450)\": {\n tag: \"(0068,6450)\",\n vr: \"FD\",\n name: \"TwoDMatingPoint\",\n vm: \"2\",\n version: \"DICOM\"\n },\n \"(0068,6460)\": {\n tag: \"(0068,6460)\",\n vr: \"FD\",\n name: \"TwoDMatingAxes\",\n vm: \"4\",\n version: \"DICOM\"\n },\n \"(0068,6470)\": {\n tag: \"(0068,6470)\",\n vr: \"SQ\",\n name: \"TwoDDegreeOfFreedomSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0068,6490)\": {\n tag: \"(0068,6490)\",\n vr: \"FD\",\n name: \"ThreeDDegreeOfFreedomAxis\",\n vm: \"3\",\n version: \"DICOM\"\n },\n \"(0068,64A0)\": {\n tag: \"(0068,64A0)\",\n vr: \"FD\",\n name: \"RangeOfFreedom\",\n vm: \"2\",\n version: \"DICOM\"\n },\n \"(0068,64C0)\": {\n tag: \"(0068,64C0)\",\n vr: \"FD\",\n name: \"ThreeDMatingPoint\",\n vm: \"3\",\n version: \"DICOM\"\n },\n \"(0068,64D0)\": {\n tag: \"(0068,64D0)\",\n vr: \"FD\",\n name: \"ThreeDMatingAxes\",\n vm: \"9\",\n version: \"DICOM\"\n },\n \"(0068,64F0)\": {\n tag: \"(0068,64F0)\",\n vr: \"FD\",\n name: \"TwoDDegreeOfFreedomAxis\",\n vm: \"3\",\n version: \"DICOM\"\n },\n \"(0068,6500)\": {\n tag: \"(0068,6500)\",\n vr: \"SQ\",\n name: \"PlanningLandmarkPointSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0068,6510)\": {\n tag: \"(0068,6510)\",\n vr: \"SQ\",\n name: \"PlanningLandmarkLineSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0068,6520)\": {\n tag: \"(0068,6520)\",\n vr: \"SQ\",\n name: \"PlanningLandmarkPlaneSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0068,6530)\": {\n tag: \"(0068,6530)\",\n vr: \"US\",\n name: \"PlanningLandmarkID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0068,6540)\": {\n tag: \"(0068,6540)\",\n vr: \"LO\",\n name: \"PlanningLandmarkDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0068,6545)\": {\n tag: \"(0068,6545)\",\n vr: \"SQ\",\n name: \"PlanningLandmarkIdentificationCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0068,6550)\": {\n tag: \"(0068,6550)\",\n vr: \"SQ\",\n name: \"TwoDPointCoordinatesSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0068,6560)\": {\n tag: \"(0068,6560)\",\n vr: \"FD\",\n name: \"TwoDPointCoordinates\",\n vm: \"2\",\n version: \"DICOM\"\n },\n \"(0068,6590)\": {\n tag: \"(0068,6590)\",\n vr: \"FD\",\n name: \"ThreeDPointCoordinates\",\n vm: \"3\",\n version: \"DICOM\"\n },\n \"(0068,65A0)\": {\n tag: \"(0068,65A0)\",\n vr: \"SQ\",\n name: \"TwoDLineCoordinatesSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0068,65B0)\": {\n tag: \"(0068,65B0)\",\n vr: \"FD\",\n name: \"TwoDLineCoordinates\",\n vm: \"4\",\n version: \"DICOM\"\n },\n \"(0068,65D0)\": {\n tag: \"(0068,65D0)\",\n vr: \"FD\",\n name: \"ThreeDLineCoordinates\",\n vm: \"6\",\n version: \"DICOM\"\n },\n \"(0068,65E0)\": {\n tag: \"(0068,65E0)\",\n vr: \"SQ\",\n name: \"TwoDPlaneCoordinatesSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0068,65F0)\": {\n tag: \"(0068,65F0)\",\n vr: \"FD\",\n name: \"TwoDPlaneIntersection\",\n vm: \"4\",\n version: \"DICOM\"\n },\n \"(0068,6610)\": {\n tag: \"(0068,6610)\",\n vr: \"FD\",\n name: \"ThreeDPlaneOrigin\",\n vm: \"3\",\n version: \"DICOM\"\n },\n \"(0068,6620)\": {\n tag: \"(0068,6620)\",\n vr: \"FD\",\n name: \"ThreeDPlaneNormal\",\n vm: \"3\",\n version: \"DICOM\"\n },\n \"(0068,7001)\": {\n tag: \"(0068,7001)\",\n vr: \"CS\",\n name: \"ModelModification\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0068,7002)\": {\n tag: \"(0068,7002)\",\n vr: \"CS\",\n name: \"ModelMirroring\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0068,7003)\": {\n tag: \"(0068,7003)\",\n vr: \"SQ\",\n name: \"ModelUsageCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0068,7004)\": {\n tag: \"(0068,7004)\",\n vr: \"UI\",\n name: \"ModelGroupUID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0068,7005)\": {\n tag: \"(0068,7005)\",\n vr: \"UR\",\n name: \"RelativeURIReferenceWithinEncapsulatedDocument\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,0001)\": {\n tag: \"(0070,0001)\",\n vr: \"SQ\",\n name: \"GraphicAnnotationSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,0002)\": {\n tag: \"(0070,0002)\",\n vr: \"CS\",\n name: \"GraphicLayer\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,0003)\": {\n tag: \"(0070,0003)\",\n vr: \"CS\",\n name: \"BoundingBoxAnnotationUnits\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,0004)\": {\n tag: \"(0070,0004)\",\n vr: \"CS\",\n name: \"AnchorPointAnnotationUnits\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,0005)\": {\n tag: \"(0070,0005)\",\n vr: \"CS\",\n name: \"GraphicAnnotationUnits\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,0006)\": {\n tag: \"(0070,0006)\",\n vr: \"ST\",\n name: \"UnformattedTextValue\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,0008)\": {\n tag: \"(0070,0008)\",\n vr: \"SQ\",\n name: \"TextObjectSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,0009)\": {\n tag: \"(0070,0009)\",\n vr: \"SQ\",\n name: \"GraphicObjectSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,0010)\": {\n tag: \"(0070,0010)\",\n vr: \"FL\",\n name: \"BoundingBoxTopLeftHandCorner\",\n vm: \"2\",\n version: \"DICOM\"\n },\n \"(0070,0011)\": {\n tag: \"(0070,0011)\",\n vr: \"FL\",\n name: \"BoundingBoxBottomRightHandCorner\",\n vm: \"2\",\n version: \"DICOM\"\n },\n \"(0070,0012)\": {\n tag: \"(0070,0012)\",\n vr: \"CS\",\n name: \"BoundingBoxTextHorizontalJustification\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,0014)\": {\n tag: \"(0070,0014)\",\n vr: \"FL\",\n name: \"AnchorPoint\",\n vm: \"2\",\n version: \"DICOM\"\n },\n \"(0070,0015)\": {\n tag: \"(0070,0015)\",\n vr: \"CS\",\n name: \"AnchorPointVisibility\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,0020)\": {\n tag: \"(0070,0020)\",\n vr: \"US\",\n name: \"GraphicDimensions\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,0021)\": {\n tag: \"(0070,0021)\",\n vr: \"US\",\n name: \"NumberOfGraphicPoints\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,0022)\": {\n tag: \"(0070,0022)\",\n vr: \"FL\",\n name: \"GraphicData\",\n vm: \"2-n\",\n version: \"DICOM\"\n },\n \"(0070,0023)\": {\n tag: \"(0070,0023)\",\n vr: \"CS\",\n name: \"GraphicType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,0024)\": {\n tag: \"(0070,0024)\",\n vr: \"CS\",\n name: \"GraphicFilled\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,0041)\": {\n tag: \"(0070,0041)\",\n vr: \"CS\",\n name: \"ImageHorizontalFlip\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,0042)\": {\n tag: \"(0070,0042)\",\n vr: \"US\",\n name: \"ImageRotation\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,0052)\": {\n tag: \"(0070,0052)\",\n vr: \"SL\",\n name: \"DisplayedAreaTopLeftHandCorner\",\n vm: \"2\",\n version: \"DICOM\"\n },\n \"(0070,0053)\": {\n tag: \"(0070,0053)\",\n vr: \"SL\",\n name: \"DisplayedAreaBottomRightHandCorner\",\n vm: \"2\",\n version: \"DICOM\"\n },\n \"(0070,005A)\": {\n tag: \"(0070,005A)\",\n vr: \"SQ\",\n name: \"DisplayedAreaSelectionSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,0060)\": {\n tag: \"(0070,0060)\",\n vr: \"SQ\",\n name: \"GraphicLayerSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,0062)\": {\n tag: \"(0070,0062)\",\n vr: \"IS\",\n name: \"GraphicLayerOrder\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,0066)\": {\n tag: \"(0070,0066)\",\n vr: \"US\",\n name: \"GraphicLayerRecommendedDisplayGrayscaleValue\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,0068)\": {\n tag: \"(0070,0068)\",\n vr: \"LO\",\n name: \"GraphicLayerDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,0080)\": {\n tag: \"(0070,0080)\",\n vr: \"CS\",\n name: \"ContentLabel\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,0081)\": {\n tag: \"(0070,0081)\",\n vr: \"LO\",\n name: \"ContentDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,0082)\": {\n tag: \"(0070,0082)\",\n vr: \"DA\",\n name: \"PresentationCreationDate\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,0083)\": {\n tag: \"(0070,0083)\",\n vr: \"TM\",\n name: \"PresentationCreationTime\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,0084)\": {\n tag: \"(0070,0084)\",\n vr: \"PN\",\n name: \"ContentCreatorName\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,0086)\": {\n tag: \"(0070,0086)\",\n vr: \"SQ\",\n name: \"ContentCreatorIdentificationCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,0087)\": {\n tag: \"(0070,0087)\",\n vr: \"SQ\",\n name: \"AlternateContentDescriptionSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,0100)\": {\n tag: \"(0070,0100)\",\n vr: \"CS\",\n name: \"PresentationSizeMode\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,0101)\": {\n tag: \"(0070,0101)\",\n vr: \"DS\",\n name: \"PresentationPixelSpacing\",\n vm: \"2\",\n version: \"DICOM\"\n },\n \"(0070,0102)\": {\n tag: \"(0070,0102)\",\n vr: \"IS\",\n name: \"PresentationPixelAspectRatio\",\n vm: \"2\",\n version: \"DICOM\"\n },\n \"(0070,0103)\": {\n tag: \"(0070,0103)\",\n vr: \"FL\",\n name: \"PresentationPixelMagnificationRatio\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,0207)\": {\n tag: \"(0070,0207)\",\n vr: \"LO\",\n name: \"GraphicGroupLabel\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,0208)\": {\n tag: \"(0070,0208)\",\n vr: \"ST\",\n name: \"GraphicGroupDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,0209)\": {\n tag: \"(0070,0209)\",\n vr: \"SQ\",\n name: \"CompoundGraphicSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,0226)\": {\n tag: \"(0070,0226)\",\n vr: \"UL\",\n name: \"CompoundGraphicInstanceID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,0227)\": {\n tag: \"(0070,0227)\",\n vr: \"LO\",\n name: \"FontName\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,0228)\": {\n tag: \"(0070,0228)\",\n vr: \"CS\",\n name: \"FontNameType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,0229)\": {\n tag: \"(0070,0229)\",\n vr: \"LO\",\n name: \"CSSFontName\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,0230)\": {\n tag: \"(0070,0230)\",\n vr: \"FD\",\n name: \"RotationAngle\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,0231)\": {\n tag: \"(0070,0231)\",\n vr: \"SQ\",\n name: \"TextStyleSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,0232)\": {\n tag: \"(0070,0232)\",\n vr: \"SQ\",\n name: \"LineStyleSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,0233)\": {\n tag: \"(0070,0233)\",\n vr: \"SQ\",\n name: \"FillStyleSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,0234)\": {\n tag: \"(0070,0234)\",\n vr: \"SQ\",\n name: \"GraphicGroupSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,0241)\": {\n tag: \"(0070,0241)\",\n vr: \"US\",\n name: \"TextColorCIELabValue\",\n vm: \"3\",\n version: \"DICOM\"\n },\n \"(0070,0242)\": {\n tag: \"(0070,0242)\",\n vr: \"CS\",\n name: \"HorizontalAlignment\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,0243)\": {\n tag: \"(0070,0243)\",\n vr: \"CS\",\n name: \"VerticalAlignment\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,0244)\": {\n tag: \"(0070,0244)\",\n vr: \"CS\",\n name: \"ShadowStyle\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,0245)\": {\n tag: \"(0070,0245)\",\n vr: \"FL\",\n name: \"ShadowOffsetX\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,0246)\": {\n tag: \"(0070,0246)\",\n vr: \"FL\",\n name: \"ShadowOffsetY\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,0247)\": {\n tag: \"(0070,0247)\",\n vr: \"US\",\n name: \"ShadowColorCIELabValue\",\n vm: \"3\",\n version: \"DICOM\"\n },\n \"(0070,0248)\": {\n tag: \"(0070,0248)\",\n vr: \"CS\",\n name: \"Underlined\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,0249)\": {\n tag: \"(0070,0249)\",\n vr: \"CS\",\n name: \"Bold\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,0250)\": {\n tag: \"(0070,0250)\",\n vr: \"CS\",\n name: \"Italic\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,0251)\": {\n tag: \"(0070,0251)\",\n vr: \"US\",\n name: \"PatternOnColorCIELabValue\",\n vm: \"3\",\n version: \"DICOM\"\n },\n \"(0070,0252)\": {\n tag: \"(0070,0252)\",\n vr: \"US\",\n name: \"PatternOffColorCIELabValue\",\n vm: \"3\",\n version: \"DICOM\"\n },\n \"(0070,0253)\": {\n tag: \"(0070,0253)\",\n vr: \"FL\",\n name: \"LineThickness\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,0254)\": {\n tag: \"(0070,0254)\",\n vr: \"CS\",\n name: \"LineDashingStyle\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,0255)\": {\n tag: \"(0070,0255)\",\n vr: \"UL\",\n name: \"LinePattern\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,0256)\": {\n tag: \"(0070,0256)\",\n vr: \"OB\",\n name: \"FillPattern\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,0257)\": {\n tag: \"(0070,0257)\",\n vr: \"CS\",\n name: \"FillMode\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,0258)\": {\n tag: \"(0070,0258)\",\n vr: \"FL\",\n name: \"ShadowOpacity\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,0261)\": {\n tag: \"(0070,0261)\",\n vr: \"FL\",\n name: \"GapLength\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,0262)\": {\n tag: \"(0070,0262)\",\n vr: \"FL\",\n name: \"DiameterOfVisibility\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,0273)\": {\n tag: \"(0070,0273)\",\n vr: \"FL\",\n name: \"RotationPoint\",\n vm: \"2\",\n version: \"DICOM\"\n },\n \"(0070,0274)\": {\n tag: \"(0070,0274)\",\n vr: \"CS\",\n name: \"TickAlignment\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,0278)\": {\n tag: \"(0070,0278)\",\n vr: \"CS\",\n name: \"ShowTickLabel\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,0279)\": {\n tag: \"(0070,0279)\",\n vr: \"CS\",\n name: \"TickLabelAlignment\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,0282)\": {\n tag: \"(0070,0282)\",\n vr: \"CS\",\n name: \"CompoundGraphicUnits\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,0284)\": {\n tag: \"(0070,0284)\",\n vr: \"FL\",\n name: \"PatternOnOpacity\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,0285)\": {\n tag: \"(0070,0285)\",\n vr: \"FL\",\n name: \"PatternOffOpacity\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,0287)\": {\n tag: \"(0070,0287)\",\n vr: \"SQ\",\n name: \"MajorTicksSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,0288)\": {\n tag: \"(0070,0288)\",\n vr: \"FL\",\n name: \"TickPosition\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,0289)\": {\n tag: \"(0070,0289)\",\n vr: \"SH\",\n name: \"TickLabel\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,0294)\": {\n tag: \"(0070,0294)\",\n vr: \"CS\",\n name: \"CompoundGraphicType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,0295)\": {\n tag: \"(0070,0295)\",\n vr: \"UL\",\n name: \"GraphicGroupID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,0306)\": {\n tag: \"(0070,0306)\",\n vr: \"CS\",\n name: \"ShapeType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,0308)\": {\n tag: \"(0070,0308)\",\n vr: \"SQ\",\n name: \"RegistrationSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,0309)\": {\n tag: \"(0070,0309)\",\n vr: \"SQ\",\n name: \"MatrixRegistrationSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,030A)\": {\n tag: \"(0070,030A)\",\n vr: \"SQ\",\n name: \"MatrixSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,030B)\": {\n tag: \"(0070,030B)\",\n vr: \"FD\",\n name: \"FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix\",\n vm: \"16\",\n version: \"DICOM\"\n },\n \"(0070,030C)\": {\n tag: \"(0070,030C)\",\n vr: \"CS\",\n name: \"FrameOfReferenceTransformationMatrixType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,030D)\": {\n tag: \"(0070,030D)\",\n vr: \"SQ\",\n name: \"RegistrationTypeCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,030F)\": {\n tag: \"(0070,030F)\",\n vr: \"ST\",\n name: \"FiducialDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,0310)\": {\n tag: \"(0070,0310)\",\n vr: \"SH\",\n name: \"FiducialIdentifier\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,0311)\": {\n tag: \"(0070,0311)\",\n vr: \"SQ\",\n name: \"FiducialIdentifierCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,0312)\": {\n tag: \"(0070,0312)\",\n vr: \"FD\",\n name: \"ContourUncertaintyRadius\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,0314)\": {\n tag: \"(0070,0314)\",\n vr: \"SQ\",\n name: \"UsedFiducialsSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,0318)\": {\n tag: \"(0070,0318)\",\n vr: \"SQ\",\n name: \"GraphicCoordinatesDataSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,031A)\": {\n tag: \"(0070,031A)\",\n vr: \"UI\",\n name: \"FiducialUID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,031B)\": {\n tag: \"(0070,031B)\",\n vr: \"UI\",\n name: \"ReferencedFiducialUID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,031C)\": {\n tag: \"(0070,031C)\",\n vr: \"SQ\",\n name: \"FiducialSetSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,031E)\": {\n tag: \"(0070,031E)\",\n vr: \"SQ\",\n name: \"FiducialSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,031F)\": {\n tag: \"(0070,031F)\",\n vr: \"SQ\",\n name: \"FiducialsPropertyCategoryCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,0401)\": {\n tag: \"(0070,0401)\",\n vr: \"US\",\n name: \"GraphicLayerRecommendedDisplayCIELabValue\",\n vm: \"3\",\n version: \"DICOM\"\n },\n \"(0070,0402)\": {\n tag: \"(0070,0402)\",\n vr: \"SQ\",\n name: \"BlendingSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,0403)\": {\n tag: \"(0070,0403)\",\n vr: \"FL\",\n name: \"RelativeOpacity\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,0404)\": {\n tag: \"(0070,0404)\",\n vr: \"SQ\",\n name: \"ReferencedSpatialRegistrationSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,0405)\": {\n tag: \"(0070,0405)\",\n vr: \"CS\",\n name: \"BlendingPosition\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,1209)\": {\n tag: \"(0070,1209)\",\n vr: \"UI\",\n name: \"VolumetricPresentationInputSetUID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,120A)\": {\n tag: \"(0070,120A)\",\n vr: \"SQ\",\n name: \"VolumetricPresentationInputSetSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,120B)\": {\n tag: \"(0070,120B)\",\n vr: \"CS\",\n name: \"GlobalCrop\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,120C)\": {\n tag: \"(0070,120C)\",\n vr: \"US\",\n name: \"GlobalCroppingSpecificationIndex\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0070,120D)\": {\n tag: \"(0070,120D)\",\n vr: \"CS\",\n name: \"RenderingMethod\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,1602)\": {\n tag: \"(0070,1602)\",\n vr: \"CS\",\n name: \"RenderProjection\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,1603)\": {\n tag: \"(0070,1603)\",\n vr: \"FD\",\n name: \"ViewpointPosition\",\n vm: \"3\",\n version: \"DICOM\"\n },\n \"(0070,1604)\": {\n tag: \"(0070,1604)\",\n vr: \"FD\",\n name: \"ViewpointLookAtPoint\",\n vm: \"3\",\n version: \"DICOM\"\n },\n \"(0070,1605)\": {\n tag: \"(0070,1605)\",\n vr: \"FD\",\n name: \"ViewpointUpDirection\",\n vm: \"3\",\n version: \"DICOM\"\n },\n \"(0070,1606)\": {\n tag: \"(0070,1606)\",\n vr: \"FD\",\n name: \"RenderFieldOfView\",\n vm: \"6\",\n version: \"DICOM\"\n },\n \"(0070,1607)\": {\n tag: \"(0070,1607)\",\n vr: \"FD\",\n name: \"SamplingStepSize\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,1701)\": {\n tag: \"(0070,1701)\",\n vr: \"CS\",\n name: \"ShadingStyle\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,1702)\": {\n tag: \"(0070,1702)\",\n vr: \"FD\",\n name: \"AmbientReflectionIntensity\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,1703)\": {\n tag: \"(0070,1703)\",\n vr: \"FD\",\n name: \"LightDirection\",\n vm: \"3\",\n version: \"DICOM\"\n },\n \"(0070,1704)\": {\n tag: \"(0070,1704)\",\n vr: \"FD\",\n name: \"DiffuseReflectionIntensity\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,1705)\": {\n tag: \"(0070,1705)\",\n vr: \"FD\",\n name: \"SpecularReflectionIntensity\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,1706)\": {\n tag: \"(0070,1706)\",\n vr: \"FD\",\n name: \"Shininess\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,1A06)\": {\n tag: \"(0070,1A06)\",\n vr: \"FD\",\n name: \"SwivelRange\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,1A07)\": {\n tag: \"(0070,1A07)\",\n vr: \"OD\",\n name: \"VolumetricCurveUpDirections\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,1A08)\": {\n tag: \"(0070,1A08)\",\n vr: \"SQ\",\n name: \"VolumeStreamSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,1A09)\": {\n tag: \"(0070,1A09)\",\n vr: \"LO\",\n name: \"RGBATransferFunctionDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,1B01)\": {\n tag: \"(0070,1B01)\",\n vr: \"SQ\",\n name: \"AdvancedBlendingSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,1B02)\": {\n tag: \"(0070,1B02)\",\n vr: \"US\",\n name: \"BlendingInputNumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,1B03)\": {\n tag: \"(0070,1B03)\",\n vr: \"SQ\",\n name: \"BlendingDisplayInputSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,1B04)\": {\n tag: \"(0070,1B04)\",\n vr: \"SQ\",\n name: \"BlendingDisplaySequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,1B06)\": {\n tag: \"(0070,1B06)\",\n vr: \"CS\",\n name: \"BlendingMode\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,1B07)\": {\n tag: \"(0070,1B07)\",\n vr: \"CS\",\n name: \"TimeSeriesBlending\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,1B08)\": {\n tag: \"(0070,1B08)\",\n vr: \"CS\",\n name: \"GeometryForDisplay\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,1B11)\": {\n tag: \"(0070,1B11)\",\n vr: \"SQ\",\n name: \"ThresholdSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,1B12)\": {\n tag: \"(0070,1B12)\",\n vr: \"SQ\",\n name: \"ThresholdValueSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,1B13)\": {\n tag: \"(0070,1B13)\",\n vr: \"CS\",\n name: \"ThresholdType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0070,1B14)\": {\n tag: \"(0070,1B14)\",\n vr: \"FD\",\n name: \"ThresholdValue\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0072,0002)\": {\n tag: \"(0072,0002)\",\n vr: \"SH\",\n name: \"HangingProtocolName\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0072,0004)\": {\n tag: \"(0072,0004)\",\n vr: \"LO\",\n name: \"HangingProtocolDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0072,0006)\": {\n tag: \"(0072,0006)\",\n vr: \"CS\",\n name: \"HangingProtocolLevel\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0072,0008)\": {\n tag: \"(0072,0008)\",\n vr: \"LO\",\n name: \"HangingProtocolCreator\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0072,000A)\": {\n tag: \"(0072,000A)\",\n vr: \"DT\",\n name: \"HangingProtocolCreationDateTime\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0072,000C)\": {\n tag: \"(0072,000C)\",\n vr: \"SQ\",\n name: \"HangingProtocolDefinitionSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0072,000E)\": {\n tag: \"(0072,000E)\",\n vr: \"SQ\",\n name: \"HangingProtocolUserIdentificationCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0072,0010)\": {\n tag: \"(0072,0010)\",\n vr: \"LO\",\n name: \"HangingProtocolUserGroupName\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0072,0012)\": {\n tag: \"(0072,0012)\",\n vr: \"SQ\",\n name: \"SourceHangingProtocolSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0072,0014)\": {\n tag: \"(0072,0014)\",\n vr: \"US\",\n name: \"NumberOfPriorsReferenced\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0072,0020)\": {\n tag: \"(0072,0020)\",\n vr: \"SQ\",\n name: \"ImageSetsSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0072,0022)\": {\n tag: \"(0072,0022)\",\n vr: \"SQ\",\n name: \"ImageSetSelectorSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0072,0024)\": {\n tag: \"(0072,0024)\",\n vr: \"CS\",\n name: \"ImageSetSelectorUsageFlag\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0072,0026)\": {\n tag: \"(0072,0026)\",\n vr: \"AT\",\n name: \"SelectorAttribute\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0072,0028)\": {\n tag: \"(0072,0028)\",\n vr: \"US\",\n name: \"SelectorValueNumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0072,0030)\": {\n tag: \"(0072,0030)\",\n vr: \"SQ\",\n name: \"TimeBasedImageSetsSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0072,0032)\": {\n tag: \"(0072,0032)\",\n vr: \"US\",\n name: \"ImageSetNumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0072,0034)\": {\n tag: \"(0072,0034)\",\n vr: \"CS\",\n name: \"ImageSetSelectorCategory\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0072,0038)\": {\n tag: \"(0072,0038)\",\n vr: \"US\",\n name: \"RelativeTime\",\n vm: \"2\",\n version: \"DICOM\"\n },\n \"(0072,003A)\": {\n tag: \"(0072,003A)\",\n vr: \"CS\",\n name: \"RelativeTimeUnits\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0072,003C)\": {\n tag: \"(0072,003C)\",\n vr: \"SS\",\n name: \"AbstractPriorValue\",\n vm: \"2\",\n version: \"DICOM\"\n },\n \"(0072,003E)\": {\n tag: \"(0072,003E)\",\n vr: \"SQ\",\n name: \"AbstractPriorCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0072,0040)\": {\n tag: \"(0072,0040)\",\n vr: \"LO\",\n name: \"ImageSetLabel\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0072,0050)\": {\n tag: \"(0072,0050)\",\n vr: \"CS\",\n name: \"SelectorAttributeVR\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0072,0052)\": {\n tag: \"(0072,0052)\",\n vr: \"AT\",\n name: \"SelectorSequencePointer\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0072,0054)\": {\n tag: \"(0072,0054)\",\n vr: \"LO\",\n name: \"SelectorSequencePointerPrivateCreator\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0072,0056)\": {\n tag: \"(0072,0056)\",\n vr: \"LO\",\n name: \"SelectorAttributePrivateCreator\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0072,005E)\": {\n tag: \"(0072,005E)\",\n vr: \"AE\",\n name: \"SelectorAEValue\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0072,005F)\": {\n tag: \"(0072,005F)\",\n vr: \"AS\",\n name: \"SelectorASValue\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0072,0060)\": {\n tag: \"(0072,0060)\",\n vr: \"AT\",\n name: \"SelectorATValue\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0072,0061)\": {\n tag: \"(0072,0061)\",\n vr: \"DA\",\n name: \"SelectorDAValue\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0072,0062)\": {\n tag: \"(0072,0062)\",\n vr: \"CS\",\n name: \"SelectorCSValue\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0072,0063)\": {\n tag: \"(0072,0063)\",\n vr: \"DT\",\n name: \"SelectorDTValue\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0072,0064)\": {\n tag: \"(0072,0064)\",\n vr: \"IS\",\n name: \"SelectorISValue\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0072,0065)\": {\n tag: \"(0072,0065)\",\n vr: \"OB\",\n name: \"SelectorOBValue\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0072,0066)\": {\n tag: \"(0072,0066)\",\n vr: \"LO\",\n name: \"SelectorLOValue\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0072,0067)\": {\n tag: \"(0072,0067)\",\n vr: \"OF\",\n name: \"SelectorOFValue\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0072,0068)\": {\n tag: \"(0072,0068)\",\n vr: \"LT\",\n name: \"SelectorLTValue\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0072,0069)\": {\n tag: \"(0072,0069)\",\n vr: \"OW\",\n name: \"SelectorOWValue\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0072,006A)\": {\n tag: \"(0072,006A)\",\n vr: \"PN\",\n name: \"SelectorPNValue\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0072,006B)\": {\n tag: \"(0072,006B)\",\n vr: \"TM\",\n name: \"SelectorTMValue\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0072,006C)\": {\n tag: \"(0072,006C)\",\n vr: \"SH\",\n name: \"SelectorSHValue\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0072,006D)\": {\n tag: \"(0072,006D)\",\n vr: \"UN\",\n name: \"SelectorUNValue\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0072,006E)\": {\n tag: \"(0072,006E)\",\n vr: \"ST\",\n name: \"SelectorSTValue\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0072,006F)\": {\n tag: \"(0072,006F)\",\n vr: \"UC\",\n name: \"SelectorUCValue\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0072,0070)\": {\n tag: \"(0072,0070)\",\n vr: \"UT\",\n name: \"SelectorUTValue\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0072,0071)\": {\n tag: \"(0072,0071)\",\n vr: \"UR\",\n name: \"SelectorURValue\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0072,0072)\": {\n tag: \"(0072,0072)\",\n vr: \"DS\",\n name: \"SelectorDSValue\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0072,0073)\": {\n tag: \"(0072,0073)\",\n vr: \"OD\",\n name: \"SelectorODValue\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0072,0074)\": {\n tag: \"(0072,0074)\",\n vr: \"FD\",\n name: \"SelectorFDValue\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0072,0075)\": {\n tag: \"(0072,0075)\",\n vr: \"OL\",\n name: \"SelectorOLValue\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0072,0076)\": {\n tag: \"(0072,0076)\",\n vr: \"FL\",\n name: \"SelectorFLValue\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0072,0078)\": {\n tag: \"(0072,0078)\",\n vr: \"UL\",\n name: \"SelectorULValue\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0072,007A)\": {\n tag: \"(0072,007A)\",\n vr: \"US\",\n name: \"SelectorUSValue\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0072,007C)\": {\n tag: \"(0072,007C)\",\n vr: \"SL\",\n name: \"SelectorSLValue\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0072,007E)\": {\n tag: \"(0072,007E)\",\n vr: \"SS\",\n name: \"SelectorSSValue\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0072,007F)\": {\n tag: \"(0072,007F)\",\n vr: \"UI\",\n name: \"SelectorUIValue\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0072,0080)\": {\n tag: \"(0072,0080)\",\n vr: \"SQ\",\n name: \"SelectorCodeSequenceValue\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0072,0081)\": {\n tag: \"(0072,0081)\",\n vr: \"OV\",\n name: \"SelectorOVValue\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0072,0082)\": {\n tag: \"(0072,0082)\",\n vr: \"SV\",\n name: \"SelectorSVValue\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0072,0083)\": {\n tag: \"(0072,0083)\",\n vr: \"UV\",\n name: \"SelectorUVValue\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0072,0100)\": {\n tag: \"(0072,0100)\",\n vr: \"US\",\n name: \"NumberOfScreens\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0072,0102)\": {\n tag: \"(0072,0102)\",\n vr: \"SQ\",\n name: \"NominalScreenDefinitionSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0072,0104)\": {\n tag: \"(0072,0104)\",\n vr: \"US\",\n name: \"NumberOfVerticalPixels\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0072,0106)\": {\n tag: \"(0072,0106)\",\n vr: \"US\",\n name: \"NumberOfHorizontalPixels\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0072,0108)\": {\n tag: \"(0072,0108)\",\n vr: \"FD\",\n name: \"DisplayEnvironmentSpatialPosition\",\n vm: \"4\",\n version: \"DICOM\"\n },\n \"(0072,010A)\": {\n tag: \"(0072,010A)\",\n vr: \"US\",\n name: \"ScreenMinimumGrayscaleBitDepth\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0072,010C)\": {\n tag: \"(0072,010C)\",\n vr: \"US\",\n name: \"ScreenMinimumColorBitDepth\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0072,010E)\": {\n tag: \"(0072,010E)\",\n vr: \"US\",\n name: \"ApplicationMaximumRepaintTime\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0072,0200)\": {\n tag: \"(0072,0200)\",\n vr: \"SQ\",\n name: \"DisplaySetsSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0072,0202)\": {\n tag: \"(0072,0202)\",\n vr: \"US\",\n name: \"DisplaySetNumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0072,0203)\": {\n tag: \"(0072,0203)\",\n vr: \"LO\",\n name: \"DisplaySetLabel\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0072,0204)\": {\n tag: \"(0072,0204)\",\n vr: \"US\",\n name: \"DisplaySetPresentationGroup\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0072,0206)\": {\n tag: \"(0072,0206)\",\n vr: \"LO\",\n name: \"DisplaySetPresentationGroupDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0072,0208)\": {\n tag: \"(0072,0208)\",\n vr: \"CS\",\n name: \"PartialDataDisplayHandling\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0072,0210)\": {\n tag: \"(0072,0210)\",\n vr: \"SQ\",\n name: \"SynchronizedScrollingSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0072,0212)\": {\n tag: \"(0072,0212)\",\n vr: \"US\",\n name: \"DisplaySetScrollingGroup\",\n vm: \"2-n\",\n version: \"DICOM\"\n },\n \"(0072,0214)\": {\n tag: \"(0072,0214)\",\n vr: \"SQ\",\n name: \"NavigationIndicatorSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0072,0216)\": {\n tag: \"(0072,0216)\",\n vr: \"US\",\n name: \"NavigationDisplaySet\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0072,0218)\": {\n tag: \"(0072,0218)\",\n vr: \"US\",\n name: \"ReferenceDisplaySets\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0072,0300)\": {\n tag: \"(0072,0300)\",\n vr: \"SQ\",\n name: \"ImageBoxesSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0072,0302)\": {\n tag: \"(0072,0302)\",\n vr: \"US\",\n name: \"ImageBoxNumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0072,0304)\": {\n tag: \"(0072,0304)\",\n vr: \"CS\",\n name: \"ImageBoxLayoutType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0072,0306)\": {\n tag: \"(0072,0306)\",\n vr: \"US\",\n name: \"ImageBoxTileHorizontalDimension\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0072,0308)\": {\n tag: \"(0072,0308)\",\n vr: \"US\",\n name: \"ImageBoxTileVerticalDimension\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0072,0310)\": {\n tag: \"(0072,0310)\",\n vr: \"CS\",\n name: \"ImageBoxScrollDirection\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0072,0312)\": {\n tag: \"(0072,0312)\",\n vr: \"CS\",\n name: \"ImageBoxSmallScrollType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0072,0314)\": {\n tag: \"(0072,0314)\",\n vr: \"US\",\n name: \"ImageBoxSmallScrollAmount\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0072,0316)\": {\n tag: \"(0072,0316)\",\n vr: \"CS\",\n name: \"ImageBoxLargeScrollType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0072,0318)\": {\n tag: \"(0072,0318)\",\n vr: \"US\",\n name: \"ImageBoxLargeScrollAmount\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0072,0320)\": {\n tag: \"(0072,0320)\",\n vr: \"US\",\n name: \"ImageBoxOverlapPriority\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0072,0330)\": {\n tag: \"(0072,0330)\",\n vr: \"FD\",\n name: \"CineRelativeToRealTime\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0072,0400)\": {\n tag: \"(0072,0400)\",\n vr: \"SQ\",\n name: \"FilterOperationsSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0072,0402)\": {\n tag: \"(0072,0402)\",\n vr: \"CS\",\n name: \"FilterByCategory\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0072,0404)\": {\n tag: \"(0072,0404)\",\n vr: \"CS\",\n name: \"FilterByAttributePresence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0072,0406)\": {\n tag: \"(0072,0406)\",\n vr: \"CS\",\n name: \"FilterByOperator\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0072,0420)\": {\n tag: \"(0072,0420)\",\n vr: \"US\",\n name: \"StructuredDisplayBackgroundCIELabValue\",\n vm: \"3\",\n version: \"DICOM\"\n },\n \"(0072,0421)\": {\n tag: \"(0072,0421)\",\n vr: \"US\",\n name: \"EmptyImageBoxCIELabValue\",\n vm: \"3\",\n version: \"DICOM\"\n },\n \"(0072,0422)\": {\n tag: \"(0072,0422)\",\n vr: \"SQ\",\n name: \"StructuredDisplayImageBoxSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0072,0424)\": {\n tag: \"(0072,0424)\",\n vr: \"SQ\",\n name: \"StructuredDisplayTextBoxSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0072,0427)\": {\n tag: \"(0072,0427)\",\n vr: \"SQ\",\n name: \"ReferencedFirstFrameSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0072,0430)\": {\n tag: \"(0072,0430)\",\n vr: \"SQ\",\n name: \"ImageBoxSynchronizationSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0072,0432)\": {\n tag: \"(0072,0432)\",\n vr: \"US\",\n name: \"SynchronizedImageBoxList\",\n vm: \"2-n\",\n version: \"DICOM\"\n },\n \"(0072,0434)\": {\n tag: \"(0072,0434)\",\n vr: \"CS\",\n name: \"TypeOfSynchronization\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0072,0500)\": {\n tag: \"(0072,0500)\",\n vr: \"CS\",\n name: \"BlendingOperationType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0072,0510)\": {\n tag: \"(0072,0510)\",\n vr: \"CS\",\n name: \"ReformattingOperationType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0072,0512)\": {\n tag: \"(0072,0512)\",\n vr: \"FD\",\n name: \"ReformattingThickness\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0072,0514)\": {\n tag: \"(0072,0514)\",\n vr: \"FD\",\n name: \"ReformattingInterval\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0072,0516)\": {\n tag: \"(0072,0516)\",\n vr: \"CS\",\n name: \"ReformattingOperationInitialViewDirection\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0072,0520)\": {\n tag: \"(0072,0520)\",\n vr: \"CS\",\n name: \"ThreeDRenderingType\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0072,0600)\": {\n tag: \"(0072,0600)\",\n vr: \"SQ\",\n name: \"SortingOperationsSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0072,0602)\": {\n tag: \"(0072,0602)\",\n vr: \"CS\",\n name: \"SortByCategory\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0072,0604)\": {\n tag: \"(0072,0604)\",\n vr: \"CS\",\n name: \"SortingDirection\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0072,0700)\": {\n tag: \"(0072,0700)\",\n vr: \"CS\",\n name: \"DisplaySetPatientOrientation\",\n vm: \"2\",\n version: \"DICOM\"\n },\n \"(0072,0702)\": {\n tag: \"(0072,0702)\",\n vr: \"CS\",\n name: \"VOIType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0072,0704)\": {\n tag: \"(0072,0704)\",\n vr: \"CS\",\n name: \"PseudoColorType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0072,0705)\": {\n tag: \"(0072,0705)\",\n vr: \"SQ\",\n name: \"PseudoColorPaletteInstanceReferenceSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0072,0706)\": {\n tag: \"(0072,0706)\",\n vr: \"CS\",\n name: \"ShowGrayscaleInverted\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0072,0710)\": {\n tag: \"(0072,0710)\",\n vr: \"CS\",\n name: \"ShowImageTrueSizeFlag\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0072,0712)\": {\n tag: \"(0072,0712)\",\n vr: \"CS\",\n name: \"ShowGraphicAnnotationFlag\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0072,0714)\": {\n tag: \"(0072,0714)\",\n vr: \"CS\",\n name: \"ShowPatientDemographicsFlag\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0072,0716)\": {\n tag: \"(0072,0716)\",\n vr: \"CS\",\n name: \"ShowAcquisitionTechniquesFlag\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0072,0717)\": {\n tag: \"(0072,0717)\",\n vr: \"CS\",\n name: \"DisplaySetHorizontalJustification\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0072,0718)\": {\n tag: \"(0072,0718)\",\n vr: \"CS\",\n name: \"DisplaySetVerticalJustification\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0074,0120)\": {\n tag: \"(0074,0120)\",\n vr: \"FD\",\n name: \"ContinuationStartMeterset\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0074,0121)\": {\n tag: \"(0074,0121)\",\n vr: \"FD\",\n name: \"ContinuationEndMeterset\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0074,1000)\": {\n tag: \"(0074,1000)\",\n vr: \"CS\",\n name: \"ProcedureStepState\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0074,1002)\": {\n tag: \"(0074,1002)\",\n vr: \"SQ\",\n name: \"ProcedureStepProgressInformationSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0074,1004)\": {\n tag: \"(0074,1004)\",\n vr: \"DS\",\n name: \"ProcedureStepProgress\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0074,1006)\": {\n tag: \"(0074,1006)\",\n vr: \"ST\",\n name: \"ProcedureStepProgressDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0074,1007)\": {\n tag: \"(0074,1007)\",\n vr: \"SQ\",\n name: \"ProcedureStepProgressParametersSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0074,1008)\": {\n tag: \"(0074,1008)\",\n vr: \"SQ\",\n name: \"ProcedureStepCommunicationsURISequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0074,100A)\": {\n tag: \"(0074,100A)\",\n vr: \"UR\",\n name: \"ContactURI\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0074,100C)\": {\n tag: \"(0074,100C)\",\n vr: \"LO\",\n name: \"ContactDisplayName\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0074,100E)\": {\n tag: \"(0074,100E)\",\n vr: \"SQ\",\n name: \"ProcedureStepDiscontinuationReasonCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0074,1020)\": {\n tag: \"(0074,1020)\",\n vr: \"SQ\",\n name: \"BeamTaskSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0074,1022)\": {\n tag: \"(0074,1022)\",\n vr: \"CS\",\n name: \"BeamTaskType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0074,1025)\": {\n tag: \"(0074,1025)\",\n vr: \"CS\",\n name: \"AutosequenceFlag\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0074,1026)\": {\n tag: \"(0074,1026)\",\n vr: \"FD\",\n name: \"TableTopVerticalAdjustedPosition\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0074,1027)\": {\n tag: \"(0074,1027)\",\n vr: \"FD\",\n name: \"TableTopLongitudinalAdjustedPosition\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0074,1028)\": {\n tag: \"(0074,1028)\",\n vr: \"FD\",\n name: \"TableTopLateralAdjustedPosition\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0074,102A)\": {\n tag: \"(0074,102A)\",\n vr: \"FD\",\n name: \"PatientSupportAdjustedAngle\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0074,102B)\": {\n tag: \"(0074,102B)\",\n vr: \"FD\",\n name: \"TableTopEccentricAdjustedAngle\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0074,102C)\": {\n tag: \"(0074,102C)\",\n vr: \"FD\",\n name: \"TableTopPitchAdjustedAngle\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0074,102D)\": {\n tag: \"(0074,102D)\",\n vr: \"FD\",\n name: \"TableTopRollAdjustedAngle\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0074,1030)\": {\n tag: \"(0074,1030)\",\n vr: \"SQ\",\n name: \"DeliveryVerificationImageSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0074,1032)\": {\n tag: \"(0074,1032)\",\n vr: \"CS\",\n name: \"VerificationImageTiming\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0074,1034)\": {\n tag: \"(0074,1034)\",\n vr: \"CS\",\n name: \"DoubleExposureFlag\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0074,1036)\": {\n tag: \"(0074,1036)\",\n vr: \"CS\",\n name: \"DoubleExposureOrdering\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0074,1040)\": {\n tag: \"(0074,1040)\",\n vr: \"SQ\",\n name: \"RelatedReferenceRTImageSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0074,1042)\": {\n tag: \"(0074,1042)\",\n vr: \"SQ\",\n name: \"GeneralMachineVerificationSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0074,1044)\": {\n tag: \"(0074,1044)\",\n vr: \"SQ\",\n name: \"ConventionalMachineVerificationSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0074,1046)\": {\n tag: \"(0074,1046)\",\n vr: \"SQ\",\n name: \"IonMachineVerificationSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0074,1048)\": {\n tag: \"(0074,1048)\",\n vr: \"SQ\",\n name: \"FailedAttributesSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0074,104A)\": {\n tag: \"(0074,104A)\",\n vr: \"SQ\",\n name: \"OverriddenAttributesSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0074,104C)\": {\n tag: \"(0074,104C)\",\n vr: \"SQ\",\n name: \"ConventionalControlPointVerificationSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0074,104E)\": {\n tag: \"(0074,104E)\",\n vr: \"SQ\",\n name: \"IonControlPointVerificationSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0074,1050)\": {\n tag: \"(0074,1050)\",\n vr: \"SQ\",\n name: \"AttributeOccurrenceSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0074,1052)\": {\n tag: \"(0074,1052)\",\n vr: \"AT\",\n name: \"AttributeOccurrencePointer\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0074,1054)\": {\n tag: \"(0074,1054)\",\n vr: \"UL\",\n name: \"AttributeItemSelector\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0074,1056)\": {\n tag: \"(0074,1056)\",\n vr: \"LO\",\n name: \"AttributeOccurrencePrivateCreator\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0074,1057)\": {\n tag: \"(0074,1057)\",\n vr: \"IS\",\n name: \"SelectorSequencePointerItems\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0074,1200)\": {\n tag: \"(0074,1200)\",\n vr: \"CS\",\n name: \"ScheduledProcedureStepPriority\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0074,1202)\": {\n tag: \"(0074,1202)\",\n vr: \"LO\",\n name: \"WorklistLabel\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0074,1204)\": {\n tag: \"(0074,1204)\",\n vr: \"LO\",\n name: \"ProcedureStepLabel\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0074,1210)\": {\n tag: \"(0074,1210)\",\n vr: \"SQ\",\n name: \"ScheduledProcessingParametersSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0074,1212)\": {\n tag: \"(0074,1212)\",\n vr: \"SQ\",\n name: \"PerformedProcessingParametersSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0074,1216)\": {\n tag: \"(0074,1216)\",\n vr: \"SQ\",\n name: \"UnifiedProcedureStepPerformedProcedureSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0074,1224)\": {\n tag: \"(0074,1224)\",\n vr: \"SQ\",\n name: \"ReplacedProcedureStepSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0074,1230)\": {\n tag: \"(0074,1230)\",\n vr: \"LO\",\n name: \"DeletionLock\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0074,1234)\": {\n tag: \"(0074,1234)\",\n vr: \"AE\",\n name: \"ReceivingAE\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0074,1236)\": {\n tag: \"(0074,1236)\",\n vr: \"AE\",\n name: \"RequestingAE\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0074,1238)\": {\n tag: \"(0074,1238)\",\n vr: \"LT\",\n name: \"ReasonForCancellation\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0074,1242)\": {\n tag: \"(0074,1242)\",\n vr: \"CS\",\n name: \"SCPStatus\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0074,1244)\": {\n tag: \"(0074,1244)\",\n vr: \"CS\",\n name: \"SubscriptionListStatus\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0074,1246)\": {\n tag: \"(0074,1246)\",\n vr: \"CS\",\n name: \"UnifiedProcedureStepListStatus\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0074,1324)\": {\n tag: \"(0074,1324)\",\n vr: \"UL\",\n name: \"BeamOrderIndex\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0074,1338)\": {\n tag: \"(0074,1338)\",\n vr: \"FD\",\n name: \"DoubleExposureMeterset\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0074,133A)\": {\n tag: \"(0074,133A)\",\n vr: \"FD\",\n name: \"DoubleExposureFieldDelta\",\n vm: \"4\",\n version: \"DICOM\"\n },\n \"(0074,1401)\": {\n tag: \"(0074,1401)\",\n vr: \"SQ\",\n name: \"BrachyTaskSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0074,1402)\": {\n tag: \"(0074,1402)\",\n vr: \"DS\",\n name: \"ContinuationStartTotalReferenceAirKerma\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0074,1403)\": {\n tag: \"(0074,1403)\",\n vr: \"DS\",\n name: \"ContinuationEndTotalReferenceAirKerma\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0074,1404)\": {\n tag: \"(0074,1404)\",\n vr: \"IS\",\n name: \"ContinuationPulseNumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0074,1405)\": {\n tag: \"(0074,1405)\",\n vr: \"SQ\",\n name: \"ChannelDeliveryOrderSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0074,1406)\": {\n tag: \"(0074,1406)\",\n vr: \"IS\",\n name: \"ReferencedChannelNumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0074,1407)\": {\n tag: \"(0074,1407)\",\n vr: \"DS\",\n name: \"StartCumulativeTimeWeight\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0074,1408)\": {\n tag: \"(0074,1408)\",\n vr: \"DS\",\n name: \"EndCumulativeTimeWeight\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0074,1409)\": {\n tag: \"(0074,1409)\",\n vr: \"SQ\",\n name: \"OmittedChannelSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0074,140A)\": {\n tag: \"(0074,140A)\",\n vr: \"CS\",\n name: \"ReasonForChannelOmission\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0074,140B)\": {\n tag: \"(0074,140B)\",\n vr: \"LO\",\n name: \"ReasonForChannelOmissionDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0074,140C)\": {\n tag: \"(0074,140C)\",\n vr: \"IS\",\n name: \"ChannelDeliveryOrderIndex\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0074,140D)\": {\n tag: \"(0074,140D)\",\n vr: \"SQ\",\n name: \"ChannelDeliveryContinuationSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0074,140E)\": {\n tag: \"(0074,140E)\",\n vr: \"SQ\",\n name: \"OmittedApplicationSetupSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0076,0001)\": {\n tag: \"(0076,0001)\",\n vr: \"LO\",\n name: \"ImplantAssemblyTemplateName\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0076,0003)\": {\n tag: \"(0076,0003)\",\n vr: \"LO\",\n name: \"ImplantAssemblyTemplateIssuer\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0076,0006)\": {\n tag: \"(0076,0006)\",\n vr: \"LO\",\n name: \"ImplantAssemblyTemplateVersion\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0076,0008)\": {\n tag: \"(0076,0008)\",\n vr: \"SQ\",\n name: \"ReplacedImplantAssemblyTemplateSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0076,000A)\": {\n tag: \"(0076,000A)\",\n vr: \"CS\",\n name: \"ImplantAssemblyTemplateType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0076,000C)\": {\n tag: \"(0076,000C)\",\n vr: \"SQ\",\n name: \"OriginalImplantAssemblyTemplateSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0076,000E)\": {\n tag: \"(0076,000E)\",\n vr: \"SQ\",\n name: \"DerivationImplantAssemblyTemplateSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0076,0010)\": {\n tag: \"(0076,0010)\",\n vr: \"SQ\",\n name: \"ImplantAssemblyTemplateTargetAnatomySequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0076,0020)\": {\n tag: \"(0076,0020)\",\n vr: \"SQ\",\n name: \"ProcedureTypeCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0076,0030)\": {\n tag: \"(0076,0030)\",\n vr: \"LO\",\n name: \"SurgicalTechnique\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0076,0032)\": {\n tag: \"(0076,0032)\",\n vr: \"SQ\",\n name: \"ComponentTypesSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0076,0034)\": {\n tag: \"(0076,0034)\",\n vr: \"CS\",\n name: \"ComponentTypeCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0076,0036)\": {\n tag: \"(0076,0036)\",\n vr: \"CS\",\n name: \"ExclusiveComponentType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0076,0038)\": {\n tag: \"(0076,0038)\",\n vr: \"CS\",\n name: \"MandatoryComponentType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0076,0040)\": {\n tag: \"(0076,0040)\",\n vr: \"SQ\",\n name: \"ComponentSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0076,0055)\": {\n tag: \"(0076,0055)\",\n vr: \"US\",\n name: \"ComponentID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0076,0060)\": {\n tag: \"(0076,0060)\",\n vr: \"SQ\",\n name: \"ComponentAssemblySequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0076,0070)\": {\n tag: \"(0076,0070)\",\n vr: \"US\",\n name: \"Component1ReferencedID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0076,0080)\": {\n tag: \"(0076,0080)\",\n vr: \"US\",\n name: \"Component1ReferencedMatingFeatureSetID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0076,0090)\": {\n tag: \"(0076,0090)\",\n vr: \"US\",\n name: \"Component1ReferencedMatingFeatureID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0076,00A0)\": {\n tag: \"(0076,00A0)\",\n vr: \"US\",\n name: \"Component2ReferencedID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0076,00B0)\": {\n tag: \"(0076,00B0)\",\n vr: \"US\",\n name: \"Component2ReferencedMatingFeatureSetID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0076,00C0)\": {\n tag: \"(0076,00C0)\",\n vr: \"US\",\n name: \"Component2ReferencedMatingFeatureID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0078,0001)\": {\n tag: \"(0078,0001)\",\n vr: \"LO\",\n name: \"ImplantTemplateGroupName\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0078,0010)\": {\n tag: \"(0078,0010)\",\n vr: \"ST\",\n name: \"ImplantTemplateGroupDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0078,0020)\": {\n tag: \"(0078,0020)\",\n vr: \"LO\",\n name: \"ImplantTemplateGroupIssuer\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0078,0024)\": {\n tag: \"(0078,0024)\",\n vr: \"LO\",\n name: \"ImplantTemplateGroupVersion\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0078,0026)\": {\n tag: \"(0078,0026)\",\n vr: \"SQ\",\n name: \"ReplacedImplantTemplateGroupSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0078,0028)\": {\n tag: \"(0078,0028)\",\n vr: \"SQ\",\n name: \"ImplantTemplateGroupTargetAnatomySequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0078,002A)\": {\n tag: \"(0078,002A)\",\n vr: \"SQ\",\n name: \"ImplantTemplateGroupMembersSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0078,002E)\": {\n tag: \"(0078,002E)\",\n vr: \"US\",\n name: \"ImplantTemplateGroupMemberID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0078,0050)\": {\n tag: \"(0078,0050)\",\n vr: \"FD\",\n name: \"ThreeDImplantTemplateGroupMemberMatchingPoint\",\n vm: \"3\",\n version: \"DICOM\"\n },\n \"(0078,0060)\": {\n tag: \"(0078,0060)\",\n vr: \"FD\",\n name: \"ThreeDImplantTemplateGroupMemberMatchingAxes\",\n vm: \"9\",\n version: \"DICOM\"\n },\n \"(0078,0070)\": {\n tag: \"(0078,0070)\",\n vr: \"SQ\",\n name: \"ImplantTemplateGroupMemberMatching2DCoordinatesSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0078,0090)\": {\n tag: \"(0078,0090)\",\n vr: \"FD\",\n name: \"TwoDImplantTemplateGroupMemberMatchingPoint\",\n vm: \"2\",\n version: \"DICOM\"\n },\n \"(0078,00A0)\": {\n tag: \"(0078,00A0)\",\n vr: \"FD\",\n name: \"TwoDImplantTemplateGroupMemberMatchingAxes\",\n vm: \"4\",\n version: \"DICOM\"\n },\n \"(0078,00B0)\": {\n tag: \"(0078,00B0)\",\n vr: \"SQ\",\n name: \"ImplantTemplateGroupVariationDimensionSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0078,00B2)\": {\n tag: \"(0078,00B2)\",\n vr: \"LO\",\n name: \"ImplantTemplateGroupVariationDimensionName\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0078,00B4)\": {\n tag: \"(0078,00B4)\",\n vr: \"SQ\",\n name: \"ImplantTemplateGroupVariationDimensionRankSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0078,00B6)\": {\n tag: \"(0078,00B6)\",\n vr: \"US\",\n name: \"ReferencedImplantTemplateGroupMemberID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0078,00B8)\": {\n tag: \"(0078,00B8)\",\n vr: \"US\",\n name: \"ImplantTemplateGroupVariationDimensionRank\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0080,0001)\": {\n tag: \"(0080,0001)\",\n vr: \"SQ\",\n name: \"SurfaceScanAcquisitionTypeCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0080,0002)\": {\n tag: \"(0080,0002)\",\n vr: \"SQ\",\n name: \"SurfaceScanModeCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0080,0003)\": {\n tag: \"(0080,0003)\",\n vr: \"SQ\",\n name: \"RegistrationMethodCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0080,0004)\": {\n tag: \"(0080,0004)\",\n vr: \"FD\",\n name: \"ShotDurationTime\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0080,0005)\": {\n tag: \"(0080,0005)\",\n vr: \"FD\",\n name: \"ShotOffsetTime\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0080,0006)\": {\n tag: \"(0080,0006)\",\n vr: \"US\",\n name: \"SurfacePointPresentationValueData\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0080,0007)\": {\n tag: \"(0080,0007)\",\n vr: \"US\",\n name: \"SurfacePointColorCIELabValueData\",\n vm: \"3-3n\",\n version: \"DICOM\"\n },\n \"(0080,0008)\": {\n tag: \"(0080,0008)\",\n vr: \"SQ\",\n name: \"UVMappingSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0080,0009)\": {\n tag: \"(0080,0009)\",\n vr: \"SH\",\n name: \"TextureLabel\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0080,0010)\": {\n tag: \"(0080,0010)\",\n vr: \"OF\",\n name: \"UValueData\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0080,0011)\": {\n tag: \"(0080,0011)\",\n vr: \"OF\",\n name: \"VValueData\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0080,0012)\": {\n tag: \"(0080,0012)\",\n vr: \"SQ\",\n name: \"ReferencedTextureSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0080,0013)\": {\n tag: \"(0080,0013)\",\n vr: \"SQ\",\n name: \"ReferencedSurfaceDataSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0082,0001)\": {\n tag: \"(0082,0001)\",\n vr: \"CS\",\n name: \"AssessmentSummary\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0082,0003)\": {\n tag: \"(0082,0003)\",\n vr: \"UT\",\n name: \"AssessmentSummaryDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0082,0004)\": {\n tag: \"(0082,0004)\",\n vr: \"SQ\",\n name: \"AssessedSOPInstanceSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0082,0005)\": {\n tag: \"(0082,0005)\",\n vr: \"SQ\",\n name: \"ReferencedComparisonSOPInstanceSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0082,0006)\": {\n tag: \"(0082,0006)\",\n vr: \"UL\",\n name: \"NumberOfAssessmentObservations\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0082,0007)\": {\n tag: \"(0082,0007)\",\n vr: \"SQ\",\n name: \"AssessmentObservationsSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0082,0008)\": {\n tag: \"(0082,0008)\",\n vr: \"CS\",\n name: \"ObservationSignificance\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0082,000A)\": {\n tag: \"(0082,000A)\",\n vr: \"UT\",\n name: \"ObservationDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0082,000C)\": {\n tag: \"(0082,000C)\",\n vr: \"SQ\",\n name: \"StructuredConstraintObservationSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0082,0010)\": {\n tag: \"(0082,0010)\",\n vr: \"SQ\",\n name: \"AssessedAttributeValueSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0082,0016)\": {\n tag: \"(0082,0016)\",\n vr: \"LO\",\n name: \"AssessmentSetID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0082,0017)\": {\n tag: \"(0082,0017)\",\n vr: \"SQ\",\n name: \"AssessmentRequesterSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0082,0018)\": {\n tag: \"(0082,0018)\",\n vr: \"LO\",\n name: \"SelectorAttributeName\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0082,0019)\": {\n tag: \"(0082,0019)\",\n vr: \"LO\",\n name: \"SelectorAttributeKeyword\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0082,0021)\": {\n tag: \"(0082,0021)\",\n vr: \"SQ\",\n name: \"AssessmentTypeCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0082,0022)\": {\n tag: \"(0082,0022)\",\n vr: \"SQ\",\n name: \"ObservationBasisCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0082,0023)\": {\n tag: \"(0082,0023)\",\n vr: \"LO\",\n name: \"AssessmentLabel\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0082,0032)\": {\n tag: \"(0082,0032)\",\n vr: \"CS\",\n name: \"ConstraintType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0082,0033)\": {\n tag: \"(0082,0033)\",\n vr: \"UT\",\n name: \"SpecificationSelectionGuidance\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0082,0034)\": {\n tag: \"(0082,0034)\",\n vr: \"SQ\",\n name: \"ConstraintValueSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0082,0035)\": {\n tag: \"(0082,0035)\",\n vr: \"SQ\",\n name: \"RecommendedDefaultValueSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0082,0036)\": {\n tag: \"(0082,0036)\",\n vr: \"CS\",\n name: \"ConstraintViolationSignificance\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0082,0037)\": {\n tag: \"(0082,0037)\",\n vr: \"UT\",\n name: \"ConstraintViolationCondition\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0082,0038)\": {\n tag: \"(0082,0038)\",\n vr: \"CS\",\n name: \"ModifiableConstraintFlag\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0088,0130)\": {\n tag: \"(0088,0130)\",\n vr: \"SH\",\n name: \"StorageMediaFileSetID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0088,0140)\": {\n tag: \"(0088,0140)\",\n vr: \"UI\",\n name: \"StorageMediaFileSetUID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0088,0200)\": {\n tag: \"(0088,0200)\",\n vr: \"SQ\",\n name: \"IconImageSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0100,0410)\": {\n tag: \"(0100,0410)\",\n vr: \"CS\",\n name: \"SOPInstanceStatus\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0100,0420)\": {\n tag: \"(0100,0420)\",\n vr: \"DT\",\n name: \"SOPAuthorizationDateTime\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0100,0424)\": {\n tag: \"(0100,0424)\",\n vr: \"LT\",\n name: \"SOPAuthorizationComment\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0100,0426)\": {\n tag: \"(0100,0426)\",\n vr: \"LO\",\n name: \"AuthorizationEquipmentCertificationNumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0400,0005)\": {\n tag: \"(0400,0005)\",\n vr: \"US\",\n name: \"MACIDNumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0400,0010)\": {\n tag: \"(0400,0010)\",\n vr: \"UI\",\n name: \"MACCalculationTransferSyntaxUID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0400,0015)\": {\n tag: \"(0400,0015)\",\n vr: \"CS\",\n name: \"MACAlgorithm\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0400,0020)\": {\n tag: \"(0400,0020)\",\n vr: \"AT\",\n name: \"DataElementsSigned\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(0400,0100)\": {\n tag: \"(0400,0100)\",\n vr: \"UI\",\n name: \"DigitalSignatureUID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0400,0105)\": {\n tag: \"(0400,0105)\",\n vr: \"DT\",\n name: \"DigitalSignatureDateTime\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0400,0110)\": {\n tag: \"(0400,0110)\",\n vr: \"CS\",\n name: \"CertificateType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0400,0115)\": {\n tag: \"(0400,0115)\",\n vr: \"OB\",\n name: \"CertificateOfSigner\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0400,0120)\": {\n tag: \"(0400,0120)\",\n vr: \"OB\",\n name: \"Signature\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0400,0305)\": {\n tag: \"(0400,0305)\",\n vr: \"CS\",\n name: \"CertifiedTimestampType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0400,0310)\": {\n tag: \"(0400,0310)\",\n vr: \"OB\",\n name: \"CertifiedTimestamp\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0400,0401)\": {\n tag: \"(0400,0401)\",\n vr: \"SQ\",\n name: \"DigitalSignaturePurposeCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0400,0402)\": {\n tag: \"(0400,0402)\",\n vr: \"SQ\",\n name: \"ReferencedDigitalSignatureSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0400,0403)\": {\n tag: \"(0400,0403)\",\n vr: \"SQ\",\n name: \"ReferencedSOPInstanceMACSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0400,0404)\": {\n tag: \"(0400,0404)\",\n vr: \"OB\",\n name: \"MAC\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0400,0500)\": {\n tag: \"(0400,0500)\",\n vr: \"SQ\",\n name: \"EncryptedAttributesSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0400,0510)\": {\n tag: \"(0400,0510)\",\n vr: \"UI\",\n name: \"EncryptedContentTransferSyntaxUID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0400,0520)\": {\n tag: \"(0400,0520)\",\n vr: \"OB\",\n name: \"EncryptedContent\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0400,0550)\": {\n tag: \"(0400,0550)\",\n vr: \"SQ\",\n name: \"ModifiedAttributesSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0400,0551)\": {\n tag: \"(0400,0551)\",\n vr: \"SQ\",\n name: \"NonconformingModifiedAttributesSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0400,0552)\": {\n tag: \"(0400,0552)\",\n vr: \"OB\",\n name: \"NonconformingDataElementValue\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0400,0561)\": {\n tag: \"(0400,0561)\",\n vr: \"SQ\",\n name: \"OriginalAttributesSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0400,0562)\": {\n tag: \"(0400,0562)\",\n vr: \"DT\",\n name: \"AttributeModificationDateTime\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0400,0563)\": {\n tag: \"(0400,0563)\",\n vr: \"LO\",\n name: \"ModifyingSystem\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0400,0564)\": {\n tag: \"(0400,0564)\",\n vr: \"LO\",\n name: \"SourceOfPreviousValues\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0400,0565)\": {\n tag: \"(0400,0565)\",\n vr: \"CS\",\n name: \"ReasonForTheAttributeModification\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0400,0600)\": {\n tag: \"(0400,0600)\",\n vr: \"CS\",\n name: \"InstanceOriginStatus\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(2000,0010)\": {\n tag: \"(2000,0010)\",\n vr: \"IS\",\n name: \"NumberOfCopies\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(2000,001E)\": {\n tag: \"(2000,001E)\",\n vr: \"SQ\",\n name: \"PrinterConfigurationSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(2000,0020)\": {\n tag: \"(2000,0020)\",\n vr: \"CS\",\n name: \"PrintPriority\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(2000,0030)\": {\n tag: \"(2000,0030)\",\n vr: \"CS\",\n name: \"MediumType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(2000,0040)\": {\n tag: \"(2000,0040)\",\n vr: \"CS\",\n name: \"FilmDestination\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(2000,0050)\": {\n tag: \"(2000,0050)\",\n vr: \"LO\",\n name: \"FilmSessionLabel\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(2000,0060)\": {\n tag: \"(2000,0060)\",\n vr: \"IS\",\n name: \"MemoryAllocation\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(2000,0061)\": {\n tag: \"(2000,0061)\",\n vr: \"IS\",\n name: \"MaximumMemoryAllocation\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(2000,00A0)\": {\n tag: \"(2000,00A0)\",\n vr: \"US\",\n name: \"MemoryBitDepth\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(2000,00A1)\": {\n tag: \"(2000,00A1)\",\n vr: \"US\",\n name: \"PrintingBitDepth\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(2000,00A2)\": {\n tag: \"(2000,00A2)\",\n vr: \"SQ\",\n name: \"MediaInstalledSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(2000,00A4)\": {\n tag: \"(2000,00A4)\",\n vr: \"SQ\",\n name: \"OtherMediaAvailableSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(2000,00A8)\": {\n tag: \"(2000,00A8)\",\n vr: \"SQ\",\n name: \"SupportedImageDisplayFormatsSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(2000,0500)\": {\n tag: \"(2000,0500)\",\n vr: \"SQ\",\n name: \"ReferencedFilmBoxSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(2010,0010)\": {\n tag: \"(2010,0010)\",\n vr: \"ST\",\n name: \"ImageDisplayFormat\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(2010,0030)\": {\n tag: \"(2010,0030)\",\n vr: \"CS\",\n name: \"AnnotationDisplayFormatID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(2010,0040)\": {\n tag: \"(2010,0040)\",\n vr: \"CS\",\n name: \"FilmOrientation\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(2010,0050)\": {\n tag: \"(2010,0050)\",\n vr: \"CS\",\n name: \"FilmSizeID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(2010,0052)\": {\n tag: \"(2010,0052)\",\n vr: \"CS\",\n name: \"PrinterResolutionID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(2010,0054)\": {\n tag: \"(2010,0054)\",\n vr: \"CS\",\n name: \"DefaultPrinterResolutionID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(2010,0060)\": {\n tag: \"(2010,0060)\",\n vr: \"CS\",\n name: \"MagnificationType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(2010,0080)\": {\n tag: \"(2010,0080)\",\n vr: \"CS\",\n name: \"SmoothingType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(2010,00A6)\": {\n tag: \"(2010,00A6)\",\n vr: \"CS\",\n name: \"DefaultMagnificationType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(2010,00A7)\": {\n tag: \"(2010,00A7)\",\n vr: \"CS\",\n name: \"OtherMagnificationTypesAvailable\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(2010,00A8)\": {\n tag: \"(2010,00A8)\",\n vr: \"CS\",\n name: \"DefaultSmoothingType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(2010,00A9)\": {\n tag: \"(2010,00A9)\",\n vr: \"CS\",\n name: \"OtherSmoothingTypesAvailable\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(2010,0100)\": {\n tag: \"(2010,0100)\",\n vr: \"CS\",\n name: \"BorderDensity\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(2010,0110)\": {\n tag: \"(2010,0110)\",\n vr: \"CS\",\n name: \"EmptyImageDensity\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(2010,0120)\": {\n tag: \"(2010,0120)\",\n vr: \"US\",\n name: \"MinDensity\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(2010,0130)\": {\n tag: \"(2010,0130)\",\n vr: \"US\",\n name: \"MaxDensity\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(2010,0140)\": {\n tag: \"(2010,0140)\",\n vr: \"CS\",\n name: \"Trim\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(2010,0150)\": {\n tag: \"(2010,0150)\",\n vr: \"ST\",\n name: \"ConfigurationInformation\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(2010,0152)\": {\n tag: \"(2010,0152)\",\n vr: \"LT\",\n name: \"ConfigurationInformationDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(2010,0154)\": {\n tag: \"(2010,0154)\",\n vr: \"IS\",\n name: \"MaximumCollatedFilms\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(2010,015E)\": {\n tag: \"(2010,015E)\",\n vr: \"US\",\n name: \"Illumination\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(2010,0160)\": {\n tag: \"(2010,0160)\",\n vr: \"US\",\n name: \"ReflectedAmbientLight\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(2010,0376)\": {\n tag: \"(2010,0376)\",\n vr: \"DS\",\n name: \"PrinterPixelSpacing\",\n vm: \"2\",\n version: \"DICOM\"\n },\n \"(2010,0500)\": {\n tag: \"(2010,0500)\",\n vr: \"SQ\",\n name: \"ReferencedFilmSessionSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(2010,0510)\": {\n tag: \"(2010,0510)\",\n vr: \"SQ\",\n name: \"ReferencedImageBoxSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(2010,0520)\": {\n tag: \"(2010,0520)\",\n vr: \"SQ\",\n name: \"ReferencedBasicAnnotationBoxSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(2020,0010)\": {\n tag: \"(2020,0010)\",\n vr: \"US\",\n name: \"ImageBoxPosition\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(2020,0020)\": {\n tag: \"(2020,0020)\",\n vr: \"CS\",\n name: \"Polarity\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(2020,0030)\": {\n tag: \"(2020,0030)\",\n vr: \"DS\",\n name: \"RequestedImageSize\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(2020,0040)\": {\n tag: \"(2020,0040)\",\n vr: \"CS\",\n name: \"RequestedDecimateCropBehavior\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(2020,0050)\": {\n tag: \"(2020,0050)\",\n vr: \"CS\",\n name: \"RequestedResolutionID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(2020,00A0)\": {\n tag: \"(2020,00A0)\",\n vr: \"CS\",\n name: \"RequestedImageSizeFlag\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(2020,00A2)\": {\n tag: \"(2020,00A2)\",\n vr: \"CS\",\n name: \"DecimateCropResult\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(2020,0110)\": {\n tag: \"(2020,0110)\",\n vr: \"SQ\",\n name: \"BasicGrayscaleImageSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(2020,0111)\": {\n tag: \"(2020,0111)\",\n vr: \"SQ\",\n name: \"BasicColorImageSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(2030,0010)\": {\n tag: \"(2030,0010)\",\n vr: \"US\",\n name: \"AnnotationPosition\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(2030,0020)\": {\n tag: \"(2030,0020)\",\n vr: \"LO\",\n name: \"TextString\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(2050,0010)\": {\n tag: \"(2050,0010)\",\n vr: \"SQ\",\n name: \"PresentationLUTSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(2050,0020)\": {\n tag: \"(2050,0020)\",\n vr: \"CS\",\n name: \"PresentationLUTShape\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(2050,0500)\": {\n tag: \"(2050,0500)\",\n vr: \"SQ\",\n name: \"ReferencedPresentationLUTSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(2100,0020)\": {\n tag: \"(2100,0020)\",\n vr: \"CS\",\n name: \"ExecutionStatus\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(2100,0030)\": {\n tag: \"(2100,0030)\",\n vr: \"CS\",\n name: \"ExecutionStatusInfo\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(2100,0040)\": {\n tag: \"(2100,0040)\",\n vr: \"DA\",\n name: \"CreationDate\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(2100,0050)\": {\n tag: \"(2100,0050)\",\n vr: \"TM\",\n name: \"CreationTime\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(2100,0070)\": {\n tag: \"(2100,0070)\",\n vr: \"AE\",\n name: \"Originator\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(2100,0160)\": {\n tag: \"(2100,0160)\",\n vr: \"SH\",\n name: \"OwnerID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(2100,0170)\": {\n tag: \"(2100,0170)\",\n vr: \"IS\",\n name: \"NumberOfFilms\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(2110,0010)\": {\n tag: \"(2110,0010)\",\n vr: \"CS\",\n name: \"PrinterStatus\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(2110,0020)\": {\n tag: \"(2110,0020)\",\n vr: \"CS\",\n name: \"PrinterStatusInfo\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(2110,0030)\": {\n tag: \"(2110,0030)\",\n vr: \"LO\",\n name: \"PrinterName\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(2200,0001)\": {\n tag: \"(2200,0001)\",\n vr: \"CS\",\n name: \"LabelUsingInformationExtractedFromInstances\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(2200,0002)\": {\n tag: \"(2200,0002)\",\n vr: \"UT\",\n name: \"LabelText\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(2200,0003)\": {\n tag: \"(2200,0003)\",\n vr: \"CS\",\n name: \"LabelStyleSelection\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(2200,0004)\": {\n tag: \"(2200,0004)\",\n vr: \"LT\",\n name: \"MediaDisposition\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(2200,0005)\": {\n tag: \"(2200,0005)\",\n vr: \"LT\",\n name: \"BarcodeValue\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(2200,0006)\": {\n tag: \"(2200,0006)\",\n vr: \"CS\",\n name: \"BarcodeSymbology\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(2200,0007)\": {\n tag: \"(2200,0007)\",\n vr: \"CS\",\n name: \"AllowMediaSplitting\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(2200,0008)\": {\n tag: \"(2200,0008)\",\n vr: \"CS\",\n name: \"IncludeNonDICOMObjects\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(2200,0009)\": {\n tag: \"(2200,0009)\",\n vr: \"CS\",\n name: \"IncludeDisplayApplication\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(2200,000A)\": {\n tag: \"(2200,000A)\",\n vr: \"CS\",\n name: \"PreserveCompositeInstancesAfterMediaCreation\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(2200,000B)\": {\n tag: \"(2200,000B)\",\n vr: \"US\",\n name: \"TotalNumberOfPiecesOfMediaCreated\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(2200,000C)\": {\n tag: \"(2200,000C)\",\n vr: \"LO\",\n name: \"RequestedMediaApplicationProfile\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(2200,000D)\": {\n tag: \"(2200,000D)\",\n vr: \"SQ\",\n name: \"ReferencedStorageMediaSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(2200,000E)\": {\n tag: \"(2200,000E)\",\n vr: \"AT\",\n name: \"FailureAttributes\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(2200,000F)\": {\n tag: \"(2200,000F)\",\n vr: \"CS\",\n name: \"AllowLossyCompression\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(2200,0020)\": {\n tag: \"(2200,0020)\",\n vr: \"CS\",\n name: \"RequestPriority\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3002,0002)\": {\n tag: \"(3002,0002)\",\n vr: \"SH\",\n name: \"RTImageLabel\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3002,0003)\": {\n tag: \"(3002,0003)\",\n vr: \"LO\",\n name: \"RTImageName\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3002,0004)\": {\n tag: \"(3002,0004)\",\n vr: \"ST\",\n name: \"RTImageDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3002,000A)\": {\n tag: \"(3002,000A)\",\n vr: \"CS\",\n name: \"ReportedValuesOrigin\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3002,000C)\": {\n tag: \"(3002,000C)\",\n vr: \"CS\",\n name: \"RTImagePlane\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3002,000D)\": {\n tag: \"(3002,000D)\",\n vr: \"DS\",\n name: \"XRayImageReceptorTranslation\",\n vm: \"3\",\n version: \"DICOM\"\n },\n \"(3002,000E)\": {\n tag: \"(3002,000E)\",\n vr: \"DS\",\n name: \"XRayImageReceptorAngle\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3002,0010)\": {\n tag: \"(3002,0010)\",\n vr: \"DS\",\n name: \"RTImageOrientation\",\n vm: \"6\",\n version: \"DICOM\"\n },\n \"(3002,0011)\": {\n tag: \"(3002,0011)\",\n vr: \"DS\",\n name: \"ImagePlanePixelSpacing\",\n vm: \"2\",\n version: \"DICOM\"\n },\n \"(3002,0012)\": {\n tag: \"(3002,0012)\",\n vr: \"DS\",\n name: \"RTImagePosition\",\n vm: \"2\",\n version: \"DICOM\"\n },\n \"(3002,0020)\": {\n tag: \"(3002,0020)\",\n vr: \"SH\",\n name: \"RadiationMachineName\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3002,0022)\": {\n tag: \"(3002,0022)\",\n vr: \"DS\",\n name: \"RadiationMachineSAD\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3002,0024)\": {\n tag: \"(3002,0024)\",\n vr: \"DS\",\n name: \"RadiationMachineSSD\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3002,0026)\": {\n tag: \"(3002,0026)\",\n vr: \"DS\",\n name: \"RTImageSID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3002,0028)\": {\n tag: \"(3002,0028)\",\n vr: \"DS\",\n name: \"SourceToReferenceObjectDistance\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3002,0029)\": {\n tag: \"(3002,0029)\",\n vr: \"IS\",\n name: \"FractionNumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3002,0030)\": {\n tag: \"(3002,0030)\",\n vr: \"SQ\",\n name: \"ExposureSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3002,0032)\": {\n tag: \"(3002,0032)\",\n vr: \"DS\",\n name: \"MetersetExposure\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3002,0034)\": {\n tag: \"(3002,0034)\",\n vr: \"DS\",\n name: \"DiaphragmPosition\",\n vm: \"4\",\n version: \"DICOM\"\n },\n \"(3002,0040)\": {\n tag: \"(3002,0040)\",\n vr: \"SQ\",\n name: \"FluenceMapSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3002,0041)\": {\n tag: \"(3002,0041)\",\n vr: \"CS\",\n name: \"FluenceDataSource\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3002,0042)\": {\n tag: \"(3002,0042)\",\n vr: \"DS\",\n name: \"FluenceDataScale\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3002,0050)\": {\n tag: \"(3002,0050)\",\n vr: \"SQ\",\n name: \"PrimaryFluenceModeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3002,0051)\": {\n tag: \"(3002,0051)\",\n vr: \"CS\",\n name: \"FluenceMode\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3002,0052)\": {\n tag: \"(3002,0052)\",\n vr: \"SH\",\n name: \"FluenceModeID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3004,0001)\": {\n tag: \"(3004,0001)\",\n vr: \"CS\",\n name: \"DVHType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3004,0002)\": {\n tag: \"(3004,0002)\",\n vr: \"CS\",\n name: \"DoseUnits\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3004,0004)\": {\n tag: \"(3004,0004)\",\n vr: \"CS\",\n name: \"DoseType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3004,0005)\": {\n tag: \"(3004,0005)\",\n vr: \"CS\",\n name: \"SpatialTransformOfDose\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3004,0006)\": {\n tag: \"(3004,0006)\",\n vr: \"LO\",\n name: \"DoseComment\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3004,0008)\": {\n tag: \"(3004,0008)\",\n vr: \"DS\",\n name: \"NormalizationPoint\",\n vm: \"3\",\n version: \"DICOM\"\n },\n \"(3004,000A)\": {\n tag: \"(3004,000A)\",\n vr: \"CS\",\n name: \"DoseSummationType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3004,000C)\": {\n tag: \"(3004,000C)\",\n vr: \"DS\",\n name: \"GridFrameOffsetVector\",\n vm: \"2-n\",\n version: \"DICOM\"\n },\n \"(3004,000E)\": {\n tag: \"(3004,000E)\",\n vr: \"DS\",\n name: \"DoseGridScaling\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3004,0010)\": {\n tag: \"(3004,0010)\",\n vr: \"SQ\",\n name: \"RTDoseROISequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3004,0012)\": {\n tag: \"(3004,0012)\",\n vr: \"DS\",\n name: \"DoseValue\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3004,0014)\": {\n tag: \"(3004,0014)\",\n vr: \"CS\",\n name: \"TissueHeterogeneityCorrection\",\n vm: \"1-3\",\n version: \"DICOM\"\n },\n \"(3004,0040)\": {\n tag: \"(3004,0040)\",\n vr: \"DS\",\n name: \"DVHNormalizationPoint\",\n vm: \"3\",\n version: \"DICOM\"\n },\n \"(3004,0042)\": {\n tag: \"(3004,0042)\",\n vr: \"DS\",\n name: \"DVHNormalizationDoseValue\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3004,0050)\": {\n tag: \"(3004,0050)\",\n vr: \"SQ\",\n name: \"DVHSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3004,0052)\": {\n tag: \"(3004,0052)\",\n vr: \"DS\",\n name: \"DVHDoseScaling\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3004,0054)\": {\n tag: \"(3004,0054)\",\n vr: \"CS\",\n name: \"DVHVolumeUnits\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3004,0056)\": {\n tag: \"(3004,0056)\",\n vr: \"IS\",\n name: \"DVHNumberOfBins\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3004,0058)\": {\n tag: \"(3004,0058)\",\n vr: \"DS\",\n name: \"DVHData\",\n vm: \"2-2n\",\n version: \"DICOM\"\n },\n \"(3004,0060)\": {\n tag: \"(3004,0060)\",\n vr: \"SQ\",\n name: \"DVHReferencedROISequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3004,0062)\": {\n tag: \"(3004,0062)\",\n vr: \"CS\",\n name: \"DVHROIContributionType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3004,0070)\": {\n tag: \"(3004,0070)\",\n vr: \"DS\",\n name: \"DVHMinimumDose\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3004,0072)\": {\n tag: \"(3004,0072)\",\n vr: \"DS\",\n name: \"DVHMaximumDose\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3004,0074)\": {\n tag: \"(3004,0074)\",\n vr: \"DS\",\n name: \"DVHMeanDose\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3006,0002)\": {\n tag: \"(3006,0002)\",\n vr: \"SH\",\n name: \"StructureSetLabel\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3006,0004)\": {\n tag: \"(3006,0004)\",\n vr: \"LO\",\n name: \"StructureSetName\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3006,0006)\": {\n tag: \"(3006,0006)\",\n vr: \"ST\",\n name: \"StructureSetDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3006,0008)\": {\n tag: \"(3006,0008)\",\n vr: \"DA\",\n name: \"StructureSetDate\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3006,0009)\": {\n tag: \"(3006,0009)\",\n vr: \"TM\",\n name: \"StructureSetTime\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3006,0010)\": {\n tag: \"(3006,0010)\",\n vr: \"SQ\",\n name: \"ReferencedFrameOfReferenceSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3006,0012)\": {\n tag: \"(3006,0012)\",\n vr: \"SQ\",\n name: \"RTReferencedStudySequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3006,0014)\": {\n tag: \"(3006,0014)\",\n vr: \"SQ\",\n name: \"RTReferencedSeriesSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3006,0016)\": {\n tag: \"(3006,0016)\",\n vr: \"SQ\",\n name: \"ContourImageSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3006,0018)\": {\n tag: \"(3006,0018)\",\n vr: \"SQ\",\n name: \"PredecessorStructureSetSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3006,0020)\": {\n tag: \"(3006,0020)\",\n vr: \"SQ\",\n name: \"StructureSetROISequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3006,0022)\": {\n tag: \"(3006,0022)\",\n vr: \"IS\",\n name: \"ROINumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3006,0024)\": {\n tag: \"(3006,0024)\",\n vr: \"UI\",\n name: \"ReferencedFrameOfReferenceUID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3006,0026)\": {\n tag: \"(3006,0026)\",\n vr: \"LO\",\n name: \"ROIName\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3006,0028)\": {\n tag: \"(3006,0028)\",\n vr: \"ST\",\n name: \"ROIDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3006,002A)\": {\n tag: \"(3006,002A)\",\n vr: \"IS\",\n name: \"ROIDisplayColor\",\n vm: \"3\",\n version: \"DICOM\"\n },\n \"(3006,002C)\": {\n tag: \"(3006,002C)\",\n vr: \"DS\",\n name: \"ROIVolume\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3006,0030)\": {\n tag: \"(3006,0030)\",\n vr: \"SQ\",\n name: \"RTRelatedROISequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3006,0033)\": {\n tag: \"(3006,0033)\",\n vr: \"CS\",\n name: \"RTROIRelationship\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3006,0036)\": {\n tag: \"(3006,0036)\",\n vr: \"CS\",\n name: \"ROIGenerationAlgorithm\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3006,0037)\": {\n tag: \"(3006,0037)\",\n vr: \"SQ\",\n name: \"ROIDerivationAlgorithmIdentificationSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3006,0038)\": {\n tag: \"(3006,0038)\",\n vr: \"LO\",\n name: \"ROIGenerationDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3006,0039)\": {\n tag: \"(3006,0039)\",\n vr: \"SQ\",\n name: \"ROIContourSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3006,0040)\": {\n tag: \"(3006,0040)\",\n vr: \"SQ\",\n name: \"ContourSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3006,0042)\": {\n tag: \"(3006,0042)\",\n vr: \"CS\",\n name: \"ContourGeometricType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3006,0044)\": {\n tag: \"(3006,0044)\",\n vr: \"DS\",\n name: \"ContourSlabThickness\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3006,0045)\": {\n tag: \"(3006,0045)\",\n vr: \"DS\",\n name: \"ContourOffsetVector\",\n vm: \"3\",\n version: \"DICOM\"\n },\n \"(3006,0046)\": {\n tag: \"(3006,0046)\",\n vr: \"IS\",\n name: \"NumberOfContourPoints\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3006,0048)\": {\n tag: \"(3006,0048)\",\n vr: \"IS\",\n name: \"ContourNumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3006,0049)\": {\n tag: \"(3006,0049)\",\n vr: \"IS\",\n name: \"AttachedContours\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(3006,004A)\": {\n tag: \"(3006,004A)\",\n vr: \"SQ\",\n name: \"SourcePixelPlanesCharacteristicsSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3006,0050)\": {\n tag: \"(3006,0050)\",\n vr: \"DS\",\n name: \"ContourData\",\n vm: \"3-3n\",\n version: \"DICOM\"\n },\n \"(3006,0080)\": {\n tag: \"(3006,0080)\",\n vr: \"SQ\",\n name: \"RTROIObservationsSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3006,0082)\": {\n tag: \"(3006,0082)\",\n vr: \"IS\",\n name: \"ObservationNumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3006,0084)\": {\n tag: \"(3006,0084)\",\n vr: \"IS\",\n name: \"ReferencedROINumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3006,0085)\": {\n tag: \"(3006,0085)\",\n vr: \"SH\",\n name: \"ROIObservationLabel\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3006,0086)\": {\n tag: \"(3006,0086)\",\n vr: \"SQ\",\n name: \"RTROIIdentificationCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3006,0088)\": {\n tag: \"(3006,0088)\",\n vr: \"ST\",\n name: \"ROIObservationDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3006,00A0)\": {\n tag: \"(3006,00A0)\",\n vr: \"SQ\",\n name: \"RelatedRTROIObservationsSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3006,00A4)\": {\n tag: \"(3006,00A4)\",\n vr: \"CS\",\n name: \"RTROIInterpretedType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3006,00A6)\": {\n tag: \"(3006,00A6)\",\n vr: \"PN\",\n name: \"ROIInterpreter\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3006,00B0)\": {\n tag: \"(3006,00B0)\",\n vr: \"SQ\",\n name: \"ROIPhysicalPropertiesSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3006,00B2)\": {\n tag: \"(3006,00B2)\",\n vr: \"CS\",\n name: \"ROIPhysicalProperty\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3006,00B4)\": {\n tag: \"(3006,00B4)\",\n vr: \"DS\",\n name: \"ROIPhysicalPropertyValue\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3006,00B6)\": {\n tag: \"(3006,00B6)\",\n vr: \"SQ\",\n name: \"ROIElementalCompositionSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3006,00B7)\": {\n tag: \"(3006,00B7)\",\n vr: \"US\",\n name: \"ROIElementalCompositionAtomicNumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3006,00B8)\": {\n tag: \"(3006,00B8)\",\n vr: \"FL\",\n name: \"ROIElementalCompositionAtomicMassFraction\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3006,00B9)\": {\n tag: \"(3006,00B9)\",\n vr: \"SQ\",\n name: \"AdditionalRTROIIdentificationCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3006,00C6)\": {\n tag: \"(3006,00C6)\",\n vr: \"DS\",\n name: \"FrameOfReferenceTransformationMatrix\",\n vm: \"16\",\n version: \"DICOM\"\n },\n \"(3006,00C8)\": {\n tag: \"(3006,00C8)\",\n vr: \"LO\",\n name: \"FrameOfReferenceTransformationComment\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3006,00C9)\": {\n tag: \"(3006,00C9)\",\n vr: \"SQ\",\n name: \"PatientLocationCoordinatesSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3006,00CA)\": {\n tag: \"(3006,00CA)\",\n vr: \"SQ\",\n name: \"PatientLocationCoordinatesCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3006,00CB)\": {\n tag: \"(3006,00CB)\",\n vr: \"SQ\",\n name: \"PatientSupportPositionSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3008,0010)\": {\n tag: \"(3008,0010)\",\n vr: \"SQ\",\n name: \"MeasuredDoseReferenceSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3008,0012)\": {\n tag: \"(3008,0012)\",\n vr: \"ST\",\n name: \"MeasuredDoseDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3008,0014)\": {\n tag: \"(3008,0014)\",\n vr: \"CS\",\n name: \"MeasuredDoseType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3008,0016)\": {\n tag: \"(3008,0016)\",\n vr: \"DS\",\n name: \"MeasuredDoseValue\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3008,0020)\": {\n tag: \"(3008,0020)\",\n vr: \"SQ\",\n name: \"TreatmentSessionBeamSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3008,0021)\": {\n tag: \"(3008,0021)\",\n vr: \"SQ\",\n name: \"TreatmentSessionIonBeamSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3008,0022)\": {\n tag: \"(3008,0022)\",\n vr: \"IS\",\n name: \"CurrentFractionNumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3008,0024)\": {\n tag: \"(3008,0024)\",\n vr: \"DA\",\n name: \"TreatmentControlPointDate\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3008,0025)\": {\n tag: \"(3008,0025)\",\n vr: \"TM\",\n name: \"TreatmentControlPointTime\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3008,002A)\": {\n tag: \"(3008,002A)\",\n vr: \"CS\",\n name: \"TreatmentTerminationStatus\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3008,002B)\": {\n tag: \"(3008,002B)\",\n vr: \"SH\",\n name: \"TreatmentTerminationCode\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3008,002C)\": {\n tag: \"(3008,002C)\",\n vr: \"CS\",\n name: \"TreatmentVerificationStatus\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3008,0030)\": {\n tag: \"(3008,0030)\",\n vr: \"SQ\",\n name: \"ReferencedTreatmentRecordSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3008,0032)\": {\n tag: \"(3008,0032)\",\n vr: \"DS\",\n name: \"SpecifiedPrimaryMeterset\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3008,0033)\": {\n tag: \"(3008,0033)\",\n vr: \"DS\",\n name: \"SpecifiedSecondaryMeterset\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3008,0036)\": {\n tag: \"(3008,0036)\",\n vr: \"DS\",\n name: \"DeliveredPrimaryMeterset\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3008,0037)\": {\n tag: \"(3008,0037)\",\n vr: \"DS\",\n name: \"DeliveredSecondaryMeterset\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3008,003A)\": {\n tag: \"(3008,003A)\",\n vr: \"DS\",\n name: \"SpecifiedTreatmentTime\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3008,003B)\": {\n tag: \"(3008,003B)\",\n vr: \"DS\",\n name: \"DeliveredTreatmentTime\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3008,0040)\": {\n tag: \"(3008,0040)\",\n vr: \"SQ\",\n name: \"ControlPointDeliverySequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3008,0041)\": {\n tag: \"(3008,0041)\",\n vr: \"SQ\",\n name: \"IonControlPointDeliverySequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3008,0042)\": {\n tag: \"(3008,0042)\",\n vr: \"DS\",\n name: \"SpecifiedMeterset\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3008,0044)\": {\n tag: \"(3008,0044)\",\n vr: \"DS\",\n name: \"DeliveredMeterset\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3008,0045)\": {\n tag: \"(3008,0045)\",\n vr: \"FL\",\n name: \"MetersetRateSet\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3008,0046)\": {\n tag: \"(3008,0046)\",\n vr: \"FL\",\n name: \"MetersetRateDelivered\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3008,0047)\": {\n tag: \"(3008,0047)\",\n vr: \"FL\",\n name: \"ScanSpotMetersetsDelivered\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(3008,0048)\": {\n tag: \"(3008,0048)\",\n vr: \"DS\",\n name: \"DoseRateDelivered\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3008,0050)\": {\n tag: \"(3008,0050)\",\n vr: \"SQ\",\n name: \"TreatmentSummaryCalculatedDoseReferenceSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3008,0052)\": {\n tag: \"(3008,0052)\",\n vr: \"DS\",\n name: \"CumulativeDoseToDoseReference\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3008,0054)\": {\n tag: \"(3008,0054)\",\n vr: \"DA\",\n name: \"FirstTreatmentDate\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3008,0056)\": {\n tag: \"(3008,0056)\",\n vr: \"DA\",\n name: \"MostRecentTreatmentDate\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3008,005A)\": {\n tag: \"(3008,005A)\",\n vr: \"IS\",\n name: \"NumberOfFractionsDelivered\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3008,0060)\": {\n tag: \"(3008,0060)\",\n vr: \"SQ\",\n name: \"OverrideSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3008,0061)\": {\n tag: \"(3008,0061)\",\n vr: \"AT\",\n name: \"ParameterSequencePointer\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3008,0062)\": {\n tag: \"(3008,0062)\",\n vr: \"AT\",\n name: \"OverrideParameterPointer\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3008,0063)\": {\n tag: \"(3008,0063)\",\n vr: \"IS\",\n name: \"ParameterItemIndex\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3008,0064)\": {\n tag: \"(3008,0064)\",\n vr: \"IS\",\n name: \"MeasuredDoseReferenceNumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3008,0065)\": {\n tag: \"(3008,0065)\",\n vr: \"AT\",\n name: \"ParameterPointer\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3008,0066)\": {\n tag: \"(3008,0066)\",\n vr: \"ST\",\n name: \"OverrideReason\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3008,0067)\": {\n tag: \"(3008,0067)\",\n vr: \"US\",\n name: \"ParameterValueNumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3008,0068)\": {\n tag: \"(3008,0068)\",\n vr: \"SQ\",\n name: \"CorrectedParameterSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3008,006A)\": {\n tag: \"(3008,006A)\",\n vr: \"FL\",\n name: \"CorrectionValue\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3008,0070)\": {\n tag: \"(3008,0070)\",\n vr: \"SQ\",\n name: \"CalculatedDoseReferenceSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3008,0072)\": {\n tag: \"(3008,0072)\",\n vr: \"IS\",\n name: \"CalculatedDoseReferenceNumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3008,0074)\": {\n tag: \"(3008,0074)\",\n vr: \"ST\",\n name: \"CalculatedDoseReferenceDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3008,0076)\": {\n tag: \"(3008,0076)\",\n vr: \"DS\",\n name: \"CalculatedDoseReferenceDoseValue\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3008,0078)\": {\n tag: \"(3008,0078)\",\n vr: \"DS\",\n name: \"StartMeterset\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3008,007A)\": {\n tag: \"(3008,007A)\",\n vr: \"DS\",\n name: \"EndMeterset\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3008,0080)\": {\n tag: \"(3008,0080)\",\n vr: \"SQ\",\n name: \"ReferencedMeasuredDoseReferenceSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3008,0082)\": {\n tag: \"(3008,0082)\",\n vr: \"IS\",\n name: \"ReferencedMeasuredDoseReferenceNumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3008,0090)\": {\n tag: \"(3008,0090)\",\n vr: \"SQ\",\n name: \"ReferencedCalculatedDoseReferenceSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3008,0092)\": {\n tag: \"(3008,0092)\",\n vr: \"IS\",\n name: \"ReferencedCalculatedDoseReferenceNumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3008,00A0)\": {\n tag: \"(3008,00A0)\",\n vr: \"SQ\",\n name: \"BeamLimitingDeviceLeafPairsSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3008,00B0)\": {\n tag: \"(3008,00B0)\",\n vr: \"SQ\",\n name: \"RecordedWedgeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3008,00C0)\": {\n tag: \"(3008,00C0)\",\n vr: \"SQ\",\n name: \"RecordedCompensatorSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3008,00D0)\": {\n tag: \"(3008,00D0)\",\n vr: \"SQ\",\n name: \"RecordedBlockSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3008,00E0)\": {\n tag: \"(3008,00E0)\",\n vr: \"SQ\",\n name: \"TreatmentSummaryMeasuredDoseReferenceSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3008,00F0)\": {\n tag: \"(3008,00F0)\",\n vr: \"SQ\",\n name: \"RecordedSnoutSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3008,00F2)\": {\n tag: \"(3008,00F2)\",\n vr: \"SQ\",\n name: \"RecordedRangeShifterSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3008,00F4)\": {\n tag: \"(3008,00F4)\",\n vr: \"SQ\",\n name: \"RecordedLateralSpreadingDeviceSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3008,00F6)\": {\n tag: \"(3008,00F6)\",\n vr: \"SQ\",\n name: \"RecordedRangeModulatorSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3008,0100)\": {\n tag: \"(3008,0100)\",\n vr: \"SQ\",\n name: \"RecordedSourceSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3008,0105)\": {\n tag: \"(3008,0105)\",\n vr: \"LO\",\n name: \"SourceSerialNumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3008,0110)\": {\n tag: \"(3008,0110)\",\n vr: \"SQ\",\n name: \"TreatmentSessionApplicationSetupSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3008,0116)\": {\n tag: \"(3008,0116)\",\n vr: \"CS\",\n name: \"ApplicationSetupCheck\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3008,0120)\": {\n tag: \"(3008,0120)\",\n vr: \"SQ\",\n name: \"RecordedBrachyAccessoryDeviceSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3008,0122)\": {\n tag: \"(3008,0122)\",\n vr: \"IS\",\n name: \"ReferencedBrachyAccessoryDeviceNumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3008,0130)\": {\n tag: \"(3008,0130)\",\n vr: \"SQ\",\n name: \"RecordedChannelSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3008,0132)\": {\n tag: \"(3008,0132)\",\n vr: \"DS\",\n name: \"SpecifiedChannelTotalTime\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3008,0134)\": {\n tag: \"(3008,0134)\",\n vr: \"DS\",\n name: \"DeliveredChannelTotalTime\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3008,0136)\": {\n tag: \"(3008,0136)\",\n vr: \"IS\",\n name: \"SpecifiedNumberOfPulses\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3008,0138)\": {\n tag: \"(3008,0138)\",\n vr: \"IS\",\n name: \"DeliveredNumberOfPulses\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3008,013A)\": {\n tag: \"(3008,013A)\",\n vr: \"DS\",\n name: \"SpecifiedPulseRepetitionInterval\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3008,013C)\": {\n tag: \"(3008,013C)\",\n vr: \"DS\",\n name: \"DeliveredPulseRepetitionInterval\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3008,0140)\": {\n tag: \"(3008,0140)\",\n vr: \"SQ\",\n name: \"RecordedSourceApplicatorSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3008,0142)\": {\n tag: \"(3008,0142)\",\n vr: \"IS\",\n name: \"ReferencedSourceApplicatorNumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3008,0150)\": {\n tag: \"(3008,0150)\",\n vr: \"SQ\",\n name: \"RecordedChannelShieldSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3008,0152)\": {\n tag: \"(3008,0152)\",\n vr: \"IS\",\n name: \"ReferencedChannelShieldNumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3008,0160)\": {\n tag: \"(3008,0160)\",\n vr: \"SQ\",\n name: \"BrachyControlPointDeliveredSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3008,0162)\": {\n tag: \"(3008,0162)\",\n vr: \"DA\",\n name: \"SafePositionExitDate\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3008,0164)\": {\n tag: \"(3008,0164)\",\n vr: \"TM\",\n name: \"SafePositionExitTime\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3008,0166)\": {\n tag: \"(3008,0166)\",\n vr: \"DA\",\n name: \"SafePositionReturnDate\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3008,0168)\": {\n tag: \"(3008,0168)\",\n vr: \"TM\",\n name: \"SafePositionReturnTime\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3008,0171)\": {\n tag: \"(3008,0171)\",\n vr: \"SQ\",\n name: \"PulseSpecificBrachyControlPointDeliveredSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3008,0172)\": {\n tag: \"(3008,0172)\",\n vr: \"US\",\n name: \"PulseNumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3008,0173)\": {\n tag: \"(3008,0173)\",\n vr: \"SQ\",\n name: \"BrachyPulseControlPointDeliveredSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3008,0200)\": {\n tag: \"(3008,0200)\",\n vr: \"CS\",\n name: \"CurrentTreatmentStatus\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3008,0202)\": {\n tag: \"(3008,0202)\",\n vr: \"ST\",\n name: \"TreatmentStatusComment\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3008,0220)\": {\n tag: \"(3008,0220)\",\n vr: \"SQ\",\n name: \"FractionGroupSummarySequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3008,0223)\": {\n tag: \"(3008,0223)\",\n vr: \"IS\",\n name: \"ReferencedFractionNumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3008,0224)\": {\n tag: \"(3008,0224)\",\n vr: \"CS\",\n name: \"FractionGroupType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3008,0230)\": {\n tag: \"(3008,0230)\",\n vr: \"CS\",\n name: \"BeamStopperPosition\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3008,0240)\": {\n tag: \"(3008,0240)\",\n vr: \"SQ\",\n name: \"FractionStatusSummarySequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3008,0250)\": {\n tag: \"(3008,0250)\",\n vr: \"DA\",\n name: \"TreatmentDate\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3008,0251)\": {\n tag: \"(3008,0251)\",\n vr: \"TM\",\n name: \"TreatmentTime\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0002)\": {\n tag: \"(300A,0002)\",\n vr: \"SH\",\n name: \"RTPlanLabel\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0003)\": {\n tag: \"(300A,0003)\",\n vr: \"LO\",\n name: \"RTPlanName\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0004)\": {\n tag: \"(300A,0004)\",\n vr: \"ST\",\n name: \"RTPlanDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0006)\": {\n tag: \"(300A,0006)\",\n vr: \"DA\",\n name: \"RTPlanDate\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0007)\": {\n tag: \"(300A,0007)\",\n vr: \"TM\",\n name: \"RTPlanTime\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0009)\": {\n tag: \"(300A,0009)\",\n vr: \"LO\",\n name: \"TreatmentProtocols\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(300A,000A)\": {\n tag: \"(300A,000A)\",\n vr: \"CS\",\n name: \"PlanIntent\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,000B)\": {\n tag: \"(300A,000B)\",\n vr: \"LO\",\n name: \"TreatmentSites\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(300A,000C)\": {\n tag: \"(300A,000C)\",\n vr: \"CS\",\n name: \"RTPlanGeometry\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,000E)\": {\n tag: \"(300A,000E)\",\n vr: \"ST\",\n name: \"PrescriptionDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0010)\": {\n tag: \"(300A,0010)\",\n vr: \"SQ\",\n name: \"DoseReferenceSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0012)\": {\n tag: \"(300A,0012)\",\n vr: \"IS\",\n name: \"DoseReferenceNumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0013)\": {\n tag: \"(300A,0013)\",\n vr: \"UI\",\n name: \"DoseReferenceUID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0014)\": {\n tag: \"(300A,0014)\",\n vr: \"CS\",\n name: \"DoseReferenceStructureType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0015)\": {\n tag: \"(300A,0015)\",\n vr: \"CS\",\n name: \"NominalBeamEnergyUnit\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0016)\": {\n tag: \"(300A,0016)\",\n vr: \"LO\",\n name: \"DoseReferenceDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0018)\": {\n tag: \"(300A,0018)\",\n vr: \"DS\",\n name: \"DoseReferencePointCoordinates\",\n vm: \"3\",\n version: \"DICOM\"\n },\n \"(300A,001A)\": {\n tag: \"(300A,001A)\",\n vr: \"DS\",\n name: \"NominalPriorDose\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0020)\": {\n tag: \"(300A,0020)\",\n vr: \"CS\",\n name: \"DoseReferenceType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0021)\": {\n tag: \"(300A,0021)\",\n vr: \"DS\",\n name: \"ConstraintWeight\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0022)\": {\n tag: \"(300A,0022)\",\n vr: \"DS\",\n name: \"DeliveryWarningDose\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0023)\": {\n tag: \"(300A,0023)\",\n vr: \"DS\",\n name: \"DeliveryMaximumDose\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0025)\": {\n tag: \"(300A,0025)\",\n vr: \"DS\",\n name: \"TargetMinimumDose\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0026)\": {\n tag: \"(300A,0026)\",\n vr: \"DS\",\n name: \"TargetPrescriptionDose\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0027)\": {\n tag: \"(300A,0027)\",\n vr: \"DS\",\n name: \"TargetMaximumDose\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0028)\": {\n tag: \"(300A,0028)\",\n vr: \"DS\",\n name: \"TargetUnderdoseVolumeFraction\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,002A)\": {\n tag: \"(300A,002A)\",\n vr: \"DS\",\n name: \"OrganAtRiskFullVolumeDose\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,002B)\": {\n tag: \"(300A,002B)\",\n vr: \"DS\",\n name: \"OrganAtRiskLimitDose\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,002C)\": {\n tag: \"(300A,002C)\",\n vr: \"DS\",\n name: \"OrganAtRiskMaximumDose\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,002D)\": {\n tag: \"(300A,002D)\",\n vr: \"DS\",\n name: \"OrganAtRiskOverdoseVolumeFraction\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0040)\": {\n tag: \"(300A,0040)\",\n vr: \"SQ\",\n name: \"ToleranceTableSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0042)\": {\n tag: \"(300A,0042)\",\n vr: \"IS\",\n name: \"ToleranceTableNumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0043)\": {\n tag: \"(300A,0043)\",\n vr: \"SH\",\n name: \"ToleranceTableLabel\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0044)\": {\n tag: \"(300A,0044)\",\n vr: \"DS\",\n name: \"GantryAngleTolerance\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0046)\": {\n tag: \"(300A,0046)\",\n vr: \"DS\",\n name: \"BeamLimitingDeviceAngleTolerance\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0048)\": {\n tag: \"(300A,0048)\",\n vr: \"SQ\",\n name: \"BeamLimitingDeviceToleranceSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,004A)\": {\n tag: \"(300A,004A)\",\n vr: \"DS\",\n name: \"BeamLimitingDevicePositionTolerance\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,004B)\": {\n tag: \"(300A,004B)\",\n vr: \"FL\",\n name: \"SnoutPositionTolerance\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,004C)\": {\n tag: \"(300A,004C)\",\n vr: \"DS\",\n name: \"PatientSupportAngleTolerance\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,004E)\": {\n tag: \"(300A,004E)\",\n vr: \"DS\",\n name: \"TableTopEccentricAngleTolerance\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,004F)\": {\n tag: \"(300A,004F)\",\n vr: \"FL\",\n name: \"TableTopPitchAngleTolerance\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0050)\": {\n tag: \"(300A,0050)\",\n vr: \"FL\",\n name: \"TableTopRollAngleTolerance\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0051)\": {\n tag: \"(300A,0051)\",\n vr: \"DS\",\n name: \"TableTopVerticalPositionTolerance\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0052)\": {\n tag: \"(300A,0052)\",\n vr: \"DS\",\n name: \"TableTopLongitudinalPositionTolerance\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0053)\": {\n tag: \"(300A,0053)\",\n vr: \"DS\",\n name: \"TableTopLateralPositionTolerance\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0055)\": {\n tag: \"(300A,0055)\",\n vr: \"CS\",\n name: \"RTPlanRelationship\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0070)\": {\n tag: \"(300A,0070)\",\n vr: \"SQ\",\n name: \"FractionGroupSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0071)\": {\n tag: \"(300A,0071)\",\n vr: \"IS\",\n name: \"FractionGroupNumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0072)\": {\n tag: \"(300A,0072)\",\n vr: \"LO\",\n name: \"FractionGroupDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0078)\": {\n tag: \"(300A,0078)\",\n vr: \"IS\",\n name: \"NumberOfFractionsPlanned\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0079)\": {\n tag: \"(300A,0079)\",\n vr: \"IS\",\n name: \"NumberOfFractionPatternDigitsPerDay\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,007A)\": {\n tag: \"(300A,007A)\",\n vr: \"IS\",\n name: \"RepeatFractionCycleLength\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,007B)\": {\n tag: \"(300A,007B)\",\n vr: \"LT\",\n name: \"FractionPattern\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0080)\": {\n tag: \"(300A,0080)\",\n vr: \"IS\",\n name: \"NumberOfBeams\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0082)\": {\n tag: \"(300A,0082)\",\n vr: \"DS\",\n name: \"BeamDoseSpecificationPoint\",\n vm: \"3\",\n version: \"DICOM\"\n },\n \"(300A,0083)\": {\n tag: \"(300A,0083)\",\n vr: \"UI\",\n name: \"ReferencedDoseReferenceUID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0084)\": {\n tag: \"(300A,0084)\",\n vr: \"DS\",\n name: \"BeamDose\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0086)\": {\n tag: \"(300A,0086)\",\n vr: \"DS\",\n name: \"BeamMeterset\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,008B)\": {\n tag: \"(300A,008B)\",\n vr: \"CS\",\n name: \"BeamDoseMeaning\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,008C)\": {\n tag: \"(300A,008C)\",\n vr: \"SQ\",\n name: \"BeamDoseVerificationControlPointSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,008D)\": {\n tag: \"(300A,008D)\",\n vr: \"FL\",\n name: \"AverageBeamDosePointDepth\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,008E)\": {\n tag: \"(300A,008E)\",\n vr: \"FL\",\n name: \"AverageBeamDosePointEquivalentDepth\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,008F)\": {\n tag: \"(300A,008F)\",\n vr: \"FL\",\n name: \"AverageBeamDosePointSSD\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0090)\": {\n tag: \"(300A,0090)\",\n vr: \"CS\",\n name: \"BeamDoseType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0091)\": {\n tag: \"(300A,0091)\",\n vr: \"DS\",\n name: \"AlternateBeamDose\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0092)\": {\n tag: \"(300A,0092)\",\n vr: \"CS\",\n name: \"AlternateBeamDoseType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0093)\": {\n tag: \"(300A,0093)\",\n vr: \"CS\",\n name: \"DepthValueAveragingFlag\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0094)\": {\n tag: \"(300A,0094)\",\n vr: \"DS\",\n name: \"BeamDosePointSourceToExternalContourDistance\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,00A0)\": {\n tag: \"(300A,00A0)\",\n vr: \"IS\",\n name: \"NumberOfBrachyApplicationSetups\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,00A2)\": {\n tag: \"(300A,00A2)\",\n vr: \"DS\",\n name: \"BrachyApplicationSetupDoseSpecificationPoint\",\n vm: \"3\",\n version: \"DICOM\"\n },\n \"(300A,00A4)\": {\n tag: \"(300A,00A4)\",\n vr: \"DS\",\n name: \"BrachyApplicationSetupDose\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,00B0)\": {\n tag: \"(300A,00B0)\",\n vr: \"SQ\",\n name: \"BeamSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,00B2)\": {\n tag: \"(300A,00B2)\",\n vr: \"SH\",\n name: \"TreatmentMachineName\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,00B3)\": {\n tag: \"(300A,00B3)\",\n vr: \"CS\",\n name: \"PrimaryDosimeterUnit\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,00B4)\": {\n tag: \"(300A,00B4)\",\n vr: \"DS\",\n name: \"SourceAxisDistance\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,00B6)\": {\n tag: \"(300A,00B6)\",\n vr: \"SQ\",\n name: \"BeamLimitingDeviceSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,00B8)\": {\n tag: \"(300A,00B8)\",\n vr: \"CS\",\n name: \"RTBeamLimitingDeviceType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,00BA)\": {\n tag: \"(300A,00BA)\",\n vr: \"DS\",\n name: \"SourceToBeamLimitingDeviceDistance\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,00BB)\": {\n tag: \"(300A,00BB)\",\n vr: \"FL\",\n name: \"IsocenterToBeamLimitingDeviceDistance\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,00BC)\": {\n tag: \"(300A,00BC)\",\n vr: \"IS\",\n name: \"NumberOfLeafJawPairs\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,00BE)\": {\n tag: \"(300A,00BE)\",\n vr: \"DS\",\n name: \"LeafPositionBoundaries\",\n vm: \"3-n\",\n version: \"DICOM\"\n },\n \"(300A,00C0)\": {\n tag: \"(300A,00C0)\",\n vr: \"IS\",\n name: \"BeamNumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,00C2)\": {\n tag: \"(300A,00C2)\",\n vr: \"LO\",\n name: \"BeamName\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,00C3)\": {\n tag: \"(300A,00C3)\",\n vr: \"ST\",\n name: \"BeamDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,00C4)\": {\n tag: \"(300A,00C4)\",\n vr: \"CS\",\n name: \"BeamType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,00C5)\": {\n tag: \"(300A,00C5)\",\n vr: \"FD\",\n name: \"BeamDeliveryDurationLimit\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,00C6)\": {\n tag: \"(300A,00C6)\",\n vr: \"CS\",\n name: \"RadiationType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,00C7)\": {\n tag: \"(300A,00C7)\",\n vr: \"CS\",\n name: \"HighDoseTechniqueType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,00C8)\": {\n tag: \"(300A,00C8)\",\n vr: \"IS\",\n name: \"ReferenceImageNumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,00CA)\": {\n tag: \"(300A,00CA)\",\n vr: \"SQ\",\n name: \"PlannedVerificationImageSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,00CC)\": {\n tag: \"(300A,00CC)\",\n vr: \"LO\",\n name: \"ImagingDeviceSpecificAcquisitionParameters\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(300A,00CE)\": {\n tag: \"(300A,00CE)\",\n vr: \"CS\",\n name: \"TreatmentDeliveryType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,00D0)\": {\n tag: \"(300A,00D0)\",\n vr: \"IS\",\n name: \"NumberOfWedges\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,00D1)\": {\n tag: \"(300A,00D1)\",\n vr: \"SQ\",\n name: \"WedgeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,00D2)\": {\n tag: \"(300A,00D2)\",\n vr: \"IS\",\n name: \"WedgeNumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,00D3)\": {\n tag: \"(300A,00D3)\",\n vr: \"CS\",\n name: \"WedgeType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,00D4)\": {\n tag: \"(300A,00D4)\",\n vr: \"SH\",\n name: \"WedgeID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,00D5)\": {\n tag: \"(300A,00D5)\",\n vr: \"IS\",\n name: \"WedgeAngle\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,00D6)\": {\n tag: \"(300A,00D6)\",\n vr: \"DS\",\n name: \"WedgeFactor\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,00D7)\": {\n tag: \"(300A,00D7)\",\n vr: \"FL\",\n name: \"TotalWedgeTrayWaterEquivalentThickness\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,00D8)\": {\n tag: \"(300A,00D8)\",\n vr: \"DS\",\n name: \"WedgeOrientation\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,00D9)\": {\n tag: \"(300A,00D9)\",\n vr: \"FL\",\n name: \"IsocenterToWedgeTrayDistance\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,00DA)\": {\n tag: \"(300A,00DA)\",\n vr: \"DS\",\n name: \"SourceToWedgeTrayDistance\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,00DB)\": {\n tag: \"(300A,00DB)\",\n vr: \"FL\",\n name: \"WedgeThinEdgePosition\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,00DC)\": {\n tag: \"(300A,00DC)\",\n vr: \"SH\",\n name: \"BolusID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,00DD)\": {\n tag: \"(300A,00DD)\",\n vr: \"ST\",\n name: \"BolusDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,00DE)\": {\n tag: \"(300A,00DE)\",\n vr: \"DS\",\n name: \"EffectiveWedgeAngle\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,00E0)\": {\n tag: \"(300A,00E0)\",\n vr: \"IS\",\n name: \"NumberOfCompensators\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,00E1)\": {\n tag: \"(300A,00E1)\",\n vr: \"SH\",\n name: \"MaterialID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,00E2)\": {\n tag: \"(300A,00E2)\",\n vr: \"DS\",\n name: \"TotalCompensatorTrayFactor\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,00E3)\": {\n tag: \"(300A,00E3)\",\n vr: \"SQ\",\n name: \"CompensatorSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,00E4)\": {\n tag: \"(300A,00E4)\",\n vr: \"IS\",\n name: \"CompensatorNumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,00E5)\": {\n tag: \"(300A,00E5)\",\n vr: \"SH\",\n name: \"CompensatorID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,00E6)\": {\n tag: \"(300A,00E6)\",\n vr: \"DS\",\n name: \"SourceToCompensatorTrayDistance\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,00E7)\": {\n tag: \"(300A,00E7)\",\n vr: \"IS\",\n name: \"CompensatorRows\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,00E8)\": {\n tag: \"(300A,00E8)\",\n vr: \"IS\",\n name: \"CompensatorColumns\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,00E9)\": {\n tag: \"(300A,00E9)\",\n vr: \"DS\",\n name: \"CompensatorPixelSpacing\",\n vm: \"2\",\n version: \"DICOM\"\n },\n \"(300A,00EA)\": {\n tag: \"(300A,00EA)\",\n vr: \"DS\",\n name: \"CompensatorPosition\",\n vm: \"2\",\n version: \"DICOM\"\n },\n \"(300A,00EB)\": {\n tag: \"(300A,00EB)\",\n vr: \"DS\",\n name: \"CompensatorTransmissionData\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(300A,00EC)\": {\n tag: \"(300A,00EC)\",\n vr: \"DS\",\n name: \"CompensatorThicknessData\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(300A,00ED)\": {\n tag: \"(300A,00ED)\",\n vr: \"IS\",\n name: \"NumberOfBoli\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,00EE)\": {\n tag: \"(300A,00EE)\",\n vr: \"CS\",\n name: \"CompensatorType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,00EF)\": {\n tag: \"(300A,00EF)\",\n vr: \"SH\",\n name: \"CompensatorTrayID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,00F0)\": {\n tag: \"(300A,00F0)\",\n vr: \"IS\",\n name: \"NumberOfBlocks\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,00F2)\": {\n tag: \"(300A,00F2)\",\n vr: \"DS\",\n name: \"TotalBlockTrayFactor\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,00F3)\": {\n tag: \"(300A,00F3)\",\n vr: \"FL\",\n name: \"TotalBlockTrayWaterEquivalentThickness\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,00F4)\": {\n tag: \"(300A,00F4)\",\n vr: \"SQ\",\n name: \"BlockSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,00F5)\": {\n tag: \"(300A,00F5)\",\n vr: \"SH\",\n name: \"BlockTrayID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,00F6)\": {\n tag: \"(300A,00F6)\",\n vr: \"DS\",\n name: \"SourceToBlockTrayDistance\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,00F7)\": {\n tag: \"(300A,00F7)\",\n vr: \"FL\",\n name: \"IsocenterToBlockTrayDistance\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,00F8)\": {\n tag: \"(300A,00F8)\",\n vr: \"CS\",\n name: \"BlockType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,00F9)\": {\n tag: \"(300A,00F9)\",\n vr: \"LO\",\n name: \"AccessoryCode\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,00FA)\": {\n tag: \"(300A,00FA)\",\n vr: \"CS\",\n name: \"BlockDivergence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,00FB)\": {\n tag: \"(300A,00FB)\",\n vr: \"CS\",\n name: \"BlockMountingPosition\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,00FC)\": {\n tag: \"(300A,00FC)\",\n vr: \"IS\",\n name: \"BlockNumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,00FE)\": {\n tag: \"(300A,00FE)\",\n vr: \"LO\",\n name: \"BlockName\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0100)\": {\n tag: \"(300A,0100)\",\n vr: \"DS\",\n name: \"BlockThickness\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0102)\": {\n tag: \"(300A,0102)\",\n vr: \"DS\",\n name: \"BlockTransmission\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0104)\": {\n tag: \"(300A,0104)\",\n vr: \"IS\",\n name: \"BlockNumberOfPoints\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0106)\": {\n tag: \"(300A,0106)\",\n vr: \"DS\",\n name: \"BlockData\",\n vm: \"2-2n\",\n version: \"DICOM\"\n },\n \"(300A,0107)\": {\n tag: \"(300A,0107)\",\n vr: \"SQ\",\n name: \"ApplicatorSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0108)\": {\n tag: \"(300A,0108)\",\n vr: \"SH\",\n name: \"ApplicatorID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0109)\": {\n tag: \"(300A,0109)\",\n vr: \"CS\",\n name: \"ApplicatorType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,010A)\": {\n tag: \"(300A,010A)\",\n vr: \"LO\",\n name: \"ApplicatorDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,010C)\": {\n tag: \"(300A,010C)\",\n vr: \"DS\",\n name: \"CumulativeDoseReferenceCoefficient\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,010E)\": {\n tag: \"(300A,010E)\",\n vr: \"DS\",\n name: \"FinalCumulativeMetersetWeight\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0110)\": {\n tag: \"(300A,0110)\",\n vr: \"IS\",\n name: \"NumberOfControlPoints\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0111)\": {\n tag: \"(300A,0111)\",\n vr: \"SQ\",\n name: \"ControlPointSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0112)\": {\n tag: \"(300A,0112)\",\n vr: \"IS\",\n name: \"ControlPointIndex\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0114)\": {\n tag: \"(300A,0114)\",\n vr: \"DS\",\n name: \"NominalBeamEnergy\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0115)\": {\n tag: \"(300A,0115)\",\n vr: \"DS\",\n name: \"DoseRateSet\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0116)\": {\n tag: \"(300A,0116)\",\n vr: \"SQ\",\n name: \"WedgePositionSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0118)\": {\n tag: \"(300A,0118)\",\n vr: \"CS\",\n name: \"WedgePosition\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,011A)\": {\n tag: \"(300A,011A)\",\n vr: \"SQ\",\n name: \"BeamLimitingDevicePositionSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,011C)\": {\n tag: \"(300A,011C)\",\n vr: \"DS\",\n name: \"LeafJawPositions\",\n vm: \"2-2n\",\n version: \"DICOM\"\n },\n \"(300A,011E)\": {\n tag: \"(300A,011E)\",\n vr: \"DS\",\n name: \"GantryAngle\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,011F)\": {\n tag: \"(300A,011F)\",\n vr: \"CS\",\n name: \"GantryRotationDirection\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0120)\": {\n tag: \"(300A,0120)\",\n vr: \"DS\",\n name: \"BeamLimitingDeviceAngle\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0121)\": {\n tag: \"(300A,0121)\",\n vr: \"CS\",\n name: \"BeamLimitingDeviceRotationDirection\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0122)\": {\n tag: \"(300A,0122)\",\n vr: \"DS\",\n name: \"PatientSupportAngle\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0123)\": {\n tag: \"(300A,0123)\",\n vr: \"CS\",\n name: \"PatientSupportRotationDirection\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0124)\": {\n tag: \"(300A,0124)\",\n vr: \"DS\",\n name: \"TableTopEccentricAxisDistance\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0125)\": {\n tag: \"(300A,0125)\",\n vr: \"DS\",\n name: \"TableTopEccentricAngle\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0126)\": {\n tag: \"(300A,0126)\",\n vr: \"CS\",\n name: \"TableTopEccentricRotationDirection\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0128)\": {\n tag: \"(300A,0128)\",\n vr: \"DS\",\n name: \"TableTopVerticalPosition\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0129)\": {\n tag: \"(300A,0129)\",\n vr: \"DS\",\n name: \"TableTopLongitudinalPosition\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,012A)\": {\n tag: \"(300A,012A)\",\n vr: \"DS\",\n name: \"TableTopLateralPosition\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,012C)\": {\n tag: \"(300A,012C)\",\n vr: \"DS\",\n name: \"IsocenterPosition\",\n vm: \"3\",\n version: \"DICOM\"\n },\n \"(300A,012E)\": {\n tag: \"(300A,012E)\",\n vr: \"DS\",\n name: \"SurfaceEntryPoint\",\n vm: \"3\",\n version: \"DICOM\"\n },\n \"(300A,0130)\": {\n tag: \"(300A,0130)\",\n vr: \"DS\",\n name: \"SourceToSurfaceDistance\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0131)\": {\n tag: \"(300A,0131)\",\n vr: \"FL\",\n name: \"AverageBeamDosePointSourceToExternalContourSurfaceDistance\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0132)\": {\n tag: \"(300A,0132)\",\n vr: \"FL\",\n name: \"SourceToExternalContourDistance\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0133)\": {\n tag: \"(300A,0133)\",\n vr: \"FL\",\n name: \"ExternalContourEntryPoint\",\n vm: \"3\",\n version: \"DICOM\"\n },\n \"(300A,0134)\": {\n tag: \"(300A,0134)\",\n vr: \"DS\",\n name: \"CumulativeMetersetWeight\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0140)\": {\n tag: \"(300A,0140)\",\n vr: \"FL\",\n name: \"TableTopPitchAngle\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0142)\": {\n tag: \"(300A,0142)\",\n vr: \"CS\",\n name: \"TableTopPitchRotationDirection\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0144)\": {\n tag: \"(300A,0144)\",\n vr: \"FL\",\n name: \"TableTopRollAngle\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0146)\": {\n tag: \"(300A,0146)\",\n vr: \"CS\",\n name: \"TableTopRollRotationDirection\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0148)\": {\n tag: \"(300A,0148)\",\n vr: \"FL\",\n name: \"HeadFixationAngle\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,014A)\": {\n tag: \"(300A,014A)\",\n vr: \"FL\",\n name: \"GantryPitchAngle\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,014C)\": {\n tag: \"(300A,014C)\",\n vr: \"CS\",\n name: \"GantryPitchRotationDirection\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,014E)\": {\n tag: \"(300A,014E)\",\n vr: \"FL\",\n name: \"GantryPitchAngleTolerance\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0150)\": {\n tag: \"(300A,0150)\",\n vr: \"CS\",\n name: \"FixationEye\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0151)\": {\n tag: \"(300A,0151)\",\n vr: \"DS\",\n name: \"ChairHeadFramePosition\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0152)\": {\n tag: \"(300A,0152)\",\n vr: \"DS\",\n name: \"HeadFixationAngleTolerance\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0153)\": {\n tag: \"(300A,0153)\",\n vr: \"DS\",\n name: \"ChairHeadFramePositionTolerance\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0154)\": {\n tag: \"(300A,0154)\",\n vr: \"DS\",\n name: \"FixationLightAzimuthalAngleTolerance\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0155)\": {\n tag: \"(300A,0155)\",\n vr: \"DS\",\n name: \"FixationLightPolarAngleTolerance\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0180)\": {\n tag: \"(300A,0180)\",\n vr: \"SQ\",\n name: \"PatientSetupSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0182)\": {\n tag: \"(300A,0182)\",\n vr: \"IS\",\n name: \"PatientSetupNumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0183)\": {\n tag: \"(300A,0183)\",\n vr: \"LO\",\n name: \"PatientSetupLabel\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0184)\": {\n tag: \"(300A,0184)\",\n vr: \"LO\",\n name: \"PatientAdditionalPosition\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0190)\": {\n tag: \"(300A,0190)\",\n vr: \"SQ\",\n name: \"FixationDeviceSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0192)\": {\n tag: \"(300A,0192)\",\n vr: \"CS\",\n name: \"FixationDeviceType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0194)\": {\n tag: \"(300A,0194)\",\n vr: \"SH\",\n name: \"FixationDeviceLabel\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0196)\": {\n tag: \"(300A,0196)\",\n vr: \"ST\",\n name: \"FixationDeviceDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0198)\": {\n tag: \"(300A,0198)\",\n vr: \"SH\",\n name: \"FixationDevicePosition\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0199)\": {\n tag: \"(300A,0199)\",\n vr: \"FL\",\n name: \"FixationDevicePitchAngle\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,019A)\": {\n tag: \"(300A,019A)\",\n vr: \"FL\",\n name: \"FixationDeviceRollAngle\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,01A0)\": {\n tag: \"(300A,01A0)\",\n vr: \"SQ\",\n name: \"ShieldingDeviceSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,01A2)\": {\n tag: \"(300A,01A2)\",\n vr: \"CS\",\n name: \"ShieldingDeviceType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,01A4)\": {\n tag: \"(300A,01A4)\",\n vr: \"SH\",\n name: \"ShieldingDeviceLabel\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,01A6)\": {\n tag: \"(300A,01A6)\",\n vr: \"ST\",\n name: \"ShieldingDeviceDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,01A8)\": {\n tag: \"(300A,01A8)\",\n vr: \"SH\",\n name: \"ShieldingDevicePosition\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,01B0)\": {\n tag: \"(300A,01B0)\",\n vr: \"CS\",\n name: \"SetupTechnique\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,01B2)\": {\n tag: \"(300A,01B2)\",\n vr: \"ST\",\n name: \"SetupTechniqueDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,01B4)\": {\n tag: \"(300A,01B4)\",\n vr: \"SQ\",\n name: \"SetupDeviceSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,01B6)\": {\n tag: \"(300A,01B6)\",\n vr: \"CS\",\n name: \"SetupDeviceType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,01B8)\": {\n tag: \"(300A,01B8)\",\n vr: \"SH\",\n name: \"SetupDeviceLabel\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,01BA)\": {\n tag: \"(300A,01BA)\",\n vr: \"ST\",\n name: \"SetupDeviceDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,01BC)\": {\n tag: \"(300A,01BC)\",\n vr: \"DS\",\n name: \"SetupDeviceParameter\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,01D0)\": {\n tag: \"(300A,01D0)\",\n vr: \"ST\",\n name: \"SetupReferenceDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,01D2)\": {\n tag: \"(300A,01D2)\",\n vr: \"DS\",\n name: \"TableTopVerticalSetupDisplacement\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,01D4)\": {\n tag: \"(300A,01D4)\",\n vr: \"DS\",\n name: \"TableTopLongitudinalSetupDisplacement\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,01D6)\": {\n tag: \"(300A,01D6)\",\n vr: \"DS\",\n name: \"TableTopLateralSetupDisplacement\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0200)\": {\n tag: \"(300A,0200)\",\n vr: \"CS\",\n name: \"BrachyTreatmentTechnique\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0202)\": {\n tag: \"(300A,0202)\",\n vr: \"CS\",\n name: \"BrachyTreatmentType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0206)\": {\n tag: \"(300A,0206)\",\n vr: \"SQ\",\n name: \"TreatmentMachineSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0210)\": {\n tag: \"(300A,0210)\",\n vr: \"SQ\",\n name: \"SourceSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0212)\": {\n tag: \"(300A,0212)\",\n vr: \"IS\",\n name: \"SourceNumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0214)\": {\n tag: \"(300A,0214)\",\n vr: \"CS\",\n name: \"SourceType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0216)\": {\n tag: \"(300A,0216)\",\n vr: \"LO\",\n name: \"SourceManufacturer\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0218)\": {\n tag: \"(300A,0218)\",\n vr: \"DS\",\n name: \"ActiveSourceDiameter\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,021A)\": {\n tag: \"(300A,021A)\",\n vr: \"DS\",\n name: \"ActiveSourceLength\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,021B)\": {\n tag: \"(300A,021B)\",\n vr: \"SH\",\n name: \"SourceModelID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,021C)\": {\n tag: \"(300A,021C)\",\n vr: \"LO\",\n name: \"SourceDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0222)\": {\n tag: \"(300A,0222)\",\n vr: \"DS\",\n name: \"SourceEncapsulationNominalThickness\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0224)\": {\n tag: \"(300A,0224)\",\n vr: \"DS\",\n name: \"SourceEncapsulationNominalTransmission\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0226)\": {\n tag: \"(300A,0226)\",\n vr: \"LO\",\n name: \"SourceIsotopeName\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0228)\": {\n tag: \"(300A,0228)\",\n vr: \"DS\",\n name: \"SourceIsotopeHalfLife\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0229)\": {\n tag: \"(300A,0229)\",\n vr: \"CS\",\n name: \"SourceStrengthUnits\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,022A)\": {\n tag: \"(300A,022A)\",\n vr: \"DS\",\n name: \"ReferenceAirKermaRate\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,022B)\": {\n tag: \"(300A,022B)\",\n vr: \"DS\",\n name: \"SourceStrength\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,022C)\": {\n tag: \"(300A,022C)\",\n vr: \"DA\",\n name: \"SourceStrengthReferenceDate\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,022E)\": {\n tag: \"(300A,022E)\",\n vr: \"TM\",\n name: \"SourceStrengthReferenceTime\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0230)\": {\n tag: \"(300A,0230)\",\n vr: \"SQ\",\n name: \"ApplicationSetupSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0232)\": {\n tag: \"(300A,0232)\",\n vr: \"CS\",\n name: \"ApplicationSetupType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0234)\": {\n tag: \"(300A,0234)\",\n vr: \"IS\",\n name: \"ApplicationSetupNumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0236)\": {\n tag: \"(300A,0236)\",\n vr: \"LO\",\n name: \"ApplicationSetupName\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0238)\": {\n tag: \"(300A,0238)\",\n vr: \"LO\",\n name: \"ApplicationSetupManufacturer\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0240)\": {\n tag: \"(300A,0240)\",\n vr: \"IS\",\n name: \"TemplateNumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0242)\": {\n tag: \"(300A,0242)\",\n vr: \"SH\",\n name: \"TemplateType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0244)\": {\n tag: \"(300A,0244)\",\n vr: \"LO\",\n name: \"TemplateName\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0250)\": {\n tag: \"(300A,0250)\",\n vr: \"DS\",\n name: \"TotalReferenceAirKerma\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0260)\": {\n tag: \"(300A,0260)\",\n vr: \"SQ\",\n name: \"BrachyAccessoryDeviceSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0262)\": {\n tag: \"(300A,0262)\",\n vr: \"IS\",\n name: \"BrachyAccessoryDeviceNumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0263)\": {\n tag: \"(300A,0263)\",\n vr: \"SH\",\n name: \"BrachyAccessoryDeviceID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0264)\": {\n tag: \"(300A,0264)\",\n vr: \"CS\",\n name: \"BrachyAccessoryDeviceType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0266)\": {\n tag: \"(300A,0266)\",\n vr: \"LO\",\n name: \"BrachyAccessoryDeviceName\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,026A)\": {\n tag: \"(300A,026A)\",\n vr: \"DS\",\n name: \"BrachyAccessoryDeviceNominalThickness\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,026C)\": {\n tag: \"(300A,026C)\",\n vr: \"DS\",\n name: \"BrachyAccessoryDeviceNominalTransmission\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0271)\": {\n tag: \"(300A,0271)\",\n vr: \"DS\",\n name: \"ChannelEffectiveLength\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0272)\": {\n tag: \"(300A,0272)\",\n vr: \"DS\",\n name: \"ChannelInnerLength\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0273)\": {\n tag: \"(300A,0273)\",\n vr: \"SH\",\n name: \"AfterloaderChannelID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0274)\": {\n tag: \"(300A,0274)\",\n vr: \"DS\",\n name: \"SourceApplicatorTipLength\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0280)\": {\n tag: \"(300A,0280)\",\n vr: \"SQ\",\n name: \"ChannelSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0282)\": {\n tag: \"(300A,0282)\",\n vr: \"IS\",\n name: \"ChannelNumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0284)\": {\n tag: \"(300A,0284)\",\n vr: \"DS\",\n name: \"ChannelLength\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0286)\": {\n tag: \"(300A,0286)\",\n vr: \"DS\",\n name: \"ChannelTotalTime\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0288)\": {\n tag: \"(300A,0288)\",\n vr: \"CS\",\n name: \"SourceMovementType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,028A)\": {\n tag: \"(300A,028A)\",\n vr: \"IS\",\n name: \"NumberOfPulses\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,028C)\": {\n tag: \"(300A,028C)\",\n vr: \"DS\",\n name: \"PulseRepetitionInterval\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0290)\": {\n tag: \"(300A,0290)\",\n vr: \"IS\",\n name: \"SourceApplicatorNumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0291)\": {\n tag: \"(300A,0291)\",\n vr: \"SH\",\n name: \"SourceApplicatorID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0292)\": {\n tag: \"(300A,0292)\",\n vr: \"CS\",\n name: \"SourceApplicatorType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0294)\": {\n tag: \"(300A,0294)\",\n vr: \"LO\",\n name: \"SourceApplicatorName\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0296)\": {\n tag: \"(300A,0296)\",\n vr: \"DS\",\n name: \"SourceApplicatorLength\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0298)\": {\n tag: \"(300A,0298)\",\n vr: \"LO\",\n name: \"SourceApplicatorManufacturer\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,029C)\": {\n tag: \"(300A,029C)\",\n vr: \"DS\",\n name: \"SourceApplicatorWallNominalThickness\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,029E)\": {\n tag: \"(300A,029E)\",\n vr: \"DS\",\n name: \"SourceApplicatorWallNominalTransmission\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,02A0)\": {\n tag: \"(300A,02A0)\",\n vr: \"DS\",\n name: \"SourceApplicatorStepSize\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,02A2)\": {\n tag: \"(300A,02A2)\",\n vr: \"IS\",\n name: \"TransferTubeNumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,02A4)\": {\n tag: \"(300A,02A4)\",\n vr: \"DS\",\n name: \"TransferTubeLength\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,02B0)\": {\n tag: \"(300A,02B0)\",\n vr: \"SQ\",\n name: \"ChannelShieldSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,02B2)\": {\n tag: \"(300A,02B2)\",\n vr: \"IS\",\n name: \"ChannelShieldNumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,02B3)\": {\n tag: \"(300A,02B3)\",\n vr: \"SH\",\n name: \"ChannelShieldID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,02B4)\": {\n tag: \"(300A,02B4)\",\n vr: \"LO\",\n name: \"ChannelShieldName\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,02B8)\": {\n tag: \"(300A,02B8)\",\n vr: \"DS\",\n name: \"ChannelShieldNominalThickness\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,02BA)\": {\n tag: \"(300A,02BA)\",\n vr: \"DS\",\n name: \"ChannelShieldNominalTransmission\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,02C8)\": {\n tag: \"(300A,02C8)\",\n vr: \"DS\",\n name: \"FinalCumulativeTimeWeight\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,02D0)\": {\n tag: \"(300A,02D0)\",\n vr: \"SQ\",\n name: \"BrachyControlPointSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,02D2)\": {\n tag: \"(300A,02D2)\",\n vr: \"DS\",\n name: \"ControlPointRelativePosition\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,02D4)\": {\n tag: \"(300A,02D4)\",\n vr: \"DS\",\n name: \"ControlPoint3DPosition\",\n vm: \"3\",\n version: \"DICOM\"\n },\n \"(300A,02D6)\": {\n tag: \"(300A,02D6)\",\n vr: \"DS\",\n name: \"CumulativeTimeWeight\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,02E0)\": {\n tag: \"(300A,02E0)\",\n vr: \"CS\",\n name: \"CompensatorDivergence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,02E1)\": {\n tag: \"(300A,02E1)\",\n vr: \"CS\",\n name: \"CompensatorMountingPosition\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,02E2)\": {\n tag: \"(300A,02E2)\",\n vr: \"DS\",\n name: \"SourceToCompensatorDistance\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(300A,02E3)\": {\n tag: \"(300A,02E3)\",\n vr: \"FL\",\n name: \"TotalCompensatorTrayWaterEquivalentThickness\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,02E4)\": {\n tag: \"(300A,02E4)\",\n vr: \"FL\",\n name: \"IsocenterToCompensatorTrayDistance\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,02E5)\": {\n tag: \"(300A,02E5)\",\n vr: \"FL\",\n name: \"CompensatorColumnOffset\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,02E6)\": {\n tag: \"(300A,02E6)\",\n vr: \"FL\",\n name: \"IsocenterToCompensatorDistances\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(300A,02E7)\": {\n tag: \"(300A,02E7)\",\n vr: \"FL\",\n name: \"CompensatorRelativeStoppingPowerRatio\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,02E8)\": {\n tag: \"(300A,02E8)\",\n vr: \"FL\",\n name: \"CompensatorMillingToolDiameter\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,02EA)\": {\n tag: \"(300A,02EA)\",\n vr: \"SQ\",\n name: \"IonRangeCompensatorSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,02EB)\": {\n tag: \"(300A,02EB)\",\n vr: \"LT\",\n name: \"CompensatorDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0302)\": {\n tag: \"(300A,0302)\",\n vr: \"IS\",\n name: \"RadiationMassNumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0304)\": {\n tag: \"(300A,0304)\",\n vr: \"IS\",\n name: \"RadiationAtomicNumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0306)\": {\n tag: \"(300A,0306)\",\n vr: \"SS\",\n name: \"RadiationChargeState\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0308)\": {\n tag: \"(300A,0308)\",\n vr: \"CS\",\n name: \"ScanMode\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0309)\": {\n tag: \"(300A,0309)\",\n vr: \"CS\",\n name: \"ModulatedScanModeType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,030A)\": {\n tag: \"(300A,030A)\",\n vr: \"FL\",\n name: \"VirtualSourceAxisDistances\",\n vm: \"2\",\n version: \"DICOM\"\n },\n \"(300A,030C)\": {\n tag: \"(300A,030C)\",\n vr: \"SQ\",\n name: \"SnoutSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,030D)\": {\n tag: \"(300A,030D)\",\n vr: \"FL\",\n name: \"SnoutPosition\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,030F)\": {\n tag: \"(300A,030F)\",\n vr: \"SH\",\n name: \"SnoutID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0312)\": {\n tag: \"(300A,0312)\",\n vr: \"IS\",\n name: \"NumberOfRangeShifters\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0314)\": {\n tag: \"(300A,0314)\",\n vr: \"SQ\",\n name: \"RangeShifterSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0316)\": {\n tag: \"(300A,0316)\",\n vr: \"IS\",\n name: \"RangeShifterNumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0318)\": {\n tag: \"(300A,0318)\",\n vr: \"SH\",\n name: \"RangeShifterID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0320)\": {\n tag: \"(300A,0320)\",\n vr: \"CS\",\n name: \"RangeShifterType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0322)\": {\n tag: \"(300A,0322)\",\n vr: \"LO\",\n name: \"RangeShifterDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0330)\": {\n tag: \"(300A,0330)\",\n vr: \"IS\",\n name: \"NumberOfLateralSpreadingDevices\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0332)\": {\n tag: \"(300A,0332)\",\n vr: \"SQ\",\n name: \"LateralSpreadingDeviceSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0334)\": {\n tag: \"(300A,0334)\",\n vr: \"IS\",\n name: \"LateralSpreadingDeviceNumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0336)\": {\n tag: \"(300A,0336)\",\n vr: \"SH\",\n name: \"LateralSpreadingDeviceID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0338)\": {\n tag: \"(300A,0338)\",\n vr: \"CS\",\n name: \"LateralSpreadingDeviceType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,033A)\": {\n tag: \"(300A,033A)\",\n vr: \"LO\",\n name: \"LateralSpreadingDeviceDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,033C)\": {\n tag: \"(300A,033C)\",\n vr: \"FL\",\n name: \"LateralSpreadingDeviceWaterEquivalentThickness\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0340)\": {\n tag: \"(300A,0340)\",\n vr: \"IS\",\n name: \"NumberOfRangeModulators\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0342)\": {\n tag: \"(300A,0342)\",\n vr: \"SQ\",\n name: \"RangeModulatorSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0344)\": {\n tag: \"(300A,0344)\",\n vr: \"IS\",\n name: \"RangeModulatorNumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0346)\": {\n tag: \"(300A,0346)\",\n vr: \"SH\",\n name: \"RangeModulatorID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0348)\": {\n tag: \"(300A,0348)\",\n vr: \"CS\",\n name: \"RangeModulatorType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,034A)\": {\n tag: \"(300A,034A)\",\n vr: \"LO\",\n name: \"RangeModulatorDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,034C)\": {\n tag: \"(300A,034C)\",\n vr: \"SH\",\n name: \"BeamCurrentModulationID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0350)\": {\n tag: \"(300A,0350)\",\n vr: \"CS\",\n name: \"PatientSupportType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0352)\": {\n tag: \"(300A,0352)\",\n vr: \"SH\",\n name: \"PatientSupportID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0354)\": {\n tag: \"(300A,0354)\",\n vr: \"LO\",\n name: \"PatientSupportAccessoryCode\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0355)\": {\n tag: \"(300A,0355)\",\n vr: \"LO\",\n name: \"TrayAccessoryCode\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0356)\": {\n tag: \"(300A,0356)\",\n vr: \"FL\",\n name: \"FixationLightAzimuthalAngle\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0358)\": {\n tag: \"(300A,0358)\",\n vr: \"FL\",\n name: \"FixationLightPolarAngle\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,035A)\": {\n tag: \"(300A,035A)\",\n vr: \"FL\",\n name: \"MetersetRate\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0360)\": {\n tag: \"(300A,0360)\",\n vr: \"SQ\",\n name: \"RangeShifterSettingsSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0362)\": {\n tag: \"(300A,0362)\",\n vr: \"LO\",\n name: \"RangeShifterSetting\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0364)\": {\n tag: \"(300A,0364)\",\n vr: \"FL\",\n name: \"IsocenterToRangeShifterDistance\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0366)\": {\n tag: \"(300A,0366)\",\n vr: \"FL\",\n name: \"RangeShifterWaterEquivalentThickness\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0370)\": {\n tag: \"(300A,0370)\",\n vr: \"SQ\",\n name: \"LateralSpreadingDeviceSettingsSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0372)\": {\n tag: \"(300A,0372)\",\n vr: \"LO\",\n name: \"LateralSpreadingDeviceSetting\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0374)\": {\n tag: \"(300A,0374)\",\n vr: \"FL\",\n name: \"IsocenterToLateralSpreadingDeviceDistance\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0380)\": {\n tag: \"(300A,0380)\",\n vr: \"SQ\",\n name: \"RangeModulatorSettingsSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0382)\": {\n tag: \"(300A,0382)\",\n vr: \"FL\",\n name: \"RangeModulatorGatingStartValue\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0384)\": {\n tag: \"(300A,0384)\",\n vr: \"FL\",\n name: \"RangeModulatorGatingStopValue\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0386)\": {\n tag: \"(300A,0386)\",\n vr: \"FL\",\n name: \"RangeModulatorGatingStartWaterEquivalentThickness\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0388)\": {\n tag: \"(300A,0388)\",\n vr: \"FL\",\n name: \"RangeModulatorGatingStopWaterEquivalentThickness\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,038A)\": {\n tag: \"(300A,038A)\",\n vr: \"FL\",\n name: \"IsocenterToRangeModulatorDistance\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,038F)\": {\n tag: \"(300A,038F)\",\n vr: \"FL\",\n name: \"ScanSpotTimeOffset\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(300A,0390)\": {\n tag: \"(300A,0390)\",\n vr: \"SH\",\n name: \"ScanSpotTuneID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0391)\": {\n tag: \"(300A,0391)\",\n vr: \"IS\",\n name: \"ScanSpotPrescribedIndices\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(300A,0392)\": {\n tag: \"(300A,0392)\",\n vr: \"IS\",\n name: \"NumberOfScanSpotPositions\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0393)\": {\n tag: \"(300A,0393)\",\n vr: \"CS\",\n name: \"ScanSpotReordered\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0394)\": {\n tag: \"(300A,0394)\",\n vr: \"FL\",\n name: \"ScanSpotPositionMap\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(300A,0395)\": {\n tag: \"(300A,0395)\",\n vr: \"CS\",\n name: \"ScanSpotReorderingAllowed\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0396)\": {\n tag: \"(300A,0396)\",\n vr: \"FL\",\n name: \"ScanSpotMetersetWeights\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(300A,0398)\": {\n tag: \"(300A,0398)\",\n vr: \"FL\",\n name: \"ScanningSpotSize\",\n vm: \"2\",\n version: \"DICOM\"\n },\n \"(300A,0399)\": {\n tag: \"(300A,0399)\",\n vr: \"FL\",\n name: \"ScanSpotSizesDelivered\",\n vm: \"2-2n\",\n version: \"DICOM\"\n },\n \"(300A,039A)\": {\n tag: \"(300A,039A)\",\n vr: \"IS\",\n name: \"NumberOfPaintings\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,03A0)\": {\n tag: \"(300A,03A0)\",\n vr: \"SQ\",\n name: \"IonToleranceTableSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,03A2)\": {\n tag: \"(300A,03A2)\",\n vr: \"SQ\",\n name: \"IonBeamSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,03A4)\": {\n tag: \"(300A,03A4)\",\n vr: \"SQ\",\n name: \"IonBeamLimitingDeviceSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,03A6)\": {\n tag: \"(300A,03A6)\",\n vr: \"SQ\",\n name: \"IonBlockSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,03A8)\": {\n tag: \"(300A,03A8)\",\n vr: \"SQ\",\n name: \"IonControlPointSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,03AA)\": {\n tag: \"(300A,03AA)\",\n vr: \"SQ\",\n name: \"IonWedgeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,03AC)\": {\n tag: \"(300A,03AC)\",\n vr: \"SQ\",\n name: \"IonWedgePositionSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0401)\": {\n tag: \"(300A,0401)\",\n vr: \"SQ\",\n name: \"ReferencedSetupImageSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0402)\": {\n tag: \"(300A,0402)\",\n vr: \"ST\",\n name: \"SetupImageComment\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0410)\": {\n tag: \"(300A,0410)\",\n vr: \"SQ\",\n name: \"MotionSynchronizationSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0412)\": {\n tag: \"(300A,0412)\",\n vr: \"FL\",\n name: \"ControlPointOrientation\",\n vm: \"3\",\n version: \"DICOM\"\n },\n \"(300A,0420)\": {\n tag: \"(300A,0420)\",\n vr: \"SQ\",\n name: \"GeneralAccessorySequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0421)\": {\n tag: \"(300A,0421)\",\n vr: \"SH\",\n name: \"GeneralAccessoryID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0422)\": {\n tag: \"(300A,0422)\",\n vr: \"ST\",\n name: \"GeneralAccessoryDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0423)\": {\n tag: \"(300A,0423)\",\n vr: \"CS\",\n name: \"GeneralAccessoryType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0424)\": {\n tag: \"(300A,0424)\",\n vr: \"IS\",\n name: \"GeneralAccessoryNumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0425)\": {\n tag: \"(300A,0425)\",\n vr: \"FL\",\n name: \"SourceToGeneralAccessoryDistance\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0426)\": {\n tag: \"(300A,0426)\",\n vr: \"DS\",\n name: \"IsocenterToGeneralAccessoryDistance\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0431)\": {\n tag: \"(300A,0431)\",\n vr: \"SQ\",\n name: \"ApplicatorGeometrySequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0432)\": {\n tag: \"(300A,0432)\",\n vr: \"CS\",\n name: \"ApplicatorApertureShape\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0433)\": {\n tag: \"(300A,0433)\",\n vr: \"FL\",\n name: \"ApplicatorOpening\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0434)\": {\n tag: \"(300A,0434)\",\n vr: \"FL\",\n name: \"ApplicatorOpeningX\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0435)\": {\n tag: \"(300A,0435)\",\n vr: \"FL\",\n name: \"ApplicatorOpeningY\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0436)\": {\n tag: \"(300A,0436)\",\n vr: \"FL\",\n name: \"SourceToApplicatorMountingPositionDistance\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0440)\": {\n tag: \"(300A,0440)\",\n vr: \"IS\",\n name: \"NumberOfBlockSlabItems\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0441)\": {\n tag: \"(300A,0441)\",\n vr: \"SQ\",\n name: \"BlockSlabSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0442)\": {\n tag: \"(300A,0442)\",\n vr: \"DS\",\n name: \"BlockSlabThickness\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0443)\": {\n tag: \"(300A,0443)\",\n vr: \"US\",\n name: \"BlockSlabNumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0450)\": {\n tag: \"(300A,0450)\",\n vr: \"SQ\",\n name: \"DeviceMotionControlSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0451)\": {\n tag: \"(300A,0451)\",\n vr: \"CS\",\n name: \"DeviceMotionExecutionMode\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0452)\": {\n tag: \"(300A,0452)\",\n vr: \"CS\",\n name: \"DeviceMotionObservationMode\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0453)\": {\n tag: \"(300A,0453)\",\n vr: \"SQ\",\n name: \"DeviceMotionParameterCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0501)\": {\n tag: \"(300A,0501)\",\n vr: \"FL\",\n name: \"DistalDepthFraction\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0502)\": {\n tag: \"(300A,0502)\",\n vr: \"FL\",\n name: \"DistalDepth\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0503)\": {\n tag: \"(300A,0503)\",\n vr: \"FL\",\n name: \"NominalRangeModulationFractions\",\n vm: \"2\",\n version: \"DICOM\"\n },\n \"(300A,0504)\": {\n tag: \"(300A,0504)\",\n vr: \"FL\",\n name: \"NominalRangeModulatedRegionDepths\",\n vm: \"2\",\n version: \"DICOM\"\n },\n \"(300A,0505)\": {\n tag: \"(300A,0505)\",\n vr: \"SQ\",\n name: \"DepthDoseParametersSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0506)\": {\n tag: \"(300A,0506)\",\n vr: \"SQ\",\n name: \"DeliveredDepthDoseParametersSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0507)\": {\n tag: \"(300A,0507)\",\n vr: \"FL\",\n name: \"DeliveredDistalDepthFraction\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0508)\": {\n tag: \"(300A,0508)\",\n vr: \"FL\",\n name: \"DeliveredDistalDepth\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0509)\": {\n tag: \"(300A,0509)\",\n vr: \"FL\",\n name: \"DeliveredNominalRangeModulationFractions\",\n vm: \"2\",\n version: \"DICOM\"\n },\n \"(300A,0510)\": {\n tag: \"(300A,0510)\",\n vr: \"FL\",\n name: \"DeliveredNominalRangeModulatedRegionDepths\",\n vm: \"2\",\n version: \"DICOM\"\n },\n \"(300A,0511)\": {\n tag: \"(300A,0511)\",\n vr: \"CS\",\n name: \"DeliveredReferenceDoseDefinition\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0512)\": {\n tag: \"(300A,0512)\",\n vr: \"CS\",\n name: \"ReferenceDoseDefinition\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0600)\": {\n tag: \"(300A,0600)\",\n vr: \"US\",\n name: \"RTControlPointIndex\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0601)\": {\n tag: \"(300A,0601)\",\n vr: \"US\",\n name: \"RadiationGenerationModeIndex\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0602)\": {\n tag: \"(300A,0602)\",\n vr: \"US\",\n name: \"ReferencedDefinedDeviceIndex\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0603)\": {\n tag: \"(300A,0603)\",\n vr: \"US\",\n name: \"RadiationDoseIdentificationIndex\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0604)\": {\n tag: \"(300A,0604)\",\n vr: \"US\",\n name: \"NumberOfRTControlPoints\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0605)\": {\n tag: \"(300A,0605)\",\n vr: \"US\",\n name: \"ReferencedRadiationGenerationModeIndex\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0606)\": {\n tag: \"(300A,0606)\",\n vr: \"US\",\n name: \"TreatmentPositionIndex\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0607)\": {\n tag: \"(300A,0607)\",\n vr: \"US\",\n name: \"ReferencedDeviceIndex\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0608)\": {\n tag: \"(300A,0608)\",\n vr: \"LO\",\n name: \"TreatmentPositionGroupLabel\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0609)\": {\n tag: \"(300A,0609)\",\n vr: \"UI\",\n name: \"TreatmentPositionGroupUID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,060A)\": {\n tag: \"(300A,060A)\",\n vr: \"SQ\",\n name: \"TreatmentPositionGroupSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,060B)\": {\n tag: \"(300A,060B)\",\n vr: \"US\",\n name: \"ReferencedTreatmentPositionIndex\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,060C)\": {\n tag: \"(300A,060C)\",\n vr: \"US\",\n name: \"ReferencedRadiationDoseIdentificationIndex\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,060D)\": {\n tag: \"(300A,060D)\",\n vr: \"FD\",\n name: \"RTAccessoryHolderWaterEquivalentThickness\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,060E)\": {\n tag: \"(300A,060E)\",\n vr: \"US\",\n name: \"ReferencedRTAccessoryHolderDeviceIndex\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,060F)\": {\n tag: \"(300A,060F)\",\n vr: \"CS\",\n name: \"RTAccessoryHolderSlotExistenceFlag\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0610)\": {\n tag: \"(300A,0610)\",\n vr: \"SQ\",\n name: \"RTAccessoryHolderSlotSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0611)\": {\n tag: \"(300A,0611)\",\n vr: \"LO\",\n name: \"RTAccessoryHolderSlotID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0612)\": {\n tag: \"(300A,0612)\",\n vr: \"FD\",\n name: \"RTAccessoryHolderSlotDistance\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0613)\": {\n tag: \"(300A,0613)\",\n vr: \"FD\",\n name: \"RTAccessorySlotDistance\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0614)\": {\n tag: \"(300A,0614)\",\n vr: \"SQ\",\n name: \"RTAccessoryHolderDefinitionSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0615)\": {\n tag: \"(300A,0615)\",\n vr: \"LO\",\n name: \"RTAccessoryDeviceSlotID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0616)\": {\n tag: \"(300A,0616)\",\n vr: \"SQ\",\n name: \"RTRadiationSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0617)\": {\n tag: \"(300A,0617)\",\n vr: \"SQ\",\n name: \"RadiationDoseSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0618)\": {\n tag: \"(300A,0618)\",\n vr: \"SQ\",\n name: \"RadiationDoseIdentificationSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0619)\": {\n tag: \"(300A,0619)\",\n vr: \"LO\",\n name: \"RadiationDoseIdentificationLabel\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,061A)\": {\n tag: \"(300A,061A)\",\n vr: \"CS\",\n name: \"ReferenceDoseType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,061B)\": {\n tag: \"(300A,061B)\",\n vr: \"CS\",\n name: \"PrimaryDoseValueIndicator\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,061C)\": {\n tag: \"(300A,061C)\",\n vr: \"SQ\",\n name: \"DoseValuesSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,061D)\": {\n tag: \"(300A,061D)\",\n vr: \"CS\",\n name: \"DoseValuePurpose\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(300A,061E)\": {\n tag: \"(300A,061E)\",\n vr: \"FD\",\n name: \"ReferenceDosePointCoordinates\",\n vm: \"3\",\n version: \"DICOM\"\n },\n \"(300A,061F)\": {\n tag: \"(300A,061F)\",\n vr: \"SQ\",\n name: \"RadiationDoseValuesParametersSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0620)\": {\n tag: \"(300A,0620)\",\n vr: \"SQ\",\n name: \"MetersetToDoseMappingSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0621)\": {\n tag: \"(300A,0621)\",\n vr: \"SQ\",\n name: \"ExpectedInVivoMeasurementValuesSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0622)\": {\n tag: \"(300A,0622)\",\n vr: \"US\",\n name: \"ExpectedInVivoMeasurementValueIndex\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0623)\": {\n tag: \"(300A,0623)\",\n vr: \"LO\",\n name: \"RadiationDoseInVivoMeasurementLabel\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0624)\": {\n tag: \"(300A,0624)\",\n vr: \"FD\",\n name: \"RadiationDoseCentralAxisDisplacement\",\n vm: \"2\",\n version: \"DICOM\"\n },\n \"(300A,0625)\": {\n tag: \"(300A,0625)\",\n vr: \"FD\",\n name: \"RadiationDoseValue\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0626)\": {\n tag: \"(300A,0626)\",\n vr: \"FD\",\n name: \"RadiationDoseSourceToSkinDistance\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0627)\": {\n tag: \"(300A,0627)\",\n vr: \"FD\",\n name: \"RadiationDoseMeasurementPointCoordinates\",\n vm: \"3\",\n version: \"DICOM\"\n },\n \"(300A,0628)\": {\n tag: \"(300A,0628)\",\n vr: \"FD\",\n name: \"RadiationDoseSourceToExternalContourDistance\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0629)\": {\n tag: \"(300A,0629)\",\n vr: \"SQ\",\n name: \"RTToleranceSetSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,062A)\": {\n tag: \"(300A,062A)\",\n vr: \"LO\",\n name: \"RTToleranceSetLabel\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,062B)\": {\n tag: \"(300A,062B)\",\n vr: \"SQ\",\n name: \"AttributeToleranceValuesSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,062C)\": {\n tag: \"(300A,062C)\",\n vr: \"FD\",\n name: \"ToleranceValue\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,062D)\": {\n tag: \"(300A,062D)\",\n vr: \"SQ\",\n name: \"PatientSupportPositionToleranceSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,062E)\": {\n tag: \"(300A,062E)\",\n vr: \"FD\",\n name: \"TreatmentTimeLimit\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,062F)\": {\n tag: \"(300A,062F)\",\n vr: \"SQ\",\n name: \"CArmPhotonElectronControlPointSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0630)\": {\n tag: \"(300A,0630)\",\n vr: \"SQ\",\n name: \"ReferencedRTRadiationSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0631)\": {\n tag: \"(300A,0631)\",\n vr: \"SQ\",\n name: \"ReferencedRTInstanceSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0632)\": {\n tag: \"(300A,0632)\",\n vr: \"SQ\",\n name: \"ReferencedRTPatientSetupSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0634)\": {\n tag: \"(300A,0634)\",\n vr: \"FD\",\n name: \"SourceToPatientSurfaceDistance\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0635)\": {\n tag: \"(300A,0635)\",\n vr: \"SQ\",\n name: \"TreatmentMachineSpecialModeCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0636)\": {\n tag: \"(300A,0636)\",\n vr: \"US\",\n name: \"IntendedNumberOfFractions\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0637)\": {\n tag: \"(300A,0637)\",\n vr: \"CS\",\n name: \"RTRadiationSetIntent\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0638)\": {\n tag: \"(300A,0638)\",\n vr: \"CS\",\n name: \"RTRadiationPhysicalAndGeometricContentDetailFlag\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0639)\": {\n tag: \"(300A,0639)\",\n vr: \"CS\",\n name: \"RTRecordFlag\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,063A)\": {\n tag: \"(300A,063A)\",\n vr: \"SQ\",\n name: \"TreatmentDeviceIdentificationSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,063B)\": {\n tag: \"(300A,063B)\",\n vr: \"SQ\",\n name: \"ReferencedRTPhysicianIntentSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,063C)\": {\n tag: \"(300A,063C)\",\n vr: \"FD\",\n name: \"CumulativeMeterset\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,063D)\": {\n tag: \"(300A,063D)\",\n vr: \"FD\",\n name: \"DeliveryRate\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,063E)\": {\n tag: \"(300A,063E)\",\n vr: \"SQ\",\n name: \"DeliveryRateUnitSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,063F)\": {\n tag: \"(300A,063F)\",\n vr: \"SQ\",\n name: \"TreatmentPositionSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0640)\": {\n tag: \"(300A,0640)\",\n vr: \"FD\",\n name: \"RadiationSourceAxisDistance\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0641)\": {\n tag: \"(300A,0641)\",\n vr: \"US\",\n name: \"NumberOfRTBeamLimitingDevices\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0642)\": {\n tag: \"(300A,0642)\",\n vr: \"FD\",\n name: \"RTBeamLimitingDeviceProximalDistance\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0643)\": {\n tag: \"(300A,0643)\",\n vr: \"FD\",\n name: \"RTBeamLimitingDeviceDistalDistance\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0644)\": {\n tag: \"(300A,0644)\",\n vr: \"SQ\",\n name: \"ParallelRTBeamDelimiterDeviceOrientationLabelCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0645)\": {\n tag: \"(300A,0645)\",\n vr: \"FD\",\n name: \"BeamModifierOrientationAngle\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0646)\": {\n tag: \"(300A,0646)\",\n vr: \"SQ\",\n name: \"FixedRTBeamDelimiterDeviceSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0647)\": {\n tag: \"(300A,0647)\",\n vr: \"SQ\",\n name: \"ParallelRTBeamDelimiterDeviceSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0648)\": {\n tag: \"(300A,0648)\",\n vr: \"US\",\n name: \"NumberOfParallelRTBeamDelimiters\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0649)\": {\n tag: \"(300A,0649)\",\n vr: \"FD\",\n name: \"ParallelRTBeamDelimiterBoundaries\",\n vm: \"2-n\",\n version: \"DICOM\"\n },\n \"(300A,064A)\": {\n tag: \"(300A,064A)\",\n vr: \"FD\",\n name: \"ParallelRTBeamDelimiterPositions\",\n vm: \"2-n\",\n version: \"DICOM\"\n },\n \"(300A,064B)\": {\n tag: \"(300A,064B)\",\n vr: \"FD\",\n name: \"RTBeamLimitingDeviceOffset\",\n vm: \"2\",\n version: \"DICOM\"\n },\n \"(300A,064C)\": {\n tag: \"(300A,064C)\",\n vr: \"SQ\",\n name: \"RTBeamDelimiterGeometrySequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,064D)\": {\n tag: \"(300A,064D)\",\n vr: \"SQ\",\n name: \"RTBeamLimitingDeviceDefinitionSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,064E)\": {\n tag: \"(300A,064E)\",\n vr: \"CS\",\n name: \"ParallelRTBeamDelimiterOpeningMode\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,064F)\": {\n tag: \"(300A,064F)\",\n vr: \"CS\",\n name: \"ParallelRTBeamDelimiterLeafMountingSide\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(300A,0650)\": {\n tag: \"(300A,0650)\",\n vr: \"UI\",\n name: \"PatientSetupUID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0651)\": {\n tag: \"(300A,0651)\",\n vr: \"SQ\",\n name: \"WedgeDefinitionSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0652)\": {\n tag: \"(300A,0652)\",\n vr: \"FD\",\n name: \"RadiationBeamWedgeAngle\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0653)\": {\n tag: \"(300A,0653)\",\n vr: \"FD\",\n name: \"RadiationBeamWedgeThinEdgeDistance\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0654)\": {\n tag: \"(300A,0654)\",\n vr: \"FD\",\n name: \"RadiationBeamEffectiveWedgeAngle\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0655)\": {\n tag: \"(300A,0655)\",\n vr: \"US\",\n name: \"NumberOfWedgePositions\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0656)\": {\n tag: \"(300A,0656)\",\n vr: \"SQ\",\n name: \"RTBeamLimitingDeviceOpeningSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0657)\": {\n tag: \"(300A,0657)\",\n vr: \"US\",\n name: \"NumberOfRTBeamLimitingDeviceOpenings\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0658)\": {\n tag: \"(300A,0658)\",\n vr: \"SQ\",\n name: \"RadiationDosimeterUnitSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0659)\": {\n tag: \"(300A,0659)\",\n vr: \"SQ\",\n name: \"RTDeviceDistanceReferenceLocationCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,065A)\": {\n tag: \"(300A,065A)\",\n vr: \"SQ\",\n name: \"RadiationDeviceConfigurationAndCommissioningKeySequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,065B)\": {\n tag: \"(300A,065B)\",\n vr: \"SQ\",\n name: \"PatientSupportPositionParameterSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,065C)\": {\n tag: \"(300A,065C)\",\n vr: \"CS\",\n name: \"PatientSupportPositionSpecificationMethod\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,065D)\": {\n tag: \"(300A,065D)\",\n vr: \"SQ\",\n name: \"PatientSupportPositionDeviceParameterSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,065E)\": {\n tag: \"(300A,065E)\",\n vr: \"US\",\n name: \"DeviceOrderIndex\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,065F)\": {\n tag: \"(300A,065F)\",\n vr: \"US\",\n name: \"PatientSupportPositionParameterOrderIndex\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0660)\": {\n tag: \"(300A,0660)\",\n vr: \"SQ\",\n name: \"PatientSupportPositionDeviceToleranceSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0661)\": {\n tag: \"(300A,0661)\",\n vr: \"US\",\n name: \"PatientSupportPositionToleranceOrderIndex\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0662)\": {\n tag: \"(300A,0662)\",\n vr: \"SQ\",\n name: \"CompensatorDefinitionSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0663)\": {\n tag: \"(300A,0663)\",\n vr: \"CS\",\n name: \"CompensatorMapOrientation\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0664)\": {\n tag: \"(300A,0664)\",\n vr: \"OF\",\n name: \"CompensatorProximalThicknessMap\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0665)\": {\n tag: \"(300A,0665)\",\n vr: \"OF\",\n name: \"CompensatorDistalThicknessMap\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0666)\": {\n tag: \"(300A,0666)\",\n vr: \"FD\",\n name: \"CompensatorBasePlaneOffset\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0667)\": {\n tag: \"(300A,0667)\",\n vr: \"SQ\",\n name: \"CompensatorShapeFabricationCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0668)\": {\n tag: \"(300A,0668)\",\n vr: \"SQ\",\n name: \"CompensatorShapeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0669)\": {\n tag: \"(300A,0669)\",\n vr: \"FD\",\n name: \"RadiationBeamCompensatorMillingToolDiameter\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,066A)\": {\n tag: \"(300A,066A)\",\n vr: \"SQ\",\n name: \"BlockDefinitionSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,066B)\": {\n tag: \"(300A,066B)\",\n vr: \"OF\",\n name: \"BlockEdgeData\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,066C)\": {\n tag: \"(300A,066C)\",\n vr: \"CS\",\n name: \"BlockOrientation\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,066D)\": {\n tag: \"(300A,066D)\",\n vr: \"FD\",\n name: \"RadiationBeamBlockThickness\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,066E)\": {\n tag: \"(300A,066E)\",\n vr: \"FD\",\n name: \"RadiationBeamBlockSlabThickness\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,066F)\": {\n tag: \"(300A,066F)\",\n vr: \"SQ\",\n name: \"BlockEdgeDataSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0670)\": {\n tag: \"(300A,0670)\",\n vr: \"US\",\n name: \"NumberOfRTAccessoryHolders\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0671)\": {\n tag: \"(300A,0671)\",\n vr: \"SQ\",\n name: \"GeneralAccessoryDefinitionSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0672)\": {\n tag: \"(300A,0672)\",\n vr: \"US\",\n name: \"NumberOfGeneralAccessories\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0673)\": {\n tag: \"(300A,0673)\",\n vr: \"SQ\",\n name: \"BolusDefinitionSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0674)\": {\n tag: \"(300A,0674)\",\n vr: \"US\",\n name: \"NumberOfBoluses\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0675)\": {\n tag: \"(300A,0675)\",\n vr: \"UI\",\n name: \"EquipmentFrameOfReferenceUID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0676)\": {\n tag: \"(300A,0676)\",\n vr: \"ST\",\n name: \"EquipmentFrameOfReferenceDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0677)\": {\n tag: \"(300A,0677)\",\n vr: \"SQ\",\n name: \"EquipmentReferencePointCoordinatesSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0678)\": {\n tag: \"(300A,0678)\",\n vr: \"SQ\",\n name: \"EquipmentReferencePointCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0679)\": {\n tag: \"(300A,0679)\",\n vr: \"FD\",\n name: \"RTBeamLimitingDeviceAngle\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,067A)\": {\n tag: \"(300A,067A)\",\n vr: \"FD\",\n name: \"SourceRollAngle\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,067B)\": {\n tag: \"(300A,067B)\",\n vr: \"SQ\",\n name: \"RadiationGenerationModeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,067C)\": {\n tag: \"(300A,067C)\",\n vr: \"SH\",\n name: \"RadiationGenerationModeLabel\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,067D)\": {\n tag: \"(300A,067D)\",\n vr: \"ST\",\n name: \"RadiationGenerationModeDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,067E)\": {\n tag: \"(300A,067E)\",\n vr: \"SQ\",\n name: \"RadiationGenerationModeMachineCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,067F)\": {\n tag: \"(300A,067F)\",\n vr: \"SQ\",\n name: \"RadiationTypeCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0680)\": {\n tag: \"(300A,0680)\",\n vr: \"DS\",\n name: \"NominalEnergy\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0681)\": {\n tag: \"(300A,0681)\",\n vr: \"DS\",\n name: \"MinimumNominalEnergy\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0682)\": {\n tag: \"(300A,0682)\",\n vr: \"DS\",\n name: \"MaximumNominalEnergy\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0683)\": {\n tag: \"(300A,0683)\",\n vr: \"SQ\",\n name: \"RadiationFluenceModifierCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0684)\": {\n tag: \"(300A,0684)\",\n vr: \"SQ\",\n name: \"EnergyUnitCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0685)\": {\n tag: \"(300A,0685)\",\n vr: \"US\",\n name: \"NumberOfRadiationGenerationModes\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0686)\": {\n tag: \"(300A,0686)\",\n vr: \"SQ\",\n name: \"PatientSupportDevicesSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0687)\": {\n tag: \"(300A,0687)\",\n vr: \"US\",\n name: \"NumberOfPatientSupportDevices\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0688)\": {\n tag: \"(300A,0688)\",\n vr: \"FD\",\n name: \"RTBeamModifierDefinitionDistance\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0689)\": {\n tag: \"(300A,0689)\",\n vr: \"SQ\",\n name: \"BeamAreaLimitSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,068A)\": {\n tag: \"(300A,068A)\",\n vr: \"SQ\",\n name: \"ReferencedRTPrescriptionSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0700)\": {\n tag: \"(300A,0700)\",\n vr: \"UI\",\n name: \"TreatmentSessionUID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0701)\": {\n tag: \"(300A,0701)\",\n vr: \"CS\",\n name: \"RTRadiationUsage\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0702)\": {\n tag: \"(300A,0702)\",\n vr: \"SQ\",\n name: \"ReferencedRTRadiationSetSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0703)\": {\n tag: \"(300A,0703)\",\n vr: \"SQ\",\n name: \"ReferencedRTRadiationRecordSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0704)\": {\n tag: \"(300A,0704)\",\n vr: \"US\",\n name: \"RTRadiationSetDeliveryNumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0705)\": {\n tag: \"(300A,0705)\",\n vr: \"US\",\n name: \"ClinicalFractionNumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0706)\": {\n tag: \"(300A,0706)\",\n vr: \"CS\",\n name: \"RTTreatmentFractionCompletionStatus\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0707)\": {\n tag: \"(300A,0707)\",\n vr: \"CS\",\n name: \"RTRadiationSetUsage\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0708)\": {\n tag: \"(300A,0708)\",\n vr: \"CS\",\n name: \"TreatmentDeliveryContinuationFlag\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0709)\": {\n tag: \"(300A,0709)\",\n vr: \"CS\",\n name: \"TreatmentRecordContentOrigin\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0714)\": {\n tag: \"(300A,0714)\",\n vr: \"CS\",\n name: \"RTTreatmentTerminationStatus\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0715)\": {\n tag: \"(300A,0715)\",\n vr: \"SQ\",\n name: \"RTTreatmentTerminationReasonCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0716)\": {\n tag: \"(300A,0716)\",\n vr: \"SQ\",\n name: \"MachineSpecificTreatmentTerminationCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0722)\": {\n tag: \"(300A,0722)\",\n vr: \"SQ\",\n name: \"RTRadiationSalvageRecordControlPointSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0723)\": {\n tag: \"(300A,0723)\",\n vr: \"CS\",\n name: \"StartingMetersetValueKnownFlag\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0730)\": {\n tag: \"(300A,0730)\",\n vr: \"ST\",\n name: \"TreatmentTerminationDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0731)\": {\n tag: \"(300A,0731)\",\n vr: \"SQ\",\n name: \"TreatmentToleranceViolationSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0732)\": {\n tag: \"(300A,0732)\",\n vr: \"CS\",\n name: \"TreatmentToleranceViolationCategory\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0733)\": {\n tag: \"(300A,0733)\",\n vr: \"SQ\",\n name: \"TreatmentToleranceViolationAttributeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0734)\": {\n tag: \"(300A,0734)\",\n vr: \"ST\",\n name: \"TreatmentToleranceViolationDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0735)\": {\n tag: \"(300A,0735)\",\n vr: \"ST\",\n name: \"TreatmentToleranceViolationIdentification\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0736)\": {\n tag: \"(300A,0736)\",\n vr: \"DT\",\n name: \"TreatmentToleranceViolationDateTime\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,073A)\": {\n tag: \"(300A,073A)\",\n vr: \"DT\",\n name: \"RecordedRTControlPointDateTime\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,073B)\": {\n tag: \"(300A,073B)\",\n vr: \"US\",\n name: \"ReferencedRadiationRTControlPointIndex\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,073E)\": {\n tag: \"(300A,073E)\",\n vr: \"SQ\",\n name: \"AlternateValueSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,073F)\": {\n tag: \"(300A,073F)\",\n vr: \"SQ\",\n name: \"ConfirmationSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0740)\": {\n tag: \"(300A,0740)\",\n vr: \"SQ\",\n name: \"InterlockSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0741)\": {\n tag: \"(300A,0741)\",\n vr: \"DT\",\n name: \"InterlockDateTime\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0742)\": {\n tag: \"(300A,0742)\",\n vr: \"ST\",\n name: \"InterlockDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0743)\": {\n tag: \"(300A,0743)\",\n vr: \"SQ\",\n name: \"InterlockOriginatingDeviceSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0744)\": {\n tag: \"(300A,0744)\",\n vr: \"SQ\",\n name: \"InterlockCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0745)\": {\n tag: \"(300A,0745)\",\n vr: \"SQ\",\n name: \"InterlockResolutionCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0746)\": {\n tag: \"(300A,0746)\",\n vr: \"SQ\",\n name: \"InterlockResolutionUserSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0760)\": {\n tag: \"(300A,0760)\",\n vr: \"DT\",\n name: \"OverrideDateTime\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0761)\": {\n tag: \"(300A,0761)\",\n vr: \"SQ\",\n name: \"TreatmentToleranceViolationTypeCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0762)\": {\n tag: \"(300A,0762)\",\n vr: \"SQ\",\n name: \"TreatmentToleranceViolationCauseCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0772)\": {\n tag: \"(300A,0772)\",\n vr: \"SQ\",\n name: \"MeasuredMetersetToDoseMappingSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0773)\": {\n tag: \"(300A,0773)\",\n vr: \"US\",\n name: \"ReferencedExpectedInVivoMeasurementValueIndex\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0774)\": {\n tag: \"(300A,0774)\",\n vr: \"SQ\",\n name: \"DoseMeasurementDeviceCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0780)\": {\n tag: \"(300A,0780)\",\n vr: \"SQ\",\n name: \"AdditionalParameterRecordingInstanceSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300A,0783)\": {\n tag: \"(300A,0783)\",\n vr: \"ST\",\n name: \"InterlockOriginDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300C,0002)\": {\n tag: \"(300C,0002)\",\n vr: \"SQ\",\n name: \"ReferencedRTPlanSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300C,0004)\": {\n tag: \"(300C,0004)\",\n vr: \"SQ\",\n name: \"ReferencedBeamSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300C,0006)\": {\n tag: \"(300C,0006)\",\n vr: \"IS\",\n name: \"ReferencedBeamNumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300C,0007)\": {\n tag: \"(300C,0007)\",\n vr: \"IS\",\n name: \"ReferencedReferenceImageNumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300C,0008)\": {\n tag: \"(300C,0008)\",\n vr: \"DS\",\n name: \"StartCumulativeMetersetWeight\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300C,0009)\": {\n tag: \"(300C,0009)\",\n vr: \"DS\",\n name: \"EndCumulativeMetersetWeight\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300C,000A)\": {\n tag: \"(300C,000A)\",\n vr: \"SQ\",\n name: \"ReferencedBrachyApplicationSetupSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300C,000C)\": {\n tag: \"(300C,000C)\",\n vr: \"IS\",\n name: \"ReferencedBrachyApplicationSetupNumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300C,000E)\": {\n tag: \"(300C,000E)\",\n vr: \"IS\",\n name: \"ReferencedSourceNumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300C,0020)\": {\n tag: \"(300C,0020)\",\n vr: \"SQ\",\n name: \"ReferencedFractionGroupSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300C,0022)\": {\n tag: \"(300C,0022)\",\n vr: \"IS\",\n name: \"ReferencedFractionGroupNumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300C,0040)\": {\n tag: \"(300C,0040)\",\n vr: \"SQ\",\n name: \"ReferencedVerificationImageSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300C,0042)\": {\n tag: \"(300C,0042)\",\n vr: \"SQ\",\n name: \"ReferencedReferenceImageSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300C,0050)\": {\n tag: \"(300C,0050)\",\n vr: \"SQ\",\n name: \"ReferencedDoseReferenceSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300C,0051)\": {\n tag: \"(300C,0051)\",\n vr: \"IS\",\n name: \"ReferencedDoseReferenceNumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300C,0055)\": {\n tag: \"(300C,0055)\",\n vr: \"SQ\",\n name: \"BrachyReferencedDoseReferenceSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300C,0060)\": {\n tag: \"(300C,0060)\",\n vr: \"SQ\",\n name: \"ReferencedStructureSetSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300C,006A)\": {\n tag: \"(300C,006A)\",\n vr: \"IS\",\n name: \"ReferencedPatientSetupNumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300C,0080)\": {\n tag: \"(300C,0080)\",\n vr: \"SQ\",\n name: \"ReferencedDoseSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300C,00A0)\": {\n tag: \"(300C,00A0)\",\n vr: \"IS\",\n name: \"ReferencedToleranceTableNumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300C,00B0)\": {\n tag: \"(300C,00B0)\",\n vr: \"SQ\",\n name: \"ReferencedBolusSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300C,00C0)\": {\n tag: \"(300C,00C0)\",\n vr: \"IS\",\n name: \"ReferencedWedgeNumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300C,00D0)\": {\n tag: \"(300C,00D0)\",\n vr: \"IS\",\n name: \"ReferencedCompensatorNumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300C,00E0)\": {\n tag: \"(300C,00E0)\",\n vr: \"IS\",\n name: \"ReferencedBlockNumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300C,00F0)\": {\n tag: \"(300C,00F0)\",\n vr: \"IS\",\n name: \"ReferencedControlPointIndex\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300C,00F2)\": {\n tag: \"(300C,00F2)\",\n vr: \"SQ\",\n name: \"ReferencedControlPointSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300C,00F4)\": {\n tag: \"(300C,00F4)\",\n vr: \"IS\",\n name: \"ReferencedStartControlPointIndex\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300C,00F6)\": {\n tag: \"(300C,00F6)\",\n vr: \"IS\",\n name: \"ReferencedStopControlPointIndex\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300C,0100)\": {\n tag: \"(300C,0100)\",\n vr: \"IS\",\n name: \"ReferencedRangeShifterNumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300C,0102)\": {\n tag: \"(300C,0102)\",\n vr: \"IS\",\n name: \"ReferencedLateralSpreadingDeviceNumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300C,0104)\": {\n tag: \"(300C,0104)\",\n vr: \"IS\",\n name: \"ReferencedRangeModulatorNumber\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300C,0111)\": {\n tag: \"(300C,0111)\",\n vr: \"SQ\",\n name: \"OmittedBeamTaskSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300C,0112)\": {\n tag: \"(300C,0112)\",\n vr: \"CS\",\n name: \"ReasonForOmission\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300C,0113)\": {\n tag: \"(300C,0113)\",\n vr: \"LO\",\n name: \"ReasonForOmissionDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300E,0002)\": {\n tag: \"(300E,0002)\",\n vr: \"CS\",\n name: \"ApprovalStatus\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300E,0004)\": {\n tag: \"(300E,0004)\",\n vr: \"DA\",\n name: \"ReviewDate\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300E,0005)\": {\n tag: \"(300E,0005)\",\n vr: \"TM\",\n name: \"ReviewTime\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(300E,0008)\": {\n tag: \"(300E,0008)\",\n vr: \"PN\",\n name: \"ReviewerName\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(4010,0001)\": {\n tag: \"(4010,0001)\",\n vr: \"CS\",\n name: \"LowEnergyDetectors\",\n vm: \"1\",\n version: \"DICOM/DICOS\"\n },\n \"(4010,0002)\": {\n tag: \"(4010,0002)\",\n vr: \"CS\",\n name: \"HighEnergyDetectors\",\n vm: \"1\",\n version: \"DICOM/DICOS\"\n },\n \"(4010,0004)\": {\n tag: \"(4010,0004)\",\n vr: \"SQ\",\n name: \"DetectorGeometrySequence\",\n vm: \"1\",\n version: \"DICOM/DICOS\"\n },\n \"(4010,1001)\": {\n tag: \"(4010,1001)\",\n vr: \"SQ\",\n name: \"ThreatROIVoxelSequence\",\n vm: \"1\",\n version: \"DICOM/DICOS\"\n },\n \"(4010,1004)\": {\n tag: \"(4010,1004)\",\n vr: \"FL\",\n name: \"ThreatROIBase\",\n vm: \"3\",\n version: \"DICOM/DICOS\"\n },\n \"(4010,1005)\": {\n tag: \"(4010,1005)\",\n vr: \"FL\",\n name: \"ThreatROIExtents\",\n vm: \"3\",\n version: \"DICOM/DICOS\"\n },\n \"(4010,1006)\": {\n tag: \"(4010,1006)\",\n vr: \"OB\",\n name: \"ThreatROIBitmap\",\n vm: \"1\",\n version: \"DICOM/DICOS\"\n },\n \"(4010,1007)\": {\n tag: \"(4010,1007)\",\n vr: \"SH\",\n name: \"RouteSegmentID\",\n vm: \"1\",\n version: \"DICOM/DICOS\"\n },\n \"(4010,1008)\": {\n tag: \"(4010,1008)\",\n vr: \"CS\",\n name: \"GantryType\",\n vm: \"1\",\n version: \"DICOM/DICOS\"\n },\n \"(4010,1009)\": {\n tag: \"(4010,1009)\",\n vr: \"CS\",\n name: \"OOIOwnerType\",\n vm: \"1\",\n version: \"DICOM/DICOS\"\n },\n \"(4010,100A)\": {\n tag: \"(4010,100A)\",\n vr: \"SQ\",\n name: \"RouteSegmentSequence\",\n vm: \"1\",\n version: \"DICOM/DICOS\"\n },\n \"(4010,1010)\": {\n tag: \"(4010,1010)\",\n vr: \"US\",\n name: \"PotentialThreatObjectID\",\n vm: \"1\",\n version: \"DICOM/DICOS\"\n },\n \"(4010,1011)\": {\n tag: \"(4010,1011)\",\n vr: \"SQ\",\n name: \"ThreatSequence\",\n vm: \"1\",\n version: \"DICOM/DICOS\"\n },\n \"(4010,1012)\": {\n tag: \"(4010,1012)\",\n vr: \"CS\",\n name: \"ThreatCategory\",\n vm: \"1\",\n version: \"DICOM/DICOS\"\n },\n \"(4010,1013)\": {\n tag: \"(4010,1013)\",\n vr: \"LT\",\n name: \"ThreatCategoryDescription\",\n vm: \"1\",\n version: \"DICOM/DICOS\"\n },\n \"(4010,1014)\": {\n tag: \"(4010,1014)\",\n vr: \"CS\",\n name: \"ATDAbilityAssessment\",\n vm: \"1\",\n version: \"DICOM/DICOS\"\n },\n \"(4010,1015)\": {\n tag: \"(4010,1015)\",\n vr: \"CS\",\n name: \"ATDAssessmentFlag\",\n vm: \"1\",\n version: \"DICOM/DICOS\"\n },\n \"(4010,1016)\": {\n tag: \"(4010,1016)\",\n vr: \"FL\",\n name: \"ATDAssessmentProbability\",\n vm: \"1\",\n version: \"DICOM/DICOS\"\n },\n \"(4010,1017)\": {\n tag: \"(4010,1017)\",\n vr: \"FL\",\n name: \"Mass\",\n vm: \"1\",\n version: \"DICOM/DICOS\"\n },\n \"(4010,1018)\": {\n tag: \"(4010,1018)\",\n vr: \"FL\",\n name: \"Density\",\n vm: \"1\",\n version: \"DICOM/DICOS\"\n },\n \"(4010,1019)\": {\n tag: \"(4010,1019)\",\n vr: \"FL\",\n name: \"ZEffective\",\n vm: \"1\",\n version: \"DICOM/DICOS\"\n },\n \"(4010,101A)\": {\n tag: \"(4010,101A)\",\n vr: \"SH\",\n name: \"BoardingPassID\",\n vm: \"1\",\n version: \"DICOM/DICOS\"\n },\n \"(4010,101B)\": {\n tag: \"(4010,101B)\",\n vr: \"FL\",\n name: \"CenterOfMass\",\n vm: \"3\",\n version: \"DICOM/DICOS\"\n },\n \"(4010,101C)\": {\n tag: \"(4010,101C)\",\n vr: \"FL\",\n name: \"CenterOfPTO\",\n vm: \"3\",\n version: \"DICOM/DICOS\"\n },\n \"(4010,101D)\": {\n tag: \"(4010,101D)\",\n vr: \"FL\",\n name: \"BoundingPolygon\",\n vm: \"6-n\",\n version: \"DICOM/DICOS\"\n },\n \"(4010,101E)\": {\n tag: \"(4010,101E)\",\n vr: \"SH\",\n name: \"RouteSegmentStartLocationID\",\n vm: \"1\",\n version: \"DICOM/DICOS\"\n },\n \"(4010,101F)\": {\n tag: \"(4010,101F)\",\n vr: \"SH\",\n name: \"RouteSegmentEndLocationID\",\n vm: \"1\",\n version: \"DICOM/DICOS\"\n },\n \"(4010,1020)\": {\n tag: \"(4010,1020)\",\n vr: \"CS\",\n name: \"RouteSegmentLocationIDType\",\n vm: \"1\",\n version: \"DICOM/DICOS\"\n },\n \"(4010,1021)\": {\n tag: \"(4010,1021)\",\n vr: \"CS\",\n name: \"AbortReason\",\n vm: \"1-n\",\n version: \"DICOM/DICOS\"\n },\n \"(4010,1023)\": {\n tag: \"(4010,1023)\",\n vr: \"FL\",\n name: \"VolumeOfPTO\",\n vm: \"1\",\n version: \"DICOM/DICOS\"\n },\n \"(4010,1024)\": {\n tag: \"(4010,1024)\",\n vr: \"CS\",\n name: \"AbortFlag\",\n vm: \"1\",\n version: \"DICOM/DICOS\"\n },\n \"(4010,1025)\": {\n tag: \"(4010,1025)\",\n vr: \"DT\",\n name: \"RouteSegmentStartTime\",\n vm: \"1\",\n version: \"DICOM/DICOS\"\n },\n \"(4010,1026)\": {\n tag: \"(4010,1026)\",\n vr: \"DT\",\n name: \"RouteSegmentEndTime\",\n vm: \"1\",\n version: \"DICOM/DICOS\"\n },\n \"(4010,1027)\": {\n tag: \"(4010,1027)\",\n vr: \"CS\",\n name: \"TDRType\",\n vm: \"1\",\n version: \"DICOM/DICOS\"\n },\n \"(4010,1028)\": {\n tag: \"(4010,1028)\",\n vr: \"CS\",\n name: \"InternationalRouteSegment\",\n vm: \"1\",\n version: \"DICOM/DICOS\"\n },\n \"(4010,1029)\": {\n tag: \"(4010,1029)\",\n vr: \"LO\",\n name: \"ThreatDetectionAlgorithmandVersion\",\n vm: \"1-n\",\n version: \"DICOM/DICOS\"\n },\n \"(4010,102A)\": {\n tag: \"(4010,102A)\",\n vr: \"SH\",\n name: \"AssignedLocation\",\n vm: \"1\",\n version: \"DICOM/DICOS\"\n },\n \"(4010,102B)\": {\n tag: \"(4010,102B)\",\n vr: \"DT\",\n name: \"AlarmDecisionTime\",\n vm: \"1\",\n version: \"DICOM/DICOS\"\n },\n \"(4010,1031)\": {\n tag: \"(4010,1031)\",\n vr: \"CS\",\n name: \"AlarmDecision\",\n vm: \"1\",\n version: \"DICOM/DICOS\"\n },\n \"(4010,1033)\": {\n tag: \"(4010,1033)\",\n vr: \"US\",\n name: \"NumberOfTotalObjects\",\n vm: \"1\",\n version: \"DICOM/DICOS\"\n },\n \"(4010,1034)\": {\n tag: \"(4010,1034)\",\n vr: \"US\",\n name: \"NumberOfAlarmObjects\",\n vm: \"1\",\n version: \"DICOM/DICOS\"\n },\n \"(4010,1037)\": {\n tag: \"(4010,1037)\",\n vr: \"SQ\",\n name: \"PTORepresentationSequence\",\n vm: \"1\",\n version: \"DICOM/DICOS\"\n },\n \"(4010,1038)\": {\n tag: \"(4010,1038)\",\n vr: \"SQ\",\n name: \"ATDAssessmentSequence\",\n vm: \"1\",\n version: \"DICOM/DICOS\"\n },\n \"(4010,1039)\": {\n tag: \"(4010,1039)\",\n vr: \"CS\",\n name: \"TIPType\",\n vm: \"1\",\n version: \"DICOM/DICOS\"\n },\n \"(4010,103A)\": {\n tag: \"(4010,103A)\",\n vr: \"CS\",\n name: \"DICOSVersion\",\n vm: \"1\",\n version: \"DICOM/DICOS\"\n },\n \"(4010,1041)\": {\n tag: \"(4010,1041)\",\n vr: \"DT\",\n name: \"OOIOwnerCreationTime\",\n vm: \"1\",\n version: \"DICOM/DICOS\"\n },\n \"(4010,1042)\": {\n tag: \"(4010,1042)\",\n vr: \"CS\",\n name: \"OOIType\",\n vm: \"1\",\n version: \"DICOM/DICOS\"\n },\n \"(4010,1043)\": {\n tag: \"(4010,1043)\",\n vr: \"FL\",\n name: \"OOISize\",\n vm: \"3\",\n version: \"DICOM/DICOS\"\n },\n \"(4010,1044)\": {\n tag: \"(4010,1044)\",\n vr: \"CS\",\n name: \"AcquisitionStatus\",\n vm: \"1\",\n version: \"DICOM/DICOS\"\n },\n \"(4010,1045)\": {\n tag: \"(4010,1045)\",\n vr: \"SQ\",\n name: \"BasisMaterialsCodeSequence\",\n vm: \"1\",\n version: \"DICOM/DICOS\"\n },\n \"(4010,1046)\": {\n tag: \"(4010,1046)\",\n vr: \"CS\",\n name: \"PhantomType\",\n vm: \"1\",\n version: \"DICOM/DICOS\"\n },\n \"(4010,1047)\": {\n tag: \"(4010,1047)\",\n vr: \"SQ\",\n name: \"OOIOwnerSequence\",\n vm: \"1\",\n version: \"DICOM/DICOS\"\n },\n \"(4010,1048)\": {\n tag: \"(4010,1048)\",\n vr: \"CS\",\n name: \"ScanType\",\n vm: \"1\",\n version: \"DICOM/DICOS\"\n },\n \"(4010,1051)\": {\n tag: \"(4010,1051)\",\n vr: \"LO\",\n name: \"ItineraryID\",\n vm: \"1\",\n version: \"DICOM/DICOS\"\n },\n \"(4010,1052)\": {\n tag: \"(4010,1052)\",\n vr: \"SH\",\n name: \"ItineraryIDType\",\n vm: \"1\",\n version: \"DICOM/DICOS\"\n },\n \"(4010,1053)\": {\n tag: \"(4010,1053)\",\n vr: \"LO\",\n name: \"ItineraryIDAssigningAuthority\",\n vm: \"1\",\n version: \"DICOM/DICOS\"\n },\n \"(4010,1054)\": {\n tag: \"(4010,1054)\",\n vr: \"SH\",\n name: \"RouteID\",\n vm: \"1\",\n version: \"DICOM/DICOS\"\n },\n \"(4010,1055)\": {\n tag: \"(4010,1055)\",\n vr: \"SH\",\n name: \"RouteIDAssigningAuthority\",\n vm: \"1\",\n version: \"DICOM/DICOS\"\n },\n \"(4010,1056)\": {\n tag: \"(4010,1056)\",\n vr: \"CS\",\n name: \"InboundArrivalType\",\n vm: \"1\",\n version: \"DICOM/DICOS\"\n },\n \"(4010,1058)\": {\n tag: \"(4010,1058)\",\n vr: \"SH\",\n name: \"CarrierID\",\n vm: \"1\",\n version: \"DICOM/DICOS\"\n },\n \"(4010,1059)\": {\n tag: \"(4010,1059)\",\n vr: \"CS\",\n name: \"CarrierIDAssigningAuthority\",\n vm: \"1\",\n version: \"DICOM/DICOS\"\n },\n \"(4010,1060)\": {\n tag: \"(4010,1060)\",\n vr: \"FL\",\n name: \"SourceOrientation\",\n vm: \"3\",\n version: \"DICOM/DICOS\"\n },\n \"(4010,1061)\": {\n tag: \"(4010,1061)\",\n vr: \"FL\",\n name: \"SourcePosition\",\n vm: \"3\",\n version: \"DICOM/DICOS\"\n },\n \"(4010,1062)\": {\n tag: \"(4010,1062)\",\n vr: \"FL\",\n name: \"BeltHeight\",\n vm: \"1\",\n version: \"DICOM/DICOS\"\n },\n \"(4010,1064)\": {\n tag: \"(4010,1064)\",\n vr: \"SQ\",\n name: \"AlgorithmRoutingCodeSequence\",\n vm: \"1\",\n version: \"DICOM/DICOS\"\n },\n \"(4010,1067)\": {\n tag: \"(4010,1067)\",\n vr: \"CS\",\n name: \"TransportClassification\",\n vm: \"1\",\n version: \"DICOM/DICOS\"\n },\n \"(4010,1068)\": {\n tag: \"(4010,1068)\",\n vr: \"LT\",\n name: \"OOITypeDescriptor\",\n vm: \"1\",\n version: \"DICOM/DICOS\"\n },\n \"(4010,1069)\": {\n tag: \"(4010,1069)\",\n vr: \"FL\",\n name: \"TotalProcessingTime\",\n vm: \"1\",\n version: \"DICOM/DICOS\"\n },\n \"(4010,106C)\": {\n tag: \"(4010,106C)\",\n vr: \"OB\",\n name: \"DetectorCalibrationData\",\n vm: \"1\",\n version: \"DICOM/DICOS\"\n },\n \"(4010,106D)\": {\n tag: \"(4010,106D)\",\n vr: \"CS\",\n name: \"AdditionalScreeningPerformed\",\n vm: \"1\",\n version: \"DICOM/DICOS\"\n },\n \"(4010,106E)\": {\n tag: \"(4010,106E)\",\n vr: \"CS\",\n name: \"AdditionalInspectionSelectionCriteria\",\n vm: \"1\",\n version: \"DICOM/DICOS\"\n },\n \"(4010,106F)\": {\n tag: \"(4010,106F)\",\n vr: \"SQ\",\n name: \"AdditionalInspectionMethodSequence\",\n vm: \"1\",\n version: \"DICOM/DICOS\"\n },\n \"(4010,1070)\": {\n tag: \"(4010,1070)\",\n vr: \"CS\",\n name: \"AITDeviceType\",\n vm: \"1\",\n version: \"DICOM/DICOS\"\n },\n \"(4010,1071)\": {\n tag: \"(4010,1071)\",\n vr: \"SQ\",\n name: \"QRMeasurementsSequence\",\n vm: \"1\",\n version: \"DICOM/DICOS\"\n },\n \"(4010,1072)\": {\n tag: \"(4010,1072)\",\n vr: \"SQ\",\n name: \"TargetMaterialSequence\",\n vm: \"1\",\n version: \"DICOM/DICOS\"\n },\n \"(4010,1073)\": {\n tag: \"(4010,1073)\",\n vr: \"FD\",\n name: \"SNRThreshold\",\n vm: \"1\",\n version: \"DICOM/DICOS\"\n },\n \"(4010,1075)\": {\n tag: \"(4010,1075)\",\n vr: \"DS\",\n name: \"ImageScaleRepresentation\",\n vm: \"1\",\n version: \"DICOM/DICOS\"\n },\n \"(4010,1076)\": {\n tag: \"(4010,1076)\",\n vr: \"SQ\",\n name: \"ReferencedPTOSequence\",\n vm: \"1\",\n version: \"DICOM/DICOS\"\n },\n \"(4010,1077)\": {\n tag: \"(4010,1077)\",\n vr: \"SQ\",\n name: \"ReferencedTDRInstanceSequence\",\n vm: \"1\",\n version: \"DICOM/DICOS\"\n },\n \"(4010,1078)\": {\n tag: \"(4010,1078)\",\n vr: \"ST\",\n name: \"PTOLocationDescription\",\n vm: \"1\",\n version: \"DICOM/DICOS\"\n },\n \"(4010,1079)\": {\n tag: \"(4010,1079)\",\n vr: \"SQ\",\n name: \"AnomalyLocatorIndicatorSequence\",\n vm: \"1\",\n version: \"DICOM/DICOS\"\n },\n \"(4010,107A)\": {\n tag: \"(4010,107A)\",\n vr: \"FL\",\n name: \"AnomalyLocatorIndicator\",\n vm: \"3\",\n version: \"DICOM/DICOS\"\n },\n \"(4010,107B)\": {\n tag: \"(4010,107B)\",\n vr: \"SQ\",\n name: \"PTORegionSequence\",\n vm: \"1\",\n version: \"DICOM/DICOS\"\n },\n \"(4010,107C)\": {\n tag: \"(4010,107C)\",\n vr: \"CS\",\n name: \"InspectionSelectionCriteria\",\n vm: \"1\",\n version: \"DICOM/DICOS\"\n },\n \"(4010,107D)\": {\n tag: \"(4010,107D)\",\n vr: \"SQ\",\n name: \"SecondaryInspectionMethodSequence\",\n vm: \"1\",\n version: \"DICOM/DICOS\"\n },\n \"(4010,107E)\": {\n tag: \"(4010,107E)\",\n vr: \"DS\",\n name: \"PRCSToRCSOrientation\",\n vm: \"6\",\n version: \"DICOM/DICOS\"\n },\n \"(3010,0001)\": {\n tag: \"(3010,0001)\",\n vr: \"SQ\",\n name: \"RadiobiologicalDoseEffectSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,0002)\": {\n tag: \"(3010,0002)\",\n vr: \"CS\",\n name: \"RadiobiologicalDoseEffectFlag\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,0003)\": {\n tag: \"(3010,0003)\",\n vr: \"SQ\",\n name: \"EffectiveDoseCalculationMethodCategoryCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,0004)\": {\n tag: \"(3010,0004)\",\n vr: \"SQ\",\n name: \"EffectiveDoseCalculationMethodCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,0005)\": {\n tag: \"(3010,0005)\",\n vr: \"LO\",\n name: \"EffectiveDoseCalculationMethodDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,0006)\": {\n tag: \"(3010,0006)\",\n vr: \"UI\",\n name: \"ConceptualVolumeUID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,0007)\": {\n tag: \"(3010,0007)\",\n vr: \"SQ\",\n name: \"OriginatingSOPInstanceReferenceSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,0008)\": {\n tag: \"(3010,0008)\",\n vr: \"SQ\",\n name: \"ConceptualVolumeConstituentSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,0009)\": {\n tag: \"(3010,0009)\",\n vr: \"SQ\",\n name: \"EquivalentConceptualVolumeInstanceReferenceSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,000A)\": {\n tag: \"(3010,000A)\",\n vr: \"SQ\",\n name: \"EquivalentConceptualVolumesSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,000B)\": {\n tag: \"(3010,000B)\",\n vr: \"UI\",\n name: \"ReferencedConceptualVolumeUID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,000C)\": {\n tag: \"(3010,000C)\",\n vr: \"UT\",\n name: \"ConceptualVolumeCombinationExpression\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,000D)\": {\n tag: \"(3010,000D)\",\n vr: \"US\",\n name: \"ConceptualVolumeConstituentIndex\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,000E)\": {\n tag: \"(3010,000E)\",\n vr: \"CS\",\n name: \"ConceptualVolumeCombinationFlag\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,000F)\": {\n tag: \"(3010,000F)\",\n vr: \"ST\",\n name: \"ConceptualVolumeCombinationDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,0010)\": {\n tag: \"(3010,0010)\",\n vr: \"CS\",\n name: \"ConceptualVolumeSegmentationDefinedFlag\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,0011)\": {\n tag: \"(3010,0011)\",\n vr: \"SQ\",\n name: \"ConceptualVolumeSegmentationReferenceSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,0012)\": {\n tag: \"(3010,0012)\",\n vr: \"SQ\",\n name: \"ConceptualVolumeConstituentSegmentationReferenceSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,0013)\": {\n tag: \"(3010,0013)\",\n vr: \"UI\",\n name: \"ConstituentConceptualVolumeUID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,0014)\": {\n tag: \"(3010,0014)\",\n vr: \"SQ\",\n name: \"DerivationConceptualVolumeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,0015)\": {\n tag: \"(3010,0015)\",\n vr: \"UI\",\n name: \"SourceConceptualVolumeUID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,0016)\": {\n tag: \"(3010,0016)\",\n vr: \"SQ\",\n name: \"ConceptualVolumeDerivationAlgorithmSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,0017)\": {\n tag: \"(3010,0017)\",\n vr: \"ST\",\n name: \"ConceptualVolumeDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,0018)\": {\n tag: \"(3010,0018)\",\n vr: \"SQ\",\n name: \"SourceConceptualVolumeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,0019)\": {\n tag: \"(3010,0019)\",\n vr: \"SQ\",\n name: \"AuthorIdentificationSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,001A)\": {\n tag: \"(3010,001A)\",\n vr: \"LO\",\n name: \"ManufacturerModelVersion\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,001B)\": {\n tag: \"(3010,001B)\",\n vr: \"UC\",\n name: \"DeviceAlternateIdentifier\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,001C)\": {\n tag: \"(3010,001C)\",\n vr: \"CS\",\n name: \"DeviceAlternateIdentifierType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,001D)\": {\n tag: \"(3010,001D)\",\n vr: \"LT\",\n name: \"DeviceAlternateIdentifierFormat\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,001E)\": {\n tag: \"(3010,001E)\",\n vr: \"LO\",\n name: \"SegmentationCreationTemplateLabel\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,001F)\": {\n tag: \"(3010,001F)\",\n vr: \"UI\",\n name: \"SegmentationTemplateUID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,0020)\": {\n tag: \"(3010,0020)\",\n vr: \"US\",\n name: \"ReferencedSegmentReferenceIndex\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,0021)\": {\n tag: \"(3010,0021)\",\n vr: \"SQ\",\n name: \"SegmentReferenceSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,0022)\": {\n tag: \"(3010,0022)\",\n vr: \"US\",\n name: \"SegmentReferenceIndex\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,0023)\": {\n tag: \"(3010,0023)\",\n vr: \"SQ\",\n name: \"DirectSegmentReferenceSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,0024)\": {\n tag: \"(3010,0024)\",\n vr: \"SQ\",\n name: \"CombinationSegmentReferenceSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,0025)\": {\n tag: \"(3010,0025)\",\n vr: \"SQ\",\n name: \"ConceptualVolumeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,0026)\": {\n tag: \"(3010,0026)\",\n vr: \"SQ\",\n name: \"SegmentedRTAccessoryDeviceSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,0027)\": {\n tag: \"(3010,0027)\",\n vr: \"SQ\",\n name: \"SegmentCharacteristicsSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,0028)\": {\n tag: \"(3010,0028)\",\n vr: \"SQ\",\n name: \"RelatedSegmentCharacteristicsSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,0029)\": {\n tag: \"(3010,0029)\",\n vr: \"US\",\n name: \"SegmentCharacteristicsPrecedence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,002A)\": {\n tag: \"(3010,002A)\",\n vr: \"SQ\",\n name: \"RTSegmentAnnotationSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,002B)\": {\n tag: \"(3010,002B)\",\n vr: \"SQ\",\n name: \"SegmentAnnotationCategoryCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,002C)\": {\n tag: \"(3010,002C)\",\n vr: \"SQ\",\n name: \"SegmentAnnotationTypeCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,002D)\": {\n tag: \"(3010,002D)\",\n vr: \"LO\",\n name: \"DeviceLabel\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,002E)\": {\n tag: \"(3010,002E)\",\n vr: \"SQ\",\n name: \"DeviceTypeCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,002F)\": {\n tag: \"(3010,002F)\",\n vr: \"SQ\",\n name: \"SegmentAnnotationTypeModifierCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,0030)\": {\n tag: \"(3010,0030)\",\n vr: \"SQ\",\n name: \"PatientEquipmentRelationshipCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,0031)\": {\n tag: \"(3010,0031)\",\n vr: \"UI\",\n name: \"ReferencedFiducialsUID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,0032)\": {\n tag: \"(3010,0032)\",\n vr: \"SQ\",\n name: \"PatientTreatmentOrientationSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,0033)\": {\n tag: \"(3010,0033)\",\n vr: \"SH\",\n name: \"UserContentLabel\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,0034)\": {\n tag: \"(3010,0034)\",\n vr: \"LO\",\n name: \"UserContentLongLabel\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,0035)\": {\n tag: \"(3010,0035)\",\n vr: \"SH\",\n name: \"EntityLabel\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,0036)\": {\n tag: \"(3010,0036)\",\n vr: \"LO\",\n name: \"EntityName\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,0037)\": {\n tag: \"(3010,0037)\",\n vr: \"ST\",\n name: \"EntityDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,0038)\": {\n tag: \"(3010,0038)\",\n vr: \"LO\",\n name: \"EntityLongLabel\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,0039)\": {\n tag: \"(3010,0039)\",\n vr: \"US\",\n name: \"DeviceIndex\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,003A)\": {\n tag: \"(3010,003A)\",\n vr: \"US\",\n name: \"RTTreatmentPhaseIndex\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,003B)\": {\n tag: \"(3010,003B)\",\n vr: \"UI\",\n name: \"RTTreatmentPhaseUID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,003C)\": {\n tag: \"(3010,003C)\",\n vr: \"US\",\n name: \"RTPrescriptionIndex\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,003D)\": {\n tag: \"(3010,003D)\",\n vr: \"US\",\n name: \"RTSegmentAnnotationIndex\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,003E)\": {\n tag: \"(3010,003E)\",\n vr: \"US\",\n name: \"BasisRTTreatmentPhaseIndex\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,003F)\": {\n tag: \"(3010,003F)\",\n vr: \"US\",\n name: \"RelatedRTTreatmentPhaseIndex\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,0040)\": {\n tag: \"(3010,0040)\",\n vr: \"US\",\n name: \"ReferencedRTTreatmentPhaseIndex\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,0041)\": {\n tag: \"(3010,0041)\",\n vr: \"US\",\n name: \"ReferencedRTPrescriptionIndex\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,0042)\": {\n tag: \"(3010,0042)\",\n vr: \"US\",\n name: \"ReferencedParentRTPrescriptionIndex\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,0043)\": {\n tag: \"(3010,0043)\",\n vr: \"ST\",\n name: \"ManufacturerDeviceIdentifier\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,0044)\": {\n tag: \"(3010,0044)\",\n vr: \"SQ\",\n name: \"InstanceLevelReferencedPerformedProcedureStepSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,0045)\": {\n tag: \"(3010,0045)\",\n vr: \"CS\",\n name: \"RTTreatmentPhaseIntentPresenceFlag\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,0046)\": {\n tag: \"(3010,0046)\",\n vr: \"CS\",\n name: \"RadiotherapyTreatmentType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,0047)\": {\n tag: \"(3010,0047)\",\n vr: \"CS\",\n name: \"TeletherapyRadiationType\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(3010,0048)\": {\n tag: \"(3010,0048)\",\n vr: \"CS\",\n name: \"BrachytherapySourceType\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(3010,0049)\": {\n tag: \"(3010,0049)\",\n vr: \"SQ\",\n name: \"ReferencedRTTreatmentPhaseSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,004A)\": {\n tag: \"(3010,004A)\",\n vr: \"SQ\",\n name: \"ReferencedDirectSegmentInstanceSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,004B)\": {\n tag: \"(3010,004B)\",\n vr: \"SQ\",\n name: \"IntendedRTTreatmentPhaseSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,004C)\": {\n tag: \"(3010,004C)\",\n vr: \"DA\",\n name: \"IntendedPhaseStartDate\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,004D)\": {\n tag: \"(3010,004D)\",\n vr: \"DA\",\n name: \"IntendedPhaseEndDate\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,004E)\": {\n tag: \"(3010,004E)\",\n vr: \"SQ\",\n name: \"RTTreatmentPhaseIntervalSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,004F)\": {\n tag: \"(3010,004F)\",\n vr: \"CS\",\n name: \"TemporalRelationshipIntervalAnchor\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,0050)\": {\n tag: \"(3010,0050)\",\n vr: \"FD\",\n name: \"MinimumNumberOfIntervalDays\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,0051)\": {\n tag: \"(3010,0051)\",\n vr: \"FD\",\n name: \"MaximumNumberOfIntervalDays\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,0052)\": {\n tag: \"(3010,0052)\",\n vr: \"UI\",\n name: \"PertinentSOPClassesInStudy\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(3010,0053)\": {\n tag: \"(3010,0053)\",\n vr: \"UI\",\n name: \"PertinentSOPClassesInSeries\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(3010,0054)\": {\n tag: \"(3010,0054)\",\n vr: \"LO\",\n name: \"RTPrescriptionLabel\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,0055)\": {\n tag: \"(3010,0055)\",\n vr: \"SQ\",\n name: \"RTPhysicianIntentPredecessorSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,0056)\": {\n tag: \"(3010,0056)\",\n vr: \"LO\",\n name: \"RTTreatmentApproachLabel\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,0057)\": {\n tag: \"(3010,0057)\",\n vr: \"SQ\",\n name: \"RTPhysicianIntentSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,0058)\": {\n tag: \"(3010,0058)\",\n vr: \"US\",\n name: \"RTPhysicianIntentIndex\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,0059)\": {\n tag: \"(3010,0059)\",\n vr: \"CS\",\n name: \"RTTreatmentIntentType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,005A)\": {\n tag: \"(3010,005A)\",\n vr: \"UT\",\n name: \"RTPhysicianIntentNarrative\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,005B)\": {\n tag: \"(3010,005B)\",\n vr: \"SQ\",\n name: \"RTProtocolCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,005C)\": {\n tag: \"(3010,005C)\",\n vr: \"ST\",\n name: \"ReasonForSuperseding\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,005D)\": {\n tag: \"(3010,005D)\",\n vr: \"SQ\",\n name: \"RTDiagnosisCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,005E)\": {\n tag: \"(3010,005E)\",\n vr: \"US\",\n name: \"ReferencedRTPhysicianIntentIndex\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,005F)\": {\n tag: \"(3010,005F)\",\n vr: \"SQ\",\n name: \"RTPhysicianIntentInputInstanceSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,0060)\": {\n tag: \"(3010,0060)\",\n vr: \"SQ\",\n name: \"RTAnatomicPrescriptionSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,0061)\": {\n tag: \"(3010,0061)\",\n vr: \"UT\",\n name: \"PriorTreatmentDoseDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,0062)\": {\n tag: \"(3010,0062)\",\n vr: \"SQ\",\n name: \"PriorTreatmentReferenceSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,0063)\": {\n tag: \"(3010,0063)\",\n vr: \"CS\",\n name: \"DosimetricObjectiveEvaluationScope\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,0064)\": {\n tag: \"(3010,0064)\",\n vr: \"SQ\",\n name: \"TherapeuticRoleCategoryCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,0065)\": {\n tag: \"(3010,0065)\",\n vr: \"SQ\",\n name: \"TherapeuticRoleTypeCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,0066)\": {\n tag: \"(3010,0066)\",\n vr: \"US\",\n name: \"ConceptualVolumeOptimizationPrecedence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,0067)\": {\n tag: \"(3010,0067)\",\n vr: \"SQ\",\n name: \"ConceptualVolumeCategoryCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,0068)\": {\n tag: \"(3010,0068)\",\n vr: \"CS\",\n name: \"ConceptualVolumeBlockingConstraint\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,0069)\": {\n tag: \"(3010,0069)\",\n vr: \"SQ\",\n name: \"ConceptualVolumeTypeCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,006A)\": {\n tag: \"(3010,006A)\",\n vr: \"SQ\",\n name: \"ConceptualVolumeTypeModifierCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,006B)\": {\n tag: \"(3010,006B)\",\n vr: \"SQ\",\n name: \"RTPrescriptionSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,006C)\": {\n tag: \"(3010,006C)\",\n vr: \"SQ\",\n name: \"DosimetricObjectiveSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,006D)\": {\n tag: \"(3010,006D)\",\n vr: \"SQ\",\n name: \"DosimetricObjectiveTypeCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,006E)\": {\n tag: \"(3010,006E)\",\n vr: \"UI\",\n name: \"DosimetricObjectiveUID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,006F)\": {\n tag: \"(3010,006F)\",\n vr: \"UI\",\n name: \"ReferencedDosimetricObjectiveUID\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,0070)\": {\n tag: \"(3010,0070)\",\n vr: \"SQ\",\n name: \"DosimetricObjectiveParameterSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,0071)\": {\n tag: \"(3010,0071)\",\n vr: \"SQ\",\n name: \"ReferencedDosimetricObjectivesSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,0073)\": {\n tag: \"(3010,0073)\",\n vr: \"CS\",\n name: \"AbsoluteDosimetricObjectiveFlag\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,0074)\": {\n tag: \"(3010,0074)\",\n vr: \"FD\",\n name: \"DosimetricObjectiveWeight\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,0075)\": {\n tag: \"(3010,0075)\",\n vr: \"CS\",\n name: \"DosimetricObjectivePurpose\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,0076)\": {\n tag: \"(3010,0076)\",\n vr: \"SQ\",\n name: \"PlanningInputInformationSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,0077)\": {\n tag: \"(3010,0077)\",\n vr: \"LO\",\n name: \"TreatmentSite\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,0078)\": {\n tag: \"(3010,0078)\",\n vr: \"SQ\",\n name: \"TreatmentSiteCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,0079)\": {\n tag: \"(3010,0079)\",\n vr: \"SQ\",\n name: \"FractionPatternSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,007A)\": {\n tag: \"(3010,007A)\",\n vr: \"UT\",\n name: \"TreatmentTechniqueNotes\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,007B)\": {\n tag: \"(3010,007B)\",\n vr: \"UT\",\n name: \"PrescriptionNotes\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,007C)\": {\n tag: \"(3010,007C)\",\n vr: \"IS\",\n name: \"NumberOfIntervalFractions\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,007D)\": {\n tag: \"(3010,007D)\",\n vr: \"US\",\n name: \"NumberOfFractions\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,007E)\": {\n tag: \"(3010,007E)\",\n vr: \"US\",\n name: \"IntendedDeliveryDuration\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,007F)\": {\n tag: \"(3010,007F)\",\n vr: \"UT\",\n name: \"FractionationNotes\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,0080)\": {\n tag: \"(3010,0080)\",\n vr: \"SQ\",\n name: \"RTTreatmentTechniqueCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,0081)\": {\n tag: \"(3010,0081)\",\n vr: \"SQ\",\n name: \"PrescriptionNotesSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,0082)\": {\n tag: \"(3010,0082)\",\n vr: \"SQ\",\n name: \"FractionBasedRelationshipSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,0083)\": {\n tag: \"(3010,0083)\",\n vr: \"CS\",\n name: \"FractionBasedRelationshipIntervalAnchor\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,0084)\": {\n tag: \"(3010,0084)\",\n vr: \"FD\",\n name: \"MinimumHoursBetweenFractions\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,0085)\": {\n tag: \"(3010,0085)\",\n vr: \"TM\",\n name: \"IntendedFractionStartTime\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(3010,0086)\": {\n tag: \"(3010,0086)\",\n vr: \"LT\",\n name: \"IntendedStartDayOfWeek\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,0087)\": {\n tag: \"(3010,0087)\",\n vr: \"SQ\",\n name: \"WeekdayFractionPatternSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,0088)\": {\n tag: \"(3010,0088)\",\n vr: \"SQ\",\n name: \"DeliveryTimeStructureCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,0089)\": {\n tag: \"(3010,0089)\",\n vr: \"SQ\",\n name: \"TreatmentSiteModifierCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,0090)\": {\n tag: \"(3010,0090)\",\n vr: \"CS\",\n name: \"RoboticBaseLocationIndicator\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,0091)\": {\n tag: \"(3010,0091)\",\n vr: \"SQ\",\n name: \"RoboticPathNodeSetCodeSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,0092)\": {\n tag: \"(3010,0092)\",\n vr: \"UL\",\n name: \"RoboticNodeIdentifier\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,0093)\": {\n tag: \"(3010,0093)\",\n vr: \"FD\",\n name: \"RTTreatmentSourceCoordinates\",\n vm: \"3\",\n version: \"DICOM\"\n },\n \"(3010,0094)\": {\n tag: \"(3010,0094)\",\n vr: \"FD\",\n name: \"RadiationSourceCoordinateSystemYawAngle\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,0095)\": {\n tag: \"(3010,0095)\",\n vr: \"FD\",\n name: \"RadiationSourceCoordinateSystemRollAngle\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,0096)\": {\n tag: \"(3010,0096)\",\n vr: \"FD\",\n name: \"RadiationSourceCoordinateSystemPitchAngle\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,0097)\": {\n tag: \"(3010,0097)\",\n vr: \"SQ\",\n name: \"RoboticPathControlPointSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,0098)\": {\n tag: \"(3010,0098)\",\n vr: \"SQ\",\n name: \"TomotherapeuticControlPointSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(3010,0099)\": {\n tag: \"(3010,0099)\",\n vr: \"FD\",\n name: \"TomotherapeuticLeafOpenDurations\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(3010,009A)\": {\n tag: \"(3010,009A)\",\n vr: \"FD\",\n name: \"TomotherapeuticLeafInitialClosedDurations\",\n vm: \"1-n\",\n version: \"DICOM\"\n },\n \"(4FFE,0001)\": {\n tag: \"(4FFE,0001)\",\n vr: \"SQ\",\n name: \"MACParametersSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(5200,9229)\": {\n tag: \"(5200,9229)\",\n vr: \"SQ\",\n name: \"SharedFunctionalGroupsSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(5200,9230)\": {\n tag: \"(5200,9230)\",\n vr: \"SQ\",\n name: \"PerFrameFunctionalGroupsSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(5400,0100)\": {\n tag: \"(5400,0100)\",\n vr: \"SQ\",\n name: \"WaveformSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(5400,0110)\": {\n tag: \"(5400,0110)\",\n vr: \"ox\",\n name: \"ChannelMinimumValue\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(5400,0112)\": {\n tag: \"(5400,0112)\",\n vr: \"ox\",\n name: \"ChannelMaximumValue\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(5400,1004)\": {\n tag: \"(5400,1004)\",\n vr: \"US\",\n name: \"WaveformBitsAllocated\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(5400,1006)\": {\n tag: \"(5400,1006)\",\n vr: \"CS\",\n name: \"WaveformSampleInterpretation\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(5400,100A)\": {\n tag: \"(5400,100A)\",\n vr: \"ox\",\n name: \"WaveformPaddingValue\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(5400,1010)\": {\n tag: \"(5400,1010)\",\n vr: \"ox\",\n name: \"WaveformData\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(5600,0010)\": {\n tag: \"(5600,0010)\",\n vr: \"OF\",\n name: \"FirstOrderPhaseCorrectionAngle\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(5600,0020)\": {\n tag: \"(5600,0020)\",\n vr: \"OF\",\n name: \"SpectroscopyData\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(6000-60FF,0010)\": {\n tag: \"(6000-60FF,0010)\",\n vr: \"US\",\n name: \"OverlayRows\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(6000-60FF,0011)\": {\n tag: \"(6000-60FF,0011)\",\n vr: \"US\",\n name: \"OverlayColumns\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(6000-60FF,0015)\": {\n tag: \"(6000-60FF,0015)\",\n vr: \"IS\",\n name: \"NumberOfFramesInOverlay\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(6000-60FF,0022)\": {\n tag: \"(6000-60FF,0022)\",\n vr: \"LO\",\n name: \"OverlayDescription\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(6000-60FF,0040)\": {\n tag: \"(6000-60FF,0040)\",\n vr: \"CS\",\n name: \"OverlayType\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(6000-60FF,0045)\": {\n tag: \"(6000-60FF,0045)\",\n vr: \"LO\",\n name: \"OverlaySubtype\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(6000-60FF,0050)\": {\n tag: \"(6000-60FF,0050)\",\n vr: \"SS\",\n name: \"OverlayOrigin\",\n vm: \"2\",\n version: \"DICOM\"\n },\n \"(6000-60FF,0051)\": {\n tag: \"(6000-60FF,0051)\",\n vr: \"US\",\n name: \"ImageFrameOrigin\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(6000-60FF,0100)\": {\n tag: \"(6000-60FF,0100)\",\n vr: \"US\",\n name: \"OverlayBitsAllocated\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(6000-60FF,0102)\": {\n tag: \"(6000-60FF,0102)\",\n vr: \"US\",\n name: \"OverlayBitPosition\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(6000-60FF,1001)\": {\n tag: \"(6000-60FF,1001)\",\n vr: \"CS\",\n name: \"OverlayActivationLayer\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(6000-60FF,1301)\": {\n tag: \"(6000-60FF,1301)\",\n vr: \"IS\",\n name: \"ROIArea\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(6000-60FF,1302)\": {\n tag: \"(6000-60FF,1302)\",\n vr: \"DS\",\n name: \"ROIMean\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(6000-60FF,1303)\": {\n tag: \"(6000-60FF,1303)\",\n vr: \"DS\",\n name: \"ROIStandardDeviation\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(6000-60FF,1500)\": {\n tag: \"(6000-60FF,1500)\",\n vr: \"LO\",\n name: \"OverlayLabel\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(6000-60FF,3000)\": {\n tag: \"(6000-60FF,3000)\",\n vr: \"ox\",\n name: \"OverlayData\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(7FE0,0001)\": {\n tag: \"(7FE0,0001)\",\n vr: \"OV\",\n name: \"ExtendedOffsetTable\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(7FE0,0002)\": {\n tag: \"(7FE0,0002)\",\n vr: \"OV\",\n name: \"ExtendedOffsetTableLengths\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(7FE0,0008)\": {\n tag: \"(7FE0,0008)\",\n vr: \"OF\",\n name: \"FloatPixelData\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(7FE0,0009)\": {\n tag: \"(7FE0,0009)\",\n vr: \"OD\",\n name: \"DoubleFloatPixelData\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(7FE0,0010)\": {\n tag: \"(7FE0,0010)\",\n vr: \"ox\",\n name: \"PixelData\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(FFFA,FFFA)\": {\n tag: \"(FFFA,FFFA)\",\n vr: \"SQ\",\n name: \"DigitalSignaturesSequence\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(FFFC,FFFC)\": {\n tag: \"(FFFC,FFFC)\",\n vr: \"OB\",\n name: \"DataSetTrailingPadding\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(FFFE,E000)\": {\n tag: \"(FFFE,E000)\",\n vr: \"na\",\n name: \"Item\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(FFFE,E00D)\": {\n tag: \"(FFFE,E00D)\",\n vr: \"na\",\n name: \"ItemDelimitationItem\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(FFFE,E0DD)\": {\n tag: \"(FFFE,E0DD)\",\n vr: \"na\",\n name: \"SequenceDelimitationItem\",\n vm: \"1\",\n version: \"DICOM\"\n },\n \"(0028,1224)\": {\n tag: \"(0028,1224)\",\n vr: \"OW\",\n name: \"SegmentedAlphaPaletteColorLookupTableData\",\n vm: \"1\",\n version: \"Supplement_156\"\n },\n \"(0070,1101)\": {\n tag: \"(0070,1101)\",\n vr: \"UI\",\n name: \"PresentationDisplayCollectionUID\",\n vm: \"1\",\n version: \"Supplement_156\"\n },\n \"(0070,1102)\": {\n tag: \"(0070,1102)\",\n vr: \"UI\",\n name: \"PresentationSequenceCollectionUID\",\n vm: \"1\",\n version: \"Supplement_156\"\n },\n \"(0070,1103)\": {\n tag: \"(0070,1103)\",\n vr: \"US\",\n name: \"PresentationSequencePositionIndex\",\n vm: \"1\",\n version: \"Supplement_156\"\n },\n \"(0070,1104)\": {\n tag: \"(0070,1104)\",\n vr: \"SQ\",\n name: \"RenderedImageReferenceSequence\",\n vm: \"1\",\n version: \"Supplement_156\"\n },\n \"(0070,1201)\": {\n tag: \"(0070,1201)\",\n vr: \"SQ\",\n name: \"VolumetricPresentationStateInputSequence\",\n vm: \"1\",\n version: \"Supplement_156\"\n },\n \"(0070,1202)\": {\n tag: \"(0070,1202)\",\n vr: \"CS\",\n name: \"PresentationInputType\",\n vm: \"1\",\n version: \"Supplement_156\"\n },\n \"(0070,1203)\": {\n tag: \"(0070,1203)\",\n vr: \"US\",\n name: \"InputSequencePositionIndex\",\n vm: \"1\",\n version: \"Supplement_156\"\n },\n \"(0070,1204)\": {\n tag: \"(0070,1204)\",\n vr: \"CS\",\n name: \"Crop\",\n vm: \"1\",\n version: \"Supplement_156\"\n },\n \"(0070,1205)\": {\n tag: \"(0070,1205)\",\n vr: \"US\",\n name: \"CroppingSpecificationIndex\",\n vm: \"1-n\",\n version: \"Supplement_156\"\n },\n \"(0070,1206)\": {\n tag: \"(0070,1206)\",\n vr: \"CS\",\n name: \"CompositingMethod\",\n vm: \"1\",\n version: \"Supplement_156\"\n },\n \"(0070,1207)\": {\n tag: \"(0070,1207)\",\n vr: \"US\",\n name: \"VolumetricPresentationInputNumber\",\n vm: \"1\",\n version: \"Supplement_156\"\n },\n \"(0070,1208)\": {\n tag: \"(0070,1208)\",\n vr: \"CS\",\n name: \"ImageVolumeGeometry\",\n vm: \"1\",\n version: \"Supplement_156\"\n },\n \"(0070,1301)\": {\n tag: \"(0070,1301)\",\n vr: \"SQ\",\n name: \"VolumeCroppingSequence\",\n vm: \"1\",\n version: \"Supplement_156\"\n },\n \"(0070,1302)\": {\n tag: \"(0070,1302)\",\n vr: \"CS\",\n name: \"VolumeCroppingMethod\",\n vm: \"1\",\n version: \"Supplement_156\"\n },\n \"(0070,1303)\": {\n tag: \"(0070,1303)\",\n vr: \"FD\",\n name: \"BoundingBoxCrop\",\n vm: \"6\",\n version: \"Supplement_156\"\n },\n \"(0070,1304)\": {\n tag: \"(0070,1304)\",\n vr: \"SQ\",\n name: \"ObliqueCroppingPlaneSequence\",\n vm: \"1\",\n version: \"Supplement_156\"\n },\n \"(0070,1305)\": {\n tag: \"(0070,1305)\",\n vr: \"FD\",\n name: \"ObliqueCroppingPlane\",\n vm: \"4\",\n version: \"Supplement_156\"\n },\n \"(0070,1306)\": {\n tag: \"(0070,1306)\",\n vr: \"FD\",\n name: \"ObliqueCroppingPlaneNormal\",\n vm: \"3\",\n version: \"Supplement_156\"\n },\n \"(0070,1309)\": {\n tag: \"(0070,1309)\",\n vr: \"US\",\n name: \"CroppingSpecificationNumber\",\n vm: \"1\",\n version: \"Supplement_156\"\n },\n \"(0070,1501)\": {\n tag: \"(0070,1501)\",\n vr: \"CS\",\n name: \"MultiPlanarReconstructionStyle\",\n vm: \"1\",\n version: \"Supplement_156\"\n },\n \"(0070,1502)\": {\n tag: \"(0070,1502)\",\n vr: \"CS\",\n name: \"MPRThicknessType\",\n vm: \"1\",\n version: \"Supplement_156\"\n },\n \"(0070,1503)\": {\n tag: \"(0070,1503)\",\n vr: \"FD\",\n name: \"MPRSlabThickness\",\n vm: \"1\",\n version: \"Supplement_156\"\n },\n \"(0070,1505)\": {\n tag: \"(0070,1505)\",\n vr: \"FD\",\n name: \"MPRTopLeftHandCorner\",\n vm: \"3\",\n version: \"Supplement_156\"\n },\n \"(0070,1507)\": {\n tag: \"(0070,1507)\",\n vr: \"FD\",\n name: \"MPRViewWidthDirection\",\n vm: \"3\",\n version: \"Supplement_156\"\n },\n \"(0070,1508)\": {\n tag: \"(0070,1508)\",\n vr: \"FD\",\n name: \"MPRViewWidth\",\n vm: \"1\",\n version: \"Supplement_156\"\n },\n \"(0070,150C)\": {\n tag: \"(0070,150C)\",\n vr: \"FL\",\n name: \"NumberOfVolumetricCurvePoints\",\n vm: \"1\",\n version: \"Supplement_156\"\n },\n \"(0070,150D)\": {\n tag: \"(0070,150D)\",\n vr: \"OD\",\n name: \"VolumetricCurvePoints\",\n vm: \"1\",\n version: \"Supplement_156\"\n },\n \"(0070,1511)\": {\n tag: \"(0070,1511)\",\n vr: \"FD\",\n name: \"MPRViewHeightDirection\",\n vm: \"3\",\n version: \"Supplement_156\"\n },\n \"(0070,1512)\": {\n tag: \"(0070,1512)\",\n vr: \"FD\",\n name: \"MPRViewHeight\",\n vm: \"1\",\n version: \"Supplement_156\"\n },\n \"(0070,1801)\": {\n tag: \"(0070,1801)\",\n vr: \"SQ\",\n name: \"PresentationStateClassificationComponentSequence\",\n vm: \"1\",\n version: \"Supplement_156\"\n },\n \"(0070,1802)\": {\n tag: \"(0070,1802)\",\n vr: \"CS\",\n name: \"ComponentType\",\n vm: \"1\",\n version: \"Supplement_156\"\n },\n \"(0070,1803)\": {\n tag: \"(0070,1803)\",\n vr: \"SQ\",\n name: \"ComponentInputSequence\",\n vm: \"1\",\n version: \"Supplement_156\"\n },\n \"(0070,1804)\": {\n tag: \"(0070,1804)\",\n vr: \"US\",\n name: \"VolumetricPresentationInputIndex\",\n vm: \"1\",\n version: \"Supplement_156\"\n },\n \"(0070,1805)\": {\n tag: \"(0070,1805)\",\n vr: \"SQ\",\n name: \"PresentationStateCompositorComponentSequence\",\n vm: \"1\",\n version: \"Supplement_156\"\n },\n \"(0070,1806)\": {\n tag: \"(0070,1806)\",\n vr: \"SQ\",\n name: \"WeightingTransferFunctionSequence\",\n vm: \"1\",\n version: \"Supplement_156\"\n },\n \"(0070,1807)\": {\n tag: \"(0070,1807)\",\n vr: \"US\",\n name: \"WeightingLookupTableDescriptor\",\n vm: \"3\",\n version: \"Supplement_156\"\n },\n \"(0070,1808)\": {\n tag: \"(0070,1808)\",\n vr: \"OB\",\n name: \"WeightingLookupTableData\",\n vm: \"1\",\n version: \"Supplement_156\"\n },\n \"(0070,1901)\": {\n tag: \"(0070,1901)\",\n vr: \"SQ\",\n name: \"VolumetricAnnotationSequence\",\n vm: \"1\",\n version: \"Supplement_156\"\n },\n \"(0070,1903)\": {\n tag: \"(0070,1903)\",\n vr: \"SQ\",\n name: \"ReferencedStructuredContextSequence\",\n vm: \"1\",\n version: \"Supplement_156\"\n },\n \"(0070,1904)\": {\n tag: \"(0070,1904)\",\n vr: \"UI\",\n name: \"ReferencedContentItem\",\n vm: \"1\",\n version: \"Supplement_156\"\n },\n \"(0070,1905)\": {\n tag: \"(0070,1905)\",\n vr: \"SQ\",\n name: \"VolumetricPresentationInputAnnotationSequence\",\n vm: \"1\",\n version: \"Supplement_156\"\n },\n \"(0070,1907)\": {\n tag: \"(0070,1907)\",\n vr: \"CS\",\n name: \"AnnotationClipping\",\n vm: \"1\",\n version: \"Supplement_156\"\n },\n \"(0070,1A01)\": {\n tag: \"(0070,1A01)\",\n vr: \"CS\",\n name: \"PresentationAnimationStyle\",\n vm: \"1\",\n version: \"Supplement_156\"\n },\n \"(0070,1A03)\": {\n tag: \"(0070,1A03)\",\n vr: \"FD\",\n name: \"RecommendedAnimationRate\",\n vm: \"1\",\n version: \"Supplement_156\"\n },\n \"(0070,1A04)\": {\n tag: \"(0070,1A04)\",\n vr: \"SQ\",\n name: \"AnimationCurveSequence\",\n vm: \"1\",\n version: \"Supplement_156\"\n },\n \"(0070,1A05)\": {\n tag: \"(0070,1A05)\",\n vr: \"FD\",\n name: \"AnimationStepSize\",\n vm: \"1\",\n version: \"Supplement_156\"\n },\n \"(0040,4070)\": {\n tag: \"(0040,4070)\",\n vr: \"SQ\",\n name: \"OutputDestinationSequence\",\n vm: \"1\",\n version: \"CP_1441\"\n },\n \"(0040,4071)\": {\n tag: \"(0040,4071)\",\n vr: \"SQ\",\n name: \"DICOMStorageSequence\",\n vm: \"1\",\n version: \"CP_1441\"\n },\n \"(0040,4072)\": {\n tag: \"(0040,4072)\",\n vr: \"SQ\",\n name: \"STOWRSStorageSequence\",\n vm: \"1\",\n version: \"CP_1441\"\n },\n \"(0040,4073)\": {\n tag: \"(0040,4073)\",\n vr: \"UR\",\n name: \"StorageURL\",\n vm: \"1\",\n version: \"CP_1441\"\n },\n \"(0040,4074)\": {\n tag: \"(0040,4074)\",\n vr: \"SQ\",\n name: \"XDSStorageSequence\",\n vm: \"1\",\n version: \"CP_1441\"\n },\n \"(0028,2002)\": {\n tag: \"(0028,2002)\",\n vr: \"CS\",\n name: \"ColorSpace\",\n vm: \"1\",\n version: \"CP_1454\"\n },\n \"(0040,9213)\": {\n tag: \"(0040,9213)\",\n vr: \"FD\",\n name: \"DoubleFloatRealWorldValueLastValueMapped\",\n vm: \"1\",\n version: \"CP_1458\"\n },\n \"(0040,9214)\": {\n tag: \"(0040,9214)\",\n vr: \"FD\",\n name: \"DoubleFloatRealWorldValueFirstValueMapped\",\n vm: \"1\",\n version: \"CP_1458\"\n },\n \"(0018,1320)\": {\n tag: \"(0018,1320)\",\n vr: \"FL\",\n name: \"B1rms\",\n vm: \"1\",\n version: \"CP_1461\"\n },\n \"(0009-o-FFFF,0000)\": {\n tag: \"(0009-o-FFFF,0000)\",\n vr: \"UL\",\n name: \"PrivateGroupLength\",\n vm: \"1\",\n version: \"PRIVATE\"\n },\n \"(0009-o-FFFF,0010-u-00FF)\": {\n tag: \"(0009-o-FFFF,0010-u-00FF)\",\n vr: \"LO\",\n name: \"PrivateCreator\",\n vm: \"1\",\n version: \"PRIVATE\"\n },\n \"(0001-o-0007,0000)\": {\n tag: \"(0001-o-0007,0000)\",\n vr: \"UL\",\n name: \"IllegalGroupLength\",\n vm: \"1\",\n version: \"ILLEGAL\"\n },\n \"(0001-o-0007,0010-u-00FF)\": {\n tag: \"(0001-o-0007,0010-u-00FF)\",\n vr: \"LO\",\n name: \"IllegalPrivateCreator\",\n vm: \"1\",\n version: \"ILLEGAL\"\n },\n \"(0000-u-FFFF,0000)\": {\n tag: \"(0000-u-FFFF,0000)\",\n vr: \"UL\",\n name: \"GenericGroupLength\",\n vm: \"1\",\n version: \"GENERIC\"\n },\n \"(0000,0001)\": {\n tag: \"(0000,0001)\",\n vr: \"UL\",\n name: \"RETIRED_CommandLengthToEnd\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0000,0010)\": {\n tag: \"(0000,0010)\",\n vr: \"SH\",\n name: \"RETIRED_CommandRecognitionCode\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0000,0200)\": {\n tag: \"(0000,0200)\",\n vr: \"AE\",\n name: \"RETIRED_Initiator\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0000,0300)\": {\n tag: \"(0000,0300)\",\n vr: \"AE\",\n name: \"RETIRED_Receiver\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0000,0400)\": {\n tag: \"(0000,0400)\",\n vr: \"AE\",\n name: \"RETIRED_FindLocation\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0000,0850)\": {\n tag: \"(0000,0850)\",\n vr: \"US\",\n name: \"RETIRED_NumberOfMatches\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0000,0860)\": {\n tag: \"(0000,0860)\",\n vr: \"US\",\n name: \"RETIRED_ResponseSequenceNumber\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0000,4000)\": {\n tag: \"(0000,4000)\",\n vr: \"LT\",\n name: \"RETIRED_DialogReceiver\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0000,4010)\": {\n tag: \"(0000,4010)\",\n vr: \"LT\",\n name: \"RETIRED_TerminalType\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0000,5010)\": {\n tag: \"(0000,5010)\",\n vr: \"SH\",\n name: \"RETIRED_MessageSetID\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0000,5020)\": {\n tag: \"(0000,5020)\",\n vr: \"SH\",\n name: \"RETIRED_EndMessageID\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0000,5110)\": {\n tag: \"(0000,5110)\",\n vr: \"LT\",\n name: \"RETIRED_DisplayFormat\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0000,5120)\": {\n tag: \"(0000,5120)\",\n vr: \"LT\",\n name: \"RETIRED_PagePositionID\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0000,5130)\": {\n tag: \"(0000,5130)\",\n vr: \"CS\",\n name: \"RETIRED_TextFormatID\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0000,5140)\": {\n tag: \"(0000,5140)\",\n vr: \"CS\",\n name: \"RETIRED_NormalReverse\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0000,5150)\": {\n tag: \"(0000,5150)\",\n vr: \"CS\",\n name: \"RETIRED_AddGrayScale\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0000,5160)\": {\n tag: \"(0000,5160)\",\n vr: \"CS\",\n name: \"RETIRED_Borders\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0000,5170)\": {\n tag: \"(0000,5170)\",\n vr: \"IS\",\n name: \"RETIRED_Copies\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0000,5180)\": {\n tag: \"(0000,5180)\",\n vr: \"CS\",\n name: \"RETIRED_CommandMagnificationType\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0000,5190)\": {\n tag: \"(0000,5190)\",\n vr: \"CS\",\n name: \"RETIRED_Erase\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0000,51A0)\": {\n tag: \"(0000,51A0)\",\n vr: \"CS\",\n name: \"RETIRED_Print\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0000,51B0)\": {\n tag: \"(0000,51B0)\",\n vr: \"US\",\n name: \"RETIRED_Overlays\",\n vm: \"1-n\",\n version: \"DICOM/retired\"\n },\n \"(0004,1504)\": {\n tag: \"(0004,1504)\",\n vr: \"up\",\n name: \"RETIRED_MRDRDirectoryRecordOffset\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0004,1600)\": {\n tag: \"(0004,1600)\",\n vr: \"UL\",\n name: \"RETIRED_NumberOfReferences\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0008,0001)\": {\n tag: \"(0008,0001)\",\n vr: \"UL\",\n name: \"RETIRED_LengthToEnd\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0008,0010)\": {\n tag: \"(0008,0010)\",\n vr: \"SH\",\n name: \"RETIRED_RecognitionCode\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0008,0024)\": {\n tag: \"(0008,0024)\",\n vr: \"DA\",\n name: \"RETIRED_OverlayDate\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0008,0025)\": {\n tag: \"(0008,0025)\",\n vr: \"DA\",\n name: \"RETIRED_CurveDate\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0008,0034)\": {\n tag: \"(0008,0034)\",\n vr: \"TM\",\n name: \"RETIRED_OverlayTime\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0008,0035)\": {\n tag: \"(0008,0035)\",\n vr: \"TM\",\n name: \"RETIRED_CurveTime\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0008,0040)\": {\n tag: \"(0008,0040)\",\n vr: \"US\",\n name: \"RETIRED_DataSetType\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0008,0041)\": {\n tag: \"(0008,0041)\",\n vr: \"LO\",\n name: \"RETIRED_DataSetSubtype\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0008,0042)\": {\n tag: \"(0008,0042)\",\n vr: \"CS\",\n name: \"RETIRED_NuclearMedicineSeriesType\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0008,1000)\": {\n tag: \"(0008,1000)\",\n vr: \"AE\",\n name: \"RETIRED_NetworkID\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0008,1100)\": {\n tag: \"(0008,1100)\",\n vr: \"SQ\",\n name: \"RETIRED_ReferencedResultsSequence\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0008,1130)\": {\n tag: \"(0008,1130)\",\n vr: \"SQ\",\n name: \"RETIRED_ReferencedOverlaySequence\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0008,1145)\": {\n tag: \"(0008,1145)\",\n vr: \"SQ\",\n name: \"RETIRED_ReferencedCurveSequence\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0008,2110)\": {\n tag: \"(0008,2110)\",\n vr: \"CS\",\n name: \"RETIRED_LossyImageCompressionRetired\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0008,2200)\": {\n tag: \"(0008,2200)\",\n vr: \"CS\",\n name: \"RETIRED_TransducerPosition\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0008,2204)\": {\n tag: \"(0008,2204)\",\n vr: \"CS\",\n name: \"RETIRED_TransducerOrientation\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0008,2208)\": {\n tag: \"(0008,2208)\",\n vr: \"CS\",\n name: \"RETIRED_AnatomicStructure\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0008,2240)\": {\n tag: \"(0008,2240)\",\n vr: \"SQ\",\n name: \"RETIRED_TransducerPositionSequence\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0008,2242)\": {\n tag: \"(0008,2242)\",\n vr: \"SQ\",\n name: \"RETIRED_TransducerPositionModifierSequence\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0008,2244)\": {\n tag: \"(0008,2244)\",\n vr: \"SQ\",\n name: \"RETIRED_TransducerOrientationSequence\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0008,2246)\": {\n tag: \"(0008,2246)\",\n vr: \"SQ\",\n name: \"RETIRED_TransducerOrientationModifierSequence\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0008,2251)\": {\n tag: \"(0008,2251)\",\n vr: \"SQ\",\n name: \"RETIRED_AnatomicStructureSpaceOrRegionCodeSequenceTrial\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0008,2253)\": {\n tag: \"(0008,2253)\",\n vr: \"SQ\",\n name: \"RETIRED_AnatomicPortalOfEntranceCodeSequenceTrial\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0008,2255)\": {\n tag: \"(0008,2255)\",\n vr: \"SQ\",\n name: \"RETIRED_AnatomicApproachDirectionCodeSequenceTrial\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0008,2256)\": {\n tag: \"(0008,2256)\",\n vr: \"ST\",\n name: \"RETIRED_AnatomicPerspectiveDescriptionTrial\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0008,2257)\": {\n tag: \"(0008,2257)\",\n vr: \"SQ\",\n name: \"RETIRED_AnatomicPerspectiveCodeSequenceTrial\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0008,2258)\": {\n tag: \"(0008,2258)\",\n vr: \"ST\",\n name: \"RETIRED_AnatomicLocationOfExaminingInstrumentDescriptionTrial\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0008,2259)\": {\n tag: \"(0008,2259)\",\n vr: \"SQ\",\n name: \"RETIRED_AnatomicLocationOfExaminingInstrumentCodeSequenceTrial\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0008,225A)\": {\n tag: \"(0008,225A)\",\n vr: \"SQ\",\n name: \"RETIRED_AnatomicStructureSpaceOrRegionModifierCodeSequenceTrial\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0008,225C)\": {\n tag: \"(0008,225C)\",\n vr: \"SQ\",\n name: \"RETIRED_OnAxisBackgroundAnatomicStructureCodeSequenceTrial\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0008,4000)\": {\n tag: \"(0008,4000)\",\n vr: \"LT\",\n name: \"RETIRED_IdentifyingComments\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0010,1050)\": {\n tag: \"(0010,1050)\",\n vr: \"LO\",\n name: \"RETIRED_InsurancePlanIdentification\",\n vm: \"1-n\",\n version: \"DICOM/retired\"\n },\n \"(0014,0023)\": {\n tag: \"(0014,0023)\",\n vr: \"ST\",\n name: \"RETIRED_CADFileFormat\",\n vm: \"1-n\",\n version: \"DICOM/retired\"\n },\n \"(0014,0024)\": {\n tag: \"(0014,0024)\",\n vr: \"ST\",\n name: \"RETIRED_ComponentReferenceSystem\",\n vm: \"1-n\",\n version: \"DICOM/retired\"\n },\n \"(0014,0045)\": {\n tag: \"(0014,0045)\",\n vr: \"ST\",\n name: \"RETIRED_MaterialPropertiesFileFormatRetired\",\n vm: \"1-n\",\n version: \"DICOM/retired\"\n },\n \"(0018,0030)\": {\n tag: \"(0018,0030)\",\n vr: \"LO\",\n name: \"RETIRED_Radionuclide\",\n vm: \"1-n\",\n version: \"DICOM/retired\"\n },\n \"(0018,0032)\": {\n tag: \"(0018,0032)\",\n vr: \"DS\",\n name: \"RETIRED_EnergyWindowCenterline\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0018,0033)\": {\n tag: \"(0018,0033)\",\n vr: \"DS\",\n name: \"RETIRED_EnergyWindowTotalWidth\",\n vm: \"1-n\",\n version: \"DICOM/retired\"\n },\n \"(0018,0037)\": {\n tag: \"(0018,0037)\",\n vr: \"CS\",\n name: \"RETIRED_TherapyType\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0018,0039)\": {\n tag: \"(0018,0039)\",\n vr: \"CS\",\n name: \"RETIRED_TherapyDescription\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0018,0061)\": {\n tag: \"(0018,0061)\",\n vr: \"DS\",\n name: \"RETIRED_undefined\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0018,1011)\": {\n tag: \"(0018,1011)\",\n vr: \"LO\",\n name: \"RETIRED_HardcopyCreationDeviceID\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0018,1017)\": {\n tag: \"(0018,1017)\",\n vr: \"LO\",\n name: \"RETIRED_HardcopyDeviceManufacturer\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0018,101A)\": {\n tag: \"(0018,101A)\",\n vr: \"LO\",\n name: \"RETIRED_HardcopyDeviceSoftwareVersion\",\n vm: \"1-n\",\n version: \"DICOM/retired\"\n },\n \"(0018,101B)\": {\n tag: \"(0018,101B)\",\n vr: \"LO\",\n name: \"RETIRED_HardcopyDeviceManufacturerModelName\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0018,1141)\": {\n tag: \"(0018,1141)\",\n vr: \"DS\",\n name: \"RETIRED_AngularPosition\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0018,1146)\": {\n tag: \"(0018,1146)\",\n vr: \"DS\",\n name: \"RETIRED_RotationOffset\",\n vm: \"1-n\",\n version: \"DICOM/retired\"\n },\n \"(0018,1240)\": {\n tag: \"(0018,1240)\",\n vr: \"IS\",\n name: \"RETIRED_UpperLowerPixelValues\",\n vm: \"1-n\",\n version: \"DICOM/retired\"\n },\n \"(0018,4000)\": {\n tag: \"(0018,4000)\",\n vr: \"LT\",\n name: \"RETIRED_AcquisitionComments\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0018,5021)\": {\n tag: \"(0018,5021)\",\n vr: \"LO\",\n name: \"RETIRED_PostprocessingFunction\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0018,5030)\": {\n tag: \"(0018,5030)\",\n vr: \"DS\",\n name: \"RETIRED_DynamicRange\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0018,5040)\": {\n tag: \"(0018,5040)\",\n vr: \"DS\",\n name: \"RETIRED_TotalGain\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0018,5210)\": {\n tag: \"(0018,5210)\",\n vr: \"DS\",\n name: \"RETIRED_ImageTransformationMatrix\",\n vm: \"6\",\n version: \"DICOM/retired\"\n },\n \"(0018,5212)\": {\n tag: \"(0018,5212)\",\n vr: \"DS\",\n name: \"RETIRED_ImageTranslationVector\",\n vm: \"3\",\n version: \"DICOM/retired\"\n },\n \"(0018,6038)\": {\n tag: \"(0018,6038)\",\n vr: \"UL\",\n name: \"RETIRED_DopplerSampleVolumeXPositionRetired\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0018,603A)\": {\n tag: \"(0018,603A)\",\n vr: \"UL\",\n name: \"RETIRED_DopplerSampleVolumeYPositionRetired\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0018,603C)\": {\n tag: \"(0018,603C)\",\n vr: \"UL\",\n name: \"RETIRED_TMLinePositionX0Retired\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0018,603E)\": {\n tag: \"(0018,603E)\",\n vr: \"UL\",\n name: \"RETIRED_TMLinePositionY0Retired\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0018,6040)\": {\n tag: \"(0018,6040)\",\n vr: \"UL\",\n name: \"RETIRED_TMLinePositionX1Retired\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0018,6042)\": {\n tag: \"(0018,6042)\",\n vr: \"UL\",\n name: \"RETIRED_TMLinePositionY1Retired\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0018,9096)\": {\n tag: \"(0018,9096)\",\n vr: \"FD\",\n name: \"RETIRED_ParallelReductionFactorInPlaneRetired\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0018,9166)\": {\n tag: \"(0018,9166)\",\n vr: \"CS\",\n name: \"RETIRED_BulkMotionStatus\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0018,9195)\": {\n tag: \"(0018,9195)\",\n vr: \"FD\",\n name: \"RETIRED_ChemicalShiftMinimumIntegrationLimitInHz\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0018,9196)\": {\n tag: \"(0018,9196)\",\n vr: \"FD\",\n name: \"RETIRED_ChemicalShiftMaximumIntegrationLimitInHz\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0020,0014)\": {\n tag: \"(0020,0014)\",\n vr: \"IS\",\n name: \"RETIRED_IsotopeNumber\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0020,0015)\": {\n tag: \"(0020,0015)\",\n vr: \"IS\",\n name: \"RETIRED_PhaseNumber\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0020,0016)\": {\n tag: \"(0020,0016)\",\n vr: \"IS\",\n name: \"RETIRED_IntervalNumber\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0020,0017)\": {\n tag: \"(0020,0017)\",\n vr: \"IS\",\n name: \"RETIRED_TimeSlotNumber\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0020,0018)\": {\n tag: \"(0020,0018)\",\n vr: \"IS\",\n name: \"RETIRED_AngleNumber\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0020,0022)\": {\n tag: \"(0020,0022)\",\n vr: \"IS\",\n name: \"RETIRED_OverlayNumber\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0020,0024)\": {\n tag: \"(0020,0024)\",\n vr: \"IS\",\n name: \"RETIRED_CurveNumber\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0020,0026)\": {\n tag: \"(0020,0026)\",\n vr: \"IS\",\n name: \"RETIRED_LUTNumber\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0020,0030)\": {\n tag: \"(0020,0030)\",\n vr: \"DS\",\n name: \"RETIRED_ImagePosition\",\n vm: \"3\",\n version: \"DICOM/retired\"\n },\n \"(0020,0035)\": {\n tag: \"(0020,0035)\",\n vr: \"DS\",\n name: \"RETIRED_ImageOrientation\",\n vm: \"6\",\n version: \"DICOM/retired\"\n },\n \"(0020,0050)\": {\n tag: \"(0020,0050)\",\n vr: \"DS\",\n name: \"RETIRED_Location\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0020,0070)\": {\n tag: \"(0020,0070)\",\n vr: \"LO\",\n name: \"RETIRED_ImageGeometryType\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0020,0080)\": {\n tag: \"(0020,0080)\",\n vr: \"CS\",\n name: \"RETIRED_MaskingImage\",\n vm: \"1-n\",\n version: \"DICOM/retired\"\n },\n \"(0020,00AA)\": {\n tag: \"(0020,00AA)\",\n vr: \"IS\",\n name: \"RETIRED_ReportNumber\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0020,1000)\": {\n tag: \"(0020,1000)\",\n vr: \"IS\",\n name: \"RETIRED_SeriesInStudy\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0020,1001)\": {\n tag: \"(0020,1001)\",\n vr: \"IS\",\n name: \"RETIRED_AcquisitionsInSeries\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0020,1003)\": {\n tag: \"(0020,1003)\",\n vr: \"IS\",\n name: \"RETIRED_ImagesInSeries\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0020,1004)\": {\n tag: \"(0020,1004)\",\n vr: \"IS\",\n name: \"RETIRED_AcquisitionsInStudy\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0020,1005)\": {\n tag: \"(0020,1005)\",\n vr: \"IS\",\n name: \"RETIRED_ImagesInStudy\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0020,1020)\": {\n tag: \"(0020,1020)\",\n vr: \"LO\",\n name: \"RETIRED_Reference\",\n vm: \"1-n\",\n version: \"DICOM/retired\"\n },\n \"(0020,1070)\": {\n tag: \"(0020,1070)\",\n vr: \"IS\",\n name: \"RETIRED_OtherStudyNumbers\",\n vm: \"1-n\",\n version: \"DICOM/retired\"\n },\n \"(0020,3100-31FF)\": {\n tag: \"(0020,3100-31FF)\",\n vr: \"CS\",\n name: \"RETIRED_SourceImageIDs\",\n vm: \"1-n\",\n version: \"DICOM/retired\"\n },\n \"(0020,3401)\": {\n tag: \"(0020,3401)\",\n vr: \"CS\",\n name: \"RETIRED_ModifyingDeviceID\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0020,3402)\": {\n tag: \"(0020,3402)\",\n vr: \"CS\",\n name: \"RETIRED_ModifiedImageID\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0020,3403)\": {\n tag: \"(0020,3403)\",\n vr: \"DA\",\n name: \"RETIRED_ModifiedImageDate\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0020,3404)\": {\n tag: \"(0020,3404)\",\n vr: \"LO\",\n name: \"RETIRED_ModifyingDeviceManufacturer\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0020,3405)\": {\n tag: \"(0020,3405)\",\n vr: \"TM\",\n name: \"RETIRED_ModifiedImageTime\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0020,3406)\": {\n tag: \"(0020,3406)\",\n vr: \"LO\",\n name: \"RETIRED_ModifiedImageDescription\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0020,5000)\": {\n tag: \"(0020,5000)\",\n vr: \"AT\",\n name: \"RETIRED_OriginalImageIdentification\",\n vm: \"1-n\",\n version: \"DICOM/retired\"\n },\n \"(0020,5002)\": {\n tag: \"(0020,5002)\",\n vr: \"LO\",\n name: \"RETIRED_OriginalImageIdentificationNomenclature\",\n vm: \"1-n\",\n version: \"DICOM/retired\"\n },\n \"(0022,1094)\": {\n tag: \"(0022,1094)\",\n vr: \"LO\",\n name: \"RETIRED_LensConstantDescription\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0022,1153)\": {\n tag: \"(0022,1153)\",\n vr: \"SQ\",\n name: \"RETIRED_OphthalmicAxialLengthAcquisitionMethodCodeSequence\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0022,1265)\": {\n tag: \"(0022,1265)\",\n vr: \"SQ\",\n name: \"RETIRED_OphthalmicAxialLengthQualityMetricTypeCodeSequence\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0022,1273)\": {\n tag: \"(0022,1273)\",\n vr: \"LO\",\n name: \"RETIRED_OphthalmicAxialLengthQualityMetricTypeDescription\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0028,0005)\": {\n tag: \"(0028,0005)\",\n vr: \"US\",\n name: \"RETIRED_ImageDimensions\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0028,0012)\": {\n tag: \"(0028,0012)\",\n vr: \"US\",\n name: \"RETIRED_Planes\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0028,0040)\": {\n tag: \"(0028,0040)\",\n vr: \"CS\",\n name: \"RETIRED_ImageFormat\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0028,0050)\": {\n tag: \"(0028,0050)\",\n vr: \"LO\",\n name: \"RETIRED_ManipulatedImage\",\n vm: \"1-n\",\n version: \"DICOM/retired\"\n },\n \"(0028,005F)\": {\n tag: \"(0028,005F)\",\n vr: \"LO\",\n name: \"RETIRED_CompressionRecognitionCode\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0028,0060)\": {\n tag: \"(0028,0060)\",\n vr: \"CS\",\n name: \"RETIRED_CompressionCode\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0028,0061)\": {\n tag: \"(0028,0061)\",\n vr: \"SH\",\n name: \"RETIRED_CompressionOriginator\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0028,0062)\": {\n tag: \"(0028,0062)\",\n vr: \"LO\",\n name: \"RETIRED_CompressionLabel\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0028,0063)\": {\n tag: \"(0028,0063)\",\n vr: \"SH\",\n name: \"RETIRED_CompressionDescription\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0028,0065)\": {\n tag: \"(0028,0065)\",\n vr: \"CS\",\n name: \"RETIRED_CompressionSequence\",\n vm: \"1-n\",\n version: \"DICOM/retired\"\n },\n \"(0028,0066)\": {\n tag: \"(0028,0066)\",\n vr: \"AT\",\n name: \"RETIRED_CompressionStepPointers\",\n vm: \"1-n\",\n version: \"DICOM/retired\"\n },\n \"(0028,0068)\": {\n tag: \"(0028,0068)\",\n vr: \"US\",\n name: \"RETIRED_RepeatInterval\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0028,0069)\": {\n tag: \"(0028,0069)\",\n vr: \"US\",\n name: \"RETIRED_BitsGrouped\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0028,0070)\": {\n tag: \"(0028,0070)\",\n vr: \"US\",\n name: \"RETIRED_PerimeterTable\",\n vm: \"1-n\",\n version: \"DICOM/retired\"\n },\n \"(0028,0071)\": {\n tag: \"(0028,0071)\",\n vr: \"xs\",\n name: \"RETIRED_PerimeterValue\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0028,0080)\": {\n tag: \"(0028,0080)\",\n vr: \"US\",\n name: \"RETIRED_PredictorRows\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0028,0081)\": {\n tag: \"(0028,0081)\",\n vr: \"US\",\n name: \"RETIRED_PredictorColumns\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0028,0082)\": {\n tag: \"(0028,0082)\",\n vr: \"US\",\n name: \"RETIRED_PredictorConstants\",\n vm: \"1-n\",\n version: \"DICOM/retired\"\n },\n \"(0028,0090)\": {\n tag: \"(0028,0090)\",\n vr: \"CS\",\n name: \"RETIRED_BlockedPixels\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0028,0091)\": {\n tag: \"(0028,0091)\",\n vr: \"US\",\n name: \"RETIRED_BlockRows\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0028,0092)\": {\n tag: \"(0028,0092)\",\n vr: \"US\",\n name: \"RETIRED_BlockColumns\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0028,0093)\": {\n tag: \"(0028,0093)\",\n vr: \"US\",\n name: \"RETIRED_RowOverlap\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0028,0094)\": {\n tag: \"(0028,0094)\",\n vr: \"US\",\n name: \"RETIRED_ColumnOverlap\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0028,0104)\": {\n tag: \"(0028,0104)\",\n vr: \"xs\",\n name: \"RETIRED_SmallestValidPixelValue\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0028,0105)\": {\n tag: \"(0028,0105)\",\n vr: \"xs\",\n name: \"RETIRED_LargestValidPixelValue\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0028,0110)\": {\n tag: \"(0028,0110)\",\n vr: \"xs\",\n name: \"RETIRED_SmallestImagePixelValueInPlane\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0028,0111)\": {\n tag: \"(0028,0111)\",\n vr: \"xs\",\n name: \"RETIRED_LargestImagePixelValueInPlane\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0028,0200)\": {\n tag: \"(0028,0200)\",\n vr: \"US\",\n name: \"RETIRED_ImageLocation\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0028,0400)\": {\n tag: \"(0028,0400)\",\n vr: \"LO\",\n name: \"RETIRED_TransformLabel\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0028,0401)\": {\n tag: \"(0028,0401)\",\n vr: \"LO\",\n name: \"RETIRED_TransformVersionNumber\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0028,0402)\": {\n tag: \"(0028,0402)\",\n vr: \"US\",\n name: \"RETIRED_NumberOfTransformSteps\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0028,0403)\": {\n tag: \"(0028,0403)\",\n vr: \"LO\",\n name: \"RETIRED_SequenceOfCompressedData\",\n vm: \"1-n\",\n version: \"DICOM/retired\"\n },\n \"(0028,0404)\": {\n tag: \"(0028,0404)\",\n vr: \"AT\",\n name: \"RETIRED_DetailsOfCoefficients\",\n vm: \"1-n\",\n version: \"DICOM/retired\"\n },\n \"(0028,0410)\": {\n tag: \"(0028,0410)\",\n vr: \"US\",\n name: \"RETIRED_RowsForNthOrderCoefficients\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0028,0411)\": {\n tag: \"(0028,0411)\",\n vr: \"US\",\n name: \"RETIRED_ColumnsForNthOrderCoefficients\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0028,0412)\": {\n tag: \"(0028,0412)\",\n vr: \"LO\",\n name: \"RETIRED_CoefficientCoding\",\n vm: \"1-n\",\n version: \"DICOM/retired\"\n },\n \"(0028,0413)\": {\n tag: \"(0028,0413)\",\n vr: \"AT\",\n name: \"RETIRED_CoefficientCodingPointers\",\n vm: \"1-n\",\n version: \"DICOM/retired\"\n },\n \"(0028,0700)\": {\n tag: \"(0028,0700)\",\n vr: \"LO\",\n name: \"RETIRED_DCTLabel\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0028,0701)\": {\n tag: \"(0028,0701)\",\n vr: \"CS\",\n name: \"RETIRED_DataBlockDescription\",\n vm: \"1-n\",\n version: \"DICOM/retired\"\n },\n \"(0028,0702)\": {\n tag: \"(0028,0702)\",\n vr: \"AT\",\n name: \"RETIRED_DataBlock\",\n vm: \"1-n\",\n version: \"DICOM/retired\"\n },\n \"(0028,0710)\": {\n tag: \"(0028,0710)\",\n vr: \"US\",\n name: \"RETIRED_NormalizationFactorFormat\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0028,0720)\": {\n tag: \"(0028,0720)\",\n vr: \"US\",\n name: \"RETIRED_ZonalMapNumberFormat\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0028,0721)\": {\n tag: \"(0028,0721)\",\n vr: \"AT\",\n name: \"RETIRED_ZonalMapLocation\",\n vm: \"1-n\",\n version: \"DICOM/retired\"\n },\n \"(0028,0722)\": {\n tag: \"(0028,0722)\",\n vr: \"US\",\n name: \"RETIRED_ZonalMapFormat\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0028,0730)\": {\n tag: \"(0028,0730)\",\n vr: \"US\",\n name: \"RETIRED_AdaptiveMapFormat\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0028,0740)\": {\n tag: \"(0028,0740)\",\n vr: \"US\",\n name: \"RETIRED_CodeNumberFormat\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0028,0800)\": {\n tag: \"(0028,0800)\",\n vr: \"CS\",\n name: \"RETIRED_CodeLabel\",\n vm: \"1-n\",\n version: \"DICOM/retired\"\n },\n \"(0028,0802)\": {\n tag: \"(0028,0802)\",\n vr: \"US\",\n name: \"RETIRED_NumberOfTables\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0028,0803)\": {\n tag: \"(0028,0803)\",\n vr: \"AT\",\n name: \"RETIRED_CodeTableLocation\",\n vm: \"1-n\",\n version: \"DICOM/retired\"\n },\n \"(0028,0804)\": {\n tag: \"(0028,0804)\",\n vr: \"US\",\n name: \"RETIRED_BitsForCodeWord\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0028,0808)\": {\n tag: \"(0028,0808)\",\n vr: \"AT\",\n name: \"RETIRED_ImageDataLocation\",\n vm: \"1-n\",\n version: \"DICOM/retired\"\n },\n \"(0028,1080)\": {\n tag: \"(0028,1080)\",\n vr: \"CS\",\n name: \"RETIRED_GrayScale\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0028,1100)\": {\n tag: \"(0028,1100)\",\n vr: \"xs\",\n name: \"RETIRED_GrayLookupTableDescriptor\",\n vm: \"3\",\n version: \"DICOM/retired\"\n },\n \"(0028,1111)\": {\n tag: \"(0028,1111)\",\n vr: \"xs\",\n name: \"RETIRED_LargeRedPaletteColorLookupTableDescriptor\",\n vm: \"4\",\n version: \"DICOM/retired\"\n },\n \"(0028,1112)\": {\n tag: \"(0028,1112)\",\n vr: \"xs\",\n name: \"RETIRED_LargeGreenPaletteColorLookupTableDescriptor\",\n vm: \"4\",\n version: \"DICOM/retired\"\n },\n \"(0028,1113)\": {\n tag: \"(0028,1113)\",\n vr: \"xs\",\n name: \"RETIRED_LargeBluePaletteColorLookupTableDescriptor\",\n vm: \"4\",\n version: \"DICOM/retired\"\n },\n \"(0028,1200)\": {\n tag: \"(0028,1200)\",\n vr: \"lt\",\n name: \"RETIRED_GrayLookupTableData\",\n vm: \"1-n\",\n version: \"DICOM/retired\"\n },\n \"(0028,1211)\": {\n tag: \"(0028,1211)\",\n vr: \"OW\",\n name: \"RETIRED_LargeRedPaletteColorLookupTableData\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0028,1212)\": {\n tag: \"(0028,1212)\",\n vr: \"OW\",\n name: \"RETIRED_LargeGreenPaletteColorLookupTableData\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0028,1213)\": {\n tag: \"(0028,1213)\",\n vr: \"OW\",\n name: \"RETIRED_LargeBluePaletteColorLookupTableData\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0028,1214)\": {\n tag: \"(0028,1214)\",\n vr: \"UI\",\n name: \"RETIRED_LargePaletteColorLookupTableUID\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0028,4000)\": {\n tag: \"(0028,4000)\",\n vr: \"LT\",\n name: \"RETIRED_ImagePresentationComments\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0028,5000)\": {\n tag: \"(0028,5000)\",\n vr: \"SQ\",\n name: \"RETIRED_BiPlaneAcquisitionSequence\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0028,6030)\": {\n tag: \"(0028,6030)\",\n vr: \"US\",\n name: \"RETIRED_MaskPointers\",\n vm: \"1-n\",\n version: \"DICOM/retired\"\n },\n \"(0028,9099)\": {\n tag: \"(0028,9099)\",\n vr: \"US\",\n name: \"RETIRED_LargestMonochromePixelValue\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0032,000A)\": {\n tag: \"(0032,000A)\",\n vr: \"CS\",\n name: \"RETIRED_StudyStatusID\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0032,000C)\": {\n tag: \"(0032,000C)\",\n vr: \"CS\",\n name: \"RETIRED_StudyPriorityID\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0032,0012)\": {\n tag: \"(0032,0012)\",\n vr: \"LO\",\n name: \"RETIRED_StudyIDIssuer\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0032,0032)\": {\n tag: \"(0032,0032)\",\n vr: \"DA\",\n name: \"RETIRED_StudyVerifiedDate\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0032,0033)\": {\n tag: \"(0032,0033)\",\n vr: \"TM\",\n name: \"RETIRED_StudyVerifiedTime\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0032,0034)\": {\n tag: \"(0032,0034)\",\n vr: \"DA\",\n name: \"RETIRED_StudyReadDate\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0032,0035)\": {\n tag: \"(0032,0035)\",\n vr: \"TM\",\n name: \"RETIRED_StudyReadTime\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0032,1000)\": {\n tag: \"(0032,1000)\",\n vr: \"DA\",\n name: \"RETIRED_ScheduledStudyStartDate\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0032,1001)\": {\n tag: \"(0032,1001)\",\n vr: \"TM\",\n name: \"RETIRED_ScheduledStudyStartTime\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0032,1010)\": {\n tag: \"(0032,1010)\",\n vr: \"DA\",\n name: \"RETIRED_ScheduledStudyStopDate\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0032,1011)\": {\n tag: \"(0032,1011)\",\n vr: \"TM\",\n name: \"RETIRED_ScheduledStudyStopTime\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0032,1020)\": {\n tag: \"(0032,1020)\",\n vr: \"LO\",\n name: \"RETIRED_ScheduledStudyLocation\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0032,1021)\": {\n tag: \"(0032,1021)\",\n vr: \"AE\",\n name: \"RETIRED_ScheduledStudyLocationAETitle\",\n vm: \"1-n\",\n version: \"DICOM/retired\"\n },\n \"(0032,1030)\": {\n tag: \"(0032,1030)\",\n vr: \"LO\",\n name: \"RETIRED_ReasonForStudy\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0032,1040)\": {\n tag: \"(0032,1040)\",\n vr: \"DA\",\n name: \"RETIRED_StudyArrivalDate\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0032,1041)\": {\n tag: \"(0032,1041)\",\n vr: \"TM\",\n name: \"RETIRED_StudyArrivalTime\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0032,1050)\": {\n tag: \"(0032,1050)\",\n vr: \"DA\",\n name: \"RETIRED_StudyCompletionDate\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0032,1051)\": {\n tag: \"(0032,1051)\",\n vr: \"TM\",\n name: \"RETIRED_StudyCompletionTime\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0032,1055)\": {\n tag: \"(0032,1055)\",\n vr: \"CS\",\n name: \"RETIRED_StudyComponentStatusID\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0032,4000)\": {\n tag: \"(0032,4000)\",\n vr: \"LT\",\n name: \"RETIRED_StudyComments\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0038,0011)\": {\n tag: \"(0038,0011)\",\n vr: \"LO\",\n name: \"RETIRED_IssuerOfAdmissionID\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0038,001A)\": {\n tag: \"(0038,001A)\",\n vr: \"DA\",\n name: \"RETIRED_ScheduledAdmissionDate\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0038,001B)\": {\n tag: \"(0038,001B)\",\n vr: \"TM\",\n name: \"RETIRED_ScheduledAdmissionTime\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0038,001C)\": {\n tag: \"(0038,001C)\",\n vr: \"DA\",\n name: \"RETIRED_ScheduledDischargeDate\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0038,001D)\": {\n tag: \"(0038,001D)\",\n vr: \"TM\",\n name: \"RETIRED_ScheduledDischargeTime\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0038,001E)\": {\n tag: \"(0038,001E)\",\n vr: \"LO\",\n name: \"RETIRED_ScheduledPatientInstitutionResidence\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0038,0030)\": {\n tag: \"(0038,0030)\",\n vr: \"DA\",\n name: \"RETIRED_DischargeDate\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0038,0032)\": {\n tag: \"(0038,0032)\",\n vr: \"TM\",\n name: \"RETIRED_DischargeTime\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0038,0040)\": {\n tag: \"(0038,0040)\",\n vr: \"LO\",\n name: \"RETIRED_DischargeDiagnosisDescription\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0038,0044)\": {\n tag: \"(0038,0044)\",\n vr: \"SQ\",\n name: \"RETIRED_DischargeDiagnosisCodeSequence\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0038,0061)\": {\n tag: \"(0038,0061)\",\n vr: \"LO\",\n name: \"RETIRED_IssuerOfServiceEpisodeID\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0040,0307)\": {\n tag: \"(0040,0307)\",\n vr: \"DS\",\n name: \"RETIRED_DistanceSourceToSupport\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0040,0330)\": {\n tag: \"(0040,0330)\",\n vr: \"SQ\",\n name: \"RETIRED_ReferencedProcedureStepSequence\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0040,050A)\": {\n tag: \"(0040,050A)\",\n vr: \"LO\",\n name: \"RETIRED_SpecimenAccessionNumber\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0040,0550)\": {\n tag: \"(0040,0550)\",\n vr: \"SQ\",\n name: \"RETIRED_SpecimenSequence\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0040,0552)\": {\n tag: \"(0040,0552)\",\n vr: \"SQ\",\n name: \"RETIRED_SpecimenDescriptionSequenceTrial\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0040,0553)\": {\n tag: \"(0040,0553)\",\n vr: \"ST\",\n name: \"RETIRED_SpecimenDescriptionTrial\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0040,06FA)\": {\n tag: \"(0040,06FA)\",\n vr: \"LO\",\n name: \"RETIRED_SlideIdentifier\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0040,08D8)\": {\n tag: \"(0040,08D8)\",\n vr: \"SQ\",\n name: \"RETIRED_PixelSpacingSequence\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0040,08DA)\": {\n tag: \"(0040,08DA)\",\n vr: \"SQ\",\n name: \"RETIRED_CoordinateSystemAxisCodeSequence\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0040,09F8)\": {\n tag: \"(0040,09F8)\",\n vr: \"SQ\",\n name: \"RETIRED_VitalStainCodeSequenceTrial\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0040,1006)\": {\n tag: \"(0040,1006)\",\n vr: \"SH\",\n name: \"RETIRED_PlacerOrderNumberProcedure\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0040,1007)\": {\n tag: \"(0040,1007)\",\n vr: \"SH\",\n name: \"RETIRED_FillerOrderNumberProcedure\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0040,1060)\": {\n tag: \"(0040,1060)\",\n vr: \"LO\",\n name: \"RETIRED_RequestedProcedureDescriptionTrial\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0040,2001)\": {\n tag: \"(0040,2001)\",\n vr: \"LO\",\n name: \"RETIRED_ReasonForTheImagingServiceRequest\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0040,2006)\": {\n tag: \"(0040,2006)\",\n vr: \"SH\",\n name: \"RETIRED_PlacerOrderNumberImagingServiceRequestRetired\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0040,2007)\": {\n tag: \"(0040,2007)\",\n vr: \"SH\",\n name: \"RETIRED_FillerOrderNumberImagingServiceRequestRetired\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0040,4001)\": {\n tag: \"(0040,4001)\",\n vr: \"CS\",\n name: \"RETIRED_GeneralPurposeScheduledProcedureStepStatus\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0040,4002)\": {\n tag: \"(0040,4002)\",\n vr: \"CS\",\n name: \"RETIRED_GeneralPurposePerformedProcedureStepStatus\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0040,4003)\": {\n tag: \"(0040,4003)\",\n vr: \"CS\",\n name: \"RETIRED_GeneralPurposeScheduledProcedureStepPriority\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0040,4004)\": {\n tag: \"(0040,4004)\",\n vr: \"SQ\",\n name: \"RETIRED_ScheduledProcessingApplicationsCodeSequence\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0040,4006)\": {\n tag: \"(0040,4006)\",\n vr: \"CS\",\n name: \"RETIRED_MultipleCopiesFlag\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0040,4015)\": {\n tag: \"(0040,4015)\",\n vr: \"SQ\",\n name: \"RETIRED_ResultingGeneralPurposePerformedProcedureStepsSequence\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0040,4016)\": {\n tag: \"(0040,4016)\",\n vr: \"SQ\",\n name: \"RETIRED_ReferencedGeneralPurposeScheduledProcedureStepSequence\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0040,4022)\": {\n tag: \"(0040,4022)\",\n vr: \"SQ\",\n name: \"RETIRED_RelevantInformationSequence\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0040,4023)\": {\n tag: \"(0040,4023)\",\n vr: \"UI\",\n name: \"RETIRED_ReferencedGeneralPurposeScheduledProcedureStepTransactionUID\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0040,4031)\": {\n tag: \"(0040,4031)\",\n vr: \"SQ\",\n name: \"RETIRED_RequestedSubsequentWorkitemCodeSequence\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0040,4032)\": {\n tag: \"(0040,4032)\",\n vr: \"SQ\",\n name: \"RETIRED_NonDICOMOutputCodeSequence\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0040,A007)\": {\n tag: \"(0040,A007)\",\n vr: \"CS\",\n name: \"RETIRED_FindingsFlagTrial\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0040,A020)\": {\n tag: \"(0040,A020)\",\n vr: \"SQ\",\n name: \"RETIRED_FindingsSequenceTrial\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0040,A021)\": {\n tag: \"(0040,A021)\",\n vr: \"UI\",\n name: \"RETIRED_FindingsGroupUIDTrial\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0040,A022)\": {\n tag: \"(0040,A022)\",\n vr: \"UI\",\n name: \"RETIRED_ReferencedFindingsGroupUIDTrial\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0040,A023)\": {\n tag: \"(0040,A023)\",\n vr: \"DA\",\n name: \"RETIRED_FindingsGroupRecordingDateTrial\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0040,A024)\": {\n tag: \"(0040,A024)\",\n vr: \"TM\",\n name: \"RETIRED_FindingsGroupRecordingTimeTrial\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0040,A026)\": {\n tag: \"(0040,A026)\",\n vr: \"SQ\",\n name: \"RETIRED_FindingsSourceCategoryCodeSequenceTrial\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0040,A028)\": {\n tag: \"(0040,A028)\",\n vr: \"SQ\",\n name: \"RETIRED_DocumentingOrganizationIdentifierCodeSequenceTrial\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0040,A047)\": {\n tag: \"(0040,A047)\",\n vr: \"LO\",\n name: \"RETIRED_MeasurementPrecisionDescriptionTrial\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0040,A057)\": {\n tag: \"(0040,A057)\",\n vr: \"CS\",\n name: \"RETIRED_UrgencyOrPriorityAlertsTrial\",\n vm: \"1-n\",\n version: \"DICOM/retired\"\n },\n \"(0040,A060)\": {\n tag: \"(0040,A060)\",\n vr: \"LO\",\n name: \"RETIRED_SequencingIndicatorTrial\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0040,A066)\": {\n tag: \"(0040,A066)\",\n vr: \"SQ\",\n name: \"RETIRED_DocumentIdentifierCodeSequenceTrial\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0040,A067)\": {\n tag: \"(0040,A067)\",\n vr: \"PN\",\n name: \"RETIRED_DocumentAuthorTrial\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0040,A068)\": {\n tag: \"(0040,A068)\",\n vr: \"SQ\",\n name: \"RETIRED_DocumentAuthorIdentifierCodeSequenceTrial\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0040,A070)\": {\n tag: \"(0040,A070)\",\n vr: \"SQ\",\n name: \"RETIRED_IdentifierCodeSequenceTrial\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0040,A074)\": {\n tag: \"(0040,A074)\",\n vr: \"OB\",\n name: \"RETIRED_ObjectBinaryIdentifierTrial\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0040,A076)\": {\n tag: \"(0040,A076)\",\n vr: \"SQ\",\n name: \"RETIRED_DocumentingObserverIdentifierCodeSequenceTrial\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0040,A085)\": {\n tag: \"(0040,A085)\",\n vr: \"SQ\",\n name: \"RETIRED_ProcedureIdentifierCodeSequenceTrial\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0040,A089)\": {\n tag: \"(0040,A089)\",\n vr: \"OB\",\n name: \"RETIRED_ObjectDirectoryBinaryIdentifierTrial\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0040,A090)\": {\n tag: \"(0040,A090)\",\n vr: \"SQ\",\n name: \"RETIRED_EquivalentCDADocumentSequence\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0040,A110)\": {\n tag: \"(0040,A110)\",\n vr: \"DA\",\n name: \"RETIRED_DateOfDocumentOrVerbalTransactionTrial\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0040,A112)\": {\n tag: \"(0040,A112)\",\n vr: \"TM\",\n name: \"RETIRED_TimeOfDocumentCreationOrVerbalTransactionTrial\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0040,A125)\": {\n tag: \"(0040,A125)\",\n vr: \"CS\",\n name: \"RETIRED_ReportStatusIDTrial\",\n vm: \"2\",\n version: \"DICOM/retired\"\n },\n \"(0040,A167)\": {\n tag: \"(0040,A167)\",\n vr: \"SQ\",\n name: \"RETIRED_ObservationCategoryCodeSequenceTrial\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0040,A16A)\": {\n tag: \"(0040,A16A)\",\n vr: \"ST\",\n name: \"RETIRED_BibliographicCitationTrial\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0040,A172)\": {\n tag: \"(0040,A172)\",\n vr: \"UI\",\n name: \"RETIRED_ReferencedObservationUIDTrial\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0040,A173)\": {\n tag: \"(0040,A173)\",\n vr: \"CS\",\n name: \"RETIRED_ReferencedObservationClassTrial\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0040,A174)\": {\n tag: \"(0040,A174)\",\n vr: \"CS\",\n name: \"RETIRED_ReferencedObjectObservationClassTrial\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0040,A192)\": {\n tag: \"(0040,A192)\",\n vr: \"DA\",\n name: \"RETIRED_ObservationDateTrial\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0040,A193)\": {\n tag: \"(0040,A193)\",\n vr: \"TM\",\n name: \"RETIRED_ObservationTimeTrial\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0040,A194)\": {\n tag: \"(0040,A194)\",\n vr: \"CS\",\n name: \"RETIRED_MeasurementAutomationTrial\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0040,A224)\": {\n tag: \"(0040,A224)\",\n vr: \"ST\",\n name: \"RETIRED_IdentificationDescriptionTrial\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0040,A290)\": {\n tag: \"(0040,A290)\",\n vr: \"CS\",\n name: \"RETIRED_CoordinatesSetGeometricTypeTrial\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0040,A296)\": {\n tag: \"(0040,A296)\",\n vr: \"SQ\",\n name: \"RETIRED_AlgorithmCodeSequenceTrial\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0040,A297)\": {\n tag: \"(0040,A297)\",\n vr: \"ST\",\n name: \"RETIRED_AlgorithmDescriptionTrial\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0040,A29A)\": {\n tag: \"(0040,A29A)\",\n vr: \"SL\",\n name: \"RETIRED_PixelCoordinatesSetTrial\",\n vm: \"2-2n\",\n version: \"DICOM/retired\"\n },\n \"(0040,A307)\": {\n tag: \"(0040,A307)\",\n vr: \"PN\",\n name: \"RETIRED_CurrentObserverTrial\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0040,A313)\": {\n tag: \"(0040,A313)\",\n vr: \"SQ\",\n name: \"RETIRED_ReferencedAccessionSequenceTrial\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0040,A33A)\": {\n tag: \"(0040,A33A)\",\n vr: \"ST\",\n name: \"RETIRED_ReportStatusCommentTrial\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0040,A340)\": {\n tag: \"(0040,A340)\",\n vr: \"SQ\",\n name: \"RETIRED_ProcedureContextSequenceTrial\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0040,A352)\": {\n tag: \"(0040,A352)\",\n vr: \"PN\",\n name: \"RETIRED_VerbalSourceTrial\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0040,A353)\": {\n tag: \"(0040,A353)\",\n vr: \"ST\",\n name: \"RETIRED_AddressTrial\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0040,A354)\": {\n tag: \"(0040,A354)\",\n vr: \"LO\",\n name: \"RETIRED_TelephoneNumberTrial\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0040,A358)\": {\n tag: \"(0040,A358)\",\n vr: \"SQ\",\n name: \"RETIRED_VerbalSourceIdentifierCodeSequenceTrial\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0040,A380)\": {\n tag: \"(0040,A380)\",\n vr: \"SQ\",\n name: \"RETIRED_ReportDetailSequenceTrial\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0040,A402)\": {\n tag: \"(0040,A402)\",\n vr: \"UI\",\n name: \"RETIRED_ObservationSubjectUIDTrial\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0040,A403)\": {\n tag: \"(0040,A403)\",\n vr: \"CS\",\n name: \"RETIRED_ObservationSubjectClassTrial\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0040,A404)\": {\n tag: \"(0040,A404)\",\n vr: \"SQ\",\n name: \"RETIRED_ObservationSubjectTypeCodeSequenceTrial\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0040,A600)\": {\n tag: \"(0040,A600)\",\n vr: \"CS\",\n name: \"RETIRED_ObservationSubjectContextFlagTrial\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0040,A601)\": {\n tag: \"(0040,A601)\",\n vr: \"CS\",\n name: \"RETIRED_ObserverContextFlagTrial\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0040,A603)\": {\n tag: \"(0040,A603)\",\n vr: \"CS\",\n name: \"RETIRED_ProcedureContextFlagTrial\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0040,A731)\": {\n tag: \"(0040,A731)\",\n vr: \"SQ\",\n name: \"RETIRED_RelationshipSequenceTrial\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0040,A732)\": {\n tag: \"(0040,A732)\",\n vr: \"SQ\",\n name: \"RETIRED_RelationshipTypeCodeSequenceTrial\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0040,A744)\": {\n tag: \"(0040,A744)\",\n vr: \"SQ\",\n name: \"RETIRED_LanguageCodeSequenceTrial\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0040,A992)\": {\n tag: \"(0040,A992)\",\n vr: \"ST\",\n name: \"RETIRED_UniformResourceLocatorTrial\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0040,DB06)\": {\n tag: \"(0040,DB06)\",\n vr: \"DT\",\n name: \"RETIRED_TemplateVersion\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0040,DB07)\": {\n tag: \"(0040,DB07)\",\n vr: \"DT\",\n name: \"RETIRED_TemplateLocalVersion\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0040,DB0B)\": {\n tag: \"(0040,DB0B)\",\n vr: \"CS\",\n name: \"RETIRED_TemplateExtensionFlag\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0040,DB0C)\": {\n tag: \"(0040,DB0C)\",\n vr: \"UI\",\n name: \"RETIRED_TemplateExtensionOrganizationUID\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0040,DB0D)\": {\n tag: \"(0040,DB0D)\",\n vr: \"UI\",\n name: \"RETIRED_TemplateExtensionCreatorUID\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0054,1400)\": {\n tag: \"(0054,1400)\",\n vr: \"CS\",\n name: \"RETIRED_CountsIncluded\",\n vm: \"1-n\",\n version: \"DICOM/retired\"\n },\n \"(0054,1401)\": {\n tag: \"(0054,1401)\",\n vr: \"CS\",\n name: \"RETIRED_DeadTimeCorrectionFlag\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0070,0040)\": {\n tag: \"(0070,0040)\",\n vr: \"IS\",\n name: \"RETIRED_ImageRotationRetired\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0070,0050)\": {\n tag: \"(0070,0050)\",\n vr: \"US\",\n name: \"RETIRED_DisplayedAreaTopLeftHandCornerTrial\",\n vm: \"2\",\n version: \"DICOM/retired\"\n },\n \"(0070,0051)\": {\n tag: \"(0070,0051)\",\n vr: \"US\",\n name: \"RETIRED_DisplayedAreaBottomRightHandCornerTrial\",\n vm: \"2\",\n version: \"DICOM/retired\"\n },\n \"(0070,0067)\": {\n tag: \"(0070,0067)\",\n vr: \"US\",\n name: \"RETIRED_GraphicLayerRecommendedDisplayRGBValue\",\n vm: \"3\",\n version: \"DICOM/retired\"\n },\n \"(0074,1024)\": {\n tag: \"(0074,1024)\",\n vr: \"IS\",\n name: \"RETIRED_BeamOrderIndexTrial\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0074,1038)\": {\n tag: \"(0074,1038)\",\n vr: \"DS\",\n name: \"RETIRED_DoubleExposureMetersetTrial\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0074,103A)\": {\n tag: \"(0074,103A)\",\n vr: \"DS\",\n name: \"RETIRED_DoubleExposureFieldDeltaTrial\",\n vm: \"4\",\n version: \"DICOM/retired\"\n },\n \"(0074,1220)\": {\n tag: \"(0074,1220)\",\n vr: \"SQ\",\n name: \"RETIRED_RelatedProcedureStepSequence\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0074,1222)\": {\n tag: \"(0074,1222)\",\n vr: \"LO\",\n name: \"RETIRED_ProcedureStepRelationshipType\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0088,0904)\": {\n tag: \"(0088,0904)\",\n vr: \"LO\",\n name: \"RETIRED_TopicTitle\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0088,0906)\": {\n tag: \"(0088,0906)\",\n vr: \"ST\",\n name: \"RETIRED_TopicSubject\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0088,0910)\": {\n tag: \"(0088,0910)\",\n vr: \"LO\",\n name: \"RETIRED_TopicAuthor\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(0088,0912)\": {\n tag: \"(0088,0912)\",\n vr: \"LO\",\n name: \"RETIRED_TopicKeywords\",\n vm: \"1-32\",\n version: \"DICOM/retired\"\n },\n \"(0400,0315)\": {\n tag: \"(0400,0315)\",\n vr: \"FL\",\n name: \"RETIRED_undefined\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(1000,0010)\": {\n tag: \"(1000,0010)\",\n vr: \"US\",\n name: \"RETIRED_EscapeTriplet\",\n vm: \"3\",\n version: \"DICOM/retired\"\n },\n \"(1000,0011)\": {\n tag: \"(1000,0011)\",\n vr: \"US\",\n name: \"RETIRED_RunLengthTriplet\",\n vm: \"3\",\n version: \"DICOM/retired\"\n },\n \"(1000,0012)\": {\n tag: \"(1000,0012)\",\n vr: \"US\",\n name: \"RETIRED_HuffmanTableSize\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(1000,0013)\": {\n tag: \"(1000,0013)\",\n vr: \"US\",\n name: \"RETIRED_HuffmanTableTriplet\",\n vm: \"3\",\n version: \"DICOM/retired\"\n },\n \"(1000,0014)\": {\n tag: \"(1000,0014)\",\n vr: \"US\",\n name: \"RETIRED_ShiftTableSize\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(1000,0015)\": {\n tag: \"(1000,0015)\",\n vr: \"US\",\n name: \"RETIRED_ShiftTableTriplet\",\n vm: \"3\",\n version: \"DICOM/retired\"\n },\n \"(1010,0004)\": {\n tag: \"(1010,0004)\",\n vr: \"US\",\n name: \"RETIRED_ZonalMap\",\n vm: \"1-n\",\n version: \"DICOM/retired\"\n },\n \"(2000,0062)\": {\n tag: \"(2000,0062)\",\n vr: \"CS\",\n name: \"RETIRED_ColorImagePrintingFlag\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(2000,0063)\": {\n tag: \"(2000,0063)\",\n vr: \"CS\",\n name: \"RETIRED_CollationFlag\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(2000,0065)\": {\n tag: \"(2000,0065)\",\n vr: \"CS\",\n name: \"RETIRED_AnnotationFlag\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(2000,0067)\": {\n tag: \"(2000,0067)\",\n vr: \"CS\",\n name: \"RETIRED_ImageOverlayFlag\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(2000,0069)\": {\n tag: \"(2000,0069)\",\n vr: \"CS\",\n name: \"RETIRED_PresentationLUTFlag\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(2000,006A)\": {\n tag: \"(2000,006A)\",\n vr: \"CS\",\n name: \"RETIRED_ImageBoxPresentationLUTFlag\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(2000,0510)\": {\n tag: \"(2000,0510)\",\n vr: \"SQ\",\n name: \"RETIRED_ReferencedStoredPrintSequence\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(2020,0130)\": {\n tag: \"(2020,0130)\",\n vr: \"SQ\",\n name: \"RETIRED_ReferencedImageOverlayBoxSequence\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(2020,0140)\": {\n tag: \"(2020,0140)\",\n vr: \"SQ\",\n name: \"RETIRED_ReferencedVOILUTBoxSequence\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(2040,0010)\": {\n tag: \"(2040,0010)\",\n vr: \"SQ\",\n name: \"RETIRED_ReferencedOverlayPlaneSequence\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(2040,0011)\": {\n tag: \"(2040,0011)\",\n vr: \"US\",\n name: \"RETIRED_ReferencedOverlayPlaneGroups\",\n vm: \"1-99\",\n version: \"DICOM/retired\"\n },\n \"(2040,0020)\": {\n tag: \"(2040,0020)\",\n vr: \"SQ\",\n name: \"RETIRED_OverlayPixelDataSequence\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(2040,0060)\": {\n tag: \"(2040,0060)\",\n vr: \"CS\",\n name: \"RETIRED_OverlayMagnificationType\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(2040,0070)\": {\n tag: \"(2040,0070)\",\n vr: \"CS\",\n name: \"RETIRED_OverlaySmoothingType\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(2040,0072)\": {\n tag: \"(2040,0072)\",\n vr: \"CS\",\n name: \"RETIRED_OverlayOrImageMagnification\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(2040,0074)\": {\n tag: \"(2040,0074)\",\n vr: \"US\",\n name: \"RETIRED_MagnifyToNumberOfColumns\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(2040,0080)\": {\n tag: \"(2040,0080)\",\n vr: \"CS\",\n name: \"RETIRED_OverlayForegroundDensity\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(2040,0082)\": {\n tag: \"(2040,0082)\",\n vr: \"CS\",\n name: \"RETIRED_OverlayBackgroundDensity\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(2040,0090)\": {\n tag: \"(2040,0090)\",\n vr: \"CS\",\n name: \"RETIRED_OverlayMode\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(2040,0100)\": {\n tag: \"(2040,0100)\",\n vr: \"CS\",\n name: \"RETIRED_ThresholdDensity\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(2040,0500)\": {\n tag: \"(2040,0500)\",\n vr: \"SQ\",\n name: \"RETIRED_ReferencedImageBoxSequenceRetired\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(2100,0010)\": {\n tag: \"(2100,0010)\",\n vr: \"SH\",\n name: \"RETIRED_PrintJobID\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(2100,0140)\": {\n tag: \"(2100,0140)\",\n vr: \"AE\",\n name: \"RETIRED_DestinationAE\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(2100,0500)\": {\n tag: \"(2100,0500)\",\n vr: \"SQ\",\n name: \"RETIRED_ReferencedPrintJobSequencePullStoredPrint\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(2110,0099)\": {\n tag: \"(2110,0099)\",\n vr: \"SH\",\n name: \"RETIRED_PrintQueueID\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(2120,0010)\": {\n tag: \"(2120,0010)\",\n vr: \"CS\",\n name: \"RETIRED_QueueStatus\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(2120,0050)\": {\n tag: \"(2120,0050)\",\n vr: \"SQ\",\n name: \"RETIRED_PrintJobDescriptionSequence\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(2120,0070)\": {\n tag: \"(2120,0070)\",\n vr: \"SQ\",\n name: \"RETIRED_ReferencedPrintJobSequence\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(2130,0010)\": {\n tag: \"(2130,0010)\",\n vr: \"SQ\",\n name: \"RETIRED_PrintManagementCapabilitiesSequence\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(2130,0015)\": {\n tag: \"(2130,0015)\",\n vr: \"SQ\",\n name: \"RETIRED_PrinterCharacteristicsSequence\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(2130,0030)\": {\n tag: \"(2130,0030)\",\n vr: \"SQ\",\n name: \"RETIRED_FilmBoxContentSequence\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(2130,0040)\": {\n tag: \"(2130,0040)\",\n vr: \"SQ\",\n name: \"RETIRED_ImageBoxContentSequence\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(2130,0050)\": {\n tag: \"(2130,0050)\",\n vr: \"SQ\",\n name: \"RETIRED_AnnotationContentSequence\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(2130,0060)\": {\n tag: \"(2130,0060)\",\n vr: \"SQ\",\n name: \"RETIRED_ImageOverlayBoxContentSequence\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(2130,0080)\": {\n tag: \"(2130,0080)\",\n vr: \"SQ\",\n name: \"RETIRED_PresentationLUTContentSequence\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(2130,00A0)\": {\n tag: \"(2130,00A0)\",\n vr: \"SQ\",\n name: \"RETIRED_ProposedStudySequence\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(2130,00C0)\": {\n tag: \"(2130,00C0)\",\n vr: \"SQ\",\n name: \"RETIRED_OriginalImageSequence\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(3006,00C0)\": {\n tag: \"(3006,00C0)\",\n vr: \"SQ\",\n name: \"RETIRED_FrameOfReferenceRelationshipSequence\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(3006,00C2)\": {\n tag: \"(3006,00C2)\",\n vr: \"UI\",\n name: \"RETIRED_RelatedFrameOfReferenceUID\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(3006,00C4)\": {\n tag: \"(3006,00C4)\",\n vr: \"CS\",\n name: \"RETIRED_FrameOfReferenceTransformationType\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(300A,0088)\": {\n tag: \"(300A,0088)\",\n vr: \"FL\",\n name: \"RETIRED_BeamDosePointDepth\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(300A,0089)\": {\n tag: \"(300A,0089)\",\n vr: \"FL\",\n name: \"RETIRED_BeamDosePointEquivalentDepth\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(300A,008A)\": {\n tag: \"(300A,008A)\",\n vr: \"FL\",\n name: \"RETIRED_BeamDosePointSSD\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(300A,0782)\": {\n tag: \"(300A,0782)\",\n vr: \"US\",\n name: \"RETIRED_undefined\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(4000,0010)\": {\n tag: \"(4000,0010)\",\n vr: \"LT\",\n name: \"RETIRED_Arbitrary\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(4000,4000)\": {\n tag: \"(4000,4000)\",\n vr: \"LT\",\n name: \"RETIRED_TextComments\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(4008,0040)\": {\n tag: \"(4008,0040)\",\n vr: \"SH\",\n name: \"RETIRED_ResultsID\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(4008,0042)\": {\n tag: \"(4008,0042)\",\n vr: \"LO\",\n name: \"RETIRED_ResultsIDIssuer\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(4008,0050)\": {\n tag: \"(4008,0050)\",\n vr: \"SQ\",\n name: \"RETIRED_ReferencedInterpretationSequence\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(4008,00FF)\": {\n tag: \"(4008,00FF)\",\n vr: \"CS\",\n name: \"RETIRED_ReportProductionStatusTrial\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(4008,0100)\": {\n tag: \"(4008,0100)\",\n vr: \"DA\",\n name: \"RETIRED_InterpretationRecordedDate\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(4008,0101)\": {\n tag: \"(4008,0101)\",\n vr: \"TM\",\n name: \"RETIRED_InterpretationRecordedTime\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(4008,0102)\": {\n tag: \"(4008,0102)\",\n vr: \"PN\",\n name: \"RETIRED_InterpretationRecorder\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(4008,0103)\": {\n tag: \"(4008,0103)\",\n vr: \"LO\",\n name: \"RETIRED_ReferenceToRecordedSound\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(4008,0108)\": {\n tag: \"(4008,0108)\",\n vr: \"DA\",\n name: \"RETIRED_InterpretationTranscriptionDate\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(4008,0109)\": {\n tag: \"(4008,0109)\",\n vr: \"TM\",\n name: \"RETIRED_InterpretationTranscriptionTime\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(4008,010A)\": {\n tag: \"(4008,010A)\",\n vr: \"PN\",\n name: \"RETIRED_InterpretationTranscriber\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(4008,010B)\": {\n tag: \"(4008,010B)\",\n vr: \"ST\",\n name: \"RETIRED_InterpretationText\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(4008,010C)\": {\n tag: \"(4008,010C)\",\n vr: \"PN\",\n name: \"RETIRED_InterpretationAuthor\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(4008,0111)\": {\n tag: \"(4008,0111)\",\n vr: \"SQ\",\n name: \"RETIRED_InterpretationApproverSequence\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(4008,0112)\": {\n tag: \"(4008,0112)\",\n vr: \"DA\",\n name: \"RETIRED_InterpretationApprovalDate\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(4008,0113)\": {\n tag: \"(4008,0113)\",\n vr: \"TM\",\n name: \"RETIRED_InterpretationApprovalTime\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(4008,0114)\": {\n tag: \"(4008,0114)\",\n vr: \"PN\",\n name: \"RETIRED_PhysicianApprovingInterpretation\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(4008,0115)\": {\n tag: \"(4008,0115)\",\n vr: \"LT\",\n name: \"RETIRED_InterpretationDiagnosisDescription\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(4008,0117)\": {\n tag: \"(4008,0117)\",\n vr: \"SQ\",\n name: \"RETIRED_InterpretationDiagnosisCodeSequence\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(4008,0118)\": {\n tag: \"(4008,0118)\",\n vr: \"SQ\",\n name: \"RETIRED_ResultsDistributionListSequence\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(4008,0119)\": {\n tag: \"(4008,0119)\",\n vr: \"PN\",\n name: \"RETIRED_DistributionName\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(4008,011A)\": {\n tag: \"(4008,011A)\",\n vr: \"LO\",\n name: \"RETIRED_DistributionAddress\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(4008,0200)\": {\n tag: \"(4008,0200)\",\n vr: \"SH\",\n name: \"RETIRED_InterpretationID\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(4008,0202)\": {\n tag: \"(4008,0202)\",\n vr: \"LO\",\n name: \"RETIRED_InterpretationIDIssuer\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(4008,0210)\": {\n tag: \"(4008,0210)\",\n vr: \"CS\",\n name: \"RETIRED_InterpretationTypeID\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(4008,0212)\": {\n tag: \"(4008,0212)\",\n vr: \"CS\",\n name: \"RETIRED_InterpretationStatusID\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(4008,0300)\": {\n tag: \"(4008,0300)\",\n vr: \"ST\",\n name: \"RETIRED_Impressions\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(4008,4000)\": {\n tag: \"(4008,4000)\",\n vr: \"ST\",\n name: \"RETIRED_ResultsComments\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(5000-50FF,0005)\": {\n tag: \"(5000-50FF,0005)\",\n vr: \"US\",\n name: \"RETIRED_CurveDimensions\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(5000-50FF,0010)\": {\n tag: \"(5000-50FF,0010)\",\n vr: \"US\",\n name: \"RETIRED_NumberOfPoints\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(5000-50FF,0020)\": {\n tag: \"(5000-50FF,0020)\",\n vr: \"CS\",\n name: \"RETIRED_TypeOfData\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(5000-50FF,0022)\": {\n tag: \"(5000-50FF,0022)\",\n vr: \"LO\",\n name: \"RETIRED_CurveDescription\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(5000-50FF,0030)\": {\n tag: \"(5000-50FF,0030)\",\n vr: \"SH\",\n name: \"RETIRED_AxisUnits\",\n vm: \"1-n\",\n version: \"DICOM/retired\"\n },\n \"(5000-50FF,0040)\": {\n tag: \"(5000-50FF,0040)\",\n vr: \"SH\",\n name: \"RETIRED_AxisLabels\",\n vm: \"1-n\",\n version: \"DICOM/retired\"\n },\n \"(5000-50FF,0103)\": {\n tag: \"(5000-50FF,0103)\",\n vr: \"US\",\n name: \"RETIRED_DataValueRepresentation\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(5000-50FF,0104)\": {\n tag: \"(5000-50FF,0104)\",\n vr: \"US\",\n name: \"RETIRED_MinimumCoordinateValue\",\n vm: \"1-n\",\n version: \"DICOM/retired\"\n },\n \"(5000-50FF,0105)\": {\n tag: \"(5000-50FF,0105)\",\n vr: \"US\",\n name: \"RETIRED_MaximumCoordinateValue\",\n vm: \"1-n\",\n version: \"DICOM/retired\"\n },\n \"(5000-50FF,0106)\": {\n tag: \"(5000-50FF,0106)\",\n vr: \"SH\",\n name: \"RETIRED_CurveRange\",\n vm: \"1-n\",\n version: \"DICOM/retired\"\n },\n \"(5000-50FF,0110)\": {\n tag: \"(5000-50FF,0110)\",\n vr: \"US\",\n name: \"RETIRED_CurveDataDescriptor\",\n vm: \"1-n\",\n version: \"DICOM/retired\"\n },\n \"(5000-50FF,0112)\": {\n tag: \"(5000-50FF,0112)\",\n vr: \"US\",\n name: \"RETIRED_CoordinateStartValue\",\n vm: \"1-n\",\n version: \"DICOM/retired\"\n },\n \"(5000-50FF,0114)\": {\n tag: \"(5000-50FF,0114)\",\n vr: \"US\",\n name: \"RETIRED_CoordinateStepValue\",\n vm: \"1-n\",\n version: \"DICOM/retired\"\n },\n \"(5000-50FF,1001)\": {\n tag: \"(5000-50FF,1001)\",\n vr: \"CS\",\n name: \"RETIRED_CurveActivationLayer\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(5000-50FF,2000)\": {\n tag: \"(5000-50FF,2000)\",\n vr: \"US\",\n name: \"RETIRED_AudioType\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(5000-50FF,2002)\": {\n tag: \"(5000-50FF,2002)\",\n vr: \"US\",\n name: \"RETIRED_AudioSampleFormat\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(5000-50FF,2004)\": {\n tag: \"(5000-50FF,2004)\",\n vr: \"US\",\n name: \"RETIRED_NumberOfChannels\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(5000-50FF,2006)\": {\n tag: \"(5000-50FF,2006)\",\n vr: \"UL\",\n name: \"RETIRED_NumberOfSamples\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(5000-50FF,2008)\": {\n tag: \"(5000-50FF,2008)\",\n vr: \"UL\",\n name: \"RETIRED_SampleRate\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(5000-50FF,200A)\": {\n tag: \"(5000-50FF,200A)\",\n vr: \"UL\",\n name: \"RETIRED_TotalTime\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(5000-50FF,200C)\": {\n tag: \"(5000-50FF,200C)\",\n vr: \"ox\",\n name: \"RETIRED_AudioSampleData\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(5000-50FF,200E)\": {\n tag: \"(5000-50FF,200E)\",\n vr: \"LT\",\n name: \"RETIRED_AudioComments\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(5000-50FF,2500)\": {\n tag: \"(5000-50FF,2500)\",\n vr: \"LO\",\n name: \"RETIRED_CurveLabel\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(5000-50FF,2600)\": {\n tag: \"(5000-50FF,2600)\",\n vr: \"SQ\",\n name: \"RETIRED_CurveReferencedOverlaySequence\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(5000-50FF,2610)\": {\n tag: \"(5000-50FF,2610)\",\n vr: \"US\",\n name: \"RETIRED_CurveReferencedOverlayGroup\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(5000-50FF,3000)\": {\n tag: \"(5000-50FF,3000)\",\n vr: \"ox\",\n name: \"RETIRED_CurveData\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(6000-60FF,0012)\": {\n tag: \"(6000-60FF,0012)\",\n vr: \"US\",\n name: \"RETIRED_OverlayPlanes\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(6000-60FF,0052)\": {\n tag: \"(6000-60FF,0052)\",\n vr: \"US\",\n name: \"RETIRED_OverlayPlaneOrigin\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(6000-60FF,0060)\": {\n tag: \"(6000-60FF,0060)\",\n vr: \"CS\",\n name: \"RETIRED_OverlayCompressionCode\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(6000-60FF,0061)\": {\n tag: \"(6000-60FF,0061)\",\n vr: \"SH\",\n name: \"RETIRED_OverlayCompressionOriginator\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(6000-60FF,0062)\": {\n tag: \"(6000-60FF,0062)\",\n vr: \"SH\",\n name: \"RETIRED_OverlayCompressionLabel\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(6000-60FF,0063)\": {\n tag: \"(6000-60FF,0063)\",\n vr: \"CS\",\n name: \"RETIRED_OverlayCompressionDescription\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(6000-60FF,0066)\": {\n tag: \"(6000-60FF,0066)\",\n vr: \"AT\",\n name: \"RETIRED_OverlayCompressionStepPointers\",\n vm: \"1-n\",\n version: \"DICOM/retired\"\n },\n \"(6000-60FF,0068)\": {\n tag: \"(6000-60FF,0068)\",\n vr: \"US\",\n name: \"RETIRED_OverlayRepeatInterval\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(6000-60FF,0069)\": {\n tag: \"(6000-60FF,0069)\",\n vr: \"US\",\n name: \"RETIRED_OverlayBitsGrouped\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(6000-60FF,0110)\": {\n tag: \"(6000-60FF,0110)\",\n vr: \"CS\",\n name: \"RETIRED_OverlayFormat\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(6000-60FF,0200)\": {\n tag: \"(6000-60FF,0200)\",\n vr: \"US\",\n name: \"RETIRED_OverlayLocation\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(6000-60FF,0800)\": {\n tag: \"(6000-60FF,0800)\",\n vr: \"CS\",\n name: \"RETIRED_OverlayCodeLabel\",\n vm: \"1-n\",\n version: \"DICOM/retired\"\n },\n \"(6000-60FF,0802)\": {\n tag: \"(6000-60FF,0802)\",\n vr: \"US\",\n name: \"RETIRED_OverlayNumberOfTables\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(6000-60FF,0803)\": {\n tag: \"(6000-60FF,0803)\",\n vr: \"AT\",\n name: \"RETIRED_OverlayCodeTableLocation\",\n vm: \"1-n\",\n version: \"DICOM/retired\"\n },\n \"(6000-60FF,0804)\": {\n tag: \"(6000-60FF,0804)\",\n vr: \"US\",\n name: \"RETIRED_OverlayBitsForCodeWord\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(6000-60FF,1100)\": {\n tag: \"(6000-60FF,1100)\",\n vr: \"US\",\n name: \"RETIRED_OverlayDescriptorGray\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(6000-60FF,1101)\": {\n tag: \"(6000-60FF,1101)\",\n vr: \"US\",\n name: \"RETIRED_OverlayDescriptorRed\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(6000-60FF,1102)\": {\n tag: \"(6000-60FF,1102)\",\n vr: \"US\",\n name: \"RETIRED_OverlayDescriptorGreen\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(6000-60FF,1103)\": {\n tag: \"(6000-60FF,1103)\",\n vr: \"US\",\n name: \"RETIRED_OverlayDescriptorBlue\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(6000-60FF,1200)\": {\n tag: \"(6000-60FF,1200)\",\n vr: \"US\",\n name: \"RETIRED_OverlaysGray\",\n vm: \"1-n\",\n version: \"DICOM/retired\"\n },\n \"(6000-60FF,1201)\": {\n tag: \"(6000-60FF,1201)\",\n vr: \"US\",\n name: \"RETIRED_OverlaysRed\",\n vm: \"1-n\",\n version: \"DICOM/retired\"\n },\n \"(6000-60FF,1202)\": {\n tag: \"(6000-60FF,1202)\",\n vr: \"US\",\n name: \"RETIRED_OverlaysGreen\",\n vm: \"1-n\",\n version: \"DICOM/retired\"\n },\n \"(6000-60FF,1203)\": {\n tag: \"(6000-60FF,1203)\",\n vr: \"US\",\n name: \"RETIRED_OverlaysBlue\",\n vm: \"1-n\",\n version: \"DICOM/retired\"\n },\n \"(6000-60FF,4000)\": {\n tag: \"(6000-60FF,4000)\",\n vr: \"LT\",\n name: \"RETIRED_OverlayComments\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(7FE0,0020)\": {\n tag: \"(7FE0,0020)\",\n vr: \"OW\",\n name: \"RETIRED_CoefficientsSDVN\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(7FE0,0030)\": {\n tag: \"(7FE0,0030)\",\n vr: \"OW\",\n name: \"RETIRED_CoefficientsSDHN\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(7FE0,0040)\": {\n tag: \"(7FE0,0040)\",\n vr: \"OW\",\n name: \"RETIRED_CoefficientsSDDN\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(7F00-7FFF,0010)\": {\n tag: \"(7F00-7FFF,0010)\",\n vr: \"ox\",\n name: \"RETIRED_VariablePixelData\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(7F00-7FFF,0011)\": {\n tag: \"(7F00-7FFF,0011)\",\n vr: \"US\",\n name: \"RETIRED_VariableNextDataGroup\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(7F00-7FFF,0020)\": {\n tag: \"(7F00-7FFF,0020)\",\n vr: \"OW\",\n name: \"RETIRED_VariableCoefficientsSDVN\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(7F00-7FFF,0030)\": {\n tag: \"(7F00-7FFF,0030)\",\n vr: \"OW\",\n name: \"RETIRED_VariableCoefficientsSDHN\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"(7F00-7FFF,0040)\": {\n tag: \"(7F00-7FFF,0040)\",\n vr: \"OW\",\n name: \"RETIRED_VariableCoefficientsSDDN\",\n vm: \"1\",\n version: \"DICOM/retired\"\n },\n \"\": {\n tag: \"\"\n },\n '(0019,\"1.2.840.113681\",10)': {\n tag: '(0019,\"1.2.840.113681\",10)',\n vr: \"ST\",\n name: \"CRImageParamsCommon\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"1.2.840.113681\",11)': {\n tag: '(0019,\"1.2.840.113681\",11)',\n vr: \"ST\",\n name: \"CRImageIPParamsSingle\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"1.2.840.113681\",12)': {\n tag: '(0019,\"1.2.840.113681\",12)',\n vr: \"ST\",\n name: \"CRImageIPParamsLeft\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"1.2.840.113681\",13)': {\n tag: '(0019,\"1.2.840.113681\",13)',\n vr: \"ST\",\n name: \"CRImageIPParamsRight\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0087,\"1.2.840.113708.794.1.1.2.0\",10)': {\n tag: '(0087,\"1.2.840.113708.794.1.1.2.0\",10)',\n vr: \"CS\",\n name: \"MediaType\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0087,\"1.2.840.113708.794.1.1.2.0\",20)': {\n tag: '(0087,\"1.2.840.113708.794.1.1.2.0\",20)',\n vr: \"CS\",\n name: \"MediaLocation\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0087,\"1.2.840.113708.794.1.1.2.0\",50)': {\n tag: '(0087,\"1.2.840.113708.794.1.1.2.0\",50)',\n vr: \"IS\",\n name: \"EstimatedRetrieveTime\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"ACUSON\",00)': {\n tag: '(0009,\"ACUSON\",00)',\n vr: \"IS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"ACUSON\",01)': {\n tag: '(0009,\"ACUSON\",01)',\n vr: \"IS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"ACUSON\",02)': {\n tag: '(0009,\"ACUSON\",02)',\n vr: \"UN\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"ACUSON\",03)': {\n tag: '(0009,\"ACUSON\",03)',\n vr: \"UN\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"ACUSON\",04)': {\n tag: '(0009,\"ACUSON\",04)',\n vr: \"UN\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"ACUSON\",05)': {\n tag: '(0009,\"ACUSON\",05)',\n vr: \"UN\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"ACUSON\",06)': {\n tag: '(0009,\"ACUSON\",06)',\n vr: \"UN\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"ACUSON\",07)': {\n tag: '(0009,\"ACUSON\",07)',\n vr: \"UN\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"ACUSON\",08)': {\n tag: '(0009,\"ACUSON\",08)',\n vr: \"LT\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"ACUSON\",09)': {\n tag: '(0009,\"ACUSON\",09)',\n vr: \"LT\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"ACUSON\",0a)': {\n tag: '(0009,\"ACUSON\",0a)',\n vr: \"IS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"ACUSON\",0b)': {\n tag: '(0009,\"ACUSON\",0b)',\n vr: \"IS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"ACUSON\",0c)': {\n tag: '(0009,\"ACUSON\",0c)',\n vr: \"IS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"ACUSON\",0d)': {\n tag: '(0009,\"ACUSON\",0d)',\n vr: \"IS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"ACUSON\",0e)': {\n tag: '(0009,\"ACUSON\",0e)',\n vr: \"IS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"ACUSON\",0f)': {\n tag: '(0009,\"ACUSON\",0f)',\n vr: \"UN\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"ACUSON\",10)': {\n tag: '(0009,\"ACUSON\",10)',\n vr: \"IS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"ACUSON\",11)': {\n tag: '(0009,\"ACUSON\",11)',\n vr: \"UN\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"ACUSON\",12)': {\n tag: '(0009,\"ACUSON\",12)',\n vr: \"IS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"ACUSON\",13)': {\n tag: '(0009,\"ACUSON\",13)',\n vr: \"IS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"ACUSON\",14)': {\n tag: '(0009,\"ACUSON\",14)',\n vr: \"LT\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"ACUSON\",15)': {\n tag: '(0009,\"ACUSON\",15)',\n vr: \"UN\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0003,\"AEGIS_DICOM_2.00\",00)': {\n tag: '(0003,\"AEGIS_DICOM_2.00\",00)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0005,\"AEGIS_DICOM_2.00\",00)': {\n tag: '(0005,\"AEGIS_DICOM_2.00\",00)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0009,\"AEGIS_DICOM_2.00\",00)': {\n tag: '(0009,\"AEGIS_DICOM_2.00\",00)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0019,\"AEGIS_DICOM_2.00\",00)': {\n tag: '(0019,\"AEGIS_DICOM_2.00\",00)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0029,\"AEGIS_DICOM_2.00\",00)': {\n tag: '(0029,\"AEGIS_DICOM_2.00\",00)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(1369,\"AEGIS_DICOM_2.00\",00)': {\n tag: '(1369,\"AEGIS_DICOM_2.00\",00)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0009,\"AGFA\",10)': {\n tag: '(0009,\"AGFA\",10)',\n vr: \"LO\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"AGFA\",11)': {\n tag: '(0009,\"AGFA\",11)',\n vr: \"LO\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"AGFA\",13)': {\n tag: '(0009,\"AGFA\",13)',\n vr: \"LO\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"AGFA\",14)': {\n tag: '(0009,\"AGFA\",14)',\n vr: \"LO\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"AGFA\",15)': {\n tag: '(0009,\"AGFA\",15)',\n vr: \"LO\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0031,\"AGFA PACS Archive Mirroring 1.0\",00)': {\n tag: '(0031,\"AGFA PACS Archive Mirroring 1.0\",00)',\n vr: \"CS\",\n name: \"StudyStatus\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0031,\"AGFA PACS Archive Mirroring 1.0\",01)': {\n tag: '(0031,\"AGFA PACS Archive Mirroring 1.0\",01)',\n vr: \"UL\",\n name: \"DateTimeVerified\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"CAMTRONICS IP\",10)': {\n tag: '(0029,\"CAMTRONICS IP\",10)',\n vr: \"LT\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"CAMTRONICS IP\",20)': {\n tag: '(0029,\"CAMTRONICS IP\",20)',\n vr: \"UN\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"CAMTRONICS IP\",30)': {\n tag: '(0029,\"CAMTRONICS IP\",30)',\n vr: \"UN\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"CAMTRONICS IP\",40)': {\n tag: '(0029,\"CAMTRONICS IP\",40)',\n vr: \"UN\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"CAMTRONICS\",10)': {\n tag: '(0029,\"CAMTRONICS\",10)',\n vr: \"LT\",\n name: \"Commentline\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"CAMTRONICS\",20)': {\n tag: '(0029,\"CAMTRONICS\",20)',\n vr: \"DS\",\n name: \"EdgeEnhancementCoefficient\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"CAMTRONICS\",50)': {\n tag: '(0029,\"CAMTRONICS\",50)',\n vr: \"LT\",\n name: \"SceneText\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"CAMTRONICS\",60)': {\n tag: '(0029,\"CAMTRONICS\",60)',\n vr: \"LT\",\n name: \"ImageText\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"CAMTRONICS\",70)': {\n tag: '(0029,\"CAMTRONICS\",70)',\n vr: \"IS\",\n name: \"PixelShiftHorizontal\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"CAMTRONICS\",80)': {\n tag: '(0029,\"CAMTRONICS\",80)',\n vr: \"IS\",\n name: \"PixelShiftVertical\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"CAMTRONICS\",90)': {\n tag: '(0029,\"CAMTRONICS\",90)',\n vr: \"IS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"CARDIO-D.R. 1.0\",00)': {\n tag: '(0009,\"CARDIO-D.R. 1.0\",00)',\n vr: \"UL\",\n name: \"FileLocation\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"CARDIO-D.R. 1.0\",01)': {\n tag: '(0009,\"CARDIO-D.R. 1.0\",01)',\n vr: \"UL\",\n name: \"FileSize\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"CARDIO-D.R. 1.0\",40)': {\n tag: '(0009,\"CARDIO-D.R. 1.0\",40)',\n vr: \"SQ\",\n name: \"AlternateImageSequence\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"CARDIO-D.R. 1.0\",00)': {\n tag: '(0019,\"CARDIO-D.R. 1.0\",00)',\n vr: \"CS\",\n name: \"ImageBlankingShape\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"CARDIO-D.R. 1.0\",02)': {\n tag: '(0019,\"CARDIO-D.R. 1.0\",02)',\n vr: \"IS\",\n name: \"ImageBlankingLeftVerticalEdge\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"CARDIO-D.R. 1.0\",04)': {\n tag: '(0019,\"CARDIO-D.R. 1.0\",04)',\n vr: \"IS\",\n name: \"ImageBlankingRightVerticalEdge\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"CARDIO-D.R. 1.0\",06)': {\n tag: '(0019,\"CARDIO-D.R. 1.0\",06)',\n vr: \"IS\",\n name: \"ImageBlankingUpperHorizontalEdge\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"CARDIO-D.R. 1.0\",08)': {\n tag: '(0019,\"CARDIO-D.R. 1.0\",08)',\n vr: \"IS\",\n name: \"ImageBlankingLowerHorizontalEdge\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"CARDIO-D.R. 1.0\",10)': {\n tag: '(0019,\"CARDIO-D.R. 1.0\",10)',\n vr: \"IS\",\n name: \"CenterOfCircularImageBlanking\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"CARDIO-D.R. 1.0\",12)': {\n tag: '(0019,\"CARDIO-D.R. 1.0\",12)',\n vr: \"IS\",\n name: \"RadiusOfCircularImageBlanking\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"CARDIO-D.R. 1.0\",30)': {\n tag: '(0019,\"CARDIO-D.R. 1.0\",30)',\n vr: \"UL\",\n name: \"MaximumImageFrameSize\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"CARDIO-D.R. 1.0\",13)': {\n tag: '(0021,\"CARDIO-D.R. 1.0\",13)',\n vr: \"IS\",\n name: \"ImageSequenceNumber\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"CARDIO-D.R. 1.0\",00)': {\n tag: '(0029,\"CARDIO-D.R. 1.0\",00)',\n vr: \"SQ\",\n name: \"EdgeEnhancementSequence\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"CARDIO-D.R. 1.0\",01)': {\n tag: '(0029,\"CARDIO-D.R. 1.0\",01)',\n vr: \"US\",\n name: \"ConvolutionKernelSize\",\n vm: \"2\",\n version: \"PrivateTag\"\n },\n '(0029,\"CARDIO-D.R. 1.0\",02)': {\n tag: '(0029,\"CARDIO-D.R. 1.0\",02)',\n vr: \"DS\",\n name: \"ConvolutionKernelCoefficients\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0029,\"CARDIO-D.R. 1.0\",03)': {\n tag: '(0029,\"CARDIO-D.R. 1.0\",03)',\n vr: \"DS\",\n name: \"EdgeEnhancementGain\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0025,\"CMR42 CIRCLECVI\",1010)': {\n tag: '(0025,\"CMR42 CIRCLECVI\",1010)',\n vr: \"LO\",\n name: \"WorkspaceID\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0025,\"CMR42 CIRCLECVI\",1020)': {\n tag: '(0025,\"CMR42 CIRCLECVI\",1020)',\n vr: \"LO\",\n name: \"WorkspaceTimeString\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0025,\"CMR42 CIRCLECVI\",1030)': {\n tag: '(0025,\"CMR42 CIRCLECVI\",1030)',\n vr: \"OB\",\n name: \"WorkspaceStream\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"DCMTK_ANONYMIZER\",00)': {\n tag: '(0009,\"DCMTK_ANONYMIZER\",00)',\n vr: \"SQ\",\n name: \"AnonymizerUIDMap\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"DCMTK_ANONYMIZER\",10)': {\n tag: '(0009,\"DCMTK_ANONYMIZER\",10)',\n vr: \"UI\",\n name: \"AnonymizerUIDKey\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"DCMTK_ANONYMIZER\",20)': {\n tag: '(0009,\"DCMTK_ANONYMIZER\",20)',\n vr: \"UI\",\n name: \"AnonymizerUIDValue\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"DCMTK_ANONYMIZER\",30)': {\n tag: '(0009,\"DCMTK_ANONYMIZER\",30)',\n vr: \"SQ\",\n name: \"AnonymizerPatientIDMap\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"DCMTK_ANONYMIZER\",40)': {\n tag: '(0009,\"DCMTK_ANONYMIZER\",40)',\n vr: \"LO\",\n name: \"AnonymizerPatientIDKey\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"DCMTK_ANONYMIZER\",50)': {\n tag: '(0009,\"DCMTK_ANONYMIZER\",50)',\n vr: \"LO\",\n name: \"AnonymizerPatientIDValue\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"DIDI TO PCR 1.1\",22)': {\n tag: '(0019,\"DIDI TO PCR 1.1\",22)',\n vr: \"UN\",\n name: \"RouteAET\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"DIDI TO PCR 1.1\",23)': {\n tag: '(0019,\"DIDI TO PCR 1.1\",23)',\n vr: \"DS\",\n name: \"PCRPrintScale\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"DIDI TO PCR 1.1\",24)': {\n tag: '(0019,\"DIDI TO PCR 1.1\",24)',\n vr: \"UN\",\n name: \"PCRPrintJobEnd\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"DIDI TO PCR 1.1\",25)': {\n tag: '(0019,\"DIDI TO PCR 1.1\",25)',\n vr: \"IS\",\n name: \"PCRNoFilmCopies\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"DIDI TO PCR 1.1\",26)': {\n tag: '(0019,\"DIDI TO PCR 1.1\",26)',\n vr: \"IS\",\n name: \"PCRFilmLayoutPosition\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"DIDI TO PCR 1.1\",27)': {\n tag: '(0019,\"DIDI TO PCR 1.1\",27)',\n vr: \"UN\",\n name: \"PCRPrintReportName\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"DIDI TO PCR 1.1\",70)': {\n tag: '(0019,\"DIDI TO PCR 1.1\",70)',\n vr: \"UN\",\n name: \"RADProtocolPrinter\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"DIDI TO PCR 1.1\",71)': {\n tag: '(0019,\"DIDI TO PCR 1.1\",71)',\n vr: \"UN\",\n name: \"RADProtocolMedium\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"DIDI TO PCR 1.1\",90)': {\n tag: '(0019,\"DIDI TO PCR 1.1\",90)',\n vr: \"LO\",\n name: \"UnprocessedFlag\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"DIDI TO PCR 1.1\",91)': {\n tag: '(0019,\"DIDI TO PCR 1.1\",91)',\n vr: \"UN\",\n name: \"KeyValues\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"DIDI TO PCR 1.1\",92)': {\n tag: '(0019,\"DIDI TO PCR 1.1\",92)',\n vr: \"UN\",\n name: \"DestinationPostprocessingFunction\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"DIDI TO PCR 1.1\",A0)': {\n tag: '(0019,\"DIDI TO PCR 1.1\",A0)',\n vr: \"UN\",\n name: \"Version\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"DIDI TO PCR 1.1\",A1)': {\n tag: '(0019,\"DIDI TO PCR 1.1\",A1)',\n vr: \"UN\",\n name: \"RangingMode\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"DIDI TO PCR 1.1\",A2)': {\n tag: '(0019,\"DIDI TO PCR 1.1\",A2)',\n vr: \"UN\",\n name: \"AbdomenBrightness\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"DIDI TO PCR 1.1\",A3)': {\n tag: '(0019,\"DIDI TO PCR 1.1\",A3)',\n vr: \"UN\",\n name: \"FixedBrightness\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"DIDI TO PCR 1.1\",A4)': {\n tag: '(0019,\"DIDI TO PCR 1.1\",A4)',\n vr: \"UN\",\n name: \"DetailContrast\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"DIDI TO PCR 1.1\",A5)': {\n tag: '(0019,\"DIDI TO PCR 1.1\",A5)',\n vr: \"UN\",\n name: \"ContrastBalance\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"DIDI TO PCR 1.1\",A6)': {\n tag: '(0019,\"DIDI TO PCR 1.1\",A6)',\n vr: \"UN\",\n name: \"StructureBoost\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"DIDI TO PCR 1.1\",A7)': {\n tag: '(0019,\"DIDI TO PCR 1.1\",A7)',\n vr: \"UN\",\n name: \"StructurePreference\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"DIDI TO PCR 1.1\",A8)': {\n tag: '(0019,\"DIDI TO PCR 1.1\",A8)',\n vr: \"UN\",\n name: \"NoiseRobustness\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"DIDI TO PCR 1.1\",A9)': {\n tag: '(0019,\"DIDI TO PCR 1.1\",A9)',\n vr: \"UN\",\n name: \"NoiseDoseLimit\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"DIDI TO PCR 1.1\",AA)': {\n tag: '(0019,\"DIDI TO PCR 1.1\",AA)',\n vr: \"UN\",\n name: \"NoiseDoseStep\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"DIDI TO PCR 1.1\",AB)': {\n tag: '(0019,\"DIDI TO PCR 1.1\",AB)',\n vr: \"UN\",\n name: \"NoiseFrequencyLimit\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"DIDI TO PCR 1.1\",AC)': {\n tag: '(0019,\"DIDI TO PCR 1.1\",AC)',\n vr: \"UN\",\n name: \"WeakContrastLimit\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"DIDI TO PCR 1.1\",AD)': {\n tag: '(0019,\"DIDI TO PCR 1.1\",AD)',\n vr: \"UN\",\n name: \"StrongContrastLimit\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"DIDI TO PCR 1.1\",AE)': {\n tag: '(0019,\"DIDI TO PCR 1.1\",AE)',\n vr: \"UN\",\n name: \"StructureBoostOffset\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"DIDI TO PCR 1.1\",AF)': {\n tag: '(0019,\"DIDI TO PCR 1.1\",AF)',\n vr: \"UN\",\n name: \"SmoothGain\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"DIDI TO PCR 1.1\",B0)': {\n tag: '(0019,\"DIDI TO PCR 1.1\",B0)',\n vr: \"UN\",\n name: \"MeasureField1\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"DIDI TO PCR 1.1\",B1)': {\n tag: '(0019,\"DIDI TO PCR 1.1\",B1)',\n vr: \"UN\",\n name: \"MeasureField2\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"DIDI TO PCR 1.1\",B2)': {\n tag: '(0019,\"DIDI TO PCR 1.1\",B2)',\n vr: \"UN\",\n name: \"KeyPercentile1\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"DIDI TO PCR 1.1\",B3)': {\n tag: '(0019,\"DIDI TO PCR 1.1\",B3)',\n vr: \"UN\",\n name: \"KeyPercentile2\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"DIDI TO PCR 1.1\",B4)': {\n tag: '(0019,\"DIDI TO PCR 1.1\",B4)',\n vr: \"UN\",\n name: \"DensityLUT\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"DIDI TO PCR 1.1\",B5)': {\n tag: '(0019,\"DIDI TO PCR 1.1\",B5)',\n vr: \"UN\",\n name: \"Brightness\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"DIDI TO PCR 1.1\",B6)': {\n tag: '(0019,\"DIDI TO PCR 1.1\",B6)',\n vr: \"UN\",\n name: \"Gamma\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0089,\"DIDI TO PCR 1.1\",10)': {\n tag: '(0089,\"DIDI TO PCR 1.1\",10)',\n vr: \"SQ\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"DIGISCAN IMAGE\",31)': {\n tag: '(0029,\"DIGISCAN IMAGE\",31)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0029,\"DIGISCAN IMAGE\",32)': {\n tag: '(0029,\"DIGISCAN IMAGE\",32)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0029,\"DIGISCAN IMAGE\",33)': {\n tag: '(0029,\"DIGISCAN IMAGE\",33)',\n vr: \"LT\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"DIGISCAN IMAGE\",34)': {\n tag: '(0029,\"DIGISCAN IMAGE\",34)',\n vr: \"LT\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(7001-o-70ff,\"DLX_ANNOT_01\",04)': {\n tag: '(7001-o-70ff,\"DLX_ANNOT_01\",04)',\n vr: \"ST\",\n name: \"TextAnnotation\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(7001-o-70ff,\"DLX_ANNOT_01\",05)': {\n tag: '(7001-o-70ff,\"DLX_ANNOT_01\",05)',\n vr: \"IS\",\n name: \"Box\",\n vm: \"2\",\n version: \"PrivateTag\"\n },\n '(7001-o-70ff,\"DLX_ANNOT_01\",07)': {\n tag: '(7001-o-70ff,\"DLX_ANNOT_01\",07)',\n vr: \"IS\",\n name: \"ArrowEnd\",\n vm: \"2\",\n version: \"PrivateTag\"\n },\n '(0015,\"DLX_EXAMS_01\",01)': {\n tag: '(0015,\"DLX_EXAMS_01\",01)',\n vr: \"DS\",\n name: \"StenosisCalibrationRatio\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0015,\"DLX_EXAMS_01\",02)': {\n tag: '(0015,\"DLX_EXAMS_01\",02)',\n vr: \"DS\",\n name: \"StenosisMagnification\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0015,\"DLX_EXAMS_01\",03)': {\n tag: '(0015,\"DLX_EXAMS_01\",03)',\n vr: \"DS\",\n name: \"CardiacCalibrationRatio\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(6001-o-60ff,\"DLX_LKUP_01\",01)': {\n tag: '(6001-o-60ff,\"DLX_LKUP_01\",01)',\n vr: \"US\",\n name: \"GrayPaletteColorLookupTableDescriptor\",\n vm: \"3\",\n version: \"PrivateTag\"\n },\n '(6001-o-60ff,\"DLX_LKUP_01\",02)': {\n tag: '(6001-o-60ff,\"DLX_LKUP_01\",02)',\n vr: \"US\",\n name: \"GrayPaletteColorLookupTableData\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0011,\"DLX_PATNT_01\",01)': {\n tag: '(0011,\"DLX_PATNT_01\",01)',\n vr: \"LT\",\n name: \"PatientDOB\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"DLX_SERIE_01\",01)': {\n tag: '(0019,\"DLX_SERIE_01\",01)',\n vr: \"DS\",\n name: \"AngleValueLArm\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"DLX_SERIE_01\",02)': {\n tag: '(0019,\"DLX_SERIE_01\",02)',\n vr: \"DS\",\n name: \"AngleValuePArm\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"DLX_SERIE_01\",03)': {\n tag: '(0019,\"DLX_SERIE_01\",03)',\n vr: \"DS\",\n name: \"AngleValueCArm\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"DLX_SERIE_01\",04)': {\n tag: '(0019,\"DLX_SERIE_01\",04)',\n vr: \"CS\",\n name: \"AngleLabelLArm\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"DLX_SERIE_01\",05)': {\n tag: '(0019,\"DLX_SERIE_01\",05)',\n vr: \"CS\",\n name: \"AngleLabelPArm\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"DLX_SERIE_01\",06)': {\n tag: '(0019,\"DLX_SERIE_01\",06)',\n vr: \"CS\",\n name: \"AngleLabelCArm\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"DLX_SERIE_01\",07)': {\n tag: '(0019,\"DLX_SERIE_01\",07)',\n vr: \"ST\",\n name: \"ProcedureName\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"DLX_SERIE_01\",08)': {\n tag: '(0019,\"DLX_SERIE_01\",08)',\n vr: \"ST\",\n name: \"ExamName\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"DLX_SERIE_01\",09)': {\n tag: '(0019,\"DLX_SERIE_01\",09)',\n vr: \"SH\",\n name: \"PatientSize\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"DLX_SERIE_01\",0a)': {\n tag: '(0019,\"DLX_SERIE_01\",0a)',\n vr: \"IS\",\n name: \"RecordView\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"DLX_SERIE_01\",10)': {\n tag: '(0019,\"DLX_SERIE_01\",10)',\n vr: \"DS\",\n name: \"InjectorDelay\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"DLX_SERIE_01\",11)': {\n tag: '(0019,\"DLX_SERIE_01\",11)',\n vr: \"CS\",\n name: \"AutoInject\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"DLX_SERIE_01\",14)': {\n tag: '(0019,\"DLX_SERIE_01\",14)',\n vr: \"IS\",\n name: \"AcquisitionMode\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"DLX_SERIE_01\",15)': {\n tag: '(0019,\"DLX_SERIE_01\",15)',\n vr: \"CS\",\n name: \"CameraRotationEnabled\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"DLX_SERIE_01\",16)': {\n tag: '(0019,\"DLX_SERIE_01\",16)',\n vr: \"CS\",\n name: \"ReverseSweep\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"DLX_SERIE_01\",17)': {\n tag: '(0019,\"DLX_SERIE_01\",17)',\n vr: \"IS\",\n name: \"SpatialFilterStrength\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"DLX_SERIE_01\",18)': {\n tag: '(0019,\"DLX_SERIE_01\",18)',\n vr: \"IS\",\n name: \"ZoomFactor\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"DLX_SERIE_01\",19)': {\n tag: '(0019,\"DLX_SERIE_01\",19)',\n vr: \"IS\",\n name: \"XZoomCenter\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"DLX_SERIE_01\",1a)': {\n tag: '(0019,\"DLX_SERIE_01\",1a)',\n vr: \"IS\",\n name: \"YZoomCenter\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"DLX_SERIE_01\",1b)': {\n tag: '(0019,\"DLX_SERIE_01\",1b)',\n vr: \"DS\",\n name: \"Focus\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"DLX_SERIE_01\",1c)': {\n tag: '(0019,\"DLX_SERIE_01\",1c)',\n vr: \"CS\",\n name: \"Dose\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"DLX_SERIE_01\",1d)': {\n tag: '(0019,\"DLX_SERIE_01\",1d)',\n vr: \"IS\",\n name: \"SideMark\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"DLX_SERIE_01\",1e)': {\n tag: '(0019,\"DLX_SERIE_01\",1e)',\n vr: \"IS\",\n name: \"PercentageLandscape\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"DLX_SERIE_01\",1f)': {\n tag: '(0019,\"DLX_SERIE_01\",1f)',\n vr: \"DS\",\n name: \"ExposureDuration\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(00E1,\"ELSCINT1\",01)': {\n tag: '(00E1,\"ELSCINT1\",01)',\n vr: \"US\",\n name: \"DataDictionaryVersion\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(00E1,\"ELSCINT1\",14)': {\n tag: '(00E1,\"ELSCINT1\",14)',\n vr: \"LT\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(00E1,\"ELSCINT1\",22)': {\n tag: '(00E1,\"ELSCINT1\",22)',\n vr: \"DS\",\n name: \"Unknown\",\n vm: \"2\",\n version: \"PrivateTag\"\n },\n '(00E1,\"ELSCINT1\",23)': {\n tag: '(00E1,\"ELSCINT1\",23)',\n vr: \"DS\",\n name: \"Unknown\",\n vm: \"2\",\n version: \"PrivateTag\"\n },\n '(00E1,\"ELSCINT1\",24)': {\n tag: '(00E1,\"ELSCINT1\",24)',\n vr: \"LT\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(00E1,\"ELSCINT1\",25)': {\n tag: '(00E1,\"ELSCINT1\",25)',\n vr: \"LT\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(00E1,\"ELSCINT1\",40)': {\n tag: '(00E1,\"ELSCINT1\",40)',\n vr: \"SH\",\n name: \"OffsetFromCTMRImages\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0601,\"ELSCINT1\",00)': {\n tag: '(0601,\"ELSCINT1\",00)',\n vr: \"SH\",\n name: \"ImplementationVersion\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0601,\"ELSCINT1\",20)': {\n tag: '(0601,\"ELSCINT1\",20)',\n vr: \"DS\",\n name: \"RelativeTablePosition\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0601,\"ELSCINT1\",21)': {\n tag: '(0601,\"ELSCINT1\",21)',\n vr: \"DS\",\n name: \"RelativeTableHeight\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0601,\"ELSCINT1\",30)': {\n tag: '(0601,\"ELSCINT1\",30)',\n vr: \"SH\",\n name: \"SurviewDirection\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0601,\"ELSCINT1\",31)': {\n tag: '(0601,\"ELSCINT1\",31)',\n vr: \"DS\",\n name: \"SurviewLength\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0601,\"ELSCINT1\",50)': {\n tag: '(0601,\"ELSCINT1\",50)',\n vr: \"SH\",\n name: \"ImageViewType\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0601,\"ELSCINT1\",70)': {\n tag: '(0601,\"ELSCINT1\",70)',\n vr: \"DS\",\n name: \"BatchNumber\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0601,\"ELSCINT1\",71)': {\n tag: '(0601,\"ELSCINT1\",71)',\n vr: \"DS\",\n name: \"BatchSize\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0601,\"ELSCINT1\",72)': {\n tag: '(0601,\"ELSCINT1\",72)',\n vr: \"DS\",\n name: \"BatchSliceNumber\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"FDMS 1.0\",04)': {\n tag: '(0009,\"FDMS 1.0\",04)',\n vr: \"SH\",\n name: \"ImageControlUnit\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"FDMS 1.0\",05)': {\n tag: '(0009,\"FDMS 1.0\",05)',\n vr: \"OW\",\n name: \"ImageUID\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"FDMS 1.0\",06)': {\n tag: '(0009,\"FDMS 1.0\",06)',\n vr: \"OW\",\n name: \"RouteImageUID\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"FDMS 1.0\",08)': {\n tag: '(0009,\"FDMS 1.0\",08)',\n vr: \"UL\",\n name: \"ImageDisplayInformationVersionNo\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"FDMS 1.0\",09)': {\n tag: '(0009,\"FDMS 1.0\",09)',\n vr: \"UL\",\n name: \"PatientInformationVersionNo\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"FDMS 1.0\",0C)': {\n tag: '(0009,\"FDMS 1.0\",0C)',\n vr: \"OW\",\n name: \"FilmUID\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"FDMS 1.0\",10)': {\n tag: '(0009,\"FDMS 1.0\",10)',\n vr: \"CS\",\n name: \"ExposureUnitTypeCode\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"FDMS 1.0\",80)': {\n tag: '(0009,\"FDMS 1.0\",80)',\n vr: \"LO\",\n name: \"KanjiHospitalName\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"FDMS 1.0\",90)': {\n tag: '(0009,\"FDMS 1.0\",90)',\n vr: \"ST\",\n name: \"DistributionCode\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"FDMS 1.0\",92)': {\n tag: '(0009,\"FDMS 1.0\",92)',\n vr: \"SH\",\n name: \"KanjiDepartmentName\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"FDMS 1.0\",F0)': {\n tag: '(0009,\"FDMS 1.0\",F0)',\n vr: \"CS\",\n name: \"BlackeningProcessFlag\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"FDMS 1.0\",15)': {\n tag: '(0019,\"FDMS 1.0\",15)',\n vr: \"LO\",\n name: \"KanjiBodyPartForExposure\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"FDMS 1.0\",32)': {\n tag: '(0019,\"FDMS 1.0\",32)',\n vr: \"LO\",\n name: \"KanjiMenuName\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"FDMS 1.0\",40)': {\n tag: '(0019,\"FDMS 1.0\",40)',\n vr: \"CS\",\n name: \"ImageProcessingType\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"FDMS 1.0\",50)': {\n tag: '(0019,\"FDMS 1.0\",50)',\n vr: \"CS\",\n name: \"EDRMode\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"FDMS 1.0\",60)': {\n tag: '(0019,\"FDMS 1.0\",60)',\n vr: \"SH\",\n name: \"RadiographersCode\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"FDMS 1.0\",70)': {\n tag: '(0019,\"FDMS 1.0\",70)',\n vr: \"IS\",\n name: \"SplitExposureFormat\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"FDMS 1.0\",71)': {\n tag: '(0019,\"FDMS 1.0\",71)',\n vr: \"IS\",\n name: \"NoOfSplitExposureFrames\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"FDMS 1.0\",80)': {\n tag: '(0019,\"FDMS 1.0\",80)',\n vr: \"IS\",\n name: \"ReadingPositionSpecification\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"FDMS 1.0\",81)': {\n tag: '(0019,\"FDMS 1.0\",81)',\n vr: \"IS\",\n name: \"ReadingSensitivityCenter\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"FDMS 1.0\",90)': {\n tag: '(0019,\"FDMS 1.0\",90)',\n vr: \"SH\",\n name: \"FilmAnnotationCharacterString1\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"FDMS 1.0\",91)': {\n tag: '(0019,\"FDMS 1.0\",91)',\n vr: \"SH\",\n name: \"FilmAnnotationCharacterString2\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"FDMS 1.0\",10)': {\n tag: '(0021,\"FDMS 1.0\",10)',\n vr: \"CS\",\n name: \"FCRImageID\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"FDMS 1.0\",30)': {\n tag: '(0021,\"FDMS 1.0\",30)',\n vr: \"CS\",\n name: \"SetNo\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"FDMS 1.0\",40)': {\n tag: '(0021,\"FDMS 1.0\",40)',\n vr: \"IS\",\n name: \"ImageNoInTheSet\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"FDMS 1.0\",50)': {\n tag: '(0021,\"FDMS 1.0\",50)',\n vr: \"CS\",\n name: \"PairProcessingInformation\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"FDMS 1.0\",80)': {\n tag: '(0021,\"FDMS 1.0\",80)',\n vr: \"OB\",\n name: \"EquipmentTypeSpecificInformation\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0023,\"FDMS 1.0\",10)': {\n tag: '(0023,\"FDMS 1.0\",10)',\n vr: \"SQ\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0023,\"FDMS 1.0\",20)': {\n tag: '(0023,\"FDMS 1.0\",20)',\n vr: \"SQ\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0023,\"FDMS 1.0\",30)': {\n tag: '(0023,\"FDMS 1.0\",30)',\n vr: \"SQ\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0025,\"FDMS 1.0\",10)': {\n tag: '(0025,\"FDMS 1.0\",10)',\n vr: \"US\",\n name: \"RelativeLightEmissionAmountSk\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0025,\"FDMS 1.0\",11)': {\n tag: '(0025,\"FDMS 1.0\",11)',\n vr: \"US\",\n name: \"TermOfCorrectionForEachIPTypeSt\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0025,\"FDMS 1.0\",12)': {\n tag: '(0025,\"FDMS 1.0\",12)',\n vr: \"US\",\n name: \"ReadingGainGp\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0025,\"FDMS 1.0\",13)': {\n tag: '(0025,\"FDMS 1.0\",13)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0025,\"FDMS 1.0\",15)': {\n tag: '(0025,\"FDMS 1.0\",15)',\n vr: \"CS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0025,\"FDMS 1.0\",20)': {\n tag: '(0025,\"FDMS 1.0\",20)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"2\",\n version: \"PrivateTag\"\n },\n '(0025,\"FDMS 1.0\",21)': {\n tag: '(0025,\"FDMS 1.0\",21)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0025,\"FDMS 1.0\",30)': {\n tag: '(0025,\"FDMS 1.0\",30)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0025,\"FDMS 1.0\",31)': {\n tag: '(0025,\"FDMS 1.0\",31)',\n vr: \"SS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0025,\"FDMS 1.0\",32)': {\n tag: '(0025,\"FDMS 1.0\",32)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0025,\"FDMS 1.0\",33)': {\n tag: '(0025,\"FDMS 1.0\",33)',\n vr: \"SS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0025,\"FDMS 1.0\",34)': {\n tag: '(0025,\"FDMS 1.0\",34)',\n vr: \"SS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0025,\"FDMS 1.0\",40)': {\n tag: '(0025,\"FDMS 1.0\",40)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0025,\"FDMS 1.0\",41)': {\n tag: '(0025,\"FDMS 1.0\",41)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0025,\"FDMS 1.0\",42)': {\n tag: '(0025,\"FDMS 1.0\",42)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0025,\"FDMS 1.0\",43)': {\n tag: '(0025,\"FDMS 1.0\",43)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0025,\"FDMS 1.0\",50)': {\n tag: '(0025,\"FDMS 1.0\",50)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0025,\"FDMS 1.0\",51)': {\n tag: '(0025,\"FDMS 1.0\",51)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0025,\"FDMS 1.0\",52)': {\n tag: '(0025,\"FDMS 1.0\",52)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0025,\"FDMS 1.0\",53)': {\n tag: '(0025,\"FDMS 1.0\",53)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0025,\"FDMS 1.0\",60)': {\n tag: '(0025,\"FDMS 1.0\",60)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0025,\"FDMS 1.0\",61)': {\n tag: '(0025,\"FDMS 1.0\",61)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0025,\"FDMS 1.0\",62)': {\n tag: '(0025,\"FDMS 1.0\",62)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0025,\"FDMS 1.0\",63)': {\n tag: '(0025,\"FDMS 1.0\",63)',\n vr: \"CS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0025,\"FDMS 1.0\",70)': {\n tag: '(0025,\"FDMS 1.0\",70)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0025,\"FDMS 1.0\",71)': {\n tag: '(0025,\"FDMS 1.0\",71)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0025,\"FDMS 1.0\",72)': {\n tag: '(0025,\"FDMS 1.0\",72)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0025,\"FDMS 1.0\",73)': {\n tag: '(0025,\"FDMS 1.0\",73)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0025,\"FDMS 1.0\",74)': {\n tag: '(0025,\"FDMS 1.0\",74)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0025,\"FDMS 1.0\",80)': {\n tag: '(0025,\"FDMS 1.0\",80)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0025,\"FDMS 1.0\",81)': {\n tag: '(0025,\"FDMS 1.0\",81)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0025,\"FDMS 1.0\",82)': {\n tag: '(0025,\"FDMS 1.0\",82)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0025,\"FDMS 1.0\",83)': {\n tag: '(0025,\"FDMS 1.0\",83)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0025,\"FDMS 1.0\",84)': {\n tag: '(0025,\"FDMS 1.0\",84)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0025,\"FDMS 1.0\",90)': {\n tag: '(0025,\"FDMS 1.0\",90)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0025,\"FDMS 1.0\",91)': {\n tag: '(0025,\"FDMS 1.0\",91)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0025,\"FDMS 1.0\",92)': {\n tag: '(0025,\"FDMS 1.0\",92)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0025,\"FDMS 1.0\",93)': {\n tag: '(0025,\"FDMS 1.0\",93)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0025,\"FDMS 1.0\",94)': {\n tag: '(0025,\"FDMS 1.0\",94)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0025,\"FDMS 1.0\",95)': {\n tag: '(0025,\"FDMS 1.0\",95)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0025,\"FDMS 1.0\",96)': {\n tag: '(0025,\"FDMS 1.0\",96)',\n vr: \"CS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0025,\"FDMS 1.0\",a0)': {\n tag: '(0025,\"FDMS 1.0\",a0)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0025,\"FDMS 1.0\",a1)': {\n tag: '(0025,\"FDMS 1.0\",a1)',\n vr: \"SS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0025,\"FDMS 1.0\",a2)': {\n tag: '(0025,\"FDMS 1.0\",a2)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0025,\"FDMS 1.0\",a3)': {\n tag: '(0025,\"FDMS 1.0\",a3)',\n vr: \"SS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0027,\"FDMS 1.0\",10)': {\n tag: '(0027,\"FDMS 1.0\",10)',\n vr: \"SQ\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0027,\"FDMS 1.0\",20)': {\n tag: '(0027,\"FDMS 1.0\",20)',\n vr: \"SQ\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0027,\"FDMS 1.0\",30)': {\n tag: '(0027,\"FDMS 1.0\",30)',\n vr: \"SQ\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0027,\"FDMS 1.0\",40)': {\n tag: '(0027,\"FDMS 1.0\",40)',\n vr: \"SQ\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0027,\"FDMS 1.0\",50)': {\n tag: '(0027,\"FDMS 1.0\",50)',\n vr: \"SQ\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0027,\"FDMS 1.0\",60)': {\n tag: '(0027,\"FDMS 1.0\",60)',\n vr: \"SQ\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0027,\"FDMS 1.0\",70)': {\n tag: '(0027,\"FDMS 1.0\",70)',\n vr: \"SQ\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0027,\"FDMS 1.0\",80)': {\n tag: '(0027,\"FDMS 1.0\",80)',\n vr: \"SQ\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0027,\"FDMS 1.0\",a0)': {\n tag: '(0027,\"FDMS 1.0\",a0)',\n vr: \"IS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0027,\"FDMS 1.0\",a1)': {\n tag: '(0027,\"FDMS 1.0\",a1)',\n vr: \"CS\",\n name: \"Unknown\",\n vm: \"2\",\n version: \"PrivateTag\"\n },\n '(0027,\"FDMS 1.0\",a2)': {\n tag: '(0027,\"FDMS 1.0\",a2)',\n vr: \"CS\",\n name: \"Unknown\",\n vm: \"2\",\n version: \"PrivateTag\"\n },\n '(0027,\"FDMS 1.0\",a3)': {\n tag: '(0027,\"FDMS 1.0\",a3)',\n vr: \"SS\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0029,\"FDMS 1.0\",20)': {\n tag: '(0029,\"FDMS 1.0\",20)',\n vr: \"CS\",\n name: \"ImageScanningDirection\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"FDMS 1.0\",30)': {\n tag: '(0029,\"FDMS 1.0\",30)',\n vr: \"CS\",\n name: \"ExtendedReadingSizeValue\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"FDMS 1.0\",34)': {\n tag: '(0029,\"FDMS 1.0\",34)',\n vr: \"US\",\n name: \"MagnificationReductionRatio\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"FDMS 1.0\",44)': {\n tag: '(0029,\"FDMS 1.0\",44)',\n vr: \"CS\",\n name: \"LineDensityCode\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"FDMS 1.0\",50)': {\n tag: '(0029,\"FDMS 1.0\",50)',\n vr: \"CS\",\n name: \"DataCompressionCode\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2011,\"FDMS 1.0\",11)': {\n tag: '(2011,\"FDMS 1.0\",11)',\n vr: \"CS\",\n name: \"ImagePosition SpecifyingFlag\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(50F1,\"FDMS 1.0\",06)': {\n tag: '(50F1,\"FDMS 1.0\",06)',\n vr: \"CS\",\n name: \"EnergySubtractionParam\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(50F1,\"FDMS 1.0\",07)': {\n tag: '(50F1,\"FDMS 1.0\",07)',\n vr: \"CS\",\n name: \"SubtractionRegistrationResult\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(50F1,\"FDMS 1.0\",08)': {\n tag: '(50F1,\"FDMS 1.0\",08)',\n vr: \"CS\",\n name: \"EnergySubtractionParam2\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(50F1,\"FDMS 1.0\",09)': {\n tag: '(50F1,\"FDMS 1.0\",09)',\n vr: \"SL\",\n name: \"AfinConversionCoefficient\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(50F1,\"FDMS 1.0\",10)': {\n tag: '(50F1,\"FDMS 1.0\",10)',\n vr: \"CS\",\n name: \"FilmOutputFormat\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(50F1,\"FDMS 1.0\",20)': {\n tag: '(50F1,\"FDMS 1.0\",20)',\n vr: \"CS\",\n name: \"ImageProcessingModificationFlag\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"FFP DATA\",01)': {\n tag: '(0009,\"FFP DATA\",01)',\n vr: \"UN\",\n name: \"CRHeaderInformation\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GE ??? From Adantage Review CS\",30)': {\n tag: '(0019,\"GE ??? From Adantage Review CS\",30)',\n vr: \"LO\",\n name: \"CREDRMode\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GE ??? From Adantage Review CS\",40)': {\n tag: '(0019,\"GE ??? From Adantage Review CS\",40)',\n vr: \"LO\",\n name: \"CRLatitude\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GE ??? From Adantage Review CS\",50)': {\n tag: '(0019,\"GE ??? From Adantage Review CS\",50)',\n vr: \"LO\",\n name: \"CRGroupNumber\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GE ??? From Adantage Review CS\",70)': {\n tag: '(0019,\"GE ??? From Adantage Review CS\",70)',\n vr: \"LO\",\n name: \"CRImageSerialNumber\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GE ??? From Adantage Review CS\",80)': {\n tag: '(0019,\"GE ??? From Adantage Review CS\",80)',\n vr: \"LO\",\n name: \"CRBarCodeNumber\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GE ??? From Adantage Review CS\",90)': {\n tag: '(0019,\"GE ??? From Adantage Review CS\",90)',\n vr: \"LO\",\n name: \"CRFilmOutputExposures\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"GEMS_ACQU_01\",24)': {\n tag: '(0009,\"GEMS_ACQU_01\",24)',\n vr: \"DS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"GEMS_ACQU_01\",25)': {\n tag: '(0009,\"GEMS_ACQU_01\",25)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"GEMS_ACQU_01\",3e)': {\n tag: '(0009,\"GEMS_ACQU_01\",3e)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"GEMS_ACQU_01\",3f)': {\n tag: '(0009,\"GEMS_ACQU_01\",3f)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"GEMS_ACQU_01\",42)': {\n tag: '(0009,\"GEMS_ACQU_01\",42)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"GEMS_ACQU_01\",43)': {\n tag: '(0009,\"GEMS_ACQU_01\",43)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"GEMS_ACQU_01\",f8)': {\n tag: '(0009,\"GEMS_ACQU_01\",f8)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"GEMS_ACQU_01\",fb)': {\n tag: '(0009,\"GEMS_ACQU_01\",fb)',\n vr: \"IS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",01)': {\n tag: '(0019,\"GEMS_ACQU_01\",01)',\n vr: \"LT\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",02)': {\n tag: '(0019,\"GEMS_ACQU_01\",02)',\n vr: \"SL\",\n name: \"NumberOfCellsInDetector\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",03)': {\n tag: '(0019,\"GEMS_ACQU_01\",03)',\n vr: \"DS\",\n name: \"CellNumberAtTheta\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",04)': {\n tag: '(0019,\"GEMS_ACQU_01\",04)',\n vr: \"DS\",\n name: \"CellSpacing\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",05)': {\n tag: '(0019,\"GEMS_ACQU_01\",05)',\n vr: \"LT\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",06)': {\n tag: '(0019,\"GEMS_ACQU_01\",06)',\n vr: \"UN\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",0e)': {\n tag: '(0019,\"GEMS_ACQU_01\",0e)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",0f)': {\n tag: '(0019,\"GEMS_ACQU_01\",0f)',\n vr: \"DS\",\n name: \"HorizontalFrameOfReference\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",11)': {\n tag: '(0019,\"GEMS_ACQU_01\",11)',\n vr: \"SS\",\n name: \"SeriesContrast\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",12)': {\n tag: '(0019,\"GEMS_ACQU_01\",12)',\n vr: \"SS\",\n name: \"LastPseq\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",13)': {\n tag: '(0019,\"GEMS_ACQU_01\",13)',\n vr: \"SS\",\n name: \"StartNumberForBaseline\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",14)': {\n tag: '(0019,\"GEMS_ACQU_01\",14)',\n vr: \"SS\",\n name: \"End NumberForBaseline\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",15)': {\n tag: '(0019,\"GEMS_ACQU_01\",15)',\n vr: \"SS\",\n name: \"StartNumberForEnhancedScans\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",16)': {\n tag: '(0019,\"GEMS_ACQU_01\",16)',\n vr: \"SS\",\n name: \"EndNumberForEnhancedScans\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",17)': {\n tag: '(0019,\"GEMS_ACQU_01\",17)',\n vr: \"SS\",\n name: \"SeriesPlane\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",18)': {\n tag: '(0019,\"GEMS_ACQU_01\",18)',\n vr: \"LO\",\n name: \"FirstScanRAS\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",19)': {\n tag: '(0019,\"GEMS_ACQU_01\",19)',\n vr: \"DS\",\n name: \"FirstScanLocation\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",1a)': {\n tag: '(0019,\"GEMS_ACQU_01\",1a)',\n vr: \"LO\",\n name: \"LastScanRAS\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",1b)': {\n tag: '(0019,\"GEMS_ACQU_01\",1b)',\n vr: \"DS\",\n name: \"LastScanLocation\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",1e)': {\n tag: '(0019,\"GEMS_ACQU_01\",1e)',\n vr: \"DS\",\n name: \"DisplayFieldOfView\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",20)': {\n tag: '(0019,\"GEMS_ACQU_01\",20)',\n vr: \"DS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",22)': {\n tag: '(0019,\"GEMS_ACQU_01\",22)',\n vr: \"DS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",23)': {\n tag: '(0019,\"GEMS_ACQU_01\",23)',\n vr: \"DS\",\n name: \"TableSpeed\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",24)': {\n tag: '(0019,\"GEMS_ACQU_01\",24)',\n vr: \"DS\",\n name: \"MidScanTime\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",25)': {\n tag: '(0019,\"GEMS_ACQU_01\",25)',\n vr: \"SS\",\n name: \"MidScanFlag\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",26)': {\n tag: '(0019,\"GEMS_ACQU_01\",26)',\n vr: \"SL\",\n name: \"DegreesOfAzimuth\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",27)': {\n tag: '(0019,\"GEMS_ACQU_01\",27)',\n vr: \"DS\",\n name: \"GantryPeriod\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",2a)': {\n tag: '(0019,\"GEMS_ACQU_01\",2a)',\n vr: \"DS\",\n name: \"XrayOnPosition\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",2b)': {\n tag: '(0019,\"GEMS_ACQU_01\",2b)',\n vr: \"DS\",\n name: \"XrayOffPosition\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",2c)': {\n tag: '(0019,\"GEMS_ACQU_01\",2c)',\n vr: \"SL\",\n name: \"NumberOfTriggers\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",2d)': {\n tag: '(0019,\"GEMS_ACQU_01\",2d)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",2e)': {\n tag: '(0019,\"GEMS_ACQU_01\",2e)',\n vr: \"DS\",\n name: \"AngleOfFirstView\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",2f)': {\n tag: '(0019,\"GEMS_ACQU_01\",2f)',\n vr: \"DS\",\n name: \"TriggerFrequency\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",39)': {\n tag: '(0019,\"GEMS_ACQU_01\",39)',\n vr: \"SS\",\n name: \"ScanFOVType\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",3a)': {\n tag: '(0019,\"GEMS_ACQU_01\",3a)',\n vr: \"IS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",3b)': {\n tag: '(0019,\"GEMS_ACQU_01\",3b)',\n vr: \"LT\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",3c)': {\n tag: '(0019,\"GEMS_ACQU_01\",3c)',\n vr: \"UN\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",3e)': {\n tag: '(0019,\"GEMS_ACQU_01\",3e)',\n vr: \"UN\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",3f)': {\n tag: '(0019,\"GEMS_ACQU_01\",3f)',\n vr: \"UN\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",40)': {\n tag: '(0019,\"GEMS_ACQU_01\",40)',\n vr: \"SS\",\n name: \"StatReconFlag\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",41)': {\n tag: '(0019,\"GEMS_ACQU_01\",41)',\n vr: \"SS\",\n name: \"ComputeType\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",42)': {\n tag: '(0019,\"GEMS_ACQU_01\",42)',\n vr: \"SS\",\n name: \"SegmentNumber\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",43)': {\n tag: '(0019,\"GEMS_ACQU_01\",43)',\n vr: \"SS\",\n name: \"TotalSegmentsRequested\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",44)': {\n tag: '(0019,\"GEMS_ACQU_01\",44)',\n vr: \"DS\",\n name: \"InterscanDelay\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",47)': {\n tag: '(0019,\"GEMS_ACQU_01\",47)',\n vr: \"SS\",\n name: \"ViewCompressionFactor\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",48)': {\n tag: '(0019,\"GEMS_ACQU_01\",48)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",49)': {\n tag: '(0019,\"GEMS_ACQU_01\",49)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",4a)': {\n tag: '(0019,\"GEMS_ACQU_01\",4a)',\n vr: \"SS\",\n name: \"TotalNumberOfRefChannels\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",4b)': {\n tag: '(0019,\"GEMS_ACQU_01\",4b)',\n vr: \"SL\",\n name: \"DataSizeForScanData\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",52)': {\n tag: '(0019,\"GEMS_ACQU_01\",52)',\n vr: \"SS\",\n name: \"ReconPostProcessingFlag\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",54)': {\n tag: '(0019,\"GEMS_ACQU_01\",54)',\n vr: \"UN\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",57)': {\n tag: '(0019,\"GEMS_ACQU_01\",57)',\n vr: \"SS\",\n name: \"CTWaterNumber\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",58)': {\n tag: '(0019,\"GEMS_ACQU_01\",58)',\n vr: \"SS\",\n name: \"CTBoneNumber\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",5a)': {\n tag: '(0019,\"GEMS_ACQU_01\",5a)',\n vr: \"FL\",\n name: \"AcquisitionDuration\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",5d)': {\n tag: '(0019,\"GEMS_ACQU_01\",5d)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",5e)': {\n tag: '(0019,\"GEMS_ACQU_01\",5e)',\n vr: \"SL\",\n name: \"NumberOfChannels1To512\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",5f)': {\n tag: '(0019,\"GEMS_ACQU_01\",5f)',\n vr: \"SL\",\n name: \"IncrementBetweenChannels\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",60)': {\n tag: '(0019,\"GEMS_ACQU_01\",60)',\n vr: \"SL\",\n name: \"StartingView\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",61)': {\n tag: '(0019,\"GEMS_ACQU_01\",61)',\n vr: \"SL\",\n name: \"NumberOfViews\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",62)': {\n tag: '(0019,\"GEMS_ACQU_01\",62)',\n vr: \"SL\",\n name: \"IncrementBetweenViews\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",6a)': {\n tag: '(0019,\"GEMS_ACQU_01\",6a)',\n vr: \"SS\",\n name: \"DependantOnNumberOfViewsProcessed\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",6b)': {\n tag: '(0019,\"GEMS_ACQU_01\",6b)',\n vr: \"SS\",\n name: \"FieldOfViewInDetectorCells\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",70)': {\n tag: '(0019,\"GEMS_ACQU_01\",70)',\n vr: \"SS\",\n name: \"ValueOfBackProjectionButton\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",71)': {\n tag: '(0019,\"GEMS_ACQU_01\",71)',\n vr: \"SS\",\n name: \"SetIfFatqEstimatesWereUsed\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",72)': {\n tag: '(0019,\"GEMS_ACQU_01\",72)',\n vr: \"DS\",\n name: \"ZChannelAvgOverViews\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",73)': {\n tag: '(0019,\"GEMS_ACQU_01\",73)',\n vr: \"DS\",\n name: \"AvgOfLeftRefChannelsOverViews\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",74)': {\n tag: '(0019,\"GEMS_ACQU_01\",74)',\n vr: \"DS\",\n name: \"MaxLeftChannelOverViews\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",75)': {\n tag: '(0019,\"GEMS_ACQU_01\",75)',\n vr: \"DS\",\n name: \"AvgOfRightRefChannelsOverViews\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",76)': {\n tag: '(0019,\"GEMS_ACQU_01\",76)',\n vr: \"DS\",\n name: \"MaxRightChannelOverViews\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",7d)': {\n tag: '(0019,\"GEMS_ACQU_01\",7d)',\n vr: \"DS\",\n name: \"SecondEcho\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",7e)': {\n tag: '(0019,\"GEMS_ACQU_01\",7e)',\n vr: \"SS\",\n name: \"NumberOfEchos\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",7f)': {\n tag: '(0019,\"GEMS_ACQU_01\",7f)',\n vr: \"DS\",\n name: \"TableDelta\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",81)': {\n tag: '(0019,\"GEMS_ACQU_01\",81)',\n vr: \"SS\",\n name: \"Contiguous\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",82)': {\n tag: '(0019,\"GEMS_ACQU_01\",82)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",83)': {\n tag: '(0019,\"GEMS_ACQU_01\",83)',\n vr: \"DS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",84)': {\n tag: '(0019,\"GEMS_ACQU_01\",84)',\n vr: \"DS\",\n name: \"PeakSAR\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",85)': {\n tag: '(0019,\"GEMS_ACQU_01\",85)',\n vr: \"SS\",\n name: \"MonitorSAR\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",86)': {\n tag: '(0019,\"GEMS_ACQU_01\",86)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",87)': {\n tag: '(0019,\"GEMS_ACQU_01\",87)',\n vr: \"DS\",\n name: \"CardiacRepetition Time\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",88)': {\n tag: '(0019,\"GEMS_ACQU_01\",88)',\n vr: \"SS\",\n name: \"ImagesPerCardiacCycle\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",8a)': {\n tag: '(0019,\"GEMS_ACQU_01\",8a)',\n vr: \"SS\",\n name: \"ActualReceiveGainAnalog\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",8b)': {\n tag: '(0019,\"GEMS_ACQU_01\",8b)',\n vr: \"SS\",\n name: \"ActualReceiveGainDigital\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",8d)': {\n tag: '(0019,\"GEMS_ACQU_01\",8d)',\n vr: \"DS\",\n name: \"DelayAfterTrigger\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",8f)': {\n tag: '(0019,\"GEMS_ACQU_01\",8f)',\n vr: \"SS\",\n name: \"SwapPhaseFrequency\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",90)': {\n tag: '(0019,\"GEMS_ACQU_01\",90)',\n vr: \"SS\",\n name: \"PauseInterval\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",91)': {\n tag: '(0019,\"GEMS_ACQU_01\",91)',\n vr: \"DS\",\n name: \"PulseTime\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",92)': {\n tag: '(0019,\"GEMS_ACQU_01\",92)',\n vr: \"SL\",\n name: \"SliceOffsetOnFrequencyAxis\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",93)': {\n tag: '(0019,\"GEMS_ACQU_01\",93)',\n vr: \"DS\",\n name: \"CenterFrequency\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",94)': {\n tag: '(0019,\"GEMS_ACQU_01\",94)',\n vr: \"SS\",\n name: \"TransmitGain\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",95)': {\n tag: '(0019,\"GEMS_ACQU_01\",95)',\n vr: \"SS\",\n name: \"AnalogReceiverGain\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",96)': {\n tag: '(0019,\"GEMS_ACQU_01\",96)',\n vr: \"SS\",\n name: \"DigitalReceiverGain\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",97)': {\n tag: '(0019,\"GEMS_ACQU_01\",97)',\n vr: \"SL\",\n name: \"BitmapDefiningCVs\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",98)': {\n tag: '(0019,\"GEMS_ACQU_01\",98)',\n vr: \"SS\",\n name: \"CenterFrequencyMethod\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",99)': {\n tag: '(0019,\"GEMS_ACQU_01\",99)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",9b)': {\n tag: '(0019,\"GEMS_ACQU_01\",9b)',\n vr: \"SS\",\n name: \"PulseSequenceMode\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",9c)': {\n tag: '(0019,\"GEMS_ACQU_01\",9c)',\n vr: \"LO\",\n name: \"PulseSequenceName\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",9d)': {\n tag: '(0019,\"GEMS_ACQU_01\",9d)',\n vr: \"DT\",\n name: \"PulseSequenceDate\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",9e)': {\n tag: '(0019,\"GEMS_ACQU_01\",9e)',\n vr: \"LO\",\n name: \"InternalPulseSequenceName\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",9f)': {\n tag: '(0019,\"GEMS_ACQU_01\",9f)',\n vr: \"SS\",\n name: \"TransmittingCoil\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",a0)': {\n tag: '(0019,\"GEMS_ACQU_01\",a0)',\n vr: \"SS\",\n name: \"SurfaceCoilType\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",a1)': {\n tag: '(0019,\"GEMS_ACQU_01\",a1)',\n vr: \"SS\",\n name: \"ExtremityCoilFlag\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",a2)': {\n tag: '(0019,\"GEMS_ACQU_01\",a2)',\n vr: \"SL\",\n name: \"RawDataRunNumber\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",a3)': {\n tag: '(0019,\"GEMS_ACQU_01\",a3)',\n vr: \"UL\",\n name: \"CalibratedFieldStrength\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",a4)': {\n tag: '(0019,\"GEMS_ACQU_01\",a4)',\n vr: \"SS\",\n name: \"SATFatWaterBone\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",a5)': {\n tag: '(0019,\"GEMS_ACQU_01\",a5)',\n vr: \"DS\",\n name: \"ReceiveBandwidth\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",a7)': {\n tag: '(0019,\"GEMS_ACQU_01\",a7)',\n vr: \"DS\",\n name: \"UserData\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",a8)': {\n tag: '(0019,\"GEMS_ACQU_01\",a8)',\n vr: \"DS\",\n name: \"UserData\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",a9)': {\n tag: '(0019,\"GEMS_ACQU_01\",a9)',\n vr: \"DS\",\n name: \"UserData\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",aa)': {\n tag: '(0019,\"GEMS_ACQU_01\",aa)',\n vr: \"DS\",\n name: \"UserData\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",ab)': {\n tag: '(0019,\"GEMS_ACQU_01\",ab)',\n vr: \"DS\",\n name: \"UserData\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",ac)': {\n tag: '(0019,\"GEMS_ACQU_01\",ac)',\n vr: \"DS\",\n name: \"UserData\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",ad)': {\n tag: '(0019,\"GEMS_ACQU_01\",ad)',\n vr: \"DS\",\n name: \"UserData\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",ae)': {\n tag: '(0019,\"GEMS_ACQU_01\",ae)',\n vr: \"DS\",\n name: \"UserData\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",af)': {\n tag: '(0019,\"GEMS_ACQU_01\",af)',\n vr: \"DS\",\n name: \"UserData\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",b0)': {\n tag: '(0019,\"GEMS_ACQU_01\",b0)',\n vr: \"DS\",\n name: \"UserData\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",b1)': {\n tag: '(0019,\"GEMS_ACQU_01\",b1)',\n vr: \"DS\",\n name: \"UserData\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",b2)': {\n tag: '(0019,\"GEMS_ACQU_01\",b2)',\n vr: \"DS\",\n name: \"UserData\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",b3)': {\n tag: '(0019,\"GEMS_ACQU_01\",b3)',\n vr: \"DS\",\n name: \"UserData\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",b4)': {\n tag: '(0019,\"GEMS_ACQU_01\",b4)',\n vr: \"DS\",\n name: \"UserData\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",b5)': {\n tag: '(0019,\"GEMS_ACQU_01\",b5)',\n vr: \"DS\",\n name: \"UserData\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",b6)': {\n tag: '(0019,\"GEMS_ACQU_01\",b6)',\n vr: \"DS\",\n name: \"UserData\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",b7)': {\n tag: '(0019,\"GEMS_ACQU_01\",b7)',\n vr: \"DS\",\n name: \"UserData\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",b8)': {\n tag: '(0019,\"GEMS_ACQU_01\",b8)',\n vr: \"DS\",\n name: \"UserData\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",b9)': {\n tag: '(0019,\"GEMS_ACQU_01\",b9)',\n vr: \"DS\",\n name: \"UserData\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",ba)': {\n tag: '(0019,\"GEMS_ACQU_01\",ba)',\n vr: \"DS\",\n name: \"UserData\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",bb)': {\n tag: '(0019,\"GEMS_ACQU_01\",bb)',\n vr: \"DS\",\n name: \"UserData\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",bc)': {\n tag: '(0019,\"GEMS_ACQU_01\",bc)',\n vr: \"DS\",\n name: \"UserData\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",bd)': {\n tag: '(0019,\"GEMS_ACQU_01\",bd)',\n vr: \"DS\",\n name: \"UserData\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",be)': {\n tag: '(0019,\"GEMS_ACQU_01\",be)',\n vr: \"DS\",\n name: \"ProjectionAngle\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",c0)': {\n tag: '(0019,\"GEMS_ACQU_01\",c0)',\n vr: \"SS\",\n name: \"SaturationPlanes\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",c1)': {\n tag: '(0019,\"GEMS_ACQU_01\",c1)',\n vr: \"SS\",\n name: \"SurfaceCoilIntensityCorrectionFlag\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",c2)': {\n tag: '(0019,\"GEMS_ACQU_01\",c2)',\n vr: \"SS\",\n name: \"SATLocationR\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",c3)': {\n tag: '(0019,\"GEMS_ACQU_01\",c3)',\n vr: \"SS\",\n name: \"SATLocationL\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",c4)': {\n tag: '(0019,\"GEMS_ACQU_01\",c4)',\n vr: \"SS\",\n name: \"SATLocationA\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",c5)': {\n tag: '(0019,\"GEMS_ACQU_01\",c5)',\n vr: \"SS\",\n name: \"SATLocationP\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",c6)': {\n tag: '(0019,\"GEMS_ACQU_01\",c6)',\n vr: \"SS\",\n name: \"SATLocationH\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",c7)': {\n tag: '(0019,\"GEMS_ACQU_01\",c7)',\n vr: \"SS\",\n name: \"SATLocationF\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",c8)': {\n tag: '(0019,\"GEMS_ACQU_01\",c8)',\n vr: \"SS\",\n name: \"SATThicknessRL\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",c9)': {\n tag: '(0019,\"GEMS_ACQU_01\",c9)',\n vr: \"SS\",\n name: \"SATThicknessAP\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",ca)': {\n tag: '(0019,\"GEMS_ACQU_01\",ca)',\n vr: \"SS\",\n name: \"SATThicknessHF\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",cb)': {\n tag: '(0019,\"GEMS_ACQU_01\",cb)',\n vr: \"SS\",\n name: \"PrescribedFlowAxis\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",cc)': {\n tag: '(0019,\"GEMS_ACQU_01\",cc)',\n vr: \"SS\",\n name: \"VelocityEncoding\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",cd)': {\n tag: '(0019,\"GEMS_ACQU_01\",cd)',\n vr: \"SS\",\n name: \"ThicknessDisclaimer\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",ce)': {\n tag: '(0019,\"GEMS_ACQU_01\",ce)',\n vr: \"SS\",\n name: \"PrescanType\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",cf)': {\n tag: '(0019,\"GEMS_ACQU_01\",cf)',\n vr: \"SS\",\n name: \"PrescanStatus\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",d0)': {\n tag: '(0019,\"GEMS_ACQU_01\",d0)',\n vr: \"SH\",\n name: \"RawDataType\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",d2)': {\n tag: '(0019,\"GEMS_ACQU_01\",d2)',\n vr: \"SS\",\n name: \"ProjectionAlgorithm\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",d3)': {\n tag: '(0019,\"GEMS_ACQU_01\",d3)',\n vr: \"SH\",\n name: \"ProjectionAlgorithm\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",d4)': {\n tag: '(0019,\"GEMS_ACQU_01\",d4)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",d5)': {\n tag: '(0019,\"GEMS_ACQU_01\",d5)',\n vr: \"SS\",\n name: \"FractionalEcho\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",d6)': {\n tag: '(0019,\"GEMS_ACQU_01\",d6)',\n vr: \"SS\",\n name: \"PrepPulse\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",d7)': {\n tag: '(0019,\"GEMS_ACQU_01\",d7)',\n vr: \"SS\",\n name: \"CardiacPhases\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",d8)': {\n tag: '(0019,\"GEMS_ACQU_01\",d8)',\n vr: \"SS\",\n name: \"VariableEchoFlag\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",d9)': {\n tag: '(0019,\"GEMS_ACQU_01\",d9)',\n vr: \"DS\",\n name: \"ConcatenatedSAT\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",da)': {\n tag: '(0019,\"GEMS_ACQU_01\",da)',\n vr: \"SS\",\n name: \"ReferenceChannelUsed\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",db)': {\n tag: '(0019,\"GEMS_ACQU_01\",db)',\n vr: \"DS\",\n name: \"BackProjectorCoefficient\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",dc)': {\n tag: '(0019,\"GEMS_ACQU_01\",dc)',\n vr: \"SS\",\n name: \"PrimarySpeedCorrectionUsed\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",dd)': {\n tag: '(0019,\"GEMS_ACQU_01\",dd)',\n vr: \"SS\",\n name: \"OverrangeCorrectionUsed\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",de)': {\n tag: '(0019,\"GEMS_ACQU_01\",de)',\n vr: \"DS\",\n name: \"DynamicZAlphaValue\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",df)': {\n tag: '(0019,\"GEMS_ACQU_01\",df)',\n vr: \"DS\",\n name: \"UserData\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",e0)': {\n tag: '(0019,\"GEMS_ACQU_01\",e0)',\n vr: \"DS\",\n name: \"UserData\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",e1)': {\n tag: '(0019,\"GEMS_ACQU_01\",e1)',\n vr: \"DS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",e2)': {\n tag: '(0019,\"GEMS_ACQU_01\",e2)',\n vr: \"DS\",\n name: \"VelocityEncodeScale\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",e3)': {\n tag: '(0019,\"GEMS_ACQU_01\",e3)',\n vr: \"LT\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",e4)': {\n tag: '(0019,\"GEMS_ACQU_01\",e4)',\n vr: \"LT\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",e5)': {\n tag: '(0019,\"GEMS_ACQU_01\",e5)',\n vr: \"IS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",e6)': {\n tag: '(0019,\"GEMS_ACQU_01\",e6)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",e8)': {\n tag: '(0019,\"GEMS_ACQU_01\",e8)',\n vr: \"DS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",e9)': {\n tag: '(0019,\"GEMS_ACQU_01\",e9)',\n vr: \"DS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",eb)': {\n tag: '(0019,\"GEMS_ACQU_01\",eb)',\n vr: \"DS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",ec)': {\n tag: '(0019,\"GEMS_ACQU_01\",ec)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",f0)': {\n tag: '(0019,\"GEMS_ACQU_01\",f0)',\n vr: \"UN\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",f1)': {\n tag: '(0019,\"GEMS_ACQU_01\",f1)',\n vr: \"LT\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",f2)': {\n tag: '(0019,\"GEMS_ACQU_01\",f2)',\n vr: \"SS\",\n name: \"FastPhases\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",f3)': {\n tag: '(0019,\"GEMS_ACQU_01\",f3)',\n vr: \"LT\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",f4)': {\n tag: '(0019,\"GEMS_ACQU_01\",f4)',\n vr: \"LT\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GEMS_ACQU_01\",f9)': {\n tag: '(0019,\"GEMS_ACQU_01\",f9)',\n vr: \"DS\",\n name: \"TransmitGain\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0023,\"GEMS_ACRQA_1.0 BLOCK1\",00)': {\n tag: '(0023,\"GEMS_ACRQA_1.0 BLOCK1\",00)',\n vr: \"LO\",\n name: \"CRExposureMenuCode\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0023,\"GEMS_ACRQA_1.0 BLOCK1\",10)': {\n tag: '(0023,\"GEMS_ACRQA_1.0 BLOCK1\",10)',\n vr: \"LO\",\n name: \"CRExposureMenuString\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0023,\"GEMS_ACRQA_1.0 BLOCK1\",20)': {\n tag: '(0023,\"GEMS_ACRQA_1.0 BLOCK1\",20)',\n vr: \"LO\",\n name: \"CREDRMode\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0023,\"GEMS_ACRQA_1.0 BLOCK1\",30)': {\n tag: '(0023,\"GEMS_ACRQA_1.0 BLOCK1\",30)',\n vr: \"LO\",\n name: \"CRLatitude\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0023,\"GEMS_ACRQA_1.0 BLOCK1\",40)': {\n tag: '(0023,\"GEMS_ACRQA_1.0 BLOCK1\",40)',\n vr: \"LO\",\n name: \"CRGroupNumber\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0023,\"GEMS_ACRQA_1.0 BLOCK1\",50)': {\n tag: '(0023,\"GEMS_ACRQA_1.0 BLOCK1\",50)',\n vr: \"US\",\n name: \"CRImageSerialNumber\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0023,\"GEMS_ACRQA_1.0 BLOCK1\",60)': {\n tag: '(0023,\"GEMS_ACRQA_1.0 BLOCK1\",60)',\n vr: \"LO\",\n name: \"CRBarCodeNumber\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0023,\"GEMS_ACRQA_1.0 BLOCK1\",70)': {\n tag: '(0023,\"GEMS_ACRQA_1.0 BLOCK1\",70)',\n vr: \"LO\",\n name: \"CRFilmOutputExposure\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0023,\"GEMS_ACRQA_1.0 BLOCK1\",80)': {\n tag: '(0023,\"GEMS_ACRQA_1.0 BLOCK1\",80)',\n vr: \"LO\",\n name: \"CRFilmFormat\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0023,\"GEMS_ACRQA_1.0 BLOCK1\",90)': {\n tag: '(0023,\"GEMS_ACRQA_1.0 BLOCK1\",90)',\n vr: \"LO\",\n name: \"CRSShiftString\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0023,\"GEMS_ACRQA_1.0 BLOCK2\",00)': {\n tag: '(0023,\"GEMS_ACRQA_1.0 BLOCK2\",00)',\n vr: \"US\",\n name: \"CRSShift\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0023,\"GEMS_ACRQA_1.0 BLOCK2\",10)': {\n tag: '(0023,\"GEMS_ACRQA_1.0 BLOCK2\",10)',\n vr: \"DS\",\n name: \"CRCShift\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0023,\"GEMS_ACRQA_1.0 BLOCK2\",20)': {\n tag: '(0023,\"GEMS_ACRQA_1.0 BLOCK2\",20)',\n vr: \"DS\",\n name: \"CRGT\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0023,\"GEMS_ACRQA_1.0 BLOCK2\",30)': {\n tag: '(0023,\"GEMS_ACRQA_1.0 BLOCK2\",30)',\n vr: \"DS\",\n name: \"CRGA\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0023,\"GEMS_ACRQA_1.0 BLOCK2\",40)': {\n tag: '(0023,\"GEMS_ACRQA_1.0 BLOCK2\",40)',\n vr: \"DS\",\n name: \"CRGC\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0023,\"GEMS_ACRQA_1.0 BLOCK2\",50)': {\n tag: '(0023,\"GEMS_ACRQA_1.0 BLOCK2\",50)',\n vr: \"DS\",\n name: \"CRGS\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0023,\"GEMS_ACRQA_1.0 BLOCK2\",60)': {\n tag: '(0023,\"GEMS_ACRQA_1.0 BLOCK2\",60)',\n vr: \"DS\",\n name: \"CRRT\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0023,\"GEMS_ACRQA_1.0 BLOCK2\",70)': {\n tag: '(0023,\"GEMS_ACRQA_1.0 BLOCK2\",70)',\n vr: \"DS\",\n name: \"CRRE\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0023,\"GEMS_ACRQA_1.0 BLOCK2\",80)': {\n tag: '(0023,\"GEMS_ACRQA_1.0 BLOCK2\",80)',\n vr: \"US\",\n name: \"CRRN\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0023,\"GEMS_ACRQA_1.0 BLOCK2\",90)': {\n tag: '(0023,\"GEMS_ACRQA_1.0 BLOCK2\",90)',\n vr: \"DS\",\n name: \"CRDRT\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0023,\"GEMS_ACRQA_1.0 BLOCK3\",00)': {\n tag: '(0023,\"GEMS_ACRQA_1.0 BLOCK3\",00)',\n vr: \"DS\",\n name: \"CRDRE\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0023,\"GEMS_ACRQA_1.0 BLOCK3\",10)': {\n tag: '(0023,\"GEMS_ACRQA_1.0 BLOCK3\",10)',\n vr: \"US\",\n name: \"CRDRN\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0023,\"GEMS_ACRQA_1.0 BLOCK3\",20)': {\n tag: '(0023,\"GEMS_ACRQA_1.0 BLOCK3\",20)',\n vr: \"DS\",\n name: \"CRORE\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0023,\"GEMS_ACRQA_1.0 BLOCK3\",30)': {\n tag: '(0023,\"GEMS_ACRQA_1.0 BLOCK3\",30)',\n vr: \"US\",\n name: \"CRORN\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0023,\"GEMS_ACRQA_1.0 BLOCK3\",40)': {\n tag: '(0023,\"GEMS_ACRQA_1.0 BLOCK3\",40)',\n vr: \"US\",\n name: \"CRORD\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0023,\"GEMS_ACRQA_1.0 BLOCK3\",50)': {\n tag: '(0023,\"GEMS_ACRQA_1.0 BLOCK3\",50)',\n vr: \"LO\",\n name: \"CRCassetteSize\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0023,\"GEMS_ACRQA_1.0 BLOCK3\",60)': {\n tag: '(0023,\"GEMS_ACRQA_1.0 BLOCK3\",60)',\n vr: \"LO\",\n name: \"CRMachineID\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0023,\"GEMS_ACRQA_1.0 BLOCK3\",70)': {\n tag: '(0023,\"GEMS_ACRQA_1.0 BLOCK3\",70)',\n vr: \"LO\",\n name: \"CRMachineType\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0023,\"GEMS_ACRQA_1.0 BLOCK3\",80)': {\n tag: '(0023,\"GEMS_ACRQA_1.0 BLOCK3\",80)',\n vr: \"LO\",\n name: \"CRTechnicianCode\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0023,\"GEMS_ACRQA_1.0 BLOCK3\",90)': {\n tag: '(0023,\"GEMS_ACRQA_1.0 BLOCK3\",90)',\n vr: \"LO\",\n name: \"CREnergySubtractionParameters\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0023,\"GEMS_ACRQA_2.0 BLOCK1\",00)': {\n tag: '(0023,\"GEMS_ACRQA_2.0 BLOCK1\",00)',\n vr: \"LO\",\n name: \"CRExposureMenuCode\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0023,\"GEMS_ACRQA_2.0 BLOCK1\",10)': {\n tag: '(0023,\"GEMS_ACRQA_2.0 BLOCK1\",10)',\n vr: \"LO\",\n name: \"CRExposureMenuString\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0023,\"GEMS_ACRQA_2.0 BLOCK1\",20)': {\n tag: '(0023,\"GEMS_ACRQA_2.0 BLOCK1\",20)',\n vr: \"LO\",\n name: \"CREDRMode\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0023,\"GEMS_ACRQA_2.0 BLOCK1\",30)': {\n tag: '(0023,\"GEMS_ACRQA_2.0 BLOCK1\",30)',\n vr: \"LO\",\n name: \"CRLatitude\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0023,\"GEMS_ACRQA_2.0 BLOCK1\",40)': {\n tag: '(0023,\"GEMS_ACRQA_2.0 BLOCK1\",40)',\n vr: \"LO\",\n name: \"CRGroupNumber\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0023,\"GEMS_ACRQA_2.0 BLOCK1\",50)': {\n tag: '(0023,\"GEMS_ACRQA_2.0 BLOCK1\",50)',\n vr: \"US\",\n name: \"CRImageSerialNumber\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0023,\"GEMS_ACRQA_2.0 BLOCK1\",60)': {\n tag: '(0023,\"GEMS_ACRQA_2.0 BLOCK1\",60)',\n vr: \"LO\",\n name: \"CRBarCodeNumber\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0023,\"GEMS_ACRQA_2.0 BLOCK1\",70)': {\n tag: '(0023,\"GEMS_ACRQA_2.0 BLOCK1\",70)',\n vr: \"LO\",\n name: \"CRFilmOutputExposure\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0023,\"GEMS_ACRQA_2.0 BLOCK1\",80)': {\n tag: '(0023,\"GEMS_ACRQA_2.0 BLOCK1\",80)',\n vr: \"LO\",\n name: \"CRFilmFormat\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0023,\"GEMS_ACRQA_2.0 BLOCK1\",90)': {\n tag: '(0023,\"GEMS_ACRQA_2.0 BLOCK1\",90)',\n vr: \"LO\",\n name: \"CRSShiftString\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0023,\"GEMS_ACRQA_2.0 BLOCK2\",00)': {\n tag: '(0023,\"GEMS_ACRQA_2.0 BLOCK2\",00)',\n vr: \"US\",\n name: \"CRSShift\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0023,\"GEMS_ACRQA_2.0 BLOCK2\",10)': {\n tag: '(0023,\"GEMS_ACRQA_2.0 BLOCK2\",10)',\n vr: \"LO\",\n name: \"CRCShift\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0023,\"GEMS_ACRQA_2.0 BLOCK2\",20)': {\n tag: '(0023,\"GEMS_ACRQA_2.0 BLOCK2\",20)',\n vr: \"LO\",\n name: \"CRGT\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0023,\"GEMS_ACRQA_2.0 BLOCK2\",30)': {\n tag: '(0023,\"GEMS_ACRQA_2.0 BLOCK2\",30)',\n vr: \"DS\",\n name: \"CRGA\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0023,\"GEMS_ACRQA_2.0 BLOCK2\",40)': {\n tag: '(0023,\"GEMS_ACRQA_2.0 BLOCK2\",40)',\n vr: \"DS\",\n name: \"CRGC\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0023,\"GEMS_ACRQA_2.0 BLOCK2\",50)': {\n tag: '(0023,\"GEMS_ACRQA_2.0 BLOCK2\",50)',\n vr: \"DS\",\n name: \"CRGS\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0023,\"GEMS_ACRQA_2.0 BLOCK2\",60)': {\n tag: '(0023,\"GEMS_ACRQA_2.0 BLOCK2\",60)',\n vr: \"LO\",\n name: \"CRRT\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0023,\"GEMS_ACRQA_2.0 BLOCK2\",70)': {\n tag: '(0023,\"GEMS_ACRQA_2.0 BLOCK2\",70)',\n vr: \"DS\",\n name: \"CRRE\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0023,\"GEMS_ACRQA_2.0 BLOCK2\",80)': {\n tag: '(0023,\"GEMS_ACRQA_2.0 BLOCK2\",80)',\n vr: \"US\",\n name: \"CRRN\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0023,\"GEMS_ACRQA_2.0 BLOCK2\",90)': {\n tag: '(0023,\"GEMS_ACRQA_2.0 BLOCK2\",90)',\n vr: \"DS\",\n name: \"CRDRT\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0023,\"GEMS_ACRQA_2.0 BLOCK3\",00)': {\n tag: '(0023,\"GEMS_ACRQA_2.0 BLOCK3\",00)',\n vr: \"DS\",\n name: \"CRDRE\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0023,\"GEMS_ACRQA_2.0 BLOCK3\",10)': {\n tag: '(0023,\"GEMS_ACRQA_2.0 BLOCK3\",10)',\n vr: \"US\",\n name: \"CRDRN\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0023,\"GEMS_ACRQA_2.0 BLOCK3\",20)': {\n tag: '(0023,\"GEMS_ACRQA_2.0 BLOCK3\",20)',\n vr: \"DS\",\n name: \"CRORE\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0023,\"GEMS_ACRQA_2.0 BLOCK3\",30)': {\n tag: '(0023,\"GEMS_ACRQA_2.0 BLOCK3\",30)',\n vr: \"US\",\n name: \"CRORN\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0023,\"GEMS_ACRQA_2.0 BLOCK3\",40)': {\n tag: '(0023,\"GEMS_ACRQA_2.0 BLOCK3\",40)',\n vr: \"US\",\n name: \"CRORD\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0023,\"GEMS_ACRQA_2.0 BLOCK3\",50)': {\n tag: '(0023,\"GEMS_ACRQA_2.0 BLOCK3\",50)',\n vr: \"LO\",\n name: \"CRCassetteSize\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0023,\"GEMS_ACRQA_2.0 BLOCK3\",60)': {\n tag: '(0023,\"GEMS_ACRQA_2.0 BLOCK3\",60)',\n vr: \"LO\",\n name: \"CRMachineID\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0023,\"GEMS_ACRQA_2.0 BLOCK3\",70)': {\n tag: '(0023,\"GEMS_ACRQA_2.0 BLOCK3\",70)',\n vr: \"LO\",\n name: \"CRMachineType\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0023,\"GEMS_ACRQA_2.0 BLOCK3\",80)': {\n tag: '(0023,\"GEMS_ACRQA_2.0 BLOCK3\",80)',\n vr: \"LO\",\n name: \"CRTechnicianCode\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0023,\"GEMS_ACRQA_2.0 BLOCK3\",90)': {\n tag: '(0023,\"GEMS_ACRQA_2.0 BLOCK3\",90)',\n vr: \"LO\",\n name: \"CREnergySubtractionParameters\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0023,\"GEMS_ACRQA_2.0 BLOCK3\",f0)': {\n tag: '(0023,\"GEMS_ACRQA_2.0 BLOCK3\",f0)',\n vr: \"LO\",\n name: \"CRDistributionCode\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0023,\"GEMS_ACRQA_2.0 BLOCK3\",ff)': {\n tag: '(0023,\"GEMS_ACRQA_2.0 BLOCK3\",ff)',\n vr: \"US\",\n name: \"CRShuttersApplied\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0047,\"GEMS_ADWSoft_3D1\",01)': {\n tag: '(0047,\"GEMS_ADWSoft_3D1\",01)',\n vr: \"SQ\",\n name: \"Reconstruction Parameters Sequence\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0047,\"GEMS_ADWSoft_3D1\",50)': {\n tag: '(0047,\"GEMS_ADWSoft_3D1\",50)',\n vr: \"UL\",\n name: \"VolumeVoxelCount\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0047,\"GEMS_ADWSoft_3D1\",51)': {\n tag: '(0047,\"GEMS_ADWSoft_3D1\",51)',\n vr: \"UL\",\n name: \"VolumeSegmentCount\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0047,\"GEMS_ADWSoft_3D1\",53)': {\n tag: '(0047,\"GEMS_ADWSoft_3D1\",53)',\n vr: \"US\",\n name: \"VolumeSliceSize\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0047,\"GEMS_ADWSoft_3D1\",54)': {\n tag: '(0047,\"GEMS_ADWSoft_3D1\",54)',\n vr: \"US\",\n name: \"VolumeSliceCount\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0047,\"GEMS_ADWSoft_3D1\",55)': {\n tag: '(0047,\"GEMS_ADWSoft_3D1\",55)',\n vr: \"SL\",\n name: \"VolumeThresholdValue\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0047,\"GEMS_ADWSoft_3D1\",57)': {\n tag: '(0047,\"GEMS_ADWSoft_3D1\",57)',\n vr: \"DS\",\n name: \"VolumeVoxelRatio\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0047,\"GEMS_ADWSoft_3D1\",58)': {\n tag: '(0047,\"GEMS_ADWSoft_3D1\",58)',\n vr: \"DS\",\n name: \"VolumeVoxelSize\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0047,\"GEMS_ADWSoft_3D1\",59)': {\n tag: '(0047,\"GEMS_ADWSoft_3D1\",59)',\n vr: \"US\",\n name: \"VolumeZPositionSize\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0047,\"GEMS_ADWSoft_3D1\",60)': {\n tag: '(0047,\"GEMS_ADWSoft_3D1\",60)',\n vr: \"DS\",\n name: \"VolumeBaseLine\",\n vm: \"9\",\n version: \"PrivateTag\"\n },\n '(0047,\"GEMS_ADWSoft_3D1\",61)': {\n tag: '(0047,\"GEMS_ADWSoft_3D1\",61)',\n vr: \"DS\",\n name: \"VolumeCenterPoint\",\n vm: \"3\",\n version: \"PrivateTag\"\n },\n '(0047,\"GEMS_ADWSoft_3D1\",63)': {\n tag: '(0047,\"GEMS_ADWSoft_3D1\",63)',\n vr: \"SL\",\n name: \"VolumeSkewBase\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0047,\"GEMS_ADWSoft_3D1\",64)': {\n tag: '(0047,\"GEMS_ADWSoft_3D1\",64)',\n vr: \"DS\",\n name: \"VolumeRegistrationTransformRotationMatrix\",\n vm: \"9\",\n version: \"PrivateTag\"\n },\n '(0047,\"GEMS_ADWSoft_3D1\",65)': {\n tag: '(0047,\"GEMS_ADWSoft_3D1\",65)',\n vr: \"DS\",\n name: \"VolumeRegistrationTransformTranslationVector\",\n vm: \"3\",\n version: \"PrivateTag\"\n },\n '(0047,\"GEMS_ADWSoft_3D1\",70)': {\n tag: '(0047,\"GEMS_ADWSoft_3D1\",70)',\n vr: \"DS\",\n name: \"KVPList\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0047,\"GEMS_ADWSoft_3D1\",71)': {\n tag: '(0047,\"GEMS_ADWSoft_3D1\",71)',\n vr: \"IS\",\n name: \"XRayTubeCurrentList\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0047,\"GEMS_ADWSoft_3D1\",72)': {\n tag: '(0047,\"GEMS_ADWSoft_3D1\",72)',\n vr: \"IS\",\n name: \"ExposureList\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0047,\"GEMS_ADWSoft_3D1\",80)': {\n tag: '(0047,\"GEMS_ADWSoft_3D1\",80)',\n vr: \"LO\",\n name: \"AcquisitionDLXIdentifier\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0047,\"GEMS_ADWSoft_3D1\",85)': {\n tag: '(0047,\"GEMS_ADWSoft_3D1\",85)',\n vr: \"SQ\",\n name: \"AcquisitionDLX2DSeriesSequence\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0047,\"GEMS_ADWSoft_3D1\",89)': {\n tag: '(0047,\"GEMS_ADWSoft_3D1\",89)',\n vr: \"DS\",\n name: \"ContrastAgentVolumeList\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0047,\"GEMS_ADWSoft_3D1\",8A)': {\n tag: '(0047,\"GEMS_ADWSoft_3D1\",8A)',\n vr: \"US\",\n name: \"NumberOfInjections\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0047,\"GEMS_ADWSoft_3D1\",8B)': {\n tag: '(0047,\"GEMS_ADWSoft_3D1\",8B)',\n vr: \"US\",\n name: \"FrameCount\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0047,\"GEMS_ADWSoft_3D1\",91)': {\n tag: '(0047,\"GEMS_ADWSoft_3D1\",91)',\n vr: \"LO\",\n name: \"XA3DReconstructionAlgorithmName\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0047,\"GEMS_ADWSoft_3D1\",92)': {\n tag: '(0047,\"GEMS_ADWSoft_3D1\",92)',\n vr: \"CS\",\n name: \"XA3DReconstructionAlgorithmVersion\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0047,\"GEMS_ADWSoft_3D1\",93)': {\n tag: '(0047,\"GEMS_ADWSoft_3D1\",93)',\n vr: \"DA\",\n name: \"DLXCalibrationDate\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0047,\"GEMS_ADWSoft_3D1\",94)': {\n tag: '(0047,\"GEMS_ADWSoft_3D1\",94)',\n vr: \"TM\",\n name: \"DLXCalibrationTime\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0047,\"GEMS_ADWSoft_3D1\",95)': {\n tag: '(0047,\"GEMS_ADWSoft_3D1\",95)',\n vr: \"CS\",\n name: \"DLXCalibrationStatus\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0047,\"GEMS_ADWSoft_3D1\",96)': {\n tag: '(0047,\"GEMS_ADWSoft_3D1\",96)',\n vr: \"IS\",\n name: \"UsedFrames\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0047,\"GEMS_ADWSoft_3D1\",98)': {\n tag: '(0047,\"GEMS_ADWSoft_3D1\",98)',\n vr: \"US\",\n name: \"TransformCount\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0047,\"GEMS_ADWSoft_3D1\",99)': {\n tag: '(0047,\"GEMS_ADWSoft_3D1\",99)',\n vr: \"SQ\",\n name: \"TransformSequence\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0047,\"GEMS_ADWSoft_3D1\",9A)': {\n tag: '(0047,\"GEMS_ADWSoft_3D1\",9A)',\n vr: \"DS\",\n name: \"TransformRotationMatrix\",\n vm: \"9\",\n version: \"PrivateTag\"\n },\n '(0047,\"GEMS_ADWSoft_3D1\",9B)': {\n tag: '(0047,\"GEMS_ADWSoft_3D1\",9B)',\n vr: \"DS\",\n name: \"TransformTranslationVector\",\n vm: \"3\",\n version: \"PrivateTag\"\n },\n '(0047,\"GEMS_ADWSoft_3D1\",9C)': {\n tag: '(0047,\"GEMS_ADWSoft_3D1\",9C)',\n vr: \"LO\",\n name: \"TransformLabel\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0047,\"GEMS_ADWSoft_3D1\",B0)': {\n tag: '(0047,\"GEMS_ADWSoft_3D1\",B0)',\n vr: \"SQ\",\n name: \"WireframeList\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0047,\"GEMS_ADWSoft_3D1\",B1)': {\n tag: '(0047,\"GEMS_ADWSoft_3D1\",B1)',\n vr: \"US\",\n name: \"WireframeCount\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0047,\"GEMS_ADWSoft_3D1\",B2)': {\n tag: '(0047,\"GEMS_ADWSoft_3D1\",B2)',\n vr: \"US\",\n name: \"LocationSystem\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0047,\"GEMS_ADWSoft_3D1\",B5)': {\n tag: '(0047,\"GEMS_ADWSoft_3D1\",B5)',\n vr: \"LO\",\n name: \"WireframeName\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0047,\"GEMS_ADWSoft_3D1\",B6)': {\n tag: '(0047,\"GEMS_ADWSoft_3D1\",B6)',\n vr: \"LO\",\n name: \"WireframeGroupName\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0047,\"GEMS_ADWSoft_3D1\",B7)': {\n tag: '(0047,\"GEMS_ADWSoft_3D1\",B7)',\n vr: \"LO\",\n name: \"WireframeColor\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0047,\"GEMS_ADWSoft_3D1\",B8)': {\n tag: '(0047,\"GEMS_ADWSoft_3D1\",B8)',\n vr: \"SL\",\n name: \"WireframeAttributes\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0047,\"GEMS_ADWSoft_3D1\",B9)': {\n tag: '(0047,\"GEMS_ADWSoft_3D1\",B9)',\n vr: \"SL\",\n name: \"WireframePointCount\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0047,\"GEMS_ADWSoft_3D1\",BA)': {\n tag: '(0047,\"GEMS_ADWSoft_3D1\",BA)',\n vr: \"SL\",\n name: \"WireframeTimestamp\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0047,\"GEMS_ADWSoft_3D1\",BB)': {\n tag: '(0047,\"GEMS_ADWSoft_3D1\",BB)',\n vr: \"SQ\",\n name: \"WireframePointList\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0047,\"GEMS_ADWSoft_3D1\",BC)': {\n tag: '(0047,\"GEMS_ADWSoft_3D1\",BC)',\n vr: \"DS\",\n name: \"WireframePointsCoordinates\",\n vm: \"3\",\n version: \"PrivateTag\"\n },\n '(0047,\"GEMS_ADWSoft_3D1\",C0)': {\n tag: '(0047,\"GEMS_ADWSoft_3D1\",C0)',\n vr: \"DS\",\n name: \"VolumeUpperLeftHighCornerRAS\",\n vm: \"3\",\n version: \"PrivateTag\"\n },\n '(0047,\"GEMS_ADWSoft_3D1\",C1)': {\n tag: '(0047,\"GEMS_ADWSoft_3D1\",C1)',\n vr: \"DS\",\n name: \"VolumeSliceToRASRotationMatrix\",\n vm: \"9\",\n version: \"PrivateTag\"\n },\n '(0047,\"GEMS_ADWSoft_3D1\",C2)': {\n tag: '(0047,\"GEMS_ADWSoft_3D1\",C2)',\n vr: \"DS\",\n name: \"VolumeUpperLeftHighCornerTLOC\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0047,\"GEMS_ADWSoft_3D1\",D1)': {\n tag: '(0047,\"GEMS_ADWSoft_3D1\",D1)',\n vr: \"OB\",\n name: \"VolumeSegmentList\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0047,\"GEMS_ADWSoft_3D1\",D2)': {\n tag: '(0047,\"GEMS_ADWSoft_3D1\",D2)',\n vr: \"OB\",\n name: \"VolumeGradientList\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0047,\"GEMS_ADWSoft_3D1\",D3)': {\n tag: '(0047,\"GEMS_ADWSoft_3D1\",D3)',\n vr: \"OB\",\n name: \"VolumeDensityList\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0047,\"GEMS_ADWSoft_3D1\",D4)': {\n tag: '(0047,\"GEMS_ADWSoft_3D1\",D4)',\n vr: \"OB\",\n name: \"VolumeZPositionList\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0047,\"GEMS_ADWSoft_3D1\",D5)': {\n tag: '(0047,\"GEMS_ADWSoft_3D1\",D5)',\n vr: \"OB\",\n name: \"VolumeOriginalIndexList\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0039,\"GEMS_ADWSoft_DPO\",80)': {\n tag: '(0039,\"GEMS_ADWSoft_DPO\",80)',\n vr: \"IS\",\n name: \"PrivateEntityNumber\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0039,\"GEMS_ADWSoft_DPO\",85)': {\n tag: '(0039,\"GEMS_ADWSoft_DPO\",85)',\n vr: \"DA\",\n name: \"PrivateEntityDate\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0039,\"GEMS_ADWSoft_DPO\",90)': {\n tag: '(0039,\"GEMS_ADWSoft_DPO\",90)',\n vr: \"TM\",\n name: \"PrivateEntityTime\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0039,\"GEMS_ADWSoft_DPO\",95)': {\n tag: '(0039,\"GEMS_ADWSoft_DPO\",95)',\n vr: \"LO\",\n name: \"PrivateEntityLaunchCommand\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0039,\"GEMS_ADWSoft_DPO\",AA)': {\n tag: '(0039,\"GEMS_ADWSoft_DPO\",AA)',\n vr: \"CS\",\n name: \"PrivateEntityType\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0033,\"GEMS_CTHD_01\",02)': {\n tag: '(0033,\"GEMS_CTHD_01\",02)',\n vr: \"UN\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0037,\"GEMS_DRS_1\",10)': {\n tag: '(0037,\"GEMS_DRS_1\",10)',\n vr: \"LO\",\n name: \"ReferringDepartment\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0037,\"GEMS_DRS_1\",20)': {\n tag: '(0037,\"GEMS_DRS_1\",20)',\n vr: \"US\",\n name: \"ScreenNumber\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0037,\"GEMS_DRS_1\",40)': {\n tag: '(0037,\"GEMS_DRS_1\",40)',\n vr: \"SH\",\n name: \"LeftOrientation\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0037,\"GEMS_DRS_1\",42)': {\n tag: '(0037,\"GEMS_DRS_1\",42)',\n vr: \"SH\",\n name: \"RightOrientation\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0037,\"GEMS_DRS_1\",50)': {\n tag: '(0037,\"GEMS_DRS_1\",50)',\n vr: \"CS\",\n name: \"Inversion\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0037,\"GEMS_DRS_1\",60)': {\n tag: '(0037,\"GEMS_DRS_1\",60)',\n vr: \"US\",\n name: \"DSA\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"GEMS_GENIE_1\",10)': {\n tag: '(0009,\"GEMS_GENIE_1\",10)',\n vr: \"LO\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"GEMS_GENIE_1\",11)': {\n tag: '(0009,\"GEMS_GENIE_1\",11)',\n vr: \"SL\",\n name: \"StudyFlags\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"GEMS_GENIE_1\",12)': {\n tag: '(0009,\"GEMS_GENIE_1\",12)',\n vr: \"SL\",\n name: \"StudyType\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"GEMS_GENIE_1\",1e)': {\n tag: '(0009,\"GEMS_GENIE_1\",1e)',\n vr: \"UI\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"GEMS_GENIE_1\",20)': {\n tag: '(0009,\"GEMS_GENIE_1\",20)',\n vr: \"LO\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"GEMS_GENIE_1\",21)': {\n tag: '(0009,\"GEMS_GENIE_1\",21)',\n vr: \"SL\",\n name: \"SeriesFlags\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"GEMS_GENIE_1\",22)': {\n tag: '(0009,\"GEMS_GENIE_1\",22)',\n vr: \"SH\",\n name: \"UserOrientation\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"GEMS_GENIE_1\",23)': {\n tag: '(0009,\"GEMS_GENIE_1\",23)',\n vr: \"SL\",\n name: \"InitiationType\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"GEMS_GENIE_1\",24)': {\n tag: '(0009,\"GEMS_GENIE_1\",24)',\n vr: \"SL\",\n name: \"InitiationDelay\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"GEMS_GENIE_1\",25)': {\n tag: '(0009,\"GEMS_GENIE_1\",25)',\n vr: \"SL\",\n name: \"InitiationCountRate\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"GEMS_GENIE_1\",26)': {\n tag: '(0009,\"GEMS_GENIE_1\",26)',\n vr: \"SL\",\n name: \"NumberEnergySets\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"GEMS_GENIE_1\",27)': {\n tag: '(0009,\"GEMS_GENIE_1\",27)',\n vr: \"SL\",\n name: \"NumberDetectors\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"GEMS_GENIE_1\",29)': {\n tag: '(0009,\"GEMS_GENIE_1\",29)',\n vr: \"SL\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"GEMS_GENIE_1\",2a)': {\n tag: '(0009,\"GEMS_GENIE_1\",2a)',\n vr: \"SL\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"GEMS_GENIE_1\",2c)': {\n tag: '(0009,\"GEMS_GENIE_1\",2c)',\n vr: \"LO\",\n name: \"SeriesComments\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"GEMS_GENIE_1\",2d)': {\n tag: '(0009,\"GEMS_GENIE_1\",2d)',\n vr: \"SL\",\n name: \"TrackBeatAverage\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"GEMS_GENIE_1\",2e)': {\n tag: '(0009,\"GEMS_GENIE_1\",2e)',\n vr: \"FD\",\n name: \"DistancePrescribed\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"GEMS_GENIE_1\",30)': {\n tag: '(0009,\"GEMS_GENIE_1\",30)',\n vr: \"LO\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"GEMS_GENIE_1\",35)': {\n tag: '(0009,\"GEMS_GENIE_1\",35)',\n vr: \"SL\",\n name: \"GantryLocusType\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"GEMS_GENIE_1\",37)': {\n tag: '(0009,\"GEMS_GENIE_1\",37)',\n vr: \"SL\",\n name: \"StartingHeartRate\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"GEMS_GENIE_1\",38)': {\n tag: '(0009,\"GEMS_GENIE_1\",38)',\n vr: \"SL\",\n name: \"RRWindowWidth\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"GEMS_GENIE_1\",39)': {\n tag: '(0009,\"GEMS_GENIE_1\",39)',\n vr: \"SL\",\n name: \"RRWindowOffset\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"GEMS_GENIE_1\",3a)': {\n tag: '(0009,\"GEMS_GENIE_1\",3a)',\n vr: \"SL\",\n name: \"PercentCycleImaged\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"GEMS_GENIE_1\",40)': {\n tag: '(0009,\"GEMS_GENIE_1\",40)',\n vr: \"LO\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"GEMS_GENIE_1\",41)': {\n tag: '(0009,\"GEMS_GENIE_1\",41)',\n vr: \"SL\",\n name: \"PatientFlags\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"GEMS_GENIE_1\",42)': {\n tag: '(0009,\"GEMS_GENIE_1\",42)',\n vr: \"DA\",\n name: \"PatientCreationDate\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"GEMS_GENIE_1\",43)': {\n tag: '(0009,\"GEMS_GENIE_1\",43)',\n vr: \"TM\",\n name: \"PatientCreationTime\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0011,\"GEMS_GENIE_1\",0a)': {\n tag: '(0011,\"GEMS_GENIE_1\",0a)',\n vr: \"SL\",\n name: \"SeriesType\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0011,\"GEMS_GENIE_1\",0b)': {\n tag: '(0011,\"GEMS_GENIE_1\",0b)',\n vr: \"SL\",\n name: \"EffectiveSeriesDuration\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0011,\"GEMS_GENIE_1\",0c)': {\n tag: '(0011,\"GEMS_GENIE_1\",0c)',\n vr: \"SL\",\n name: \"NumBeats\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0011,\"GEMS_GENIE_1\",0d)': {\n tag: '(0011,\"GEMS_GENIE_1\",0d)',\n vr: \"LO\",\n name: \"RadioNuclideName\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0011,\"GEMS_GENIE_1\",10)': {\n tag: '(0011,\"GEMS_GENIE_1\",10)',\n vr: \"LO\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0011,\"GEMS_GENIE_1\",12)': {\n tag: '(0011,\"GEMS_GENIE_1\",12)',\n vr: \"LO\",\n name: \"DatasetName\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0011,\"GEMS_GENIE_1\",13)': {\n tag: '(0011,\"GEMS_GENIE_1\",13)',\n vr: \"SL\",\n name: \"DatasetType\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0011,\"GEMS_GENIE_1\",15)': {\n tag: '(0011,\"GEMS_GENIE_1\",15)',\n vr: \"SL\",\n name: \"DetectorNumber\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0011,\"GEMS_GENIE_1\",16)': {\n tag: '(0011,\"GEMS_GENIE_1\",16)',\n vr: \"SL\",\n name: \"EnergyNumber\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0011,\"GEMS_GENIE_1\",17)': {\n tag: '(0011,\"GEMS_GENIE_1\",17)',\n vr: \"SL\",\n name: \"RRIntervalWindowNumber\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0011,\"GEMS_GENIE_1\",18)': {\n tag: '(0011,\"GEMS_GENIE_1\",18)',\n vr: \"SL\",\n name: \"MGBinNumber\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0011,\"GEMS_GENIE_1\",19)': {\n tag: '(0011,\"GEMS_GENIE_1\",19)',\n vr: \"FD\",\n name: \"RadiusOfRotation\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0011,\"GEMS_GENIE_1\",1a)': {\n tag: '(0011,\"GEMS_GENIE_1\",1a)',\n vr: \"SL\",\n name: \"DetectorCountZone\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0011,\"GEMS_GENIE_1\",1b)': {\n tag: '(0011,\"GEMS_GENIE_1\",1b)',\n vr: \"SL\",\n name: \"NumEnergyWindows\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0011,\"GEMS_GENIE_1\",1c)': {\n tag: '(0011,\"GEMS_GENIE_1\",1c)',\n vr: \"SL\",\n name: \"EnergyOffset\",\n vm: \"4\",\n version: \"PrivateTag\"\n },\n '(0011,\"GEMS_GENIE_1\",1d)': {\n tag: '(0011,\"GEMS_GENIE_1\",1d)',\n vr: \"SL\",\n name: \"EnergyRange\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0011,\"GEMS_GENIE_1\",1f)': {\n tag: '(0011,\"GEMS_GENIE_1\",1f)',\n vr: \"SL\",\n name: \"ImageOrientation\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0011,\"GEMS_GENIE_1\",23)': {\n tag: '(0011,\"GEMS_GENIE_1\",23)',\n vr: \"SL\",\n name: \"UseFOVMask\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0011,\"GEMS_GENIE_1\",24)': {\n tag: '(0011,\"GEMS_GENIE_1\",24)',\n vr: \"SL\",\n name: \"FOVMaskYCutoffAngle\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0011,\"GEMS_GENIE_1\",25)': {\n tag: '(0011,\"GEMS_GENIE_1\",25)',\n vr: \"SL\",\n name: \"FOVMaskCutoffAngle\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0011,\"GEMS_GENIE_1\",26)': {\n tag: '(0011,\"GEMS_GENIE_1\",26)',\n vr: \"SL\",\n name: \"TableOrientation\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0011,\"GEMS_GENIE_1\",27)': {\n tag: '(0011,\"GEMS_GENIE_1\",27)',\n vr: \"SL\",\n name: \"ROITopLeft\",\n vm: \"2\",\n version: \"PrivateTag\"\n },\n '(0011,\"GEMS_GENIE_1\",28)': {\n tag: '(0011,\"GEMS_GENIE_1\",28)',\n vr: \"SL\",\n name: \"ROIBottomRight\",\n vm: \"2\",\n version: \"PrivateTag\"\n },\n '(0011,\"GEMS_GENIE_1\",30)': {\n tag: '(0011,\"GEMS_GENIE_1\",30)',\n vr: \"LO\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0011,\"GEMS_GENIE_1\",33)': {\n tag: '(0011,\"GEMS_GENIE_1\",33)',\n vr: \"LO\",\n name: \"EnergyCorrectName\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0011,\"GEMS_GENIE_1\",34)': {\n tag: '(0011,\"GEMS_GENIE_1\",34)',\n vr: \"LO\",\n name: \"SpatialCorrectName\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0011,\"GEMS_GENIE_1\",35)': {\n tag: '(0011,\"GEMS_GENIE_1\",35)',\n vr: \"LO\",\n name: \"TuningCalibName\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0011,\"GEMS_GENIE_1\",36)': {\n tag: '(0011,\"GEMS_GENIE_1\",36)',\n vr: \"LO\",\n name: \"UniformityCorrectName\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0011,\"GEMS_GENIE_1\",37)': {\n tag: '(0011,\"GEMS_GENIE_1\",37)',\n vr: \"LO\",\n name: \"AcquisitionSpecificCorrectName\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0011,\"GEMS_GENIE_1\",38)': {\n tag: '(0011,\"GEMS_GENIE_1\",38)',\n vr: \"SL\",\n name: \"ByteOrder\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0011,\"GEMS_GENIE_1\",3a)': {\n tag: '(0011,\"GEMS_GENIE_1\",3a)',\n vr: \"SL\",\n name: \"PictureFormat\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0011,\"GEMS_GENIE_1\",3b)': {\n tag: '(0011,\"GEMS_GENIE_1\",3b)',\n vr: \"FD\",\n name: \"PixelScale\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0011,\"GEMS_GENIE_1\",3c)': {\n tag: '(0011,\"GEMS_GENIE_1\",3c)',\n vr: \"FD\",\n name: \"PixelOffset\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0011,\"GEMS_GENIE_1\",3e)': {\n tag: '(0011,\"GEMS_GENIE_1\",3e)',\n vr: \"SL\",\n name: \"FOVShape\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0011,\"GEMS_GENIE_1\",3f)': {\n tag: '(0011,\"GEMS_GENIE_1\",3f)',\n vr: \"SL\",\n name: \"DatasetFlags\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0011,\"GEMS_GENIE_1\",44)': {\n tag: '(0011,\"GEMS_GENIE_1\",44)',\n vr: \"FD\",\n name: \"ThresholdCenter\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0011,\"GEMS_GENIE_1\",45)': {\n tag: '(0011,\"GEMS_GENIE_1\",45)',\n vr: \"FD\",\n name: \"ThresholdWidth\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0011,\"GEMS_GENIE_1\",46)': {\n tag: '(0011,\"GEMS_GENIE_1\",46)',\n vr: \"SL\",\n name: \"InterpolationType\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0011,\"GEMS_GENIE_1\",55)': {\n tag: '(0011,\"GEMS_GENIE_1\",55)',\n vr: \"FD\",\n name: \"Period\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0011,\"GEMS_GENIE_1\",56)': {\n tag: '(0011,\"GEMS_GENIE_1\",56)',\n vr: \"FD\",\n name: \"ElapsedTime\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0013,\"GEMS_GENIE_1\",10)': {\n tag: '(0013,\"GEMS_GENIE_1\",10)',\n vr: \"FD\",\n name: \"DigitalFOV\",\n vm: \"2\",\n version: \"PrivateTag\"\n },\n '(0013,\"GEMS_GENIE_1\",11)': {\n tag: '(0013,\"GEMS_GENIE_1\",11)',\n vr: \"SL\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0013,\"GEMS_GENIE_1\",12)': {\n tag: '(0013,\"GEMS_GENIE_1\",12)',\n vr: \"SL\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0013,\"GEMS_GENIE_1\",16)': {\n tag: '(0013,\"GEMS_GENIE_1\",16)',\n vr: \"SL\",\n name: \"AutoTrackPeak\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0013,\"GEMS_GENIE_1\",17)': {\n tag: '(0013,\"GEMS_GENIE_1\",17)',\n vr: \"SL\",\n name: \"AutoTrackWidth\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0013,\"GEMS_GENIE_1\",18)': {\n tag: '(0013,\"GEMS_GENIE_1\",18)',\n vr: \"FD\",\n name: \"TransmissionScanTime\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0013,\"GEMS_GENIE_1\",19)': {\n tag: '(0013,\"GEMS_GENIE_1\",19)',\n vr: \"FD\",\n name: \"TransmissionMaskWidth\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0013,\"GEMS_GENIE_1\",1a)': {\n tag: '(0013,\"GEMS_GENIE_1\",1a)',\n vr: \"FD\",\n name: \"CopperAttenuatorThickness\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0013,\"GEMS_GENIE_1\",1c)': {\n tag: '(0013,\"GEMS_GENIE_1\",1c)',\n vr: \"FD\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0013,\"GEMS_GENIE_1\",1d)': {\n tag: '(0013,\"GEMS_GENIE_1\",1d)',\n vr: \"FD\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0013,\"GEMS_GENIE_1\",1e)': {\n tag: '(0013,\"GEMS_GENIE_1\",1e)',\n vr: \"FD\",\n name: \"TomoViewOffset\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0013,\"GEMS_GENIE_1\",26)': {\n tag: '(0013,\"GEMS_GENIE_1\",26)',\n vr: \"LT\",\n name: \"StudyComments\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0033,\"GEMS_GNHD_01\",01)': {\n tag: '(0033,\"GEMS_GNHD_01\",01)',\n vr: \"UN\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0033,\"GEMS_GNHD_01\",02)': {\n tag: '(0033,\"GEMS_GNHD_01\",02)',\n vr: \"UN\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"GEMS_IDEN_01\",01)': {\n tag: '(0009,\"GEMS_IDEN_01\",01)',\n vr: \"LO\",\n name: \"FullFidelity\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"GEMS_IDEN_01\",02)': {\n tag: '(0009,\"GEMS_IDEN_01\",02)',\n vr: \"SH\",\n name: \"SuiteId\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"GEMS_IDEN_01\",04)': {\n tag: '(0009,\"GEMS_IDEN_01\",04)',\n vr: \"SH\",\n name: \"ProductId\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"GEMS_IDEN_01\",17)': {\n tag: '(0009,\"GEMS_IDEN_01\",17)',\n vr: \"LT\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"GEMS_IDEN_01\",1a)': {\n tag: '(0009,\"GEMS_IDEN_01\",1a)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"GEMS_IDEN_01\",20)': {\n tag: '(0009,\"GEMS_IDEN_01\",20)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"GEMS_IDEN_01\",27)': {\n tag: '(0009,\"GEMS_IDEN_01\",27)',\n vr: \"SL\",\n name: \"ImageActualDate\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"GEMS_IDEN_01\",2f)': {\n tag: '(0009,\"GEMS_IDEN_01\",2f)',\n vr: \"LT\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"GEMS_IDEN_01\",30)': {\n tag: '(0009,\"GEMS_IDEN_01\",30)',\n vr: \"SH\",\n name: \"ServiceId\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"GEMS_IDEN_01\",31)': {\n tag: '(0009,\"GEMS_IDEN_01\",31)',\n vr: \"SH\",\n name: \"MobileLocationNumber\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"GEMS_IDEN_01\",e2)': {\n tag: '(0009,\"GEMS_IDEN_01\",e2)',\n vr: \"LT\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"GEMS_IDEN_01\",e3)': {\n tag: '(0009,\"GEMS_IDEN_01\",e3)',\n vr: \"UI\",\n name: \"EquipmentUID\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"GEMS_IDEN_01\",e6)': {\n tag: '(0009,\"GEMS_IDEN_01\",e6)',\n vr: \"SH\",\n name: \"GenesisVersionNow\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"GEMS_IDEN_01\",e7)': {\n tag: '(0009,\"GEMS_IDEN_01\",e7)',\n vr: \"UL\",\n name: \"ExamRecordChecksum\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"GEMS_IDEN_01\",e8)': {\n tag: '(0009,\"GEMS_IDEN_01\",e8)',\n vr: \"UL\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"GEMS_IDEN_01\",e9)': {\n tag: '(0009,\"GEMS_IDEN_01\",e9)',\n vr: \"SL\",\n name: \"ActualSeriesDataTimeStamp\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0027,\"GEMS_IMAG_01\",06)': {\n tag: '(0027,\"GEMS_IMAG_01\",06)',\n vr: \"SL\",\n name: \"ImageArchiveFlag\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0027,\"GEMS_IMAG_01\",10)': {\n tag: '(0027,\"GEMS_IMAG_01\",10)',\n vr: \"SS\",\n name: \"ScoutType\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0027,\"GEMS_IMAG_01\",1c)': {\n tag: '(0027,\"GEMS_IMAG_01\",1c)',\n vr: \"SL\",\n name: \"VmaMamp\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0027,\"GEMS_IMAG_01\",1d)': {\n tag: '(0027,\"GEMS_IMAG_01\",1d)',\n vr: \"SS\",\n name: \"VmaPhase\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0027,\"GEMS_IMAG_01\",1e)': {\n tag: '(0027,\"GEMS_IMAG_01\",1e)',\n vr: \"SL\",\n name: \"VmaMod\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0027,\"GEMS_IMAG_01\",1f)': {\n tag: '(0027,\"GEMS_IMAG_01\",1f)',\n vr: \"SL\",\n name: \"VmaClip\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0027,\"GEMS_IMAG_01\",20)': {\n tag: '(0027,\"GEMS_IMAG_01\",20)',\n vr: \"SS\",\n name: \"SmartScanOnOffFlag\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0027,\"GEMS_IMAG_01\",30)': {\n tag: '(0027,\"GEMS_IMAG_01\",30)',\n vr: \"SH\",\n name: \"ForeignImageRevision\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0027,\"GEMS_IMAG_01\",31)': {\n tag: '(0027,\"GEMS_IMAG_01\",31)',\n vr: \"SS\",\n name: \"ImagingMode\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0027,\"GEMS_IMAG_01\",32)': {\n tag: '(0027,\"GEMS_IMAG_01\",32)',\n vr: \"SS\",\n name: \"PulseSequence\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0027,\"GEMS_IMAG_01\",33)': {\n tag: '(0027,\"GEMS_IMAG_01\",33)',\n vr: \"SL\",\n name: \"ImagingOptions\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0027,\"GEMS_IMAG_01\",35)': {\n tag: '(0027,\"GEMS_IMAG_01\",35)',\n vr: \"SS\",\n name: \"PlaneType\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0027,\"GEMS_IMAG_01\",36)': {\n tag: '(0027,\"GEMS_IMAG_01\",36)',\n vr: \"SL\",\n name: \"ObliquePlane\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0027,\"GEMS_IMAG_01\",40)': {\n tag: '(0027,\"GEMS_IMAG_01\",40)',\n vr: \"SH\",\n name: \"RASLetterOfImageLocation\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0027,\"GEMS_IMAG_01\",41)': {\n tag: '(0027,\"GEMS_IMAG_01\",41)',\n vr: \"FL\",\n name: \"ImageLocation\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0027,\"GEMS_IMAG_01\",42)': {\n tag: '(0027,\"GEMS_IMAG_01\",42)',\n vr: \"FL\",\n name: \"CenterRCoordOfPlaneImage\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0027,\"GEMS_IMAG_01\",43)': {\n tag: '(0027,\"GEMS_IMAG_01\",43)',\n vr: \"FL\",\n name: \"CenterACoordOfPlaneImage\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0027,\"GEMS_IMAG_01\",44)': {\n tag: '(0027,\"GEMS_IMAG_01\",44)',\n vr: \"FL\",\n name: \"CenterSCoordOfPlaneImage\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0027,\"GEMS_IMAG_01\",45)': {\n tag: '(0027,\"GEMS_IMAG_01\",45)',\n vr: \"FL\",\n name: \"NormalRCoord\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0027,\"GEMS_IMAG_01\",46)': {\n tag: '(0027,\"GEMS_IMAG_01\",46)',\n vr: \"FL\",\n name: \"NormalACoord\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0027,\"GEMS_IMAG_01\",47)': {\n tag: '(0027,\"GEMS_IMAG_01\",47)',\n vr: \"FL\",\n name: \"NormalSCoord\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0027,\"GEMS_IMAG_01\",48)': {\n tag: '(0027,\"GEMS_IMAG_01\",48)',\n vr: \"FL\",\n name: \"RCoordOfTopRightCorner\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0027,\"GEMS_IMAG_01\",49)': {\n tag: '(0027,\"GEMS_IMAG_01\",49)',\n vr: \"FL\",\n name: \"ACoordOfTopRightCorner\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0027,\"GEMS_IMAG_01\",4a)': {\n tag: '(0027,\"GEMS_IMAG_01\",4a)',\n vr: \"FL\",\n name: \"SCoordOfTopRightCorner\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0027,\"GEMS_IMAG_01\",4b)': {\n tag: '(0027,\"GEMS_IMAG_01\",4b)',\n vr: \"FL\",\n name: \"RCoordOfBottomRightCorner\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0027,\"GEMS_IMAG_01\",4c)': {\n tag: '(0027,\"GEMS_IMAG_01\",4c)',\n vr: \"FL\",\n name: \"ACoordOfBottomRightCorner\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0027,\"GEMS_IMAG_01\",4d)': {\n tag: '(0027,\"GEMS_IMAG_01\",4d)',\n vr: \"FL\",\n name: \"SCoordOfBottomRightCorner\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0027,\"GEMS_IMAG_01\",50)': {\n tag: '(0027,\"GEMS_IMAG_01\",50)',\n vr: \"FL\",\n name: \"TableStartLocation\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0027,\"GEMS_IMAG_01\",51)': {\n tag: '(0027,\"GEMS_IMAG_01\",51)',\n vr: \"FL\",\n name: \"TableEndLocation\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0027,\"GEMS_IMAG_01\",52)': {\n tag: '(0027,\"GEMS_IMAG_01\",52)',\n vr: \"SH\",\n name: \"RASLetterForSideOfImage\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0027,\"GEMS_IMAG_01\",53)': {\n tag: '(0027,\"GEMS_IMAG_01\",53)',\n vr: \"SH\",\n name: \"RASLetterForAnteriorPosterior\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0027,\"GEMS_IMAG_01\",54)': {\n tag: '(0027,\"GEMS_IMAG_01\",54)',\n vr: \"SH\",\n name: \"RASLetterForScoutStartLoc\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0027,\"GEMS_IMAG_01\",55)': {\n tag: '(0027,\"GEMS_IMAG_01\",55)',\n vr: \"SH\",\n name: \"RASLetterForScoutEndLoc\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0027,\"GEMS_IMAG_01\",60)': {\n tag: '(0027,\"GEMS_IMAG_01\",60)',\n vr: \"FL\",\n name: \"ImageDimensionX\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0027,\"GEMS_IMAG_01\",61)': {\n tag: '(0027,\"GEMS_IMAG_01\",61)',\n vr: \"FL\",\n name: \"ImageDimensionY\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0027,\"GEMS_IMAG_01\",62)': {\n tag: '(0027,\"GEMS_IMAG_01\",62)',\n vr: \"FL\",\n name: \"NumberOfExcitations\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"GEMS_IMPS_01\",04)': {\n tag: '(0029,\"GEMS_IMPS_01\",04)',\n vr: \"SL\",\n name: \"LowerRangeOfPixels\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"GEMS_IMPS_01\",05)': {\n tag: '(0029,\"GEMS_IMPS_01\",05)',\n vr: \"DS\",\n name: \"LowerRangeOfPixels\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"GEMS_IMPS_01\",06)': {\n tag: '(0029,\"GEMS_IMPS_01\",06)',\n vr: \"DS\",\n name: \"LowerRangeOfPixels\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"GEMS_IMPS_01\",07)': {\n tag: '(0029,\"GEMS_IMPS_01\",07)',\n vr: \"SL\",\n name: \"LowerRangeOfPixels\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"GEMS_IMPS_01\",08)': {\n tag: '(0029,\"GEMS_IMPS_01\",08)',\n vr: \"SH\",\n name: \"LowerRangeOfPixels\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"GEMS_IMPS_01\",09)': {\n tag: '(0029,\"GEMS_IMPS_01\",09)',\n vr: \"SH\",\n name: \"LowerRangeOfPixels\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"GEMS_IMPS_01\",0a)': {\n tag: '(0029,\"GEMS_IMPS_01\",0a)',\n vr: \"SS\",\n name: \"LowerRangeOfPixels\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"GEMS_IMPS_01\",15)': {\n tag: '(0029,\"GEMS_IMPS_01\",15)',\n vr: \"SL\",\n name: \"LowerRangeOfPixels\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"GEMS_IMPS_01\",16)': {\n tag: '(0029,\"GEMS_IMPS_01\",16)',\n vr: \"SL\",\n name: \"LowerRangeOfPixels\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"GEMS_IMPS_01\",17)': {\n tag: '(0029,\"GEMS_IMPS_01\",17)',\n vr: \"SL\",\n name: \"LowerRangeOfPixels\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"GEMS_IMPS_01\",18)': {\n tag: '(0029,\"GEMS_IMPS_01\",18)',\n vr: \"SL\",\n name: \"UpperRangeOfPixels\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"GEMS_IMPS_01\",1a)': {\n tag: '(0029,\"GEMS_IMPS_01\",1a)',\n vr: \"SL\",\n name: \"LengthOfTotalHeaderInBytes\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"GEMS_IMPS_01\",26)': {\n tag: '(0029,\"GEMS_IMPS_01\",26)',\n vr: \"SS\",\n name: \"VersionOfHeaderStructure\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"GEMS_IMPS_01\",34)': {\n tag: '(0029,\"GEMS_IMPS_01\",34)',\n vr: \"SL\",\n name: \"AdvantageCompOverflow\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"GEMS_IMPS_01\",35)': {\n tag: '(0029,\"GEMS_IMPS_01\",35)',\n vr: \"SL\",\n name: \"AdvantageCompUnderflow\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",01)': {\n tag: '(0043,\"GEMS_PARM_01\",01)',\n vr: \"SS\",\n name: \"BitmapOfPrescanOptions\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",02)': {\n tag: '(0043,\"GEMS_PARM_01\",02)',\n vr: \"SS\",\n name: \"GradientOffsetInX\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",03)': {\n tag: '(0043,\"GEMS_PARM_01\",03)',\n vr: \"SS\",\n name: \"GradientOffsetInY\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",04)': {\n tag: '(0043,\"GEMS_PARM_01\",04)',\n vr: \"SS\",\n name: \"GradientOffsetInZ\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",05)': {\n tag: '(0043,\"GEMS_PARM_01\",05)',\n vr: \"SS\",\n name: \"ImageIsOriginalOrUnoriginal\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",06)': {\n tag: '(0043,\"GEMS_PARM_01\",06)',\n vr: \"SS\",\n name: \"NumberOfEPIShots\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",07)': {\n tag: '(0043,\"GEMS_PARM_01\",07)',\n vr: \"SS\",\n name: \"ViewsPerSegment\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",08)': {\n tag: '(0043,\"GEMS_PARM_01\",08)',\n vr: \"SS\",\n name: \"RespiratoryRateInBPM\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",09)': {\n tag: '(0043,\"GEMS_PARM_01\",09)',\n vr: \"SS\",\n name: \"RespiratoryTriggerPoint\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",0a)': {\n tag: '(0043,\"GEMS_PARM_01\",0a)',\n vr: \"SS\",\n name: \"TypeOfReceiverUsed\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",0b)': {\n tag: '(0043,\"GEMS_PARM_01\",0b)',\n vr: \"DS\",\n name: \"PeakRateOfChangeOfGradientField\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",0c)': {\n tag: '(0043,\"GEMS_PARM_01\",0c)',\n vr: \"DS\",\n name: \"LimitsInUnitsOfPercent\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",0d)': {\n tag: '(0043,\"GEMS_PARM_01\",0d)',\n vr: \"DS\",\n name: \"PSDEstimatedLimit\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",0e)': {\n tag: '(0043,\"GEMS_PARM_01\",0e)',\n vr: \"DS\",\n name: \"PSDEstimatedLimitInTeslaPerSecond\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",0f)': {\n tag: '(0043,\"GEMS_PARM_01\",0f)',\n vr: \"DS\",\n name: \"SARAvgHead\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",10)': {\n tag: '(0043,\"GEMS_PARM_01\",10)',\n vr: \"US\",\n name: \"WindowValue\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",11)': {\n tag: '(0043,\"GEMS_PARM_01\",11)',\n vr: \"US\",\n name: \"TotalInputViews\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",12)': {\n tag: '(0043,\"GEMS_PARM_01\",12)',\n vr: \"SS\",\n name: \"XrayChain\",\n vm: \"3\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",13)': {\n tag: '(0043,\"GEMS_PARM_01\",13)',\n vr: \"SS\",\n name: \"ReconKernelParameters\",\n vm: \"5\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",14)': {\n tag: '(0043,\"GEMS_PARM_01\",14)',\n vr: \"SS\",\n name: \"CalibrationParameters\",\n vm: \"3\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",15)': {\n tag: '(0043,\"GEMS_PARM_01\",15)',\n vr: \"SS\",\n name: \"TotalOutputViews\",\n vm: \"3\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",16)': {\n tag: '(0043,\"GEMS_PARM_01\",16)',\n vr: \"SS\",\n name: \"NumberOfOverranges\",\n vm: \"5\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",17)': {\n tag: '(0043,\"GEMS_PARM_01\",17)',\n vr: \"DS\",\n name: \"IBHImageScaleFactors\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",18)': {\n tag: '(0043,\"GEMS_PARM_01\",18)',\n vr: \"DS\",\n name: \"BBHCoefficients\",\n vm: \"3\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",19)': {\n tag: '(0043,\"GEMS_PARM_01\",19)',\n vr: \"SS\",\n name: \"NumberOfBBHChainsToBlend\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",1a)': {\n tag: '(0043,\"GEMS_PARM_01\",1a)',\n vr: \"SL\",\n name: \"StartingChannelNumber\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",1b)': {\n tag: '(0043,\"GEMS_PARM_01\",1b)',\n vr: \"SS\",\n name: \"PPScanParameters\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",1c)': {\n tag: '(0043,\"GEMS_PARM_01\",1c)',\n vr: \"SS\",\n name: \"GEImageIntegrity\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",1d)': {\n tag: '(0043,\"GEMS_PARM_01\",1d)',\n vr: \"SS\",\n name: \"LevelValue\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",1e)': {\n tag: '(0043,\"GEMS_PARM_01\",1e)',\n vr: \"DS\",\n name: \"DeltaStartTime\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",1f)': {\n tag: '(0043,\"GEMS_PARM_01\",1f)',\n vr: \"SL\",\n name: \"MaxOverrangesInAView\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",20)': {\n tag: '(0043,\"GEMS_PARM_01\",20)',\n vr: \"DS\",\n name: \"AvgOverrangesAllViews\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",21)': {\n tag: '(0043,\"GEMS_PARM_01\",21)',\n vr: \"SS\",\n name: \"CorrectedAfterglowTerms\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",25)': {\n tag: '(0043,\"GEMS_PARM_01\",25)',\n vr: \"SS\",\n name: \"ReferenceChannels\",\n vm: \"6\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",26)': {\n tag: '(0043,\"GEMS_PARM_01\",26)',\n vr: \"US\",\n name: \"NoViewsRefChannelsBlocked\",\n vm: \"6\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",27)': {\n tag: '(0043,\"GEMS_PARM_01\",27)',\n vr: \"SH\",\n name: \"ScanPitchRatio\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",28)': {\n tag: '(0043,\"GEMS_PARM_01\",28)',\n vr: \"OB\",\n name: \"UniqueImageIdentifier\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",29)': {\n tag: '(0043,\"GEMS_PARM_01\",29)',\n vr: \"OB\",\n name: \"HistogramTables\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",2a)': {\n tag: '(0043,\"GEMS_PARM_01\",2a)',\n vr: \"OB\",\n name: \"UserDefinedData\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",2b)': {\n tag: '(0043,\"GEMS_PARM_01\",2b)',\n vr: \"SS\",\n name: \"PrivateScanOptions\",\n vm: \"4\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",2c)': {\n tag: '(0043,\"GEMS_PARM_01\",2c)',\n vr: \"SS\",\n name: \"EffectiveEchoSpacing\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",2d)': {\n tag: '(0043,\"GEMS_PARM_01\",2d)',\n vr: \"SH\",\n name: \"StringSlopField1\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",2e)': {\n tag: '(0043,\"GEMS_PARM_01\",2e)',\n vr: \"SH\",\n name: \"StringSlopField2\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",2f)': {\n tag: '(0043,\"GEMS_PARM_01\",2f)',\n vr: \"SS\",\n name: \"RawDataType\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",30)': {\n tag: '(0043,\"GEMS_PARM_01\",30)',\n vr: \"SS\",\n name: \"RawDataType\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",31)': {\n tag: '(0043,\"GEMS_PARM_01\",31)',\n vr: \"DS\",\n name: \"RACoordOfTargetReconCentre\",\n vm: \"2\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",32)': {\n tag: '(0043,\"GEMS_PARM_01\",32)',\n vr: \"SS\",\n name: \"RawDataType\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",33)': {\n tag: '(0043,\"GEMS_PARM_01\",33)',\n vr: \"FL\",\n name: \"NegScanSpacing\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",34)': {\n tag: '(0043,\"GEMS_PARM_01\",34)',\n vr: \"IS\",\n name: \"OffsetFrequency\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",35)': {\n tag: '(0043,\"GEMS_PARM_01\",35)',\n vr: \"UL\",\n name: \"UserUsageTag\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",36)': {\n tag: '(0043,\"GEMS_PARM_01\",36)',\n vr: \"UL\",\n name: \"UserFillMapMSW\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",37)': {\n tag: '(0043,\"GEMS_PARM_01\",37)',\n vr: \"UL\",\n name: \"UserFillMapLSW\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",38)': {\n tag: '(0043,\"GEMS_PARM_01\",38)',\n vr: \"FL\",\n name: \"User25ToUser48\",\n vm: \"24\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",39)': {\n tag: '(0043,\"GEMS_PARM_01\",39)',\n vr: \"IS\",\n name: \"SlopInteger6ToSlopInteger9\",\n vm: \"4\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",40)': {\n tag: '(0043,\"GEMS_PARM_01\",40)',\n vr: \"FL\",\n name: \"TriggerOnPosition\",\n vm: \"4\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",41)': {\n tag: '(0043,\"GEMS_PARM_01\",41)',\n vr: \"FL\",\n name: \"DegreeOfRotation\",\n vm: \"4\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",42)': {\n tag: '(0043,\"GEMS_PARM_01\",42)',\n vr: \"SL\",\n name: \"DASTriggerSource\",\n vm: \"4\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",43)': {\n tag: '(0043,\"GEMS_PARM_01\",43)',\n vr: \"SL\",\n name: \"DASFpaGain\",\n vm: \"4\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",44)': {\n tag: '(0043,\"GEMS_PARM_01\",44)',\n vr: \"SL\",\n name: \"DASOutputSource\",\n vm: \"4\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",45)': {\n tag: '(0043,\"GEMS_PARM_01\",45)',\n vr: \"SL\",\n name: \"DASAdInput\",\n vm: \"4\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",46)': {\n tag: '(0043,\"GEMS_PARM_01\",46)',\n vr: \"SL\",\n name: \"DASCalMode\",\n vm: \"4\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",47)': {\n tag: '(0043,\"GEMS_PARM_01\",47)',\n vr: \"SL\",\n name: \"DASCalFrequency\",\n vm: \"4\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",48)': {\n tag: '(0043,\"GEMS_PARM_01\",48)',\n vr: \"SL\",\n name: \"DASRegXm\",\n vm: \"4\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",49)': {\n tag: '(0043,\"GEMS_PARM_01\",49)',\n vr: \"SL\",\n name: \"DASAutoZero\",\n vm: \"4\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",4a)': {\n tag: '(0043,\"GEMS_PARM_01\",4a)',\n vr: \"SS\",\n name: \"StartingChannelOfView\",\n vm: \"4\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",4b)': {\n tag: '(0043,\"GEMS_PARM_01\",4b)',\n vr: \"SL\",\n name: \"DASXmPattern\",\n vm: \"4\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",4c)': {\n tag: '(0043,\"GEMS_PARM_01\",4c)',\n vr: \"SS\",\n name: \"TGGCTriggerMode\",\n vm: \"4\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",4d)': {\n tag: '(0043,\"GEMS_PARM_01\",4d)',\n vr: \"FL\",\n name: \"StartScanToXrayOnDelay\",\n vm: \"4\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",4e)': {\n tag: '(0043,\"GEMS_PARM_01\",4e)',\n vr: \"FL\",\n name: \"DurationOfXrayOn\",\n vm: \"4\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",60)': {\n tag: '(0043,\"GEMS_PARM_01\",60)',\n vr: \"IS\",\n name: \"SlopInteger10ToSlopInteger17\",\n vm: \"8\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",61)': {\n tag: '(0043,\"GEMS_PARM_01\",61)',\n vr: \"UI\",\n name: \"ScannerStudyEntityUID\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",62)': {\n tag: '(0043,\"GEMS_PARM_01\",62)',\n vr: \"SH\",\n name: \"ScannerStudyID\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",6f)': {\n tag: '(0043,\"GEMS_PARM_01\",6f)',\n vr: \"DS\",\n name: \"ScannerTableEntry\",\n vm: \"3\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",70)': {\n tag: '(0043,\"GEMS_PARM_01\",70)',\n vr: \"LO\",\n name: \"ParadigmName\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",71)': {\n tag: '(0043,\"GEMS_PARM_01\",71)',\n vr: \"ST\",\n name: \"ParadigmDescription\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",72)': {\n tag: '(0043,\"GEMS_PARM_01\",72)',\n vr: \"UI\",\n name: \"ParadigmUID\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",73)': {\n tag: '(0043,\"GEMS_PARM_01\",73)',\n vr: \"US\",\n name: \"ExperimentType\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",74)': {\n tag: '(0043,\"GEMS_PARM_01\",74)',\n vr: \"US\",\n name: \"NumberOfRestVolumes\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",75)': {\n tag: '(0043,\"GEMS_PARM_01\",75)',\n vr: \"US\",\n name: \"NumberOfActiveVolumes\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",76)': {\n tag: '(0043,\"GEMS_PARM_01\",76)',\n vr: \"US\",\n name: \"NumberOfDummyScans\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",77)': {\n tag: '(0043,\"GEMS_PARM_01\",77)',\n vr: \"SH\",\n name: \"ApplicationName\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",78)': {\n tag: '(0043,\"GEMS_PARM_01\",78)',\n vr: \"SH\",\n name: \"ApplicationVersion\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",79)': {\n tag: '(0043,\"GEMS_PARM_01\",79)',\n vr: \"US\",\n name: \"SlicesPerVolume\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",7a)': {\n tag: '(0043,\"GEMS_PARM_01\",7a)',\n vr: \"US\",\n name: \"ExpectedTimePoints\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",7b)': {\n tag: '(0043,\"GEMS_PARM_01\",7b)',\n vr: \"FL\",\n name: \"RegressorValues\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",7c)': {\n tag: '(0043,\"GEMS_PARM_01\",7c)',\n vr: \"FL\",\n name: \"DelayAfterSliceGroup\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",7d)': {\n tag: '(0043,\"GEMS_PARM_01\",7d)',\n vr: \"US\",\n name: \"ReconModeFlagWord\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",7e)': {\n tag: '(0043,\"GEMS_PARM_01\",7e)',\n vr: \"LO\",\n name: \"PACCSpecificInformation\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",7f)': {\n tag: '(0043,\"GEMS_PARM_01\",7f)',\n vr: \"DS\",\n name: \"EDWIScaleFactor\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",80)': {\n tag: '(0043,\"GEMS_PARM_01\",80)',\n vr: \"LO\",\n name: \"CoilIDData\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",81)': {\n tag: '(0043,\"GEMS_PARM_01\",81)',\n vr: \"LO\",\n name: \"GECoilName\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",82)': {\n tag: '(0043,\"GEMS_PARM_01\",82)',\n vr: \"LO\",\n name: \"SystemConfigurationInformation\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",83)': {\n tag: '(0043,\"GEMS_PARM_01\",83)',\n vr: \"DS\",\n name: \"AssetRFactors\",\n vm: \"1-2\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",84)': {\n tag: '(0043,\"GEMS_PARM_01\",84)',\n vr: \"LO\",\n name: \"AdditionalAssetData\",\n vm: \"5-n\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",85)': {\n tag: '(0043,\"GEMS_PARM_01\",85)',\n vr: \"UT\",\n name: \"DebugDataTextFormat\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",86)': {\n tag: '(0043,\"GEMS_PARM_01\",86)',\n vr: \"OB\",\n name: \"DebugDataBinaryFormat\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",87)': {\n tag: '(0043,\"GEMS_PARM_01\",87)',\n vr: \"UT\",\n name: \"ScannerSoftwareVersionLongForm\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",88)': {\n tag: '(0043,\"GEMS_PARM_01\",88)',\n vr: \"UI\",\n name: \"PUREAcquisitionCalibrationSeriesUID\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",89)': {\n tag: '(0043,\"GEMS_PARM_01\",89)',\n vr: \"LO\",\n name: \"GoverningBodydBdtAndSARDefinition\",\n vm: \"3\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",8a)': {\n tag: '(0043,\"GEMS_PARM_01\",8a)',\n vr: \"CS\",\n name: \"PrivateInPlanePhaseEncodingDirection\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",8b)': {\n tag: '(0043,\"GEMS_PARM_01\",8b)',\n vr: \"OB\",\n name: \"FMRIBinaryDataBlock\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",8c)': {\n tag: '(0043,\"GEMS_PARM_01\",8c)',\n vr: \"DS\",\n name: \"VoxelLocation\",\n vm: \"6\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",8d)': {\n tag: '(0043,\"GEMS_PARM_01\",8d)',\n vr: \"DS\",\n name: \"SATBandLocations\",\n vm: \"7-7n\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",8e)': {\n tag: '(0043,\"GEMS_PARM_01\",8e)',\n vr: \"DS\",\n name: \"SpectroPrescanValues\",\n vm: \"3\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",8f)': {\n tag: '(0043,\"GEMS_PARM_01\",8f)',\n vr: \"DS\",\n name: \"SpectroParameters\",\n vm: \"3\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",90)': {\n tag: '(0043,\"GEMS_PARM_01\",90)',\n vr: \"LO\",\n name: \"SARDefinition\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",91)': {\n tag: '(0043,\"GEMS_PARM_01\",91)',\n vr: \"DS\",\n name: \"SARValue\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",92)': {\n tag: '(0043,\"GEMS_PARM_01\",92)',\n vr: \"LO\",\n name: \"ImageErrorText\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",93)': {\n tag: '(0043,\"GEMS_PARM_01\",93)',\n vr: \"DS\",\n name: \"SpectroQuantitationValues\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",94)': {\n tag: '(0043,\"GEMS_PARM_01\",94)',\n vr: \"DS\",\n name: \"SpectroRatioValues\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",95)': {\n tag: '(0043,\"GEMS_PARM_01\",95)',\n vr: \"LO\",\n name: \"PrescanReuseString\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",96)': {\n tag: '(0043,\"GEMS_PARM_01\",96)',\n vr: \"CS\",\n name: \"ContentQualification\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",97)': {\n tag: '(0043,\"GEMS_PARM_01\",97)',\n vr: \"LO\",\n name: \"ImageFilteringParameters\",\n vm: \"9\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",98)': {\n tag: '(0043,\"GEMS_PARM_01\",98)',\n vr: \"UI\",\n name: \"ASSETAcquisitionCalibrationSeriesUID\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",99)': {\n tag: '(0043,\"GEMS_PARM_01\",99)',\n vr: \"LO\",\n name: \"ExtendedOptions\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",9a)': {\n tag: '(0043,\"GEMS_PARM_01\",9a)',\n vr: \"IS\",\n name: \"RxStackIdentification\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",9b)': {\n tag: '(0043,\"GEMS_PARM_01\",9b)',\n vr: \"DS\",\n name: \"NPWFactor\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",9c)': {\n tag: '(0043,\"GEMS_PARM_01\",9c)',\n vr: \"OB\",\n name: \"ResearchTag1\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",9d)': {\n tag: '(0043,\"GEMS_PARM_01\",9d)',\n vr: \"OB\",\n name: \"ResearchTag2\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",9e)': {\n tag: '(0043,\"GEMS_PARM_01\",9e)',\n vr: \"OB\",\n name: \"ResearchTag3\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0043,\"GEMS_PARM_01\",9f)': {\n tag: '(0043,\"GEMS_PARM_01\",9f)',\n vr: \"OB\",\n name: \"ResearchTag4\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0011,\"GEMS_PATI_01\",10)': {\n tag: '(0011,\"GEMS_PATI_01\",10)',\n vr: \"SS\",\n name: \"PatientStatus\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"GEMS_RELA_01\",03)': {\n tag: '(0021,\"GEMS_RELA_01\",03)',\n vr: \"SS\",\n name: \"SeriesFromWhichPrescribed\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"GEMS_RELA_01\",05)': {\n tag: '(0021,\"GEMS_RELA_01\",05)',\n vr: \"SH\",\n name: \"GenesisVersionNow\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"GEMS_RELA_01\",07)': {\n tag: '(0021,\"GEMS_RELA_01\",07)',\n vr: \"UL\",\n name: \"SeriesRecordChecksum\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"GEMS_RELA_01\",15)': {\n tag: '(0021,\"GEMS_RELA_01\",15)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"GEMS_RELA_01\",16)': {\n tag: '(0021,\"GEMS_RELA_01\",16)',\n vr: \"SS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"GEMS_RELA_01\",18)': {\n tag: '(0021,\"GEMS_RELA_01\",18)',\n vr: \"SH\",\n name: \"GenesisVersionNow\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"GEMS_RELA_01\",19)': {\n tag: '(0021,\"GEMS_RELA_01\",19)',\n vr: \"UL\",\n name: \"AcqReconRecordChecksum\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"GEMS_RELA_01\",20)': {\n tag: '(0021,\"GEMS_RELA_01\",20)',\n vr: \"DS\",\n name: \"TableStartLocation\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"GEMS_RELA_01\",35)': {\n tag: '(0021,\"GEMS_RELA_01\",35)',\n vr: \"SS\",\n name: \"SeriesFromWhichPrescribed\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"GEMS_RELA_01\",36)': {\n tag: '(0021,\"GEMS_RELA_01\",36)',\n vr: \"SS\",\n name: \"ImageFromWhichPrescribed\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"GEMS_RELA_01\",37)': {\n tag: '(0021,\"GEMS_RELA_01\",37)',\n vr: \"SS\",\n name: \"ScreenFormat\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"GEMS_RELA_01\",4a)': {\n tag: '(0021,\"GEMS_RELA_01\",4a)',\n vr: \"LO\",\n name: \"AnatomicalReferenceForScout\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"GEMS_RELA_01\",4e)': {\n tag: '(0021,\"GEMS_RELA_01\",4e)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"GEMS_RELA_01\",4f)': {\n tag: '(0021,\"GEMS_RELA_01\",4f)',\n vr: \"SS\",\n name: \"LocationsInAcquisition\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"GEMS_RELA_01\",50)': {\n tag: '(0021,\"GEMS_RELA_01\",50)',\n vr: \"SS\",\n name: \"GraphicallyPrescribed\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"GEMS_RELA_01\",51)': {\n tag: '(0021,\"GEMS_RELA_01\",51)',\n vr: \"DS\",\n name: \"RotationFromSourceXRot\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"GEMS_RELA_01\",52)': {\n tag: '(0021,\"GEMS_RELA_01\",52)',\n vr: \"DS\",\n name: \"RotationFromSourceYRot\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"GEMS_RELA_01\",53)': {\n tag: '(0021,\"GEMS_RELA_01\",53)',\n vr: \"DS\",\n name: \"RotationFromSourceZRot\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"GEMS_RELA_01\",54)': {\n tag: '(0021,\"GEMS_RELA_01\",54)',\n vr: \"SH\",\n name: \"ImagePosition\",\n vm: \"3\",\n version: \"PrivateTag\"\n },\n '(0021,\"GEMS_RELA_01\",55)': {\n tag: '(0021,\"GEMS_RELA_01\",55)',\n vr: \"SH\",\n name: \"ImageOrientation\",\n vm: \"6\",\n version: \"PrivateTag\"\n },\n '(0021,\"GEMS_RELA_01\",56)': {\n tag: '(0021,\"GEMS_RELA_01\",56)',\n vr: \"SL\",\n name: \"IntegerSlop\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"GEMS_RELA_01\",57)': {\n tag: '(0021,\"GEMS_RELA_01\",57)',\n vr: \"SL\",\n name: \"IntegerSlop\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"GEMS_RELA_01\",58)': {\n tag: '(0021,\"GEMS_RELA_01\",58)',\n vr: \"SL\",\n name: \"IntegerSlop\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"GEMS_RELA_01\",59)': {\n tag: '(0021,\"GEMS_RELA_01\",59)',\n vr: \"SL\",\n name: \"IntegerSlop\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"GEMS_RELA_01\",5a)': {\n tag: '(0021,\"GEMS_RELA_01\",5a)',\n vr: \"SL\",\n name: \"IntegerSlop\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"GEMS_RELA_01\",5b)': {\n tag: '(0021,\"GEMS_RELA_01\",5b)',\n vr: \"DS\",\n name: \"FloatSlop\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"GEMS_RELA_01\",5c)': {\n tag: '(0021,\"GEMS_RELA_01\",5c)',\n vr: \"DS\",\n name: \"FloatSlop\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"GEMS_RELA_01\",5d)': {\n tag: '(0021,\"GEMS_RELA_01\",5d)',\n vr: \"DS\",\n name: \"FloatSlop\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"GEMS_RELA_01\",5e)': {\n tag: '(0021,\"GEMS_RELA_01\",5e)',\n vr: \"DS\",\n name: \"FloatSlop\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"GEMS_RELA_01\",5f)': {\n tag: '(0021,\"GEMS_RELA_01\",5f)',\n vr: \"DS\",\n name: \"FloatSlop\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"GEMS_RELA_01\",70)': {\n tag: '(0021,\"GEMS_RELA_01\",70)',\n vr: \"LT\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"GEMS_RELA_01\",71)': {\n tag: '(0021,\"GEMS_RELA_01\",71)',\n vr: \"LT\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"GEMS_RELA_01\",81)': {\n tag: '(0021,\"GEMS_RELA_01\",81)',\n vr: \"DS\",\n name: \"AutoWindowLevelAlpha\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"GEMS_RELA_01\",82)': {\n tag: '(0021,\"GEMS_RELA_01\",82)',\n vr: \"DS\",\n name: \"AutoWindowLevelBeta\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"GEMS_RELA_01\",83)': {\n tag: '(0021,\"GEMS_RELA_01\",83)',\n vr: \"DS\",\n name: \"AutoWindowLevelWindow\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"GEMS_RELA_01\",84)': {\n tag: '(0021,\"GEMS_RELA_01\",84)',\n vr: \"DS\",\n name: \"AutoWindowLevelLevel\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"GEMS_RELA_01\",90)': {\n tag: '(0021,\"GEMS_RELA_01\",90)',\n vr: \"SS\",\n name: \"TubeFocalSpotPosition\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"GEMS_RELA_01\",91)': {\n tag: '(0021,\"GEMS_RELA_01\",91)',\n vr: \"SS\",\n name: \"BiopsyPosition\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"GEMS_RELA_01\",92)': {\n tag: '(0021,\"GEMS_RELA_01\",92)',\n vr: \"FL\",\n name: \"BiopsyTLocation\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"GEMS_RELA_01\",93)': {\n tag: '(0021,\"GEMS_RELA_01\",93)',\n vr: \"FL\",\n name: \"BiopsyRefLocation\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0045,\"GEMS_SENO_02\",04)': {\n tag: '(0045,\"GEMS_SENO_02\",04)',\n vr: \"CS\",\n name: \"AES\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0045,\"GEMS_SENO_02\",06)': {\n tag: '(0045,\"GEMS_SENO_02\",06)',\n vr: \"DS\",\n name: \"Angulation\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0045,\"GEMS_SENO_02\",09)': {\n tag: '(0045,\"GEMS_SENO_02\",09)',\n vr: \"DS\",\n name: \"RealMagnificationFactor\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0045,\"GEMS_SENO_02\",0b)': {\n tag: '(0045,\"GEMS_SENO_02\",0b)',\n vr: \"CS\",\n name: \"SenographType\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0045,\"GEMS_SENO_02\",0c)': {\n tag: '(0045,\"GEMS_SENO_02\",0c)',\n vr: \"DS\",\n name: \"IntegrationTime\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0045,\"GEMS_SENO_02\",0d)': {\n tag: '(0045,\"GEMS_SENO_02\",0d)',\n vr: \"DS\",\n name: \"ROIOriginXY\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0045,\"GEMS_SENO_02\",11)': {\n tag: '(0045,\"GEMS_SENO_02\",11)',\n vr: \"DS\",\n name: \"ReceptorSizeCmXY\",\n vm: \"2\",\n version: \"PrivateTag\"\n },\n '(0045,\"GEMS_SENO_02\",12)': {\n tag: '(0045,\"GEMS_SENO_02\",12)',\n vr: \"IS\",\n name: \"ReceptorSizePixelsXY\",\n vm: \"2\",\n version: \"PrivateTag\"\n },\n '(0045,\"GEMS_SENO_02\",13)': {\n tag: '(0045,\"GEMS_SENO_02\",13)',\n vr: \"ST\",\n name: \"Screen\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0045,\"GEMS_SENO_02\",14)': {\n tag: '(0045,\"GEMS_SENO_02\",14)',\n vr: \"DS\",\n name: \"PixelPitchMicrons\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0045,\"GEMS_SENO_02\",15)': {\n tag: '(0045,\"GEMS_SENO_02\",15)',\n vr: \"IS\",\n name: \"PixelDepthBits\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0045,\"GEMS_SENO_02\",16)': {\n tag: '(0045,\"GEMS_SENO_02\",16)',\n vr: \"IS\",\n name: \"BinningFactorXY\",\n vm: \"2\",\n version: \"PrivateTag\"\n },\n '(0045,\"GEMS_SENO_02\",1B)': {\n tag: '(0045,\"GEMS_SENO_02\",1B)',\n vr: \"CS\",\n name: \"ClinicalView\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0045,\"GEMS_SENO_02\",1D)': {\n tag: '(0045,\"GEMS_SENO_02\",1D)',\n vr: \"DS\",\n name: \"MeanOfRawGrayLevels\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0045,\"GEMS_SENO_02\",1E)': {\n tag: '(0045,\"GEMS_SENO_02\",1E)',\n vr: \"DS\",\n name: \"MeanOfOffsetGrayLevels\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0045,\"GEMS_SENO_02\",1F)': {\n tag: '(0045,\"GEMS_SENO_02\",1F)',\n vr: \"DS\",\n name: \"MeanOfCorrectedGrayLevels\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0045,\"GEMS_SENO_02\",20)': {\n tag: '(0045,\"GEMS_SENO_02\",20)',\n vr: \"DS\",\n name: \"MeanOfRegionGrayLevels\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0045,\"GEMS_SENO_02\",21)': {\n tag: '(0045,\"GEMS_SENO_02\",21)',\n vr: \"DS\",\n name: \"MeanOfLogRegionGrayLevels\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0045,\"GEMS_SENO_02\",22)': {\n tag: '(0045,\"GEMS_SENO_02\",22)',\n vr: \"DS\",\n name: \"StandardDeviationOfRawGrayLevels\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0045,\"GEMS_SENO_02\",23)': {\n tag: '(0045,\"GEMS_SENO_02\",23)',\n vr: \"DS\",\n name: \"StandardDeviationOfCorrectedGrayLevels\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0045,\"GEMS_SENO_02\",24)': {\n tag: '(0045,\"GEMS_SENO_02\",24)',\n vr: \"DS\",\n name: \"StandardDeviationOfRegionGrayLevels\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0045,\"GEMS_SENO_02\",25)': {\n tag: '(0045,\"GEMS_SENO_02\",25)',\n vr: \"DS\",\n name: \"StandardDeviationOfLogRegionGrayLevels\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0045,\"GEMS_SENO_02\",26)': {\n tag: '(0045,\"GEMS_SENO_02\",26)',\n vr: \"OB\",\n name: \"MAOBuffer\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0045,\"GEMS_SENO_02\",27)': {\n tag: '(0045,\"GEMS_SENO_02\",27)',\n vr: \"IS\",\n name: \"SetNumber\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0045,\"GEMS_SENO_02\",28)': {\n tag: '(0045,\"GEMS_SENO_02\",28)',\n vr: \"CS\",\n name: \"WindowingType\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0045,\"GEMS_SENO_02\",29)': {\n tag: '(0045,\"GEMS_SENO_02\",29)',\n vr: \"DS\",\n name: \"WindowingParameters\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0045,\"GEMS_SENO_02\",2a)': {\n tag: '(0045,\"GEMS_SENO_02\",2a)',\n vr: \"IS\",\n name: \"CrosshairCursorXCoordinates\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0045,\"GEMS_SENO_02\",2b)': {\n tag: '(0045,\"GEMS_SENO_02\",2b)',\n vr: \"IS\",\n name: \"CrosshairCursorYCoordinates\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0045,\"GEMS_SENO_02\",39)': {\n tag: '(0045,\"GEMS_SENO_02\",39)',\n vr: \"US\",\n name: \"VignetteRows\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0045,\"GEMS_SENO_02\",3a)': {\n tag: '(0045,\"GEMS_SENO_02\",3a)',\n vr: \"US\",\n name: \"VignetteColumns\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0045,\"GEMS_SENO_02\",3b)': {\n tag: '(0045,\"GEMS_SENO_02\",3b)',\n vr: \"US\",\n name: \"VignetteBitsAllocated\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0045,\"GEMS_SENO_02\",3c)': {\n tag: '(0045,\"GEMS_SENO_02\",3c)',\n vr: \"US\",\n name: \"VignetteBitsStored\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0045,\"GEMS_SENO_02\",3d)': {\n tag: '(0045,\"GEMS_SENO_02\",3d)',\n vr: \"US\",\n name: \"VignetteHighBit\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0045,\"GEMS_SENO_02\",3e)': {\n tag: '(0045,\"GEMS_SENO_02\",3e)',\n vr: \"US\",\n name: \"VignettePixelRepresentation\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0045,\"GEMS_SENO_02\",3f)': {\n tag: '(0045,\"GEMS_SENO_02\",3f)',\n vr: \"OB\",\n name: \"VignettePixelData\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0025,\"GEMS_SERS_01\",06)': {\n tag: '(0025,\"GEMS_SERS_01\",06)',\n vr: \"SS\",\n name: \"LastPulseSequenceUsed\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0025,\"GEMS_SERS_01\",07)': {\n tag: '(0025,\"GEMS_SERS_01\",07)',\n vr: \"SL\",\n name: \"ImagesInSeries\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0025,\"GEMS_SERS_01\",10)': {\n tag: '(0025,\"GEMS_SERS_01\",10)',\n vr: \"SL\",\n name: \"LandmarkCounter\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0025,\"GEMS_SERS_01\",11)': {\n tag: '(0025,\"GEMS_SERS_01\",11)',\n vr: \"SS\",\n name: \"NumberOfAcquisitions\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0025,\"GEMS_SERS_01\",14)': {\n tag: '(0025,\"GEMS_SERS_01\",14)',\n vr: \"SL\",\n name: \"IndicatesNumberOfUpdatesToHeader\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0025,\"GEMS_SERS_01\",17)': {\n tag: '(0025,\"GEMS_SERS_01\",17)',\n vr: \"SL\",\n name: \"SeriesCompleteFlag\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0025,\"GEMS_SERS_01\",18)': {\n tag: '(0025,\"GEMS_SERS_01\",18)',\n vr: \"SL\",\n name: \"NumberOfImagesArchived\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0025,\"GEMS_SERS_01\",19)': {\n tag: '(0025,\"GEMS_SERS_01\",19)',\n vr: \"SL\",\n name: \"LastImageNumberUsed\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0025,\"GEMS_SERS_01\",1a)': {\n tag: '(0025,\"GEMS_SERS_01\",1a)',\n vr: \"SH\",\n name: \"PrimaryReceiverSuiteAndHost\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0023,\"GEMS_STDY_01\",01)': {\n tag: '(0023,\"GEMS_STDY_01\",01)',\n vr: \"SL\",\n name: \"NumberOfSeriesInStudy\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0023,\"GEMS_STDY_01\",02)': {\n tag: '(0023,\"GEMS_STDY_01\",02)',\n vr: \"SL\",\n name: \"NumberOfUnarchivedSeries\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0023,\"GEMS_STDY_01\",10)': {\n tag: '(0023,\"GEMS_STDY_01\",10)',\n vr: \"SS\",\n name: \"ReferenceImageField\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0023,\"GEMS_STDY_01\",50)': {\n tag: '(0023,\"GEMS_STDY_01\",50)',\n vr: \"SS\",\n name: \"SummaryImage\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0023,\"GEMS_STDY_01\",70)': {\n tag: '(0023,\"GEMS_STDY_01\",70)',\n vr: \"FD\",\n name: \"StartTimeSecsInFirstAxial\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0023,\"GEMS_STDY_01\",74)': {\n tag: '(0023,\"GEMS_STDY_01\",74)',\n vr: \"SL\",\n name: \"NumberOfUpdatesToHeader\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0023,\"GEMS_STDY_01\",7d)': {\n tag: '(0023,\"GEMS_STDY_01\",7d)',\n vr: \"SS\",\n name: \"IndicatesIfStudyHasCompleteInfo\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0033,\"GEMS_YMHD_01\",05)': {\n tag: '(0033,\"GEMS_YMHD_01\",05)',\n vr: \"UN\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0033,\"GEMS_YMHD_01\",06)': {\n tag: '(0033,\"GEMS_YMHD_01\",06)',\n vr: \"UN\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GE_GENESIS_REV3.0\",39)': {\n tag: '(0019,\"GE_GENESIS_REV3.0\",39)',\n vr: \"SS\",\n name: \"AxialType\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GE_GENESIS_REV3.0\",8f)': {\n tag: '(0019,\"GE_GENESIS_REV3.0\",8f)',\n vr: \"SS\",\n name: \"SwapPhaseFrequency\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GE_GENESIS_REV3.0\",9c)': {\n tag: '(0019,\"GE_GENESIS_REV3.0\",9c)',\n vr: \"SS\",\n name: \"PulseSequenceName\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GE_GENESIS_REV3.0\",9f)': {\n tag: '(0019,\"GE_GENESIS_REV3.0\",9f)',\n vr: \"SS\",\n name: \"CoilType\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GE_GENESIS_REV3.0\",a4)': {\n tag: '(0019,\"GE_GENESIS_REV3.0\",a4)',\n vr: \"SS\",\n name: \"SATFatWaterBone\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GE_GENESIS_REV3.0\",c0)': {\n tag: '(0019,\"GE_GENESIS_REV3.0\",c0)',\n vr: \"SS\",\n name: \"BitmapOfSATSelections\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GE_GENESIS_REV3.0\",c1)': {\n tag: '(0019,\"GE_GENESIS_REV3.0\",c1)',\n vr: \"SS\",\n name: \"SurfaceCoilIntensityCorrectionFlag\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GE_GENESIS_REV3.0\",cb)': {\n tag: '(0019,\"GE_GENESIS_REV3.0\",cb)',\n vr: \"SS\",\n name: \"PhaseContrastFlowAxis\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GE_GENESIS_REV3.0\",cc)': {\n tag: '(0019,\"GE_GENESIS_REV3.0\",cc)',\n vr: \"SS\",\n name: \"PhaseContrastVelocityEncoding\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GE_GENESIS_REV3.0\",d5)': {\n tag: '(0019,\"GE_GENESIS_REV3.0\",d5)',\n vr: \"SS\",\n name: \"FractionalEcho\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GE_GENESIS_REV3.0\",d8)': {\n tag: '(0019,\"GE_GENESIS_REV3.0\",d8)',\n vr: \"SS\",\n name: \"VariableEchoFlag\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GE_GENESIS_REV3.0\",d9)': {\n tag: '(0019,\"GE_GENESIS_REV3.0\",d9)',\n vr: \"DS\",\n name: \"ConcatenatedSat\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"GE_GENESIS_REV3.0\",f2)': {\n tag: '(0019,\"GE_GENESIS_REV3.0\",f2)',\n vr: \"SS\",\n name: \"NumberOfPhases\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0043,\"GE_GENESIS_REV3.0\",1e)': {\n tag: '(0043,\"GE_GENESIS_REV3.0\",1e)',\n vr: \"DS\",\n name: \"DeltaStartTime\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0043,\"GE_GENESIS_REV3.0\",27)': {\n tag: '(0043,\"GE_GENESIS_REV3.0\",27)',\n vr: \"SH\",\n name: \"ScanPitchRatio\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"INTELERAD MEDICAL SYSTEMS\",01)': {\n tag: '(0029,\"INTELERAD MEDICAL SYSTEMS\",01)',\n vr: \"FD\",\n name: \"ImageCompressionFraction\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"INTELERAD MEDICAL SYSTEMS\",02)': {\n tag: '(0029,\"INTELERAD MEDICAL SYSTEMS\",02)',\n vr: \"FD\",\n name: \"ImageQuality\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"INTELERAD MEDICAL SYSTEMS\",03)': {\n tag: '(0029,\"INTELERAD MEDICAL SYSTEMS\",03)',\n vr: \"FD\",\n name: \"ImageBytesTransferred\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"INTELERAD MEDICAL SYSTEMS\",10)': {\n tag: '(0029,\"INTELERAD MEDICAL SYSTEMS\",10)',\n vr: \"SH\",\n name: \"J2cParameterType\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"INTELERAD MEDICAL SYSTEMS\",11)': {\n tag: '(0029,\"INTELERAD MEDICAL SYSTEMS\",11)',\n vr: \"US\",\n name: \"J2cPixelRepresentation\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"INTELERAD MEDICAL SYSTEMS\",12)': {\n tag: '(0029,\"INTELERAD MEDICAL SYSTEMS\",12)',\n vr: \"US\",\n name: \"J2cBitsAllocated\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"INTELERAD MEDICAL SYSTEMS\",13)': {\n tag: '(0029,\"INTELERAD MEDICAL SYSTEMS\",13)',\n vr: \"US\",\n name: \"J2cPixelShiftValue\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"INTELERAD MEDICAL SYSTEMS\",14)': {\n tag: '(0029,\"INTELERAD MEDICAL SYSTEMS\",14)',\n vr: \"US\",\n name: \"J2cPlanarConfiguration\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"INTELERAD MEDICAL SYSTEMS\",15)': {\n tag: '(0029,\"INTELERAD MEDICAL SYSTEMS\",15)',\n vr: \"DS\",\n name: \"J2cRescaleIntercept\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"INTELERAD MEDICAL SYSTEMS\",20)': {\n tag: '(0029,\"INTELERAD MEDICAL SYSTEMS\",20)',\n vr: \"LO\",\n name: \"PixelDataMD5SumPerFrame\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"INTELERAD MEDICAL SYSTEMS\",21)': {\n tag: '(0029,\"INTELERAD MEDICAL SYSTEMS\",21)',\n vr: \"US\",\n name: \"HistogramPercentileLabels\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"INTELERAD MEDICAL SYSTEMS\",22)': {\n tag: '(0029,\"INTELERAD MEDICAL SYSTEMS\",22)',\n vr: \"FD\",\n name: \"HistogramPercentileValues\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(3f01,\"INTELERAD MEDICAL SYSTEMS\",01)': {\n tag: '(3f01,\"INTELERAD MEDICAL SYSTEMS\",01)',\n vr: \"LO\",\n name: \"InstitutionCode\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(3f01,\"INTELERAD MEDICAL SYSTEMS\",02)': {\n tag: '(3f01,\"INTELERAD MEDICAL SYSTEMS\",02)',\n vr: \"LO\",\n name: \"RoutedTransferAE\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(3f01,\"INTELERAD MEDICAL SYSTEMS\",03)': {\n tag: '(3f01,\"INTELERAD MEDICAL SYSTEMS\",03)',\n vr: \"LO\",\n name: \"SourceAE\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(3f01,\"INTELERAD MEDICAL SYSTEMS\",04)': {\n tag: '(3f01,\"INTELERAD MEDICAL SYSTEMS\",04)',\n vr: \"SH\",\n name: \"DeferredValidation\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(3f01,\"INTELERAD MEDICAL SYSTEMS\",05)': {\n tag: '(3f01,\"INTELERAD MEDICAL SYSTEMS\",05)',\n vr: \"LO\",\n name: \"SeriesOwner\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(3f01,\"INTELERAD MEDICAL SYSTEMS\",06)': {\n tag: '(3f01,\"INTELERAD MEDICAL SYSTEMS\",06)',\n vr: \"LO\",\n name: \"OrderGroupNumber\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(3f01,\"INTELERAD MEDICAL SYSTEMS\",07)': {\n tag: '(3f01,\"INTELERAD MEDICAL SYSTEMS\",07)',\n vr: \"SH\",\n name: \"StrippedPixelData\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(3f01,\"INTELERAD MEDICAL SYSTEMS\",08)': {\n tag: '(3f01,\"INTELERAD MEDICAL SYSTEMS\",08)',\n vr: \"SH\",\n name: \"PendingMoveRequest\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0041,\"INTEGRIS 1.0\",20)': {\n tag: '(0041,\"INTEGRIS 1.0\",20)',\n vr: \"FL\",\n name: \"AccumulatedFluoroscopyDose\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0041,\"INTEGRIS 1.0\",30)': {\n tag: '(0041,\"INTEGRIS 1.0\",30)',\n vr: \"FL\",\n name: \"AccumulatedExposureDose\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0041,\"INTEGRIS 1.0\",40)': {\n tag: '(0041,\"INTEGRIS 1.0\",40)',\n vr: \"FL\",\n name: \"TotalDose\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0041,\"INTEGRIS 1.0\",41)': {\n tag: '(0041,\"INTEGRIS 1.0\",41)',\n vr: \"FL\",\n name: \"TotalNumberOfFrames\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0041,\"INTEGRIS 1.0\",50)': {\n tag: '(0041,\"INTEGRIS 1.0\",50)',\n vr: \"SQ\",\n name: \"ExposureInformationSequence\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"INTEGRIS 1.0\",08)': {\n tag: '(0009,\"INTEGRIS 1.0\",08)',\n vr: \"CS\",\n name: \"ExposureChannel\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0009,\"INTEGRIS 1.0\",32)': {\n tag: '(0009,\"INTEGRIS 1.0\",32)',\n vr: \"TM\",\n name: \"ExposureStartTime\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"INTEGRIS 1.0\",00)': {\n tag: '(0019,\"INTEGRIS 1.0\",00)',\n vr: \"LO\",\n name: \"APRName\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"INTEGRIS 1.0\",40)': {\n tag: '(0019,\"INTEGRIS 1.0\",40)',\n vr: \"DS\",\n name: \"FrameRate\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"INTEGRIS 1.0\",12)': {\n tag: '(0021,\"INTEGRIS 1.0\",12)',\n vr: \"IS\",\n name: \"ExposureNumber\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"INTEGRIS 1.0\",08)': {\n tag: '(0029,\"INTEGRIS 1.0\",08)',\n vr: \"IS\",\n name: \"NumberOfExposureResults\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"ISG shadow\",70)': {\n tag: '(0029,\"ISG shadow\",70)',\n vr: \"IS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"ISG shadow\",80)': {\n tag: '(0029,\"ISG shadow\",80)',\n vr: \"IS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"ISG shadow\",90)': {\n tag: '(0029,\"ISG shadow\",90)',\n vr: \"IS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"ISI\",01)': {\n tag: '(0009,\"ISI\",01)',\n vr: \"UN\",\n name: \"SIENETGeneralPurposeIMGEF\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"MERGE TECHNOLOGIES, INC.\",00)': {\n tag: '(0009,\"MERGE TECHNOLOGIES, INC.\",00)',\n vr: \"OB\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"OCULUS Optikgeraete GmbH\",1010)': {\n tag: '(0029,\"OCULUS Optikgeraete GmbH\",1010)',\n vr: \"OB\",\n name: \"OriginalMeasuringData\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"OCULUS Optikgeraete GmbH\",1012)': {\n tag: '(0029,\"OCULUS Optikgeraete GmbH\",1012)',\n vr: \"UL\",\n name: \"OriginalMeasuringDataLength\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"OCULUS Optikgeraete GmbH\",1020)': {\n tag: '(0029,\"OCULUS Optikgeraete GmbH\",1020)',\n vr: \"OB\",\n name: \"OriginalMeasuringRawData\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"OCULUS Optikgeraete GmbH\",1022)': {\n tag: '(0029,\"OCULUS Optikgeraete GmbH\",1022)',\n vr: \"UL\",\n name: \"OriginalMeasuringRawDataLength\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0041,\"PAPYRUS 3.0\",00)': {\n tag: '(0041,\"PAPYRUS 3.0\",00)',\n vr: \"LT\",\n name: \"PapyrusComments\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0041,\"PAPYRUS 3.0\",10)': {\n tag: '(0041,\"PAPYRUS 3.0\",10)',\n vr: \"SQ\",\n name: \"PointerSequence\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0041,\"PAPYRUS 3.0\",11)': {\n tag: '(0041,\"PAPYRUS 3.0\",11)',\n vr: \"UL\",\n name: \"ImagePointer\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0041,\"PAPYRUS 3.0\",12)': {\n tag: '(0041,\"PAPYRUS 3.0\",12)',\n vr: \"UL\",\n name: \"PixelOffset\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0041,\"PAPYRUS 3.0\",13)': {\n tag: '(0041,\"PAPYRUS 3.0\",13)',\n vr: \"SQ\",\n name: \"ImageIdentifierSequence\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0041,\"PAPYRUS 3.0\",14)': {\n tag: '(0041,\"PAPYRUS 3.0\",14)',\n vr: \"SQ\",\n name: \"ExternalFileReferenceSequence\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0041,\"PAPYRUS 3.0\",15)': {\n tag: '(0041,\"PAPYRUS 3.0\",15)',\n vr: \"US\",\n name: \"NumberOfImages\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0041,\"PAPYRUS 3.0\",21)': {\n tag: '(0041,\"PAPYRUS 3.0\",21)',\n vr: \"UI\",\n name: \"ReferencedSOPClassUID\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0041,\"PAPYRUS 3.0\",22)': {\n tag: '(0041,\"PAPYRUS 3.0\",22)',\n vr: \"UI\",\n name: \"ReferencedSOPInstanceUID\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0041,\"PAPYRUS 3.0\",31)': {\n tag: '(0041,\"PAPYRUS 3.0\",31)',\n vr: \"LT\",\n name: \"ReferencedFileName\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0041,\"PAPYRUS 3.0\",32)': {\n tag: '(0041,\"PAPYRUS 3.0\",32)',\n vr: \"LT\",\n name: \"ReferencedFilePath\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0041,\"PAPYRUS 3.0\",41)': {\n tag: '(0041,\"PAPYRUS 3.0\",41)',\n vr: \"UI\",\n name: \"ReferencedImageSOPClassUID\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0041,\"PAPYRUS 3.0\",42)': {\n tag: '(0041,\"PAPYRUS 3.0\",42)',\n vr: \"UI\",\n name: \"ReferencedImageSOPInstanceUID\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0041,\"PAPYRUS 3.0\",50)': {\n tag: '(0041,\"PAPYRUS 3.0\",50)',\n vr: \"SQ\",\n name: \"ImageSequence\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(6001-o-60ff,\"PAPYRUS 3.0\",00)': {\n tag: '(6001-o-60ff,\"PAPYRUS 3.0\",00)',\n vr: \"IS\",\n name: \"OverlayID\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(6001-o-60ff,\"PAPYRUS 3.0\",01)': {\n tag: '(6001-o-60ff,\"PAPYRUS 3.0\",01)',\n vr: \"LT\",\n name: \"LinkedOverlays\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(6001-o-60ff,\"PAPYRUS 3.0\",10)': {\n tag: '(6001-o-60ff,\"PAPYRUS 3.0\",10)',\n vr: \"US\",\n name: \"OverlayRows\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(6001-o-60ff,\"PAPYRUS 3.0\",11)': {\n tag: '(6001-o-60ff,\"PAPYRUS 3.0\",11)',\n vr: \"US\",\n name: \"OverlayColumns\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(6001-o-60ff,\"PAPYRUS 3.0\",40)': {\n tag: '(6001-o-60ff,\"PAPYRUS 3.0\",40)',\n vr: \"LO\",\n name: \"OverlayType\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(6001-o-60ff,\"PAPYRUS 3.0\",50)': {\n tag: '(6001-o-60ff,\"PAPYRUS 3.0\",50)',\n vr: \"US\",\n name: \"OverlayOrigin\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(6001-o-60ff,\"PAPYRUS 3.0\",60)': {\n tag: '(6001-o-60ff,\"PAPYRUS 3.0\",60)',\n vr: \"LO\",\n name: \"Editable\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(6001-o-60ff,\"PAPYRUS 3.0\",70)': {\n tag: '(6001-o-60ff,\"PAPYRUS 3.0\",70)',\n vr: \"LO\",\n name: \"OverlayFont\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(6001-o-60ff,\"PAPYRUS 3.0\",72)': {\n tag: '(6001-o-60ff,\"PAPYRUS 3.0\",72)',\n vr: \"LO\",\n name: \"OverlayStyle\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(6001-o-60ff,\"PAPYRUS 3.0\",74)': {\n tag: '(6001-o-60ff,\"PAPYRUS 3.0\",74)',\n vr: \"US\",\n name: \"OverlayFontSize\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(6001-o-60ff,\"PAPYRUS 3.0\",76)': {\n tag: '(6001-o-60ff,\"PAPYRUS 3.0\",76)',\n vr: \"LO\",\n name: \"OverlayColor\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(6001-o-60ff,\"PAPYRUS 3.0\",78)': {\n tag: '(6001-o-60ff,\"PAPYRUS 3.0\",78)',\n vr: \"US\",\n name: \"ShadowSize\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(6001-o-60ff,\"PAPYRUS 3.0\",80)': {\n tag: '(6001-o-60ff,\"PAPYRUS 3.0\",80)',\n vr: \"LO\",\n name: \"FillPattern\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(6001-o-60ff,\"PAPYRUS 3.0\",82)': {\n tag: '(6001-o-60ff,\"PAPYRUS 3.0\",82)',\n vr: \"US\",\n name: \"OverlayPenSize\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(6001-o-60ff,\"PAPYRUS 3.0\",a0)': {\n tag: '(6001-o-60ff,\"PAPYRUS 3.0\",a0)',\n vr: \"LO\",\n name: \"Label\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(6001-o-60ff,\"PAPYRUS 3.0\",a2)': {\n tag: '(6001-o-60ff,\"PAPYRUS 3.0\",a2)',\n vr: \"LT\",\n name: \"PostItText\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(6001-o-60ff,\"PAPYRUS 3.0\",a4)': {\n tag: '(6001-o-60ff,\"PAPYRUS 3.0\",a4)',\n vr: \"US\",\n name: \"AnchorPoint\",\n vm: \"2\",\n version: \"PrivateTag\"\n },\n '(6001-o-60ff,\"PAPYRUS 3.0\",b0)': {\n tag: '(6001-o-60ff,\"PAPYRUS 3.0\",b0)',\n vr: \"LO\",\n name: \"ROIType\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(6001-o-60ff,\"PAPYRUS 3.0\",b2)': {\n tag: '(6001-o-60ff,\"PAPYRUS 3.0\",b2)',\n vr: \"LT\",\n name: \"AttachedAnnotation\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(6001-o-60ff,\"PAPYRUS 3.0\",ba)': {\n tag: '(6001-o-60ff,\"PAPYRUS 3.0\",ba)',\n vr: \"US\",\n name: \"ContourPoints\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(6001-o-60ff,\"PAPYRUS 3.0\",bc)': {\n tag: '(6001-o-60ff,\"PAPYRUS 3.0\",bc)',\n vr: \"US\",\n name: \"MaskData\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(6001-o-60ff,\"PAPYRUS 3.0\",c0)': {\n tag: '(6001-o-60ff,\"PAPYRUS 3.0\",c0)',\n vr: \"SQ\",\n name: \"UINOverlaySequence\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"PAPYRUS\",00)': {\n tag: '(0009,\"PAPYRUS\",00)',\n vr: \"LT\",\n name: \"OriginalFileName\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"PAPYRUS\",10)': {\n tag: '(0009,\"PAPYRUS\",10)',\n vr: \"LT\",\n name: \"OriginalFileLocation\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"PAPYRUS\",18)': {\n tag: '(0009,\"PAPYRUS\",18)',\n vr: \"LT\",\n name: \"DataSetIdentifier\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0041,\"PAPYRUS\",00)': {\n tag: '(0041,\"PAPYRUS\",00)',\n vr: \"LT\",\n name: \"PapyrusComments\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0041,\"PAPYRUS\",10)': {\n tag: '(0041,\"PAPYRUS\",10)',\n vr: \"US\",\n name: \"FolderType\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0041,\"PAPYRUS\",11)': {\n tag: '(0041,\"PAPYRUS\",11)',\n vr: \"LT\",\n name: \"PatientFolderDataSetID\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0041,\"PAPYRUS\",20)': {\n tag: '(0041,\"PAPYRUS\",20)',\n vr: \"LT\",\n name: \"FolderName\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0041,\"PAPYRUS\",30)': {\n tag: '(0041,\"PAPYRUS\",30)',\n vr: \"DA\",\n name: \"CreationDate\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0041,\"PAPYRUS\",32)': {\n tag: '(0041,\"PAPYRUS\",32)',\n vr: \"TM\",\n name: \"CreationTime\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0041,\"PAPYRUS\",34)': {\n tag: '(0041,\"PAPYRUS\",34)',\n vr: \"DA\",\n name: \"ModifiedDate\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0041,\"PAPYRUS\",36)': {\n tag: '(0041,\"PAPYRUS\",36)',\n vr: \"TM\",\n name: \"ModifiedTime\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0041,\"PAPYRUS\",40)': {\n tag: '(0041,\"PAPYRUS\",40)',\n vr: \"LT\",\n name: \"OwnerName\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0041,\"PAPYRUS\",50)': {\n tag: '(0041,\"PAPYRUS\",50)',\n vr: \"LT\",\n name: \"FolderStatus\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0041,\"PAPYRUS\",60)': {\n tag: '(0041,\"PAPYRUS\",60)',\n vr: \"UL\",\n name: \"NumberOfImages\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0041,\"PAPYRUS\",62)': {\n tag: '(0041,\"PAPYRUS\",62)',\n vr: \"UL\",\n name: \"NumberOfOther\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0041,\"PAPYRUS\",a0)': {\n tag: '(0041,\"PAPYRUS\",a0)',\n vr: \"LT\",\n name: \"ExternalFolderElementDSID\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0041,\"PAPYRUS\",a1)': {\n tag: '(0041,\"PAPYRUS\",a1)',\n vr: \"US\",\n name: \"ExternalFolderElementDataSetType\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0041,\"PAPYRUS\",a2)': {\n tag: '(0041,\"PAPYRUS\",a2)',\n vr: \"LT\",\n name: \"ExternalFolderElementFileLocation\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0041,\"PAPYRUS\",a3)': {\n tag: '(0041,\"PAPYRUS\",a3)',\n vr: \"UL\",\n name: \"ExternalFolderElementLength\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0041,\"PAPYRUS\",b0)': {\n tag: '(0041,\"PAPYRUS\",b0)',\n vr: \"LT\",\n name: \"InternalFolderElementDSID\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0041,\"PAPYRUS\",b1)': {\n tag: '(0041,\"PAPYRUS\",b1)',\n vr: \"US\",\n name: \"InternalFolderElementDataSetType\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0041,\"PAPYRUS\",b2)': {\n tag: '(0041,\"PAPYRUS\",b2)',\n vr: \"UL\",\n name: \"InternalOffsetToDataSet\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0041,\"PAPYRUS\",b3)': {\n tag: '(0041,\"PAPYRUS\",b3)',\n vr: \"UL\",\n name: \"InternalOffsetToImage\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(2001,\"Philips Imaging DD 001\",01)': {\n tag: '(2001,\"Philips Imaging DD 001\",01)',\n vr: \"FL\",\n name: \"ChemicalShift\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"Philips Imaging DD 001\",02)': {\n tag: '(2001,\"Philips Imaging DD 001\",02)',\n vr: \"IS\",\n name: \"ChemicalShiftNumberMR\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"Philips Imaging DD 001\",03)': {\n tag: '(2001,\"Philips Imaging DD 001\",03)',\n vr: \"FL\",\n name: \"DiffusionBFactor\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"Philips Imaging DD 001\",04)': {\n tag: '(2001,\"Philips Imaging DD 001\",04)',\n vr: \"CS\",\n name: \"DiffusionDirection\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"Philips Imaging DD 001\",06)': {\n tag: '(2001,\"Philips Imaging DD 001\",06)',\n vr: \"CS\",\n name: \"ImageEnhanced\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"Philips Imaging DD 001\",07)': {\n tag: '(2001,\"Philips Imaging DD 001\",07)',\n vr: \"CS\",\n name: \"ImageTypeEDES\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"Philips Imaging DD 001\",08)': {\n tag: '(2001,\"Philips Imaging DD 001\",08)',\n vr: \"IS\",\n name: \"PhaseNumber\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"Philips Imaging DD 001\",09)': {\n tag: '(2001,\"Philips Imaging DD 001\",09)',\n vr: \"FL\",\n name: \"ImagePrepulseDelay\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"Philips Imaging DD 001\",0a)': {\n tag: '(2001,\"Philips Imaging DD 001\",0a)',\n vr: \"IS\",\n name: \"SliceNumberMR\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"Philips Imaging DD 001\",0b)': {\n tag: '(2001,\"Philips Imaging DD 001\",0b)',\n vr: \"CS\",\n name: \"SliceOrientation\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"Philips Imaging DD 001\",0c)': {\n tag: '(2001,\"Philips Imaging DD 001\",0c)',\n vr: \"CS\",\n name: \"ArrhythmiaRejection\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"Philips Imaging DD 001\",0e)': {\n tag: '(2001,\"Philips Imaging DD 001\",0e)',\n vr: \"CS\",\n name: \"CardiacCycled\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"Philips Imaging DD 001\",0f)': {\n tag: '(2001,\"Philips Imaging DD 001\",0f)',\n vr: \"SS\",\n name: \"CardiacGateWidth\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"Philips Imaging DD 001\",10)': {\n tag: '(2001,\"Philips Imaging DD 001\",10)',\n vr: \"CS\",\n name: \"CardiacSync\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"Philips Imaging DD 001\",11)': {\n tag: '(2001,\"Philips Imaging DD 001\",11)',\n vr: \"FL\",\n name: \"DiffusionEchoTime\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"Philips Imaging DD 001\",12)': {\n tag: '(2001,\"Philips Imaging DD 001\",12)',\n vr: \"CS\",\n name: \"DynamicSeries\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"Philips Imaging DD 001\",13)': {\n tag: '(2001,\"Philips Imaging DD 001\",13)',\n vr: \"SL\",\n name: \"EPIFactor\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"Philips Imaging DD 001\",14)': {\n tag: '(2001,\"Philips Imaging DD 001\",14)',\n vr: \"SL\",\n name: \"NumberOfEchoes\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"Philips Imaging DD 001\",15)': {\n tag: '(2001,\"Philips Imaging DD 001\",15)',\n vr: \"SS\",\n name: \"NumberOfLocations\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"Philips Imaging DD 001\",16)': {\n tag: '(2001,\"Philips Imaging DD 001\",16)',\n vr: \"SS\",\n name: \"NumberOfPCDirections\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"Philips Imaging DD 001\",17)': {\n tag: '(2001,\"Philips Imaging DD 001\",17)',\n vr: \"SL\",\n name: \"NumberOfPhasesMR\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"Philips Imaging DD 001\",18)': {\n tag: '(2001,\"Philips Imaging DD 001\",18)',\n vr: \"SL\",\n name: \"NumberOfSlicesMR\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"Philips Imaging DD 001\",19)': {\n tag: '(2001,\"Philips Imaging DD 001\",19)',\n vr: \"CS\",\n name: \"PartialMatrixScanned\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"Philips Imaging DD 001\",1a)': {\n tag: '(2001,\"Philips Imaging DD 001\",1a)',\n vr: \"FL\",\n name: \"PCVelocity\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(2001,\"Philips Imaging DD 001\",1b)': {\n tag: '(2001,\"Philips Imaging DD 001\",1b)',\n vr: \"FL\",\n name: \"PrepulseDelay\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"Philips Imaging DD 001\",1c)': {\n tag: '(2001,\"Philips Imaging DD 001\",1c)',\n vr: \"CS\",\n name: \"PrepulseType\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"Philips Imaging DD 001\",1d)': {\n tag: '(2001,\"Philips Imaging DD 001\",1d)',\n vr: \"IS\",\n name: \"ReconstructionNumberMR\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"Philips Imaging DD 001\",1f)': {\n tag: '(2001,\"Philips Imaging DD 001\",1f)',\n vr: \"CS\",\n name: \"RespirationSync\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"Philips Imaging DD 001\",20)': {\n tag: '(2001,\"Philips Imaging DD 001\",20)',\n vr: \"LO\",\n name: \"ScanningTechnique\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"Philips Imaging DD 001\",21)': {\n tag: '(2001,\"Philips Imaging DD 001\",21)',\n vr: \"CS\",\n name: \"SPIR\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"Philips Imaging DD 001\",22)': {\n tag: '(2001,\"Philips Imaging DD 001\",22)',\n vr: \"FL\",\n name: \"WaterFatShift\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"Philips Imaging DD 001\",23)': {\n tag: '(2001,\"Philips Imaging DD 001\",23)',\n vr: \"DS\",\n name: \"FlipAnglePhilips\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"Philips Imaging DD 001\",24)': {\n tag: '(2001,\"Philips Imaging DD 001\",24)',\n vr: \"CS\",\n name: \"SeriesIsInteractive\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"Philips Imaging DD 001\",25)': {\n tag: '(2001,\"Philips Imaging DD 001\",25)',\n vr: \"SH\",\n name: \"EchoTimeDisplayMR\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"Philips Imaging DD 001\",26)': {\n tag: '(2001,\"Philips Imaging DD 001\",26)',\n vr: \"CS\",\n name: \"PresentationStateSubtractionActive\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"Philips Imaging DD 001\",2d)': {\n tag: '(2001,\"Philips Imaging DD 001\",2d)',\n vr: \"SS\",\n name: \"StackNumberOfSlices\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"Philips Imaging DD 001\",32)': {\n tag: '(2001,\"Philips Imaging DD 001\",32)',\n vr: \"FL\",\n name: \"StackRadialAngle\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"Philips Imaging DD 001\",33)': {\n tag: '(2001,\"Philips Imaging DD 001\",33)',\n vr: \"CS\",\n name: \"StackRadialAxis\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"Philips Imaging DD 001\",35)': {\n tag: '(2001,\"Philips Imaging DD 001\",35)',\n vr: \"SS\",\n name: \"StackSliceNumber\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"Philips Imaging DD 001\",36)': {\n tag: '(2001,\"Philips Imaging DD 001\",36)',\n vr: \"CS\",\n name: \"StackType\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"Philips Imaging DD 001\",3f)': {\n tag: '(2001,\"Philips Imaging DD 001\",3f)',\n vr: \"CS\",\n name: \"ZoomMode\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"Philips Imaging DD 001\",58)': {\n tag: '(2001,\"Philips Imaging DD 001\",58)',\n vr: \"UL\",\n name: \"ContrastTransferTaste\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"Philips Imaging DD 001\",5f)': {\n tag: '(2001,\"Philips Imaging DD 001\",5f)',\n vr: \"SQ\",\n name: \"StackSequence\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"Philips Imaging DD 001\",60)': {\n tag: '(2001,\"Philips Imaging DD 001\",60)',\n vr: \"SL\",\n name: \"NumberOfStacks\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"Philips Imaging DD 001\",61)': {\n tag: '(2001,\"Philips Imaging DD 001\",61)',\n vr: \"CS\",\n name: \"SeriesTransmitted\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"Philips Imaging DD 001\",62)': {\n tag: '(2001,\"Philips Imaging DD 001\",62)',\n vr: \"CS\",\n name: \"SeriesCommitted\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"Philips Imaging DD 001\",63)': {\n tag: '(2001,\"Philips Imaging DD 001\",63)',\n vr: \"CS\",\n name: \"ExaminationSource\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"Philips Imaging DD 001\",67)': {\n tag: '(2001,\"Philips Imaging DD 001\",67)',\n vr: \"CS\",\n name: \"LinearPresentationGLTrafoShapeSub\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"Philips Imaging DD 001\",77)': {\n tag: '(2001,\"Philips Imaging DD 001\",77)',\n vr: \"CS\",\n name: \"GLTrafoType\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"Philips Imaging DD 001\",7b)': {\n tag: '(2001,\"Philips Imaging DD 001\",7b)',\n vr: \"IS\",\n name: \"AcquisitionNumber\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"Philips Imaging DD 001\",81)': {\n tag: '(2001,\"Philips Imaging DD 001\",81)',\n vr: \"IS\",\n name: \"NumberOfDynamicScans\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"Philips Imaging DD 001\",9f)': {\n tag: '(2001,\"Philips Imaging DD 001\",9f)',\n vr: \"US\",\n name: \"PixelProcessingKernelSize\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"Philips Imaging DD 001\",a1)': {\n tag: '(2001,\"Philips Imaging DD 001\",a1)',\n vr: \"CS\",\n name: \"IsRawImage\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"Philips Imaging DD 001\",f1)': {\n tag: '(2001,\"Philips Imaging DD 001\",f1)',\n vr: \"FL\",\n name: \"ProspectiveMotionCorrection\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"Philips Imaging DD 001\",f2)': {\n tag: '(2001,\"Philips Imaging DD 001\",f2)',\n vr: \"FL\",\n name: \"RetrospectiveMotionCorrection\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"PHILIPS IMAGING DD 001\",01)': {\n tag: '(2001,\"PHILIPS IMAGING DD 001\",01)',\n vr: \"FL\",\n name: \"ChemicalShift\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"PHILIPS IMAGING DD 001\",02)': {\n tag: '(2001,\"PHILIPS IMAGING DD 001\",02)',\n vr: \"IS\",\n name: \"ChemicalShiftNumberMR\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"PHILIPS IMAGING DD 001\",03)': {\n tag: '(2001,\"PHILIPS IMAGING DD 001\",03)',\n vr: \"FL\",\n name: \"DiffusionBFactor\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"PHILIPS IMAGING DD 001\",04)': {\n tag: '(2001,\"PHILIPS IMAGING DD 001\",04)',\n vr: \"CS\",\n name: \"DiffusionDirection\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"PHILIPS IMAGING DD 001\",06)': {\n tag: '(2001,\"PHILIPS IMAGING DD 001\",06)',\n vr: \"CS\",\n name: \"ImageEnhanced\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"PHILIPS IMAGING DD 001\",07)': {\n tag: '(2001,\"PHILIPS IMAGING DD 001\",07)',\n vr: \"CS\",\n name: \"ImageTypeEDES\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"PHILIPS IMAGING DD 001\",08)': {\n tag: '(2001,\"PHILIPS IMAGING DD 001\",08)',\n vr: \"IS\",\n name: \"PhaseNumber\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"PHILIPS IMAGING DD 001\",09)': {\n tag: '(2001,\"PHILIPS IMAGING DD 001\",09)',\n vr: \"FL\",\n name: \"ImagePrepulseDelay\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"PHILIPS IMAGING DD 001\",0a)': {\n tag: '(2001,\"PHILIPS IMAGING DD 001\",0a)',\n vr: \"IS\",\n name: \"SliceNumberMR\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"PHILIPS IMAGING DD 001\",0b)': {\n tag: '(2001,\"PHILIPS IMAGING DD 001\",0b)',\n vr: \"CS\",\n name: \"SliceOrientation\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"PHILIPS IMAGING DD 001\",0c)': {\n tag: '(2001,\"PHILIPS IMAGING DD 001\",0c)',\n vr: \"CS\",\n name: \"ArrhythmiaRejection\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"PHILIPS IMAGING DD 001\",0e)': {\n tag: '(2001,\"PHILIPS IMAGING DD 001\",0e)',\n vr: \"CS\",\n name: \"CardiacCycled\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"PHILIPS IMAGING DD 001\",0f)': {\n tag: '(2001,\"PHILIPS IMAGING DD 001\",0f)',\n vr: \"SS\",\n name: \"CardiacGateWidth\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"PHILIPS IMAGING DD 001\",10)': {\n tag: '(2001,\"PHILIPS IMAGING DD 001\",10)',\n vr: \"CS\",\n name: \"CardiacSync\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"PHILIPS IMAGING DD 001\",11)': {\n tag: '(2001,\"PHILIPS IMAGING DD 001\",11)',\n vr: \"FL\",\n name: \"DiffusionEchoTime\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"PHILIPS IMAGING DD 001\",12)': {\n tag: '(2001,\"PHILIPS IMAGING DD 001\",12)',\n vr: \"CS\",\n name: \"DynamicSeries\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"PHILIPS IMAGING DD 001\",13)': {\n tag: '(2001,\"PHILIPS IMAGING DD 001\",13)',\n vr: \"SL\",\n name: \"EPIFactor\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"PHILIPS IMAGING DD 001\",14)': {\n tag: '(2001,\"PHILIPS IMAGING DD 001\",14)',\n vr: \"SL\",\n name: \"NumberOfEchoes\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"PHILIPS IMAGING DD 001\",15)': {\n tag: '(2001,\"PHILIPS IMAGING DD 001\",15)',\n vr: \"SS\",\n name: \"NumberOfLocations\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"PHILIPS IMAGING DD 001\",16)': {\n tag: '(2001,\"PHILIPS IMAGING DD 001\",16)',\n vr: \"SS\",\n name: \"NumberOfPCDirections\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"PHILIPS IMAGING DD 001\",17)': {\n tag: '(2001,\"PHILIPS IMAGING DD 001\",17)',\n vr: \"SL\",\n name: \"NumberOfPhasesMR\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"PHILIPS IMAGING DD 001\",18)': {\n tag: '(2001,\"PHILIPS IMAGING DD 001\",18)',\n vr: \"SL\",\n name: \"NumberOfSlicesMR\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"PHILIPS IMAGING DD 001\",19)': {\n tag: '(2001,\"PHILIPS IMAGING DD 001\",19)',\n vr: \"CS\",\n name: \"PartialMatrixScanned\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"PHILIPS IMAGING DD 001\",1a)': {\n tag: '(2001,\"PHILIPS IMAGING DD 001\",1a)',\n vr: \"FL\",\n name: \"PCVelocity\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(2001,\"PHILIPS IMAGING DD 001\",1b)': {\n tag: '(2001,\"PHILIPS IMAGING DD 001\",1b)',\n vr: \"FL\",\n name: \"PrepulseDelay\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"PHILIPS IMAGING DD 001\",1c)': {\n tag: '(2001,\"PHILIPS IMAGING DD 001\",1c)',\n vr: \"CS\",\n name: \"PrepulseType\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"PHILIPS IMAGING DD 001\",1d)': {\n tag: '(2001,\"PHILIPS IMAGING DD 001\",1d)',\n vr: \"IS\",\n name: \"ReconstructionNumberMR\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"PHILIPS IMAGING DD 001\",1f)': {\n tag: '(2001,\"PHILIPS IMAGING DD 001\",1f)',\n vr: \"CS\",\n name: \"RespirationSync\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"PHILIPS IMAGING DD 001\",20)': {\n tag: '(2001,\"PHILIPS IMAGING DD 001\",20)',\n vr: \"LO\",\n name: \"ScanningTechnique\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"PHILIPS IMAGING DD 001\",21)': {\n tag: '(2001,\"PHILIPS IMAGING DD 001\",21)',\n vr: \"CS\",\n name: \"SPIR\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"PHILIPS IMAGING DD 001\",22)': {\n tag: '(2001,\"PHILIPS IMAGING DD 001\",22)',\n vr: \"FL\",\n name: \"WaterFatShift\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"PHILIPS IMAGING DD 001\",23)': {\n tag: '(2001,\"PHILIPS IMAGING DD 001\",23)',\n vr: \"DS\",\n name: \"FlipAnglePhilips\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"PHILIPS IMAGING DD 001\",24)': {\n tag: '(2001,\"PHILIPS IMAGING DD 001\",24)',\n vr: \"CS\",\n name: \"SeriesIsInteractive\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"PHILIPS IMAGING DD 001\",25)': {\n tag: '(2001,\"PHILIPS IMAGING DD 001\",25)',\n vr: \"SH\",\n name: \"EchoTimeDisplayMR\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"PHILIPS IMAGING DD 001\",26)': {\n tag: '(2001,\"PHILIPS IMAGING DD 001\",26)',\n vr: \"CS\",\n name: \"PresentationStateSubtractionActive\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"PHILIPS IMAGING DD 001\",2d)': {\n tag: '(2001,\"PHILIPS IMAGING DD 001\",2d)',\n vr: \"SS\",\n name: \"StackNumberOfSlices\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"PHILIPS IMAGING DD 001\",32)': {\n tag: '(2001,\"PHILIPS IMAGING DD 001\",32)',\n vr: \"FL\",\n name: \"StackRadialAngle\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"PHILIPS IMAGING DD 001\",33)': {\n tag: '(2001,\"PHILIPS IMAGING DD 001\",33)',\n vr: \"CS\",\n name: \"StackRadialAxis\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"PHILIPS IMAGING DD 001\",35)': {\n tag: '(2001,\"PHILIPS IMAGING DD 001\",35)',\n vr: \"SS\",\n name: \"StackSliceNumber\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"PHILIPS IMAGING DD 001\",36)': {\n tag: '(2001,\"PHILIPS IMAGING DD 001\",36)',\n vr: \"CS\",\n name: \"StackType\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"PHILIPS IMAGING DD 001\",3f)': {\n tag: '(2001,\"PHILIPS IMAGING DD 001\",3f)',\n vr: \"CS\",\n name: \"ZoomMode\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"PHILIPS IMAGING DD 001\",58)': {\n tag: '(2001,\"PHILIPS IMAGING DD 001\",58)',\n vr: \"UL\",\n name: \"ContrastTransferTaste\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"PHILIPS IMAGING DD 001\",5f)': {\n tag: '(2001,\"PHILIPS IMAGING DD 001\",5f)',\n vr: \"SQ\",\n name: \"StackSequence\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"PHILIPS IMAGING DD 001\",60)': {\n tag: '(2001,\"PHILIPS IMAGING DD 001\",60)',\n vr: \"SL\",\n name: \"NumberOfStacks\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"PHILIPS IMAGING DD 001\",61)': {\n tag: '(2001,\"PHILIPS IMAGING DD 001\",61)',\n vr: \"CS\",\n name: \"SeriesTransmitted\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"PHILIPS IMAGING DD 001\",62)': {\n tag: '(2001,\"PHILIPS IMAGING DD 001\",62)',\n vr: \"CS\",\n name: \"SeriesCommitted\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"PHILIPS IMAGING DD 001\",63)': {\n tag: '(2001,\"PHILIPS IMAGING DD 001\",63)',\n vr: \"CS\",\n name: \"ExaminationSource\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"PHILIPS IMAGING DD 001\",67)': {\n tag: '(2001,\"PHILIPS IMAGING DD 001\",67)',\n vr: \"CS\",\n name: \"LinearPresentationGLTrafoShapeSub\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"PHILIPS IMAGING DD 001\",77)': {\n tag: '(2001,\"PHILIPS IMAGING DD 001\",77)',\n vr: \"CS\",\n name: \"GLTrafoType\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"PHILIPS IMAGING DD 001\",7b)': {\n tag: '(2001,\"PHILIPS IMAGING DD 001\",7b)',\n vr: \"IS\",\n name: \"AcquisitionNumber\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"PHILIPS IMAGING DD 001\",81)': {\n tag: '(2001,\"PHILIPS IMAGING DD 001\",81)',\n vr: \"IS\",\n name: \"NumberOfDynamicScans\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"PHILIPS IMAGING DD 001\",9f)': {\n tag: '(2001,\"PHILIPS IMAGING DD 001\",9f)',\n vr: \"US\",\n name: \"PixelProcessingKernelSize\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"PHILIPS IMAGING DD 001\",a1)': {\n tag: '(2001,\"PHILIPS IMAGING DD 001\",a1)',\n vr: \"CS\",\n name: \"IsRawImage\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"PHILIPS IMAGING DD 001\",f1)': {\n tag: '(2001,\"PHILIPS IMAGING DD 001\",f1)',\n vr: \"FL\",\n name: \"ProspectiveMotionCorrection\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2001,\"PHILIPS IMAGING DD 001\",f2)': {\n tag: '(2001,\"PHILIPS IMAGING DD 001\",f2)',\n vr: \"FL\",\n name: \"RetrospectiveMotionCorrection\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2005,\"Philips MR Imaging DD 001\",05)': {\n tag: '(2005,\"Philips MR Imaging DD 001\",05)',\n vr: \"CS\",\n name: \"SynergyReconstructionType\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2005,\"Philips MR Imaging DD 001\",1e)': {\n tag: '(2005,\"Philips MR Imaging DD 001\",1e)',\n vr: \"SH\",\n name: \"MIPProtocol\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2005,\"Philips MR Imaging DD 001\",1f)': {\n tag: '(2005,\"Philips MR Imaging DD 001\",1f)',\n vr: \"SH\",\n name: \"MPRProtocol\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2005,\"Philips MR Imaging DD 001\",20)': {\n tag: '(2005,\"Philips MR Imaging DD 001\",20)',\n vr: \"SL\",\n name: \"NumberOfChemicalShifts\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2005,\"Philips MR Imaging DD 001\",2d)': {\n tag: '(2005,\"Philips MR Imaging DD 001\",2d)',\n vr: \"SS\",\n name: \"NumberOfStackSlices\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2005,\"Philips MR Imaging DD 001\",83)': {\n tag: '(2005,\"Philips MR Imaging DD 001\",83)',\n vr: \"SQ\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2005,\"Philips MR Imaging DD 001\",a1)': {\n tag: '(2005,\"Philips MR Imaging DD 001\",a1)',\n vr: \"CS\",\n name: \"SyncraScanType\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2005,\"Philips MR Imaging DD 001\",b0)': {\n tag: '(2005,\"Philips MR Imaging DD 001\",b0)',\n vr: \"FL\",\n name: \"DiffusionDirectionRL\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2005,\"Philips MR Imaging DD 001\",b1)': {\n tag: '(2005,\"Philips MR Imaging DD 001\",b1)',\n vr: \"FL\",\n name: \"DiffusionDirectionAP\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2005,\"Philips MR Imaging DD 001\",b2)': {\n tag: '(2005,\"Philips MR Imaging DD 001\",b2)',\n vr: \"FL\",\n name: \"DiffusionDirectionFH\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2005,\"Philips MR Imaging DD 005\",02)': {\n tag: '(2005,\"Philips MR Imaging DD 005\",02)',\n vr: \"SQ\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2005,\"PHILIPS MR IMAGING DD 001\",05)': {\n tag: '(2005,\"PHILIPS MR IMAGING DD 001\",05)',\n vr: \"CS\",\n name: \"SynergyReconstructionType\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2005,\"PHILIPS MR IMAGING DD 001\",1e)': {\n tag: '(2005,\"PHILIPS MR IMAGING DD 001\",1e)',\n vr: \"SH\",\n name: \"MIPProtocol\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2005,\"PHILIPS MR IMAGING DD 001\",1f)': {\n tag: '(2005,\"PHILIPS MR IMAGING DD 001\",1f)',\n vr: \"SH\",\n name: \"MPRProtocol\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2005,\"PHILIPS MR IMAGING DD 001\",20)': {\n tag: '(2005,\"PHILIPS MR IMAGING DD 001\",20)',\n vr: \"SL\",\n name: \"NumberOfChemicalShifts\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2005,\"PHILIPS MR IMAGING DD 001\",2d)': {\n tag: '(2005,\"PHILIPS MR IMAGING DD 001\",2d)',\n vr: \"SS\",\n name: \"NumberOfStackSlices\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2005,\"PHILIPS MR IMAGING DD 001\",83)': {\n tag: '(2005,\"PHILIPS MR IMAGING DD 001\",83)',\n vr: \"SQ\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2005,\"PHILIPS MR IMAGING DD 001\",a1)': {\n tag: '(2005,\"PHILIPS MR IMAGING DD 001\",a1)',\n vr: \"CS\",\n name: \"SyncraScanType\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2005,\"PHILIPS MR IMAGING DD 001\",b0)': {\n tag: '(2005,\"PHILIPS MR IMAGING DD 001\",b0)',\n vr: \"FL\",\n name: \"DiffusionDirectionRL\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2005,\"PHILIPS MR IMAGING DD 001\",b1)': {\n tag: '(2005,\"PHILIPS MR IMAGING DD 001\",b1)',\n vr: \"FL\",\n name: \"DiffusionDirectionAP\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(2005,\"PHILIPS MR IMAGING DD 001\",b2)': {\n tag: '(2005,\"PHILIPS MR IMAGING DD 001\",b2)',\n vr: \"FL\",\n name: \"DiffusionDirectionFH\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR R5.5/PART\",1000)': {\n tag: '(0019,\"PHILIPS MR R5.5/PART\",1000)',\n vr: \"DS\",\n name: \"FieldOfView\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR R5.6/PART\",1000)': {\n tag: '(0019,\"PHILIPS MR R5.6/PART\",1000)',\n vr: \"DS\",\n name: \"FieldOfView\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR SPECTRO;1\",01)': {\n tag: '(0019,\"PHILIPS MR SPECTRO;1\",01)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR SPECTRO;1\",02)': {\n tag: '(0019,\"PHILIPS MR SPECTRO;1\",02)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR SPECTRO;1\",03)': {\n tag: '(0019,\"PHILIPS MR SPECTRO;1\",03)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR SPECTRO;1\",04)': {\n tag: '(0019,\"PHILIPS MR SPECTRO;1\",04)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR SPECTRO;1\",05)': {\n tag: '(0019,\"PHILIPS MR SPECTRO;1\",05)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR SPECTRO;1\",06)': {\n tag: '(0019,\"PHILIPS MR SPECTRO;1\",06)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR SPECTRO;1\",07)': {\n tag: '(0019,\"PHILIPS MR SPECTRO;1\",07)',\n vr: \"IS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR SPECTRO;1\",08)': {\n tag: '(0019,\"PHILIPS MR SPECTRO;1\",08)',\n vr: \"IS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR SPECTRO;1\",09)': {\n tag: '(0019,\"PHILIPS MR SPECTRO;1\",09)',\n vr: \"IS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR SPECTRO;1\",10)': {\n tag: '(0019,\"PHILIPS MR SPECTRO;1\",10)',\n vr: \"IS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR SPECTRO;1\",12)': {\n tag: '(0019,\"PHILIPS MR SPECTRO;1\",12)',\n vr: \"IS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR SPECTRO;1\",13)': {\n tag: '(0019,\"PHILIPS MR SPECTRO;1\",13)',\n vr: \"IS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR SPECTRO;1\",14)': {\n tag: '(0019,\"PHILIPS MR SPECTRO;1\",14)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR SPECTRO;1\",15)': {\n tag: '(0019,\"PHILIPS MR SPECTRO;1\",15)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR SPECTRO;1\",16)': {\n tag: '(0019,\"PHILIPS MR SPECTRO;1\",16)',\n vr: \"IS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR SPECTRO;1\",17)': {\n tag: '(0019,\"PHILIPS MR SPECTRO;1\",17)',\n vr: \"IS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR SPECTRO;1\",18)': {\n tag: '(0019,\"PHILIPS MR SPECTRO;1\",18)',\n vr: \"UN\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR SPECTRO;1\",20)': {\n tag: '(0019,\"PHILIPS MR SPECTRO;1\",20)',\n vr: \"IS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR SPECTRO;1\",21)': {\n tag: '(0019,\"PHILIPS MR SPECTRO;1\",21)',\n vr: \"IS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR SPECTRO;1\",22)': {\n tag: '(0019,\"PHILIPS MR SPECTRO;1\",22)',\n vr: \"IS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR SPECTRO;1\",23)': {\n tag: '(0019,\"PHILIPS MR SPECTRO;1\",23)',\n vr: \"IS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR SPECTRO;1\",24)': {\n tag: '(0019,\"PHILIPS MR SPECTRO;1\",24)',\n vr: \"IS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR SPECTRO;1\",25)': {\n tag: '(0019,\"PHILIPS MR SPECTRO;1\",25)',\n vr: \"IS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR SPECTRO;1\",26)': {\n tag: '(0019,\"PHILIPS MR SPECTRO;1\",26)',\n vr: \"IS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR SPECTRO;1\",27)': {\n tag: '(0019,\"PHILIPS MR SPECTRO;1\",27)',\n vr: \"IS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR SPECTRO;1\",28)': {\n tag: '(0019,\"PHILIPS MR SPECTRO;1\",28)',\n vr: \"IS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR SPECTRO;1\",29)': {\n tag: '(0019,\"PHILIPS MR SPECTRO;1\",29)',\n vr: \"IS\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR SPECTRO;1\",31)': {\n tag: '(0019,\"PHILIPS MR SPECTRO;1\",31)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR SPECTRO;1\",32)': {\n tag: '(0019,\"PHILIPS MR SPECTRO;1\",32)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR SPECTRO;1\",41)': {\n tag: '(0019,\"PHILIPS MR SPECTRO;1\",41)',\n vr: \"LT\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR SPECTRO;1\",42)': {\n tag: '(0019,\"PHILIPS MR SPECTRO;1\",42)',\n vr: \"IS\",\n name: \"Unknown\",\n vm: \"2\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR SPECTRO;1\",43)': {\n tag: '(0019,\"PHILIPS MR SPECTRO;1\",43)',\n vr: \"IS\",\n name: \"Unknown\",\n vm: \"2\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR SPECTRO;1\",45)': {\n tag: '(0019,\"PHILIPS MR SPECTRO;1\",45)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR SPECTRO;1\",46)': {\n tag: '(0019,\"PHILIPS MR SPECTRO;1\",46)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR SPECTRO;1\",47)': {\n tag: '(0019,\"PHILIPS MR SPECTRO;1\",47)',\n vr: \"IS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR SPECTRO;1\",48)': {\n tag: '(0019,\"PHILIPS MR SPECTRO;1\",48)',\n vr: \"IS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR SPECTRO;1\",49)': {\n tag: '(0019,\"PHILIPS MR SPECTRO;1\",49)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR SPECTRO;1\",50)': {\n tag: '(0019,\"PHILIPS MR SPECTRO;1\",50)',\n vr: \"UN\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR SPECTRO;1\",60)': {\n tag: '(0019,\"PHILIPS MR SPECTRO;1\",60)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR SPECTRO;1\",61)': {\n tag: '(0019,\"PHILIPS MR SPECTRO;1\",61)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR SPECTRO;1\",70)': {\n tag: '(0019,\"PHILIPS MR SPECTRO;1\",70)',\n vr: \"UN\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR SPECTRO;1\",71)': {\n tag: '(0019,\"PHILIPS MR SPECTRO;1\",71)',\n vr: \"IS\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR SPECTRO;1\",72)': {\n tag: '(0019,\"PHILIPS MR SPECTRO;1\",72)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR SPECTRO;1\",73)': {\n tag: '(0019,\"PHILIPS MR SPECTRO;1\",73)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR SPECTRO;1\",74)': {\n tag: '(0019,\"PHILIPS MR SPECTRO;1\",74)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR SPECTRO;1\",76)': {\n tag: '(0019,\"PHILIPS MR SPECTRO;1\",76)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR SPECTRO;1\",77)': {\n tag: '(0019,\"PHILIPS MR SPECTRO;1\",77)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR SPECTRO;1\",78)': {\n tag: '(0019,\"PHILIPS MR SPECTRO;1\",78)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR SPECTRO;1\",79)': {\n tag: '(0019,\"PHILIPS MR SPECTRO;1\",79)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR SPECTRO;1\",80)': {\n tag: '(0019,\"PHILIPS MR SPECTRO;1\",80)',\n vr: \"IS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"PHILIPS MR\",10)': {\n tag: '(0009,\"PHILIPS MR\",10)',\n vr: \"LO\",\n name: \"SPIRelease\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"PHILIPS MR\",12)': {\n tag: '(0009,\"PHILIPS MR\",12)',\n vr: \"LO\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR/LAST\",09)': {\n tag: '(0019,\"PHILIPS MR/LAST\",09)',\n vr: \"DS\",\n name: \"MainMagneticField\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR/LAST\",0e)': {\n tag: '(0019,\"PHILIPS MR/LAST\",0e)',\n vr: \"IS\",\n name: \"FlowCompensation\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR/LAST\",b1)': {\n tag: '(0019,\"PHILIPS MR/LAST\",b1)',\n vr: \"IS\",\n name: \"MinimumRRInterval\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR/LAST\",b2)': {\n tag: '(0019,\"PHILIPS MR/LAST\",b2)',\n vr: \"IS\",\n name: \"MaximumRRInterval\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR/LAST\",b3)': {\n tag: '(0019,\"PHILIPS MR/LAST\",b3)',\n vr: \"IS\",\n name: \"NumberOfRejections\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR/LAST\",b4)': {\n tag: '(0019,\"PHILIPS MR/LAST\",b4)',\n vr: \"IS\",\n name: \"NumberOfRRIntervals\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR/LAST\",b5)': {\n tag: '(0019,\"PHILIPS MR/LAST\",b5)',\n vr: \"IS\",\n name: \"ArrhythmiaRejection\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR/LAST\",c0)': {\n tag: '(0019,\"PHILIPS MR/LAST\",c0)',\n vr: \"DS\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR/LAST\",c6)': {\n tag: '(0019,\"PHILIPS MR/LAST\",c6)',\n vr: \"IS\",\n name: \"CycledMultipleSlice\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR/LAST\",ce)': {\n tag: '(0019,\"PHILIPS MR/LAST\",ce)',\n vr: \"IS\",\n name: \"REST\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR/LAST\",d5)': {\n tag: '(0019,\"PHILIPS MR/LAST\",d5)',\n vr: \"DS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR/LAST\",d6)': {\n tag: '(0019,\"PHILIPS MR/LAST\",d6)',\n vr: \"IS\",\n name: \"FourierInterpolation\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR/LAST\",d9)': {\n tag: '(0019,\"PHILIPS MR/LAST\",d9)',\n vr: \"IS\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR/LAST\",e0)': {\n tag: '(0019,\"PHILIPS MR/LAST\",e0)',\n vr: \"IS\",\n name: \"Prepulse\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR/LAST\",e1)': {\n tag: '(0019,\"PHILIPS MR/LAST\",e1)',\n vr: \"DS\",\n name: \"PrepulseDelay\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR/LAST\",e2)': {\n tag: '(0019,\"PHILIPS MR/LAST\",e2)',\n vr: \"IS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR/LAST\",e3)': {\n tag: '(0019,\"PHILIPS MR/LAST\",e3)',\n vr: \"DS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR/LAST\",f0)': {\n tag: '(0019,\"PHILIPS MR/LAST\",f0)',\n vr: \"LT\",\n name: \"WSProtocolString1\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR/LAST\",f1)': {\n tag: '(0019,\"PHILIPS MR/LAST\",f1)',\n vr: \"LT\",\n name: \"WSProtocolString2\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR/LAST\",f2)': {\n tag: '(0019,\"PHILIPS MR/LAST\",f2)',\n vr: \"LT\",\n name: \"WSProtocolString3\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR/LAST\",f3)': {\n tag: '(0019,\"PHILIPS MR/LAST\",f3)',\n vr: \"LT\",\n name: \"WSProtocolString4\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"PHILIPS MR/LAST\",00)': {\n tag: '(0021,\"PHILIPS MR/LAST\",00)',\n vr: \"IS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"PHILIPS MR/LAST\",10)': {\n tag: '(0021,\"PHILIPS MR/LAST\",10)',\n vr: \"IS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"PHILIPS MR/LAST\",20)': {\n tag: '(0021,\"PHILIPS MR/LAST\",20)',\n vr: \"IS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"PHILIPS MR/LAST\",21)': {\n tag: '(0021,\"PHILIPS MR/LAST\",21)',\n vr: \"DS\",\n name: \"SliceGap\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"PHILIPS MR/LAST\",22)': {\n tag: '(0021,\"PHILIPS MR/LAST\",22)',\n vr: \"DS\",\n name: \"StackRadialAngle\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0027,\"PHILIPS MR/LAST\",00)': {\n tag: '(0027,\"PHILIPS MR/LAST\",00)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0027,\"PHILIPS MR/LAST\",11)': {\n tag: '(0027,\"PHILIPS MR/LAST\",11)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0027,\"PHILIPS MR/LAST\",12)': {\n tag: '(0027,\"PHILIPS MR/LAST\",12)',\n vr: \"DS\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0027,\"PHILIPS MR/LAST\",13)': {\n tag: '(0027,\"PHILIPS MR/LAST\",13)',\n vr: \"DS\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0027,\"PHILIPS MR/LAST\",14)': {\n tag: '(0027,\"PHILIPS MR/LAST\",14)',\n vr: \"DS\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0027,\"PHILIPS MR/LAST\",15)': {\n tag: '(0027,\"PHILIPS MR/LAST\",15)',\n vr: \"DS\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0027,\"PHILIPS MR/LAST\",16)': {\n tag: '(0027,\"PHILIPS MR/LAST\",16)',\n vr: \"LO\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"PHILIPS MR/LAST\",10)': {\n tag: '(0029,\"PHILIPS MR/LAST\",10)',\n vr: \"DS\",\n name: \"FPMin\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"PHILIPS MR/LAST\",20)': {\n tag: '(0029,\"PHILIPS MR/LAST\",20)',\n vr: \"DS\",\n name: \"FPMax\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"PHILIPS MR/LAST\",30)': {\n tag: '(0029,\"PHILIPS MR/LAST\",30)',\n vr: \"DS\",\n name: \"ScaledMinimum\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"PHILIPS MR/LAST\",40)': {\n tag: '(0029,\"PHILIPS MR/LAST\",40)',\n vr: \"DS\",\n name: \"ScaledMaximum\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"PHILIPS MR/LAST\",50)': {\n tag: '(0029,\"PHILIPS MR/LAST\",50)',\n vr: \"DS\",\n name: \"WindowMinimum\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"PHILIPS MR/LAST\",60)': {\n tag: '(0029,\"PHILIPS MR/LAST\",60)',\n vr: \"DS\",\n name: \"WindowMaximum\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"PHILIPS MR/LAST\",61)': {\n tag: '(0029,\"PHILIPS MR/LAST\",61)',\n vr: \"IS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"PHILIPS MR/LAST\",70)': {\n tag: '(0029,\"PHILIPS MR/LAST\",70)',\n vr: \"DS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"PHILIPS MR/LAST\",71)': {\n tag: '(0029,\"PHILIPS MR/LAST\",71)',\n vr: \"DS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"PHILIPS MR/LAST\",72)': {\n tag: '(0029,\"PHILIPS MR/LAST\",72)',\n vr: \"IS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"PHILIPS MR/LAST\",80)': {\n tag: '(0029,\"PHILIPS MR/LAST\",80)',\n vr: \"IS\",\n name: \"ViewCenter\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"PHILIPS MR/LAST\",81)': {\n tag: '(0029,\"PHILIPS MR/LAST\",81)',\n vr: \"IS\",\n name: \"ViewSize\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"PHILIPS MR/LAST\",82)': {\n tag: '(0029,\"PHILIPS MR/LAST\",82)',\n vr: \"IS\",\n name: \"ViewZoom\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"PHILIPS MR/LAST\",83)': {\n tag: '(0029,\"PHILIPS MR/LAST\",83)',\n vr: \"IS\",\n name: \"ViewTransform\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(6001,\"PHILIPS MR/LAST\",00)': {\n tag: '(6001,\"PHILIPS MR/LAST\",00)',\n vr: \"LT\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR/PART\",1000)': {\n tag: '(0019,\"PHILIPS MR/PART\",1000)',\n vr: \"DS\",\n name: \"FieldOfView\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR/PART\",1005)': {\n tag: '(0019,\"PHILIPS MR/PART\",1005)',\n vr: \"DS\",\n name: \"CCAngulation\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR/PART\",1006)': {\n tag: '(0019,\"PHILIPS MR/PART\",1006)',\n vr: \"DS\",\n name: \"APAngulation\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR/PART\",1007)': {\n tag: '(0019,\"PHILIPS MR/PART\",1007)',\n vr: \"DS\",\n name: \"LRAngulation\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR/PART\",1008)': {\n tag: '(0019,\"PHILIPS MR/PART\",1008)',\n vr: \"IS\",\n name: \"PatientPosition\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR/PART\",1009)': {\n tag: '(0019,\"PHILIPS MR/PART\",1009)',\n vr: \"IS\",\n name: \"PatientOrientation\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR/PART\",100a)': {\n tag: '(0019,\"PHILIPS MR/PART\",100a)',\n vr: \"IS\",\n name: \"SliceOrientation\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR/PART\",100b)': {\n tag: '(0019,\"PHILIPS MR/PART\",100b)',\n vr: \"DS\",\n name: \"LROffcenter\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR/PART\",100c)': {\n tag: '(0019,\"PHILIPS MR/PART\",100c)',\n vr: \"DS\",\n name: \"CCOffcenter\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR/PART\",100d)': {\n tag: '(0019,\"PHILIPS MR/PART\",100d)',\n vr: \"DS\",\n name: \"APOffcenter\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR/PART\",100e)': {\n tag: '(0019,\"PHILIPS MR/PART\",100e)',\n vr: \"DS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR/PART\",100f)': {\n tag: '(0019,\"PHILIPS MR/PART\",100f)',\n vr: \"IS\",\n name: \"NumberOfSlices\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR/PART\",1010)': {\n tag: '(0019,\"PHILIPS MR/PART\",1010)',\n vr: \"DS\",\n name: \"SliceFactor\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR/PART\",1011)': {\n tag: '(0019,\"PHILIPS MR/PART\",1011)',\n vr: \"DS\",\n name: \"EchoTimes\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR/PART\",1015)': {\n tag: '(0019,\"PHILIPS MR/PART\",1015)',\n vr: \"IS\",\n name: \"DynamicStudy\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR/PART\",1018)': {\n tag: '(0019,\"PHILIPS MR/PART\",1018)',\n vr: \"DS\",\n name: \"HeartbeatInterval\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR/PART\",1019)': {\n tag: '(0019,\"PHILIPS MR/PART\",1019)',\n vr: \"DS\",\n name: \"RepetitionTimeFFE\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR/PART\",101a)': {\n tag: '(0019,\"PHILIPS MR/PART\",101a)',\n vr: \"DS\",\n name: \"FFEFlipAngle\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR/PART\",101b)': {\n tag: '(0019,\"PHILIPS MR/PART\",101b)',\n vr: \"IS\",\n name: \"NumberOfScans\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR/PART\",1021)': {\n tag: '(0019,\"PHILIPS MR/PART\",1021)',\n vr: \"DS\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR/PART\",1022)': {\n tag: '(0019,\"PHILIPS MR/PART\",1022)',\n vr: \"DS\",\n name: \"DynamicScanTimeBegin\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR/PART\",1024)': {\n tag: '(0019,\"PHILIPS MR/PART\",1024)',\n vr: \"IS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR/PART\",1064)': {\n tag: '(0019,\"PHILIPS MR/PART\",1064)',\n vr: \"DS\",\n name: \"RepetitionTimeSE\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR/PART\",1065)': {\n tag: '(0019,\"PHILIPS MR/PART\",1065)',\n vr: \"DS\",\n name: \"RepetitionTimeIR\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR/PART\",1069)': {\n tag: '(0019,\"PHILIPS MR/PART\",1069)',\n vr: \"IS\",\n name: \"NumberOfPhases\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR/PART\",106a)': {\n tag: '(0019,\"PHILIPS MR/PART\",106a)',\n vr: \"IS\",\n name: \"CardiacFrequency\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR/PART\",106b)': {\n tag: '(0019,\"PHILIPS MR/PART\",106b)',\n vr: \"DS\",\n name: \"InversionDelay\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR/PART\",106c)': {\n tag: '(0019,\"PHILIPS MR/PART\",106c)',\n vr: \"DS\",\n name: \"GateDelay\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR/PART\",106d)': {\n tag: '(0019,\"PHILIPS MR/PART\",106d)',\n vr: \"DS\",\n name: \"GateWidth\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR/PART\",106e)': {\n tag: '(0019,\"PHILIPS MR/PART\",106e)',\n vr: \"DS\",\n name: \"TriggerDelayTime\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR/PART\",1080)': {\n tag: '(0019,\"PHILIPS MR/PART\",1080)',\n vr: \"IS\",\n name: \"NumberOfChemicalShifts\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR/PART\",1081)': {\n tag: '(0019,\"PHILIPS MR/PART\",1081)',\n vr: \"DS\",\n name: \"ChemicalShift\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR/PART\",1084)': {\n tag: '(0019,\"PHILIPS MR/PART\",1084)',\n vr: \"IS\",\n name: \"NumberOfRows\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR/PART\",1085)': {\n tag: '(0019,\"PHILIPS MR/PART\",1085)',\n vr: \"IS\",\n name: \"NumberOfSamples\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR/PART\",1094)': {\n tag: '(0019,\"PHILIPS MR/PART\",1094)',\n vr: \"LO\",\n name: \"MagnetizationTransferContrast\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR/PART\",1095)': {\n tag: '(0019,\"PHILIPS MR/PART\",1095)',\n vr: \"LO\",\n name: \"SpectralPresaturationWithInversionRecovery\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR/PART\",1096)': {\n tag: '(0019,\"PHILIPS MR/PART\",1096)',\n vr: \"IS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR/PART\",1097)': {\n tag: '(0019,\"PHILIPS MR/PART\",1097)',\n vr: \"LO\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR/PART\",10a0)': {\n tag: '(0019,\"PHILIPS MR/PART\",10a0)',\n vr: \"IS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR/PART\",10a1)': {\n tag: '(0019,\"PHILIPS MR/PART\",10a1)',\n vr: \"DS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR/PART\",10a3)': {\n tag: '(0019,\"PHILIPS MR/PART\",10a3)',\n vr: \"DS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR/PART\",10a4)': {\n tag: '(0019,\"PHILIPS MR/PART\",10a4)',\n vr: \"CS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR/PART\",10c8)': {\n tag: '(0019,\"PHILIPS MR/PART\",10c8)',\n vr: \"IS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR/PART\",10c9)': {\n tag: '(0019,\"PHILIPS MR/PART\",10c9)',\n vr: \"IS\",\n name: \"FoldoverDirectionTransverse\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR/PART\",10ca)': {\n tag: '(0019,\"PHILIPS MR/PART\",10ca)',\n vr: \"IS\",\n name: \"FoldoverDirectionSagittal\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR/PART\",10cb)': {\n tag: '(0019,\"PHILIPS MR/PART\",10cb)',\n vr: \"IS\",\n name: \"FoldoverDirectionCoronal\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR/PART\",10cc)': {\n tag: '(0019,\"PHILIPS MR/PART\",10cc)',\n vr: \"IS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR/PART\",10cd)': {\n tag: '(0019,\"PHILIPS MR/PART\",10cd)',\n vr: \"IS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR/PART\",10ce)': {\n tag: '(0019,\"PHILIPS MR/PART\",10ce)',\n vr: \"IS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR/PART\",10cf)': {\n tag: '(0019,\"PHILIPS MR/PART\",10cf)',\n vr: \"IS\",\n name: \"NumberOfEchoes\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR/PART\",10d0)': {\n tag: '(0019,\"PHILIPS MR/PART\",10d0)',\n vr: \"IS\",\n name: \"ScanResolution\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR/PART\",10d2)': {\n tag: '(0019,\"PHILIPS MR/PART\",10d2)',\n vr: \"LO\",\n name: \"WaterFatShift\",\n vm: \"2\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR/PART\",10d4)': {\n tag: '(0019,\"PHILIPS MR/PART\",10d4)',\n vr: \"IS\",\n name: \"ArtifactReduction\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR/PART\",10d5)': {\n tag: '(0019,\"PHILIPS MR/PART\",10d5)',\n vr: \"IS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR/PART\",10d6)': {\n tag: '(0019,\"PHILIPS MR/PART\",10d6)',\n vr: \"IS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR/PART\",10d7)': {\n tag: '(0019,\"PHILIPS MR/PART\",10d7)',\n vr: \"DS\",\n name: \"ScanPercentage\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR/PART\",10d8)': {\n tag: '(0019,\"PHILIPS MR/PART\",10d8)',\n vr: \"IS\",\n name: \"Halfscan\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR/PART\",10d9)': {\n tag: '(0019,\"PHILIPS MR/PART\",10d9)',\n vr: \"IS\",\n name: \"EPIFactor\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR/PART\",10da)': {\n tag: '(0019,\"PHILIPS MR/PART\",10da)',\n vr: \"IS\",\n name: \"TurboFactor\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR/PART\",10db)': {\n tag: '(0019,\"PHILIPS MR/PART\",10db)',\n vr: \"IS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR/PART\",10e0)': {\n tag: '(0019,\"PHILIPS MR/PART\",10e0)',\n vr: \"IS\",\n name: \"PercentageOfScanCompleted\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR/PART\",10e1)': {\n tag: '(0019,\"PHILIPS MR/PART\",10e1)',\n vr: \"IS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR/PART\",1100)': {\n tag: '(0019,\"PHILIPS MR/PART\",1100)',\n vr: \"IS\",\n name: \"NumberOfStacks\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR/PART\",1101)': {\n tag: '(0019,\"PHILIPS MR/PART\",1101)',\n vr: \"IS\",\n name: \"StackType\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR/PART\",1102)': {\n tag: '(0019,\"PHILIPS MR/PART\",1102)',\n vr: \"IS\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR/PART\",110b)': {\n tag: '(0019,\"PHILIPS MR/PART\",110b)',\n vr: \"DS\",\n name: \"LROffcenter\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR/PART\",110c)': {\n tag: '(0019,\"PHILIPS MR/PART\",110c)',\n vr: \"DS\",\n name: \"CCOffcenter\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR/PART\",110d)': {\n tag: '(0019,\"PHILIPS MR/PART\",110d)',\n vr: \"DS\",\n name: \"APOffcenter\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR/PART\",1145)': {\n tag: '(0019,\"PHILIPS MR/PART\",1145)',\n vr: \"IS\",\n name: \"ReconstructionResolution\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR/PART\",11fc)': {\n tag: '(0019,\"PHILIPS MR/PART\",11fc)',\n vr: \"IS\",\n name: \"ResonanceFrequency\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR/PART\",12c0)': {\n tag: '(0019,\"PHILIPS MR/PART\",12c0)',\n vr: \"DS\",\n name: \"TriggerDelayTimes\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR/PART\",12e0)': {\n tag: '(0019,\"PHILIPS MR/PART\",12e0)',\n vr: \"IS\",\n name: \"PrepulseType\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR/PART\",12e1)': {\n tag: '(0019,\"PHILIPS MR/PART\",12e1)',\n vr: \"DS\",\n name: \"PrepulseDelay\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS MR/PART\",12e3)': {\n tag: '(0019,\"PHILIPS MR/PART\",12e3)',\n vr: \"DS\",\n name: \"PhaseContrastVelocity\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"PHILIPS MR/PART\",1000)': {\n tag: '(0021,\"PHILIPS MR/PART\",1000)',\n vr: \"IS\",\n name: \"ReconstructionNumber\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"PHILIPS MR/PART\",1010)': {\n tag: '(0021,\"PHILIPS MR/PART\",1010)',\n vr: \"IS\",\n name: \"ImageType\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"PHILIPS MR/PART\",1020)': {\n tag: '(0021,\"PHILIPS MR/PART\",1020)',\n vr: \"IS\",\n name: \"SliceNumber\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"PHILIPS MR/PART\",1030)': {\n tag: '(0021,\"PHILIPS MR/PART\",1030)',\n vr: \"IS\",\n name: \"EchoNumber\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"PHILIPS MR/PART\",1031)': {\n tag: '(0021,\"PHILIPS MR/PART\",1031)',\n vr: \"DS\",\n name: \"PatientReferenceID\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"PHILIPS MR/PART\",1035)': {\n tag: '(0021,\"PHILIPS MR/PART\",1035)',\n vr: \"IS\",\n name: \"ChemicalShiftNumber\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"PHILIPS MR/PART\",1040)': {\n tag: '(0021,\"PHILIPS MR/PART\",1040)',\n vr: \"IS\",\n name: \"PhaseNumber\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"PHILIPS MR/PART\",1050)': {\n tag: '(0021,\"PHILIPS MR/PART\",1050)',\n vr: \"IS\",\n name: \"DynamicScanNumber\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"PHILIPS MR/PART\",1060)': {\n tag: '(0021,\"PHILIPS MR/PART\",1060)',\n vr: \"IS\",\n name: \"NumberOfRowsInObject\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"PHILIPS MR/PART\",1061)': {\n tag: '(0021,\"PHILIPS MR/PART\",1061)',\n vr: \"IS\",\n name: \"RowNumber\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0021,\"PHILIPS MR/PART\",1062)': {\n tag: '(0021,\"PHILIPS MR/PART\",1062)',\n vr: \"IS\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0021,\"PHILIPS MR/PART\",1100)': {\n tag: '(0021,\"PHILIPS MR/PART\",1100)',\n vr: \"DA\",\n name: \"ScanDate\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"PHILIPS MR/PART\",1110)': {\n tag: '(0021,\"PHILIPS MR/PART\",1110)',\n vr: \"TM\",\n name: \"ScanTime\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"PHILIPS MR/PART\",1221)': {\n tag: '(0021,\"PHILIPS MR/PART\",1221)',\n vr: \"IS\",\n name: \"SliceGap\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"PHILIPS MR/PART\",00)': {\n tag: '(0029,\"PHILIPS MR/PART\",00)',\n vr: \"DS\",\n name: \"Unknown\",\n vm: \"2\",\n version: \"PrivateTag\"\n },\n '(0029,\"PHILIPS MR/PART\",04)': {\n tag: '(0029,\"PHILIPS MR/PART\",04)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"PHILIPS MR/PART\",10)': {\n tag: '(0029,\"PHILIPS MR/PART\",10)',\n vr: \"DS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"PHILIPS MR/PART\",11)': {\n tag: '(0029,\"PHILIPS MR/PART\",11)',\n vr: \"DS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"PHILIPS MR/PART\",20)': {\n tag: '(0029,\"PHILIPS MR/PART\",20)',\n vr: \"LO\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"PHILIPS MR/PART\",31)': {\n tag: '(0029,\"PHILIPS MR/PART\",31)',\n vr: \"DS\",\n name: \"Unknown\",\n vm: \"2\",\n version: \"PrivateTag\"\n },\n '(0029,\"PHILIPS MR/PART\",32)': {\n tag: '(0029,\"PHILIPS MR/PART\",32)',\n vr: \"DS\",\n name: \"Unknown\",\n vm: \"2\",\n version: \"PrivateTag\"\n },\n '(0029,\"PHILIPS MR/PART\",c3)': {\n tag: '(0029,\"PHILIPS MR/PART\",c3)',\n vr: \"IS\",\n name: \"ScanResolution\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"PHILIPS MR/PART\",c4)': {\n tag: '(0029,\"PHILIPS MR/PART\",c4)',\n vr: \"IS\",\n name: \"FieldOfView\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"PHILIPS MR/PART\",d5)': {\n tag: '(0029,\"PHILIPS MR/PART\",d5)',\n vr: \"LT\",\n name: \"SliceThickness\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS-MR-1\",11)': {\n tag: '(0019,\"PHILIPS-MR-1\",11)',\n vr: \"IS\",\n name: \"ChemicalShiftNumber\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"PHILIPS-MR-1\",12)': {\n tag: '(0019,\"PHILIPS-MR-1\",12)',\n vr: \"IS\",\n name: \"PhaseNumber\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"PHILIPS-MR-1\",01)': {\n tag: '(0021,\"PHILIPS-MR-1\",01)',\n vr: \"IS\",\n name: \"ReconstructionNumber\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"PHILIPS-MR-1\",02)': {\n tag: '(0021,\"PHILIPS-MR-1\",02)',\n vr: \"IS\",\n name: \"SliceNumber\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(7001,\"Picker NM Private Group\",01)': {\n tag: '(7001,\"Picker NM Private Group\",01)',\n vr: \"UI\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(7001,\"Picker NM Private Group\",02)': {\n tag: '(7001,\"Picker NM Private Group\",02)',\n vr: \"OB\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS CM VA0 ACQU\",10)': {\n tag: '(0019,\"SIEMENS CM VA0 ACQU\",10)',\n vr: \"LT\",\n name: \"ParameterFileName\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS CM VA0 ACQU\",11)': {\n tag: '(0019,\"SIEMENS CM VA0 ACQU\",11)',\n vr: \"LO\",\n name: \"SequenceFileName\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS CM VA0 ACQU\",12)': {\n tag: '(0019,\"SIEMENS CM VA0 ACQU\",12)',\n vr: \"LT\",\n name: \"SequenceFileOwner\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS CM VA0 ACQU\",13)': {\n tag: '(0019,\"SIEMENS CM VA0 ACQU\",13)',\n vr: \"LT\",\n name: \"SequenceDescription\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS CM VA0 ACQU\",14)': {\n tag: '(0019,\"SIEMENS CM VA0 ACQU\",14)',\n vr: \"LT\",\n name: \"EPIFileName\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"SIEMENS CM VA0 CMS\",00)': {\n tag: '(0009,\"SIEMENS CM VA0 CMS\",00)',\n vr: \"DS\",\n name: \"NumberOfMeasurements\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"SIEMENS CM VA0 CMS\",10)': {\n tag: '(0009,\"SIEMENS CM VA0 CMS\",10)',\n vr: \"LT\",\n name: \"StorageMode\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"SIEMENS CM VA0 CMS\",12)': {\n tag: '(0009,\"SIEMENS CM VA0 CMS\",12)',\n vr: \"UL\",\n name: \"EvaluationMaskImage\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"SIEMENS CM VA0 CMS\",26)': {\n tag: '(0009,\"SIEMENS CM VA0 CMS\",26)',\n vr: \"DA\",\n name: \"LastMoveDate\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"SIEMENS CM VA0 CMS\",27)': {\n tag: '(0009,\"SIEMENS CM VA0 CMS\",27)',\n vr: \"TM\",\n name: \"LastMoveTime\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0011,\"SIEMENS CM VA0 CMS\",0a)': {\n tag: '(0011,\"SIEMENS CM VA0 CMS\",0a)',\n vr: \"LT\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0011,\"SIEMENS CM VA0 CMS\",10)': {\n tag: '(0011,\"SIEMENS CM VA0 CMS\",10)',\n vr: \"DA\",\n name: \"RegistrationDate\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0011,\"SIEMENS CM VA0 CMS\",11)': {\n tag: '(0011,\"SIEMENS CM VA0 CMS\",11)',\n vr: \"TM\",\n name: \"RegistrationTime\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0011,\"SIEMENS CM VA0 CMS\",22)': {\n tag: '(0011,\"SIEMENS CM VA0 CMS\",22)',\n vr: \"LT\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0011,\"SIEMENS CM VA0 CMS\",23)': {\n tag: '(0011,\"SIEMENS CM VA0 CMS\",23)',\n vr: \"DS\",\n name: \"UsedPatientWeight\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0011,\"SIEMENS CM VA0 CMS\",40)': {\n tag: '(0011,\"SIEMENS CM VA0 CMS\",40)',\n vr: \"IS\",\n name: \"OrganCode\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0013,\"SIEMENS CM VA0 CMS\",00)': {\n tag: '(0013,\"SIEMENS CM VA0 CMS\",00)',\n vr: \"LT\",\n name: \"ModifyingPhysician\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0013,\"SIEMENS CM VA0 CMS\",10)': {\n tag: '(0013,\"SIEMENS CM VA0 CMS\",10)',\n vr: \"DA\",\n name: \"ModificationDate\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0013,\"SIEMENS CM VA0 CMS\",12)': {\n tag: '(0013,\"SIEMENS CM VA0 CMS\",12)',\n vr: \"TM\",\n name: \"ModificationTime\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0013,\"SIEMENS CM VA0 CMS\",20)': {\n tag: '(0013,\"SIEMENS CM VA0 CMS\",20)',\n vr: \"LO\",\n name: \"PatientName\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0013,\"SIEMENS CM VA0 CMS\",22)': {\n tag: '(0013,\"SIEMENS CM VA0 CMS\",22)',\n vr: \"LO\",\n name: \"PatientId\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0013,\"SIEMENS CM VA0 CMS\",30)': {\n tag: '(0013,\"SIEMENS CM VA0 CMS\",30)',\n vr: \"DA\",\n name: \"PatientBirthdate\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0013,\"SIEMENS CM VA0 CMS\",31)': {\n tag: '(0013,\"SIEMENS CM VA0 CMS\",31)',\n vr: \"DS\",\n name: \"PatientWeight\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0013,\"SIEMENS CM VA0 CMS\",32)': {\n tag: '(0013,\"SIEMENS CM VA0 CMS\",32)',\n vr: \"LT\",\n name: \"PatientsMaidenName\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0013,\"SIEMENS CM VA0 CMS\",33)': {\n tag: '(0013,\"SIEMENS CM VA0 CMS\",33)',\n vr: \"LT\",\n name: \"ReferringPhysician\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0013,\"SIEMENS CM VA0 CMS\",34)': {\n tag: '(0013,\"SIEMENS CM VA0 CMS\",34)',\n vr: \"LT\",\n name: \"AdmittingDiagnosis\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0013,\"SIEMENS CM VA0 CMS\",35)': {\n tag: '(0013,\"SIEMENS CM VA0 CMS\",35)',\n vr: \"LO\",\n name: \"PatientSex\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0013,\"SIEMENS CM VA0 CMS\",40)': {\n tag: '(0013,\"SIEMENS CM VA0 CMS\",40)',\n vr: \"LO\",\n name: \"ProcedureDescription\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0013,\"SIEMENS CM VA0 CMS\",42)': {\n tag: '(0013,\"SIEMENS CM VA0 CMS\",42)',\n vr: \"LO\",\n name: \"RestDirection\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0013,\"SIEMENS CM VA0 CMS\",44)': {\n tag: '(0013,\"SIEMENS CM VA0 CMS\",44)',\n vr: \"LO\",\n name: \"PatientPosition\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0013,\"SIEMENS CM VA0 CMS\",46)': {\n tag: '(0013,\"SIEMENS CM VA0 CMS\",46)',\n vr: \"LT\",\n name: \"ViewDirection\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0013,\"SIEMENS CM VA0 CMS\",50)': {\n tag: '(0013,\"SIEMENS CM VA0 CMS\",50)',\n vr: \"LT\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0013,\"SIEMENS CM VA0 CMS\",51)': {\n tag: '(0013,\"SIEMENS CM VA0 CMS\",51)',\n vr: \"LT\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0013,\"SIEMENS CM VA0 CMS\",52)': {\n tag: '(0013,\"SIEMENS CM VA0 CMS\",52)',\n vr: \"LT\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0013,\"SIEMENS CM VA0 CMS\",53)': {\n tag: '(0013,\"SIEMENS CM VA0 CMS\",53)',\n vr: \"LT\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0013,\"SIEMENS CM VA0 CMS\",54)': {\n tag: '(0013,\"SIEMENS CM VA0 CMS\",54)',\n vr: \"LT\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0013,\"SIEMENS CM VA0 CMS\",55)': {\n tag: '(0013,\"SIEMENS CM VA0 CMS\",55)',\n vr: \"LT\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0013,\"SIEMENS CM VA0 CMS\",56)': {\n tag: '(0013,\"SIEMENS CM VA0 CMS\",56)',\n vr: \"LT\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS CM VA0 CMS\",10)': {\n tag: '(0019,\"SIEMENS CM VA0 CMS\",10)',\n vr: \"DS\",\n name: \"NetFrequency\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS CM VA0 CMS\",20)': {\n tag: '(0019,\"SIEMENS CM VA0 CMS\",20)',\n vr: \"LT\",\n name: \"MeasurementMode\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS CM VA0 CMS\",30)': {\n tag: '(0019,\"SIEMENS CM VA0 CMS\",30)',\n vr: \"LT\",\n name: \"CalculationMode\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS CM VA0 CMS\",50)': {\n tag: '(0019,\"SIEMENS CM VA0 CMS\",50)',\n vr: \"IS\",\n name: \"NoiseLevel\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS CM VA0 CMS\",60)': {\n tag: '(0019,\"SIEMENS CM VA0 CMS\",60)',\n vr: \"IS\",\n name: \"NumberOfDataBytes\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS CM VA0 CMS\",20)': {\n tag: '(0021,\"SIEMENS CM VA0 CMS\",20)',\n vr: \"DS\",\n name: \"FoV\",\n vm: \"2\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS CM VA0 CMS\",22)': {\n tag: '(0021,\"SIEMENS CM VA0 CMS\",22)',\n vr: \"DS\",\n name: \"ImageMagnificationFactor\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS CM VA0 CMS\",24)': {\n tag: '(0021,\"SIEMENS CM VA0 CMS\",24)',\n vr: \"DS\",\n name: \"ImageScrollOffset\",\n vm: \"2\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS CM VA0 CMS\",26)': {\n tag: '(0021,\"SIEMENS CM VA0 CMS\",26)',\n vr: \"IS\",\n name: \"ImagePixelOffset\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS CM VA0 CMS\",30)': {\n tag: '(0021,\"SIEMENS CM VA0 CMS\",30)',\n vr: \"LT\",\n name: \"ViewDirection\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS CM VA0 CMS\",32)': {\n tag: '(0021,\"SIEMENS CM VA0 CMS\",32)',\n vr: \"CS\",\n name: \"PatientRestDirection\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS CM VA0 CMS\",60)': {\n tag: '(0021,\"SIEMENS CM VA0 CMS\",60)',\n vr: \"DS\",\n name: \"ImagePosition\",\n vm: \"3\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS CM VA0 CMS\",61)': {\n tag: '(0021,\"SIEMENS CM VA0 CMS\",61)',\n vr: \"DS\",\n name: \"ImageNormal\",\n vm: \"3\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS CM VA0 CMS\",63)': {\n tag: '(0021,\"SIEMENS CM VA0 CMS\",63)',\n vr: \"DS\",\n name: \"ImageDistance\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS CM VA0 CMS\",65)': {\n tag: '(0021,\"SIEMENS CM VA0 CMS\",65)',\n vr: \"US\",\n name: \"ImagePositioningHistoryMask\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS CM VA0 CMS\",6a)': {\n tag: '(0021,\"SIEMENS CM VA0 CMS\",6a)',\n vr: \"DS\",\n name: \"ImageRow\",\n vm: \"3\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS CM VA0 CMS\",6b)': {\n tag: '(0021,\"SIEMENS CM VA0 CMS\",6b)',\n vr: \"DS\",\n name: \"ImageColumn\",\n vm: \"3\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS CM VA0 CMS\",70)': {\n tag: '(0021,\"SIEMENS CM VA0 CMS\",70)',\n vr: \"LT\",\n name: \"PatientOrientationSet1\",\n vm: \"3\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS CM VA0 CMS\",71)': {\n tag: '(0021,\"SIEMENS CM VA0 CMS\",71)',\n vr: \"LT\",\n name: \"PatientOrientationSet2\",\n vm: \"3\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS CM VA0 CMS\",80)': {\n tag: '(0021,\"SIEMENS CM VA0 CMS\",80)',\n vr: \"LT\",\n name: \"StudyName\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS CM VA0 CMS\",82)': {\n tag: '(0021,\"SIEMENS CM VA0 CMS\",82)',\n vr: \"LT\",\n name: \"StudyType\",\n vm: \"3\",\n version: \"PrivateTag\"\n },\n '(0029,\"SIEMENS CM VA0 CMS\",10)': {\n tag: '(0029,\"SIEMENS CM VA0 CMS\",10)',\n vr: \"LT\",\n name: \"WindowStyle\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SIEMENS CM VA0 CMS\",11)': {\n tag: '(0029,\"SIEMENS CM VA0 CMS\",11)',\n vr: \"LT\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SIEMENS CM VA0 CMS\",13)': {\n tag: '(0029,\"SIEMENS CM VA0 CMS\",13)',\n vr: \"LT\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SIEMENS CM VA0 CMS\",20)': {\n tag: '(0029,\"SIEMENS CM VA0 CMS\",20)',\n vr: \"LT\",\n name: \"PixelQualityCode\",\n vm: \"3\",\n version: \"PrivateTag\"\n },\n '(0029,\"SIEMENS CM VA0 CMS\",22)': {\n tag: '(0029,\"SIEMENS CM VA0 CMS\",22)',\n vr: \"IS\",\n name: \"PixelQualityValue\",\n vm: \"3\",\n version: \"PrivateTag\"\n },\n '(0029,\"SIEMENS CM VA0 CMS\",50)': {\n tag: '(0029,\"SIEMENS CM VA0 CMS\",50)',\n vr: \"LT\",\n name: \"ArchiveCode\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SIEMENS CM VA0 CMS\",51)': {\n tag: '(0029,\"SIEMENS CM VA0 CMS\",51)',\n vr: \"LT\",\n name: \"ExposureCode\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SIEMENS CM VA0 CMS\",52)': {\n tag: '(0029,\"SIEMENS CM VA0 CMS\",52)',\n vr: \"LT\",\n name: \"SortCode\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SIEMENS CM VA0 CMS\",53)': {\n tag: '(0029,\"SIEMENS CM VA0 CMS\",53)',\n vr: \"LT\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SIEMENS CM VA0 CMS\",60)': {\n tag: '(0029,\"SIEMENS CM VA0 CMS\",60)',\n vr: \"LT\",\n name: \"Splash\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0051,\"SIEMENS CM VA0 CMS\",10)': {\n tag: '(0051,\"SIEMENS CM VA0 CMS\",10)',\n vr: \"LT\",\n name: \"ImageText\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(6021,\"SIEMENS CM VA0 CMS\",00)': {\n tag: '(6021,\"SIEMENS CM VA0 CMS\",00)',\n vr: \"LT\",\n name: \"ImageGraphicsFormatCode\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(6021,\"SIEMENS CM VA0 CMS\",10)': {\n tag: '(6021,\"SIEMENS CM VA0 CMS\",10)',\n vr: \"LT\",\n name: \"ImageGraphics\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(7fe1,\"SIEMENS CM VA0 CMS\",00)': {\n tag: '(7fe1,\"SIEMENS CM VA0 CMS\",00)',\n vr: \"OB\",\n name: \"BinaryData\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0009,\"SIEMENS CM VA0 LAB\",10)': {\n tag: '(0009,\"SIEMENS CM VA0 LAB\",10)',\n vr: \"LT\",\n name: \"GeneratorIdentificationLabel\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"SIEMENS CM VA0 LAB\",11)': {\n tag: '(0009,\"SIEMENS CM VA0 LAB\",11)',\n vr: \"LT\",\n name: \"GantryIdentificationLabel\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"SIEMENS CM VA0 LAB\",12)': {\n tag: '(0009,\"SIEMENS CM VA0 LAB\",12)',\n vr: \"LT\",\n name: \"X-RayTubeIdentificationLabel\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"SIEMENS CM VA0 LAB\",13)': {\n tag: '(0009,\"SIEMENS CM VA0 LAB\",13)',\n vr: \"LT\",\n name: \"DetectorIdentificationLabel\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"SIEMENS CM VA0 LAB\",14)': {\n tag: '(0009,\"SIEMENS CM VA0 LAB\",14)',\n vr: \"LT\",\n name: \"DASIdentificationLabel\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"SIEMENS CM VA0 LAB\",15)': {\n tag: '(0009,\"SIEMENS CM VA0 LAB\",15)',\n vr: \"LT\",\n name: \"SMIIdentificationLabel\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"SIEMENS CM VA0 LAB\",16)': {\n tag: '(0009,\"SIEMENS CM VA0 LAB\",16)',\n vr: \"LT\",\n name: \"CPUIdentificationLabel\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"SIEMENS CM VA0 LAB\",20)': {\n tag: '(0009,\"SIEMENS CM VA0 LAB\",20)',\n vr: \"LT\",\n name: \"HeaderVersion\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SIEMENS CSA HEADER\",08)': {\n tag: '(0029,\"SIEMENS CSA HEADER\",08)',\n vr: \"CS\",\n name: \"CSAImageHeaderType\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SIEMENS CSA HEADER\",09)': {\n tag: '(0029,\"SIEMENS CSA HEADER\",09)',\n vr: \"LO\",\n name: \"CSAImageHeaderVersion\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SIEMENS CSA HEADER\",10)': {\n tag: '(0029,\"SIEMENS CSA HEADER\",10)',\n vr: \"OB\",\n name: \"CSAImageHeaderInfo\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SIEMENS CSA HEADER\",18)': {\n tag: '(0029,\"SIEMENS CSA HEADER\",18)',\n vr: \"CS\",\n name: \"CSASeriesHeaderType\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SIEMENS CSA HEADER\",19)': {\n tag: '(0029,\"SIEMENS CSA HEADER\",19)',\n vr: \"LO\",\n name: \"CSASeriesHeaderVersion\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SIEMENS CSA HEADER\",20)': {\n tag: '(0029,\"SIEMENS CSA HEADER\",20)',\n vr: \"OB\",\n name: \"CSASeriesHeaderInfo\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SIEMENS CSA NON-IMAGE\",08)': {\n tag: '(0029,\"SIEMENS CSA NON-IMAGE\",08)',\n vr: \"CS\",\n name: \"CSADataType\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SIEMENS CSA NON-IMAGE\",09)': {\n tag: '(0029,\"SIEMENS CSA NON-IMAGE\",09)',\n vr: \"LO\",\n name: \"CSADataVersion\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SIEMENS CSA NON-IMAGE\",10)': {\n tag: '(0029,\"SIEMENS CSA NON-IMAGE\",10)',\n vr: \"OB\",\n name: \"CSADataInfo\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(7FE1,\"SIEMENS CSA NON-IMAGE\",10)': {\n tag: '(7FE1,\"SIEMENS CSA NON-IMAGE\",10)',\n vr: \"OB\",\n name: \"CSAData\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS CT VA0 COAD\",10)': {\n tag: '(0019,\"SIEMENS CT VA0 COAD\",10)',\n vr: \"DS\",\n name: \"DistanceSourceToSourceSideCollimator\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS CT VA0 COAD\",11)': {\n tag: '(0019,\"SIEMENS CT VA0 COAD\",11)',\n vr: \"DS\",\n name: \"DistanceSourceToDetectorSideCollimator\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS CT VA0 COAD\",20)': {\n tag: '(0019,\"SIEMENS CT VA0 COAD\",20)',\n vr: \"IS\",\n name: \"NumberOfPossibleChannels\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS CT VA0 COAD\",21)': {\n tag: '(0019,\"SIEMENS CT VA0 COAD\",21)',\n vr: \"IS\",\n name: \"MeanChannelNumber\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS CT VA0 COAD\",22)': {\n tag: '(0019,\"SIEMENS CT VA0 COAD\",22)',\n vr: \"DS\",\n name: \"DetectorSpacing\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS CT VA0 COAD\",23)': {\n tag: '(0019,\"SIEMENS CT VA0 COAD\",23)',\n vr: \"DS\",\n name: \"DetectorCenter\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS CT VA0 COAD\",24)': {\n tag: '(0019,\"SIEMENS CT VA0 COAD\",24)',\n vr: \"DS\",\n name: \"ReadingIntegrationTime\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS CT VA0 COAD\",50)': {\n tag: '(0019,\"SIEMENS CT VA0 COAD\",50)',\n vr: \"DS\",\n name: \"DetectorAlignment\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS CT VA0 COAD\",52)': {\n tag: '(0019,\"SIEMENS CT VA0 COAD\",52)',\n vr: \"DS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS CT VA0 COAD\",54)': {\n tag: '(0019,\"SIEMENS CT VA0 COAD\",54)',\n vr: \"DS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS CT VA0 COAD\",60)': {\n tag: '(0019,\"SIEMENS CT VA0 COAD\",60)',\n vr: \"DS\",\n name: \"FocusAlignment\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS CT VA0 COAD\",65)': {\n tag: '(0019,\"SIEMENS CT VA0 COAD\",65)',\n vr: \"UL\",\n name: \"FocalSpotDeflectionAmplitude\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS CT VA0 COAD\",66)': {\n tag: '(0019,\"SIEMENS CT VA0 COAD\",66)',\n vr: \"UL\",\n name: \"FocalSpotDeflectionPhase\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS CT VA0 COAD\",67)': {\n tag: '(0019,\"SIEMENS CT VA0 COAD\",67)',\n vr: \"UL\",\n name: \"FocalSpotDeflectionOffset\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS CT VA0 COAD\",70)': {\n tag: '(0019,\"SIEMENS CT VA0 COAD\",70)',\n vr: \"DS\",\n name: \"WaterScalingFactor\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS CT VA0 COAD\",71)': {\n tag: '(0019,\"SIEMENS CT VA0 COAD\",71)',\n vr: \"DS\",\n name: \"InterpolationFactor\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS CT VA0 COAD\",80)': {\n tag: '(0019,\"SIEMENS CT VA0 COAD\",80)',\n vr: \"LT\",\n name: \"PatientRegion\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS CT VA0 COAD\",82)': {\n tag: '(0019,\"SIEMENS CT VA0 COAD\",82)',\n vr: \"LT\",\n name: \"PatientPhaseOfLife\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS CT VA0 COAD\",90)': {\n tag: '(0019,\"SIEMENS CT VA0 COAD\",90)',\n vr: \"DS\",\n name: \"OsteoOffset\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS CT VA0 COAD\",92)': {\n tag: '(0019,\"SIEMENS CT VA0 COAD\",92)',\n vr: \"DS\",\n name: \"OsteoRegressionLineSlope\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS CT VA0 COAD\",93)': {\n tag: '(0019,\"SIEMENS CT VA0 COAD\",93)',\n vr: \"DS\",\n name: \"OsteoRegressionLineIntercept\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS CT VA0 COAD\",94)': {\n tag: '(0019,\"SIEMENS CT VA0 COAD\",94)',\n vr: \"DS\",\n name: \"OsteoStandardizationCode\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS CT VA0 COAD\",96)': {\n tag: '(0019,\"SIEMENS CT VA0 COAD\",96)',\n vr: \"IS\",\n name: \"OsteoPhantomNumber\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS CT VA0 COAD\",A3)': {\n tag: '(0019,\"SIEMENS CT VA0 COAD\",A3)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS CT VA0 COAD\",A4)': {\n tag: '(0019,\"SIEMENS CT VA0 COAD\",A4)',\n vr: \"DS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS CT VA0 COAD\",A5)': {\n tag: '(0019,\"SIEMENS CT VA0 COAD\",A5)',\n vr: \"DS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS CT VA0 COAD\",A6)': {\n tag: '(0019,\"SIEMENS CT VA0 COAD\",A6)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS CT VA0 COAD\",A7)': {\n tag: '(0019,\"SIEMENS CT VA0 COAD\",A7)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS CT VA0 COAD\",A8)': {\n tag: '(0019,\"SIEMENS CT VA0 COAD\",A8)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS CT VA0 COAD\",A9)': {\n tag: '(0019,\"SIEMENS CT VA0 COAD\",A9)',\n vr: \"DS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS CT VA0 COAD\",AA)': {\n tag: '(0019,\"SIEMENS CT VA0 COAD\",AA)',\n vr: \"LT\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS CT VA0 COAD\",AB)': {\n tag: '(0019,\"SIEMENS CT VA0 COAD\",AB)',\n vr: \"DS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS CT VA0 COAD\",AC)': {\n tag: '(0019,\"SIEMENS CT VA0 COAD\",AC)',\n vr: \"DS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS CT VA0 COAD\",AD)': {\n tag: '(0019,\"SIEMENS CT VA0 COAD\",AD)',\n vr: \"DS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS CT VA0 COAD\",AE)': {\n tag: '(0019,\"SIEMENS CT VA0 COAD\",AE)',\n vr: \"DS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS CT VA0 COAD\",AF)': {\n tag: '(0019,\"SIEMENS CT VA0 COAD\",AF)',\n vr: \"DS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS CT VA0 COAD\",B0)': {\n tag: '(0019,\"SIEMENS CT VA0 COAD\",B0)',\n vr: \"DS\",\n name: \"FeedPerRotation\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS CT VA0 COAD\",BD)': {\n tag: '(0019,\"SIEMENS CT VA0 COAD\",BD)',\n vr: \"IS\",\n name: \"PulmoTriggerLevel\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS CT VA0 COAD\",BE)': {\n tag: '(0019,\"SIEMENS CT VA0 COAD\",BE)',\n vr: \"DS\",\n name: \"ExpiratoricReserveVolume\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS CT VA0 COAD\",BF)': {\n tag: '(0019,\"SIEMENS CT VA0 COAD\",BF)',\n vr: \"DS\",\n name: \"VitalCapacity\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS CT VA0 COAD\",C0)': {\n tag: '(0019,\"SIEMENS CT VA0 COAD\",C0)',\n vr: \"DS\",\n name: \"PulmoWater\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS CT VA0 COAD\",C1)': {\n tag: '(0019,\"SIEMENS CT VA0 COAD\",C1)',\n vr: \"DS\",\n name: \"PulmoAir\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS CT VA0 COAD\",C2)': {\n tag: '(0019,\"SIEMENS CT VA0 COAD\",C2)',\n vr: \"DA\",\n name: \"PulmoDate\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS CT VA0 COAD\",C3)': {\n tag: '(0019,\"SIEMENS CT VA0 COAD\",C3)',\n vr: \"TM\",\n name: \"PulmoTime\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS CT VA0 GEN\",10)': {\n tag: '(0019,\"SIEMENS CT VA0 GEN\",10)',\n vr: \"DS\",\n name: \"SourceSideCollimatorAperture\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS CT VA0 GEN\",11)': {\n tag: '(0019,\"SIEMENS CT VA0 GEN\",11)',\n vr: \"DS\",\n name: \"DetectorSideCollimatorAperture\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS CT VA0 GEN\",20)': {\n tag: '(0019,\"SIEMENS CT VA0 GEN\",20)',\n vr: \"DS\",\n name: \"ExposureTime\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS CT VA0 GEN\",21)': {\n tag: '(0019,\"SIEMENS CT VA0 GEN\",21)',\n vr: \"DS\",\n name: \"ExposureCurrent\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS CT VA0 GEN\",25)': {\n tag: '(0019,\"SIEMENS CT VA0 GEN\",25)',\n vr: \"DS\",\n name: \"KVPGeneratorPowerCurrent\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS CT VA0 GEN\",26)': {\n tag: '(0019,\"SIEMENS CT VA0 GEN\",26)',\n vr: \"DS\",\n name: \"GeneratorVoltage\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS CT VA0 GEN\",40)': {\n tag: '(0019,\"SIEMENS CT VA0 GEN\",40)',\n vr: \"UL\",\n name: \"MasterControlMask\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS CT VA0 GEN\",42)': {\n tag: '(0019,\"SIEMENS CT VA0 GEN\",42)',\n vr: \"US\",\n name: \"ProcessingMask\",\n vm: \"5\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS CT VA0 GEN\",44)': {\n tag: '(0019,\"SIEMENS CT VA0 GEN\",44)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS CT VA0 GEN\",45)': {\n tag: '(0019,\"SIEMENS CT VA0 GEN\",45)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS CT VA0 GEN\",62)': {\n tag: '(0019,\"SIEMENS CT VA0 GEN\",62)',\n vr: \"IS\",\n name: \"NumberOfVirtuellChannels\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS CT VA0 GEN\",70)': {\n tag: '(0019,\"SIEMENS CT VA0 GEN\",70)',\n vr: \"IS\",\n name: \"NumberOfReadings\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS CT VA0 GEN\",71)': {\n tag: '(0019,\"SIEMENS CT VA0 GEN\",71)',\n vr: \"LT\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS CT VA0 GEN\",74)': {\n tag: '(0019,\"SIEMENS CT VA0 GEN\",74)',\n vr: \"IS\",\n name: \"NumberOfProjections\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS CT VA0 GEN\",75)': {\n tag: '(0019,\"SIEMENS CT VA0 GEN\",75)',\n vr: \"IS\",\n name: \"NumberOfBytes\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS CT VA0 GEN\",80)': {\n tag: '(0019,\"SIEMENS CT VA0 GEN\",80)',\n vr: \"LT\",\n name: \"ReconstructionAlgorithmSet\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS CT VA0 GEN\",81)': {\n tag: '(0019,\"SIEMENS CT VA0 GEN\",81)',\n vr: \"LT\",\n name: \"ReconstructionAlgorithmIndex\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS CT VA0 GEN\",82)': {\n tag: '(0019,\"SIEMENS CT VA0 GEN\",82)',\n vr: \"LT\",\n name: \"RegenerationSoftwareVersion\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS CT VA0 GEN\",88)': {\n tag: '(0019,\"SIEMENS CT VA0 GEN\",88)',\n vr: \"DS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS CT VA0 GEN\",10)': {\n tag: '(0021,\"SIEMENS CT VA0 GEN\",10)',\n vr: \"IS\",\n name: \"RotationAngle\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS CT VA0 GEN\",11)': {\n tag: '(0021,\"SIEMENS CT VA0 GEN\",11)',\n vr: \"IS\",\n name: \"StartAngle\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS CT VA0 GEN\",20)': {\n tag: '(0021,\"SIEMENS CT VA0 GEN\",20)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS CT VA0 GEN\",30)': {\n tag: '(0021,\"SIEMENS CT VA0 GEN\",30)',\n vr: \"IS\",\n name: \"TopogramTubePosition\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS CT VA0 GEN\",32)': {\n tag: '(0021,\"SIEMENS CT VA0 GEN\",32)',\n vr: \"DS\",\n name: \"LengthOfTopogram\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS CT VA0 GEN\",34)': {\n tag: '(0021,\"SIEMENS CT VA0 GEN\",34)',\n vr: \"DS\",\n name: \"TopogramCorrectionFactor\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS CT VA0 GEN\",36)': {\n tag: '(0021,\"SIEMENS CT VA0 GEN\",36)',\n vr: \"DS\",\n name: \"MaximumTablePosition\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS CT VA0 GEN\",40)': {\n tag: '(0021,\"SIEMENS CT VA0 GEN\",40)',\n vr: \"IS\",\n name: \"TableMoveDirectionCode\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS CT VA0 GEN\",45)': {\n tag: '(0021,\"SIEMENS CT VA0 GEN\",45)',\n vr: \"IS\",\n name: \"VOIStartRow\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS CT VA0 GEN\",46)': {\n tag: '(0021,\"SIEMENS CT VA0 GEN\",46)',\n vr: \"IS\",\n name: \"VOIStopRow\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS CT VA0 GEN\",47)': {\n tag: '(0021,\"SIEMENS CT VA0 GEN\",47)',\n vr: \"IS\",\n name: \"VOIStartColumn\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS CT VA0 GEN\",48)': {\n tag: '(0021,\"SIEMENS CT VA0 GEN\",48)',\n vr: \"IS\",\n name: \"VOIStopColumn\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS CT VA0 GEN\",49)': {\n tag: '(0021,\"SIEMENS CT VA0 GEN\",49)',\n vr: \"IS\",\n name: \"VOIStartSlice\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS CT VA0 GEN\",4a)': {\n tag: '(0021,\"SIEMENS CT VA0 GEN\",4a)',\n vr: \"IS\",\n name: \"VOIStopSlice\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS CT VA0 GEN\",50)': {\n tag: '(0021,\"SIEMENS CT VA0 GEN\",50)',\n vr: \"IS\",\n name: \"VectorStartRow\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS CT VA0 GEN\",51)': {\n tag: '(0021,\"SIEMENS CT VA0 GEN\",51)',\n vr: \"IS\",\n name: \"VectorRowStep\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS CT VA0 GEN\",52)': {\n tag: '(0021,\"SIEMENS CT VA0 GEN\",52)',\n vr: \"IS\",\n name: \"VectorStartColumn\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS CT VA0 GEN\",53)': {\n tag: '(0021,\"SIEMENS CT VA0 GEN\",53)',\n vr: \"IS\",\n name: \"VectorColumnStep\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS CT VA0 GEN\",60)': {\n tag: '(0021,\"SIEMENS CT VA0 GEN\",60)',\n vr: \"IS\",\n name: \"RangeTypeCode\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS CT VA0 GEN\",62)': {\n tag: '(0021,\"SIEMENS CT VA0 GEN\",62)',\n vr: \"IS\",\n name: \"ReferenceTypeCode\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS CT VA0 GEN\",70)': {\n tag: '(0021,\"SIEMENS CT VA0 GEN\",70)',\n vr: \"DS\",\n name: \"ObjectOrientation\",\n vm: \"3\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS CT VA0 GEN\",72)': {\n tag: '(0021,\"SIEMENS CT VA0 GEN\",72)',\n vr: \"DS\",\n name: \"LightOrientation\",\n vm: \"3\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS CT VA0 GEN\",75)': {\n tag: '(0021,\"SIEMENS CT VA0 GEN\",75)',\n vr: \"DS\",\n name: \"LightBrightness\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS CT VA0 GEN\",76)': {\n tag: '(0021,\"SIEMENS CT VA0 GEN\",76)',\n vr: \"DS\",\n name: \"LightContrast\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS CT VA0 GEN\",7a)': {\n tag: '(0021,\"SIEMENS CT VA0 GEN\",7a)',\n vr: \"IS\",\n name: \"OverlayThreshold\",\n vm: \"2\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS CT VA0 GEN\",7b)': {\n tag: '(0021,\"SIEMENS CT VA0 GEN\",7b)',\n vr: \"IS\",\n name: \"SurfaceThreshold\",\n vm: \"2\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS CT VA0 GEN\",7c)': {\n tag: '(0021,\"SIEMENS CT VA0 GEN\",7c)',\n vr: \"IS\",\n name: \"GreyScaleThreshold\",\n vm: \"2\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS CT VA0 GEN\",a0)': {\n tag: '(0021,\"SIEMENS CT VA0 GEN\",a0)',\n vr: \"DS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS CT VA0 GEN\",a2)': {\n tag: '(0021,\"SIEMENS CT VA0 GEN\",a2)',\n vr: \"LT\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS CT VA0 GEN\",a7)': {\n tag: '(0021,\"SIEMENS CT VA0 GEN\",a7)',\n vr: \"LT\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"SIEMENS CT VA0 IDE\",10)': {\n tag: '(0009,\"SIEMENS CT VA0 IDE\",10)',\n vr: \"LT\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"SIEMENS CT VA0 IDE\",30)': {\n tag: '(0009,\"SIEMENS CT VA0 IDE\",30)',\n vr: \"LT\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"SIEMENS CT VA0 IDE\",31)': {\n tag: '(0009,\"SIEMENS CT VA0 IDE\",31)',\n vr: \"LT\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"SIEMENS CT VA0 IDE\",32)': {\n tag: '(0009,\"SIEMENS CT VA0 IDE\",32)',\n vr: \"LT\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"SIEMENS CT VA0 IDE\",34)': {\n tag: '(0009,\"SIEMENS CT VA0 IDE\",34)',\n vr: \"LT\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"SIEMENS CT VA0 IDE\",40)': {\n tag: '(0009,\"SIEMENS CT VA0 IDE\",40)',\n vr: \"LT\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"SIEMENS CT VA0 IDE\",42)': {\n tag: '(0009,\"SIEMENS CT VA0 IDE\",42)',\n vr: \"LT\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"SIEMENS CT VA0 IDE\",50)': {\n tag: '(0009,\"SIEMENS CT VA0 IDE\",50)',\n vr: \"LT\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"SIEMENS CT VA0 IDE\",51)': {\n tag: '(0009,\"SIEMENS CT VA0 IDE\",51)',\n vr: \"LT\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"SIEMENS CT VA0 ORI\",20)': {\n tag: '(0009,\"SIEMENS CT VA0 ORI\",20)',\n vr: \"LT\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"SIEMENS CT VA0 ORI\",30)': {\n tag: '(0009,\"SIEMENS CT VA0 ORI\",30)',\n vr: \"LT\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(6021,\"SIEMENS CT VA0 OST\",00)': {\n tag: '(6021,\"SIEMENS CT VA0 OST\",00)',\n vr: \"LT\",\n name: \"OsteoContourComment\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(6021,\"SIEMENS CT VA0 OST\",10)': {\n tag: '(6021,\"SIEMENS CT VA0 OST\",10)',\n vr: \"US\",\n name: \"OsteoContourBuffer\",\n vm: \"256\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS CT VA0 RAW\",10)': {\n tag: '(0021,\"SIEMENS CT VA0 RAW\",10)',\n vr: \"UL\",\n name: \"CreationMask\",\n vm: \"2\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS CT VA0 RAW\",20)': {\n tag: '(0021,\"SIEMENS CT VA0 RAW\",20)',\n vr: \"UL\",\n name: \"EvaluationMask\",\n vm: \"2\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS CT VA0 RAW\",30)': {\n tag: '(0021,\"SIEMENS CT VA0 RAW\",30)',\n vr: \"US\",\n name: \"ExtendedProcessingMask\",\n vm: \"7\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS CT VA0 RAW\",40)': {\n tag: '(0021,\"SIEMENS CT VA0 RAW\",40)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS CT VA0 RAW\",41)': {\n tag: '(0021,\"SIEMENS CT VA0 RAW\",41)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS CT VA0 RAW\",42)': {\n tag: '(0021,\"SIEMENS CT VA0 RAW\",42)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS CT VA0 RAW\",43)': {\n tag: '(0021,\"SIEMENS CT VA0 RAW\",43)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS CT VA0 RAW\",44)': {\n tag: '(0021,\"SIEMENS CT VA0 RAW\",44)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS CT VA0 RAW\",50)': {\n tag: '(0021,\"SIEMENS CT VA0 RAW\",50)',\n vr: \"LT\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"SIEMENS DICOM\",10)': {\n tag: '(0009,\"SIEMENS DICOM\",10)',\n vr: \"UN\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"SIEMENS DICOM\",12)': {\n tag: '(0009,\"SIEMENS DICOM\",12)',\n vr: \"LT\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS DLR.01\",10)': {\n tag: '(0019,\"SIEMENS DLR.01\",10)',\n vr: \"LT\",\n name: \"MeasurementMode\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS DLR.01\",11)': {\n tag: '(0019,\"SIEMENS DLR.01\",11)',\n vr: \"LT\",\n name: \"ImageType\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS DLR.01\",15)': {\n tag: '(0019,\"SIEMENS DLR.01\",15)',\n vr: \"LT\",\n name: \"SoftwareVersion\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS DLR.01\",20)': {\n tag: '(0019,\"SIEMENS DLR.01\",20)',\n vr: \"LT\",\n name: \"MPMCode\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS DLR.01\",21)': {\n tag: '(0019,\"SIEMENS DLR.01\",21)',\n vr: \"LT\",\n name: \"Latitude\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS DLR.01\",22)': {\n tag: '(0019,\"SIEMENS DLR.01\",22)',\n vr: \"LT\",\n name: \"Sensitivity\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS DLR.01\",23)': {\n tag: '(0019,\"SIEMENS DLR.01\",23)',\n vr: \"LT\",\n name: \"EDR\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS DLR.01\",24)': {\n tag: '(0019,\"SIEMENS DLR.01\",24)',\n vr: \"LT\",\n name: \"LFix\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS DLR.01\",25)': {\n tag: '(0019,\"SIEMENS DLR.01\",25)',\n vr: \"LT\",\n name: \"SFix\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS DLR.01\",26)': {\n tag: '(0019,\"SIEMENS DLR.01\",26)',\n vr: \"LT\",\n name: \"PresetMode\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS DLR.01\",27)': {\n tag: '(0019,\"SIEMENS DLR.01\",27)',\n vr: \"LT\",\n name: \"Region\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS DLR.01\",28)': {\n tag: '(0019,\"SIEMENS DLR.01\",28)',\n vr: \"LT\",\n name: \"Subregion\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS DLR.01\",30)': {\n tag: '(0019,\"SIEMENS DLR.01\",30)',\n vr: \"LT\",\n name: \"Orientation\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS DLR.01\",31)': {\n tag: '(0019,\"SIEMENS DLR.01\",31)',\n vr: \"LT\",\n name: \"MarkOnFilm\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS DLR.01\",32)': {\n tag: '(0019,\"SIEMENS DLR.01\",32)',\n vr: \"LT\",\n name: \"RotationOnDRC\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS DLR.01\",40)': {\n tag: '(0019,\"SIEMENS DLR.01\",40)',\n vr: \"LT\",\n name: \"ReaderType\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS DLR.01\",41)': {\n tag: '(0019,\"SIEMENS DLR.01\",41)',\n vr: \"LT\",\n name: \"SubModality\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS DLR.01\",42)': {\n tag: '(0019,\"SIEMENS DLR.01\",42)',\n vr: \"LT\",\n name: \"ReaderSerialNumber\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS DLR.01\",50)': {\n tag: '(0019,\"SIEMENS DLR.01\",50)',\n vr: \"LT\",\n name: \"CassetteScale\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS DLR.01\",51)': {\n tag: '(0019,\"SIEMENS DLR.01\",51)',\n vr: \"LT\",\n name: \"CassetteMatrix\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS DLR.01\",52)': {\n tag: '(0019,\"SIEMENS DLR.01\",52)',\n vr: \"LT\",\n name: \"CassetteSubmatrix\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS DLR.01\",53)': {\n tag: '(0019,\"SIEMENS DLR.01\",53)',\n vr: \"LT\",\n name: \"Barcode\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS DLR.01\",60)': {\n tag: '(0019,\"SIEMENS DLR.01\",60)',\n vr: \"LT\",\n name: \"ContrastType\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS DLR.01\",61)': {\n tag: '(0019,\"SIEMENS DLR.01\",61)',\n vr: \"LT\",\n name: \"RotationAmount\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS DLR.01\",62)': {\n tag: '(0019,\"SIEMENS DLR.01\",62)',\n vr: \"LT\",\n name: \"RotationCenter\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS DLR.01\",63)': {\n tag: '(0019,\"SIEMENS DLR.01\",63)',\n vr: \"LT\",\n name: \"DensityShift\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS DLR.01\",64)': {\n tag: '(0019,\"SIEMENS DLR.01\",64)',\n vr: \"US\",\n name: \"FrequencyRank\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS DLR.01\",65)': {\n tag: '(0019,\"SIEMENS DLR.01\",65)',\n vr: \"LT\",\n name: \"FrequencyEnhancement\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS DLR.01\",66)': {\n tag: '(0019,\"SIEMENS DLR.01\",66)',\n vr: \"LT\",\n name: \"FrequencyType\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS DLR.01\",67)': {\n tag: '(0019,\"SIEMENS DLR.01\",67)',\n vr: \"LT\",\n name: \"KernelLength\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS DLR.01\",68)': {\n tag: '(0019,\"SIEMENS DLR.01\",68)',\n vr: \"UL\",\n name: \"KernelMode\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS DLR.01\",69)': {\n tag: '(0019,\"SIEMENS DLR.01\",69)',\n vr: \"UL\",\n name: \"ConvolutionMode\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS DLR.01\",70)': {\n tag: '(0019,\"SIEMENS DLR.01\",70)',\n vr: \"LT\",\n name: \"PLASource\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS DLR.01\",71)': {\n tag: '(0019,\"SIEMENS DLR.01\",71)',\n vr: \"LT\",\n name: \"PLADestination\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS DLR.01\",75)': {\n tag: '(0019,\"SIEMENS DLR.01\",75)',\n vr: \"LT\",\n name: \"UIDOriginalImage\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS DLR.01\",76)': {\n tag: '(0019,\"SIEMENS DLR.01\",76)',\n vr: \"LT\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS DLR.01\",80)': {\n tag: '(0019,\"SIEMENS DLR.01\",80)',\n vr: \"LT\",\n name: \"ReaderHeader\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS DLR.01\",90)': {\n tag: '(0019,\"SIEMENS DLR.01\",90)',\n vr: \"LT\",\n name: \"PLAOfSecondaryDestination\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS DLR.01\",a0)': {\n tag: '(0019,\"SIEMENS DLR.01\",a0)',\n vr: \"DS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS DLR.01\",a1)': {\n tag: '(0019,\"SIEMENS DLR.01\",a1)',\n vr: \"DS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0041,\"SIEMENS DLR.01\",10)': {\n tag: '(0041,\"SIEMENS DLR.01\",10)',\n vr: \"US\",\n name: \"NumberOfHardcopies\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0041,\"SIEMENS DLR.01\",20)': {\n tag: '(0041,\"SIEMENS DLR.01\",20)',\n vr: \"LT\",\n name: \"FilmFormat\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0041,\"SIEMENS DLR.01\",30)': {\n tag: '(0041,\"SIEMENS DLR.01\",30)',\n vr: \"LT\",\n name: \"FilmSize\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0041,\"SIEMENS DLR.01\",31)': {\n tag: '(0041,\"SIEMENS DLR.01\",31)',\n vr: \"LT\",\n name: \"FullFilmFormat\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0003,\"SIEMENS ISI\",08)': {\n tag: '(0003,\"SIEMENS ISI\",08)',\n vr: \"US\",\n name: \"ISICommandField\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0003,\"SIEMENS ISI\",11)': {\n tag: '(0003,\"SIEMENS ISI\",11)',\n vr: \"US\",\n name: \"AttachIDApplicationCode\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0003,\"SIEMENS ISI\",12)': {\n tag: '(0003,\"SIEMENS ISI\",12)',\n vr: \"UL\",\n name: \"AttachIDMessageCount\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0003,\"SIEMENS ISI\",13)': {\n tag: '(0003,\"SIEMENS ISI\",13)',\n vr: \"DA\",\n name: \"AttachIDDate\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0003,\"SIEMENS ISI\",14)': {\n tag: '(0003,\"SIEMENS ISI\",14)',\n vr: \"TM\",\n name: \"AttachIDTime\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0003,\"SIEMENS ISI\",20)': {\n tag: '(0003,\"SIEMENS ISI\",20)',\n vr: \"US\",\n name: \"MessageType\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0003,\"SIEMENS ISI\",30)': {\n tag: '(0003,\"SIEMENS ISI\",30)',\n vr: \"DA\",\n name: \"MaxWaitingDate\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0003,\"SIEMENS ISI\",31)': {\n tag: '(0003,\"SIEMENS ISI\",31)',\n vr: \"TM\",\n name: \"MaxWaitingTime\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"SIEMENS ISI\",01)': {\n tag: '(0009,\"SIEMENS ISI\",01)',\n vr: \"UN\",\n name: \"RISPatientInfoIMGEF\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0011,\"SIEMENS ISI\",03)': {\n tag: '(0011,\"SIEMENS ISI\",03)',\n vr: \"LT\",\n name: \"PatientUID\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0011,\"SIEMENS ISI\",04)': {\n tag: '(0011,\"SIEMENS ISI\",04)',\n vr: \"LT\",\n name: \"PatientID\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0011,\"SIEMENS ISI\",0a)': {\n tag: '(0011,\"SIEMENS ISI\",0a)',\n vr: \"LT\",\n name: \"CaseID\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0011,\"SIEMENS ISI\",22)': {\n tag: '(0011,\"SIEMENS ISI\",22)',\n vr: \"LT\",\n name: \"RequestID\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0011,\"SIEMENS ISI\",23)': {\n tag: '(0011,\"SIEMENS ISI\",23)',\n vr: \"LT\",\n name: \"ExaminationUID\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0011,\"SIEMENS ISI\",a1)': {\n tag: '(0011,\"SIEMENS ISI\",a1)',\n vr: \"DA\",\n name: \"PatientRegistrationDate\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0011,\"SIEMENS ISI\",a2)': {\n tag: '(0011,\"SIEMENS ISI\",a2)',\n vr: \"TM\",\n name: \"PatientRegistrationTime\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0011,\"SIEMENS ISI\",b0)': {\n tag: '(0011,\"SIEMENS ISI\",b0)',\n vr: \"LT\",\n name: \"PatientLastName\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0011,\"SIEMENS ISI\",b2)': {\n tag: '(0011,\"SIEMENS ISI\",b2)',\n vr: \"LT\",\n name: \"PatientFirstName\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0011,\"SIEMENS ISI\",b4)': {\n tag: '(0011,\"SIEMENS ISI\",b4)',\n vr: \"LT\",\n name: \"PatientHospitalStatus\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0011,\"SIEMENS ISI\",bc)': {\n tag: '(0011,\"SIEMENS ISI\",bc)',\n vr: \"TM\",\n name: \"CurrentLocationTime\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0011,\"SIEMENS ISI\",c0)': {\n tag: '(0011,\"SIEMENS ISI\",c0)',\n vr: \"LT\",\n name: \"PatientInsuranceStatus\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0011,\"SIEMENS ISI\",d0)': {\n tag: '(0011,\"SIEMENS ISI\",d0)',\n vr: \"LT\",\n name: \"PatientBillingType\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0011,\"SIEMENS ISI\",d2)': {\n tag: '(0011,\"SIEMENS ISI\",d2)',\n vr: \"LT\",\n name: \"PatientBillingAddress\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0031,\"SIEMENS ISI\",12)': {\n tag: '(0031,\"SIEMENS ISI\",12)',\n vr: \"LT\",\n name: \"ExaminationReason\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0031,\"SIEMENS ISI\",30)': {\n tag: '(0031,\"SIEMENS ISI\",30)',\n vr: \"DA\",\n name: \"RequestedDate\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0031,\"SIEMENS ISI\",32)': {\n tag: '(0031,\"SIEMENS ISI\",32)',\n vr: \"TM\",\n name: \"WorklistRequestStartTime\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0031,\"SIEMENS ISI\",33)': {\n tag: '(0031,\"SIEMENS ISI\",33)',\n vr: \"TM\",\n name: \"WorklistRequestEndTime\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0031,\"SIEMENS ISI\",4a)': {\n tag: '(0031,\"SIEMENS ISI\",4a)',\n vr: \"TM\",\n name: \"RequestedTime\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0031,\"SIEMENS ISI\",80)': {\n tag: '(0031,\"SIEMENS ISI\",80)',\n vr: \"LT\",\n name: \"RequestedLocation\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0055,\"SIEMENS ISI\",46)': {\n tag: '(0055,\"SIEMENS ISI\",46)',\n vr: \"LT\",\n name: \"CurrentWard\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0193,\"SIEMENS ISI\",02)': {\n tag: '(0193,\"SIEMENS ISI\",02)',\n vr: \"DS\",\n name: \"RISKey\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0307,\"SIEMENS ISI\",01)': {\n tag: '(0307,\"SIEMENS ISI\",01)',\n vr: \"UN\",\n name: \"RISWorklistIMGEF\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0309,\"SIEMENS ISI\",01)': {\n tag: '(0309,\"SIEMENS ISI\",01)',\n vr: \"UN\",\n name: \"RISReportIMGEF\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(4009,\"SIEMENS ISI\",01)': {\n tag: '(4009,\"SIEMENS ISI\",01)',\n vr: \"LT\",\n name: \"ReportID\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(4009,\"SIEMENS ISI\",20)': {\n tag: '(4009,\"SIEMENS ISI\",20)',\n vr: \"LT\",\n name: \"ReportStatus\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(4009,\"SIEMENS ISI\",30)': {\n tag: '(4009,\"SIEMENS ISI\",30)',\n vr: \"DA\",\n name: \"ReportCreationDate\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(4009,\"SIEMENS ISI\",70)': {\n tag: '(4009,\"SIEMENS ISI\",70)',\n vr: \"LT\",\n name: \"ReportApprovingPhysician\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(4009,\"SIEMENS ISI\",e0)': {\n tag: '(4009,\"SIEMENS ISI\",e0)',\n vr: \"LT\",\n name: \"ReportText\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(4009,\"SIEMENS ISI\",e1)': {\n tag: '(4009,\"SIEMENS ISI\",e1)',\n vr: \"LT\",\n name: \"ReportAuthor\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(4009,\"SIEMENS ISI\",e3)': {\n tag: '(4009,\"SIEMENS ISI\",e3)',\n vr: \"LT\",\n name: \"ReportingRadiologist\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SIEMENS MED DISPLAY\",04)': {\n tag: '(0029,\"SIEMENS MED DISPLAY\",04)',\n vr: \"LT\",\n name: \"PhotometricInterpretation\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SIEMENS MED DISPLAY\",10)': {\n tag: '(0029,\"SIEMENS MED DISPLAY\",10)',\n vr: \"US\",\n name: \"RowsOfSubmatrix\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SIEMENS MED DISPLAY\",11)': {\n tag: '(0029,\"SIEMENS MED DISPLAY\",11)',\n vr: \"US\",\n name: \"ColumnsOfSubmatrix\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SIEMENS MED DISPLAY\",20)': {\n tag: '(0029,\"SIEMENS MED DISPLAY\",20)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SIEMENS MED DISPLAY\",21)': {\n tag: '(0029,\"SIEMENS MED DISPLAY\",21)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SIEMENS MED DISPLAY\",50)': {\n tag: '(0029,\"SIEMENS MED DISPLAY\",50)',\n vr: \"US\",\n name: \"OriginOfSubmatrix\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SIEMENS MED DISPLAY\",99)': {\n tag: '(0029,\"SIEMENS MED DISPLAY\",99)',\n vr: \"LT\",\n name: \"ShutterType\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SIEMENS MED DISPLAY\",a0)': {\n tag: '(0029,\"SIEMENS MED DISPLAY\",a0)',\n vr: \"US\",\n name: \"RowsOfRectangularShutter\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SIEMENS MED DISPLAY\",a1)': {\n tag: '(0029,\"SIEMENS MED DISPLAY\",a1)',\n vr: \"US\",\n name: \"ColumnsOfRectangularShutter\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SIEMENS MED DISPLAY\",a2)': {\n tag: '(0029,\"SIEMENS MED DISPLAY\",a2)',\n vr: \"US\",\n name: \"OriginOfRectangularShutter\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SIEMENS MED DISPLAY\",b0)': {\n tag: '(0029,\"SIEMENS MED DISPLAY\",b0)',\n vr: \"US\",\n name: \"RadiusOfCircularShutter\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SIEMENS MED DISPLAY\",b2)': {\n tag: '(0029,\"SIEMENS MED DISPLAY\",b2)',\n vr: \"US\",\n name: \"OriginOfCircularShutter\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SIEMENS MED DISPLAY\",c1)': {\n tag: '(0029,\"SIEMENS MED DISPLAY\",c1)',\n vr: \"US\",\n name: \"ContourOfIrregularShutter\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SIEMENS MED HG\",10)': {\n tag: '(0029,\"SIEMENS MED HG\",10)',\n vr: \"US\",\n name: \"ListOfGroupNumbers\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SIEMENS MED HG\",15)': {\n tag: '(0029,\"SIEMENS MED HG\",15)',\n vr: \"LT\",\n name: \"ListOfShadowOwnerCodes\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SIEMENS MED HG\",20)': {\n tag: '(0029,\"SIEMENS MED HG\",20)',\n vr: \"US\",\n name: \"ListOfElementNumbers\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SIEMENS MED HG\",30)': {\n tag: '(0029,\"SIEMENS MED HG\",30)',\n vr: \"US\",\n name: \"ListOfTotalDisplayLength\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SIEMENS MED HG\",40)': {\n tag: '(0029,\"SIEMENS MED HG\",40)',\n vr: \"LT\",\n name: \"ListOfDisplayPrefix\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SIEMENS MED HG\",50)': {\n tag: '(0029,\"SIEMENS MED HG\",50)',\n vr: \"LT\",\n name: \"ListOfDisplayPostfix\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SIEMENS MED HG\",60)': {\n tag: '(0029,\"SIEMENS MED HG\",60)',\n vr: \"US\",\n name: \"ListOfTextPosition\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SIEMENS MED HG\",70)': {\n tag: '(0029,\"SIEMENS MED HG\",70)',\n vr: \"LT\",\n name: \"ListOfTextConcatenation\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SIEMENS MED MG\",10)': {\n tag: '(0029,\"SIEMENS MED MG\",10)',\n vr: \"US\",\n name: \"ListOfGroupNumbers\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SIEMENS MED MG\",15)': {\n tag: '(0029,\"SIEMENS MED MG\",15)',\n vr: \"LT\",\n name: \"ListOfShadowOwnerCodes\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SIEMENS MED MG\",20)': {\n tag: '(0029,\"SIEMENS MED MG\",20)',\n vr: \"US\",\n name: \"ListOfElementNumbers\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SIEMENS MED MG\",30)': {\n tag: '(0029,\"SIEMENS MED MG\",30)',\n vr: \"US\",\n name: \"ListOfTotalDisplayLength\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SIEMENS MED MG\",40)': {\n tag: '(0029,\"SIEMENS MED MG\",40)',\n vr: \"LT\",\n name: \"ListOfDisplayPrefix\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SIEMENS MED MG\",50)': {\n tag: '(0029,\"SIEMENS MED MG\",50)',\n vr: \"LT\",\n name: \"ListOfDisplayPostfix\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SIEMENS MED MG\",60)': {\n tag: '(0029,\"SIEMENS MED MG\",60)',\n vr: \"US\",\n name: \"ListOfTextPosition\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SIEMENS MED MG\",70)': {\n tag: '(0029,\"SIEMENS MED MG\",70)',\n vr: \"LT\",\n name: \"ListOfTextConcatenation\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"SIEMENS MED\",10)': {\n tag: '(0009,\"SIEMENS MED\",10)',\n vr: \"LO\",\n name: \"RecognitionCode\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"SIEMENS MED\",30)': {\n tag: '(0009,\"SIEMENS MED\",30)',\n vr: \"UL\",\n name: \"ByteOffsetOfOriginalHeader\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"SIEMENS MED\",31)': {\n tag: '(0009,\"SIEMENS MED\",31)',\n vr: \"UL\",\n name: \"LengthOfOriginalHeader\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"SIEMENS MED\",40)': {\n tag: '(0009,\"SIEMENS MED\",40)',\n vr: \"UL\",\n name: \"ByteOffsetOfPixelmatrix\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"SIEMENS MED\",41)': {\n tag: '(0009,\"SIEMENS MED\",41)',\n vr: \"UL\",\n name: \"LengthOfPixelmatrixInBytes\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"SIEMENS MED\",50)': {\n tag: '(0009,\"SIEMENS MED\",50)',\n vr: \"LT\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"SIEMENS MED\",51)': {\n tag: '(0009,\"SIEMENS MED\",51)',\n vr: \"LT\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"SIEMENS MED\",f5)': {\n tag: '(0009,\"SIEMENS MED\",f5)',\n vr: \"LT\",\n name: \"PDMEFIDPlaceholder\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"SIEMENS MED\",f6)': {\n tag: '(0009,\"SIEMENS MED\",f6)',\n vr: \"LT\",\n name: \"PDMDataObjectTypeExtension\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS MED\",10)': {\n tag: '(0021,\"SIEMENS MED\",10)',\n vr: \"DS\",\n name: \"Zoom\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS MED\",11)': {\n tag: '(0021,\"SIEMENS MED\",11)',\n vr: \"DS\",\n name: \"Target\",\n vm: \"2\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS MED\",12)': {\n tag: '(0021,\"SIEMENS MED\",12)',\n vr: \"IS\",\n name: \"TubeAngle\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS MED\",20)': {\n tag: '(0021,\"SIEMENS MED\",20)',\n vr: \"US\",\n name: \"ROIMask\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(7001,\"SIEMENS MED\",10)': {\n tag: '(7001,\"SIEMENS MED\",10)',\n vr: \"LT\",\n name: \"Dummy\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(7003,\"SIEMENS MED\",10)': {\n tag: '(7003,\"SIEMENS MED\",10)',\n vr: \"LT\",\n name: \"Header\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(7005,\"SIEMENS MED\",10)': {\n tag: '(7005,\"SIEMENS MED\",10)',\n vr: \"LT\",\n name: \"Dummy\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SIEMENS MEDCOM HEADER\",08)': {\n tag: '(0029,\"SIEMENS MEDCOM HEADER\",08)',\n vr: \"CS\",\n name: \"MedComHeaderType\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SIEMENS MEDCOM HEADER\",09)': {\n tag: '(0029,\"SIEMENS MEDCOM HEADER\",09)',\n vr: \"LO\",\n name: \"MedComHeaderVersion\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SIEMENS MEDCOM HEADER\",10)': {\n tag: '(0029,\"SIEMENS MEDCOM HEADER\",10)',\n vr: \"OB\",\n name: \"MedComHeaderInfo\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SIEMENS MEDCOM HEADER\",20)': {\n tag: '(0029,\"SIEMENS MEDCOM HEADER\",20)',\n vr: \"OB\",\n name: \"MedComHistoryInformation\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SIEMENS MEDCOM HEADER\",31)': {\n tag: '(0029,\"SIEMENS MEDCOM HEADER\",31)',\n vr: \"LO\",\n name: \"PMTFInformation1\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SIEMENS MEDCOM HEADER\",32)': {\n tag: '(0029,\"SIEMENS MEDCOM HEADER\",32)',\n vr: \"UL\",\n name: \"PMTFInformation2\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SIEMENS MEDCOM HEADER\",33)': {\n tag: '(0029,\"SIEMENS MEDCOM HEADER\",33)',\n vr: \"UL\",\n name: \"PMTFInformation3\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SIEMENS MEDCOM HEADER\",34)': {\n tag: '(0029,\"SIEMENS MEDCOM HEADER\",34)',\n vr: \"CS\",\n name: \"PMTFInformation4\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SIEMENS MEDCOM HEADER\",35)': {\n tag: '(0029,\"SIEMENS MEDCOM HEADER\",35)',\n vr: \"UL\",\n name: \"PMTFInformation5\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SIEMENS MEDCOM HEADER\",40)': {\n tag: '(0029,\"SIEMENS MEDCOM HEADER\",40)',\n vr: \"SQ\",\n name: \"ApplicationHeaderSequence\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SIEMENS MEDCOM HEADER\",41)': {\n tag: '(0029,\"SIEMENS MEDCOM HEADER\",41)',\n vr: \"CS\",\n name: \"ApplicationHeaderType\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SIEMENS MEDCOM HEADER\",42)': {\n tag: '(0029,\"SIEMENS MEDCOM HEADER\",42)',\n vr: \"LO\",\n name: \"ApplicationHeaderID\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SIEMENS MEDCOM HEADER\",43)': {\n tag: '(0029,\"SIEMENS MEDCOM HEADER\",43)',\n vr: \"LO\",\n name: \"ApplicationHeaderVersion\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SIEMENS MEDCOM HEADER\",44)': {\n tag: '(0029,\"SIEMENS MEDCOM HEADER\",44)',\n vr: \"OB\",\n name: \"ApplicationHeaderInfo\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SIEMENS MEDCOM HEADER\",50)': {\n tag: '(0029,\"SIEMENS MEDCOM HEADER\",50)',\n vr: \"LO\",\n name: \"WorkflowControlFlags\",\n vm: \"8\",\n version: \"PrivateTag\"\n },\n '(0029,\"SIEMENS MEDCOM HEADER\",51)': {\n tag: '(0029,\"SIEMENS MEDCOM HEADER\",51)',\n vr: \"CS\",\n name: \"ArchiveManagementFlagKeepOnline\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SIEMENS MEDCOM HEADER\",52)': {\n tag: '(0029,\"SIEMENS MEDCOM HEADER\",52)',\n vr: \"CS\",\n name: \"ArchiveManagementFlagDoNotArchive\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SIEMENS MEDCOM HEADER\",53)': {\n tag: '(0029,\"SIEMENS MEDCOM HEADER\",53)',\n vr: \"CS\",\n name: \"ImageLocationStatus\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SIEMENS MEDCOM HEADER\",54)': {\n tag: '(0029,\"SIEMENS MEDCOM HEADER\",54)',\n vr: \"DS\",\n name: \"EstimatedRetrieveTime\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SIEMENS MEDCOM HEADER\",55)': {\n tag: '(0029,\"SIEMENS MEDCOM HEADER\",55)',\n vr: \"DS\",\n name: \"DataSizeOfRetrievedImages\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SIEMENS MEDCOM HEADER\",70)': {\n tag: '(0029,\"SIEMENS MEDCOM HEADER\",70)',\n vr: \"SQ\",\n name: \"SiemensLinkSequence\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SIEMENS MEDCOM HEADER\",71)': {\n tag: '(0029,\"SIEMENS MEDCOM HEADER\",71)',\n vr: \"AT\",\n name: \"ReferencedTag\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SIEMENS MEDCOM HEADER\",72)': {\n tag: '(0029,\"SIEMENS MEDCOM HEADER\",72)',\n vr: \"CS\",\n name: \"ReferencedTagType\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SIEMENS MEDCOM HEADER\",73)': {\n tag: '(0029,\"SIEMENS MEDCOM HEADER\",73)',\n vr: \"UL\",\n name: \"ReferencedValueLength\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SIEMENS MEDCOM HEADER\",74)': {\n tag: '(0029,\"SIEMENS MEDCOM HEADER\",74)',\n vr: \"CS\",\n name: \"ReferencedObjectDeviceType\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SIEMENS MEDCOM HEADER\",75)': {\n tag: '(0029,\"SIEMENS MEDCOM HEADER\",75)',\n vr: \"OB\",\n name: \"ReferencedObjectDeviceLocation\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SIEMENS MEDCOM HEADER\",76)': {\n tag: '(0029,\"SIEMENS MEDCOM HEADER\",76)',\n vr: \"OB\",\n name: \"ReferencedObjectDeviceID\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SIEMENS MEDCOM HEADER2\",60)': {\n tag: '(0029,\"SIEMENS MEDCOM HEADER2\",60)',\n vr: \"LO\",\n name: \"SeriesWorkflowStatus\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SIEMENS MEDCOM OOG\",08)': {\n tag: '(0029,\"SIEMENS MEDCOM OOG\",08)',\n vr: \"CS\",\n name: \"MEDCOMOOGType\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SIEMENS MEDCOM OOG\",09)': {\n tag: '(0029,\"SIEMENS MEDCOM OOG\",09)',\n vr: \"LO\",\n name: \"MEDCOMOOGVersion\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SIEMENS MEDCOM OOG\",10)': {\n tag: '(0029,\"SIEMENS MEDCOM OOG\",10)',\n vr: \"OB\",\n name: \"MEDCOMOOGInfo\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS MR VA0 COAD\",12)': {\n tag: '(0019,\"SIEMENS MR VA0 COAD\",12)',\n vr: \"DS\",\n name: \"MagneticFieldStrength\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS MR VA0 COAD\",14)': {\n tag: '(0019,\"SIEMENS MR VA0 COAD\",14)',\n vr: \"DS\",\n name: \"ADCVoltage\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS MR VA0 COAD\",16)': {\n tag: '(0019,\"SIEMENS MR VA0 COAD\",16)',\n vr: \"DS\",\n name: \"ADCOffset\",\n vm: \"2\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS MR VA0 COAD\",20)': {\n tag: '(0019,\"SIEMENS MR VA0 COAD\",20)',\n vr: \"DS\",\n name: \"TransmitterAmplitude\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS MR VA0 COAD\",21)': {\n tag: '(0019,\"SIEMENS MR VA0 COAD\",21)',\n vr: \"IS\",\n name: \"NumberOfTransmitterAmplitudes\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS MR VA0 COAD\",22)': {\n tag: '(0019,\"SIEMENS MR VA0 COAD\",22)',\n vr: \"DS\",\n name: \"TransmitterAttenuator\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS MR VA0 COAD\",24)': {\n tag: '(0019,\"SIEMENS MR VA0 COAD\",24)',\n vr: \"DS\",\n name: \"TransmitterCalibration\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS MR VA0 COAD\",26)': {\n tag: '(0019,\"SIEMENS MR VA0 COAD\",26)',\n vr: \"DS\",\n name: \"TransmitterReference\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS MR VA0 COAD\",50)': {\n tag: '(0019,\"SIEMENS MR VA0 COAD\",50)',\n vr: \"DS\",\n name: \"ReceiverTotalGain\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS MR VA0 COAD\",51)': {\n tag: '(0019,\"SIEMENS MR VA0 COAD\",51)',\n vr: \"DS\",\n name: \"ReceiverAmplifierGain\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS MR VA0 COAD\",52)': {\n tag: '(0019,\"SIEMENS MR VA0 COAD\",52)',\n vr: \"DS\",\n name: \"ReceiverPreamplifierGain\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS MR VA0 COAD\",54)': {\n tag: '(0019,\"SIEMENS MR VA0 COAD\",54)',\n vr: \"DS\",\n name: \"ReceiverCableAttenuation\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS MR VA0 COAD\",55)': {\n tag: '(0019,\"SIEMENS MR VA0 COAD\",55)',\n vr: \"DS\",\n name: \"ReceiverReferenceGain\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS MR VA0 COAD\",56)': {\n tag: '(0019,\"SIEMENS MR VA0 COAD\",56)',\n vr: \"DS\",\n name: \"ReceiverFilterFrequency\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS MR VA0 COAD\",60)': {\n tag: '(0019,\"SIEMENS MR VA0 COAD\",60)',\n vr: \"DS\",\n name: \"ReconstructionScaleFactor\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS MR VA0 COAD\",62)': {\n tag: '(0019,\"SIEMENS MR VA0 COAD\",62)',\n vr: \"DS\",\n name: \"ReferenceScaleFactor\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS MR VA0 COAD\",70)': {\n tag: '(0019,\"SIEMENS MR VA0 COAD\",70)',\n vr: \"DS\",\n name: \"PhaseGradientAmplitude\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS MR VA0 COAD\",71)': {\n tag: '(0019,\"SIEMENS MR VA0 COAD\",71)',\n vr: \"DS\",\n name: \"ReadoutGradientAmplitude\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS MR VA0 COAD\",72)': {\n tag: '(0019,\"SIEMENS MR VA0 COAD\",72)',\n vr: \"DS\",\n name: \"SelectionGradientAmplitude\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS MR VA0 COAD\",80)': {\n tag: '(0019,\"SIEMENS MR VA0 COAD\",80)',\n vr: \"DS\",\n name: \"GradientDelayTime\",\n vm: \"3\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS MR VA0 COAD\",82)': {\n tag: '(0019,\"SIEMENS MR VA0 COAD\",82)',\n vr: \"DS\",\n name: \"TotalGradientDelayTime\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS MR VA0 COAD\",90)': {\n tag: '(0019,\"SIEMENS MR VA0 COAD\",90)',\n vr: \"LT\",\n name: \"SensitivityCorrectionLabel\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS MR VA0 COAD\",91)': {\n tag: '(0019,\"SIEMENS MR VA0 COAD\",91)',\n vr: \"DS\",\n name: \"SaturationPhaseEncodingVectorCoronalComponent\",\n vm: \"6\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS MR VA0 COAD\",92)': {\n tag: '(0019,\"SIEMENS MR VA0 COAD\",92)',\n vr: \"DS\",\n name: \"SaturationReadoutVectorCoronalComponent\",\n vm: \"6\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS MR VA0 COAD\",a0)': {\n tag: '(0019,\"SIEMENS MR VA0 COAD\",a0)',\n vr: \"US\",\n name: \"RFWatchdogMask\",\n vm: \"3\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS MR VA0 COAD\",a1)': {\n tag: '(0019,\"SIEMENS MR VA0 COAD\",a1)',\n vr: \"DS\",\n name: \"EPIReconstructionSlope\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS MR VA0 COAD\",a2)': {\n tag: '(0019,\"SIEMENS MR VA0 COAD\",a2)',\n vr: \"DS\",\n name: \"RFPowerErrorIndicator\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS MR VA0 COAD\",a5)': {\n tag: '(0019,\"SIEMENS MR VA0 COAD\",a5)',\n vr: \"DS\",\n name: \"SpecificAbsorptionRateWholeBody\",\n vm: \"3\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS MR VA0 COAD\",a6)': {\n tag: '(0019,\"SIEMENS MR VA0 COAD\",a6)',\n vr: \"DS\",\n name: \"SpecificEnergyDose\",\n vm: \"3\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS MR VA0 COAD\",b0)': {\n tag: '(0019,\"SIEMENS MR VA0 COAD\",b0)',\n vr: \"UL\",\n name: \"AdjustmentStatusMask\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS MR VA0 COAD\",c1)': {\n tag: '(0019,\"SIEMENS MR VA0 COAD\",c1)',\n vr: \"DS\",\n name: \"EPICapacity\",\n vm: \"6\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS MR VA0 COAD\",c2)': {\n tag: '(0019,\"SIEMENS MR VA0 COAD\",c2)',\n vr: \"DS\",\n name: \"EPIInductance\",\n vm: \"3\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS MR VA0 COAD\",c3)': {\n tag: '(0019,\"SIEMENS MR VA0 COAD\",c3)',\n vr: \"IS\",\n name: \"EPISwitchConfigurationCode\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS MR VA0 COAD\",c4)': {\n tag: '(0019,\"SIEMENS MR VA0 COAD\",c4)',\n vr: \"IS\",\n name: \"EPISwitchHardwareCode\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS MR VA0 COAD\",c5)': {\n tag: '(0019,\"SIEMENS MR VA0 COAD\",c5)',\n vr: \"DS\",\n name: \"EPISwitchDelayTime\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS MR VA0 COAD\",d1)': {\n tag: '(0019,\"SIEMENS MR VA0 COAD\",d1)',\n vr: \"DS\",\n name: \"FlowSensitivity\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS MR VA0 COAD\",d2)': {\n tag: '(0019,\"SIEMENS MR VA0 COAD\",d2)',\n vr: \"LT\",\n name: \"CalculationSubmode\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS MR VA0 COAD\",d3)': {\n tag: '(0019,\"SIEMENS MR VA0 COAD\",d3)',\n vr: \"DS\",\n name: \"FieldOfViewRatio\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS MR VA0 COAD\",d4)': {\n tag: '(0019,\"SIEMENS MR VA0 COAD\",d4)',\n vr: \"IS\",\n name: \"BaseRawMatrixSize\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS MR VA0 COAD\",d5)': {\n tag: '(0019,\"SIEMENS MR VA0 COAD\",d5)',\n vr: \"IS\",\n name: \"2DOversamplingLines\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS MR VA0 COAD\",d6)': {\n tag: '(0019,\"SIEMENS MR VA0 COAD\",d6)',\n vr: \"IS\",\n name: \"3DPhaseOversamplingPartitions\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS MR VA0 COAD\",d7)': {\n tag: '(0019,\"SIEMENS MR VA0 COAD\",d7)',\n vr: \"IS\",\n name: \"EchoLinePosition\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS MR VA0 COAD\",d8)': {\n tag: '(0019,\"SIEMENS MR VA0 COAD\",d8)',\n vr: \"IS\",\n name: \"EchoColumnPosition\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS MR VA0 COAD\",d9)': {\n tag: '(0019,\"SIEMENS MR VA0 COAD\",d9)',\n vr: \"IS\",\n name: \"LinesPerSegment\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS MR VA0 COAD\",da)': {\n tag: '(0019,\"SIEMENS MR VA0 COAD\",da)',\n vr: \"LT\",\n name: \"PhaseCodingDirection\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS MR VA0 GEN\",10)': {\n tag: '(0019,\"SIEMENS MR VA0 GEN\",10)',\n vr: \"DS\",\n name: \"TotalMeasurementTimeNominal\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS MR VA0 GEN\",11)': {\n tag: '(0019,\"SIEMENS MR VA0 GEN\",11)',\n vr: \"DS\",\n name: \"TotalMeasurementTimeCurrent\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS MR VA0 GEN\",12)': {\n tag: '(0019,\"SIEMENS MR VA0 GEN\",12)',\n vr: \"DS\",\n name: \"StartDelayTime\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS MR VA0 GEN\",13)': {\n tag: '(0019,\"SIEMENS MR VA0 GEN\",13)',\n vr: \"DS\",\n name: \"DwellTime\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS MR VA0 GEN\",14)': {\n tag: '(0019,\"SIEMENS MR VA0 GEN\",14)',\n vr: \"IS\",\n name: \"NumberOfPhases\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS MR VA0 GEN\",16)': {\n tag: '(0019,\"SIEMENS MR VA0 GEN\",16)',\n vr: \"UL\",\n name: \"SequenceControlMask\",\n vm: \"2\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS MR VA0 GEN\",18)': {\n tag: '(0019,\"SIEMENS MR VA0 GEN\",18)',\n vr: \"UL\",\n name: \"MeasurementStatusMask\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS MR VA0 GEN\",20)': {\n tag: '(0019,\"SIEMENS MR VA0 GEN\",20)',\n vr: \"IS\",\n name: \"NumberOfFourierLinesNominal\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS MR VA0 GEN\",21)': {\n tag: '(0019,\"SIEMENS MR VA0 GEN\",21)',\n vr: \"IS\",\n name: \"NumberOfFourierLinesCurrent\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS MR VA0 GEN\",26)': {\n tag: '(0019,\"SIEMENS MR VA0 GEN\",26)',\n vr: \"IS\",\n name: \"NumberOfFourierLinesAfterZero\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS MR VA0 GEN\",28)': {\n tag: '(0019,\"SIEMENS MR VA0 GEN\",28)',\n vr: \"IS\",\n name: \"FirstMeasuredFourierLine\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS MR VA0 GEN\",30)': {\n tag: '(0019,\"SIEMENS MR VA0 GEN\",30)',\n vr: \"IS\",\n name: \"AcquisitionColumns\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS MR VA0 GEN\",31)': {\n tag: '(0019,\"SIEMENS MR VA0 GEN\",31)',\n vr: \"IS\",\n name: \"ReconstructionColumns\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS MR VA0 GEN\",40)': {\n tag: '(0019,\"SIEMENS MR VA0 GEN\",40)',\n vr: \"IS\",\n name: \"ArrayCoilElementNumber\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS MR VA0 GEN\",41)': {\n tag: '(0019,\"SIEMENS MR VA0 GEN\",41)',\n vr: \"UL\",\n name: \"ArrayCoilElementSelectMask\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS MR VA0 GEN\",42)': {\n tag: '(0019,\"SIEMENS MR VA0 GEN\",42)',\n vr: \"UL\",\n name: \"ArrayCoilElementDataMask\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS MR VA0 GEN\",43)': {\n tag: '(0019,\"SIEMENS MR VA0 GEN\",43)',\n vr: \"IS\",\n name: \"ArrayCoilElementToADCConnect\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS MR VA0 GEN\",44)': {\n tag: '(0019,\"SIEMENS MR VA0 GEN\",44)',\n vr: \"DS\",\n name: \"ArrayCoilElementNoiseLevel\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS MR VA0 GEN\",45)': {\n tag: '(0019,\"SIEMENS MR VA0 GEN\",45)',\n vr: \"IS\",\n name: \"ArrayCoilADCPairNumber\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS MR VA0 GEN\",46)': {\n tag: '(0019,\"SIEMENS MR VA0 GEN\",46)',\n vr: \"UL\",\n name: \"ArrayCoilCombinationMask\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS MR VA0 GEN\",50)': {\n tag: '(0019,\"SIEMENS MR VA0 GEN\",50)',\n vr: \"IS\",\n name: \"NumberOfAverages\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS MR VA0 GEN\",60)': {\n tag: '(0019,\"SIEMENS MR VA0 GEN\",60)',\n vr: \"DS\",\n name: \"FlipAngle\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS MR VA0 GEN\",70)': {\n tag: '(0019,\"SIEMENS MR VA0 GEN\",70)',\n vr: \"IS\",\n name: \"NumberOfPrescans\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS MR VA0 GEN\",81)': {\n tag: '(0019,\"SIEMENS MR VA0 GEN\",81)',\n vr: \"LT\",\n name: \"FilterTypeForRawData\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS MR VA0 GEN\",82)': {\n tag: '(0019,\"SIEMENS MR VA0 GEN\",82)',\n vr: \"DS\",\n name: \"FilterParameterForRawData\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS MR VA0 GEN\",83)': {\n tag: '(0019,\"SIEMENS MR VA0 GEN\",83)',\n vr: \"LT\",\n name: \"FilterTypeForImageData\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS MR VA0 GEN\",84)': {\n tag: '(0019,\"SIEMENS MR VA0 GEN\",84)',\n vr: \"DS\",\n name: \"FilterParameterForImageData\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS MR VA0 GEN\",85)': {\n tag: '(0019,\"SIEMENS MR VA0 GEN\",85)',\n vr: \"LT\",\n name: \"FilterTypeForPhaseCorrection\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS MR VA0 GEN\",86)': {\n tag: '(0019,\"SIEMENS MR VA0 GEN\",86)',\n vr: \"DS\",\n name: \"FilterParameterForPhaseCorrection\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS MR VA0 GEN\",87)': {\n tag: '(0019,\"SIEMENS MR VA0 GEN\",87)',\n vr: \"LT\",\n name: \"NormalizationFilterTypeForImageData\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS MR VA0 GEN\",88)': {\n tag: '(0019,\"SIEMENS MR VA0 GEN\",88)',\n vr: \"DS\",\n name: \"NormalizationFilterParameterForImageData\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS MR VA0 GEN\",90)': {\n tag: '(0019,\"SIEMENS MR VA0 GEN\",90)',\n vr: \"IS\",\n name: \"NumberOfSaturationRegions\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS MR VA0 GEN\",91)': {\n tag: '(0019,\"SIEMENS MR VA0 GEN\",91)',\n vr: \"DS\",\n name: \"SaturationPhaseEncodingVectorSagittalComponent\",\n vm: \"6\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS MR VA0 GEN\",92)': {\n tag: '(0019,\"SIEMENS MR VA0 GEN\",92)',\n vr: \"DS\",\n name: \"SaturationReadoutVectorSagittalComponent\",\n vm: \"6\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS MR VA0 GEN\",93)': {\n tag: '(0019,\"SIEMENS MR VA0 GEN\",93)',\n vr: \"DS\",\n name: \"EPIStimulationMonitorMode\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS MR VA0 GEN\",94)': {\n tag: '(0019,\"SIEMENS MR VA0 GEN\",94)',\n vr: \"DS\",\n name: \"ImageRotationAngle\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS MR VA0 GEN\",96)': {\n tag: '(0019,\"SIEMENS MR VA0 GEN\",96)',\n vr: \"UL\",\n name: \"CoilIDMask\",\n vm: \"3\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS MR VA0 GEN\",97)': {\n tag: '(0019,\"SIEMENS MR VA0 GEN\",97)',\n vr: \"UL\",\n name: \"CoilClassMask\",\n vm: \"2\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS MR VA0 GEN\",98)': {\n tag: '(0019,\"SIEMENS MR VA0 GEN\",98)',\n vr: \"DS\",\n name: \"CoilPosition\",\n vm: \"3\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS MR VA0 GEN\",a0)': {\n tag: '(0019,\"SIEMENS MR VA0 GEN\",a0)',\n vr: \"DS\",\n name: \"EPIReconstructionPhase\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS MR VA0 GEN\",a1)': {\n tag: '(0019,\"SIEMENS MR VA0 GEN\",a1)',\n vr: \"DS\",\n name: \"EPIReconstructionSlope\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS MR VA0 GEN\",20)': {\n tag: '(0021,\"SIEMENS MR VA0 GEN\",20)',\n vr: \"IS\",\n name: \"PhaseCorrectionRowsSequence\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS MR VA0 GEN\",21)': {\n tag: '(0021,\"SIEMENS MR VA0 GEN\",21)',\n vr: \"IS\",\n name: \"PhaseCorrectionColumnsSequence\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS MR VA0 GEN\",22)': {\n tag: '(0021,\"SIEMENS MR VA0 GEN\",22)',\n vr: \"IS\",\n name: \"PhaseCorrectionRowsReconstruction\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS MR VA0 GEN\",24)': {\n tag: '(0021,\"SIEMENS MR VA0 GEN\",24)',\n vr: \"IS\",\n name: \"PhaseCorrectionColumnsReconstruction\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS MR VA0 GEN\",30)': {\n tag: '(0021,\"SIEMENS MR VA0 GEN\",30)',\n vr: \"IS\",\n name: \"NumberOf3DRawPartitionsNominal\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS MR VA0 GEN\",31)': {\n tag: '(0021,\"SIEMENS MR VA0 GEN\",31)',\n vr: \"IS\",\n name: \"NumberOf3DRawPartitionsCurrent\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS MR VA0 GEN\",34)': {\n tag: '(0021,\"SIEMENS MR VA0 GEN\",34)',\n vr: \"IS\",\n name: \"NumberOf3DImagePartitions\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS MR VA0 GEN\",36)': {\n tag: '(0021,\"SIEMENS MR VA0 GEN\",36)',\n vr: \"IS\",\n name: \"Actual3DImagePartitionNumber\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS MR VA0 GEN\",39)': {\n tag: '(0021,\"SIEMENS MR VA0 GEN\",39)',\n vr: \"DS\",\n name: \"SlabThickness\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS MR VA0 GEN\",40)': {\n tag: '(0021,\"SIEMENS MR VA0 GEN\",40)',\n vr: \"IS\",\n name: \"NumberOfSlicesNominal\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS MR VA0 GEN\",41)': {\n tag: '(0021,\"SIEMENS MR VA0 GEN\",41)',\n vr: \"IS\",\n name: \"NumberOfSlicesCurrent\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS MR VA0 GEN\",42)': {\n tag: '(0021,\"SIEMENS MR VA0 GEN\",42)',\n vr: \"IS\",\n name: \"CurrentSliceNumber\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS MR VA0 GEN\",43)': {\n tag: '(0021,\"SIEMENS MR VA0 GEN\",43)',\n vr: \"IS\",\n name: \"CurrentGroupNumber\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS MR VA0 GEN\",44)': {\n tag: '(0021,\"SIEMENS MR VA0 GEN\",44)',\n vr: \"DS\",\n name: \"CurrentSliceDistanceFactor\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS MR VA0 GEN\",45)': {\n tag: '(0021,\"SIEMENS MR VA0 GEN\",45)',\n vr: \"IS\",\n name: \"MIPStartRow\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS MR VA0 GEN\",46)': {\n tag: '(0021,\"SIEMENS MR VA0 GEN\",46)',\n vr: \"IS\",\n name: \"MIPStopRow\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS MR VA0 GEN\",47)': {\n tag: '(0021,\"SIEMENS MR VA0 GEN\",47)',\n vr: \"IS\",\n name: \"MIPStartColumn\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS MR VA0 GEN\",48)': {\n tag: '(0021,\"SIEMENS MR VA0 GEN\",48)',\n vr: \"IS\",\n name: \"MIPStartColumn\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS MR VA0 GEN\",49)': {\n tag: '(0021,\"SIEMENS MR VA0 GEN\",49)',\n vr: \"IS\",\n name: \"MIPStartSlice Name=\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS MR VA0 GEN\",4a)': {\n tag: '(0021,\"SIEMENS MR VA0 GEN\",4a)',\n vr: \"IS\",\n name: \"MIPStartSlice\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS MR VA0 GEN\",4f)': {\n tag: '(0021,\"SIEMENS MR VA0 GEN\",4f)',\n vr: \"LT\",\n name: \"OrderofSlices\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS MR VA0 GEN\",50)': {\n tag: '(0021,\"SIEMENS MR VA0 GEN\",50)',\n vr: \"US\",\n name: \"SignalMask\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS MR VA0 GEN\",52)': {\n tag: '(0021,\"SIEMENS MR VA0 GEN\",52)',\n vr: \"DS\",\n name: \"DelayAfterTrigger\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS MR VA0 GEN\",53)': {\n tag: '(0021,\"SIEMENS MR VA0 GEN\",53)',\n vr: \"IS\",\n name: \"RRInterval\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS MR VA0 GEN\",54)': {\n tag: '(0021,\"SIEMENS MR VA0 GEN\",54)',\n vr: \"DS\",\n name: \"NumberOfTriggerPulses\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS MR VA0 GEN\",56)': {\n tag: '(0021,\"SIEMENS MR VA0 GEN\",56)',\n vr: \"DS\",\n name: \"RepetitionTimeEffective\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS MR VA0 GEN\",57)': {\n tag: '(0021,\"SIEMENS MR VA0 GEN\",57)',\n vr: \"LT\",\n name: \"GatePhase\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS MR VA0 GEN\",58)': {\n tag: '(0021,\"SIEMENS MR VA0 GEN\",58)',\n vr: \"DS\",\n name: \"GateThreshold\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS MR VA0 GEN\",59)': {\n tag: '(0021,\"SIEMENS MR VA0 GEN\",59)',\n vr: \"DS\",\n name: \"GatedRatio\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS MR VA0 GEN\",60)': {\n tag: '(0021,\"SIEMENS MR VA0 GEN\",60)',\n vr: \"IS\",\n name: \"NumberOfInterpolatedImages\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS MR VA0 GEN\",70)': {\n tag: '(0021,\"SIEMENS MR VA0 GEN\",70)',\n vr: \"IS\",\n name: \"NumberOfEchoes\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS MR VA0 GEN\",72)': {\n tag: '(0021,\"SIEMENS MR VA0 GEN\",72)',\n vr: \"DS\",\n name: \"SecondEchoTime\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS MR VA0 GEN\",73)': {\n tag: '(0021,\"SIEMENS MR VA0 GEN\",73)',\n vr: \"DS\",\n name: \"SecondRepetitionTime\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS MR VA0 GEN\",80)': {\n tag: '(0021,\"SIEMENS MR VA0 GEN\",80)',\n vr: \"IS\",\n name: \"CardiacCode\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS MR VA0 GEN\",91)': {\n tag: '(0021,\"SIEMENS MR VA0 GEN\",91)',\n vr: \"DS\",\n name: \"SaturationPhaseEncodingVectorTransverseComponent\",\n vm: \"6\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS MR VA0 GEN\",92)': {\n tag: '(0021,\"SIEMENS MR VA0 GEN\",92)',\n vr: \"DS\",\n name: \"SaturationReadoutVectorTransverseComponent\",\n vm: \"6\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS MR VA0 GEN\",93)': {\n tag: '(0021,\"SIEMENS MR VA0 GEN\",93)',\n vr: \"DS\",\n name: \"EPIChangeValueOfMagnitude\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS MR VA0 GEN\",94)': {\n tag: '(0021,\"SIEMENS MR VA0 GEN\",94)',\n vr: \"DS\",\n name: \"EPIChangeValueOfXComponent\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS MR VA0 GEN\",95)': {\n tag: '(0021,\"SIEMENS MR VA0 GEN\",95)',\n vr: \"DS\",\n name: \"EPIChangeValueOfYComponent\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS MR VA0 GEN\",96)': {\n tag: '(0021,\"SIEMENS MR VA0 GEN\",96)',\n vr: \"DS\",\n name: \"EPIChangeValueOfZComponent\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS MR VA0 RAW\",00)': {\n tag: '(0021,\"SIEMENS MR VA0 RAW\",00)',\n vr: \"LT\",\n name: \"SequenceType\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS MR VA0 RAW\",01)': {\n tag: '(0021,\"SIEMENS MR VA0 RAW\",01)',\n vr: \"IS\",\n name: \"VectorSizeOriginal\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS MR VA0 RAW\",02)': {\n tag: '(0021,\"SIEMENS MR VA0 RAW\",02)',\n vr: \"IS\",\n name: \"VectorSizeExtended\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS MR VA0 RAW\",03)': {\n tag: '(0021,\"SIEMENS MR VA0 RAW\",03)',\n vr: \"DS\",\n name: \"AcquiredSpectralRange\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS MR VA0 RAW\",04)': {\n tag: '(0021,\"SIEMENS MR VA0 RAW\",04)',\n vr: \"DS\",\n name: \"VOIPosition\",\n vm: \"3\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS MR VA0 RAW\",05)': {\n tag: '(0021,\"SIEMENS MR VA0 RAW\",05)',\n vr: \"DS\",\n name: \"VOISize\",\n vm: \"3\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS MR VA0 RAW\",06)': {\n tag: '(0021,\"SIEMENS MR VA0 RAW\",06)',\n vr: \"IS\",\n name: \"CSIMatrixSizeOriginal\",\n vm: \"3\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS MR VA0 RAW\",07)': {\n tag: '(0021,\"SIEMENS MR VA0 RAW\",07)',\n vr: \"IS\",\n name: \"CSIMatrixSizeExtended\",\n vm: \"3\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS MR VA0 RAW\",08)': {\n tag: '(0021,\"SIEMENS MR VA0 RAW\",08)',\n vr: \"DS\",\n name: \"SpatialGridShift\",\n vm: \"3\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS MR VA0 RAW\",09)': {\n tag: '(0021,\"SIEMENS MR VA0 RAW\",09)',\n vr: \"DS\",\n name: \"SignalLimitsMinimum\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS MR VA0 RAW\",10)': {\n tag: '(0021,\"SIEMENS MR VA0 RAW\",10)',\n vr: \"DS\",\n name: \"SignalLimitsMaximum\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS MR VA0 RAW\",11)': {\n tag: '(0021,\"SIEMENS MR VA0 RAW\",11)',\n vr: \"DS\",\n name: \"SpecInfoMask\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS MR VA0 RAW\",12)': {\n tag: '(0021,\"SIEMENS MR VA0 RAW\",12)',\n vr: \"DS\",\n name: \"EPITimeRateOfChangeOfMagnitude\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS MR VA0 RAW\",13)': {\n tag: '(0021,\"SIEMENS MR VA0 RAW\",13)',\n vr: \"DS\",\n name: \"EPITimeRateOfChangeOfXComponent\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS MR VA0 RAW\",14)': {\n tag: '(0021,\"SIEMENS MR VA0 RAW\",14)',\n vr: \"DS\",\n name: \"EPITimeRateOfChangeOfYComponent\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS MR VA0 RAW\",15)': {\n tag: '(0021,\"SIEMENS MR VA0 RAW\",15)',\n vr: \"DS\",\n name: \"EPITimeRateOfChangeOfZComponent\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS MR VA0 RAW\",16)': {\n tag: '(0021,\"SIEMENS MR VA0 RAW\",16)',\n vr: \"DS\",\n name: \"EPITimeRateOfChangeLegalLimit1\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS MR VA0 RAW\",17)': {\n tag: '(0021,\"SIEMENS MR VA0 RAW\",17)',\n vr: \"DS\",\n name: \"EPIOperationModeFlag\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS MR VA0 RAW\",18)': {\n tag: '(0021,\"SIEMENS MR VA0 RAW\",18)',\n vr: \"DS\",\n name: \"EPIFieldCalculationSafetyFactor\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS MR VA0 RAW\",19)': {\n tag: '(0021,\"SIEMENS MR VA0 RAW\",19)',\n vr: \"DS\",\n name: \"EPILegalLimit1OfChangeValue\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS MR VA0 RAW\",20)': {\n tag: '(0021,\"SIEMENS MR VA0 RAW\",20)',\n vr: \"DS\",\n name: \"EPILegalLimit2OfChangeValue\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS MR VA0 RAW\",21)': {\n tag: '(0021,\"SIEMENS MR VA0 RAW\",21)',\n vr: \"DS\",\n name: \"EPIRiseTime\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS MR VA0 RAW\",30)': {\n tag: '(0021,\"SIEMENS MR VA0 RAW\",30)',\n vr: \"DS\",\n name: \"ArrayCoilADCOffset\",\n vm: \"16\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS MR VA0 RAW\",31)': {\n tag: '(0021,\"SIEMENS MR VA0 RAW\",31)',\n vr: \"DS\",\n name: \"ArrayCoilPreamplifierGain\",\n vm: \"16\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS MR VA0 RAW\",50)': {\n tag: '(0021,\"SIEMENS MR VA0 RAW\",50)',\n vr: \"LT\",\n name: \"SaturationType\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS MR VA0 RAW\",51)': {\n tag: '(0021,\"SIEMENS MR VA0 RAW\",51)',\n vr: \"DS\",\n name: \"SaturationNormalVector\",\n vm: \"3\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS MR VA0 RAW\",52)': {\n tag: '(0021,\"SIEMENS MR VA0 RAW\",52)',\n vr: \"DS\",\n name: \"SaturationPositionVector\",\n vm: \"3\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS MR VA0 RAW\",53)': {\n tag: '(0021,\"SIEMENS MR VA0 RAW\",53)',\n vr: \"DS\",\n name: \"SaturationThickness\",\n vm: \"6\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS MR VA0 RAW\",54)': {\n tag: '(0021,\"SIEMENS MR VA0 RAW\",54)',\n vr: \"DS\",\n name: \"SaturationWidth\",\n vm: \"6\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS MR VA0 RAW\",55)': {\n tag: '(0021,\"SIEMENS MR VA0 RAW\",55)',\n vr: \"DS\",\n name: \"SaturationDistance\",\n vm: \"6\",\n version: \"PrivateTag\"\n },\n '(7fe3,\"SIEMENS NUMARIS II\",00)': {\n tag: '(7fe3,\"SIEMENS NUMARIS II\",00)',\n vr: \"LT\",\n name: \"ImageGraphicsFormatCode\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(7fe3,\"SIEMENS NUMARIS II\",10)': {\n tag: '(7fe3,\"SIEMENS NUMARIS II\",10)',\n vr: \"OB\",\n name: \"ImageGraphics\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(7fe3,\"SIEMENS NUMARIS II\",20)': {\n tag: '(7fe3,\"SIEMENS NUMARIS II\",20)',\n vr: \"OB\",\n name: \"ImageGraphicsDummy\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0011,\"SIEMENS RA GEN\",20)': {\n tag: '(0011,\"SIEMENS RA GEN\",20)',\n vr: \"SL\",\n name: \"FluoroTimer\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0011,\"SIEMENS RA GEN\",25)': {\n tag: '(0011,\"SIEMENS RA GEN\",25)',\n vr: \"SL\",\n name: \"PtopDoseAreaProduct\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0011,\"SIEMENS RA GEN\",26)': {\n tag: '(0011,\"SIEMENS RA GEN\",26)',\n vr: \"SL\",\n name: \"PtopTotalSkinDose\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0011,\"SIEMENS RA GEN\",30)': {\n tag: '(0011,\"SIEMENS RA GEN\",30)',\n vr: \"LT\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0011,\"SIEMENS RA GEN\",35)': {\n tag: '(0011,\"SIEMENS RA GEN\",35)',\n vr: \"LO\",\n name: \"PatientInitialPuckCounter\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0011,\"SIEMENS RA GEN\",40)': {\n tag: '(0011,\"SIEMENS RA GEN\",40)',\n vr: \"SS\",\n name: \"SPIDataObjectType\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA GEN\",15)': {\n tag: '(0019,\"SIEMENS RA GEN\",15)',\n vr: \"LO\",\n name: \"AcquiredPlane\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA GEN\",1f)': {\n tag: '(0019,\"SIEMENS RA GEN\",1f)',\n vr: \"SS\",\n name: \"DefaultTableIsoCenterHeight\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA GEN\",20)': {\n tag: '(0019,\"SIEMENS RA GEN\",20)',\n vr: \"SL\",\n name: \"SceneFlag\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA GEN\",22)': {\n tag: '(0019,\"SIEMENS RA GEN\",22)',\n vr: \"SL\",\n name: \"RefPhotofileFlag\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA GEN\",24)': {\n tag: '(0019,\"SIEMENS RA GEN\",24)',\n vr: \"LO\",\n name: \"SceneName\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA GEN\",26)': {\n tag: '(0019,\"SIEMENS RA GEN\",26)',\n vr: \"SS\",\n name: \"AcquisitionIndex\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA GEN\",28)': {\n tag: '(0019,\"SIEMENS RA GEN\",28)',\n vr: \"SS\",\n name: \"MixedPulseMode\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA GEN\",2a)': {\n tag: '(0019,\"SIEMENS RA GEN\",2a)',\n vr: \"SS\",\n name: \"NoOfPositions\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA GEN\",2c)': {\n tag: '(0019,\"SIEMENS RA GEN\",2c)',\n vr: \"SS\",\n name: \"NoOfPhases\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA GEN\",2e)': {\n tag: '(0019,\"SIEMENS RA GEN\",2e)',\n vr: \"SS\",\n name: \"FrameRateForPositions\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA GEN\",30)': {\n tag: '(0019,\"SIEMENS RA GEN\",30)',\n vr: \"SS\",\n name: \"NoOfFramesForPositions\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA GEN\",32)': {\n tag: '(0019,\"SIEMENS RA GEN\",32)',\n vr: \"SS\",\n name: \"SteppingDirection\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA GEN\",34)': {\n tag: '(0019,\"SIEMENS RA GEN\",34)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA GEN\",36)': {\n tag: '(0019,\"SIEMENS RA GEN\",36)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA GEN\",38)': {\n tag: '(0019,\"SIEMENS RA GEN\",38)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA GEN\",3a)': {\n tag: '(0019,\"SIEMENS RA GEN\",3a)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA GEN\",3c)': {\n tag: '(0019,\"SIEMENS RA GEN\",3c)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA GEN\",3e)': {\n tag: '(0019,\"SIEMENS RA GEN\",3e)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA GEN\",40)': {\n tag: '(0019,\"SIEMENS RA GEN\",40)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA GEN\",42)': {\n tag: '(0019,\"SIEMENS RA GEN\",42)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA GEN\",44)': {\n tag: '(0019,\"SIEMENS RA GEN\",44)',\n vr: \"SS\",\n name: \"ImageTransferDelay\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA GEN\",46)': {\n tag: '(0019,\"SIEMENS RA GEN\",46)',\n vr: \"SL\",\n name: \"InversFlag\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA GEN\",48)': {\n tag: '(0019,\"SIEMENS RA GEN\",48)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA GEN\",4a)': {\n tag: '(0019,\"SIEMENS RA GEN\",4a)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA GEN\",4c)': {\n tag: '(0019,\"SIEMENS RA GEN\",4c)',\n vr: \"SS\",\n name: \"BlankingCircleDiameter\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA GEN\",50)': {\n tag: '(0019,\"SIEMENS RA GEN\",50)',\n vr: \"SL\",\n name: \"StandDataValid\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA GEN\",52)': {\n tag: '(0019,\"SIEMENS RA GEN\",52)',\n vr: \"SS\",\n name: \"TableTilt\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA GEN\",54)': {\n tag: '(0019,\"SIEMENS RA GEN\",54)',\n vr: \"SS\",\n name: \"TableAxisRotation\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA GEN\",56)': {\n tag: '(0019,\"SIEMENS RA GEN\",56)',\n vr: \"SS\",\n name: \"TableLongitudalPosition\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA GEN\",58)': {\n tag: '(0019,\"SIEMENS RA GEN\",58)',\n vr: \"SS\",\n name: \"TableSideOffset\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA GEN\",5a)': {\n tag: '(0019,\"SIEMENS RA GEN\",5a)',\n vr: \"SS\",\n name: \"TableIsoCenterHeight\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA GEN\",5c)': {\n tag: '(0019,\"SIEMENS RA GEN\",5c)',\n vr: \"UN\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA GEN\",5e)': {\n tag: '(0019,\"SIEMENS RA GEN\",5e)',\n vr: \"SL\",\n name: \"CollimationDataValid\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA GEN\",60)': {\n tag: '(0019,\"SIEMENS RA GEN\",60)',\n vr: \"SL\",\n name: \"PeriSequenceNo\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA GEN\",62)': {\n tag: '(0019,\"SIEMENS RA GEN\",62)',\n vr: \"SL\",\n name: \"PeriTotalScenes\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA GEN\",64)': {\n tag: '(0019,\"SIEMENS RA GEN\",64)',\n vr: \"SL\",\n name: \"PeriOverlapTop\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA GEN\",66)': {\n tag: '(0019,\"SIEMENS RA GEN\",66)',\n vr: \"SL\",\n name: \"PeriOverlapBottom\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA GEN\",68)': {\n tag: '(0019,\"SIEMENS RA GEN\",68)',\n vr: \"SL\",\n name: \"RawImageNumber\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA GEN\",6a)': {\n tag: '(0019,\"SIEMENS RA GEN\",6a)',\n vr: \"SL\",\n name: \"XRayDataValid\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA GEN\",70)': {\n tag: '(0019,\"SIEMENS RA GEN\",70)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA GEN\",72)': {\n tag: '(0019,\"SIEMENS RA GEN\",72)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA GEN\",74)': {\n tag: '(0019,\"SIEMENS RA GEN\",74)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA GEN\",76)': {\n tag: '(0019,\"SIEMENS RA GEN\",76)',\n vr: \"SL\",\n name: \"FillingAverageFactor\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA GEN\",78)': {\n tag: '(0019,\"SIEMENS RA GEN\",78)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA GEN\",7a)': {\n tag: '(0019,\"SIEMENS RA GEN\",7a)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA GEN\",7c)': {\n tag: '(0019,\"SIEMENS RA GEN\",7c)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA GEN\",7e)': {\n tag: '(0019,\"SIEMENS RA GEN\",7e)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA GEN\",80)': {\n tag: '(0019,\"SIEMENS RA GEN\",80)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA GEN\",82)': {\n tag: '(0019,\"SIEMENS RA GEN\",82)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA GEN\",84)': {\n tag: '(0019,\"SIEMENS RA GEN\",84)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA GEN\",86)': {\n tag: '(0019,\"SIEMENS RA GEN\",86)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA GEN\",88)': {\n tag: '(0019,\"SIEMENS RA GEN\",88)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA GEN\",8a)': {\n tag: '(0019,\"SIEMENS RA GEN\",8a)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA GEN\",8c)': {\n tag: '(0019,\"SIEMENS RA GEN\",8c)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA GEN\",8e)': {\n tag: '(0019,\"SIEMENS RA GEN\",8e)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA GEN\",92)': {\n tag: '(0019,\"SIEMENS RA GEN\",92)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA GEN\",94)': {\n tag: '(0019,\"SIEMENS RA GEN\",94)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA GEN\",96)': {\n tag: '(0019,\"SIEMENS RA GEN\",96)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA GEN\",98)': {\n tag: '(0019,\"SIEMENS RA GEN\",98)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA GEN\",9a)': {\n tag: '(0019,\"SIEMENS RA GEN\",9a)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA GEN\",9c)': {\n tag: '(0019,\"SIEMENS RA GEN\",9c)',\n vr: \"SL\",\n name: \"IntensifierLevelCalibrationFactor\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA GEN\",9e)': {\n tag: '(0019,\"SIEMENS RA GEN\",9e)',\n vr: \"SL\",\n name: \"NativeReviewFlag\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA GEN\",a2)': {\n tag: '(0019,\"SIEMENS RA GEN\",a2)',\n vr: \"SL\",\n name: \"SceneNumber\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA GEN\",a4)': {\n tag: '(0019,\"SIEMENS RA GEN\",a4)',\n vr: \"SS\",\n name: \"AcquisitionMode\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA GEN\",a5)': {\n tag: '(0019,\"SIEMENS RA GEN\",a5)',\n vr: \"SS\",\n name: \"AcquisitonFrameRate\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA GEN\",a6)': {\n tag: '(0019,\"SIEMENS RA GEN\",a6)',\n vr: \"SL\",\n name: \"ECGFlag\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA GEN\",a7)': {\n tag: '(0019,\"SIEMENS RA GEN\",a7)',\n vr: \"SL\",\n name: \"AdditionalSceneData\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA GEN\",a8)': {\n tag: '(0019,\"SIEMENS RA GEN\",a8)',\n vr: \"SL\",\n name: \"FileCopyFlag\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA GEN\",a9)': {\n tag: '(0019,\"SIEMENS RA GEN\",a9)',\n vr: \"SL\",\n name: \"PhlebovisionFlag\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA GEN\",aa)': {\n tag: '(0019,\"SIEMENS RA GEN\",aa)',\n vr: \"SL\",\n name: \"Co2Flag\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA GEN\",ab)': {\n tag: '(0019,\"SIEMENS RA GEN\",ab)',\n vr: \"SS\",\n name: \"MaxSpeed\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA GEN\",ac)': {\n tag: '(0019,\"SIEMENS RA GEN\",ac)',\n vr: \"SS\",\n name: \"StepWidth\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA GEN\",ad)': {\n tag: '(0019,\"SIEMENS RA GEN\",ad)',\n vr: \"SL\",\n name: \"DigitalAcquisitionZoom\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA GEN\",ff)': {\n tag: '(0019,\"SIEMENS RA GEN\",ff)',\n vr: \"SS\",\n name: \"Internal\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS RA GEN\",15)': {\n tag: '(0021,\"SIEMENS RA GEN\",15)',\n vr: \"SS\",\n name: \"ImagesInStudy\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS RA GEN\",20)': {\n tag: '(0021,\"SIEMENS RA GEN\",20)',\n vr: \"SS\",\n name: \"ScenesInStudy\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS RA GEN\",25)': {\n tag: '(0021,\"SIEMENS RA GEN\",25)',\n vr: \"SS\",\n name: \"ImagesInPhotofile\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS RA GEN\",27)': {\n tag: '(0021,\"SIEMENS RA GEN\",27)',\n vr: \"SS\",\n name: \"PlaneBImagesExist\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS RA GEN\",28)': {\n tag: '(0021,\"SIEMENS RA GEN\",28)',\n vr: \"SS\",\n name: \"NoOf2MBChunks\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS RA GEN\",30)': {\n tag: '(0021,\"SIEMENS RA GEN\",30)',\n vr: \"SS\",\n name: \"ImagesInAllScenes\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS RA GEN\",40)': {\n tag: '(0021,\"SIEMENS RA GEN\",40)',\n vr: \"SS\",\n name: \"ArchiveSWInternalVersion\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0011,\"SIEMENS RA PLANE A\",28)': {\n tag: '(0011,\"SIEMENS RA PLANE A\",28)',\n vr: \"SL\",\n name: \"FluoroTimerA\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0011,\"SIEMENS RA PLANE A\",29)': {\n tag: '(0011,\"SIEMENS RA PLANE A\",29)',\n vr: \"SL\",\n name: \"FluoroSkinDoseA\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0011,\"SIEMENS RA PLANE A\",2a)': {\n tag: '(0011,\"SIEMENS RA PLANE A\",2a)',\n vr: \"SL\",\n name: \"TotalSkinDoseA\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0011,\"SIEMENS RA PLANE A\",2b)': {\n tag: '(0011,\"SIEMENS RA PLANE A\",2b)',\n vr: \"SL\",\n name: \"FluoroDoseAreaProductA\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0011,\"SIEMENS RA PLANE A\",2c)': {\n tag: '(0011,\"SIEMENS RA PLANE A\",2c)',\n vr: \"SL\",\n name: \"TotalDoseAreaProductA\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",15)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",15)',\n vr: \"LT\",\n name: \"OfflineUID\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",18)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",18)',\n vr: \"SS\",\n name: \"Internal\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",19)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",19)',\n vr: \"SS\",\n name: \"Internal\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",1a)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",1a)',\n vr: \"SS\",\n name: \"Internal\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",1b)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",1b)',\n vr: \"SS\",\n name: \"Internal\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",1c)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",1c)',\n vr: \"SS\",\n name: \"Internal\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",1d)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",1d)',\n vr: \"SS\",\n name: \"Internal\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",1e)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",1e)',\n vr: \"SS\",\n name: \"Internal\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",1f)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",1f)',\n vr: \"SS\",\n name: \"Internal\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",20)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",20)',\n vr: \"SS\",\n name: \"SystemCalibFactorPlaneA\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",22)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",22)',\n vr: \"SS\",\n name: \"XRayParameterSetNo\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",24)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",24)',\n vr: \"SS\",\n name: \"XRaySystem\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",26)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",26)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",28)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",28)',\n vr: \"SS\",\n name: \"AcquiredDisplayMode\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",2a)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",2a)',\n vr: \"SS\",\n name: \"AcquisitionDelay\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",2c)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",2c)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",2e)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",2e)',\n vr: \"SS\",\n name: \"MaxFramesLimit\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",30)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",30)',\n vr: \"US\",\n name: \"MaximumFrameSizeNIU\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",32)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",32)',\n vr: \"SS\",\n name: \"SubtractedFilterType\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",34)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",34)',\n vr: \"SS\",\n name: \"FilterFactorNative\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",36)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",36)',\n vr: \"SS\",\n name: \"AnatomicBackgroundFactor\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",38)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",38)',\n vr: \"SS\",\n name: \"WindowUpperLimitNative\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",3a)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",3a)',\n vr: \"SS\",\n name: \"WindowLowerLimitNative\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",3c)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",3c)',\n vr: \"SS\",\n name: \"WindowBrightnessPhase1\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",3e)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",3e)',\n vr: \"SS\",\n name: \"WindowBrightnessPhase2\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",40)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",40)',\n vr: \"SS\",\n name: \"WindowContrastPhase1\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",42)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",42)',\n vr: \"SS\",\n name: \"WindowContrastPhase2\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",44)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",44)',\n vr: \"SS\",\n name: \"FilterFactorSub\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",46)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",46)',\n vr: \"SS\",\n name: \"PeakOpacified\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",48)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",48)',\n vr: \"SL\",\n name: \"MaskFrame\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",4a)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",4a)',\n vr: \"SL\",\n name: \"BIHFrame\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",4c)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",4c)',\n vr: \"SS\",\n name: \"CentBeamAngulationCaudCran\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",4e)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",4e)',\n vr: \"SS\",\n name: \"CentBeamAngulationLRAnterior\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",50)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",50)',\n vr: \"SS\",\n name: \"LongitudinalPosition\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",52)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",52)',\n vr: \"SS\",\n name: \"SideOffset\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",54)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",54)',\n vr: \"SS\",\n name: \"IsoCenterHeight\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",56)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",56)',\n vr: \"SS\",\n name: \"ImageTwist\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",58)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",58)',\n vr: \"SS\",\n name: \"SourceImageDistance\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",5a)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",5a)',\n vr: \"SS\",\n name: \"MechanicalMagnificationFactor\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",5c)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",5c)',\n vr: \"SL\",\n name: \"CalibrationFlag\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",5e)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",5e)',\n vr: \"SL\",\n name: \"CalibrationAngleCranCaud\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",60)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",60)',\n vr: \"SL\",\n name: \"CalibrationAngleRAOLAO\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",62)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",62)',\n vr: \"SL\",\n name: \"CalibrationTableToFloorDist\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",64)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",64)',\n vr: \"SL\",\n name: \"CalibrationIsocenterToFloorDist\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",66)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",66)',\n vr: \"SL\",\n name: \"CalibrationIsocenterToSourceDist\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",68)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",68)',\n vr: \"SL\",\n name: \"CalibrationSourceToII\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",6a)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",6a)',\n vr: \"SL\",\n name: \"CalibrationIIZoom\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",6c)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",6c)',\n vr: \"SL\",\n name: \"CalibrationIIField\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",6e)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",6e)',\n vr: \"SL\",\n name: \"CalibrationFactor\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",70)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",70)',\n vr: \"SL\",\n name: \"CalibrationObjectToImageDistance\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",72)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",72)',\n vr: \"SL\",\n name: \"CalibrationSystemFactor\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",74)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",74)',\n vr: \"SL\",\n name: \"CalibrationSystemCorrection\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",76)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",76)',\n vr: \"SL\",\n name: \"CalibrationSystemIIFormats\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",78)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",78)',\n vr: \"SL\",\n name: \"CalibrationGantryDataValid\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",7a)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",7a)',\n vr: \"SS\",\n name: \"CollimatorSquareBreadth\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",7c)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",7c)',\n vr: \"SS\",\n name: \"CollimatorSquareHeight\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",7e)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",7e)',\n vr: \"SS\",\n name: \"CollimatorSquareDiameter\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",80)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",80)',\n vr: \"SS\",\n name: \"CollimaterFingerTurnAngle\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",82)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",82)',\n vr: \"SS\",\n name: \"CollimaterFingerPosition\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",84)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",84)',\n vr: \"SS\",\n name: \"CollimaterDiaphragmTurnAngle\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",86)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",86)',\n vr: \"SS\",\n name: \"CollimaterDiaphragmPosition1\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",88)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",88)',\n vr: \"SS\",\n name: \"CollimaterDiaphragmPosition2\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",8a)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",8a)',\n vr: \"SS\",\n name: \"CollimaterDiaphragmMode\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",8c)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",8c)',\n vr: \"SS\",\n name: \"CollimaterBeamLimitBreadth\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",8e)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",8e)',\n vr: \"SS\",\n name: \"CollimaterBeamLimitHeight\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",90)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",90)',\n vr: \"SS\",\n name: \"CollimaterBeamLimitDiameter\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",92)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",92)',\n vr: \"SS\",\n name: \"X-RayControlMOde\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",94)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",94)',\n vr: \"SS\",\n name: \"X-RaySystem\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",96)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",96)',\n vr: \"SS\",\n name: \"FocalSpot\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",98)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",98)',\n vr: \"SS\",\n name: \"ExposureControl\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",9a)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",9a)',\n vr: \"SL\",\n name: \"XRayVoltage\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",9c)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",9c)',\n vr: \"SL\",\n name: \"XRayCurrent\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",9e)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",9e)',\n vr: \"SL\",\n name: \"XRayCurrentTimeProduct\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",a0)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",a0)',\n vr: \"SL\",\n name: \"XRayPulseTime\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",a2)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",a2)',\n vr: \"SL\",\n name: \"XRaySceneTimeFluoroClock\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",a4)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",a4)',\n vr: \"SS\",\n name: \"MaximumPulseRate\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",a6)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",a6)',\n vr: \"SS\",\n name: \"PulsesPerScene\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",a8)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",a8)',\n vr: \"SL\",\n name: \"DoseAreaProductOfScene\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",aa)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",aa)',\n vr: \"SS\",\n name: \"Dose\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",ac)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",ac)',\n vr: \"SS\",\n name: \"DoseRate\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",ae)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",ae)',\n vr: \"SL\",\n name: \"IIToCoverDistance\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",b0)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",b0)',\n vr: \"SS\",\n name: \"LastFramePhase1\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",b1)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",b1)',\n vr: \"SS\",\n name: \"FrameRatePhase1\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",b2)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",b2)',\n vr: \"SS\",\n name: \"LastFramePhase2\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",b3)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",b3)',\n vr: \"SS\",\n name: \"FrameRatePhase2\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",b4)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",b4)',\n vr: \"SS\",\n name: \"LastFramePhase3\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",b5)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",b5)',\n vr: \"SS\",\n name: \"FrameRatePhase3\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",b6)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",b6)',\n vr: \"SS\",\n name: \"LastFramePhase4\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",b7)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",b7)',\n vr: \"SS\",\n name: \"FrameRatePhase4\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",b8)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",b8)',\n vr: \"SS\",\n name: \"GammaOfNativeImage\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",b9)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",b9)',\n vr: \"SS\",\n name: \"GammaOfTVSystem\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",bb)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",bb)',\n vr: \"SL\",\n name: \"PixelshiftX\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",bc)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",bc)',\n vr: \"SL\",\n name: \"PixelshiftY\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",bd)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",bd)',\n vr: \"SL\",\n name: \"MaskAverageFactor\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",be)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",be)',\n vr: \"SL\",\n name: \"BlankingCircleFlag\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",bf)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",bf)',\n vr: \"SL\",\n name: \"CircleRowStart\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",c0)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",c0)',\n vr: \"SL\",\n name: \"CircleRowEnd\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",c1)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",c1)',\n vr: \"SL\",\n name: \"CircleColumnStart\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",c2)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",c2)',\n vr: \"SL\",\n name: \"CircleColumnEnd\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",c3)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",c3)',\n vr: \"SL\",\n name: \"CircleDiameter\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",c4)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",c4)',\n vr: \"SL\",\n name: \"RectangularCollimaterFlag\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",c5)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",c5)',\n vr: \"SL\",\n name: \"RectangleRowStart\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",c6)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",c6)',\n vr: \"SL\",\n name: \"RectangleRowEnd\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",c7)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",c7)',\n vr: \"SL\",\n name: \"RectangleColumnStart\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",c8)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",c8)',\n vr: \"SL\",\n name: \"RectangleColumnEnd\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",c9)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",c9)',\n vr: \"SL\",\n name: \"RectangleAngulation\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",ca)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",ca)',\n vr: \"SL\",\n name: \"IrisCollimatorFlag\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",cb)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",cb)',\n vr: \"SL\",\n name: \"IrisRowStart\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",cc)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",cc)',\n vr: \"SL\",\n name: \"IrisRowEnd\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",cd)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",cd)',\n vr: \"SL\",\n name: \"IrisColumnStart\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",ce)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",ce)',\n vr: \"SL\",\n name: \"IrisColumnEnd\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",cf)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",cf)',\n vr: \"SL\",\n name: \"IrisAngulation\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",d1)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",d1)',\n vr: \"SS\",\n name: \"NumberOfFramesPlane\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",d2)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",d2)',\n vr: \"SS\",\n name: \"Internal\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",d3)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",d3)',\n vr: \"SS\",\n name: \"Internal\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",d4)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",d4)',\n vr: \"SS\",\n name: \"Internal\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",d5)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",d5)',\n vr: \"SS\",\n name: \"Internal\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",d6)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",d6)',\n vr: \"SS\",\n name: \"Internal\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",d7)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",d7)',\n vr: \"SS\",\n name: \"Internal\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",d8)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",d8)',\n vr: \"SS\",\n name: \"Internal\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",d9)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",d9)',\n vr: \"SS\",\n name: \"Internal\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",da)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",da)',\n vr: \"SS\",\n name: \"Internal\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",db)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",db)',\n vr: \"SS\",\n name: \"Internal\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",dc)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",dc)',\n vr: \"SS\",\n name: \"Internal\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",dd)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",dd)',\n vr: \"SL\",\n name: \"AnatomicBackground\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",de)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",de)',\n vr: \"SL\",\n name: \"AutoWindowBase\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",df)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",df)',\n vr: \"SS\",\n name: \"Internal\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE A\",e0)': {\n tag: '(0019,\"SIEMENS RA PLANE A\",e0)',\n vr: \"SL\",\n name: \"Internal\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0011,\"SIEMENS RA PLANE B\",28)': {\n tag: '(0011,\"SIEMENS RA PLANE B\",28)',\n vr: \"SL\",\n name: \"FluoroTimerB\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0011,\"SIEMENS RA PLANE B\",29)': {\n tag: '(0011,\"SIEMENS RA PLANE B\",29)',\n vr: \"SL\",\n name: \"FluoroSkinDoseB\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0011,\"SIEMENS RA PLANE B\",2a)': {\n tag: '(0011,\"SIEMENS RA PLANE B\",2a)',\n vr: \"SL\",\n name: \"TotalSkinDoseB\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0011,\"SIEMENS RA PLANE B\",2b)': {\n tag: '(0011,\"SIEMENS RA PLANE B\",2b)',\n vr: \"SL\",\n name: \"FluoroDoseAreaProductB\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0011,\"SIEMENS RA PLANE B\",2c)': {\n tag: '(0011,\"SIEMENS RA PLANE B\",2c)',\n vr: \"SL\",\n name: \"TotalDoseAreaProductB\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE B\",18)': {\n tag: '(0019,\"SIEMENS RA PLANE B\",18)',\n vr: \"SS\",\n name: \"Internal\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE B\",19)': {\n tag: '(0019,\"SIEMENS RA PLANE B\",19)',\n vr: \"SS\",\n name: \"Internal\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE B\",1a)': {\n tag: '(0019,\"SIEMENS RA PLANE B\",1a)',\n vr: \"SS\",\n name: \"Internal\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE B\",1b)': {\n tag: '(0019,\"SIEMENS RA PLANE B\",1b)',\n vr: \"SS\",\n name: \"Internal\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE B\",1c)': {\n tag: '(0019,\"SIEMENS RA PLANE B\",1c)',\n vr: \"SS\",\n name: \"Internal\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE B\",1d)': {\n tag: '(0019,\"SIEMENS RA PLANE B\",1d)',\n vr: \"SS\",\n name: \"Internal\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE B\",1e)': {\n tag: '(0019,\"SIEMENS RA PLANE B\",1e)',\n vr: \"SS\",\n name: \"Internal\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE B\",1f)': {\n tag: '(0019,\"SIEMENS RA PLANE B\",1f)',\n vr: \"SS\",\n name: \"Internal\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE B\",20)': {\n tag: '(0019,\"SIEMENS RA PLANE B\",20)',\n vr: \"SL\",\n name: \"SystemCalibFactorPlaneB\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE B\",22)': {\n tag: '(0019,\"SIEMENS RA PLANE B\",22)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE B\",24)': {\n tag: '(0019,\"SIEMENS RA PLANE B\",24)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE B\",26)': {\n tag: '(0019,\"SIEMENS RA PLANE B\",26)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE B\",28)': {\n tag: '(0019,\"SIEMENS RA PLANE B\",28)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE B\",2a)': {\n tag: '(0019,\"SIEMENS RA PLANE B\",2a)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE B\",2c)': {\n tag: '(0019,\"SIEMENS RA PLANE B\",2c)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE B\",2e)': {\n tag: '(0019,\"SIEMENS RA PLANE B\",2e)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE B\",30)': {\n tag: '(0019,\"SIEMENS RA PLANE B\",30)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE B\",32)': {\n tag: '(0019,\"SIEMENS RA PLANE B\",32)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE B\",34)': {\n tag: '(0019,\"SIEMENS RA PLANE B\",34)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE B\",36)': {\n tag: '(0019,\"SIEMENS RA PLANE B\",36)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE B\",38)': {\n tag: '(0019,\"SIEMENS RA PLANE B\",38)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE B\",3a)': {\n tag: '(0019,\"SIEMENS RA PLANE B\",3a)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE B\",3c)': {\n tag: '(0019,\"SIEMENS RA PLANE B\",3c)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE B\",3e)': {\n tag: '(0019,\"SIEMENS RA PLANE B\",3e)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE B\",40)': {\n tag: '(0019,\"SIEMENS RA PLANE B\",40)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE B\",42)': {\n tag: '(0019,\"SIEMENS RA PLANE B\",42)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE B\",44)': {\n tag: '(0019,\"SIEMENS RA PLANE B\",44)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE B\",46)': {\n tag: '(0019,\"SIEMENS RA PLANE B\",46)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE B\",48)': {\n tag: '(0019,\"SIEMENS RA PLANE B\",48)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE B\",4a)': {\n tag: '(0019,\"SIEMENS RA PLANE B\",4a)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE B\",4c)': {\n tag: '(0019,\"SIEMENS RA PLANE B\",4c)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE B\",4e)': {\n tag: '(0019,\"SIEMENS RA PLANE B\",4e)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE B\",50)': {\n tag: '(0019,\"SIEMENS RA PLANE B\",50)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE B\",52)': {\n tag: '(0019,\"SIEMENS RA PLANE B\",52)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE B\",54)': {\n tag: '(0019,\"SIEMENS RA PLANE B\",54)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE B\",56)': {\n tag: '(0019,\"SIEMENS RA PLANE B\",56)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE B\",58)': {\n tag: '(0019,\"SIEMENS RA PLANE B\",58)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE B\",5a)': {\n tag: '(0019,\"SIEMENS RA PLANE B\",5a)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE B\",5c)': {\n tag: '(0019,\"SIEMENS RA PLANE B\",5c)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE B\",5e)': {\n tag: '(0019,\"SIEMENS RA PLANE B\",5e)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE B\",60)': {\n tag: '(0019,\"SIEMENS RA PLANE B\",60)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE B\",62)': {\n tag: '(0019,\"SIEMENS RA PLANE B\",62)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE B\",64)': {\n tag: '(0019,\"SIEMENS RA PLANE B\",64)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE B\",66)': {\n tag: '(0019,\"SIEMENS RA PLANE B\",66)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE B\",68)': {\n tag: '(0019,\"SIEMENS RA PLANE B\",68)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE B\",6a)': {\n tag: '(0019,\"SIEMENS RA PLANE B\",6a)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE B\",6c)': {\n tag: '(0019,\"SIEMENS RA PLANE B\",6c)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE B\",6e)': {\n tag: '(0019,\"SIEMENS RA PLANE B\",6e)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE B\",70)': {\n tag: '(0019,\"SIEMENS RA PLANE B\",70)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE B\",72)': {\n tag: '(0019,\"SIEMENS RA PLANE B\",72)',\n vr: \"UN\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE B\",74)': {\n tag: '(0019,\"SIEMENS RA PLANE B\",74)',\n vr: \"UN\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE B\",76)': {\n tag: '(0019,\"SIEMENS RA PLANE B\",76)',\n vr: \"UN\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE B\",78)': {\n tag: '(0019,\"SIEMENS RA PLANE B\",78)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE B\",7a)': {\n tag: '(0019,\"SIEMENS RA PLANE B\",7a)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE B\",7c)': {\n tag: '(0019,\"SIEMENS RA PLANE B\",7c)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE B\",7e)': {\n tag: '(0019,\"SIEMENS RA PLANE B\",7e)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE B\",80)': {\n tag: '(0019,\"SIEMENS RA PLANE B\",80)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE B\",82)': {\n tag: '(0019,\"SIEMENS RA PLANE B\",82)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE B\",84)': {\n tag: '(0019,\"SIEMENS RA PLANE B\",84)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE B\",86)': {\n tag: '(0019,\"SIEMENS RA PLANE B\",86)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE B\",88)': {\n tag: '(0019,\"SIEMENS RA PLANE B\",88)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE B\",8a)': {\n tag: '(0019,\"SIEMENS RA PLANE B\",8a)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE B\",8c)': {\n tag: '(0019,\"SIEMENS RA PLANE B\",8c)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE B\",8e)': {\n tag: '(0019,\"SIEMENS RA PLANE B\",8e)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE B\",90)': {\n tag: '(0019,\"SIEMENS RA PLANE B\",90)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE B\",92)': {\n tag: '(0019,\"SIEMENS RA PLANE B\",92)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE B\",94)': {\n tag: '(0019,\"SIEMENS RA PLANE B\",94)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE B\",96)': {\n tag: '(0019,\"SIEMENS RA PLANE B\",96)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE B\",98)': {\n tag: '(0019,\"SIEMENS RA PLANE B\",98)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE B\",9a)': {\n tag: '(0019,\"SIEMENS RA PLANE B\",9a)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE B\",9c)': {\n tag: '(0019,\"SIEMENS RA PLANE B\",9c)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE B\",9e)': {\n tag: '(0019,\"SIEMENS RA PLANE B\",9e)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE B\",a0)': {\n tag: '(0019,\"SIEMENS RA PLANE B\",a0)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE B\",a2)': {\n tag: '(0019,\"SIEMENS RA PLANE B\",a2)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE B\",a4)': {\n tag: '(0019,\"SIEMENS RA PLANE B\",a4)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE B\",a6)': {\n tag: '(0019,\"SIEMENS RA PLANE B\",a6)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE B\",a8)': {\n tag: '(0019,\"SIEMENS RA PLANE B\",a8)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE B\",aa)': {\n tag: '(0019,\"SIEMENS RA PLANE B\",aa)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS RA PLANE B\",ac)': {\n tag: '(0019,\"SIEMENS RA PLANE B\",ac)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0011,\"SIEMENS RIS\",10)': {\n tag: '(0011,\"SIEMENS RIS\",10)',\n vr: \"LT\",\n name: \"PatientUID\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0011,\"SIEMENS RIS\",11)': {\n tag: '(0011,\"SIEMENS RIS\",11)',\n vr: \"LT\",\n name: \"PatientID\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0011,\"SIEMENS RIS\",20)': {\n tag: '(0011,\"SIEMENS RIS\",20)',\n vr: \"DA\",\n name: \"PatientRegistrationDate\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0011,\"SIEMENS RIS\",21)': {\n tag: '(0011,\"SIEMENS RIS\",21)',\n vr: \"TM\",\n name: \"PatientRegistrationTime\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0011,\"SIEMENS RIS\",30)': {\n tag: '(0011,\"SIEMENS RIS\",30)',\n vr: \"LT\",\n name: \"PatientnameRIS\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0011,\"SIEMENS RIS\",31)': {\n tag: '(0011,\"SIEMENS RIS\",31)',\n vr: \"LT\",\n name: \"PatientprenameRIS\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0011,\"SIEMENS RIS\",40)': {\n tag: '(0011,\"SIEMENS RIS\",40)',\n vr: \"LT\",\n name: \"PatientHospitalStatus\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0011,\"SIEMENS RIS\",41)': {\n tag: '(0011,\"SIEMENS RIS\",41)',\n vr: \"LT\",\n name: \"MedicalAlerts\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0011,\"SIEMENS RIS\",42)': {\n tag: '(0011,\"SIEMENS RIS\",42)',\n vr: \"LT\",\n name: \"ContrastAllergies\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0031,\"SIEMENS RIS\",10)': {\n tag: '(0031,\"SIEMENS RIS\",10)',\n vr: \"LT\",\n name: \"RequestUID\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0031,\"SIEMENS RIS\",45)': {\n tag: '(0031,\"SIEMENS RIS\",45)',\n vr: \"LT\",\n name: \"RequestingPhysician\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0031,\"SIEMENS RIS\",50)': {\n tag: '(0031,\"SIEMENS RIS\",50)',\n vr: \"LT\",\n name: \"RequestedPhysician\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0033,\"SIEMENS RIS\",10)': {\n tag: '(0033,\"SIEMENS RIS\",10)',\n vr: \"LT\",\n name: \"PatientStudyUID\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS SMS-AX ACQ 1.0\",00)': {\n tag: '(0021,\"SIEMENS SMS-AX ACQ 1.0\",00)',\n vr: \"US\",\n name: \"AcquisitionType\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS SMS-AX ACQ 1.0\",01)': {\n tag: '(0021,\"SIEMENS SMS-AX ACQ 1.0\",01)',\n vr: \"US\",\n name: \"AcquisitionMode\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS SMS-AX ACQ 1.0\",02)': {\n tag: '(0021,\"SIEMENS SMS-AX ACQ 1.0\",02)',\n vr: \"US\",\n name: \"FootswitchIndex\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS SMS-AX ACQ 1.0\",03)': {\n tag: '(0021,\"SIEMENS SMS-AX ACQ 1.0\",03)',\n vr: \"US\",\n name: \"AcquisitionRoom\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS SMS-AX ACQ 1.0\",04)': {\n tag: '(0021,\"SIEMENS SMS-AX ACQ 1.0\",04)',\n vr: \"SL\",\n name: \"CurrentTimeProduct\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS SMS-AX ACQ 1.0\",05)': {\n tag: '(0021,\"SIEMENS SMS-AX ACQ 1.0\",05)',\n vr: \"SL\",\n name: \"Dose\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS SMS-AX ACQ 1.0\",06)': {\n tag: '(0021,\"SIEMENS SMS-AX ACQ 1.0\",06)',\n vr: \"SL\",\n name: \"SkinDosePercent\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS SMS-AX ACQ 1.0\",07)': {\n tag: '(0021,\"SIEMENS SMS-AX ACQ 1.0\",07)',\n vr: \"SL\",\n name: \"SkinDoseAccumulation\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS SMS-AX ACQ 1.0\",08)': {\n tag: '(0021,\"SIEMENS SMS-AX ACQ 1.0\",08)',\n vr: \"SL\",\n name: \"SkinDoseRate\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS SMS-AX ACQ 1.0\",0A)': {\n tag: '(0021,\"SIEMENS SMS-AX ACQ 1.0\",0A)',\n vr: \"UL\",\n name: \"CopperFilter\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS SMS-AX ACQ 1.0\",0B)': {\n tag: '(0021,\"SIEMENS SMS-AX ACQ 1.0\",0B)',\n vr: \"US\",\n name: \"MeasuringField\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS SMS-AX ACQ 1.0\",0C)': {\n tag: '(0021,\"SIEMENS SMS-AX ACQ 1.0\",0C)',\n vr: \"SS\",\n name: \"PostBlankingCircle\",\n vm: \"3\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS SMS-AX ACQ 1.0\",0D)': {\n tag: '(0021,\"SIEMENS SMS-AX ACQ 1.0\",0D)',\n vr: \"SS\",\n name: \"DynaAngles\",\n vm: \"2-2n\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS SMS-AX ACQ 1.0\",0E)': {\n tag: '(0021,\"SIEMENS SMS-AX ACQ 1.0\",0E)',\n vr: \"SS\",\n name: \"TotalSteps\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS SMS-AX ACQ 1.0\",0F)': {\n tag: '(0021,\"SIEMENS SMS-AX ACQ 1.0\",0F)',\n vr: \"SL\",\n name: \"DynaXRayInfo\",\n vm: \"3-3n\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS SMS-AX ACQ 1.0\",10)': {\n tag: '(0021,\"SIEMENS SMS-AX ACQ 1.0\",10)',\n vr: \"US\",\n name: \"ModalityLUTInputGamma\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS SMS-AX ACQ 1.0\",11)': {\n tag: '(0021,\"SIEMENS SMS-AX ACQ 1.0\",11)',\n vr: \"US\",\n name: \"ModalityLUTOutputGamma\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS SMS-AX ACQ 1.0\",12)': {\n tag: '(0021,\"SIEMENS SMS-AX ACQ 1.0\",12)',\n vr: \"OB\",\n name: \"SH_STPAR\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS SMS-AX ACQ 1.0\",13)': {\n tag: '(0021,\"SIEMENS SMS-AX ACQ 1.0\",13)',\n vr: \"US\",\n name: \"AcquisitionZoom\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS SMS-AX ACQ 1.0\",14)': {\n tag: '(0021,\"SIEMENS SMS-AX ACQ 1.0\",14)',\n vr: \"SS\",\n name: \"DynaAngulationStepWidth\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS SMS-AX ACQ 1.0\",15)': {\n tag: '(0021,\"SIEMENS SMS-AX ACQ 1.0\",15)',\n vr: \"US\",\n name: \"Harmonization\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS SMS-AX ACQ 1.0\",16)': {\n tag: '(0021,\"SIEMENS SMS-AX ACQ 1.0\",16)',\n vr: \"US\",\n name: \"DRSingleFlag\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS SMS-AX ACQ 1.0\",17)': {\n tag: '(0021,\"SIEMENS SMS-AX ACQ 1.0\",17)',\n vr: \"SL\",\n name: \"SourceToIsocenter\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS SMS-AX ACQ 1.0\",18)': {\n tag: '(0021,\"SIEMENS SMS-AX ACQ 1.0\",18)',\n vr: \"US\",\n name: \"PressureData\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS SMS-AX ACQ 1.0\",19)': {\n tag: '(0021,\"SIEMENS SMS-AX ACQ 1.0\",19)',\n vr: \"SL\",\n name: \"ECGIndexArray\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS SMS-AX ACQ 1.0\",1A)': {\n tag: '(0021,\"SIEMENS SMS-AX ACQ 1.0\",1A)',\n vr: \"US\",\n name: \"FDFlag\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS SMS-AX ACQ 1.0\",1B)': {\n tag: '(0021,\"SIEMENS SMS-AX ACQ 1.0\",1B)',\n vr: \"OB\",\n name: \"SH_ZOOM\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS SMS-AX ACQ 1.0\",1C)': {\n tag: '(0021,\"SIEMENS SMS-AX ACQ 1.0\",1C)',\n vr: \"OB\",\n name: \"SH_COLPAR\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS SMS-AX ACQ 1.0\",1D)': {\n tag: '(0021,\"SIEMENS SMS-AX ACQ 1.0\",1D)',\n vr: \"US\",\n name: \"K_Factor\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS SMS-AX ACQ 1.0\",1E)': {\n tag: '(0021,\"SIEMENS SMS-AX ACQ 1.0\",1E)',\n vr: \"US\",\n name: \"EVE\",\n vm: \"8\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS SMS-AX ACQ 1.0\",1F)': {\n tag: '(0021,\"SIEMENS SMS-AX ACQ 1.0\",1F)',\n vr: \"SL\",\n name: \"TotalSceneTime\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS SMS-AX ACQ 1.0\",20)': {\n tag: '(0021,\"SIEMENS SMS-AX ACQ 1.0\",20)',\n vr: \"US\",\n name: \"RestoreFlag\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS SMS-AX ACQ 1.0\",21)': {\n tag: '(0021,\"SIEMENS SMS-AX ACQ 1.0\",21)',\n vr: \"US\",\n name: \"StandMovementFlag\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS SMS-AX ACQ 1.0\",22)': {\n tag: '(0021,\"SIEMENS SMS-AX ACQ 1.0\",22)',\n vr: \"US\",\n name: \"FDRows\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS SMS-AX ACQ 1.0\",23)': {\n tag: '(0021,\"SIEMENS SMS-AX ACQ 1.0\",23)',\n vr: \"US\",\n name: \"FDColumns\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS SMS-AX ACQ 1.0\",24)': {\n tag: '(0021,\"SIEMENS SMS-AX ACQ 1.0\",24)',\n vr: \"US\",\n name: \"TableMovementFlag\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS SMS-AX ACQ 1.0\",25)': {\n tag: '(0021,\"SIEMENS SMS-AX ACQ 1.0\",25)',\n vr: \"LO\",\n name: \"OriginalOrganProgramName\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SIEMENS SMS-AX ACQ 1.0\",26)': {\n tag: '(0021,\"SIEMENS SMS-AX ACQ 1.0\",26)',\n vr: \"DS\",\n name: \"CrispyXPIFilter\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0025,\"SIEMENS SMS-AX ORIGINAL IMAGE INFO 1.0\",00)': {\n tag: '(0025,\"SIEMENS SMS-AX ORIGINAL IMAGE INFO 1.0\",00)',\n vr: \"US\",\n name: \"ViewNative\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0025,\"SIEMENS SMS-AX ORIGINAL IMAGE INFO 1.0\",01)': {\n tag: '(0025,\"SIEMENS SMS-AX ORIGINAL IMAGE INFO 1.0\",01)',\n vr: \"US\",\n name: \"OriginalSeriesNumber\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0025,\"SIEMENS SMS-AX ORIGINAL IMAGE INFO 1.0\",02)': {\n tag: '(0025,\"SIEMENS SMS-AX ORIGINAL IMAGE INFO 1.0\",02)',\n vr: \"US\",\n name: \"OriginalImageNumber\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0025,\"SIEMENS SMS-AX ORIGINAL IMAGE INFO 1.0\",03)': {\n tag: '(0025,\"SIEMENS SMS-AX ORIGINAL IMAGE INFO 1.0\",03)',\n vr: \"US\",\n name: \"WinCenter\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0025,\"SIEMENS SMS-AX ORIGINAL IMAGE INFO 1.0\",04)': {\n tag: '(0025,\"SIEMENS SMS-AX ORIGINAL IMAGE INFO 1.0\",04)',\n vr: \"US\",\n name: \"WinWidth\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0025,\"SIEMENS SMS-AX ORIGINAL IMAGE INFO 1.0\",05)': {\n tag: '(0025,\"SIEMENS SMS-AX ORIGINAL IMAGE INFO 1.0\",05)',\n vr: \"US\",\n name: \"WinBrightness\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0025,\"SIEMENS SMS-AX ORIGINAL IMAGE INFO 1.0\",06)': {\n tag: '(0025,\"SIEMENS SMS-AX ORIGINAL IMAGE INFO 1.0\",06)',\n vr: \"US\",\n name: \"WinContrast\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0025,\"SIEMENS SMS-AX ORIGINAL IMAGE INFO 1.0\",07)': {\n tag: '(0025,\"SIEMENS SMS-AX ORIGINAL IMAGE INFO 1.0\",07)',\n vr: \"US\",\n name: \"OriginalFrameNumber\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0025,\"SIEMENS SMS-AX ORIGINAL IMAGE INFO 1.0\",08)': {\n tag: '(0025,\"SIEMENS SMS-AX ORIGINAL IMAGE INFO 1.0\",08)',\n vr: \"US\",\n name: \"OriginalMaskFrameNumber\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0025,\"SIEMENS SMS-AX ORIGINAL IMAGE INFO 1.0\",09)': {\n tag: '(0025,\"SIEMENS SMS-AX ORIGINAL IMAGE INFO 1.0\",09)',\n vr: \"US\",\n name: \"Opac\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0025,\"SIEMENS SMS-AX ORIGINAL IMAGE INFO 1.0\",0A)': {\n tag: '(0025,\"SIEMENS SMS-AX ORIGINAL IMAGE INFO 1.0\",0A)',\n vr: \"US\",\n name: \"OriginalNumberOfFrames\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0025,\"SIEMENS SMS-AX ORIGINAL IMAGE INFO 1.0\",0B)': {\n tag: '(0025,\"SIEMENS SMS-AX ORIGINAL IMAGE INFO 1.0\",0B)',\n vr: \"DS\",\n name: \"OriginalSceneDuration\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0025,\"SIEMENS SMS-AX ORIGINAL IMAGE INFO 1.0\",0C)': {\n tag: '(0025,\"SIEMENS SMS-AX ORIGINAL IMAGE INFO 1.0\",0C)',\n vr: \"LO\",\n name: \"IdentifierLOID\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0025,\"SIEMENS SMS-AX ORIGINAL IMAGE INFO 1.0\",0D)': {\n tag: '(0025,\"SIEMENS SMS-AX ORIGINAL IMAGE INFO 1.0\",0D)',\n vr: \"SS\",\n name: \"OriginalSceneVFRInfo\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0025,\"SIEMENS SMS-AX ORIGINAL IMAGE INFO 1.0\",0E)': {\n tag: '(0025,\"SIEMENS SMS-AX ORIGINAL IMAGE INFO 1.0\",0E)',\n vr: \"SS\",\n name: \"OriginalFrameECGPosition\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0025,\"SIEMENS SMS-AX ORIGINAL IMAGE INFO 1.0\",0F)': {\n tag: '(0025,\"SIEMENS SMS-AX ORIGINAL IMAGE INFO 1.0\",0F)',\n vr: \"SS\",\n name: \"OriginalECG1stFrameOffset_retired\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0025,\"SIEMENS SMS-AX ORIGINAL IMAGE INFO 1.0\",10)': {\n tag: '(0025,\"SIEMENS SMS-AX ORIGINAL IMAGE INFO 1.0\",10)',\n vr: \"SS\",\n name: \"ZoomFlag\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0025,\"SIEMENS SMS-AX ORIGINAL IMAGE INFO 1.0\",11)': {\n tag: '(0025,\"SIEMENS SMS-AX ORIGINAL IMAGE INFO 1.0\",11)',\n vr: \"US\",\n name: \"Flex\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0025,\"SIEMENS SMS-AX ORIGINAL IMAGE INFO 1.0\",12)': {\n tag: '(0025,\"SIEMENS SMS-AX ORIGINAL IMAGE INFO 1.0\",12)',\n vr: \"US\",\n name: \"NumberOfMaskFrames\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0025,\"SIEMENS SMS-AX ORIGINAL IMAGE INFO 1.0\",13)': {\n tag: '(0025,\"SIEMENS SMS-AX ORIGINAL IMAGE INFO 1.0\",13)',\n vr: \"US\",\n name: \"NumberOfFillFrames\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0025,\"SIEMENS SMS-AX ORIGINAL IMAGE INFO 1.0\",14)': {\n tag: '(0025,\"SIEMENS SMS-AX ORIGINAL IMAGE INFO 1.0\",14)',\n vr: \"US\",\n name: \"SeriesNumber\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0025,\"SIEMENS SMS-AX ORIGINAL IMAGE INFO 1.0\",15)': {\n tag: '(0025,\"SIEMENS SMS-AX ORIGINAL IMAGE INFO 1.0\",15)',\n vr: \"IS\",\n name: \"ImageNumber\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0023,\"SIEMENS SMS-AX QUANT 1.0\",00)': {\n tag: '(0023,\"SIEMENS SMS-AX QUANT 1.0\",00)',\n vr: \"DS\",\n name: \"HorizontalCalibrationPixelSize\",\n vm: \"2\",\n version: \"PrivateTag\"\n },\n '(0023,\"SIEMENS SMS-AX QUANT 1.0\",01)': {\n tag: '(0023,\"SIEMENS SMS-AX QUANT 1.0\",01)',\n vr: \"DS\",\n name: \"VerticalCalibrationPixelSize\",\n vm: \"2\",\n version: \"PrivateTag\"\n },\n '(0023,\"SIEMENS SMS-AX QUANT 1.0\",02)': {\n tag: '(0023,\"SIEMENS SMS-AX QUANT 1.0\",02)',\n vr: \"LO\",\n name: \"CalibrationObject\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0023,\"SIEMENS SMS-AX QUANT 1.0\",03)': {\n tag: '(0023,\"SIEMENS SMS-AX QUANT 1.0\",03)',\n vr: \"DS\",\n name: \"CalibrationObjectSize\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0023,\"SIEMENS SMS-AX QUANT 1.0\",04)': {\n tag: '(0023,\"SIEMENS SMS-AX QUANT 1.0\",04)',\n vr: \"LO\",\n name: \"CalibrationMethod\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0023,\"SIEMENS SMS-AX QUANT 1.0\",05)': {\n tag: '(0023,\"SIEMENS SMS-AX QUANT 1.0\",05)',\n vr: \"ST\",\n name: \"Filename\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0023,\"SIEMENS SMS-AX QUANT 1.0\",06)': {\n tag: '(0023,\"SIEMENS SMS-AX QUANT 1.0\",06)',\n vr: \"IS\",\n name: \"FrameNumber\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0023,\"SIEMENS SMS-AX QUANT 1.0\",07)': {\n tag: '(0023,\"SIEMENS SMS-AX QUANT 1.0\",07)',\n vr: \"IS\",\n name: \"CalibrationFactorMultiplicity\",\n vm: \"2\",\n version: \"PrivateTag\"\n },\n '(0023,\"SIEMENS SMS-AX QUANT 1.0\",08)': {\n tag: '(0023,\"SIEMENS SMS-AX QUANT 1.0\",08)',\n vr: \"IS\",\n name: \"CalibrationTODValue\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS SMS-AX VIEW 1.0\",00)': {\n tag: '(0019,\"SIEMENS SMS-AX VIEW 1.0\",00)',\n vr: \"US\",\n name: \"ReviewMode\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS SMS-AX VIEW 1.0\",01)': {\n tag: '(0019,\"SIEMENS SMS-AX VIEW 1.0\",01)',\n vr: \"US\",\n name: \"AnatomicalBackgroundPercent\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS SMS-AX VIEW 1.0\",02)': {\n tag: '(0019,\"SIEMENS SMS-AX VIEW 1.0\",02)',\n vr: \"US\",\n name: \"NumberOfPhases\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS SMS-AX VIEW 1.0\",03)': {\n tag: '(0019,\"SIEMENS SMS-AX VIEW 1.0\",03)',\n vr: \"US\",\n name: \"ApplyAnatomicalBackground\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS SMS-AX VIEW 1.0\",04)': {\n tag: '(0019,\"SIEMENS SMS-AX VIEW 1.0\",04)',\n vr: \"SS\",\n name: \"PixelShiftArray\",\n vm: \"4-4n\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS SMS-AX VIEW 1.0\",05)': {\n tag: '(0019,\"SIEMENS SMS-AX VIEW 1.0\",05)',\n vr: \"US\",\n name: \"Brightness\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS SMS-AX VIEW 1.0\",06)': {\n tag: '(0019,\"SIEMENS SMS-AX VIEW 1.0\",06)',\n vr: \"US\",\n name: \"Contrast\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS SMS-AX VIEW 1.0\",07)': {\n tag: '(0019,\"SIEMENS SMS-AX VIEW 1.0\",07)',\n vr: \"US\",\n name: \"Enabled\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS SMS-AX VIEW 1.0\",08)': {\n tag: '(0019,\"SIEMENS SMS-AX VIEW 1.0\",08)',\n vr: \"US\",\n name: \"NativeEdgeEnhancementPercentGain\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS SMS-AX VIEW 1.0\",09)': {\n tag: '(0019,\"SIEMENS SMS-AX VIEW 1.0\",09)',\n vr: \"SS\",\n name: \"NativeEdgeEnhancementLUTIndex\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS SMS-AX VIEW 1.0\",0A)': {\n tag: '(0019,\"SIEMENS SMS-AX VIEW 1.0\",0A)',\n vr: \"SS\",\n name: \"NativeEdgeEnhancementKernelSize\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS SMS-AX VIEW 1.0\",0B)': {\n tag: '(0019,\"SIEMENS SMS-AX VIEW 1.0\",0B)',\n vr: \"US\",\n name: \"SubtrEdgeEnhancementPercentGain\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS SMS-AX VIEW 1.0\",0C)': {\n tag: '(0019,\"SIEMENS SMS-AX VIEW 1.0\",0C)',\n vr: \"SS\",\n name: \"SubtrEdgeEnhancementLUTIndex\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS SMS-AX VIEW 1.0\",0D)': {\n tag: '(0019,\"SIEMENS SMS-AX VIEW 1.0\",0D)',\n vr: \"SS\",\n name: \"SubtrEdgeEnhancementKernelSize\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS SMS-AX VIEW 1.0\",0E)': {\n tag: '(0019,\"SIEMENS SMS-AX VIEW 1.0\",0E)',\n vr: \"US\",\n name: \"FadePercent\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS SMS-AX VIEW 1.0\",0F)': {\n tag: '(0019,\"SIEMENS SMS-AX VIEW 1.0\",0F)',\n vr: \"US\",\n name: \"FlippedBeforeLateralityApplied\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS SMS-AX VIEW 1.0\",10)': {\n tag: '(0019,\"SIEMENS SMS-AX VIEW 1.0\",10)',\n vr: \"US\",\n name: \"ApplyFade\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS SMS-AX VIEW 1.0\",12)': {\n tag: '(0019,\"SIEMENS SMS-AX VIEW 1.0\",12)',\n vr: \"US\",\n name: \"Zoom\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS SMS-AX VIEW 1.0\",13)': {\n tag: '(0019,\"SIEMENS SMS-AX VIEW 1.0\",13)',\n vr: \"SS\",\n name: \"PanX\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS SMS-AX VIEW 1.0\",14)': {\n tag: '(0019,\"SIEMENS SMS-AX VIEW 1.0\",14)',\n vr: \"SS\",\n name: \"PanY\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS SMS-AX VIEW 1.0\",15)': {\n tag: '(0019,\"SIEMENS SMS-AX VIEW 1.0\",15)',\n vr: \"SS\",\n name: \"NativeEdgeEnhancementAdvPercGain\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS SMS-AX VIEW 1.0\",16)': {\n tag: '(0019,\"SIEMENS SMS-AX VIEW 1.0\",16)',\n vr: \"SS\",\n name: \"SubtrEdgeEnhancementAdvPercGain\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS SMS-AX VIEW 1.0\",17)': {\n tag: '(0019,\"SIEMENS SMS-AX VIEW 1.0\",17)',\n vr: \"US\",\n name: \"InvertFlag\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS SMS-AX VIEW 1.0\",1A)': {\n tag: '(0019,\"SIEMENS SMS-AX VIEW 1.0\",1A)',\n vr: \"OB\",\n name: \"Quant1KOverlay\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS SMS-AX VIEW 1.0\",1B)': {\n tag: '(0019,\"SIEMENS SMS-AX VIEW 1.0\",1B)',\n vr: \"US\",\n name: \"OriginalResolution\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS SMS-AX VIEW 1.0\",1C)': {\n tag: '(0019,\"SIEMENS SMS-AX VIEW 1.0\",1C)',\n vr: \"DS\",\n name: \"AutoWindowCenter\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SIEMENS SMS-AX VIEW 1.0\",1D)': {\n tag: '(0019,\"SIEMENS SMS-AX VIEW 1.0\",1D)',\n vr: \"DS\",\n name: \"AutoWindowWidth\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"SIENET\",01)': {\n tag: '(0009,\"SIENET\",01)',\n vr: \"US\",\n name: \"SIENETCommandField\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"SIENET\",14)': {\n tag: '(0009,\"SIENET\",14)',\n vr: \"LT\",\n name: \"ReceiverPLA\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"SIENET\",16)': {\n tag: '(0009,\"SIENET\",16)',\n vr: \"US\",\n name: \"TransferPriority\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"SIENET\",29)': {\n tag: '(0009,\"SIENET\",29)',\n vr: \"LT\",\n name: \"ActualUser\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0095,\"SIENET\",01)': {\n tag: '(0095,\"SIENET\",01)',\n vr: \"LT\",\n name: \"ExaminationFolderID\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0095,\"SIENET\",04)': {\n tag: '(0095,\"SIENET\",04)',\n vr: \"UL\",\n name: \"FolderReportedStatus\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0095,\"SIENET\",05)': {\n tag: '(0095,\"SIENET\",05)',\n vr: \"LT\",\n name: \"FolderReportingRadiologist\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0095,\"SIENET\",07)': {\n tag: '(0095,\"SIENET\",07)',\n vr: \"LT\",\n name: \"SIENETISAPLA\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0099,\"SIENET\",02)': {\n tag: '(0099,\"SIENET\",02)',\n vr: \"UL\",\n name: \"DataObjectAttributes\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"SPI RELEASE 1\",10)': {\n tag: '(0009,\"SPI RELEASE 1\",10)',\n vr: \"LT\",\n name: \"Comments\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"SPI RELEASE 1\",15)': {\n tag: '(0009,\"SPI RELEASE 1\",15)',\n vr: \"LO\",\n name: \"SPIImageUID\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"SPI RELEASE 1\",40)': {\n tag: '(0009,\"SPI RELEASE 1\",40)',\n vr: \"US\",\n name: \"DataObjectType\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"SPI RELEASE 1\",41)': {\n tag: '(0009,\"SPI RELEASE 1\",41)',\n vr: \"LO\",\n name: \"DataObjectSubtype\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0011,\"SPI RELEASE 1\",10)': {\n tag: '(0011,\"SPI RELEASE 1\",10)',\n vr: \"LO\",\n name: \"Organ\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0011,\"SPI RELEASE 1\",15)': {\n tag: '(0011,\"SPI RELEASE 1\",15)',\n vr: \"LO\",\n name: \"AllergyIndication\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0011,\"SPI RELEASE 1\",20)': {\n tag: '(0011,\"SPI RELEASE 1\",20)',\n vr: \"LO\",\n name: \"Pregnancy\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SPI RELEASE 1\",60)': {\n tag: '(0029,\"SPI RELEASE 1\",60)',\n vr: \"LT\",\n name: \"CompressionAlgorithm\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"SPI Release 1\",10)': {\n tag: '(0009,\"SPI Release 1\",10)',\n vr: \"LT\",\n name: \"Comments\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"SPI Release 1\",15)': {\n tag: '(0009,\"SPI Release 1\",15)',\n vr: \"LO\",\n name: \"SPIImageUID\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"SPI Release 1\",40)': {\n tag: '(0009,\"SPI Release 1\",40)',\n vr: \"US\",\n name: \"DataObjectType\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"SPI Release 1\",41)': {\n tag: '(0009,\"SPI Release 1\",41)',\n vr: \"LO\",\n name: \"DataObjectSubtype\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0011,\"SPI Release 1\",10)': {\n tag: '(0011,\"SPI Release 1\",10)',\n vr: \"LO\",\n name: \"Organ\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0011,\"SPI Release 1\",15)': {\n tag: '(0011,\"SPI Release 1\",15)',\n vr: \"LO\",\n name: \"AllergyIndication\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0011,\"SPI Release 1\",20)': {\n tag: '(0011,\"SPI Release 1\",20)',\n vr: \"LO\",\n name: \"Pregnancy\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SPI Release 1\",60)': {\n tag: '(0029,\"SPI Release 1\",60)',\n vr: \"LT\",\n name: \"CompressionAlgorithm\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"SPI\",10)': {\n tag: '(0009,\"SPI\",10)',\n vr: \"LO\",\n name: \"Comments\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"SPI\",15)': {\n tag: '(0009,\"SPI\",15)',\n vr: \"LO\",\n name: \"SPIImageUID\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"SPI\",40)': {\n tag: '(0009,\"SPI\",40)',\n vr: \"US\",\n name: \"DataObjectType\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"SPI\",41)': {\n tag: '(0009,\"SPI\",41)',\n vr: \"LT\",\n name: \"DataObjectSubtype\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0011,\"SPI\",10)': {\n tag: '(0011,\"SPI\",10)',\n vr: \"LT\",\n name: \"Organ\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0011,\"SPI\",15)': {\n tag: '(0011,\"SPI\",15)',\n vr: \"LT\",\n name: \"AllergyIndication\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0011,\"SPI\",20)': {\n tag: '(0011,\"SPI\",20)',\n vr: \"LT\",\n name: \"Pregnancy\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SPI\",60)': {\n tag: '(0029,\"SPI\",60)',\n vr: \"LT\",\n name: \"CompressionAlgorithm\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"SPI-P Release 1\",00)': {\n tag: '(0009,\"SPI-P Release 1\",00)',\n vr: \"LT\",\n name: \"DataObjectRecognitionCode\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"SPI-P Release 1\",04)': {\n tag: '(0009,\"SPI-P Release 1\",04)',\n vr: \"LO\",\n name: \"ImageDataConsistence\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"SPI-P Release 1\",08)': {\n tag: '(0009,\"SPI-P Release 1\",08)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"SPI-P Release 1\",12)': {\n tag: '(0009,\"SPI-P Release 1\",12)',\n vr: \"LO\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"SPI-P Release 1\",15)': {\n tag: '(0009,\"SPI-P Release 1\",15)',\n vr: \"LO\",\n name: \"UniqueIdentifier\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"SPI-P Release 1\",16)': {\n tag: '(0009,\"SPI-P Release 1\",16)',\n vr: \"LO\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"SPI-P Release 1\",18)': {\n tag: '(0009,\"SPI-P Release 1\",18)',\n vr: \"LO\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"SPI-P Release 1\",21)': {\n tag: '(0009,\"SPI-P Release 1\",21)',\n vr: \"LT\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"SPI-P Release 1\",31)': {\n tag: '(0009,\"SPI-P Release 1\",31)',\n vr: \"LT\",\n name: \"PACSUniqueIdentifier\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"SPI-P Release 1\",34)': {\n tag: '(0009,\"SPI-P Release 1\",34)',\n vr: \"LT\",\n name: \"ClusterUniqueIdentifier\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"SPI-P Release 1\",38)': {\n tag: '(0009,\"SPI-P Release 1\",38)',\n vr: \"LT\",\n name: \"SystemUniqueIdentifier\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"SPI-P Release 1\",39)': {\n tag: '(0009,\"SPI-P Release 1\",39)',\n vr: \"LT\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"SPI-P Release 1\",51)': {\n tag: '(0009,\"SPI-P Release 1\",51)',\n vr: \"LT\",\n name: \"StudyUniqueIdentifier\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"SPI-P Release 1\",61)': {\n tag: '(0009,\"SPI-P Release 1\",61)',\n vr: \"LT\",\n name: \"SeriesUniqueIdentifier\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"SPI-P Release 1\",91)': {\n tag: '(0009,\"SPI-P Release 1\",91)',\n vr: \"LT\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"SPI-P Release 1\",f2)': {\n tag: '(0009,\"SPI-P Release 1\",f2)',\n vr: \"LT\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"SPI-P Release 1\",f3)': {\n tag: '(0009,\"SPI-P Release 1\",f3)',\n vr: \"UN\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"SPI-P Release 1\",f4)': {\n tag: '(0009,\"SPI-P Release 1\",f4)',\n vr: \"LT\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"SPI-P Release 1\",f5)': {\n tag: '(0009,\"SPI-P Release 1\",f5)',\n vr: \"UN\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"SPI-P Release 1\",f7)': {\n tag: '(0009,\"SPI-P Release 1\",f7)',\n vr: \"LT\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0011,\"SPI-P Release 1\",10)': {\n tag: '(0011,\"SPI-P Release 1\",10)',\n vr: \"LT\",\n name: \"PatientEntryID\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0011,\"SPI-P Release 1\",21)': {\n tag: '(0011,\"SPI-P Release 1\",21)',\n vr: \"UN\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0011,\"SPI-P Release 1\",22)': {\n tag: '(0011,\"SPI-P Release 1\",22)',\n vr: \"UN\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0011,\"SPI-P Release 1\",31)': {\n tag: '(0011,\"SPI-P Release 1\",31)',\n vr: \"UN\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0011,\"SPI-P Release 1\",32)': {\n tag: '(0011,\"SPI-P Release 1\",32)',\n vr: \"UN\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SPI-P Release 1\",00)': {\n tag: '(0019,\"SPI-P Release 1\",00)',\n vr: \"UN\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SPI-P Release 1\",01)': {\n tag: '(0019,\"SPI-P Release 1\",01)',\n vr: \"UN\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SPI-P Release 1\",02)': {\n tag: '(0019,\"SPI-P Release 1\",02)',\n vr: \"UN\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SPI-P Release 1\",10)': {\n tag: '(0019,\"SPI-P Release 1\",10)',\n vr: \"US\",\n name: \"MainsFrequency\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SPI-P Release 1\",25)': {\n tag: '(0019,\"SPI-P Release 1\",25)',\n vr: \"LT\",\n name: \"OriginalPixelDataQuality\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0019,\"SPI-P Release 1\",30)': {\n tag: '(0019,\"SPI-P Release 1\",30)',\n vr: \"US\",\n name: \"ECGTriggering\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SPI-P Release 1\",31)': {\n tag: '(0019,\"SPI-P Release 1\",31)',\n vr: \"UN\",\n name: \"ECG1Offset\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SPI-P Release 1\",32)': {\n tag: '(0019,\"SPI-P Release 1\",32)',\n vr: \"UN\",\n name: \"ECG2Offset1\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SPI-P Release 1\",33)': {\n tag: '(0019,\"SPI-P Release 1\",33)',\n vr: \"UN\",\n name: \"ECG2Offset2\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SPI-P Release 1\",50)': {\n tag: '(0019,\"SPI-P Release 1\",50)',\n vr: \"US\",\n name: \"VideoScanMode\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SPI-P Release 1\",51)': {\n tag: '(0019,\"SPI-P Release 1\",51)',\n vr: \"US\",\n name: \"VideoLineRate\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SPI-P Release 1\",60)': {\n tag: '(0019,\"SPI-P Release 1\",60)',\n vr: \"US\",\n name: \"XrayTechnique\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SPI-P Release 1\",61)': {\n tag: '(0019,\"SPI-P Release 1\",61)',\n vr: \"DS\",\n name: \"ImageIdentifierFromat\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SPI-P Release 1\",62)': {\n tag: '(0019,\"SPI-P Release 1\",62)',\n vr: \"US\",\n name: \"IrisDiaphragm\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SPI-P Release 1\",63)': {\n tag: '(0019,\"SPI-P Release 1\",63)',\n vr: \"CS\",\n name: \"Filter\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SPI-P Release 1\",64)': {\n tag: '(0019,\"SPI-P Release 1\",64)',\n vr: \"CS\",\n name: \"CineParallel\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SPI-P Release 1\",65)': {\n tag: '(0019,\"SPI-P Release 1\",65)',\n vr: \"CS\",\n name: \"CineMaster\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SPI-P Release 1\",70)': {\n tag: '(0019,\"SPI-P Release 1\",70)',\n vr: \"US\",\n name: \"ExposureChannel\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SPI-P Release 1\",71)': {\n tag: '(0019,\"SPI-P Release 1\",71)',\n vr: \"UN\",\n name: \"ExposureChannelFirstImage\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SPI-P Release 1\",72)': {\n tag: '(0019,\"SPI-P Release 1\",72)',\n vr: \"US\",\n name: \"ProcessingChannel\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SPI-P Release 1\",80)': {\n tag: '(0019,\"SPI-P Release 1\",80)',\n vr: \"DS\",\n name: \"AcquisitionDelay\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SPI-P Release 1\",81)': {\n tag: '(0019,\"SPI-P Release 1\",81)',\n vr: \"UN\",\n name: \"RelativeImageTime\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SPI-P Release 1\",90)': {\n tag: '(0019,\"SPI-P Release 1\",90)',\n vr: \"CS\",\n name: \"VideoWhiteCompression\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SPI-P Release 1\",a0)': {\n tag: '(0019,\"SPI-P Release 1\",a0)',\n vr: \"US\",\n name: \"Angulation\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SPI-P Release 1\",a1)': {\n tag: '(0019,\"SPI-P Release 1\",a1)',\n vr: \"US\",\n name: \"Rotation\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SPI-P Release 1\",12)': {\n tag: '(0021,\"SPI-P Release 1\",12)',\n vr: \"LT\",\n name: \"SeriesUniqueIdentifier\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SPI-P Release 1\",14)': {\n tag: '(0021,\"SPI-P Release 1\",14)',\n vr: \"LT\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SPI-P Release 1\",00)': {\n tag: '(0029,\"SPI-P Release 1\",00)',\n vr: \"DS\",\n name: \"Unknown\",\n vm: \"4\",\n version: \"PrivateTag\"\n },\n '(0029,\"SPI-P Release 1\",20)': {\n tag: '(0029,\"SPI-P Release 1\",20)',\n vr: \"DS\",\n name: \"PixelAspectRatio\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SPI-P Release 1\",25)': {\n tag: '(0029,\"SPI-P Release 1\",25)',\n vr: \"LO\",\n name: \"ProcessedPixelDataQuality\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0029,\"SPI-P Release 1\",30)': {\n tag: '(0029,\"SPI-P Release 1\",30)',\n vr: \"LT\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SPI-P Release 1\",38)': {\n tag: '(0029,\"SPI-P Release 1\",38)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SPI-P Release 1\",60)': {\n tag: '(0029,\"SPI-P Release 1\",60)',\n vr: \"LT\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SPI-P Release 1\",61)': {\n tag: '(0029,\"SPI-P Release 1\",61)',\n vr: \"LT\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SPI-P Release 1\",67)': {\n tag: '(0029,\"SPI-P Release 1\",67)',\n vr: \"LT\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SPI-P Release 1\",70)': {\n tag: '(0029,\"SPI-P Release 1\",70)',\n vr: \"LT\",\n name: \"WindowID\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SPI-P Release 1\",71)': {\n tag: '(0029,\"SPI-P Release 1\",71)',\n vr: \"CS\",\n name: \"VideoInvertSubtracted\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SPI-P Release 1\",72)': {\n tag: '(0029,\"SPI-P Release 1\",72)',\n vr: \"CS\",\n name: \"VideoInvertNonsubtracted\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SPI-P Release 1\",77)': {\n tag: '(0029,\"SPI-P Release 1\",77)',\n vr: \"CS\",\n name: \"WindowSelectStatus\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SPI-P Release 1\",78)': {\n tag: '(0029,\"SPI-P Release 1\",78)',\n vr: \"LT\",\n name: \"ECGDisplayPrintingID\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SPI-P Release 1\",79)': {\n tag: '(0029,\"SPI-P Release 1\",79)',\n vr: \"CS\",\n name: \"ECGDisplayPrinting\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SPI-P Release 1\",7e)': {\n tag: '(0029,\"SPI-P Release 1\",7e)',\n vr: \"CS\",\n name: \"ECGDisplayPrintingEnableStatus\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SPI-P Release 1\",7f)': {\n tag: '(0029,\"SPI-P Release 1\",7f)',\n vr: \"CS\",\n name: \"ECGDisplayPrintingSelectStatus\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SPI-P Release 1\",80)': {\n tag: '(0029,\"SPI-P Release 1\",80)',\n vr: \"LT\",\n name: \"PhysiologicalDisplayID\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SPI-P Release 1\",81)': {\n tag: '(0029,\"SPI-P Release 1\",81)',\n vr: \"US\",\n name: \"PreferredPhysiologicalChannelDisplay\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SPI-P Release 1\",8e)': {\n tag: '(0029,\"SPI-P Release 1\",8e)',\n vr: \"CS\",\n name: \"PhysiologicalDisplayEnableStatus\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SPI-P Release 1\",8f)': {\n tag: '(0029,\"SPI-P Release 1\",8f)',\n vr: \"CS\",\n name: \"PhysiologicalDisplaySelectStatus\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SPI-P Release 1\",c0)': {\n tag: '(0029,\"SPI-P Release 1\",c0)',\n vr: \"LT\",\n name: \"FunctionalShutterID\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SPI-P Release 1\",c1)': {\n tag: '(0029,\"SPI-P Release 1\",c1)',\n vr: \"US\",\n name: \"FieldOfShutter\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SPI-P Release 1\",c5)': {\n tag: '(0029,\"SPI-P Release 1\",c5)',\n vr: \"LT\",\n name: \"FieldOfShutterRectangle\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SPI-P Release 1\",ce)': {\n tag: '(0029,\"SPI-P Release 1\",ce)',\n vr: \"CS\",\n name: \"ShutterEnableStatus\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SPI-P Release 1\",cf)': {\n tag: '(0029,\"SPI-P Release 1\",cf)',\n vr: \"CS\",\n name: \"ShutterSelectStatus\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(7FE1,\"SPI-P Release 1\",10)': {\n tag: '(7FE1,\"SPI-P Release 1\",10)',\n vr: \"ox\",\n name: \"PixelData\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"SPI-P Release 1;1\",c0)': {\n tag: '(0009,\"SPI-P Release 1;1\",c0)',\n vr: \"LT\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"SPI-P Release 1;1\",c1)': {\n tag: '(0009,\"SPI-P Release 1;1\",c1)',\n vr: \"LT\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SPI-P Release 1;1\",00)': {\n tag: '(0019,\"SPI-P Release 1;1\",00)',\n vr: \"UN\",\n name: \"PhysiologicalDataType\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SPI-P Release 1;1\",01)': {\n tag: '(0019,\"SPI-P Release 1;1\",01)',\n vr: \"UN\",\n name: \"PhysiologicalDataChannelAndKind\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SPI-P Release 1;1\",02)': {\n tag: '(0019,\"SPI-P Release 1;1\",02)',\n vr: \"US\",\n name: \"SampleBitsAllocated\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SPI-P Release 1;1\",03)': {\n tag: '(0019,\"SPI-P Release 1;1\",03)',\n vr: \"US\",\n name: \"SampleBitsStored\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SPI-P Release 1;1\",04)': {\n tag: '(0019,\"SPI-P Release 1;1\",04)',\n vr: \"US\",\n name: \"SampleHighBit\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SPI-P Release 1;1\",05)': {\n tag: '(0019,\"SPI-P Release 1;1\",05)',\n vr: \"US\",\n name: \"SampleRepresentation\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SPI-P Release 1;1\",06)': {\n tag: '(0019,\"SPI-P Release 1;1\",06)',\n vr: \"UN\",\n name: \"SmallestSampleValue\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SPI-P Release 1;1\",07)': {\n tag: '(0019,\"SPI-P Release 1;1\",07)',\n vr: \"UN\",\n name: \"LargestSampleValue\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SPI-P Release 1;1\",08)': {\n tag: '(0019,\"SPI-P Release 1;1\",08)',\n vr: \"UN\",\n name: \"NumberOfSamples\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SPI-P Release 1;1\",09)': {\n tag: '(0019,\"SPI-P Release 1;1\",09)',\n vr: \"UN\",\n name: \"SampleData\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SPI-P Release 1;1\",0a)': {\n tag: '(0019,\"SPI-P Release 1;1\",0a)',\n vr: \"UN\",\n name: \"SampleRate\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SPI-P Release 1;1\",10)': {\n tag: '(0019,\"SPI-P Release 1;1\",10)',\n vr: \"UN\",\n name: \"PhysiologicalDataType2\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SPI-P Release 1;1\",11)': {\n tag: '(0019,\"SPI-P Release 1;1\",11)',\n vr: \"UN\",\n name: \"PhysiologicalDataChannelAndKind2\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SPI-P Release 1;1\",12)': {\n tag: '(0019,\"SPI-P Release 1;1\",12)',\n vr: \"US\",\n name: \"SampleBitsAllocated2\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SPI-P Release 1;1\",13)': {\n tag: '(0019,\"SPI-P Release 1;1\",13)',\n vr: \"US\",\n name: \"SampleBitsStored2\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SPI-P Release 1;1\",14)': {\n tag: '(0019,\"SPI-P Release 1;1\",14)',\n vr: \"US\",\n name: \"SampleHighBit2\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SPI-P Release 1;1\",15)': {\n tag: '(0019,\"SPI-P Release 1;1\",15)',\n vr: \"US\",\n name: \"SampleRepresentation2\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SPI-P Release 1;1\",16)': {\n tag: '(0019,\"SPI-P Release 1;1\",16)',\n vr: \"UN\",\n name: \"SmallestSampleValue2\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SPI-P Release 1;1\",17)': {\n tag: '(0019,\"SPI-P Release 1;1\",17)',\n vr: \"UN\",\n name: \"LargestSampleValue2\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SPI-P Release 1;1\",18)': {\n tag: '(0019,\"SPI-P Release 1;1\",18)',\n vr: \"UN\",\n name: \"NumberOfSamples2\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SPI-P Release 1;1\",19)': {\n tag: '(0019,\"SPI-P Release 1;1\",19)',\n vr: \"UN\",\n name: \"SampleData2\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SPI-P Release 1;1\",1a)': {\n tag: '(0019,\"SPI-P Release 1;1\",1a)',\n vr: \"UN\",\n name: \"SampleRate2\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SPI-P Release 1;1\",00)': {\n tag: '(0029,\"SPI-P Release 1;1\",00)',\n vr: \"LT\",\n name: \"ZoomID\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SPI-P Release 1;1\",01)': {\n tag: '(0029,\"SPI-P Release 1;1\",01)',\n vr: \"DS\",\n name: \"ZoomRectangle\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0029,\"SPI-P Release 1;1\",03)': {\n tag: '(0029,\"SPI-P Release 1;1\",03)',\n vr: \"DS\",\n name: \"ZoomFactor\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SPI-P Release 1;1\",04)': {\n tag: '(0029,\"SPI-P Release 1;1\",04)',\n vr: \"US\",\n name: \"ZoomFunction\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SPI-P Release 1;1\",0e)': {\n tag: '(0029,\"SPI-P Release 1;1\",0e)',\n vr: \"CS\",\n name: \"ZoomEnableStatus\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SPI-P Release 1;1\",0f)': {\n tag: '(0029,\"SPI-P Release 1;1\",0f)',\n vr: \"CS\",\n name: \"ZoomSelectStatus\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SPI-P Release 1;1\",40)': {\n tag: '(0029,\"SPI-P Release 1;1\",40)',\n vr: \"LT\",\n name: \"MagnifyingGlassID\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SPI-P Release 1;1\",41)': {\n tag: '(0029,\"SPI-P Release 1;1\",41)',\n vr: \"DS\",\n name: \"MagnifyingGlassRectangle\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0029,\"SPI-P Release 1;1\",43)': {\n tag: '(0029,\"SPI-P Release 1;1\",43)',\n vr: \"DS\",\n name: \"MagnifyingGlassFactor\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SPI-P Release 1;1\",44)': {\n tag: '(0029,\"SPI-P Release 1;1\",44)',\n vr: \"US\",\n name: \"MagnifyingGlassFunction\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SPI-P Release 1;1\",4e)': {\n tag: '(0029,\"SPI-P Release 1;1\",4e)',\n vr: \"CS\",\n name: \"MagnifyingGlassEnableStatus\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SPI-P Release 1;1\",4f)': {\n tag: '(0029,\"SPI-P Release 1;1\",4f)',\n vr: \"CS\",\n name: \"MagnifyingGlassSelectStatus\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SPI-P Release 1;2\",00)': {\n tag: '(0029,\"SPI-P Release 1;2\",00)',\n vr: \"LT\",\n name: \"SubtractionMaskID\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SPI-P Release 1;2\",04)': {\n tag: '(0029,\"SPI-P Release 1;2\",04)',\n vr: \"UN\",\n name: \"MaskingFunction\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SPI-P Release 1;2\",0c)': {\n tag: '(0029,\"SPI-P Release 1;2\",0c)',\n vr: \"UN\",\n name: \"ProprietaryMaskingParameters\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SPI-P Release 1;2\",1e)': {\n tag: '(0029,\"SPI-P Release 1;2\",1e)',\n vr: \"CS\",\n name: \"SubtractionMaskEnableStatus\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SPI-P Release 1;2\",1f)': {\n tag: '(0029,\"SPI-P Release 1;2\",1f)',\n vr: \"CS\",\n name: \"SubtractionMaskSelectStatus\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SPI-P Release 1;3\",00)': {\n tag: '(0029,\"SPI-P Release 1;3\",00)',\n vr: \"LT\",\n name: \"ImageEnhancementID\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SPI-P Release 1;3\",01)': {\n tag: '(0029,\"SPI-P Release 1;3\",01)',\n vr: \"LT\",\n name: \"ImageEnhancement\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SPI-P Release 1;3\",02)': {\n tag: '(0029,\"SPI-P Release 1;3\",02)',\n vr: \"LT\",\n name: \"ConvolutionID\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SPI-P Release 1;3\",03)': {\n tag: '(0029,\"SPI-P Release 1;3\",03)',\n vr: \"LT\",\n name: \"ConvolutionType\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SPI-P Release 1;3\",04)': {\n tag: '(0029,\"SPI-P Release 1;3\",04)',\n vr: \"LT\",\n name: \"ConvolutionKernelSizeID\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SPI-P Release 1;3\",05)': {\n tag: '(0029,\"SPI-P Release 1;3\",05)',\n vr: \"US\",\n name: \"ConvolutionKernelSize\",\n vm: \"2\",\n version: \"PrivateTag\"\n },\n '(0029,\"SPI-P Release 1;3\",06)': {\n tag: '(0029,\"SPI-P Release 1;3\",06)',\n vr: \"US\",\n name: \"ConvolutionKernel\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0029,\"SPI-P Release 1;3\",0c)': {\n tag: '(0029,\"SPI-P Release 1;3\",0c)',\n vr: \"DS\",\n name: \"EnhancementGain\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SPI-P Release 1;3\",1e)': {\n tag: '(0029,\"SPI-P Release 1;3\",1e)',\n vr: \"CS\",\n name: \"ImageEnhancementEnableStatus\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SPI-P Release 1;3\",1f)': {\n tag: '(0029,\"SPI-P Release 1;3\",1f)',\n vr: \"CS\",\n name: \"ImageEnhancementSelectStatus\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0011,\"SPI-P Release 2;1\",18)': {\n tag: '(0011,\"SPI-P Release 2;1\",18)',\n vr: \"LT\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0023,\"SPI-P Release 2;1\",0d)': {\n tag: '(0023,\"SPI-P Release 2;1\",0d)',\n vr: \"UI\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0023,\"SPI-P Release 2;1\",0e)': {\n tag: '(0023,\"SPI-P Release 2;1\",0e)',\n vr: \"UI\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"SPI-P-GV-CT Release 1\",00)': {\n tag: '(0009,\"SPI-P-GV-CT Release 1\",00)',\n vr: \"LO\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"SPI-P-GV-CT Release 1\",10)': {\n tag: '(0009,\"SPI-P-GV-CT Release 1\",10)',\n vr: \"LO\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"SPI-P-GV-CT Release 1\",20)': {\n tag: '(0009,\"SPI-P-GV-CT Release 1\",20)',\n vr: \"LO\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"SPI-P-GV-CT Release 1\",30)': {\n tag: '(0009,\"SPI-P-GV-CT Release 1\",30)',\n vr: \"LO\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"SPI-P-GV-CT Release 1\",40)': {\n tag: '(0009,\"SPI-P-GV-CT Release 1\",40)',\n vr: \"LO\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"SPI-P-GV-CT Release 1\",50)': {\n tag: '(0009,\"SPI-P-GV-CT Release 1\",50)',\n vr: \"LO\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"SPI-P-GV-CT Release 1\",60)': {\n tag: '(0009,\"SPI-P-GV-CT Release 1\",60)',\n vr: \"LO\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"SPI-P-GV-CT Release 1\",70)': {\n tag: '(0009,\"SPI-P-GV-CT Release 1\",70)',\n vr: \"LO\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"SPI-P-GV-CT Release 1\",75)': {\n tag: '(0009,\"SPI-P-GV-CT Release 1\",75)',\n vr: \"LO\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"SPI-P-GV-CT Release 1\",80)': {\n tag: '(0009,\"SPI-P-GV-CT Release 1\",80)',\n vr: \"LO\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"SPI-P-GV-CT Release 1\",90)': {\n tag: '(0009,\"SPI-P-GV-CT Release 1\",90)',\n vr: \"LO\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SPI-P-GV-CT Release 1\",08)': {\n tag: '(0019,\"SPI-P-GV-CT Release 1\",08)',\n vr: \"IS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SPI-P-GV-CT Release 1\",09)': {\n tag: '(0019,\"SPI-P-GV-CT Release 1\",09)',\n vr: \"IS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SPI-P-GV-CT Release 1\",0a)': {\n tag: '(0019,\"SPI-P-GV-CT Release 1\",0a)',\n vr: \"IS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SPI-P-GV-CT Release 1\",10)': {\n tag: '(0019,\"SPI-P-GV-CT Release 1\",10)',\n vr: \"LO\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SPI-P-GV-CT Release 1\",20)': {\n tag: '(0019,\"SPI-P-GV-CT Release 1\",20)',\n vr: \"TM\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SPI-P-GV-CT Release 1\",50)': {\n tag: '(0019,\"SPI-P-GV-CT Release 1\",50)',\n vr: \"LO\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SPI-P-GV-CT Release 1\",60)': {\n tag: '(0019,\"SPI-P-GV-CT Release 1\",60)',\n vr: \"DS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SPI-P-GV-CT Release 1\",61)': {\n tag: '(0019,\"SPI-P-GV-CT Release 1\",61)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SPI-P-GV-CT Release 1\",63)': {\n tag: '(0019,\"SPI-P-GV-CT Release 1\",63)',\n vr: \"LO\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SPI-P-GV-CT Release 1\",64)': {\n tag: '(0019,\"SPI-P-GV-CT Release 1\",64)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SPI-P-GV-CT Release 1\",65)': {\n tag: '(0019,\"SPI-P-GV-CT Release 1\",65)',\n vr: \"IS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SPI-P-GV-CT Release 1\",70)': {\n tag: '(0019,\"SPI-P-GV-CT Release 1\",70)',\n vr: \"LT\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SPI-P-GV-CT Release 1\",80)': {\n tag: '(0019,\"SPI-P-GV-CT Release 1\",80)',\n vr: \"LO\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SPI-P-GV-CT Release 1\",81)': {\n tag: '(0019,\"SPI-P-GV-CT Release 1\",81)',\n vr: \"LO\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SPI-P-GV-CT Release 1\",90)': {\n tag: '(0019,\"SPI-P-GV-CT Release 1\",90)',\n vr: \"LO\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SPI-P-GV-CT Release 1\",a0)': {\n tag: '(0019,\"SPI-P-GV-CT Release 1\",a0)',\n vr: \"LO\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SPI-P-GV-CT Release 1\",a1)': {\n tag: '(0019,\"SPI-P-GV-CT Release 1\",a1)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SPI-P-GV-CT Release 1\",a2)': {\n tag: '(0019,\"SPI-P-GV-CT Release 1\",a2)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SPI-P-GV-CT Release 1\",a3)': {\n tag: '(0019,\"SPI-P-GV-CT Release 1\",a3)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SPI-P-GV-CT Release 1\",b0)': {\n tag: '(0019,\"SPI-P-GV-CT Release 1\",b0)',\n vr: \"LO\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SPI-P-GV-CT Release 1\",b1)': {\n tag: '(0019,\"SPI-P-GV-CT Release 1\",b1)',\n vr: \"LO\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SPI-P-GV-CT Release 1\",20)': {\n tag: '(0021,\"SPI-P-GV-CT Release 1\",20)',\n vr: \"LO\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SPI-P-GV-CT Release 1\",30)': {\n tag: '(0021,\"SPI-P-GV-CT Release 1\",30)',\n vr: \"DS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SPI-P-GV-CT Release 1\",40)': {\n tag: '(0021,\"SPI-P-GV-CT Release 1\",40)',\n vr: \"LO\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SPI-P-GV-CT Release 1\",50)': {\n tag: '(0021,\"SPI-P-GV-CT Release 1\",50)',\n vr: \"LO\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SPI-P-GV-CT Release 1\",60)': {\n tag: '(0021,\"SPI-P-GV-CT Release 1\",60)',\n vr: \"DS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SPI-P-GV-CT Release 1\",70)': {\n tag: '(0021,\"SPI-P-GV-CT Release 1\",70)',\n vr: \"DS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SPI-P-GV-CT Release 1\",80)': {\n tag: '(0021,\"SPI-P-GV-CT Release 1\",80)',\n vr: \"DS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SPI-P-GV-CT Release 1\",90)': {\n tag: '(0021,\"SPI-P-GV-CT Release 1\",90)',\n vr: \"DS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SPI-P-GV-CT Release 1\",a0)': {\n tag: '(0021,\"SPI-P-GV-CT Release 1\",a0)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SPI-P-GV-CT Release 1\",a1)': {\n tag: '(0021,\"SPI-P-GV-CT Release 1\",a1)',\n vr: \"DS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SPI-P-GV-CT Release 1\",a2)': {\n tag: '(0021,\"SPI-P-GV-CT Release 1\",a2)',\n vr: \"DS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SPI-P-GV-CT Release 1\",a3)': {\n tag: '(0021,\"SPI-P-GV-CT Release 1\",a3)',\n vr: \"LT\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SPI-P-GV-CT Release 1\",a4)': {\n tag: '(0021,\"SPI-P-GV-CT Release 1\",a4)',\n vr: \"LT\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SPI-P-GV-CT Release 1\",b0)': {\n tag: '(0021,\"SPI-P-GV-CT Release 1\",b0)',\n vr: \"LO\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SPI-P-GV-CT Release 1\",c0)': {\n tag: '(0021,\"SPI-P-GV-CT Release 1\",c0)',\n vr: \"LO\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SPI-P-GV-CT Release 1\",10)': {\n tag: '(0029,\"SPI-P-GV-CT Release 1\",10)',\n vr: \"LO\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SPI-P-GV-CT Release 1\",30)': {\n tag: '(0029,\"SPI-P-GV-CT Release 1\",30)',\n vr: \"UL\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SPI-P-GV-CT Release 1\",31)': {\n tag: '(0029,\"SPI-P-GV-CT Release 1\",31)',\n vr: \"UL\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SPI-P-GV-CT Release 1\",32)': {\n tag: '(0029,\"SPI-P-GV-CT Release 1\",32)',\n vr: \"UL\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SPI-P-GV-CT Release 1\",33)': {\n tag: '(0029,\"SPI-P-GV-CT Release 1\",33)',\n vr: \"UL\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SPI-P-GV-CT Release 1\",80)': {\n tag: '(0029,\"SPI-P-GV-CT Release 1\",80)',\n vr: \"LO\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SPI-P-GV-CT Release 1\",90)': {\n tag: '(0029,\"SPI-P-GV-CT Release 1\",90)',\n vr: \"LO\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SPI-P-GV-CT Release 1\",d0)': {\n tag: '(0029,\"SPI-P-GV-CT Release 1\",d0)',\n vr: \"IS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SPI-P-GV-CT Release 1\",d1)': {\n tag: '(0029,\"SPI-P-GV-CT Release 1\",d1)',\n vr: \"IS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SPI-P-PCR Release 2\",30)': {\n tag: '(0019,\"SPI-P-PCR Release 2\",30)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SPI-P-Private-CWS Release 1\",00)': {\n tag: '(0021,\"SPI-P-Private-CWS Release 1\",00)',\n vr: \"LT\",\n name: \"WindowOfImagesID\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SPI-P-Private-CWS Release 1\",01)': {\n tag: '(0021,\"SPI-P-Private-CWS Release 1\",01)',\n vr: \"CS\",\n name: \"WindowOfImagesType\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SPI-P-Private-CWS Release 1\",02)': {\n tag: '(0021,\"SPI-P-Private-CWS Release 1\",02)',\n vr: \"IS\",\n name: \"WindowOfImagesScope\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0019,\"SPI-P-Private-DCI Release 1\",10)': {\n tag: '(0019,\"SPI-P-Private-DCI Release 1\",10)',\n vr: \"UN\",\n name: \"ECGTimeMapDataBitsAllocated\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SPI-P-Private-DCI Release 1\",11)': {\n tag: '(0019,\"SPI-P-Private-DCI Release 1\",11)',\n vr: \"UN\",\n name: \"ECGTimeMapDataBitsStored\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SPI-P-Private-DCI Release 1\",12)': {\n tag: '(0019,\"SPI-P-Private-DCI Release 1\",12)',\n vr: \"UN\",\n name: \"ECGTimeMapDataHighBit\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SPI-P-Private-DCI Release 1\",13)': {\n tag: '(0019,\"SPI-P-Private-DCI Release 1\",13)',\n vr: \"UN\",\n name: \"ECGTimeMapDataRepresentation\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SPI-P-Private-DCI Release 1\",14)': {\n tag: '(0019,\"SPI-P-Private-DCI Release 1\",14)',\n vr: \"UN\",\n name: \"ECGTimeMapDataSmallestDataValue\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SPI-P-Private-DCI Release 1\",15)': {\n tag: '(0019,\"SPI-P-Private-DCI Release 1\",15)',\n vr: \"UN\",\n name: \"ECGTimeMapDataLargestDataValue\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SPI-P-Private-DCI Release 1\",16)': {\n tag: '(0019,\"SPI-P-Private-DCI Release 1\",16)',\n vr: \"UN\",\n name: \"ECGTimeMapDataNumberOfDataValues\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SPI-P-Private-DCI Release 1\",17)': {\n tag: '(0019,\"SPI-P-Private-DCI Release 1\",17)',\n vr: \"UN\",\n name: \"ECGTimeMapData\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SPI-P-Private_CDS Release 1\",40)': {\n tag: '(0021,\"SPI-P-Private_CDS Release 1\",40)',\n vr: \"IS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SPI-P-Private_CDS Release 1\",00)': {\n tag: '(0029,\"SPI-P-Private_CDS Release 1\",00)',\n vr: \"UN\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SPI-P-Private_ICS Release 1\",30)': {\n tag: '(0019,\"SPI-P-Private_ICS Release 1\",30)',\n vr: \"DS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SPI-P-Private_ICS Release 1\",31)': {\n tag: '(0019,\"SPI-P-Private_ICS Release 1\",31)',\n vr: \"LO\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SPI-P-Private_ICS Release 1\",08)': {\n tag: '(0029,\"SPI-P-Private_ICS Release 1\",08)',\n vr: \"SQ\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SPI-P-Private_ICS Release 1\",0f)': {\n tag: '(0029,\"SPI-P-Private_ICS Release 1\",0f)',\n vr: \"SQ\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SPI-P-Private_ICS Release 1\",10)': {\n tag: '(0029,\"SPI-P-Private_ICS Release 1\",10)',\n vr: \"SQ\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SPI-P-Private_ICS Release 1\",1b)': {\n tag: '(0029,\"SPI-P-Private_ICS Release 1\",1b)',\n vr: \"SQ\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SPI-P-Private_ICS Release 1\",1c)': {\n tag: '(0029,\"SPI-P-Private_ICS Release 1\",1c)',\n vr: \"SQ\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SPI-P-Private_ICS Release 1\",21)': {\n tag: '(0029,\"SPI-P-Private_ICS Release 1\",21)',\n vr: \"SQ\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SPI-P-Private_ICS Release 1\",43)': {\n tag: '(0029,\"SPI-P-Private_ICS Release 1\",43)',\n vr: \"SQ\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SPI-P-Private_ICS Release 1\",44)': {\n tag: '(0029,\"SPI-P-Private_ICS Release 1\",44)',\n vr: \"SQ\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SPI-P-Private_ICS Release 1\",4C)': {\n tag: '(0029,\"SPI-P-Private_ICS Release 1\",4C)',\n vr: \"SQ\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SPI-P-Private_ICS Release 1\",67)': {\n tag: '(0029,\"SPI-P-Private_ICS Release 1\",67)',\n vr: \"LO\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SPI-P-Private_ICS Release 1\",68)': {\n tag: '(0029,\"SPI-P-Private_ICS Release 1\",68)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SPI-P-Private_ICS Release 1\",6A)': {\n tag: '(0029,\"SPI-P-Private_ICS Release 1\",6A)',\n vr: \"LO\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SPI-P-Private_ICS Release 1\",6B)': {\n tag: '(0029,\"SPI-P-Private_ICS Release 1\",6B)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SPI-P-Private_ICS Release 1;1\",00)': {\n tag: '(0029,\"SPI-P-Private_ICS Release 1;1\",00)',\n vr: \"SL\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SPI-P-Private_ICS Release 1;1\",05)': {\n tag: '(0029,\"SPI-P-Private_ICS Release 1;1\",05)',\n vr: \"FL\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SPI-P-Private_ICS Release 1;1\",06)': {\n tag: '(0029,\"SPI-P-Private_ICS Release 1;1\",06)',\n vr: \"FL\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SPI-P-Private_ICS Release 1;1\",20)': {\n tag: '(0029,\"SPI-P-Private_ICS Release 1;1\",20)',\n vr: \"FL\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SPI-P-Private_ICS Release 1;1\",21)': {\n tag: '(0029,\"SPI-P-Private_ICS Release 1;1\",21)',\n vr: \"FL\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SPI-P-Private_ICS Release 1;1\",CD)': {\n tag: '(0029,\"SPI-P-Private_ICS Release 1;1\",CD)',\n vr: \"SQ\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SPI-P-Private_ICS Release 1;2\",00)': {\n tag: '(0029,\"SPI-P-Private_ICS Release 1;2\",00)',\n vr: \"FD\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SPI-P-Private_ICS Release 1;2\",01)': {\n tag: '(0029,\"SPI-P-Private_ICS Release 1;2\",01)',\n vr: \"FD\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SPI-P-Private_ICS Release 1;2\",02)': {\n tag: '(0029,\"SPI-P-Private_ICS Release 1;2\",02)',\n vr: \"FD\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SPI-P-Private_ICS Release 1;2\",03)': {\n tag: '(0029,\"SPI-P-Private_ICS Release 1;2\",03)',\n vr: \"SL\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SPI-P-Private_ICS Release 1;2\",04)': {\n tag: '(0029,\"SPI-P-Private_ICS Release 1;2\",04)',\n vr: \"SL\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SPI-P-Private_ICS Release 1;2\",05)': {\n tag: '(0029,\"SPI-P-Private_ICS Release 1;2\",05)',\n vr: \"SL\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SPI-P-Private_ICS Release 1;3\",C0)': {\n tag: '(0029,\"SPI-P-Private_ICS Release 1;3\",C0)',\n vr: \"SQ\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SPI-P-Private_ICS Release 1;3\",C1)': {\n tag: '(0029,\"SPI-P-Private_ICS Release 1;3\",C1)',\n vr: \"SQ\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SPI-P-Private_ICS Release 1;3\",C2)': {\n tag: '(0029,\"SPI-P-Private_ICS Release 1;3\",C2)',\n vr: \"SQ\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SPI-P-Private_ICS Release 1;3\",C3)': {\n tag: '(0029,\"SPI-P-Private_ICS Release 1;3\",C3)',\n vr: \"SQ\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SPI-P-Private_ICS Release 1;3\",C4)': {\n tag: '(0029,\"SPI-P-Private_ICS Release 1;3\",C4)',\n vr: \"SQ\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SPI-P-Private_ICS Release 1;3\",C5)': {\n tag: '(0029,\"SPI-P-Private_ICS Release 1;3\",C5)',\n vr: \"SQ\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SPI-P-Private_ICS Release 1;4\",02)': {\n tag: '(0029,\"SPI-P-Private_ICS Release 1;4\",02)',\n vr: \"SQ\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SPI-P-Private_ICS Release 1;4\",9A)': {\n tag: '(0029,\"SPI-P-Private_ICS Release 1;4\",9A)',\n vr: \"SQ\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SPI-P-Private_ICS Release 1;4\",E0)': {\n tag: '(0029,\"SPI-P-Private_ICS Release 1;4\",E0)',\n vr: \"SQ\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SPI-P-Private_ICS Release 1;5\",50)': {\n tag: '(0029,\"SPI-P-Private_ICS Release 1;5\",50)',\n vr: \"CS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"SPI-P-Private_ICS Release 1;5\",55)': {\n tag: '(0029,\"SPI-P-Private_ICS Release 1;5\",55)',\n vr: \"CS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SPI-P-XSB-DCI Release 1\",10)': {\n tag: '(0019,\"SPI-P-XSB-DCI Release 1\",10)',\n vr: \"LT\",\n name: \"VideoBeamBoost\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SPI-P-XSB-DCI Release 1\",11)': {\n tag: '(0019,\"SPI-P-XSB-DCI Release 1\",11)',\n vr: \"US\",\n name: \"ChannelGeneratingVideoSync\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SPI-P-XSB-DCI Release 1\",12)': {\n tag: '(0019,\"SPI-P-XSB-DCI Release 1\",12)',\n vr: \"US\",\n name: \"VideoGain\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SPI-P-XSB-DCI Release 1\",13)': {\n tag: '(0019,\"SPI-P-XSB-DCI Release 1\",13)',\n vr: \"US\",\n name: \"VideoOffset\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SPI-P-XSB-DCI Release 1\",20)': {\n tag: '(0019,\"SPI-P-XSB-DCI Release 1\",20)',\n vr: \"DS\",\n name: \"RTDDataCompressionFactor\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette Annot V1.0\",11)': {\n tag: '(0029,\"Silhouette Annot V1.0\",11)',\n vr: \"IS\",\n name: \"AnnotationName\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette Annot V1.0\",12)': {\n tag: '(0029,\"Silhouette Annot V1.0\",12)',\n vr: \"LT\",\n name: \"AnnotationFont\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette Annot V1.0\",13)': {\n tag: '(0029,\"Silhouette Annot V1.0\",13)',\n vr: \"LT\",\n name: \"AnnotationTextForegroundColor\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette Annot V1.0\",14)': {\n tag: '(0029,\"Silhouette Annot V1.0\",14)',\n vr: \"LT\",\n name: \"AnnotationTextBackgroundColor\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette Annot V1.0\",15)': {\n tag: '(0029,\"Silhouette Annot V1.0\",15)',\n vr: \"UL\",\n name: \"AnnotationTextBackingMode\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette Annot V1.0\",16)': {\n tag: '(0029,\"Silhouette Annot V1.0\",16)',\n vr: \"UL\",\n name: \"AnnotationTextJustification\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette Annot V1.0\",17)': {\n tag: '(0029,\"Silhouette Annot V1.0\",17)',\n vr: \"UL\",\n name: \"AnnotationTextLocation\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette Annot V1.0\",18)': {\n tag: '(0029,\"Silhouette Annot V1.0\",18)',\n vr: \"LT\",\n name: \"AnnotationTextString\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette Annot V1.0\",19)': {\n tag: '(0029,\"Silhouette Annot V1.0\",19)',\n vr: \"UL\",\n name: \"AnnotationTextAttachMode\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette Annot V1.0\",20)': {\n tag: '(0029,\"Silhouette Annot V1.0\",20)',\n vr: \"UL\",\n name: \"AnnotationTextCursorMode\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette Annot V1.0\",21)': {\n tag: '(0029,\"Silhouette Annot V1.0\",21)',\n vr: \"UL\",\n name: \"AnnotationTextShadowOffsetX\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette Annot V1.0\",22)': {\n tag: '(0029,\"Silhouette Annot V1.0\",22)',\n vr: \"UL\",\n name: \"AnnotationTextShadowOffsetY\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette Annot V1.0\",23)': {\n tag: '(0029,\"Silhouette Annot V1.0\",23)',\n vr: \"LT\",\n name: \"AnnotationLineColor\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette Annot V1.0\",24)': {\n tag: '(0029,\"Silhouette Annot V1.0\",24)',\n vr: \"UL\",\n name: \"AnnotationLineThickness\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette Annot V1.0\",25)': {\n tag: '(0029,\"Silhouette Annot V1.0\",25)',\n vr: \"UL\",\n name: \"AnnotationLineType\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette Annot V1.0\",26)': {\n tag: '(0029,\"Silhouette Annot V1.0\",26)',\n vr: \"UL\",\n name: \"AnnotationLineStyle\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette Annot V1.0\",27)': {\n tag: '(0029,\"Silhouette Annot V1.0\",27)',\n vr: \"UL\",\n name: \"AnnotationLineDashLength\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette Annot V1.0\",28)': {\n tag: '(0029,\"Silhouette Annot V1.0\",28)',\n vr: \"UL\",\n name: \"AnnotationLineAttachMode\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette Annot V1.0\",29)': {\n tag: '(0029,\"Silhouette Annot V1.0\",29)',\n vr: \"UL\",\n name: \"AnnotationLinePointCount\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette Annot V1.0\",30)': {\n tag: '(0029,\"Silhouette Annot V1.0\",30)',\n vr: \"FD\",\n name: \"AnnotationLinePoints\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette Annot V1.0\",31)': {\n tag: '(0029,\"Silhouette Annot V1.0\",31)',\n vr: \"UL\",\n name: \"AnnotationLineControlSize\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette Annot V1.0\",32)': {\n tag: '(0029,\"Silhouette Annot V1.0\",32)',\n vr: \"LT\",\n name: \"AnnotationMarkerColor\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette Annot V1.0\",33)': {\n tag: '(0029,\"Silhouette Annot V1.0\",33)',\n vr: \"UL\",\n name: \"AnnotationMarkerType\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette Annot V1.0\",34)': {\n tag: '(0029,\"Silhouette Annot V1.0\",34)',\n vr: \"UL\",\n name: \"AnnotationMarkerSize\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette Annot V1.0\",35)': {\n tag: '(0029,\"Silhouette Annot V1.0\",35)',\n vr: \"FD\",\n name: \"AnnotationMarkerLocation\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette Annot V1.0\",36)': {\n tag: '(0029,\"Silhouette Annot V1.0\",36)',\n vr: \"UL\",\n name: \"AnnotationMarkerAttachMode\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette Annot V1.0\",37)': {\n tag: '(0029,\"Silhouette Annot V1.0\",37)',\n vr: \"LT\",\n name: \"AnnotationGeomColor\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette Annot V1.0\",38)': {\n tag: '(0029,\"Silhouette Annot V1.0\",38)',\n vr: \"UL\",\n name: \"AnnotationGeomThickness\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette Annot V1.0\",39)': {\n tag: '(0029,\"Silhouette Annot V1.0\",39)',\n vr: \"UL\",\n name: \"AnnotationGeomLineStyle\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette Annot V1.0\",40)': {\n tag: '(0029,\"Silhouette Annot V1.0\",40)',\n vr: \"UL\",\n name: \"AnnotationGeomDashLength\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette Annot V1.0\",41)': {\n tag: '(0029,\"Silhouette Annot V1.0\",41)',\n vr: \"UL\",\n name: \"AnnotationGeomFillPattern\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette Annot V1.0\",42)': {\n tag: '(0029,\"Silhouette Annot V1.0\",42)',\n vr: \"UL\",\n name: \"AnnotationInteractivity\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette Annot V1.0\",43)': {\n tag: '(0029,\"Silhouette Annot V1.0\",43)',\n vr: \"FD\",\n name: \"AnnotationArrowLength\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette Annot V1.0\",44)': {\n tag: '(0029,\"Silhouette Annot V1.0\",44)',\n vr: \"FD\",\n name: \"AnnotationArrowAngle\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette Annot V1.0\",45)': {\n tag: '(0029,\"Silhouette Annot V1.0\",45)',\n vr: \"UL\",\n name: \"AnnotationDontSave\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette Graphics Export V1.0\",00)': {\n tag: '(0029,\"Silhouette Graphics Export V1.0\",00)',\n vr: \"UI\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette Line V1.0\",11)': {\n tag: '(0029,\"Silhouette Line V1.0\",11)',\n vr: \"IS\",\n name: \"LineName\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette Line V1.0\",12)': {\n tag: '(0029,\"Silhouette Line V1.0\",12)',\n vr: \"LT\",\n name: \"LineNameFont\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette Line V1.0\",13)': {\n tag: '(0029,\"Silhouette Line V1.0\",13)',\n vr: \"UL\",\n name: \"LineNameDisplay\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette Line V1.0\",14)': {\n tag: '(0029,\"Silhouette Line V1.0\",14)',\n vr: \"LT\",\n name: \"LineNormalColor\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette Line V1.0\",15)': {\n tag: '(0029,\"Silhouette Line V1.0\",15)',\n vr: \"UL\",\n name: \"LineType\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette Line V1.0\",16)': {\n tag: '(0029,\"Silhouette Line V1.0\",16)',\n vr: \"UL\",\n name: \"LineThickness\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette Line V1.0\",17)': {\n tag: '(0029,\"Silhouette Line V1.0\",17)',\n vr: \"UL\",\n name: \"LineStyle\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette Line V1.0\",18)': {\n tag: '(0029,\"Silhouette Line V1.0\",18)',\n vr: \"UL\",\n name: \"LineDashLength\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette Line V1.0\",19)': {\n tag: '(0029,\"Silhouette Line V1.0\",19)',\n vr: \"UL\",\n name: \"LineInteractivity\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette Line V1.0\",20)': {\n tag: '(0029,\"Silhouette Line V1.0\",20)',\n vr: \"LT\",\n name: \"LineMeasurementColor\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette Line V1.0\",21)': {\n tag: '(0029,\"Silhouette Line V1.0\",21)',\n vr: \"LT\",\n name: \"LineMeasurementFont\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette Line V1.0\",22)': {\n tag: '(0029,\"Silhouette Line V1.0\",22)',\n vr: \"UL\",\n name: \"LineMeasurementDashLength\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette Line V1.0\",23)': {\n tag: '(0029,\"Silhouette Line V1.0\",23)',\n vr: \"UL\",\n name: \"LinePointSpace\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette Line V1.0\",24)': {\n tag: '(0029,\"Silhouette Line V1.0\",24)',\n vr: \"FD\",\n name: \"LinePoints\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette Line V1.0\",25)': {\n tag: '(0029,\"Silhouette Line V1.0\",25)',\n vr: \"UL\",\n name: \"LineControlPointSize\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette Line V1.0\",26)': {\n tag: '(0029,\"Silhouette Line V1.0\",26)',\n vr: \"UL\",\n name: \"LineControlPointSpace\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette Line V1.0\",27)': {\n tag: '(0029,\"Silhouette Line V1.0\",27)',\n vr: \"FD\",\n name: \"LineControlPoints\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette Line V1.0\",28)': {\n tag: '(0029,\"Silhouette Line V1.0\",28)',\n vr: \"LT\",\n name: \"LineLabel\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette Line V1.0\",29)': {\n tag: '(0029,\"Silhouette Line V1.0\",29)',\n vr: \"UL\",\n name: \"LineDontSave\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette ROI V1.0\",11)': {\n tag: '(0029,\"Silhouette ROI V1.0\",11)',\n vr: \"IS\",\n name: \"ROIName\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette ROI V1.0\",12)': {\n tag: '(0029,\"Silhouette ROI V1.0\",12)',\n vr: \"LT\",\n name: \"ROINameFont\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette ROI V1.0\",13)': {\n tag: '(0029,\"Silhouette ROI V1.0\",13)',\n vr: \"LT\",\n name: \"ROINormalColor\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette ROI V1.0\",14)': {\n tag: '(0029,\"Silhouette ROI V1.0\",14)',\n vr: \"UL\",\n name: \"ROIFillPattern\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette ROI V1.0\",15)': {\n tag: '(0029,\"Silhouette ROI V1.0\",15)',\n vr: \"UL\",\n name: \"ROIBpSeg\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette ROI V1.0\",16)': {\n tag: '(0029,\"Silhouette ROI V1.0\",16)',\n vr: \"UN\",\n name: \"ROIBpSegPairs\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette ROI V1.0\",17)': {\n tag: '(0029,\"Silhouette ROI V1.0\",17)',\n vr: \"UL\",\n name: \"ROISeedSpace\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette ROI V1.0\",18)': {\n tag: '(0029,\"Silhouette ROI V1.0\",18)',\n vr: \"UN\",\n name: \"ROISeeds\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette ROI V1.0\",19)': {\n tag: '(0029,\"Silhouette ROI V1.0\",19)',\n vr: \"UL\",\n name: \"ROILineThickness\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette ROI V1.0\",20)': {\n tag: '(0029,\"Silhouette ROI V1.0\",20)',\n vr: \"UL\",\n name: \"ROILineStyle\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette ROI V1.0\",21)': {\n tag: '(0029,\"Silhouette ROI V1.0\",21)',\n vr: \"UL\",\n name: \"ROILineDashLength\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette ROI V1.0\",22)': {\n tag: '(0029,\"Silhouette ROI V1.0\",22)',\n vr: \"UL\",\n name: \"ROIInteractivity\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette ROI V1.0\",23)': {\n tag: '(0029,\"Silhouette ROI V1.0\",23)',\n vr: \"UL\",\n name: \"ROINamePosition\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette ROI V1.0\",24)': {\n tag: '(0029,\"Silhouette ROI V1.0\",24)',\n vr: \"UL\",\n name: \"ROINameDisplay\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette ROI V1.0\",25)': {\n tag: '(0029,\"Silhouette ROI V1.0\",25)',\n vr: \"LT\",\n name: \"ROILabel\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette ROI V1.0\",26)': {\n tag: '(0029,\"Silhouette ROI V1.0\",26)',\n vr: \"UL\",\n name: \"ROIShape\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette ROI V1.0\",27)': {\n tag: '(0029,\"Silhouette ROI V1.0\",27)',\n vr: \"FD\",\n name: \"ROIShapeTilt\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette ROI V1.0\",28)': {\n tag: '(0029,\"Silhouette ROI V1.0\",28)',\n vr: \"UL\",\n name: \"ROIShapePointsCount\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette ROI V1.0\",29)': {\n tag: '(0029,\"Silhouette ROI V1.0\",29)',\n vr: \"UL\",\n name: \"ROIShapePointsSpace\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette ROI V1.0\",30)': {\n tag: '(0029,\"Silhouette ROI V1.0\",30)',\n vr: \"FD\",\n name: \"ROIShapePoints\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette ROI V1.0\",31)': {\n tag: '(0029,\"Silhouette ROI V1.0\",31)',\n vr: \"UL\",\n name: \"ROIShapeControlPointsCount\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette ROI V1.0\",32)': {\n tag: '(0029,\"Silhouette ROI V1.0\",32)',\n vr: \"UL\",\n name: \"ROIShapeControlPointsSpace\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette ROI V1.0\",33)': {\n tag: '(0029,\"Silhouette ROI V1.0\",33)',\n vr: \"FD\",\n name: \"ROIShapeControlPoints\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette ROI V1.0\",34)': {\n tag: '(0029,\"Silhouette ROI V1.0\",34)',\n vr: \"UL\",\n name: \"ROIDontSave\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette Sequence Ids V1.0\",41)': {\n tag: '(0029,\"Silhouette Sequence Ids V1.0\",41)',\n vr: \"SQ\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette Sequence Ids V1.0\",42)': {\n tag: '(0029,\"Silhouette Sequence Ids V1.0\",42)',\n vr: \"SQ\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette Sequence Ids V1.0\",43)': {\n tag: '(0029,\"Silhouette Sequence Ids V1.0\",43)',\n vr: \"SQ\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette V1.0\",13)': {\n tag: '(0029,\"Silhouette V1.0\",13)',\n vr: \"UL\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette V1.0\",14)': {\n tag: '(0029,\"Silhouette V1.0\",14)',\n vr: \"UL\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette V1.0\",17)': {\n tag: '(0029,\"Silhouette V1.0\",17)',\n vr: \"UN\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette V1.0\",18)': {\n tag: '(0029,\"Silhouette V1.0\",18)',\n vr: \"UN\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette V1.0\",19)': {\n tag: '(0029,\"Silhouette V1.0\",19)',\n vr: \"UL\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette V1.0\",1a)': {\n tag: '(0029,\"Silhouette V1.0\",1a)',\n vr: \"UN\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette V1.0\",1b)': {\n tag: '(0029,\"Silhouette V1.0\",1b)',\n vr: \"UL\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette V1.0\",1c)': {\n tag: '(0029,\"Silhouette V1.0\",1c)',\n vr: \"UL\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette V1.0\",1d)': {\n tag: '(0029,\"Silhouette V1.0\",1d)',\n vr: \"UN\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette V1.0\",1e)': {\n tag: '(0029,\"Silhouette V1.0\",1e)',\n vr: \"UN\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette V1.0\",21)': {\n tag: '(0029,\"Silhouette V1.0\",21)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette V1.0\",22)': {\n tag: '(0029,\"Silhouette V1.0\",22)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette V1.0\",23)': {\n tag: '(0029,\"Silhouette V1.0\",23)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette V1.0\",24)': {\n tag: '(0029,\"Silhouette V1.0\",24)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette V1.0\",25)': {\n tag: '(0029,\"Silhouette V1.0\",25)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette V1.0\",27)': {\n tag: '(0029,\"Silhouette V1.0\",27)',\n vr: \"UN\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette V1.0\",28)': {\n tag: '(0029,\"Silhouette V1.0\",28)',\n vr: \"UN\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette V1.0\",29)': {\n tag: '(0029,\"Silhouette V1.0\",29)',\n vr: \"UN\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette V1.0\",30)': {\n tag: '(0029,\"Silhouette V1.0\",30)',\n vr: \"UN\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette V1.0\",52)': {\n tag: '(0029,\"Silhouette V1.0\",52)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette V1.0\",53)': {\n tag: '(0029,\"Silhouette V1.0\",53)',\n vr: \"LT\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette V1.0\",54)': {\n tag: '(0029,\"Silhouette V1.0\",54)',\n vr: \"UN\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette V1.0\",55)': {\n tag: '(0029,\"Silhouette V1.0\",55)',\n vr: \"LT\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette V1.0\",56)': {\n tag: '(0029,\"Silhouette V1.0\",56)',\n vr: \"LT\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0029,\"Silhouette V1.0\",57)': {\n tag: '(0029,\"Silhouette V1.0\",57)',\n vr: \"UN\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0135,\"SONOWAND AS\",10)': {\n tag: '(0135,\"SONOWAND AS\",10)',\n vr: \"LO\",\n name: \"UltrasoundScannerName\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0135,\"SONOWAND AS\",11)': {\n tag: '(0135,\"SONOWAND AS\",11)',\n vr: \"LO\",\n name: \"TransducerSerial\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0135,\"SONOWAND AS\",12)': {\n tag: '(0135,\"SONOWAND AS\",12)',\n vr: \"LO\",\n name: \"ProbeApplication\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0017,\"SVISION\",00)': {\n tag: '(0017,\"SVISION\",00)',\n vr: \"LO\",\n name: \"ExtendedBodyPart\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0017,\"SVISION\",10)': {\n tag: '(0017,\"SVISION\",10)',\n vr: \"LO\",\n name: \"ExtendedViewPosition\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0017,\"SVISION\",F0)': {\n tag: '(0017,\"SVISION\",F0)',\n vr: \"IS\",\n name: \"ImagesSOPClass\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SVISION\",00)': {\n tag: '(0019,\"SVISION\",00)',\n vr: \"IS\",\n name: \"AECField\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SVISION\",01)': {\n tag: '(0019,\"SVISION\",01)',\n vr: \"IS\",\n name: \"AECFilmScreen\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SVISION\",02)': {\n tag: '(0019,\"SVISION\",02)',\n vr: \"IS\",\n name: \"AECDensity\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SVISION\",10)': {\n tag: '(0019,\"SVISION\",10)',\n vr: \"IS\",\n name: \"PatientThickness\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SVISION\",18)': {\n tag: '(0019,\"SVISION\",18)',\n vr: \"IS\",\n name: \"BeamDistance\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SVISION\",20)': {\n tag: '(0019,\"SVISION\",20)',\n vr: \"IS\",\n name: \"WorkstationNumber\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SVISION\",28)': {\n tag: '(0019,\"SVISION\",28)',\n vr: \"IS\",\n name: \"TubeNumber\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SVISION\",30)': {\n tag: '(0019,\"SVISION\",30)',\n vr: \"IS\",\n name: \"BuckyGrid\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SVISION\",34)': {\n tag: '(0019,\"SVISION\",34)',\n vr: \"IS\",\n name: \"Focus\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SVISION\",38)': {\n tag: '(0019,\"SVISION\",38)',\n vr: \"IS\",\n name: \"Child\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SVISION\",40)': {\n tag: '(0019,\"SVISION\",40)',\n vr: \"IS\",\n name: \"CollimatorDistanceX\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SVISION\",41)': {\n tag: '(0019,\"SVISION\",41)',\n vr: \"IS\",\n name: \"CollimatorDistanceY\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SVISION\",50)': {\n tag: '(0019,\"SVISION\",50)',\n vr: \"IS\",\n name: \"CentralBeamHeight\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SVISION\",60)': {\n tag: '(0019,\"SVISION\",60)',\n vr: \"IS\",\n name: \"BuckyAngle\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SVISION\",68)': {\n tag: '(0019,\"SVISION\",68)',\n vr: \"IS\",\n name: \"CArmAngle\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SVISION\",69)': {\n tag: '(0019,\"SVISION\",69)',\n vr: \"IS\",\n name: \"CollimatorAngle\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SVISION\",70)': {\n tag: '(0019,\"SVISION\",70)',\n vr: \"IS\",\n name: \"FilterNumber\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SVISION\",74)': {\n tag: '(0019,\"SVISION\",74)',\n vr: \"LO\",\n name: \"FilterMaterial1\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SVISION\",75)': {\n tag: '(0019,\"SVISION\",75)',\n vr: \"LO\",\n name: \"FilterMaterial2\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SVISION\",78)': {\n tag: '(0019,\"SVISION\",78)',\n vr: \"DS\",\n name: \"FilterThickness1\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SVISION\",79)': {\n tag: '(0019,\"SVISION\",79)',\n vr: \"DS\",\n name: \"FilterThickness2\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SVISION\",80)': {\n tag: '(0019,\"SVISION\",80)',\n vr: \"IS\",\n name: \"BuckyFormat\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SVISION\",81)': {\n tag: '(0019,\"SVISION\",81)',\n vr: \"IS\",\n name: \"ObjectPosition\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SVISION\",90)': {\n tag: '(0019,\"SVISION\",90)',\n vr: \"LO\",\n name: \"DeskCommand\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SVISION\",A0)': {\n tag: '(0019,\"SVISION\",A0)',\n vr: \"DS\",\n name: \"ExtendedExposureTime\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SVISION\",A1)': {\n tag: '(0019,\"SVISION\",A1)',\n vr: \"DS\",\n name: \"ActualExposureTime\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"SVISION\",A8)': {\n tag: '(0019,\"SVISION\",A8)',\n vr: \"DS\",\n name: \"ExtendedXRayTubeCurrent\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SVISION\",00)': {\n tag: '(0021,\"SVISION\",00)',\n vr: \"DS\",\n name: \"NoiseReduction\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SVISION\",01)': {\n tag: '(0021,\"SVISION\",01)',\n vr: \"DS\",\n name: \"ContrastAmplification\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SVISION\",02)': {\n tag: '(0021,\"SVISION\",02)',\n vr: \"DS\",\n name: \"EdgeContrastBoosting\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SVISION\",03)': {\n tag: '(0021,\"SVISION\",03)',\n vr: \"DS\",\n name: \"LatitudeReduction\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SVISION\",10)': {\n tag: '(0021,\"SVISION\",10)',\n vr: \"LO\",\n name: \"FindRangeAlgorithm\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SVISION\",11)': {\n tag: '(0021,\"SVISION\",11)',\n vr: \"DS\",\n name: \"ThresholdCAlgorithm\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SVISION\",20)': {\n tag: '(0021,\"SVISION\",20)',\n vr: \"LO\",\n name: \"SensometricCurve\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SVISION\",30)': {\n tag: '(0021,\"SVISION\",30)',\n vr: \"DS\",\n name: \"LowerWindowOffset\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SVISION\",31)': {\n tag: '(0021,\"SVISION\",31)',\n vr: \"DS\",\n name: \"UpperWindowOffset\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SVISION\",40)': {\n tag: '(0021,\"SVISION\",40)',\n vr: \"DS\",\n name: \"MinPrintableDensity\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SVISION\",41)': {\n tag: '(0021,\"SVISION\",41)',\n vr: \"DS\",\n name: \"MaxPrintableDensity\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SVISION\",90)': {\n tag: '(0021,\"SVISION\",90)',\n vr: \"DS\",\n name: \"Brightness\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SVISION\",91)': {\n tag: '(0021,\"SVISION\",91)',\n vr: \"DS\",\n name: \"Contrast\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0021,\"SVISION\",92)': {\n tag: '(0021,\"SVISION\",92)',\n vr: \"DS\",\n name: \"ShapeFactor\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0023,\"SVISION\",00)': {\n tag: '(0023,\"SVISION\",00)',\n vr: \"LO\",\n name: \"ImageLaterality\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0023,\"SVISION\",01)': {\n tag: '(0023,\"SVISION\",01)',\n vr: \"IS\",\n name: \"LetterPosition\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0023,\"SVISION\",02)': {\n tag: '(0023,\"SVISION\",02)',\n vr: \"IS\",\n name: \"BurnedInAnnotation\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0023,\"SVISION\",03)': {\n tag: '(0023,\"SVISION\",03)',\n vr: \"LO\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0023,\"SVISION\",F0)': {\n tag: '(0023,\"SVISION\",F0)',\n vr: \"IS\",\n name: \"ImageSOPClass\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0025,\"SVISION\",00)': {\n tag: '(0025,\"SVISION\",00)',\n vr: \"IS\",\n name: \"OriginalImage\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0025,\"SVISION\",01)': {\n tag: '(0025,\"SVISION\",01)',\n vr: \"IS\",\n name: \"NotProcessedImage\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0025,\"SVISION\",02)': {\n tag: '(0025,\"SVISION\",02)',\n vr: \"IS\",\n name: \"CutOutImage\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0025,\"SVISION\",03)': {\n tag: '(0025,\"SVISION\",03)',\n vr: \"IS\",\n name: \"DuplicatedImage\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0025,\"SVISION\",04)': {\n tag: '(0025,\"SVISION\",04)',\n vr: \"IS\",\n name: \"StoredImage\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0025,\"SVISION\",05)': {\n tag: '(0025,\"SVISION\",05)',\n vr: \"IS\",\n name: \"RetrievedImage\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0025,\"SVISION\",06)': {\n tag: '(0025,\"SVISION\",06)',\n vr: \"IS\",\n name: \"RemoteImage\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0025,\"SVISION\",07)': {\n tag: '(0025,\"SVISION\",07)',\n vr: \"IS\",\n name: \"MediaStoredImage\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0025,\"SVISION\",08)': {\n tag: '(0025,\"SVISION\",08)',\n vr: \"IS\",\n name: \"ImageState\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0025,\"SVISION\",20)': {\n tag: '(0025,\"SVISION\",20)',\n vr: \"LO\",\n name: \"SourceImageFile\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0025,\"SVISION\",21)': {\n tag: '(0025,\"SVISION\",21)',\n vr: \"UI\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0027,\"SVISION\",00)': {\n tag: '(0027,\"SVISION\",00)',\n vr: \"IS\",\n name: \"NumberOfSeries\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0027,\"SVISION\",01)': {\n tag: '(0027,\"SVISION\",01)',\n vr: \"IS\",\n name: \"NumberOfStudies\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0027,\"SVISION\",10)': {\n tag: '(0027,\"SVISION\",10)',\n vr: \"DT\",\n name: \"OldestSeries\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0027,\"SVISION\",11)': {\n tag: '(0027,\"SVISION\",11)',\n vr: \"DT\",\n name: \"NewestSeries\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0027,\"SVISION\",12)': {\n tag: '(0027,\"SVISION\",12)',\n vr: \"DT\",\n name: \"OldestStudy\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0027,\"SVISION\",13)': {\n tag: '(0027,\"SVISION\",13)',\n vr: \"DT\",\n name: \"NewestStudy\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"TOSHIBA_MEC_1.0\",01)': {\n tag: '(0009,\"TOSHIBA_MEC_1.0\",01)',\n vr: \"LT\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0009,\"TOSHIBA_MEC_1.0\",02)': {\n tag: '(0009,\"TOSHIBA_MEC_1.0\",02)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0009,\"TOSHIBA_MEC_1.0\",03)': {\n tag: '(0009,\"TOSHIBA_MEC_1.0\",03)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0009,\"TOSHIBA_MEC_1.0\",04)': {\n tag: '(0009,\"TOSHIBA_MEC_1.0\",04)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0011,\"TOSHIBA_MEC_1.0\",01)': {\n tag: '(0011,\"TOSHIBA_MEC_1.0\",01)',\n vr: \"LT\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0011,\"TOSHIBA_MEC_1.0\",02)': {\n tag: '(0011,\"TOSHIBA_MEC_1.0\",02)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0019,\"TOSHIBA_MEC_1.0\",01)': {\n tag: '(0019,\"TOSHIBA_MEC_1.0\",01)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0019,\"TOSHIBA_MEC_1.0\",02)': {\n tag: '(0019,\"TOSHIBA_MEC_1.0\",02)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0021,\"TOSHIBA_MEC_1.0\",01)': {\n tag: '(0021,\"TOSHIBA_MEC_1.0\",01)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0021,\"TOSHIBA_MEC_1.0\",02)': {\n tag: '(0021,\"TOSHIBA_MEC_1.0\",02)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0021,\"TOSHIBA_MEC_1.0\",03)': {\n tag: '(0021,\"TOSHIBA_MEC_1.0\",03)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(7ff1,\"TOSHIBA_MEC_1.0\",01)': {\n tag: '(7ff1,\"TOSHIBA_MEC_1.0\",01)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(7ff1,\"TOSHIBA_MEC_1.0\",02)': {\n tag: '(7ff1,\"TOSHIBA_MEC_1.0\",02)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(7ff1,\"TOSHIBA_MEC_1.0\",03)': {\n tag: '(7ff1,\"TOSHIBA_MEC_1.0\",03)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(7ff1,\"TOSHIBA_MEC_1.0\",10)': {\n tag: '(7ff1,\"TOSHIBA_MEC_1.0\",10)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0019,\"TOSHIBA_MEC_CT_1.0\",01)': {\n tag: '(0019,\"TOSHIBA_MEC_CT_1.0\",01)',\n vr: \"IS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"TOSHIBA_MEC_CT_1.0\",02)': {\n tag: '(0019,\"TOSHIBA_MEC_CT_1.0\",02)',\n vr: \"IS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"TOSHIBA_MEC_CT_1.0\",03)': {\n tag: '(0019,\"TOSHIBA_MEC_CT_1.0\",03)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0019,\"TOSHIBA_MEC_CT_1.0\",04)': {\n tag: '(0019,\"TOSHIBA_MEC_CT_1.0\",04)',\n vr: \"LT\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"TOSHIBA_MEC_CT_1.0\",05)': {\n tag: '(0019,\"TOSHIBA_MEC_CT_1.0\",05)',\n vr: \"LT\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"TOSHIBA_MEC_CT_1.0\",06)': {\n tag: '(0019,\"TOSHIBA_MEC_CT_1.0\",06)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0019,\"TOSHIBA_MEC_CT_1.0\",07)': {\n tag: '(0019,\"TOSHIBA_MEC_CT_1.0\",07)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0019,\"TOSHIBA_MEC_CT_1.0\",08)': {\n tag: '(0019,\"TOSHIBA_MEC_CT_1.0\",08)',\n vr: \"LT\",\n name: \"OrientationHeadFeet\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"TOSHIBA_MEC_CT_1.0\",09)': {\n tag: '(0019,\"TOSHIBA_MEC_CT_1.0\",09)',\n vr: \"LT\",\n name: \"ViewDirection\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"TOSHIBA_MEC_CT_1.0\",0a)': {\n tag: '(0019,\"TOSHIBA_MEC_CT_1.0\",0a)',\n vr: \"LT\",\n name: \"OrientationSupineProne\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"TOSHIBA_MEC_CT_1.0\",0b)': {\n tag: '(0019,\"TOSHIBA_MEC_CT_1.0\",0b)',\n vr: \"DS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"TOSHIBA_MEC_CT_1.0\",0c)': {\n tag: '(0019,\"TOSHIBA_MEC_CT_1.0\",0c)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(0019,\"TOSHIBA_MEC_CT_1.0\",0d)': {\n tag: '(0019,\"TOSHIBA_MEC_CT_1.0\",0d)',\n vr: \"TM\",\n name: \"Time\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(0019,\"TOSHIBA_MEC_CT_1.0\",0e)': {\n tag: '(0019,\"TOSHIBA_MEC_CT_1.0\",0e)',\n vr: \"DS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(7ff1,\"TOSHIBA_MEC_CT_1.0\",01)': {\n tag: '(7ff1,\"TOSHIBA_MEC_CT_1.0\",01)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(7ff1,\"TOSHIBA_MEC_CT_1.0\",02)': {\n tag: '(7ff1,\"TOSHIBA_MEC_CT_1.0\",02)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(7ff1,\"TOSHIBA_MEC_CT_1.0\",03)': {\n tag: '(7ff1,\"TOSHIBA_MEC_CT_1.0\",03)',\n vr: \"IS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(7ff1,\"TOSHIBA_MEC_CT_1.0\",04)': {\n tag: '(7ff1,\"TOSHIBA_MEC_CT_1.0\",04)',\n vr: \"IS\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(7ff1,\"TOSHIBA_MEC_CT_1.0\",05)': {\n tag: '(7ff1,\"TOSHIBA_MEC_CT_1.0\",05)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(7ff1,\"TOSHIBA_MEC_CT_1.0\",07)': {\n tag: '(7ff1,\"TOSHIBA_MEC_CT_1.0\",07)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(7ff1,\"TOSHIBA_MEC_CT_1.0\",08)': {\n tag: '(7ff1,\"TOSHIBA_MEC_CT_1.0\",08)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(7ff1,\"TOSHIBA_MEC_CT_1.0\",09)': {\n tag: '(7ff1,\"TOSHIBA_MEC_CT_1.0\",09)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(7ff1,\"TOSHIBA_MEC_CT_1.0\",0a)': {\n tag: '(7ff1,\"TOSHIBA_MEC_CT_1.0\",0a)',\n vr: \"LT\",\n name: \"Unknown\",\n vm: \"1\",\n version: \"PrivateTag\"\n },\n '(7ff1,\"TOSHIBA_MEC_CT_1.0\",0b)': {\n tag: '(7ff1,\"TOSHIBA_MEC_CT_1.0\",0b)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(7ff1,\"TOSHIBA_MEC_CT_1.0\",0c)': {\n tag: '(7ff1,\"TOSHIBA_MEC_CT_1.0\",0c)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n },\n '(7ff1,\"TOSHIBA_MEC_CT_1.0\",0d)': {\n tag: '(7ff1,\"TOSHIBA_MEC_CT_1.0\",0d)',\n vr: \"US\",\n name: \"Unknown\",\n vm: \"1-n\",\n version: \"PrivateTag\"\n }\n};\n\nexport default dictionary;\n","const handler = {\n /**\n * Get a proxied value from the array or property value\n * Note that the property value get works even if you update the underlying object.\n * Also, return true of proxy.__isProxy in order to distinguish proxies and not double proxy them.\n */\n get: (target, prop) => {\n if (prop == \"__isProxy\") return true;\n if (prop in target) return target[prop];\n return target[0][prop];\n },\n\n set: (obj, prop, value) => {\n if (typeof prop === \"number\") {\n obj[prop] = value;\n } else if (prop in obj) {\n obj[prop] = value;\n } else {\n obj[0][prop] = value;\n }\n return true;\n }\n};\n\n/**\n * Add a proxy object for sqZero or the src[0] element if sqZero is unspecified, AND\n * src is an array of length 1.\n *\n * If sqZero isn't passed in, then assume this is a create call on the destination object\n * itself, by:\n * 1. If not an object, return dest\n * 2. If an array of length != 1, return dest\n * 3. If an array, use dest[0] as sqZero\n * 4. Use dest as sqZero\n *\n * @example\n * src = [{a:5,b:'string', c:null}]\n * addAccessors(src)\n * src.c = 'outerChange'\n * src[0].b='innerChange'\n *\n * assert src.a===5\n * assert src[0].c === 'outerChange'\n * assert src.b === 'innerChange'\n */\nconst addAccessors = (dest, sqZero) => {\n if (dest.__isProxy) return dest;\n let itemZero = sqZero;\n if (itemZero === undefined) {\n if (typeof dest !== \"object\") return dest;\n if (Array.isArray(dest) && dest.length !== 1) return dest;\n itemZero = Array.isArray(dest) ? dest[0] : dest;\n }\n // dest may have some decorations so keep the object\n if (Array.isArray(dest)) {\n dest.length = 0;\n dest.push(itemZero);\n return new Proxy(dest, handler);\n } else {\n return new Proxy([itemZero], handler);\n }\n};\n\nexport default addAccessors;\n","import { WriteBufferStream } from \"./BufferStream.js\";\nimport {\n EXPLICIT_LITTLE_ENDIAN,\n IMPLICIT_LITTLE_ENDIAN\n} from \"./constants/dicom\";\nimport { DicomMessage } from \"./DicomMessage.js\";\nimport { ValueRepresentation } from \"./ValueRepresentation.js\";\n\nfunction paddingLeft(paddingValue, string) {\n return String(paddingValue + string).slice(-paddingValue.length);\n}\n\nclass Tag {\n constructor(value) {\n this.value = value;\n }\n\n toString() {\n return (\n \"(\" +\n paddingLeft(\"0000\", this.group().toString(16).toUpperCase()) +\n \",\" +\n paddingLeft(\"0000\", this.element().toString(16).toUpperCase()) +\n \")\"\n );\n }\n\n toCleanString() {\n return (\n paddingLeft(\"0000\", this.group().toString(16).toUpperCase()) +\n paddingLeft(\"0000\", this.element().toString(16).toUpperCase())\n );\n }\n\n is(t) {\n return this.value == t;\n }\n\n group() {\n return this.value >>> 16;\n }\n\n element() {\n return this.value & 0xffff;\n }\n\n isPixelDataTag() {\n return this.is(0x7fe00010);\n }\n\n isPrivateCreator() {\n const group = this.group();\n const element = this.element();\n return group % 2 === 1 && element < 0x100 && element > 0x00;\n }\n\n static fromString(str) {\n var group = parseInt(str.substring(0, 4), 16),\n element = parseInt(str.substring(4), 16);\n return Tag.fromNumbers(group, element);\n }\n\n static fromPString(str) {\n var group = parseInt(str.substring(1, 5), 16),\n element = parseInt(str.substring(6, 10), 16);\n return Tag.fromNumbers(group, element);\n }\n\n static fromNumbers(group, element) {\n return new Tag(((group << 16) | element) >>> 0);\n }\n\n static readTag(stream) {\n var group = stream.readUint16(),\n element = stream.readUint16();\n return Tag.fromNumbers(group, element);\n }\n\n write(stream, vrType, values, syntax, writeOptions) {\n var vr = ValueRepresentation.createByTypeString(vrType),\n useSyntax = DicomMessage._normalizeSyntax(syntax);\n\n var implicit = useSyntax == IMPLICIT_LITTLE_ENDIAN ? true : false,\n isLittleEndian =\n useSyntax == IMPLICIT_LITTLE_ENDIAN ||\n useSyntax == EXPLICIT_LITTLE_ENDIAN\n ? true\n : false,\n isEncapsulated =\n this.isPixelDataTag() && DicomMessage.isEncapsulated(syntax);\n\n var oldEndian = stream.isLittleEndian;\n stream.setEndian(isLittleEndian);\n\n stream.writeUint16(this.group());\n stream.writeUint16(this.element());\n\n var tagStream = new WriteBufferStream(256),\n valueLength;\n tagStream.setEndian(isLittleEndian);\n\n if (vrType == \"OW\" || vrType == \"OB\" || vrType == \"UN\") {\n valueLength = vr.writeBytes(\n tagStream,\n values,\n useSyntax,\n isEncapsulated,\n writeOptions\n );\n } else if (vrType == \"SQ\") {\n valueLength = vr.writeBytes(\n tagStream,\n values,\n useSyntax,\n writeOptions\n );\n } else {\n valueLength = vr.writeBytes(tagStream, values, writeOptions);\n }\n\n if (vrType == \"SQ\") {\n valueLength = 0xffffffff;\n }\n var written = tagStream.size + 4;\n\n if (implicit) {\n stream.writeUint32(valueLength);\n written += 4;\n } else {\n if (vr.isExplicit()) {\n stream.writeAsciiString(vr.type);\n stream.writeUint16(0);\n stream.writeUint32(valueLength);\n written += 8;\n } else {\n stream.writeAsciiString(vr.type);\n stream.writeUint16(valueLength);\n written += 4;\n }\n }\n\n stream.concat(tagStream);\n\n stream.setEndian(oldEndian);\n\n return written;\n }\n}\n\nexport { Tag };\n","import { PN_COMPONENT_DELIMITER, VM_DELIMITER } from \"../constants/dicom\";\n\n/**\n * Converts a PN string to the dicom+json equivalent, or returns the\n * original object\n * @param {string | object} value Part10 style PersonName (PN) string (ie 'A^B==C\\D') or object\n * @param {bool} multiple if false returns the first valid PersonName, otherwise returns all PersonNames\n * @returns {object} dicom+json representation of PersonName value, or the same object.\n */\nfunction pnStringToObject(value, multiple = true) {\n if (value == undefined) {\n return multiple ? [] : undefined;\n }\n if (typeof value === \"string\" || value instanceof String) {\n // Direct string assignment:\n // naturalizedDataset.PatientName = \"Doe^John\";\n const values = value\n .split(String.fromCharCode(VM_DELIMITER))\n .filter(Boolean);\n const pnObj = values.map(function (v) {\n const components = v.split(\n String.fromCharCode(PN_COMPONENT_DELIMITER)\n );\n return {\n ...(components[0] ? { Alphabetic: components[0] } : {}),\n ...(components[1] ? { Ideographic: components[1] } : {}),\n ...(components[2] ? { Phonetic: components[2] } : {})\n };\n });\n return multiple ? pnObj : pnObj[0];\n } else {\n // Direct assignment:\n // naturalizedDataset.PatientName = {Alphabetic: \"John\"};\n if (!Array.isArray(value) && multiple) {\n return [Object.assign({}, value)];\n }\n // Verbatim:\n // naturalizedDataset.PatientName = [{Alphabetic: \"John\"}];\n return value;\n }\n}\n\n/**\n * Returns the dicom part10 equivalent string for a given json object.\n * @param {object | string} value\n * @returns {string} dicom part10 equivalent string\n */\nfunction pnObjectToString(value) {\n if (typeof value === \"string\" || value instanceof String) {\n return value;\n }\n\n const pnDelim = String.fromCharCode(PN_COMPONENT_DELIMITER);\n if (!Array.isArray(value)) {\n value = [value];\n }\n return value\n .filter(Boolean)\n .map(function (v) {\n if (\n v === undefined ||\n typeof v === \"string\" ||\n v instanceof String\n ) {\n return v;\n }\n return [v.Alphabetic ?? \"\", v.Ideographic ?? \"\", v.Phonetic ?? \"\"]\n .join(pnDelim)\n .replace(new RegExp(`${pnDelim}*$`), \"\");\n })\n .join(String.fromCharCode(VM_DELIMITER));\n}\n\n/**\n * Overrides toJSON and toString to ensure JSON.stringify always returns\n * a valid dicom+json object, even when given a string such as \"Doe^John\".\n * @param {object} value value object which will be given the accessors. note\n * for a string it must first be boxed: new String(value)\n * @returns {object} the same object\n */\nfunction pnAddValueAccessors(value) {\n if (!value.__hasValueAccessors) {\n Object.defineProperty(value, \"__hasValueAccessors\", { value: true });\n Object.defineProperty(value, \"toJSON\", {\n value: function () {\n if (Array.isArray(this)) {\n return this.filter(Boolean).map(x =>\n pnStringToObject(x, false)\n );\n } else {\n return pnStringToObject(this);\n }\n }\n });\n // This override is mostly for testing; PN is always represented\n // by its dicom+json model, but serialization flattens it to a\n // part10 string.\n Object.defineProperty(value, \"toString\", {\n value: function () {\n return pnObjectToString(value);\n }\n });\n }\n return value;\n}\n\nconst dicomJson = {\n pnObjectToString: pnObjectToString,\n pnConvertToJsonObject: pnStringToObject,\n pnAddValueAccessors: pnAddValueAccessors\n};\n\nexport default dicomJson;\n","import { validationLog, log } from \"./log.js\";\nimport { DicomMessage } from \"./DicomMessage.js\";\nimport { ReadBufferStream } from \"./BufferStream.js\";\nimport { WriteBufferStream } from \"./BufferStream.js\";\nimport { Tag } from \"./Tag.js\";\nimport {\n PADDING_NULL,\n PADDING_SPACE,\n VM_DELIMITER,\n PN_COMPONENT_DELIMITER\n} from \"./constants/dicom.js\";\nimport dicomJson from \"./utilities/dicomJson.js\";\nimport { DicomMetaDictionary } from \"./DicomMetaDictionary.js\";\n\n// We replace the tag with a Proxy which intercepts assignments to obj[valueProp]\n// and adds additional overrides/accessors to the value if need be. If valueProp\n// is falsy, we check target.vr and add accessors via a ValueRepresentation lookup.\n// Specifically, this helps address the incorrect (though common) use of the library:\n// dicomDict.dict.upsertTag('00101001', 'PN', 'Doe^John'); /* direct string assignment */\n// dicomDict.dict['00081070'].Value = 'Doe^John\\Doe^Jane'; /* overwrite with multiplicity */\n// ...\n// jsonOutput = JSON.serialize(dicomDict);\n// or:\n// naturalizedDataset.OperatorsName = 'Doe^John';\n// jsonOutput = JSON.serialize(naturalizedDataset);\n// Whereas the correct usage of the dicom+json model would be:\n// dicomDict.dict.upsertTag('00101001', 'PN', [{Alphabetic:'Doe^John'}]);\n// naturalizedDataset.OperatorsName = [{Alphabetic:'Doe^John'},{Alphabetic:'Doe^Jane'}];\n// TODO: refactor with addAccessors.js in mind\nconst tagProxyHandler = {\n set(target, prop, value) {\n var vrType;\n if (\n [\"values\", \"Value\"].includes(prop) &&\n target.vr &&\n ValueRepresentation.hasValueAccessors(target.vr)\n ) {\n vrType = ValueRepresentation.createByTypeString(target.vr);\n } else if (\n prop in DicomMetaDictionary.nameMap &&\n ValueRepresentation.hasValueAccessors(\n DicomMetaDictionary.nameMap[prop].vr\n )\n ) {\n vrType = ValueRepresentation.createByTypeString(\n DicomMetaDictionary.nameMap[prop].vr\n );\n } else {\n target[prop] = value;\n return true;\n }\n\n target[prop] = vrType.addValueAccessors(value);\n\n return true;\n }\n};\n\nfunction rtrim(str) {\n return str.replace(/\\s*$/g, \"\");\n}\n\nfunction toWindows(inputArray, size) {\n return Array.from(\n { length: inputArray.length - (size - 1) }, //get the appropriate length\n (_, index) => inputArray.slice(index, index + size) //create the windows\n );\n}\n\nvar binaryVRs = [\"FL\", \"FD\", \"SL\", \"SS\", \"UL\", \"US\", \"AT\"],\n explicitVRs = [\"OB\", \"OW\", \"OF\", \"SQ\", \"UC\", \"UR\", \"UT\", \"UN\"],\n singleVRs = [\"SQ\", \"OF\", \"OW\", \"OB\", \"UN\"];\n\nclass ValueRepresentation {\n constructor(type) {\n this.type = type;\n this.multi = false;\n this._isBinary = binaryVRs.indexOf(this.type) != -1;\n this._allowMultiple =\n !this._isBinary && singleVRs.indexOf(this.type) == -1;\n this._isExplicit = explicitVRs.indexOf(this.type) != -1;\n }\n\n isBinary() {\n return this._isBinary;\n }\n\n allowMultiple() {\n return this._allowMultiple;\n }\n\n isExplicit() {\n return this._isExplicit;\n }\n\n addValueAccessors(value) {\n return value;\n }\n\n /**\n * Replaces a tag with a Proxy which assigns value accessors based on the vr field\n * of the tag being given to it. If the tag object does not have a vr or vr.type\n * property, the proxy will look for the prop name in the natural name map.\n * @param {any} tag object to add accessors to\n * @returns {any} either the same object if no accessor needed, or a Proxy\n */\n static addTagAccessors(tag) {\n if (\n !tag.__hasTagAccessors &&\n ValueRepresentation.hasValueAccessors(tag.vr?.type || tag.vr)\n ) {\n Object.defineProperty(tag, \"__hasTagAccessors\", { value: true });\n // See note in declaration of taxProxyHandler\n return new Proxy(tag, tagProxyHandler);\n }\n return tag;\n }\n\n read(stream, length, syntax) {\n if (this.fixed && this.maxLength) {\n if (!length) return this.defaultValue;\n if (this.maxLength != length)\n log.error(\n \"Invalid length for fixed length tag, vr \" +\n this.type +\n \", length \" +\n this.maxLength +\n \" != \" +\n length\n );\n }\n return this.readBytes(stream, length, syntax);\n }\n\n readBytes(stream, length) {\n return stream.readAsciiString(length);\n }\n\n readPaddedAsciiString(stream, length) {\n if (!length) return \"\";\n if (stream.peekUint8(length - 1) !== this.padByte) {\n return stream.readAsciiString(length);\n } else {\n var val = stream.readAsciiString(length - 1);\n stream.increment(1);\n return val;\n }\n }\n\n readPaddedEncodedString(stream, length) {\n if (!length) return \"\";\n const val = stream.readEncodedString(length);\n if (\n val.length &&\n val[val.length - 1] !== String.fromCharCode(this.padByte)\n ) {\n return val;\n } else {\n return val.slice(0, -1);\n }\n }\n\n write(stream, type) {\n var args = Array.from(arguments);\n if (args[2] === null || args[2] === \"\" || args[2] === undefined) {\n return [stream.writeAsciiString(\"\")];\n } else {\n var written = [],\n valueArgs = args.slice(2),\n func = stream[\"write\" + type];\n if (Array.isArray(valueArgs[0])) {\n if (valueArgs[0].length < 1) {\n written.push(0);\n } else {\n var self = this;\n valueArgs[0].forEach(function (v, k) {\n if (self.allowMultiple() && k > 0) {\n stream.writeUint8(VM_DELIMITER);\n }\n var singularArgs = [v].concat(valueArgs.slice(1));\n var byteCount = func.apply(stream, singularArgs);\n written.push(byteCount);\n });\n }\n } else {\n written.push(func.apply(stream, valueArgs));\n }\n return written;\n }\n }\n\n writeBytes(\n stream,\n value,\n lengths,\n writeOptions = { allowInvalidVRLength: false }\n ) {\n const { allowInvalidVRLength } = writeOptions;\n var valid = true,\n valarr = Array.isArray(value) ? value : [value],\n total = 0;\n\n for (var i = 0; i < valarr.length; i++) {\n var checkValue = valarr[i],\n checklen = lengths[i],\n isString = false,\n displaylen = checklen;\n if (checkValue === null || allowInvalidVRLength) {\n valid = true;\n } else if (this.checkLength) {\n valid = this.checkLength(checkValue);\n } else if (this.maxCharLength) {\n var check = this.maxCharLength; //, checklen = checkValue.length;\n valid = checkValue.length <= check;\n displaylen = checkValue.length;\n isString = true;\n } else if (this.maxLength) {\n valid = checklen <= this.maxLength;\n }\n\n if (!valid) {\n var errmsg =\n \"Value exceeds max length, vr: \" +\n this.type +\n \", value: \" +\n checkValue +\n \", length: \" +\n displaylen;\n if (isString) log.log(errmsg);\n else throw new Error(errmsg);\n }\n total += checklen;\n }\n if (this.allowMultiple()) {\n total += valarr.length ? valarr.length - 1 : 0;\n }\n\n //check for odd\n var written = total;\n if (total & 1) {\n stream.writeUint8(this.padByte);\n written++;\n }\n return written;\n }\n\n static hasValueAccessors(type) {\n if (type in VRinstances) {\n return (\n VRinstances[type].addValueAccessors !==\n ValueRepresentation.prototype.addValueAccessors\n );\n }\n // Given undefined, assume the representation need to add value accessors\n return type === undefined;\n }\n\n static createByTypeString(type) {\n var vr = VRinstances[type];\n if (vr === undefined) {\n if (type == \"ox\") {\n // TODO: determine VR based on context (could be 1 byte pixel data)\n // https://github.com/dgobbi/vtk-dicom/issues/38\n validationLog.error(\"Invalid vr type\", type, \"- using OW\");\n vr = VRinstances[\"OW\"];\n } else if (type == \"xs\") {\n validationLog.error(\"Invalid vr type\", type, \"- using US\");\n vr = VRinstances[\"US\"];\n } else {\n validationLog.error(\"Invalid vr type\", type, \"- using UN\");\n vr = VRinstances[\"UN\"];\n }\n }\n return vr;\n }\n\n static parseUnknownVr(type) {\n return new ParsedUnknownValue(type);\n }\n}\n\nclass AsciiStringRepresentation extends ValueRepresentation {\n constructor(type) {\n super(type);\n }\n\n readBytes(stream, length) {\n return stream.readAsciiString(length);\n }\n\n writeBytes(stream, value, writeOptions) {\n const written = super.write(stream, \"AsciiString\", value);\n\n return super.writeBytes(stream, value, written, writeOptions);\n }\n}\n\nclass EncodedStringRepresentation extends ValueRepresentation {\n constructor(type) {\n super(type);\n }\n\n readBytes(stream, length) {\n return stream.readEncodedString(length);\n }\n\n writeBytes(stream, value, writeOptions) {\n const written = super.write(stream, \"UTF8String\", value);\n\n return super.writeBytes(stream, value, written, writeOptions);\n }\n}\n\nclass BinaryRepresentation extends ValueRepresentation {\n constructor(type) {\n super(type);\n }\n\n writeBytes(stream, value, syntax, isEncapsulated, writeOptions = {}) {\n var i;\n var binaryStream;\n var { fragmentMultiframe = true } = writeOptions;\n value = value === null || value === undefined ? [] : value;\n if (isEncapsulated) {\n var fragmentSize = 1024 * 20,\n frames = value.length,\n startOffset = [];\n\n // Calculate a total length for storing binary stream\n var bufferLength = 0;\n for (i = 0; i < frames; i++) {\n const needsPadding = Boolean(value[i].byteLength & 1);\n bufferLength += value[i].byteLength + (needsPadding ? 1 : 0);\n let fragmentsLength = 1;\n if (fragmentMultiframe) {\n fragmentsLength = Math.ceil(\n value[i].byteLength / fragmentSize\n );\n }\n // 8 bytes per fragment are needed to store 0xffff (2 bytes), 0xe000 (2 bytes), and frageStream size (4 bytes)\n bufferLength += fragmentsLength * 8;\n }\n\n binaryStream = new WriteBufferStream(\n bufferLength,\n stream.isLittleEndian\n );\n\n for (i = 0; i < frames; i++) {\n const needsPadding = Boolean(value[i].byteLength & 1);\n\n startOffset.push(binaryStream.size);\n var frameBuffer = value[i],\n frameStream = new ReadBufferStream(frameBuffer);\n\n var fragmentsLength = 1;\n if (fragmentMultiframe) {\n fragmentsLength = Math.ceil(\n frameStream.size / fragmentSize\n );\n }\n\n for (var j = 0, fragmentStart = 0; j < fragmentsLength; j++) {\n const isFinalFragment = j === fragmentsLength - 1;\n\n var fragmentEnd = fragmentStart + frameStream.size;\n if (fragmentMultiframe) {\n fragmentEnd = fragmentStart + fragmentSize;\n }\n if (isFinalFragment) {\n fragmentEnd = frameStream.size;\n }\n var fragStream = new ReadBufferStream(\n frameStream.getBuffer(fragmentStart, fragmentEnd)\n );\n fragmentStart = fragmentEnd;\n binaryStream.writeUint16(0xfffe);\n binaryStream.writeUint16(0xe000);\n\n const addPaddingByte = isFinalFragment && needsPadding;\n\n binaryStream.writeUint32(\n fragStream.size + (addPaddingByte ? 1 : 0)\n );\n binaryStream.concat(fragStream);\n\n if (addPaddingByte) {\n binaryStream.writeInt8(this.padByte);\n }\n }\n }\n\n stream.writeUint16(0xfffe);\n stream.writeUint16(0xe000);\n stream.writeUint32(startOffset.length * 4);\n for (i = 0; i < startOffset.length; i++) {\n stream.writeUint32(startOffset[i]);\n }\n stream.concat(binaryStream);\n stream.writeUint16(0xfffe);\n stream.writeUint16(0xe0dd);\n stream.writeUint32(0x0);\n\n return 0xffffffff;\n } else {\n var binaryData = value[0];\n binaryStream = new ReadBufferStream(binaryData);\n stream.concat(binaryStream);\n return super.writeBytes(\n stream,\n binaryData,\n [binaryStream.size],\n writeOptions\n );\n }\n }\n\n readBytes(stream, length) {\n if (length == 0xffffffff) {\n var itemTagValue = Tag.readTag(stream),\n frames = [];\n\n if (itemTagValue.is(0xfffee000)) {\n var itemLength = stream.readUint32(),\n numOfFrames = 1,\n offsets = [];\n if (itemLength > 0x0) {\n //has frames\n numOfFrames = itemLength / 4;\n var i = 0;\n while (i++ < numOfFrames) {\n offsets.push(stream.readUint32());\n }\n } else {\n offsets = [];\n }\n\n const SequenceItemTag = 0xfffee000;\n const SequenceDelimiterTag = 0xfffee0dd;\n\n const getNextSequenceItemData = stream => {\n const nextTag = Tag.readTag(stream);\n if (nextTag.is(SequenceItemTag)) {\n const itemLength = stream.readUint32();\n const buffer = stream.getBuffer(\n stream.offset,\n stream.offset + itemLength\n );\n stream.increment(itemLength);\n return buffer;\n } else if (nextTag.is(SequenceDelimiterTag)) {\n // Read SequenceDelimiterItem value for the SequenceDelimiterTag\n if (stream.readUint32() !== 0) {\n throw Error(\n \"SequenceDelimiterItem tag value was not zero\"\n );\n }\n return null;\n }\n\n throw Error(\"Invalid tag in sequence\");\n };\n\n // If there is an offset table, use that to loop through pixel data sequence\n if (offsets.length > 0) {\n // make offsets relative to the stream, not tag\n offsets = offsets.map(e => e + stream.offset);\n offsets.push(stream.size);\n\n // window offsets to an array of [start,stop] locations\n frames = toWindows(offsets, 2).map(range => {\n const fragments = [];\n const [start, stop] = range;\n // create a new readable stream based on the range\n const rangeStream = new ReadBufferStream(\n stream.buffer,\n stream.isLittleEndian,\n {\n start: start,\n stop: stop,\n noCopy: stream.noCopy\n }\n );\n\n let frameSize = 0;\n while (!rangeStream.end()) {\n const buf = getNextSequenceItemData(rangeStream);\n if (buf === null) {\n break;\n }\n fragments.push(buf);\n frameSize += buf.byteLength;\n }\n\n // Ensure the parent stream's offset is kept up to date\n stream.offset = rangeStream.offset;\n\n // If there's only one buffer thne just return it directly\n if (fragments.length === 1) {\n return fragments[0];\n }\n\n if (rangeStream.noCopy) {\n // return the fragments for downstream application to process\n return fragments;\n } else {\n // Allocate a final ArrayBuffer and concat all buffers into it\n const mergedFrame = new ArrayBuffer(frameSize);\n const u8Data = new Uint8Array(mergedFrame);\n fragments.reduce((offset, buffer) => {\n u8Data.set(new Uint8Array(buffer), offset);\n return offset + buffer.byteLength;\n }, 0);\n\n return mergedFrame;\n }\n });\n }\n // If no offset table, loop through remainder of stream looking for termination tag\n else {\n while (!stream.end()) {\n const buffer = getNextSequenceItemData(stream);\n if (buffer === null) {\n break;\n }\n frames.push(buffer);\n }\n }\n } else {\n throw new Error(\n \"Item tag not found after undefined binary length\"\n );\n }\n return frames;\n } else {\n var bytes;\n /*if (this.type == 'OW') {\n bytes = stream.readUint16Array(length);\n } else if (this.type == 'OB') {\n bytes = stream.readUint8Array(length);\n }*/\n bytes = stream.getBuffer(stream.offset, stream.offset + length);\n stream.increment(length);\n return [bytes];\n }\n }\n}\n\nclass ApplicationEntity extends AsciiStringRepresentation {\n constructor() {\n super(\"AE\");\n this.maxLength = 16;\n this.padByte = PADDING_SPACE;\n }\n\n readBytes(stream, length) {\n return stream.readAsciiString(length).trim();\n }\n}\n\nclass CodeString extends AsciiStringRepresentation {\n constructor() {\n super(\"CS\");\n this.maxLength = 16;\n this.padByte = PADDING_SPACE;\n }\n\n readBytes(stream, length) {\n return stream.readAsciiString(length).trim();\n }\n}\n\nclass AgeString extends AsciiStringRepresentation {\n constructor() {\n super(\"AS\");\n this.maxLength = 4;\n this.padByte = PADDING_SPACE;\n this.fixed = true;\n this.defaultValue = \"\";\n }\n}\n\nclass AttributeTag extends ValueRepresentation {\n constructor() {\n super(\"AT\");\n this.maxLength = 4;\n this.valueLength = 4;\n this.padByte = PADDING_NULL;\n this.fixed = true;\n }\n\n readBytes(stream) {\n return Tag.readTag(stream).value;\n }\n\n writeBytes(stream, value, writeOptions) {\n return super.writeBytes(\n stream,\n value,\n super.write(stream, \"TwoUint16s\", value),\n writeOptions\n );\n }\n}\n\nclass DateValue extends AsciiStringRepresentation {\n constructor(value) {\n super(\"DA\", value);\n this.maxLength = 18;\n this.padByte = PADDING_SPACE;\n //this.fixed = true;\n this.defaultValue = \"\";\n }\n}\n\nclass DecimalString extends AsciiStringRepresentation {\n constructor() {\n super(\"DS\");\n this.maxLength = 16;\n this.padByte = PADDING_SPACE;\n }\n\n readBytes(stream, length) {\n const BACKSLASH = String.fromCharCode(VM_DELIMITER);\n let ds = stream.readAsciiString(length);\n ds = ds.replace(/[^0-9.\\\\\\-+e]/gi, \"\");\n if (ds.indexOf(BACKSLASH) !== -1) {\n // handle decimal string with multiplicity\n const dsArray = ds.split(BACKSLASH);\n ds = dsArray.map(ds => (ds === \"\" ? null : Number(ds)));\n } else {\n ds = [ds === \"\" ? null : Number(ds)];\n }\n\n return ds;\n }\n\n formatValue(value) {\n if (value === null) return \"\";\n\n let str = String(value);\n if (str.length > this.maxLength) {\n // Characters needed for '-' at start.\n const sign_chars = value < 0 ? 1 : 0;\n\n // Decide whether to use scientific notation.\n const logval = Math.log10(Math.abs(value));\n\n // Numbers larger than 1e14 cannot be correctly represented by truncating\n // their string representations to 16 chars, e.g pi * 10^13 would become\n // '314159265358979.', which may not be universally understood. This limit\n // is 1e13 for negative numbers because of the minus sign.\n // For negative exponents, the point of equal precision between scientific\n // and standard notation is 1e-4 e.g. '0.00031415926535' and\n // '3.1415926535e-04' are both 16 chars.\n const use_scientific = logval < -4 || logval >= 14 - sign_chars;\n if (use_scientific) {\n const trunc_str = value.toExponential(16 - sign_chars);\n if (trunc_str.length <= 16) return trunc_str;\n // If string is too long, correct the length.\n return value.toExponential(\n 16 - (trunc_str.length - 16) - sign_chars\n );\n } else {\n const trunc_str = value.toFixed(16 - sign_chars);\n if (trunc_str.length <= 16) return trunc_str;\n // If string is too long, correct the length.\n return value.toFixed(16 - sign_chars - (trunc_str.length - 16));\n }\n }\n return str;\n }\n\n writeBytes(stream, value, writeOptions) {\n const val = Array.isArray(value)\n ? value.map(ds => this.formatValue(ds))\n : [this.formatValue(value)];\n return super.writeBytes(stream, val, writeOptions);\n }\n}\n\nclass DateTime extends AsciiStringRepresentation {\n constructor() {\n super(\"DT\");\n this.maxLength = 26;\n this.padByte = PADDING_SPACE;\n }\n}\n\nclass FloatingPointSingle extends ValueRepresentation {\n constructor() {\n super(\"FL\");\n this.maxLength = 4;\n this.padByte = PADDING_NULL;\n this.fixed = true;\n this.defaultValue = 0.0;\n }\n\n readBytes(stream) {\n return Number(stream.readFloat());\n }\n\n writeBytes(stream, value, writeOptions) {\n return super.writeBytes(\n stream,\n value,\n super.write(stream, \"Float\", value),\n writeOptions\n );\n }\n}\n\nclass FloatingPointDouble extends ValueRepresentation {\n constructor() {\n super(\"FD\");\n this.maxLength = 8;\n this.padByte = PADDING_NULL;\n this.fixed = true;\n this.defaultValue = 0.0;\n }\n\n readBytes(stream) {\n return Number(stream.readDouble());\n }\n\n writeBytes(stream, value, writeOptions) {\n return super.writeBytes(\n stream,\n value,\n super.write(stream, \"Double\", value),\n writeOptions\n );\n }\n}\n\nclass IntegerString extends AsciiStringRepresentation {\n constructor() {\n super(\"IS\");\n this.maxLength = 12;\n this.padByte = PADDING_SPACE;\n }\n\n readBytes(stream, length) {\n const BACKSLASH = String.fromCharCode(VM_DELIMITER);\n let is = stream.readAsciiString(length).trim();\n\n is = is.replace(/[^0-9.\\\\\\-+e]/gi, \"\");\n\n if (is.indexOf(BACKSLASH) !== -1) {\n // handle integer string with multiplicity\n const integerStringArray = is.split(BACKSLASH);\n is = integerStringArray.map(is => (is === \"\" ? null : Number(is)));\n } else {\n is = [is === \"\" ? null : Number(is)];\n }\n\n return is;\n }\n\n formatValue(value) {\n return value === null ? \"\" : String(value);\n }\n\n writeBytes(stream, value, writeOptions) {\n const val = Array.isArray(value)\n ? value.map(is => this.formatValue(is))\n : [this.formatValue(value)];\n return super.writeBytes(stream, val, writeOptions);\n }\n}\n\nclass LongString extends EncodedStringRepresentation {\n constructor() {\n super(\"LO\");\n this.maxCharLength = 64;\n this.padByte = PADDING_SPACE;\n }\n\n readBytes(stream, length) {\n return stream.readEncodedString(length).trim();\n }\n}\n\nclass LongText extends EncodedStringRepresentation {\n constructor() {\n super(\"LT\");\n this.maxCharLength = 10240;\n this.padByte = PADDING_SPACE;\n }\n\n readBytes(stream, length) {\n return rtrim(stream.readEncodedString(length));\n }\n}\n\nclass PersonName extends EncodedStringRepresentation {\n constructor() {\n super(\"PN\");\n this.maxLength = null;\n this.padByte = PADDING_SPACE;\n }\n\n static checkComponentLengths(components) {\n for (var i in components) {\n var cmp = components[i];\n // As per table 6.2-1 in the spec\n if (cmp.length > 64) return false;\n }\n return true;\n }\n\n // Adds toJSON and toString accessors to normalize PersonName output; ie toJSON\n // always returns a dicom+json object, and toString always returns a part10\n // style string, regardless of typeof value\n addValueAccessors(value) {\n if (typeof value === \"string\") {\n value = new String(value);\n }\n if (value != undefined) {\n if (typeof value === \"object\") {\n return dicomJson.pnAddValueAccessors(value);\n } else {\n throw new Error(\n \"Cannot add accessors to non-string primitives\"\n );\n }\n }\n return value;\n }\n\n // Only checked on write, not on read nor creation\n checkLength(value) {\n if (Array.isArray(value)) {\n // In DICOM JSON, components are encoded as a mapping (object),\n // where the keys are one or more of the following: \"Alphabetic\",\n // \"Ideographic\", \"Phonetic\".\n // http://dicom.nema.org/medical/dicom/current/output/chtml/part18/sect_F.2.2.html\n for (const pnValue of value) {\n const components = Object.keys(pnValue).forEach(\n key => value[key]\n );\n if (!PersonName.checkComponentLengths(components)) return false;\n }\n } else if (typeof value === \"string\" || value instanceof String) {\n // In DICOM Part10, components are encoded as a string,\n // where components (\"Alphabetic\", \"Ideographic\", \"Phonetic\")\n // are separated by the \"=\" delimeter.\n // http://dicom.nema.org/medical/dicom/current/output/chtml/part05/sect_6.2.html\n // PN may also have multiplicity, with each item separated by\n // 0x5C (backslash).\n // https://dicom.nema.org/dicom/2013/output/chtml/part05/sect_6.4.html\n const values = value.split(String.fromCharCode(VM_DELIMITER));\n\n for (var pnString of values) {\n const components = pnString.split(\n String.fromCharCode(PN_COMPONENT_DELIMITER)\n );\n if (!PersonName.checkComponentLengths(components)) return false;\n }\n }\n return true;\n }\n\n readBytes(stream, length) {\n const result = this.readPaddedEncodedString(stream, length);\n return dicomJson.pnConvertToJsonObject(result);\n }\n\n writeBytes(stream, value, writeOptions) {\n return super.writeBytes(\n stream,\n dicomJson.pnObjectToString(value),\n writeOptions\n );\n }\n}\n\nclass ShortString extends EncodedStringRepresentation {\n constructor() {\n super(\"SH\");\n this.maxCharLength = 16;\n this.padByte = PADDING_SPACE;\n }\n\n readBytes(stream, length) {\n return stream.readEncodedString(length).trim();\n }\n}\n\nclass SignedLong extends ValueRepresentation {\n constructor() {\n super(\"SL\");\n this.maxLength = 4;\n this.padByte = PADDING_NULL;\n this.fixed = true;\n this.defaultValue = 0;\n }\n\n readBytes(stream) {\n return stream.readInt32();\n }\n\n writeBytes(stream, value, writeOptions) {\n return super.writeBytes(\n stream,\n value,\n super.write(stream, \"Int32\", value),\n writeOptions\n );\n }\n}\n\nclass SequenceOfItems extends ValueRepresentation {\n constructor() {\n super(\"SQ\");\n this.maxLength = null;\n this.padByte = PADDING_NULL;\n this.noMultiple = true;\n }\n\n readBytes(stream, sqlength, syntax) {\n if (sqlength == 0x0) {\n return []; //contains no dataset\n } else {\n var undefLength = sqlength == 0xffffffff,\n elements = [],\n read = 0;\n\n /* eslint-disable-next-line no-constant-condition */\n while (true) {\n var tag = Tag.readTag(stream),\n length = null;\n read += 4;\n\n if (tag.is(0xfffee0dd)) {\n stream.readUint32();\n break;\n } else if (!undefLength && read == sqlength) {\n break;\n } else if (tag.is(0xfffee000)) {\n length = stream.readUint32();\n read += 4;\n var itemStream = null,\n toRead = 0,\n undef = length == 0xffffffff;\n\n if (undef) {\n var stack = 0;\n\n /* eslint-disable-next-line no-constant-condition */\n while (1) {\n var g = stream.readUint16();\n if (g == 0xfffe) {\n // some control tag is about to be read\n var ge = stream.readUint16();\n\n let itemLength = stream.readUint32();\n stream.increment(-4);\n\n if (ge == 0xe00d) {\n if (itemLength === 0) {\n // item delimitation tag (0xfffee00d) + item length (0x00000000) has been read\n stack--;\n if (stack < 0) {\n // if we are outside every stack, then we are finished reading the sequence of items\n stream.increment(4);\n read += 8;\n break;\n } else {\n // otherwise, we were in a nested sequence of items\n toRead += 4;\n }\n } else {\n // anything else has been read\n toRead += 2;\n }\n } else if (ge == 0xe000) {\n // a new item has been found\n toRead += 4;\n\n if (itemLength == 0xffffffff) {\n // a new item with undefined length has been found\n stack++;\n }\n } else {\n // some control tag that does not concern sequence of items has been read\n toRead += 2;\n stream.increment(-2);\n }\n } else {\n // anything else has been read\n toRead += 2;\n }\n }\n } else {\n toRead = length;\n }\n\n if (toRead) {\n stream.increment(undef ? -toRead - 8 : 0);\n itemStream = stream.more(toRead); //parseElements\n read += toRead;\n if (undef) stream.increment(8);\n\n var items = DicomMessage._read(itemStream, syntax);\n elements.push(items);\n }\n if (!undefLength && read == sqlength) {\n break;\n }\n }\n }\n return elements;\n }\n }\n\n writeBytes(stream, value, syntax, writeOptions) {\n let written = 0;\n\n if (value) {\n for (var i = 0; i < value.length; i++) {\n var item = value[i];\n super.write(stream, \"Uint16\", 0xfffe);\n super.write(stream, \"Uint16\", 0xe000);\n super.write(stream, \"Uint32\", 0xffffffff);\n\n written += DicomMessage.write(\n item,\n stream,\n syntax,\n writeOptions\n );\n\n super.write(stream, \"Uint16\", 0xfffe);\n super.write(stream, \"Uint16\", 0xe00d);\n super.write(stream, \"Uint32\", 0x00000000);\n written += 16;\n }\n }\n super.write(stream, \"Uint16\", 0xfffe);\n super.write(stream, \"Uint16\", 0xe0dd);\n super.write(stream, \"Uint32\", 0x00000000);\n written += 8;\n\n return super.writeBytes(stream, value, [written], writeOptions);\n }\n}\n\nclass SignedShort extends ValueRepresentation {\n constructor() {\n super(\"SS\");\n this.maxLength = 2;\n this.valueLength = 2;\n this.padByte = PADDING_NULL;\n this.fixed = true;\n this.defaultValue = 0;\n }\n\n readBytes(stream) {\n return stream.readInt16();\n }\n\n writeBytes(stream, value, writeOptions) {\n return super.writeBytes(\n stream,\n value,\n super.write(stream, \"Int16\", value),\n writeOptions\n );\n }\n}\n\nclass ShortText extends EncodedStringRepresentation {\n constructor() {\n super(\"ST\");\n this.maxCharLength = 1024;\n this.padByte = PADDING_SPACE;\n }\n\n readBytes(stream, length) {\n return rtrim(stream.readEncodedString(length));\n }\n}\n\nclass TimeValue extends AsciiStringRepresentation {\n constructor() {\n super(\"TM\");\n this.maxLength = 14;\n this.padByte = PADDING_SPACE;\n }\n\n readBytes(stream, length) {\n return rtrim(stream.readAsciiString(length));\n }\n}\n\nclass UnlimitedCharacters extends EncodedStringRepresentation {\n constructor() {\n super(\"UC\");\n this.maxLength = null;\n this.multi = true;\n this.padByte = PADDING_SPACE;\n }\n\n readBytes(stream, length) {\n return rtrim(stream.readEncodedString(length));\n }\n}\n\nclass UnlimitedText extends EncodedStringRepresentation {\n constructor() {\n super(\"UT\");\n this.maxLength = null;\n this.padByte = PADDING_SPACE;\n }\n\n readBytes(stream, length) {\n return rtrim(stream.readEncodedString(length));\n }\n}\n\nclass UnsignedShort extends ValueRepresentation {\n constructor() {\n super(\"US\");\n this.maxLength = 2;\n this.padByte = PADDING_NULL;\n this.fixed = true;\n this.defaultValue = 0;\n }\n\n readBytes(stream) {\n return stream.readUint16();\n }\n\n writeBytes(stream, value, writeOptions) {\n return super.writeBytes(\n stream,\n value,\n super.write(stream, \"Uint16\", value),\n writeOptions\n );\n }\n}\n\nclass UnsignedLong extends ValueRepresentation {\n constructor() {\n super(\"UL\");\n this.maxLength = 4;\n this.padByte = PADDING_NULL;\n this.fixed = true;\n this.defaultValue = 0;\n }\n\n readBytes(stream) {\n return stream.readUint32();\n }\n\n writeBytes(stream, value, writeOptions) {\n return super.writeBytes(\n stream,\n value,\n super.write(stream, \"Uint32\", value),\n writeOptions\n );\n }\n}\n\nclass UniqueIdentifier extends AsciiStringRepresentation {\n constructor() {\n super(\"UI\");\n this.maxLength = 64;\n this.padByte = PADDING_NULL;\n }\n\n readBytes(stream, length) {\n const result = this.readPaddedAsciiString(stream, length);\n\n const BACKSLASH = String.fromCharCode(VM_DELIMITER);\n const uidRegExp = /[^0-9.]/g;\n\n // Treat backslashes as a delimiter for multiple UIDs, in which case an\n // array of UIDs is returned. This is used by DICOM Q&R to support\n // querying and matching multiple items on a UID field in a single\n // query. For more details see:\n //\n // https://dicom.nema.org/medical/dicom/current/output/chtml/part04/sect_C.2.2.2.2.html\n // https://dicom.nema.org/medical/dicom/current/output/chtml/part05/sect_6.4.html\n\n if (result.indexOf(BACKSLASH) === -1) {\n return result.replace(uidRegExp, \"\");\n } else {\n return result\n .split(BACKSLASH)\n .map(uid => uid.replace(uidRegExp, \"\"));\n }\n }\n}\n\nclass UniversalResource extends AsciiStringRepresentation {\n constructor() {\n super(\"UR\");\n this.maxLength = null;\n this.padByte = PADDING_SPACE;\n }\n\n readBytes(stream, length) {\n return stream.readAsciiString(length);\n }\n}\n\nclass UnknownValue extends BinaryRepresentation {\n constructor() {\n super(\"UN\");\n this.maxLength = null;\n this.padByte = PADDING_NULL;\n this.noMultiple = true;\n }\n}\n\nclass ParsedUnknownValue extends BinaryRepresentation {\n constructor(vr) {\n super(vr);\n this.maxLength = null;\n this.padByte = 0;\n this.noMultiple = true;\n this._isBinary = true;\n this._allowMultiple = false;\n this._isExplicit = true;\n }\n\n read(stream, length, syntax) {\n const arrayBuffer = this.readBytes(stream, length, syntax)[0];\n const streamFromBuffer = new ReadBufferStream(arrayBuffer, true);\n const vr = ValueRepresentation.createByTypeString(this.type);\n\n var values = [];\n if (vr.isBinary() && length > vr.maxLength && !vr.noMultiple) {\n var times = length / vr.maxLength,\n i = 0;\n while (i++ < times) {\n values.push(vr.read(streamFromBuffer, vr.maxLength, syntax));\n }\n } else {\n var val = vr.read(streamFromBuffer, length, syntax);\n if (!vr.isBinary() && singleVRs.indexOf(vr.type) == -1) {\n values = val;\n if (typeof val === \"string\") {\n values = val.split(String.fromCharCode(VM_DELIMITER));\n }\n } else if (vr.type == \"SQ\") {\n values = val;\n } else if (vr.type == \"OW\" || vr.type == \"OB\") {\n values = val;\n } else {\n Array.isArray(val) ? (values = val) : values.push(val);\n }\n }\n\n return values;\n }\n}\n\nclass OtherWordString extends BinaryRepresentation {\n constructor() {\n super(\"OW\");\n this.maxLength = null;\n this.padByte = PADDING_NULL;\n this.noMultiple = true;\n }\n}\n\nclass OtherByteString extends BinaryRepresentation {\n constructor() {\n super(\"OB\");\n this.maxLength = null;\n this.padByte = PADDING_NULL;\n this.noMultiple = true;\n }\n}\n\nclass OtherDoubleString extends BinaryRepresentation {\n constructor() {\n super(\"OD\");\n this.maxLength = null;\n this.padByte = PADDING_NULL;\n this.noMultiple = true;\n }\n}\n\nclass OtherFloatString extends BinaryRepresentation {\n constructor() {\n super(\"OF\");\n this.maxLength = null;\n this.padByte = PADDING_NULL;\n this.noMultiple = true;\n }\n}\n\n// these VR instances are precreate and are reused for each requested vr/tag\nlet VRinstances = {\n AE: new ApplicationEntity(),\n AS: new AgeString(),\n AT: new AttributeTag(),\n CS: new CodeString(),\n DA: new DateValue(),\n DS: new DecimalString(),\n DT: new DateTime(),\n FL: new FloatingPointSingle(),\n FD: new FloatingPointDouble(),\n IS: new IntegerString(),\n LO: new LongString(),\n LT: new LongText(),\n OB: new OtherByteString(),\n OD: new OtherDoubleString(),\n OF: new OtherFloatString(),\n OW: new OtherWordString(),\n PN: new PersonName(),\n SH: new ShortString(),\n SL: new SignedLong(),\n SQ: new SequenceOfItems(),\n SS: new SignedShort(),\n ST: new ShortText(),\n TM: new TimeValue(),\n UC: new UnlimitedCharacters(),\n UI: new UniqueIdentifier(),\n UL: new UnsignedLong(),\n UN: new UnknownValue(),\n UR: new UniversalResource(),\n US: new UnsignedShort(),\n UT: new UnlimitedText()\n};\n\nexport { ValueRepresentation };\n","import dictionary from \"./dictionary\";\nimport log from \"./log.js\";\nimport addAccessors from \"./utilities/addAccessors\";\nimport { ValueRepresentation } from \"./ValueRepresentation\";\n\nclass DicomMetaDictionary {\n // intakes a custom dictionary that will be used to parse/denaturalize the dataset\n constructor(customDictionary) {\n this.customDictionary = customDictionary;\n this.customNameMap =\n DicomMetaDictionary._generateCustomNameMap(customDictionary);\n }\n\n static punctuateTag(rawTag) {\n if (rawTag.indexOf(\",\") !== -1) {\n return rawTag;\n }\n if (rawTag.length === 8 && rawTag === rawTag.match(/[0-9a-fA-F]*/)[0]) {\n var tag = rawTag.toUpperCase();\n return \"(\" + tag.substring(0, 4) + \",\" + tag.substring(4, 8) + \")\";\n }\n }\n\n static unpunctuateTag(tag) {\n if (tag.indexOf(\",\") === -1) {\n return tag;\n }\n return tag.substring(1, 10).replace(\",\", \"\");\n }\n\n static parseIntFromTag(tag) {\n const integerValue = parseInt(\n \"0x\" + DicomMetaDictionary.unpunctuateTag(tag)\n );\n return integerValue;\n }\n\n static tagAsIntegerFromName(name) {\n const item = DicomMetaDictionary.nameMap[name];\n if (item != undefined) {\n return this.parseIntFromTag(item.tag);\n } else {\n return undefined;\n }\n }\n\n // fixes some common errors in VRs\n // TODO: if this gets longer it could go in ValueRepresentation.js\n // or in a dedicated class\n static cleanDataset(dataset) {\n const cleanedDataset = {};\n Object.keys(dataset).forEach(tag => {\n const data = Object.assign({}, dataset[tag]);\n if (data.vr == \"SQ\") {\n const cleanedValues = [];\n Object.keys(data.Value).forEach(index => {\n cleanedValues.push(\n DicomMetaDictionary.cleanDataset(data.Value[index])\n );\n });\n data.Value = cleanedValues;\n } else {\n // remove null characters from strings\n data.Value = Object.keys(data.Value).map(index => {\n const item = data.Value[index];\n if (item.constructor.name == \"String\") {\n return item.replace(/\\0/, \"\");\n }\n return item;\n });\n }\n cleanedDataset[tag] = data;\n });\n return cleanedDataset;\n }\n\n // unlike naturalizeDataset, this only\n // changes the names of the member variables\n // but leaves the values intact\n static namifyDataset(dataset) {\n var namedDataset = {};\n Object.keys(dataset).forEach(tag => {\n const data = Object.assign({}, dataset[tag]);\n if (data.vr == \"SQ\") {\n var namedValues = [];\n Object.keys(data.Value).forEach(index => {\n namedValues.push(\n DicomMetaDictionary.namifyDataset(data.Value[index])\n );\n });\n data.Value = namedValues;\n }\n var punctuatedTag = DicomMetaDictionary.punctuateTag(tag);\n var entry = DicomMetaDictionary.dictionary[punctuatedTag];\n var name = tag;\n if (entry) {\n name = entry.name;\n }\n namedDataset[name] = data;\n });\n return namedDataset;\n }\n\n /** converts from DICOM JSON Model dataset to a natural dataset\n * - sequences become lists\n * - single element lists are replaced by their first element,\n * with single element lists remaining lists, but being a\n * proxy for the child values, see addAccessors for examples\n * - object member names are dictionary, not group/element tag\n */\n static naturalizeDataset(dataset) {\n const naturalDataset = ValueRepresentation.addTagAccessors({\n _vrMap: {}\n });\n\n Object.keys(dataset).forEach(tag => {\n const data = dataset[tag];\n const punctuatedTag = DicomMetaDictionary.punctuateTag(tag);\n const entry = DicomMetaDictionary.dictionary[punctuatedTag];\n let naturalName = tag;\n\n if (entry) {\n naturalName = entry.name;\n\n if (entry.vr == \"ox\") {\n // when the vr is data-dependent, keep track of the original type\n naturalDataset._vrMap[naturalName] = data.vr;\n }\n }\n\n if (data.Value === undefined) {\n // In the case of type 2, add this tag but explictly set it null to indicate its empty.\n naturalDataset[naturalName] = null;\n\n if (data.InlineBinary) {\n naturalDataset[naturalName] = {\n InlineBinary: data.InlineBinary\n };\n } else if (data.BulkDataURI) {\n naturalDataset[naturalName] = {\n BulkDataURI: data.BulkDataURI\n };\n }\n } else {\n if (data.vr === \"SQ\") {\n // convert sequence to list of values\n const naturalValues = [];\n\n Object.keys(data.Value).forEach(index => {\n naturalValues.push(\n DicomMetaDictionary.naturalizeDataset(\n data.Value[index]\n )\n );\n });\n\n naturalDataset[naturalName] = naturalValues;\n } else {\n naturalDataset[naturalName] = data.Value;\n }\n\n if (naturalDataset[naturalName].length === 1) {\n const sqZero = naturalDataset[naturalName][0];\n if (\n sqZero &&\n typeof sqZero === \"object\" &&\n !sqZero.length\n ) {\n naturalDataset[naturalName] = addAccessors(\n naturalDataset[naturalName],\n sqZero\n );\n } else {\n naturalDataset[naturalName] = sqZero;\n }\n }\n }\n });\n\n return naturalDataset;\n }\n\n static denaturalizeValue(naturalValue) {\n let value = naturalValue;\n if (!Array.isArray(value)) {\n value = [value];\n } else {\n const thereIsUndefinedValues = naturalValue.some(\n item => item === undefined\n );\n if (thereIsUndefinedValues) {\n throw new Error(\n \"There are undefined values at the array naturalValue in DicomMetaDictionary.denaturalizeValue\"\n );\n }\n }\n\n value = value.map(entry =>\n entry.constructor.name == \"Number\" ? String(entry) : entry\n );\n\n return value;\n }\n\n // keep the static function to support previous calls to the class\n static denaturalizeDataset(dataset, nameMap = DicomMetaDictionary.nameMap) {\n var unnaturalDataset = {};\n Object.keys(dataset).forEach(naturalName => {\n // check if it's a sequence\n var name = naturalName;\n var entry = nameMap[name];\n if (entry) {\n let dataValue = dataset[naturalName];\n\n if (dataValue === undefined) {\n // handle the case where it was deleted from the object but is in keys\n return;\n }\n // process this one entry\n var dataItem = ValueRepresentation.addTagAccessors({\n vr: entry.vr\n });\n dataItem.Value = dataset[naturalName];\n\n if (dataValue !== null) {\n if (entry.vr == \"ox\") {\n if (dataset._vrMap && dataset._vrMap[naturalName]) {\n dataItem.vr = dataset._vrMap[naturalName];\n } else {\n log.error(\n \"No value representation given for\",\n naturalName\n );\n }\n }\n\n let vr = ValueRepresentation.createByTypeString(\n dataItem.vr\n );\n\n dataItem.Value = DicomMetaDictionary.denaturalizeValue(\n dataItem.Value\n );\n\n if (entry.vr == \"SQ\") {\n var unnaturalValues = [];\n for (\n let datasetIndex = 0;\n datasetIndex < dataItem.Value.length;\n datasetIndex++\n ) {\n const nestedDataset = dataItem.Value[datasetIndex];\n unnaturalValues.push(\n DicomMetaDictionary.denaturalizeDataset(\n nestedDataset,\n nameMap\n )\n );\n }\n dataItem.Value = unnaturalValues;\n }\n\n if (!vr.isBinary() && vr.maxLength) {\n dataItem.Value = dataItem.Value.map(value => {\n if (value.length > vr.maxLength) {\n log.warn(\n `Truncating value ${value} of ${naturalName} because it is longer than ${vr.maxLength}`\n );\n return value.slice(0, vr.maxLength);\n } else {\n return value;\n }\n });\n }\n }\n\n var tag = DicomMetaDictionary.unpunctuateTag(entry.tag);\n unnaturalDataset[tag] = dataItem;\n } else {\n const validMetaNames = [\"_vrMap\", \"_meta\"];\n if (validMetaNames.indexOf(name) == -1) {\n log.warn(\n \"Unknown name in dataset\",\n name,\n \":\",\n dataset[name]\n );\n }\n }\n });\n return unnaturalDataset;\n }\n\n static uid() {\n let uid = \"2.25.\" + Math.floor(1 + Math.random() * 9);\n for (let index = 0; index < 38; index++) {\n uid = uid + Math.floor(Math.random() * 10);\n }\n return uid;\n }\n\n // date and time in UTC\n static date() {\n let now = new Date();\n return now.toISOString().replace(/-/g, \"\").slice(0, 8);\n }\n\n static time() {\n let now = new Date();\n return now.toISOString().replace(/:/g, \"\").slice(11, 17);\n }\n\n static dateTime() {\n // \"2017-07-07T16:09:18.079Z\" -> \"20170707160918.079\"\n let now = new Date();\n return now.toISOString().replace(/[:\\-TZ]/g, \"\");\n }\n\n static _generateNameMap() {\n DicomMetaDictionary.nameMap = {};\n Object.keys(DicomMetaDictionary.dictionary).forEach(tag => {\n var dict = DicomMetaDictionary.dictionary[tag];\n if (dict.version != \"PrivateTag\") {\n DicomMetaDictionary.nameMap[dict.name] = dict;\n }\n });\n }\n\n static _generateCustomNameMap(dictionary) {\n const nameMap = {};\n Object.keys(dictionary).forEach(tag => {\n var dict = dictionary[tag];\n if (dict.version != \"PrivateTag\") {\n nameMap[dict.name] = dict;\n }\n });\n return nameMap;\n }\n\n static _generateUIDMap() {\n DicomMetaDictionary.sopClassUIDsByName = {};\n Object.keys(DicomMetaDictionary.sopClassNamesByUID).forEach(uid => {\n var name = DicomMetaDictionary.sopClassNamesByUID[uid];\n DicomMetaDictionary.sopClassUIDsByName[name] = uid;\n });\n }\n\n // denaturalizes dataset using custom dictionary and nameMap\n denaturalizeDataset(dataset) {\n return DicomMetaDictionary.denaturalizeDataset(\n dataset,\n this.customNameMap\n );\n }\n}\n\n// Subset of those listed at:\n// http://dicom.nema.org/medical/dicom/current/output/html/part04.html#sect_B.5\nDicomMetaDictionary.sopClassNamesByUID = {\n \"1.2.840.10008.5.1.4.1.1.2\": \"CTImage\",\n \"1.2.840.10008.5.1.4.1.1.2.1\": \"EnhancedCTImage\",\n \"1.2.840.10008.5.1.4.1.1.2.2\": \"LegacyConvertedEnhancedCTImage\",\n \"1.2.840.10008.5.1.4.1.1.3.1\": \"USMultiframeImage\",\n \"1.2.840.10008.5.1.4.1.1.4\": \"MRImage\",\n \"1.2.840.10008.5.1.4.1.1.4.1\": \"EnhancedMRImage\",\n \"1.2.840.10008.5.1.4.1.1.4.2\": \"MRSpectroscopy\",\n \"1.2.840.10008.5.1.4.1.1.4.3\": \"EnhancedMRColorImage\",\n \"1.2.840.10008.5.1.4.1.1.4.4\": \"LegacyConvertedEnhancedMRImage\",\n \"1.2.840.10008.5.1.4.1.1.6.1\": \"USImage\",\n \"1.2.840.10008.5.1.4.1.1.6.2\": \"EnhancedUSVolume\",\n \"1.2.840.10008.5.1.4.1.1.7\": \"SecondaryCaptureImage\",\n \"1.2.840.10008.5.1.4.1.1.30\": \"ParametricMapStorage\",\n \"1.2.840.10008.5.1.4.1.1.66\": \"RawData\",\n \"1.2.840.10008.5.1.4.1.1.66.1\": \"SpatialRegistration\",\n \"1.2.840.10008.5.1.4.1.1.66.2\": \"SpatialFiducials\",\n \"1.2.840.10008.5.1.4.1.1.66.3\": \"DeformableSpatialRegistration\",\n \"1.2.840.10008.5.1.4.1.1.66.4\": \"Segmentation\",\n \"1.2.840.10008.5.1.4.1.1.67\": \"RealWorldValueMapping\",\n \"1.2.840.10008.5.1.4.1.1.88.11\": \"BasicTextSR\",\n \"1.2.840.10008.5.1.4.1.1.88.22\": \"EnhancedSR\",\n \"1.2.840.10008.5.1.4.1.1.88.33\": \"ComprehensiveSR\",\n \"1.2.840.10008.5.1.4.1.1.128\": \"PETImage\",\n \"1.2.840.10008.5.1.4.1.1.130\": \"EnhancedPETImage\",\n \"1.2.840.10008.5.1.4.1.1.128.1\": \"LegacyConvertedEnhancedPETImage\"\n};\n\nDicomMetaDictionary.dictionary = dictionary;\n\nDicomMetaDictionary._generateNameMap();\nDicomMetaDictionary._generateUIDMap();\n\nexport { DicomMetaDictionary };\n","import { DeflatedReadBufferStream, ReadBufferStream } from \"./BufferStream.js\";\nimport {\n DEFLATED_EXPLICIT_LITTLE_ENDIAN,\n EXPLICIT_BIG_ENDIAN,\n EXPLICIT_LITTLE_ENDIAN,\n IMPLICIT_LITTLE_ENDIAN,\n VM_DELIMITER\n} from \"./constants/dicom.js\";\nimport { DicomDict } from \"./DicomDict.js\";\nimport { DicomMetaDictionary } from \"./DicomMetaDictionary.js\";\nimport { Tag } from \"./Tag.js\";\nimport { log } from \"./log.js\";\nimport { ValueRepresentation } from \"./ValueRepresentation.js\";\n\nconst singleVRs = [\"SQ\", \"OF\", \"OW\", \"OB\", \"UN\", \"LT\"];\n\nconst encodingMapping = {\n \"\": \"iso-8859-1\",\n \"iso-ir-6\": \"iso-8859-1\",\n \"iso-ir-13\": \"shift-jis\",\n \"iso-ir-100\": \"latin1\",\n \"iso-ir-101\": \"iso-8859-2\",\n \"iso-ir-109\": \"iso-8859-3\",\n \"iso-ir-110\": \"iso-8859-4\",\n \"iso-ir-126\": \"iso-ir-126\",\n \"iso-ir-127\": \"iso-ir-127\",\n \"iso-ir-138\": \"iso-ir-138\",\n \"iso-ir-144\": \"iso-ir-144\",\n \"iso-ir-148\": \"iso-ir-148\",\n \"iso-ir-166\": \"tis-620\",\n \"iso-2022-ir-6\": \"iso-8859-1\",\n \"iso-2022-ir-13\": \"shift-jis\",\n \"iso-2022-ir-87\": \"iso-2022-jp\",\n \"iso-2022-ir-100\": \"latin1\",\n \"iso-2022-ir-101\": \"iso-8859-2\",\n \"iso-2022-ir-109\": \"iso-8859-3\",\n \"iso-2022-ir-110\": \"iso-8859-4\",\n \"iso-2022-ir-126\": \"iso-ir-126\",\n \"iso-2022-ir-127\": \"iso-ir-127\",\n \"iso-2022-ir-138\": \"iso-ir-138\",\n \"iso-2022-ir-144\": \"iso-ir-144\",\n \"iso-2022-ir-148\": \"iso-ir-148\",\n \"iso-2022-ir-149\": \"euc-kr\",\n \"iso-2022-ir-159\": \"iso-2022-jp\",\n \"iso-2022-ir-166\": \"tis-620\",\n \"iso-2022-ir-58\": \"iso-ir-58\",\n \"iso-ir-192\": \"utf-8\",\n gb18030: \"gb18030\",\n \"iso-2022-gbk\": \"gbk\",\n \"iso-2022-58\": \"gb2312\",\n gbk: \"gbk\"\n};\n\nconst encapsulatedSyntaxes = [\n \"1.2.840.10008.1.2.4.50\",\n \"1.2.840.10008.1.2.4.51\",\n \"1.2.840.10008.1.2.4.57\",\n \"1.2.840.10008.1.2.4.70\",\n \"1.2.840.10008.1.2.4.80\",\n \"1.2.840.10008.1.2.4.81\",\n \"1.2.840.10008.1.2.4.90\",\n \"1.2.840.10008.1.2.4.91\",\n \"1.2.840.10008.1.2.4.92\",\n \"1.2.840.10008.1.2.4.93\",\n \"1.2.840.10008.1.2.4.94\",\n \"1.2.840.10008.1.2.4.95\",\n \"1.2.840.10008.1.2.5\",\n \"1.2.840.10008.1.2.6.1\",\n \"1.2.840.10008.1.2.4.100\",\n \"1.2.840.10008.1.2.4.102\",\n \"1.2.840.10008.1.2.4.103\",\n \"1.2.840.10008.1.2.4.201\",\n \"1.2.840.10008.1.2.4.202\",\n \"1.2.840.10008.1.2.4.203\"\n];\n\nclass DicomMessage {\n static read(\n bufferStream,\n syntax,\n ignoreErrors,\n untilTag = null,\n includeUntilTagValue = false\n ) {\n log.warn(\"DicomMessage.read to be deprecated after dcmjs 0.24.x\");\n return this._read(bufferStream, syntax, {\n ignoreErrors: ignoreErrors,\n untilTag: untilTag,\n includeUntilTagValue: includeUntilTagValue\n });\n }\n\n static readTag(\n bufferStream,\n syntax,\n untilTag = null,\n includeUntilTagValue = false\n ) {\n log.warn(\"DicomMessage.readTag to be deprecated after dcmjs 0.24.x\");\n return this._readTag(bufferStream, syntax, {\n untilTag: untilTag,\n includeUntilTagValue: includeUntilTagValue\n });\n }\n\n static _read(\n bufferStream,\n syntax,\n options = {\n ignoreErrors: false,\n untilTag: null,\n includeUntilTagValue: false\n }\n ) {\n const { ignoreErrors, untilTag } = options;\n var dict = {};\n try {\n while (!bufferStream.end()) {\n const readInfo = DicomMessage._readTag(\n bufferStream,\n syntax,\n options\n );\n const cleanTagString = readInfo.tag.toCleanString();\n if (cleanTagString === \"00080005\") {\n if (readInfo.values.length > 0) {\n let coding = readInfo.values[0];\n coding = coding.replace(/[_ ]/g, \"-\").toLowerCase();\n if (coding in encodingMapping) {\n coding = encodingMapping[coding];\n bufferStream.setDecoder(new TextDecoder(coding));\n } else if (ignoreErrors) {\n log.warn(\n `Unsupported character set: ${coding}, using default character set`\n );\n } else {\n throw Error(`Unsupported character set: ${coding}`);\n }\n }\n if (readInfo.values.length > 1) {\n if (ignoreErrors) {\n log.warn(\n \"Using multiple character sets is not supported, proceeding with just the first character set\",\n readInfo.values\n );\n } else {\n throw Error(\n `Using multiple character sets is not supported: ${readInfo.values}`\n );\n }\n }\n readInfo.values = [\"ISO_IR 192\"]; // change SpecificCharacterSet to UTF-8\n }\n\n dict[cleanTagString] = ValueRepresentation.addTagAccessors({\n vr: readInfo.vr.type\n });\n dict[cleanTagString].Value = readInfo.values;\n\n if (untilTag && untilTag === cleanTagString) {\n break;\n }\n }\n return dict;\n } catch (err) {\n if (ignoreErrors) {\n log.warn(\"WARN:\", err);\n return dict;\n }\n throw err;\n }\n }\n\n static _normalizeSyntax(syntax) {\n if (\n syntax == IMPLICIT_LITTLE_ENDIAN ||\n syntax == EXPLICIT_LITTLE_ENDIAN ||\n syntax == EXPLICIT_BIG_ENDIAN\n ) {\n return syntax;\n } else {\n return EXPLICIT_LITTLE_ENDIAN;\n }\n }\n\n static isEncapsulated(syntax) {\n return encapsulatedSyntaxes.indexOf(syntax) != -1;\n }\n\n static readFile(\n buffer,\n options = {\n ignoreErrors: false,\n untilTag: null,\n includeUntilTagValue: false,\n noCopy: false\n }\n ) {\n var stream = new ReadBufferStream(buffer, null, {\n noCopy: options.noCopy\n }),\n useSyntax = EXPLICIT_LITTLE_ENDIAN;\n stream.reset();\n stream.increment(128);\n if (stream.readAsciiString(4) !== \"DICM\") {\n throw new Error(\"Invalid DICOM file, expected header is missing\");\n }\n\n var el = DicomMessage._readTag(stream, useSyntax);\n if (el.tag.toCleanString() !== \"00020000\") {\n throw new Error(\n \"Invalid DICOM file, meta length tag is malformed or not present.\"\n );\n }\n\n var metaLength = el.values[0];\n\n //read header buffer\n var metaStream = stream.more(metaLength);\n var metaHeader = DicomMessage._read(metaStream, useSyntax, options);\n\n //get the syntax\n var mainSyntax = metaHeader[\"00020010\"].Value[0];\n\n //in case of deflated dataset, decompress and continue\n if (mainSyntax === DEFLATED_EXPLICIT_LITTLE_ENDIAN) {\n stream = new DeflatedReadBufferStream(stream, {\n noCopy: options.noCopy\n });\n }\n\n mainSyntax = DicomMessage._normalizeSyntax(mainSyntax);\n var objects = DicomMessage._read(stream, mainSyntax, options);\n\n var dicomDict = new DicomDict(metaHeader);\n dicomDict.dict = objects;\n\n return dicomDict;\n }\n\n static writeTagObject(stream, tagString, vr, values, syntax, writeOptions) {\n var tag = Tag.fromString(tagString);\n\n tag.write(stream, vr, values, syntax, writeOptions);\n }\n\n static write(jsonObjects, useStream, syntax, writeOptions) {\n var written = 0;\n\n var sortedTags = Object.keys(jsonObjects).sort();\n sortedTags.forEach(function (tagString) {\n var tag = Tag.fromString(tagString),\n tagObject = jsonObjects[tagString],\n vrType = tagObject.vr,\n values = tagObject.Value;\n\n written += tag.write(\n useStream,\n vrType,\n values,\n syntax,\n writeOptions\n );\n });\n\n return written;\n }\n\n static _readTag(\n stream,\n syntax,\n options = {\n untilTag: null,\n includeUntilTagValue: false\n }\n ) {\n const { untilTag, includeUntilTagValue } = options;\n var implicit = syntax == IMPLICIT_LITTLE_ENDIAN ? true : false,\n isLittleEndian =\n syntax == IMPLICIT_LITTLE_ENDIAN ||\n syntax == EXPLICIT_LITTLE_ENDIAN\n ? true\n : false;\n\n var oldEndian = stream.isLittleEndian;\n stream.setEndian(isLittleEndian);\n var tag = Tag.readTag(stream);\n\n if (untilTag === tag.toCleanString() && untilTag !== null) {\n if (!includeUntilTagValue) {\n return { tag: tag, vr: 0, values: 0 };\n }\n }\n\n var length = null,\n vr = null,\n vrType;\n\n if (implicit) {\n length = stream.readUint32();\n var elementData = DicomMessage.lookupTag(tag);\n if (elementData) {\n vrType = elementData.vr;\n } else {\n //unknown tag\n if (length == 0xffffffff) {\n vrType = \"SQ\";\n } else if (tag.isPixelDataTag()) {\n vrType = \"OW\";\n } else if (vrType == \"xs\") {\n vrType = \"US\";\n } else if (tag.isPrivateCreator()) {\n vrType = \"LO\";\n } else {\n vrType = \"UN\";\n }\n }\n vr = ValueRepresentation.createByTypeString(vrType);\n } else {\n vrType = stream.readVR();\n\n if (\n vrType === \"UN\" &&\n DicomMessage.lookupTag(tag) &&\n DicomMessage.lookupTag(tag).vr\n ) {\n vrType = DicomMessage.lookupTag(tag).vr;\n\n vr = ValueRepresentation.parseUnknownVr(vrType);\n } else {\n vr = ValueRepresentation.createByTypeString(vrType);\n }\n\n if (vr.isExplicit()) {\n stream.increment(2);\n length = stream.readUint32();\n } else {\n length = stream.readUint16();\n }\n }\n\n var values = [];\n if (vr.isBinary() && length > vr.maxLength && !vr.noMultiple) {\n var times = length / vr.maxLength,\n i = 0;\n while (i++ < times) {\n values.push(vr.read(stream, vr.maxLength, syntax));\n }\n } else {\n var val = vr.read(stream, length, syntax);\n if (!vr.isBinary() && singleVRs.indexOf(vr.type) == -1) {\n values = val;\n if (typeof val === \"string\") {\n values = val.split(String.fromCharCode(VM_DELIMITER));\n }\n } else if (vr.type == \"SQ\") {\n values = val;\n } else if (vr.type == \"OW\" || vr.type == \"OB\") {\n values = val;\n } else {\n Array.isArray(val) ? (values = val) : values.push(val);\n }\n }\n stream.setEndian(oldEndian);\n\n const retObj = ValueRepresentation.addTagAccessors({\n tag: tag,\n vr: vr\n });\n retObj.values = values;\n return retObj;\n }\n\n static lookupTag(tag) {\n return DicomMetaDictionary.dictionary[tag.toString()];\n }\n}\n\nexport { DicomMessage };\n","import { WriteBufferStream } from \"./BufferStream\";\nimport { DicomMessage } from \"./DicomMessage\";\nimport { ValueRepresentation } from \"./ValueRepresentation\";\n\nconst EXPLICIT_LITTLE_ENDIAN = \"1.2.840.10008.1.2.1\";\n\nclass DicomDict {\n constructor(meta) {\n this.meta = meta;\n this.dict = {};\n }\n\n upsertTag(tag, vr, values) {\n if (this.dict[tag]) {\n // Should already have tag accessors.\n this.dict[tag].Value = values;\n } else {\n this.dict[tag] = ValueRepresentation.addTagAccessors({ vr: vr });\n this.dict[tag].Value = values;\n }\n }\n\n write(writeOptions = { allowInvalidVRLength: false }) {\n var metaSyntax = EXPLICIT_LITTLE_ENDIAN;\n var fileStream = new WriteBufferStream(4096, true);\n fileStream.writeUint8Repeat(0, 128);\n fileStream.writeAsciiString(\"DICM\");\n\n var metaStream = new WriteBufferStream(1024);\n if (!this.meta[\"00020010\"]) {\n this.meta[\"00020010\"] = {\n vr: \"UI\",\n Value: [EXPLICIT_LITTLE_ENDIAN]\n };\n }\n DicomMessage.write(this.meta, metaStream, metaSyntax, writeOptions);\n DicomMessage.writeTagObject(\n fileStream,\n \"00020000\",\n \"UL\",\n metaStream.size,\n metaSyntax,\n writeOptions\n );\n fileStream.concat(metaStream);\n\n var useSyntax = this.meta[\"00020010\"].Value[0];\n DicomMessage.write(this.dict, fileStream, useSyntax, writeOptions);\n return fileStream.getBuffer();\n }\n}\n\nexport { DicomDict };\n","import log from \"./log.js\";\n\nclass DICOMWEB {\n /*\n JavaScript DICOMweb REST API for browser use.\n\n Design:\n * map rest api to high-level code with modern conventions\n ** ES6: classes, arrow functions, let...\n ** promises\n ** json converted to objects\n\n examples: see tests() method below.\n\n */\n\n constructor(options = {}) {\n this.rootURL = options.rootURL;\n this.progressCallback = options.progressCallback;\n }\n\n static responseType(endpoint) {\n const types = {\n wado: \"arraybuffer\"\n };\n return types[endpoint] ? types[endpoint] : \"json\";\n }\n\n // which URL service to use for each of the high level services\n static endpointService(endpoint) {\n const services = {\n wado: \"\"\n };\n return Object.keys(services).indexOf(endpoint) != -1\n ? services[endpoint]\n : \"rs/\";\n }\n\n static randomEntry(array) {\n return array[Math.floor(Math.random() * array.length)];\n }\n\n request(endpoint, parameters = {}, payload) {\n let responseType = DICOMWEB.responseType(endpoint);\n let service = DICOMWEB.endpointService(endpoint);\n let url = this.rootURL + \"/\" + service + endpoint;\n let firstParameter = true;\n Object.keys(parameters).forEach(parameter => {\n if (firstParameter) {\n url += \"?\";\n firstParameter = false;\n } else {\n url += \"&\";\n }\n url += parameter + \"=\" + encodeURIComponent(parameters[parameter]);\n });\n function promiseHandler(resolve, reject) {\n let request = new XMLHttpRequest();\n request.open(\"GET\", url);\n request.responseType = responseType;\n request.onload = () => {\n resolve(request.response);\n };\n request.onprogress = this.progressCallback;\n request.onerror = error => {\n log.error(request.response);\n reject(error);\n };\n request.send(payload);\n }\n let promise = new Promise(promiseHandler.bind(this));\n return promise;\n }\n\n patients() {\n return this.request(\"patients\");\n }\n\n studies(patientID) {\n return this.request(\"studies\", { PatientID: patientID });\n }\n\n series(studyInstanceUID) {\n return this.request(\"series\", { StudyInstanceUID: studyInstanceUID });\n }\n\n instances(studyInstanceUID, seriesInstanceUID) {\n return this.request(\"instances\", {\n StudyInstanceUID: studyInstanceUID,\n SeriesInstanceUID: seriesInstanceUID\n });\n }\n\n instance(studyInstanceUID, seriesInstanceUID, sopInstanceUID) {\n return this.request(\"wado\", {\n requestType: \"WADO\",\n studyUID: studyInstanceUID,\n seriesUID: seriesInstanceUID,\n objectUID: sopInstanceUID,\n contentType: \"application/dicom\"\n });\n }\n\n tests() {\n let testingServerURL =\n \"http://quantome.org:4242/dcm4chee-arc/aets/DCM4CHEE\";\n let testOptions = { rootURL: testingServerURL };\n\n new DICOMWEB(testOptions).patients().then(responses => {\n responses.forEach(patient => {\n log.log(patient);\n });\n });\n }\n}\n\nexport { DICOMWEB };\n","//\n// Handle DICOM and CIELAB colors\n// based on:\n// https://github.com/michaelonken/dcmtk/blob/3c68f0e882e22e6d9e2a42f836332c0ca21b3e7f/dcmiod/libsrc/cielabutil.cc\n//\n// RGB here refers to sRGB 0-1 per component.\n// dicomlab is CIELAB values as defined in the dicom standard\n// XYZ is CIEXYZ convention\n//\n// TODO: needs a test suite\n// TODO: only dicomlab2RGB tested on real data\n//\n//\n\nclass Colors {\n static d65WhitePointXYZ() {\n // white points of D65 light point (CIELAB standard white point)\n return [0.950456, 1.0, 1.088754];\n }\n\n static dicomlab2RGB(dicomlab) {\n return Colors.lab2RGB(Colors.dicomlab2LAB(dicomlab));\n }\n\n static rgb2DICOMLAB(rgb) {\n return Colors.lab2DICOMLAB(Colors.rgb2LAB(rgb));\n }\n\n static dicomlab2LAB(dicomlab) {\n return [\n (dicomlab[0] * 100.0) / 65535.0, // results in 0 <= L <= 100\n (dicomlab[1] * 255.0) / 65535.0 - 128, // results in -128 <= a <= 127\n (dicomlab[2] * 255.0) / 65535.0 - 128 // results in -128 <= b <= 127\n ];\n }\n\n static lab2DICOMLAB(lab) {\n return [\n (lab[0] * 65535.0) / 100.0, // results in 0 <= L <= 65535\n ((lab[1] + 128) * 65535.0) / 255.0, // results in 0 <= a <= 65535\n ((lab[2] + 128) * 65535.0) / 255.0 // results in 0 <= b <= 65535\n ];\n }\n\n static rgb2LAB(rgb) {\n return Colors.xyz2LAB(Colors.rgb2XYZ(rgb));\n }\n\n static gammaCorrection(n) {\n if (n <= 0.0031306684425005883) {\n return 12.92 * n;\n } else {\n return 1.055 * Math.pow(n, 0.416666666666666667) - 0.055;\n }\n }\n\n static invGammaCorrection(n) {\n if (n <= 0.0404482362771076) {\n return n / 12.92;\n } else {\n return Math.pow((n + 0.055) / 1.055, 2.4);\n }\n }\n\n static rgb2XYZ(rgb) {\n let R = Colors.invGammaCorrection(rgb[0]);\n let G = Colors.invGammaCorrection(rgb[1]);\n let B = Colors.invGammaCorrection(rgb[2]);\n return [\n 0.4123955889674142161 * R +\n 0.3575834307637148171 * G +\n 0.1804926473817015735 * B,\n 0.2125862307855955516 * R +\n 0.7151703037034108499 * G +\n 0.07220049864333622685 * B,\n 0.01929721549174694484 * R +\n 0.1191838645808485318 * G +\n 0.950497125131579766 * B\n ];\n }\n\n static xyz2LAB(xyz) {\n let whitePoint = Colors.d65WhitePointXYZ();\n let X = xyz[0] / whitePoint[0];\n let Y = xyz[1] / whitePoint[1];\n let Z = xyz[2] / whitePoint[2];\n X = Colors.labf(X);\n Y = Colors.labf(Y);\n Z = Colors.labf(Z);\n return [116 * Y - 16, 500 * (X - Y), 200 * (Y - Z)];\n }\n\n static lab2RGB(lab) {\n return Colors.xyz2RGB(Colors.lab2XYZ(lab));\n }\n\n static lab2XYZ(lab) {\n let L = (lab[0] + 16) / 116;\n let a = L + lab[1] / 500;\n let b = L - lab[2] / 200;\n let whitePoint = Colors.d65WhitePointXYZ();\n return [\n whitePoint[0] * Colors.labfInv(a),\n whitePoint[1] * Colors.labfInv(L),\n whitePoint[2] * Colors.labfInv(b)\n ];\n }\n\n static xyz2RGB(xyz) {\n let R1 = 3.2406 * xyz[0] - 1.5372 * xyz[1] - 0.4986 * xyz[2];\n let G1 = -0.9689 * xyz[0] + 1.8758 * xyz[1] + 0.0415 * xyz[2];\n let B1 = 0.0557 * xyz[0] - 0.204 * xyz[1] + 1.057 * xyz[2];\n\n /* Force nonnegative values so that gamma correction is well-defined. */\n let minimumComponent = Math.min(R1, G1);\n minimumComponent = Math.min(minimumComponent, B1);\n if (minimumComponent < 0) {\n R1 -= minimumComponent;\n G1 -= minimumComponent;\n B1 -= minimumComponent;\n }\n\n /* Transform from RGB to R'G'B' */\n return [\n Colors.gammaCorrection(R1),\n Colors.gammaCorrection(G1),\n Colors.gammaCorrection(B1)\n ];\n }\n\n static labf(n) {\n if (n >= 8.85645167903563082e-3) {\n return Math.pow(n, 0.333333333333333);\n } else {\n return (841.0 / 108.0) * n + 4.0 / 29.0;\n }\n }\n\n static labfInv(n) {\n if (n >= 0.206896551724137931) {\n return n * n * n;\n } else {\n return (108.0 / 841.0) * (n - 4.0 / 29.0);\n }\n }\n}\n\nexport { Colors };\nexport default Colors;\n","import { DicomMetaDictionary } from \"./DicomMetaDictionary.js\";\nimport { DicomDict } from \"./DicomDict.js\";\n\nfunction datasetToDict(dataset) {\n const fileMetaInformationVersionArray = new Uint8Array(2);\n fileMetaInformationVersionArray[1] = 1;\n\n const TransferSyntaxUID =\n dataset._meta.TransferSyntaxUID &&\n dataset._meta.TransferSyntaxUID.Value &&\n dataset._meta.TransferSyntaxUID.Value[0]\n ? dataset._meta.TransferSyntaxUID.Value[0]\n : \"1.2.840.10008.1.2.1\";\n\n dataset._meta = {\n MediaStorageSOPClassUID: dataset.SOPClassUID,\n MediaStorageSOPInstanceUID: dataset.SOPInstanceUID,\n ImplementationVersionName: \"dcmjs-0.0\",\n TransferSyntaxUID,\n ImplementationClassUID:\n \"2.25.80302813137786398554742050926734630921603366648225212145404\",\n FileMetaInformationVersion: fileMetaInformationVersionArray.buffer\n };\n\n const denaturalized = DicomMetaDictionary.denaturalizeDataset(\n dataset._meta\n );\n const dicomDict = new DicomDict(denaturalized);\n dicomDict.dict = DicomMetaDictionary.denaturalizeDataset(dataset);\n return dicomDict;\n}\n\nfunction datasetToBuffer(dataset) {\n return Buffer.from(datasetToDict(dataset).write());\n}\n\nfunction datasetToBlob(dataset) {\n const buffer = datasetToBuffer(dataset);\n return new Blob([buffer], { type: \"application/dicom\" });\n}\n\nexport { datasetToBlob, datasetToBuffer, datasetToDict };\n","import { DicomMetaDictionary } from \"../DicomMetaDictionary.js\";\n\nexport default class DerivedDataset {\n constructor(datasets, options = {}) {\n this.options = JSON.parse(JSON.stringify(options));\n let o = this.options;\n\n o.Manufacturer = options.Manufacturer || \"Unspecified\";\n o.ManufacturerModelName =\n options.ManufacturerModelName || \"Unspecified\";\n o.SeriesDescription =\n options.SeriesDescription || \"Research Derived series\";\n o.SeriesNumber = options.SeriesNumber || \"99\";\n o.SoftwareVersions = options.SoftwareVersions || \"0\";\n o.DeviceSerialNumber = options.DeviceSerialNumber || \"1\";\n\n let date = DicomMetaDictionary.date();\n let time = DicomMetaDictionary.time();\n\n o.SeriesDate = options.SeriesDate || date;\n o.SeriesTime = options.SeriesTime || time;\n o.ContentDate = options.ContentDate || date;\n o.ContentTime = options.ContentTime || time;\n\n o.SOPInstanceUID = options.SOPInstanceUID || DicomMetaDictionary.uid();\n o.SeriesInstanceUID =\n options.SeriesInstanceUID || DicomMetaDictionary.uid();\n\n o.ClinicalTrialTimePointID = options.ClinicalTrialTimePointID || \"\";\n o.ClinicalTrialCoordinatingCenterName =\n options.ClinicalTrialCoordinatingCenterName || \"\";\n o.ClinicalTrialSeriesID = options.ClinicalTrialSeriesID || \"\";\n\n o.ImageComments = options.ImageComments || \"NOT FOR CLINICAL USE\";\n o.ContentQualification = \"RESEARCH\";\n\n this.referencedDatasets = datasets; // list of one or more dicom-like object instances\n this.referencedDataset = this.referencedDatasets[0];\n this.dataset = {\n _vrMap: this.referencedDataset._vrMap,\n _meta: this.referencedDataset._meta\n };\n\n this.derive();\n }\n\n assignToDataset(data) {\n Object.keys(data).forEach(key => (this.dataset[key] = data[key]));\n }\n\n assignFromReference(tags) {\n tags.forEach(\n tag => (this.dataset[tag] = this.referencedDataset[tag] || \"\")\n );\n }\n\n assignFromOptions(tags) {\n tags.forEach(tag => (this.dataset[tag] = this.options[tag] || \"\"));\n }\n\n derive() {\n // common for all instances in study\n this.assignFromReference([\n \"AccessionNumber\",\n \"ReferringPhysicianName\",\n \"StudyDate\",\n \"StudyID\",\n \"StudyTime\",\n \"PatientName\",\n \"PatientID\",\n \"PatientBirthDate\",\n \"PatientSex\",\n \"PatientAge\",\n \"StudyInstanceUID\",\n \"StudyID\"\n ]);\n\n this.assignFromOptions([\n \"Manufacturer\",\n \"SoftwareVersions\",\n \"DeviceSerialNumber\",\n \"ManufacturerModelName\",\n \"SeriesDescription\",\n \"SeriesNumber\",\n \"ImageComments\",\n \"SeriesDate\",\n \"SeriesTime\",\n \"ContentDate\",\n \"ContentTime\",\n \"ContentQualification\",\n \"SOPInstanceUID\",\n \"SeriesInstanceUID\"\n ]);\n }\n\n static copyDataset(dataset) {\n // copies everything but the buffers\n return JSON.parse(JSON.stringify(dataset));\n }\n}\n","import { DicomMetaDictionary } from \"../DicomMetaDictionary.js\";\nimport DerivedDataset from \"./DerivedDataset\";\n\nexport default class DerivedPixels extends DerivedDataset {\n constructor(datasets, options = {}) {\n super(datasets, options);\n let o = this.options;\n\n o.ContentLabel = options.ContentLabel || \"\";\n o.ContentDescription = options.ContentDescription || \"\";\n o.ContentCreatorName = options.ContentCreatorName || \"\";\n }\n\n // this assumes a normalized multiframe input and will create\n // a multiframe derived image\n derive() {\n super.derive();\n\n this.assignToDataset({\n ImageType: [\"DERIVED\", \"PRIMARY\"],\n LossyImageCompression: \"00\",\n InstanceNumber: \"1\"\n });\n\n this.assignFromReference([\n \"SOPClassUID\",\n \"Modality\",\n \"FrameOfReferenceUID\",\n \"PositionReferenceIndicator\",\n \"NumberOfFrames\",\n \"Rows\",\n \"Columns\",\n \"SamplesPerPixel\",\n \"PhotometricInterpretation\",\n \"BitsStored\",\n \"HighBit\"\n ]);\n\n this.assignFromOptions([\n \"ContentLabel\",\n \"ContentDescription\",\n \"ContentCreatorName\"\n ]);\n\n //\n // TODO: more carefully copy only PixelMeasures and related\n // TODO: add derivation references\n //\n if (this.referencedDataset.SharedFunctionalGroupsSequence) {\n this.dataset.SharedFunctionalGroupsSequence =\n DerivedDataset.copyDataset(\n this.referencedDataset.SharedFunctionalGroupsSequence\n );\n }\n if (this.referencedDataset.PerFrameFunctionalGroupsSequence) {\n this.dataset.PerFrameFunctionalGroupsSequence =\n DerivedDataset.copyDataset(\n this.referencedDataset.PerFrameFunctionalGroupsSequence\n );\n }\n\n // make an array of zeros for the pixels\n this.dataset.PixelData = new ArrayBuffer(\n this.referencedDataset.PixelData.byteLength\n );\n }\n}\n","import DerivedPixels from \"./DerivedPixels\";\n\nexport default class DerivedImage extends DerivedPixels {\n constructor(datasets, options = {}) {\n super(datasets, options);\n }\n\n derive() {\n super.derive();\n this.assignFromReference([\n \"WindowCenter\",\n \"WindowWidth\",\n \"BitsAllocated\",\n \"PixelRepresentation\",\n \"BodyPartExamined\",\n \"Laterality\",\n \"PatientPosition\",\n \"RescaleSlope\",\n \"RescaleIntercept\",\n \"PixelPresentation\",\n \"VolumetricProperties\",\n \"VolumeBasedCalculationTechnique\",\n \"PresentationLUTShape\"\n ]);\n }\n}\n","import log from \"./log.js\";\nimport { DicomMetaDictionary } from \"./DicomMetaDictionary.js\";\nimport { DerivedImage } from \"./derivations/index.js\";\n\nclass Normalizer {\n constructor(datasets) {\n this.datasets = datasets; // one or more dicom-like object instances\n this.dataset = undefined; // a normalized multiframe dicom object instance\n }\n\n static consistentSOPClassUIDs(datasets) {\n // return sopClassUID if all exist and match, otherwise undefined\n let sopClassUID;\n datasets.forEach(function (dataset) {\n if (!dataset.SOPClassUID) {\n return undefined;\n }\n if (!sopClassUID) {\n sopClassUID = dataset.SOPClassUID;\n }\n if (dataset.SOPClassUID !== sopClassUID) {\n log.error(\n \"inconsistent sopClassUIDs: \",\n dataset.SOPClassUID,\n sopClassUID\n );\n return undefined;\n }\n });\n return sopClassUID;\n }\n\n static normalizerForSOPClassUID(sopClassUID) {\n sopClassUID = sopClassUID.replace(/[^0-9.]/g, \"\"); // TODO: clean all VRs as part of normalizing\n let toUID = DicomMetaDictionary.sopClassUIDsByName;\n let sopClassUIDMap = {};\n sopClassUIDMap[toUID.CTImage] = CTImageNormalizer;\n sopClassUIDMap[toUID.ParametricMapStorage] = PMImageNormalizer;\n sopClassUIDMap[toUID.MRImage] = MRImageNormalizer;\n sopClassUIDMap[toUID.EnhancedCTImage] = EnhancedCTImageNormalizer;\n sopClassUIDMap[toUID.LegacyConvertedEnhancedCTImage] =\n EnhancedCTImageNormalizer;\n sopClassUIDMap[toUID.EnhancedMRImage] = EnhancedMRImageNormalizer;\n sopClassUIDMap[toUID.LegacyConvertedEnhancedMRImage] =\n EnhancedMRImageNormalizer;\n sopClassUIDMap[toUID.EnhancedUSVolume] = EnhancedUSVolumeNormalizer;\n sopClassUIDMap[toUID.PETImage] = PETImageNormalizer;\n sopClassUIDMap[toUID.EnhancedPETImage] = PETImageNormalizer;\n sopClassUIDMap[toUID.LegacyConvertedEnhancedPETImage] =\n PETImageNormalizer;\n sopClassUIDMap[toUID.Segmentation] = SEGImageNormalizer;\n sopClassUIDMap[toUID.DeformableSpatialRegistration] = DSRNormalizer;\n return sopClassUIDMap[sopClassUID];\n }\n\n static isMultiframeSOPClassUID(sopClassUID) {\n const toUID = DicomMetaDictionary.sopClassUIDsByName;\n const multiframeSOPClasses = [\n toUID.EnhancedMRImage,\n toUID.LegacyConvertedEnhancedMRImage,\n toUID.EnhancedCTImage,\n toUID.LegacyConvertedEnhancedCTImage,\n toUID.EnhancedUSVolume,\n toUID.EnhancedPETImage,\n toUID.LegacyConvertedEnhancedPETImage,\n toUID.Segmentation,\n toUID.ParametricMapStorage\n ];\n return multiframeSOPClasses.indexOf(sopClassUID) !== -1;\n }\n\n static isMultiframeDataset(ds = this.dataset) {\n const sopClassUID = ds.SOPClassUID.replace(/[^0-9.]/g, \"\"); // TODO: clean all VRs as part of normalizing\n return Normalizer.isMultiframeSOPClassUID(sopClassUID);\n }\n\n normalize() {\n return \"No normalization defined\";\n }\n\n static normalizeToDataset(datasets) {\n let sopClassUID = Normalizer.consistentSOPClassUIDs(datasets);\n let normalizerClass = Normalizer.normalizerForSOPClassUID(sopClassUID);\n\n if (!normalizerClass) {\n log.error(\"no normalizerClass for \", sopClassUID);\n return undefined;\n }\n let normalizer = new normalizerClass(datasets);\n normalizer.normalize();\n return normalizer.dataset;\n }\n}\n\nclass ImageNormalizer extends Normalizer {\n normalize() {\n this.convertToMultiframe();\n this.normalizeMultiframe();\n }\n\n static vec3CrossProduct(a, b) {\n let ax = a[0],\n ay = a[1],\n az = a[2],\n bx = b[0],\n by = b[1],\n bz = b[2];\n let out = [];\n out[0] = ay * bz - az * by;\n out[1] = az * bx - ax * bz;\n out[2] = ax * by - ay * bx;\n return out;\n }\n\n static vec3Subtract(a, b) {\n let out = [];\n out[0] = a[0] - b[0];\n out[1] = a[1] - b[1];\n out[2] = a[2] - b[2];\n return out;\n }\n\n static vec3Dot(a, b) {\n return a[0] * b[0] + a[1] * b[1] + a[2] * b[2];\n }\n\n convertToMultiframe() {\n if (\n this.datasets.length === 1 &&\n Normalizer.isMultiframeDataset(this.datasets[0])\n ) {\n // already a multiframe, so just use it\n this.dataset = this.datasets[0];\n return;\n }\n this.derivation = new DerivedImage(this.datasets);\n this.dataset = this.derivation.dataset;\n let ds = this.dataset;\n // create a new multiframe from the source datasets\n // fill in only those elements required to make a valid image\n // for volumetric processing\n let referenceDataset = this.datasets[0];\n ds.NumberOfFrames = this.datasets.length;\n\n // TODO: develop sets of elements to copy over in loops\n ds.SOPClassUID = referenceDataset.SOPClassUID;\n ds.Rows = referenceDataset.Rows;\n ds.Columns = referenceDataset.Columns;\n ds.BitsAllocated = referenceDataset.BitsAllocated;\n ds.PixelRepresentation = referenceDataset.PixelRepresentation;\n ds.RescaleSlope = referenceDataset.RescaleSlope || \"1\";\n ds.RescaleIntercept = referenceDataset.RescaleIntercept || \"0\";\n //ds.BurnedInAnnotation = referenceDataset.BurnedInAnnotation || \"YES\";\n\n // sort\n // https://github.com/pieper/Slicer3/blob/master/Base/GUI/Tcl/LoadVolume.tcl\n // TODO: add spacing checks:\n // https://github.com/Slicer/Slicer/blob/master/Modules/Scripted/DICOMPlugins/DICOMScalarVolumePlugin.py#L228-L250\n // TODO: put this information into the Shared and PerFrame functional groups\n // TODO: sorting of frames could happen in normalizeMultiframe instead, since other\n // multiframe converters may not sort the images\n // TODO: sorting can be seen as part of generation of the Dimension Multiframe Dimension Module\n // and should really be done in an acquisition-specific way (e.g. for DCE)\n let referencePosition = referenceDataset.ImagePositionPatient;\n let rowVector = referenceDataset.ImageOrientationPatient.slice(0, 3);\n let columnVector = referenceDataset.ImageOrientationPatient.slice(3, 6);\n let scanAxis = ImageNormalizer.vec3CrossProduct(\n rowVector,\n columnVector\n );\n let distanceDatasetPairs = [];\n this.datasets.forEach(function (dataset) {\n let position = dataset.ImagePositionPatient.slice();\n let positionVector = ImageNormalizer.vec3Subtract(\n position,\n referencePosition\n );\n let distance = ImageNormalizer.vec3Dot(positionVector, scanAxis);\n distanceDatasetPairs.push([distance, dataset]);\n });\n distanceDatasetPairs.sort(function (a, b) {\n return b[0] - a[0];\n });\n\n // assign array buffers\n if (ds.BitsAllocated !== 16) {\n log.error(\n \"Only works with 16 bit data, not \" +\n String(this.dataset.BitsAllocated)\n );\n }\n if (referenceDataset._vrMap && !referenceDataset._vrMap.PixelData) {\n log.warn(\"No vr map given for pixel data, using OW\");\n ds._vrMap = { PixelData: \"OW\" };\n } else {\n ds._vrMap = { PixelData: referenceDataset._vrMap.PixelData };\n }\n let frameSize = referenceDataset.PixelData.byteLength;\n ds.PixelData = new ArrayBuffer(ds.NumberOfFrames * frameSize);\n let frame = 0;\n distanceDatasetPairs.forEach(function (pair) {\n let dataset = pair[1];\n let pixels = new Uint16Array(dataset.PixelData);\n let frameView = new Uint16Array(\n ds.PixelData,\n frame * frameSize,\n frameSize / 2\n );\n try {\n frameView.set(pixels);\n } catch (e) {\n if (e instanceof RangeError) {\n const message =\n \"Error inserting pixels in PixelData\\n\" +\n `frameSize ${frameSize}\\n` +\n `NumberOfFrames ${ds.NumberOfFrames}\\n` +\n `pair ${pair}\\n` +\n `dataset PixelData size ${dataset.PixelData.length}`;\n log.error(message);\n }\n }\n frame++;\n });\n\n if (ds.NumberOfFrames < 2) {\n // TODO\n log.error(\n \"Cannot populate shared groups uniquely without multiple frames\"\n );\n }\n let [distance0, dataset0] = distanceDatasetPairs[0];\n let distance1 = distanceDatasetPairs[1][0];\n\n //\n // make the functional groups\n //\n // shared\n const SpacingBetweenSlices = Math.abs(distance1 - distance0);\n\n ds.SharedFunctionalGroupsSequence = {\n PlaneOrientationSequence: {\n ImageOrientationPatient: dataset0.ImageOrientationPatient\n },\n PixelMeasuresSequence: {\n PixelSpacing: dataset0.PixelSpacing,\n SpacingBetweenSlices: SpacingBetweenSlices,\n SliceThickness: SpacingBetweenSlices\n }\n };\n\n ds.ReferencedSeriesSequence = {\n SeriesInstanceUID: dataset0.SeriesInstanceUID,\n ReferencedInstanceSequence: []\n };\n\n // per-frame\n ds.PerFrameFunctionalGroupsSequence = [];\n\n // copy over each datasets window/level into the per-frame groups\n // and set the referenced series uid\n distanceDatasetPairs.forEach(function (pair) {\n const dataset = pair[1];\n\n ds.PerFrameFunctionalGroupsSequence.push({\n PlanePositionSequence: {\n ImagePositionPatient: dataset.ImagePositionPatient\n },\n FrameVOILUTSequence: {\n WindowCenter: dataset.WindowCenter,\n WindowWidth: dataset.WindowWidth\n }\n });\n\n ds.ReferencedSeriesSequence.ReferencedInstanceSequence.push({\n ReferencedSOPClassUID: dataset.SOPClassUID,\n ReferencedSOPInstanceUID: dataset.SOPInstanceUID\n });\n });\n\n let dimensionUID = DicomMetaDictionary.uid();\n this.dataset.DimensionOrganizationSequence = {\n DimensionOrganizationUID: dimensionUID\n };\n this.dataset.DimensionIndexSequence = [\n {\n DimensionOrganizationUID: dimensionUID,\n DimensionIndexPointer: 2097202,\n FunctionalGroupPointer: 2134291, // PlanePositionSequence\n DimensionDescriptionLabel: \"ImagePositionPatient\"\n }\n ];\n }\n\n normalizeMultiframe() {\n let ds = this.dataset;\n\n if (!ds.NumberOfFrames) {\n log.error(\"Missing number or frames not supported\");\n return;\n }\n\n if (!ds.PixelRepresentation) {\n // Required tag: guess signed\n ds.PixelRepresentation = 1;\n }\n\n if (!ds.StudyID || ds.StudyID === \"\") {\n // Required tag: fill in if needed\n ds.StudyID = \"No Study ID\";\n }\n\n let validLateralities = [\"R\", \"L\"];\n if (validLateralities.indexOf(ds.Laterality) === -1) {\n delete ds.Laterality;\n }\n\n if (!ds.PresentationLUTShape) {\n ds.PresentationLUTShape = \"IDENTITY\";\n }\n\n if (!ds.SharedFunctionalGroupsSequence) {\n log.error(\n \"Can only process multiframe data with SharedFunctionalGroupsSequence\"\n );\n }\n\n // TODO: special case!\n if (ds.BodyPartExamined === \"PROSTATE\") {\n ds.SharedFunctionalGroupsSequence.FrameAnatomySequence = {\n AnatomicRegionSequence: {\n CodeValue: \"T-9200B\",\n CodingSchemeDesignator: \"SRT\",\n CodeMeaning: \"Prostate\"\n },\n FrameLaterality: \"U\"\n };\n }\n\n let rescaleIntercept = ds.RescaleIntercept || 0;\n let rescaleSlope = ds.RescaleSlope || 1;\n ds.SharedFunctionalGroupsSequence.PixelValueTransformationSequence = {\n RescaleIntercept: rescaleIntercept,\n RescaleSlope: rescaleSlope,\n RescaleType: \"US\"\n };\n let frameNumber = 1;\n this.datasets.forEach(dataset => {\n if (ds.NumberOfFrames === 1)\n ds.PerFrameFunctionalGroupsSequence = [\n ds.PerFrameFunctionalGroupsSequence\n ];\n ds.PerFrameFunctionalGroupsSequence[\n frameNumber - 1\n ].FrameContentSequence = {\n FrameAcquisitionDuration: 0,\n StackID: 1,\n InStackPositionNumber: frameNumber,\n DimensionIndexValues: frameNumber\n };\n let frameTime = dataset.AcquisitionDate + dataset.AcquisitionTime;\n if (!isNaN(frameTime)) {\n let frameContentSequence =\n ds.PerFrameFunctionalGroupsSequence[frameNumber - 1]\n .FrameContentSequence;\n frameContentSequence.FrameAcquisitionDateTime = frameTime;\n frameContentSequence.FrameReferenceDateTime = frameTime;\n }\n\n frameNumber++;\n });\n\n //\n // TODO: convert this to shared functional group not top level element\n //\n if (ds.WindowCenter && ds.WindowWidth) {\n // if they exist as single values, make them lists for consistency\n if (!Array.isArray(ds.WindowCenter)) {\n ds.WindowCenter = [ds.WindowCenter];\n }\n if (!Array.isArray(ds.WindowWidth)) {\n ds.WindowWidth = [ds.WindowWidth];\n }\n }\n if (!ds.WindowCenter || !ds.WindowWidth) {\n // if they don't exist, make them empty lists and try to initialize them\n ds.WindowCenter = []; // both must exist and be the same length\n ds.WindowWidth = [];\n // provide a volume-level window/level guess (mean of per-frame)\n if (ds.PerFrameFunctionalGroupsSequence) {\n let wcww = { center: 0, width: 0, count: 0 };\n ds.PerFrameFunctionalGroupsSequence.forEach(function (\n functionalGroup\n ) {\n if (functionalGroup.FrameVOILUT) {\n let wc =\n functionalGroup.FrameVOILUTSequence.WindowCenter;\n let ww =\n functionalGroup.FrameVOILUTSequence.WindowWidth;\n if (functionalGroup.FrameVOILUTSequence && wc && ww) {\n if (Array.isArray(wc)) {\n wc = wc[0];\n }\n if (Array.isArray(ww)) {\n ww = ww[0];\n }\n wcww.center += Number(wc);\n wcww.width += Number(ww);\n wcww.count++;\n }\n }\n });\n if (wcww.count > 0) {\n ds.WindowCenter.push(String(wcww.center / wcww.count));\n ds.WindowWidth.push(String(wcww.width / wcww.count));\n }\n }\n }\n // last gasp, pick an arbitrary default\n if (ds.WindowCenter.length === 0) {\n ds.WindowCenter = [300];\n }\n if (ds.WindowWidth.length === 0) {\n ds.WindowWidth = [500];\n }\n }\n}\n\nclass MRImageNormalizer extends ImageNormalizer {\n normalize() {\n super.normalize();\n // TODO: make specialization for LegacyConverted vs normal EnhanceMRImage\n //let toUID = DicomMetaDictionary.sopClassUIDsByName;\n this.dataset.SOPClassUID = \"LegacyConvertedEnhancedMRImage\";\n //this.dataset.SOPClassUID = toUID.EnhancedMRImage;\n }\n\n normalizeMultiframe() {\n super.normalizeMultiframe();\n let ds = this.dataset;\n\n if (\n !ds.ImageType ||\n !ds.ImageType.constructor ||\n ds.ImageType.constructor.name != \"Array\" ||\n ds.ImageType.length != 4\n ) {\n ds.ImageType = [\"ORIGINAL\", \"PRIMARY\", \"OTHER\", \"NONE\"];\n }\n\n ds.SharedFunctionalGroupsSequence.MRImageFrameTypeSequence = {\n FrameType: ds.ImageType,\n PixelPresentation: \"MONOCHROME\",\n VolumetricProperties: \"VOLUME\",\n VolumeBasedCalculationTechnique: \"NONE\",\n ComplexImageComponent: \"MAGNITUDE\",\n AcquisitionContrast: \"UNKNOWN\"\n };\n }\n}\n\nclass EnhancedCTImageNormalizer extends ImageNormalizer {\n normalize() {\n super.normalize();\n }\n}\n\nclass EnhancedMRImageNormalizer extends ImageNormalizer {\n normalize() {\n super.normalize();\n }\n}\n\nclass EnhancedUSVolumeNormalizer extends ImageNormalizer {\n normalize() {\n super.normalize();\n }\n}\n\nclass CTImageNormalizer extends ImageNormalizer {\n normalize() {\n super.normalize();\n // TODO: provide option at export to swap in LegacyConverted UID\n let toUID = DicomMetaDictionary.sopClassUIDsByName;\n //this.dataset.SOPClassUID = \"LegacyConvertedEnhancedCTImage\";\n this.dataset.SOPClassUID = toUID.EnhancedCTImage;\n }\n}\n\nclass PETImageNormalizer extends ImageNormalizer {\n normalize() {\n super.normalize();\n // TODO: provide option at export to swap in LegacyConverted UID\n let toUID = DicomMetaDictionary.sopClassUIDsByName;\n //this.dataset.SOPClassUID = \"LegacyConvertedEnhancedPETImage\";\n this.dataset.SOPClassUID = toUID.EnhancedPETImage;\n }\n}\n\nclass SEGImageNormalizer extends ImageNormalizer {\n normalize() {\n super.normalize();\n }\n}\n\nclass PMImageNormalizer extends ImageNormalizer {\n normalize() {\n super.normalize();\n let ds = this.datasets[0];\n if (ds.BitsAllocated !== 32) {\n log.error(\n \"Only works with 32 bit data, not \" + String(ds.BitsAllocated)\n );\n }\n }\n}\n\nclass DSRNormalizer extends Normalizer {\n normalize() {\n this.dataset = this.datasets[0]; // only one dataset per series and for now we assume it is normalized\n }\n}\n\nexport { Normalizer };\nexport { ImageNormalizer };\nexport { MRImageNormalizer };\nexport { EnhancedCTImageNormalizer };\nexport { EnhancedMRImageNormalizer };\nexport { EnhancedUSVolumeNormalizer };\nexport { CTImageNormalizer };\nexport { PETImageNormalizer };\nexport { SEGImageNormalizer };\nexport { PMImageNormalizer };\nexport { DSRNormalizer };\n","import { DicomMetaDictionary } from \"../DicomMetaDictionary.js\";\nimport DerivedPixels from \"./DerivedPixels\";\nimport DerivedDataset from \"./DerivedDataset\";\nimport { Normalizer } from \"../normalizers.js\";\nimport { BitArray } from \"../bitArray.js\";\n\nexport default class Segmentation extends DerivedPixels {\n constructor(datasets, options = { includeSliceSpacing: true }) {\n super(datasets, options);\n }\n\n derive() {\n super.derive();\n\n this.assignToDataset({\n SOPClassUID: DicomMetaDictionary.sopClassUIDsByName.Segmentation,\n Modality: \"SEG\",\n SamplesPerPixel: \"1\",\n PhotometricInterpretation: \"MONOCHROME2\",\n BitsAllocated: \"1\",\n BitsStored: \"1\",\n HighBit: \"0\",\n PixelRepresentation: \"0\",\n LossyImageCompression: \"00\",\n SegmentationType: \"BINARY\",\n ContentLabel: \"SEGMENTATION\"\n });\n\n let dimensionUID = DicomMetaDictionary.uid();\n this.dataset.DimensionOrganizationSequence = {\n DimensionOrganizationUID: dimensionUID\n };\n this.dataset.DimensionIndexSequence = [\n {\n DimensionOrganizationUID: dimensionUID,\n DimensionIndexPointer: 6422539,\n FunctionalGroupPointer: 6422538, // SegmentIdentificationSequence\n DimensionDescriptionLabel: \"ReferencedSegmentNumber\"\n },\n {\n DimensionOrganizationUID: dimensionUID,\n DimensionIndexPointer: 2097202,\n FunctionalGroupPointer: 2134291, // PlanePositionSequence\n DimensionDescriptionLabel: \"ImagePositionPatient\"\n }\n ];\n\n this.dataset.SegmentSequence = [];\n\n // TODO: check logic here.\n // If the referenced dataset itself references a series, then copy.\n // Otherwise, reference the dataset itself.\n // This should allow Slicer and others to get the correct original\n // images when loading Legacy Converted Images, but it's a workaround\n // that really doesn't belong here.\n if (this.referencedDataset.ReferencedSeriesSequence) {\n this.dataset.ReferencedSeriesSequence = DerivedDataset.copyDataset(\n this.referencedDataset.ReferencedSeriesSequence\n );\n } else {\n const ReferencedInstanceSequence = [];\n\n for (let i = 0; i < this.referencedDatasets.length; i++) {\n ReferencedInstanceSequence.push({\n ReferencedSOPClassUID:\n this.referencedDatasets[i].SOPClassUID,\n ReferencedSOPInstanceUID:\n this.referencedDatasets[i].SOPInstanceUID\n });\n }\n\n this.dataset.ReferencedSeriesSequence = {\n SeriesInstanceUID: this.referencedDataset.SeriesInstanceUID,\n StudyInstanceUID: this.referencedDataset.StudyInstanceUID,\n ReferencedInstanceSequence\n };\n }\n\n if (!this.options.includeSliceSpacing) {\n // per dciodvfy this should not be included, but dcmqi/Slicer requires it\n delete this.dataset.SharedFunctionalGroupsSequence\n .PixelMeasuresSequence.SpacingBetweenSlices;\n }\n\n if (\n this.dataset.SharedFunctionalGroupsSequence\n .PixelValueTransformationSequence\n ) {\n // If derived from a CT, this shouldn't be left in the SEG.\n delete this.dataset.SharedFunctionalGroupsSequence\n .PixelValueTransformationSequence;\n }\n\n // The pixelData array needs to be defined once you know how many frames you'll have.\n this.dataset.PixelData = undefined;\n this.dataset.NumberOfFrames = 0;\n\n this.dataset.PerFrameFunctionalGroupsSequence = [];\n }\n\n /**\n * setNumberOfFrames - Sets the number of frames of the segmentation object\n * and allocates (non-bitpacked) memory for the PixelData for constuction.\n *\n * @param {type} NumberOfFrames The number of segmentation frames.\n */\n setNumberOfFrames(NumberOfFrames) {\n const dataset = this.dataset;\n dataset.NumberOfFrames = NumberOfFrames;\n\n dataset.PixelData = new ArrayBuffer(\n dataset.Rows * dataset.Columns * NumberOfFrames\n );\n }\n\n /**\n * bitPackPixelData - Bitpacks the pixeldata, should be called after all\n * segments are addded.\n *\n * @returns {type} description\n */\n bitPackPixelData() {\n if (this.isBitpacked) {\n console.warn(\n `This.bitPackPixelData has already been called, it should only be called once, when all frames have been added. Exiting.`\n );\n }\n\n const dataset = this.dataset;\n const unpackedPixelData = dataset.PixelData;\n const uInt8ViewUnpackedPixelData = new Uint8Array(unpackedPixelData);\n const bitPackedPixelData = BitArray.pack(uInt8ViewUnpackedPixelData);\n\n dataset.PixelData = bitPackedPixelData.buffer;\n\n this.isBitpacked = true;\n }\n\n /**\n * addSegmentFromLabelmap - Adds a segment to the dataset,\n * where the labelmaps are a set of 2D labelmaps, from which to extract the binary maps.\n *\n * @param {type} Segment The segment metadata.\n * @param {Uint8Array[]} labelmaps labelmap arrays for each index of referencedFrameNumbers.\n * @param {number} segmentIndexInLabelmap The segment index to extract from the labelmap\n * (might be different to the segment metadata depending on implementation).\n * @param {number[]} referencedFrameNumbers The frames that the\n * segmentation references.\n *\n */\n addSegmentFromLabelmap(\n Segment,\n labelmaps,\n segmentIndexInLabelmap,\n referencedFrameNumbers\n ) {\n if (this.dataset.NumberOfFrames === 0) {\n throw new Error(\n \"Must set the total number of frames via setNumberOfFrames() before adding segments to the segmentation.\"\n );\n }\n\n this._addSegmentPixelDataFromLabelmaps(\n labelmaps,\n segmentIndexInLabelmap\n );\n const ReferencedSegmentNumber = this._addSegmentMetadata(Segment);\n this._addPerFrameFunctionalGroups(\n ReferencedSegmentNumber,\n referencedFrameNumbers\n );\n }\n\n _addSegmentPixelDataFromLabelmaps(labelmaps, segmentIndex) {\n const dataset = this.dataset;\n const existingFrames = dataset.PerFrameFunctionalGroupsSequence.length;\n const sliceLength = dataset.Rows * dataset.Columns;\n const byteOffset = existingFrames * sliceLength;\n\n const pixelDataUInt8View = new Uint8Array(\n dataset.PixelData,\n byteOffset,\n labelmaps.length * sliceLength\n );\n\n const occupiedValue = this._getOccupiedValue();\n\n for (let l = 0; l < labelmaps.length; l++) {\n const labelmap = labelmaps[l];\n\n for (let i = 0; i < labelmap.length; i++) {\n if (labelmap[i] === segmentIndex) {\n pixelDataUInt8View[l * sliceLength + i] = occupiedValue;\n }\n }\n }\n }\n\n _getOccupiedValue() {\n if (this.dataset.SegmentationType === \"FRACTIONAL\") {\n return 255;\n }\n\n return 1;\n }\n\n /**\n * addSegment - Adds a segment to the dataset.\n *\n * @param {type} Segment The segment metadata.\n * @param {Uint8Array} pixelData The pixelData array containing all frames\n * of the segmentation.\n * @param {Number[]} referencedFrameNumbers The frames that the\n * segmentation references.\n *\n */\n addSegment(Segment, pixelData, referencedFrameNumbers) {\n if (this.dataset.NumberOfFrames === 0) {\n throw new Error(\n \"Must set the total number of frames via setNumberOfFrames() before adding segments to the segmentation.\"\n );\n }\n\n this._addSegmentPixelData(pixelData);\n const ReferencedSegmentNumber = this._addSegmentMetadata(Segment);\n this._addPerFrameFunctionalGroups(\n ReferencedSegmentNumber,\n referencedFrameNumbers\n );\n }\n\n _addSegmentPixelData(pixelData) {\n const dataset = this.dataset;\n\n const existingFrames = dataset.PerFrameFunctionalGroupsSequence.length;\n const sliceLength = dataset.Rows * dataset.Columns;\n const byteOffset = existingFrames * sliceLength;\n\n const pixelDataUInt8View = new Uint8Array(\n dataset.PixelData,\n byteOffset,\n pixelData.length\n );\n\n for (let i = 0; i < pixelData.length; i++) {\n pixelDataUInt8View[i] = pixelData[i];\n }\n }\n\n _addPerFrameFunctionalGroups(\n ReferencedSegmentNumber,\n referencedFrameNumbers\n ) {\n const PerFrameFunctionalGroupsSequence =\n this.dataset.PerFrameFunctionalGroupsSequence;\n\n const ReferencedSeriesSequence =\n this.referencedDataset.ReferencedSeriesSequence;\n\n for (let i = 0; i < referencedFrameNumbers.length; i++) {\n const frameNumber = referencedFrameNumbers[i];\n\n const perFrameFunctionalGroups = {};\n\n perFrameFunctionalGroups.PlanePositionSequence =\n DerivedDataset.copyDataset(\n this.referencedDataset.PerFrameFunctionalGroupsSequence[\n frameNumber - 1\n ].PlanePositionSequence\n );\n\n // If the PlaneOrientationSequence is not in the SharedFunctionalGroupsSequence,\n // extract it from the PerFrameFunctionalGroupsSequence.\n if (\n !this.dataset.SharedFunctionalGroupsSequence\n .PlaneOrientationSequence\n ) {\n perFrameFunctionalGroups.PlaneOrientationSequence =\n DerivedDataset.copyDataset(\n this.referencedDataset.PerFrameFunctionalGroupsSequence[\n frameNumber - 1\n ].PlaneOrientationSequence\n );\n }\n\n perFrameFunctionalGroups.FrameContentSequence = {\n DimensionIndexValues: [ReferencedSegmentNumber, frameNumber]\n };\n\n perFrameFunctionalGroups.SegmentIdentificationSequence = {\n ReferencedSegmentNumber\n };\n\n let ReferencedSOPClassUID;\n let ReferencedSOPInstanceUID;\n let ReferencedFrameNumber;\n\n if (ReferencedSeriesSequence) {\n const referencedInstanceSequenceI =\n ReferencedSeriesSequence.ReferencedInstanceSequence[\n frameNumber - 1\n ];\n\n ReferencedSOPClassUID =\n referencedInstanceSequenceI.ReferencedSOPClassUID;\n ReferencedSOPInstanceUID =\n referencedInstanceSequenceI.ReferencedSOPInstanceUID;\n\n if (Normalizer.isMultiframeSOPClassUID(ReferencedSOPClassUID)) {\n ReferencedFrameNumber = frameNumber;\n }\n } else {\n ReferencedSOPClassUID = this.referencedDataset.SOPClassUID;\n ReferencedSOPInstanceUID =\n this.referencedDataset.SOPInstanceUID;\n ReferencedFrameNumber = frameNumber;\n }\n\n if (ReferencedFrameNumber) {\n perFrameFunctionalGroups.DerivationImageSequence = {\n SourceImageSequence: {\n ReferencedSOPClassUID,\n ReferencedSOPInstanceUID,\n ReferencedFrameNumber,\n PurposeOfReferenceCodeSequence: {\n CodeValue: \"121322\",\n CodingSchemeDesignator: \"DCM\",\n CodeMeaning:\n \"Source image for image processing operation\"\n }\n },\n DerivationCodeSequence: {\n CodeValue: \"113076\",\n CodingSchemeDesignator: \"DCM\",\n CodeMeaning: \"Segmentation\"\n }\n };\n } else {\n perFrameFunctionalGroups.DerivationImageSequence = {\n SourceImageSequence: {\n ReferencedSOPClassUID,\n ReferencedSOPInstanceUID,\n PurposeOfReferenceCodeSequence: {\n CodeValue: \"121322\",\n CodingSchemeDesignator: \"DCM\",\n CodeMeaning:\n \"Source image for image processing operation\"\n }\n },\n DerivationCodeSequence: {\n CodeValue: \"113076\",\n CodingSchemeDesignator: \"DCM\",\n CodeMeaning: \"Segmentation\"\n }\n };\n }\n\n PerFrameFunctionalGroupsSequence.push(perFrameFunctionalGroups);\n }\n }\n\n _addSegmentMetadata(Segment) {\n if (\n !Segment.SegmentLabel ||\n !Segment.SegmentedPropertyCategoryCodeSequence ||\n !Segment.SegmentedPropertyTypeCodeSequence ||\n !Segment.SegmentAlgorithmType\n ) {\n throw new Error(\n `Segment does not contain all the required fields.`\n );\n }\n\n // Capitalise the SegmentAlgorithmType if it happens to be given in\n // Lower/mixed case.\n Segment.SegmentAlgorithmType =\n Segment.SegmentAlgorithmType.toUpperCase();\n\n // Check SegmentAlgorithmType and SegmentAlgorithmName if necessary.\n switch (Segment.SegmentAlgorithmType) {\n case \"AUTOMATIC\":\n case \"SEMIAUTOMATIC\":\n if (!Segment.SegmentAlgorithmName) {\n throw new Error(\n `If the SegmentAlgorithmType is SEMIAUTOMATIC or AUTOMATIC,\n SegmentAlgorithmName must be provided`\n );\n }\n\n break;\n case \"MANUAL\":\n break;\n default:\n throw new Error(\n `SegmentAlgorithmType ${Segment.SegmentAlgorithmType} invalid.`\n );\n }\n\n // Deep copy, so we don't change the segment index stored in cornerstoneTools.\n\n const SegmentSequence = this.dataset.SegmentSequence;\n\n const SegmentAlgorithmType = Segment.SegmentAlgorithmType;\n\n const reNumberedSegmentCopy = {\n SegmentedPropertyCategoryCodeSequence:\n Segment.SegmentedPropertyCategoryCodeSequence,\n SegmentNumber: (SegmentSequence.length + 1).toString(),\n SegmentLabel: Segment.SegmentLabel,\n SegmentAlgorithmType,\n RecommendedDisplayCIELabValue:\n Segment.RecommendedDisplayCIELabValue,\n SegmentedPropertyTypeCodeSequence:\n Segment.SegmentedPropertyTypeCodeSequence\n };\n\n if (\n SegmentAlgorithmType === \"AUTOMATIC\" ||\n SegmentAlgorithmType === \"SEMIAUTOMATIC\"\n ) {\n reNumberedSegmentCopy.SegmentAlgorithmName =\n Segment.SegmentAlgorithmName;\n }\n\n SegmentSequence.push(reNumberedSegmentCopy);\n\n return reNumberedSegmentCopy.SegmentNumber;\n }\n}\n","import { DicomMetaDictionary } from \"../DicomMetaDictionary.js\";\nimport DerivedDataset from \"./DerivedDataset.js\";\n\nexport default class ParametricMap extends DerivedDataset {\n constructor(datasets, options = {}) {\n super(datasets, options);\n }\n\n // this assumes a normalized multiframe input and will create\n // a multiframe derived image\n derive() {\n super.derive();\n\n this.assignToDataset({\n // TODO: ???\n });\n\n this.assignFromReference([]);\n }\n}\n","import DerivedDataset from \"./DerivedDataset\";\nimport { DicomMetaDictionary } from \"../DicomMetaDictionary\";\n\nexport default class StructuredReport extends DerivedDataset {\n constructor(datasets, options = {}) {\n super(datasets, options);\n }\n\n // this assumes a normalized multiframe input and will create\n // a multiframe derived image\n derive() {\n super.derive();\n\n this.assignToDataset({\n SOPClassUID: DicomMetaDictionary.sopClassUIDsByName.EnhancedSR,\n Modality: \"SR\",\n ValueType: \"CONTAINER\"\n });\n\n this.assignFromReference([]);\n }\n}\n","import addAccessors from \"../addAccessors\";\n\nexport default class TID1500MeasurementReport {\n constructor(TIDIncludeGroups) {\n this.TIDIncludeGroups = TIDIncludeGroups;\n\n const ImageLibraryContentSequence = [];\n const CurrentRequestedProcedureEvidenceSequence = [];\n\n this.ImageLibraryContentSequence = ImageLibraryContentSequence;\n this.CurrentRequestedProcedureEvidenceSequence =\n CurrentRequestedProcedureEvidenceSequence;\n\n this.PersonObserverName = {\n RelationshipType: \"HAS OBS CONTEXT\",\n ValueType: \"PNAME\",\n ConceptNameCodeSequence: {\n CodeValue: \"121008\",\n CodingSchemeDesignator: \"DCM\",\n CodeMeaning: \"Person Observer Name\"\n },\n PersonName: \"unknown^unknown\"\n };\n\n this.tid1500 = {\n ConceptNameCodeSequence: {\n CodeValue: \"126000\",\n CodingSchemeDesignator: \"DCM\",\n CodeMeaning: \"Imaging Measurement Report\"\n },\n ContinuityOfContent: \"SEPARATE\",\n PerformedProcedureCodeSequence: [],\n CompletionFlag: \"COMPLETE\",\n VerificationFlag: \"UNVERIFIED\",\n ReferencedPerformedProcedureStepSequence: [],\n InstanceNumber: 1,\n CurrentRequestedProcedureEvidenceSequence,\n CodingSchemeIdentificationSequence: {\n CodingSchemeDesignator: \"99dcmjs\",\n CodingSchemeName: \"Codes used for dcmjs\",\n CodingSchemeVersion: \"0\",\n CodingSchemeResponsibleOrganization:\n \"https://github.com/dcmjs-org/dcmjs\"\n },\n ContentTemplateSequence: {\n MappingResource: \"DCMR\",\n TemplateIdentifier: \"1500\"\n },\n ContentSequence: [\n {\n RelationshipType: \"HAS CONCEPT MOD\",\n ValueType: \"CODE\",\n ConceptNameCodeSequence: addAccessors({\n CodeValue: \"121049\",\n CodingSchemeDesignator: \"DCM\",\n CodeMeaning: \"Language of Content Item and Descendants\"\n }),\n ConceptCodeSequence: addAccessors({\n CodeValue: \"eng\",\n CodingSchemeDesignator: \"RFC5646\",\n CodeMeaning: \"English\"\n }),\n ContentSequence: addAccessors({\n RelationshipType: \"HAS CONCEPT MOD\",\n ValueType: \"CODE\",\n ConceptNameCodeSequence: addAccessors({\n CodeValue: \"121046\",\n CodingSchemeDesignator: \"DCM\",\n CodeMeaning: \"Country of Language\"\n }),\n ConceptCodeSequence: addAccessors({\n CodeValue: \"US\",\n CodingSchemeDesignator: \"ISO3166_1\",\n CodeMeaning: \"United States\"\n })\n })\n },\n this.PersonObserverName,\n {\n RelationshipType: \"HAS CONCEPT MOD\",\n ValueType: \"CODE\",\n ConceptNameCodeSequence: addAccessors({\n CodeValue: \"121058\",\n CodingSchemeDesignator: \"DCM\",\n CodeMeaning: \"Procedure reported\"\n }),\n ConceptCodeSequence: addAccessors({\n CodeValue: \"1\",\n CodingSchemeDesignator: \"99dcmjs\",\n CodeMeaning: \"Unknown procedure\"\n })\n },\n {\n RelationshipType: \"CONTAINS\",\n ValueType: \"CONTAINER\",\n ConceptNameCodeSequence: {\n CodeValue: \"111028\",\n CodingSchemeDesignator: \"DCM\",\n CodeMeaning: \"Image Library\"\n },\n ContinuityOfContent: \"SEPARATE\",\n ContentSequence: {\n RelationshipType: \"CONTAINS\",\n ValueType: \"CONTAINER\",\n ConceptNameCodeSequence: {\n CodeValue: \"126200\",\n CodingSchemeDesignator: \"DCM\",\n CodeMeaning: \"Image Library Group\"\n },\n ContinuityOfContent: \"SEPARATE\",\n ContentSequence: ImageLibraryContentSequence\n }\n }\n ]\n };\n }\n\n validate() {}\n\n contentItem(derivationSourceDatasetOrDatasets, options = {}) {\n if (options.PersonName) {\n this.PersonObserverName.PersonName = options.PersonName;\n }\n\n // Note this is left in for compatibility with the Cornerstone Legacy adapter which only supports one series for now.\n const derivationSourceDatasets = Array.isArray(\n derivationSourceDatasetOrDatasets\n )\n ? derivationSourceDatasetOrDatasets\n : [derivationSourceDatasetOrDatasets];\n\n // Add the Measurement Groups to the Measurement Report\n this.addTID1501MeasurementGroups(derivationSourceDatasets, options);\n\n return this.tid1500;\n }\n\n addTID1501MeasurementGroups(derivationSourceDatasets, options = {}) {\n const {\n CurrentRequestedProcedureEvidenceSequence,\n ImageLibraryContentSequence\n } = this;\n\n const { sopInstanceUIDsToSeriesInstanceUIDMap } = options;\n\n if (\n derivationSourceDatasets.length > 1 &&\n sopInstanceUIDsToSeriesInstanceUIDMap === undefined\n ) {\n throw new Error(\n `addTID1501MeasurementGroups provided with ${derivationSourceDatasets.length} derivationSourceDatasets, with no sopInstanceUIDsToSeriesInstanceUIDMap in options.`\n );\n }\n\n const { TID1501MeasurementGroups } = this.TIDIncludeGroups;\n\n if (!TID1501MeasurementGroups) {\n return;\n }\n\n let ContentSequence = [];\n\n TID1501MeasurementGroups.forEach(child => {\n ContentSequence = ContentSequence.concat(child.contentItem());\n });\n\n const parsedSOPInstances = [];\n\n // For each measurement that is referenced, add a link to the\n // Image Library Group and the Current Requested Procedure Evidence\n // with the proper ReferencedSOPSequence\n TID1501MeasurementGroups.forEach(measurementGroup => {\n measurementGroup.TID300Measurements.forEach(measurement => {\n const { ReferencedSOPInstanceUID } =\n measurement.ReferencedSOPSequence;\n\n if (!parsedSOPInstances.includes(ReferencedSOPInstanceUID)) {\n ImageLibraryContentSequence.push({\n RelationshipType: \"CONTAINS\",\n ValueType: \"IMAGE\",\n ReferencedSOPSequence: measurement.ReferencedSOPSequence\n });\n\n let derivationSourceDataset;\n\n if (derivationSourceDatasets.length === 1) {\n // If there is only one derivationSourceDataset, use it.\n derivationSourceDataset = derivationSourceDatasets[0];\n } else {\n const SeriesInstanceUID =\n sopInstanceUIDsToSeriesInstanceUIDMap[\n ReferencedSOPInstanceUID\n ];\n\n derivationSourceDataset = derivationSourceDatasets.find(\n dsd => dsd.SeriesInstanceUID === SeriesInstanceUID\n );\n }\n\n /**\n * Note: the VM of the ReferencedSeriesSequence and ReferencedSOPSequence are 1, so\n * it is correct that we have a full `CurrentRequestedProcedureEvidenceSequence`\n * item per `SOPInstanceUID`.\n */\n CurrentRequestedProcedureEvidenceSequence.push({\n StudyInstanceUID:\n derivationSourceDataset.StudyInstanceUID,\n ReferencedSeriesSequence: {\n SeriesInstanceUID:\n derivationSourceDataset.SeriesInstanceUID,\n ReferencedSOPSequence:\n measurement.ReferencedSOPSequence\n }\n });\n\n parsedSOPInstances.push(ReferencedSOPInstanceUID);\n }\n });\n });\n\n const ImagingMeasurments = {\n RelationshipType: \"CONTAINS\",\n ValueType: \"CONTAINER\",\n ConceptNameCodeSequence: {\n CodeValue: \"126010\",\n CodingSchemeDesignator: \"DCM\",\n CodeMeaning: \"Imaging Measurements\" // TODO: would be nice to abstract the code sequences (in a dictionary? a service?)\n },\n ContinuityOfContent: \"SEPARATE\",\n ContentSequence\n };\n\n this.tid1500.ContentSequence.push(ImagingMeasurments);\n }\n}\n","export default class TID1501MeasurementGroup {\n constructor(TID300Measurements) {\n this.TID300Measurements = TID300Measurements;\n }\n\n contentItem() {\n const { TID300Measurements } = this;\n\n // TODO: Is there nothing else in this group?\n let measurementGroups = [];\n\n TID300Measurements.forEach(TID300Measurement => {\n measurementGroups.push(\n this.getMeasurementGroup(TID300Measurement.contentItem())\n );\n });\n\n return measurementGroups;\n }\n\n getMeasurementGroup(contentSequenceEntries) {\n return {\n RelationshipType: \"CONTAINS\",\n ValueType: \"CONTAINER\",\n ConceptNameCodeSequence: {\n CodeValue: \"125007\",\n CodingSchemeDesignator: \"DCM\",\n CodeMeaning: \"Measurement Group\"\n },\n ContinuityOfContent: \"SEPARATE\",\n ContentSequence: [...contentSequenceEntries]\n };\n }\n}\n","const toArray = function (x) {\n return Array.isArray(x) ? x : [x];\n};\n\nconst codeMeaningEquals = codeMeaningName => {\n return contentItem => {\n return (\n contentItem.ConceptNameCodeSequence.CodeMeaning === codeMeaningName\n );\n };\n};\n\nconst graphicTypeEquals = graphicType => {\n return contentItem => {\n return contentItem && contentItem.GraphicType === graphicType;\n };\n};\n\nexport { toArray, codeMeaningEquals, graphicTypeEquals };\n","import { Normalizer } from \"../../normalizers.js\";\nimport { DicomMetaDictionary } from \"../../DicomMetaDictionary.js\";\nimport { StructuredReport } from \"../../derivations/index.js\";\nimport TID1500MeasurementReport from \"../../utilities/TID1500/TID1500MeasurementReport.js\";\nimport TID1501MeasurementGroup from \"../../utilities/TID1500/TID1501MeasurementGroup.js\";\nimport addAccessors from \"../../utilities/addAccessors.js\";\n\nimport { toArray, codeMeaningEquals } from \"../helpers.js\";\n\nconst FINDING = { CodingSchemeDesignator: \"DCM\", CodeValue: \"121071\" };\nconst FINDING_SITE = { CodingSchemeDesignator: \"SCT\", CodeValue: \"363698007\" };\nconst FINDING_SITE_OLD = { CodingSchemeDesignator: \"SRT\", CodeValue: \"G-C0E3\" };\n\nconst codeValueMatch = (group, code, oldCode) => {\n const { ConceptNameCodeSequence } = group;\n if (!ConceptNameCodeSequence) return;\n const { CodingSchemeDesignator, CodeValue } = ConceptNameCodeSequence;\n return (\n (CodingSchemeDesignator == code.CodingSchemeDesignator &&\n CodeValue == code.CodeValue) ||\n (oldCode &&\n CodingSchemeDesignator == oldCode.CodingSchemeDesignator &&\n CodeValue == oldCode.CodeValue)\n );\n};\n\nfunction getTID300ContentItem(\n tool,\n toolType,\n ReferencedSOPSequence,\n toolClass\n) {\n const args = toolClass.getTID300RepresentationArguments(tool);\n args.ReferencedSOPSequence = ReferencedSOPSequence;\n\n const TID300Measurement = new toolClass.TID300Representation(args);\n\n return TID300Measurement;\n}\n\nfunction getMeasurementGroup(toolType, toolData, ReferencedSOPSequence) {\n const toolTypeData = toolData[toolType];\n const toolClass =\n MeasurementReport.CORNERSTONE_TOOL_CLASSES_BY_TOOL_TYPE[toolType];\n if (\n !toolTypeData ||\n !toolTypeData.data ||\n !toolTypeData.data.length ||\n !toolClass\n ) {\n return;\n }\n\n // Loop through the array of tool instances\n // for this tool\n const Measurements = toolTypeData.data.map(tool => {\n return getTID300ContentItem(\n tool,\n toolType,\n ReferencedSOPSequence,\n toolClass\n );\n });\n\n return new TID1501MeasurementGroup(Measurements);\n}\n\nexport default class MeasurementReport {\n constructor() {}\n\n static getSetupMeasurementData(MeasurementGroup) {\n const { ContentSequence } = MeasurementGroup;\n\n const contentSequenceArr = toArray(ContentSequence);\n const findingGroup = contentSequenceArr.find(group =>\n codeValueMatch(group, FINDING)\n );\n const findingSiteGroups =\n contentSequenceArr.filter(group =>\n codeValueMatch(group, FINDING_SITE, FINDING_SITE_OLD)\n ) || [];\n const NUMGroup = contentSequenceArr.find(\n group => group.ValueType === \"NUM\"\n );\n const SCOORDGroup = toArray(NUMGroup.ContentSequence).find(\n group => group.ValueType === \"SCOORD\"\n );\n const { ReferencedSOPSequence } = SCOORDGroup.ContentSequence;\n const { ReferencedSOPInstanceUID, ReferencedFrameNumber } =\n ReferencedSOPSequence;\n\n const defaultState = {\n sopInstanceUid: ReferencedSOPInstanceUID,\n frameIndex: ReferencedFrameNumber || 1,\n complete: true,\n finding: findingGroup\n ? addAccessors(findingGroup.ConceptCodeSequence)\n : undefined,\n findingSites: findingSiteGroups.map(fsg => {\n return addAccessors(fsg.ConceptCodeSequence);\n })\n };\n if (defaultState.finding) {\n defaultState.description = defaultState.finding.CodeMeaning;\n }\n const findingSite =\n defaultState.findingSites && defaultState.findingSites[0];\n if (findingSite) {\n defaultState.location =\n (findingSite[0] && findingSite[0].CodeMeaning) ||\n findingSite.CodeMeaning;\n }\n return {\n defaultState,\n findingGroup,\n findingSiteGroups,\n NUMGroup,\n SCOORDGroup,\n ReferencedSOPSequence,\n ReferencedSOPInstanceUID,\n ReferencedFrameNumber\n };\n }\n\n static generateReport(toolState, metadataProvider, options) {\n // ToolState for array of imageIDs to a Report\n // Assume Cornerstone metadata provider has access to Study / Series / Sop Instance UID\n\n let allMeasurementGroups = [];\n const firstImageId = Object.keys(toolState)[0];\n if (!firstImageId) {\n throw new Error(\"No measurements provided.\");\n }\n\n /* Patient ID\n Warning - Missing attribute or value that would be needed to build DICOMDIR - Patient ID\n Warning - Missing attribute or value that would be needed to build DICOMDIR - Study Date\n Warning - Missing attribute or value that would be needed to build DICOMDIR - Study Time\n Warning - Missing attribute or value that would be needed to build DICOMDIR - Study ID\n */\n const generalSeriesModule = metadataProvider.get(\n \"generalSeriesModule\",\n firstImageId\n );\n\n //const sopCommonModule = metadataProvider.get('sopCommonModule', firstImageId);\n\n // NOTE: We are getting the Series and Study UIDs from the first imageId of the toolState\n // which means that if the toolState is for multiple series, the report will have the incorrect\n // SeriesInstanceUIDs\n const { studyInstanceUID, seriesInstanceUID } = generalSeriesModule;\n\n // Loop through each image in the toolData\n Object.keys(toolState).forEach(imageId => {\n const sopCommonModule = metadataProvider.get(\n \"sopCommonModule\",\n imageId\n );\n const frameNumber = metadataProvider.get(\"frameNumber\", imageId);\n const toolData = toolState[imageId];\n const toolTypes = Object.keys(toolData);\n\n const ReferencedSOPSequence = {\n ReferencedSOPClassUID: sopCommonModule.sopClassUID,\n ReferencedSOPInstanceUID: sopCommonModule.sopInstanceUID\n };\n\n if (\n Normalizer.isMultiframeSOPClassUID(sopCommonModule.sopClassUID)\n ) {\n ReferencedSOPSequence.ReferencedFrameNumber = frameNumber;\n }\n\n // Loop through each tool type for the image\n const measurementGroups = [];\n\n toolTypes.forEach(toolType => {\n const group = getMeasurementGroup(\n toolType,\n toolData,\n ReferencedSOPSequence\n );\n if (group) {\n measurementGroups.push(group);\n }\n });\n\n allMeasurementGroups =\n allMeasurementGroups.concat(measurementGroups);\n });\n\n const MeasurementReport = new TID1500MeasurementReport(\n { TID1501MeasurementGroups: allMeasurementGroups },\n options\n );\n\n // TODO: what is the correct metaheader\n // http://dicom.nema.org/medical/Dicom/current/output/chtml/part10/chapter_7.html\n // TODO: move meta creation to happen in derivations.js\n const fileMetaInformationVersionArray = new Uint8Array(2);\n fileMetaInformationVersionArray[1] = 1;\n\n const derivationSourceDataset = {\n StudyInstanceUID: studyInstanceUID,\n SeriesInstanceUID: seriesInstanceUID\n //SOPInstanceUID: sopInstanceUID, // TODO: Necessary?\n //SOPClassUID: sopClassUID,\n };\n\n const _meta = {\n FileMetaInformationVersion: {\n Value: [fileMetaInformationVersionArray.buffer],\n vr: \"OB\"\n },\n //MediaStorageSOPClassUID\n //MediaStorageSOPInstanceUID: sopCommonModule.sopInstanceUID,\n TransferSyntaxUID: {\n Value: [\"1.2.840.10008.1.2.1\"],\n vr: \"UI\"\n },\n ImplementationClassUID: {\n Value: [DicomMetaDictionary.uid()], // TODO: could be git hash or other valid id\n vr: \"UI\"\n },\n ImplementationVersionName: {\n Value: [\"dcmjs\"],\n vr: \"SH\"\n }\n };\n\n const _vrMap = {\n PixelData: \"OW\"\n };\n\n derivationSourceDataset._meta = _meta;\n derivationSourceDataset._vrMap = _vrMap;\n\n const report = new StructuredReport([derivationSourceDataset]);\n\n const contentItem = MeasurementReport.contentItem(\n derivationSourceDataset\n );\n\n // Merge the derived dataset with the content from the Measurement Report\n report.dataset = Object.assign(report.dataset, contentItem);\n report.dataset._meta = _meta;\n\n return report;\n }\n\n /**\n * Generate Cornerstone tool state from dataset\n * @param {object} dataset dataset\n * @param {object} hooks\n * @param {function} hooks.getToolClass Function to map dataset to a tool class\n * @returns\n */\n static generateToolState(dataset, hooks = {}) {\n // For now, bail out if the dataset is not a TID1500 SR with length measurements\n if (dataset.ContentTemplateSequence.TemplateIdentifier !== \"1500\") {\n throw new Error(\n \"This package can currently only interpret DICOM SR TID 1500\"\n );\n }\n\n const REPORT = \"Imaging Measurements\";\n const GROUP = \"Measurement Group\";\n const TRACKING_IDENTIFIER = \"Tracking Identifier\";\n\n // Identify the Imaging Measurements\n const imagingMeasurementContent = toArray(dataset.ContentSequence).find(\n codeMeaningEquals(REPORT)\n );\n\n // Retrieve the Measurements themselves\n const measurementGroups = toArray(\n imagingMeasurementContent.ContentSequence\n ).filter(codeMeaningEquals(GROUP));\n\n // For each of the supported measurement types, compute the measurement data\n const measurementData = {};\n\n const cornerstoneToolClasses =\n MeasurementReport.CORNERSTONE_TOOL_CLASSES_BY_UTILITY_TYPE;\n\n const registeredToolClasses = [];\n\n Object.keys(cornerstoneToolClasses).forEach(key => {\n registeredToolClasses.push(cornerstoneToolClasses[key]);\n measurementData[key] = [];\n });\n\n measurementGroups.forEach(measurementGroup => {\n const measurementGroupContentSequence = toArray(\n measurementGroup.ContentSequence\n );\n\n const TrackingIdentifierGroup =\n measurementGroupContentSequence.find(\n contentItem =>\n contentItem.ConceptNameCodeSequence.CodeMeaning ===\n TRACKING_IDENTIFIER\n );\n\n const TrackingIdentifierValue = TrackingIdentifierGroup.TextValue;\n\n const toolClass = hooks.getToolClass\n ? hooks.getToolClass(\n measurementGroup,\n dataset,\n registeredToolClasses\n )\n : registeredToolClasses.find(tc =>\n tc.isValidCornerstoneTrackingIdentifier(\n TrackingIdentifierValue\n )\n );\n\n if (toolClass) {\n const measurement =\n toolClass.getMeasurementData(measurementGroup);\n\n console.log(`=== ${toolClass.toolType} ===`);\n console.log(measurement);\n\n measurementData[toolClass.toolType].push(measurement);\n }\n });\n\n // NOTE: There is no way of knowing the cornerstone imageIds as that could be anything.\n // That is up to the consumer to derive from the SOPInstanceUIDs.\n return measurementData;\n }\n\n static registerTool(toolClass) {\n MeasurementReport.CORNERSTONE_TOOL_CLASSES_BY_UTILITY_TYPE[\n toolClass.utilityToolType\n ] = toolClass;\n MeasurementReport.CORNERSTONE_TOOL_CLASSES_BY_TOOL_TYPE[\n toolClass.toolType\n ] = toolClass;\n MeasurementReport.MEASUREMENT_BY_TOOLTYPE[toolClass.toolType] =\n toolClass.utilityToolType;\n }\n}\n\nMeasurementReport.MEASUREMENT_BY_TOOLTYPE = {};\nMeasurementReport.CORNERSTONE_TOOL_CLASSES_BY_UTILITY_TYPE = {};\nMeasurementReport.CORNERSTONE_TOOL_CLASSES_BY_TOOL_TYPE = {};\n","import { DicomMetaDictionary } from \"../../DicomMetaDictionary.js\";\nimport addAccessors from \"../addAccessors.js\";\n\nexport default class TID300Measurement {\n constructor(props) {\n this.ReferencedSOPSequence = props.ReferencedSOPSequence;\n this.props = props;\n }\n\n getMeasurement(contentSequenceEntries) {\n return [\n ...this.getTrackingGroups(),\n ...this.getFindingGroup(),\n ...this.getFindingSiteGroups(),\n ...contentSequenceEntries\n ];\n }\n\n getTrackingGroups() {\n let { trackingIdentifierTextValue } = this.props;\n\n return [\n {\n RelationshipType: \"HAS OBS CONTEXT\",\n ValueType: \"TEXT\",\n ConceptNameCodeSequence: {\n CodeValue: \"112039\",\n CodingSchemeDesignator: \"DCM\",\n CodeMeaning: \"Tracking Identifier\"\n },\n TextValue: trackingIdentifierTextValue || \"web annotation\"\n },\n {\n RelationshipType: \"HAS OBS CONTEXT\",\n ValueType: \"UIDREF\",\n ConceptNameCodeSequence: {\n CodeValue: \"112040\",\n CodingSchemeDesignator: \"DCM\",\n CodeMeaning: \"Tracking Unique Identifier\"\n },\n UID: DicomMetaDictionary.uid()\n }\n ];\n }\n\n getFindingGroup() {\n let finding = this.props.finding;\n\n if (!finding) {\n return [];\n }\n\n const { CodeValue, CodingSchemeDesignator, CodeMeaning } = finding;\n\n return [\n {\n RelationshipType: \"CONTAINS\",\n ValueType: \"CODE\",\n ConceptNameCodeSequence: addAccessors({\n CodeValue: \"121071\",\n CodingSchemeDesignator: \"DCM\",\n CodeMeaning: \"Finding\"\n }),\n ConceptCodeSequence: addAccessors({\n CodeValue, //: \"SAMPLE FINDING\",\n CodingSchemeDesignator, //: \"99dcmjs\",\n CodeMeaning //: \"Sample Finding\"\n })\n }\n ];\n }\n\n getFindingSiteGroups() {\n let findingSites = this.props.findingSites || [];\n\n return findingSites.map(findingSite => {\n const { CodeValue, CodingSchemeDesignator, CodeMeaning } =\n findingSite;\n return {\n RelationshipType: \"CONTAINS\",\n ValueType: \"CODE\",\n ConceptNameCodeSequence: addAccessors({\n CodeValue: \"363698007\",\n CodingSchemeDesignator: \"SCT\",\n CodeMeaning: \"Finding Site\"\n }),\n ConceptCodeSequence: addAccessors({\n CodeValue, //: \"SAMPLE FINDING SITE\",\n CodingSchemeDesignator, //: \"99dcmjs\",\n CodeMeaning //: \"Sample Finding Site\"\n })\n };\n });\n }\n}\n","import log from \"../../log.js\";\n\nconst MM_UNIT = {\n CodeValue: \"mm\",\n CodingSchemeDesignator: \"UCUM\",\n CodingSchemeVersion: \"1.4\",\n CodeMeaning: \"millimeter\"\n};\n\nconst MM2_UNIT = {\n CodeValue: \"mm2\",\n CodingSchemeDesignator: \"UCUM\",\n CodingSchemeVersion: \"1.4\",\n CodeMeaning: \"SquareMilliMeter\"\n};\n\nconst NO_UNIT = {\n CodeValue: \"1\",\n CodingSchemeDesignator: \"UCUM\",\n CodingSchemeVersion: \"1.4\",\n CodeMeaning: \"px\"\n};\n\nconst NO2_UNIT = NO_UNIT;\n\nconst measurementMap = {\n px: NO_UNIT,\n mm: MM_UNIT,\n mm2: MM2_UNIT,\n \"mm\\xB2\": MM2_UNIT,\n \"px\\xB2\": NO2_UNIT\n};\n\n/** Converts the given unit into the\n * specified coding values.\n * Has .measurementMap on the function specifying global units for measurements.\n */\nconst unit2CodingValue = units => {\n if (!units) return NO_UNIT;\n const space = units.indexOf(\" \");\n const baseUnit = space === -1 ? units : units.substring(0, space);\n const codingUnit = measurementMap[units] || measurementMap[baseUnit];\n if (!codingUnit) {\n log.error(\"Unspecified units\", units);\n return MM_UNIT;\n }\n return codingUnit;\n};\n\nunit2CodingValue.measurementMap = measurementMap;\n\nexport default unit2CodingValue;\n","import TID300Measurement from \"./TID300Measurement.js\";\nimport unit2CodingValue from \"./unit2CodingValue.js\";\n\nexport default class Length extends TID300Measurement {\n contentItem() {\n const {\n point1,\n point2,\n unit = \"mm\",\n distance,\n ReferencedSOPSequence\n } = this.props;\n\n return this.getMeasurement([\n {\n RelationshipType: \"CONTAINS\",\n ValueType: \"NUM\",\n ConceptNameCodeSequence: {\n CodeValue: \"G-D7FE\",\n CodingSchemeDesignator: \"SRT\",\n CodeMeaning: \"Length\"\n },\n MeasuredValueSequence: {\n MeasurementUnitsCodeSequence: unit2CodingValue(unit),\n NumericValue: distance\n },\n ContentSequence: {\n RelationshipType: \"INFERRED FROM\",\n ValueType: \"SCOORD\",\n GraphicType: \"POLYLINE\",\n GraphicData: [point1.x, point1.y, point2.x, point2.y],\n ContentSequence: {\n RelationshipType: \"SELECTED FROM\",\n ValueType: \"IMAGE\",\n ReferencedSOPSequence\n }\n }\n }\n ]);\n }\n}\n","export default \"cornerstoneTools@^4.0.0\";\n","import MeasurementReport from \"./MeasurementReport.js\";\nimport TID300Length from \"../../utilities/TID300/Length.js\";\nimport CORNERSTONE_4_TAG from \"./cornerstone4Tag\";\nimport { toArray } from \"../helpers.js\";\n\nconst LENGTH = \"Length\";\nconst FINDING = \"121071\";\nconst FINDING_SITE = \"G-C0E3\";\n\nclass Length {\n constructor() {}\n\n // TODO: this function is required for all Cornerstone Tool Adapters, since it is called by MeasurementReport.\n static getMeasurementData(MeasurementGroup) {\n const { defaultState, NUMGroup, SCOORDGroup } =\n MeasurementReport.getSetupMeasurementData(MeasurementGroup);\n\n const state = {\n ...defaultState,\n length: NUMGroup.MeasuredValueSequence.NumericValue,\n toolType: Length.toolType,\n handles: {\n start: {},\n end: {},\n textBox: {\n hasMoved: false,\n movesIndependently: false,\n drawnIndependently: true,\n allowedOutsideImage: true,\n hasBoundingBox: true\n }\n }\n };\n\n [\n state.handles.start.x,\n state.handles.start.y,\n state.handles.end.x,\n state.handles.end.y\n ] = SCOORDGroup.GraphicData;\n\n return state;\n }\n\n static getTID300RepresentationArguments(tool) {\n const { handles, finding, findingSites } = tool;\n const point1 = handles.start;\n const point2 = handles.end;\n const distance = tool.length;\n\n const trackingIdentifierTextValue = \"cornerstoneTools@^4.0.0:Length\";\n\n return {\n point1,\n point2,\n distance,\n trackingIdentifierTextValue,\n finding,\n findingSites: findingSites || []\n };\n }\n}\n\nLength.toolType = LENGTH;\nLength.utilityToolType = LENGTH;\nLength.TID300Representation = TID300Length;\nLength.isValidCornerstoneTrackingIdentifier = TrackingIdentifier => {\n if (!TrackingIdentifier.includes(\":\")) {\n return false;\n }\n\n const [cornerstone4Tag, toolType] = TrackingIdentifier.split(\":\");\n\n if (cornerstone4Tag !== CORNERSTONE_4_TAG) {\n return false;\n }\n\n return toolType === LENGTH;\n};\n\nMeasurementReport.registerTool(Length);\n\nexport default Length;\n","import TID300Measurement from \"./TID300Measurement\";\nimport unit2CodingValue from \"./unit2CodingValue\";\n\n/**\n * Expand an array of points stored as objects into\n * a flattened array of points\n *\n * @param points [{x: 0, y: 1}, {x: 1, y: 2}] or [{x: 0, y: 1, z: 0}, {x: 1, y: 2, z: 0}]\n * @return {Array} [point1x, point1y, point2x, point2y] or [point1x, point1y, point1z, point2x, point2y, point2z]\n */\nfunction expandPoints(points) {\n const allPoints = [];\n\n points.forEach(point => {\n allPoints.push(point[0] || point.x);\n allPoints.push(point[1] || point.y);\n if (point[2] !== undefined || point.z !== undefined) {\n allPoints.push(point[2] || point.z);\n }\n });\n\n return allPoints;\n}\n\nexport default class Polyline extends TID300Measurement {\n contentItem() {\n const {\n points,\n area,\n areaUnit = \"mm2\",\n ReferencedSOPSequence,\n use3DSpatialCoordinates = false,\n perimeter,\n unit = \"mm\"\n } = this.props;\n\n const GraphicData = expandPoints(points);\n\n // TODO: Add Mean and STDev value of (modality?) pixels\n return this.getMeasurement([\n {\n RelationshipType: \"CONTAINS\",\n ValueType: \"NUM\",\n ConceptNameCodeSequence: {\n CodeValue: \"131191004\",\n CodingSchemeDesignator: \"SCT\",\n CodeMeaning: \"Perimeter\"\n },\n MeasuredValueSequence: {\n MeasurementUnitsCodeSequence: unit2CodingValue(unit),\n NumericValue: perimeter\n },\n ContentSequence: {\n RelationshipType: \"INFERRED FROM\",\n ValueType: use3DSpatialCoordinates ? \"SCOORD3D\" : \"SCOORD\",\n GraphicType: \"POLYLINE\",\n GraphicData,\n ContentSequence: use3DSpatialCoordinates\n ? undefined\n : {\n RelationshipType: \"SELECTED FROM\",\n ValueType: \"IMAGE\",\n ReferencedSOPSequence\n }\n }\n },\n {\n // TODO: This feels weird to repeat the GraphicData\n RelationshipType: \"CONTAINS\",\n ValueType: \"NUM\",\n ConceptNameCodeSequence: {\n CodeValue: \"G-A166\",\n CodingSchemeDesignator: \"SRT\",\n CodeMeaning: \"Area\" // TODO: Look this up from a Code Meaning dictionary\n },\n MeasuredValueSequence: {\n MeasurementUnitsCodeSequence: unit2CodingValue(areaUnit),\n NumericValue: area\n },\n ContentSequence: {\n RelationshipType: \"INFERRED FROM\",\n ValueType: use3DSpatialCoordinates ? \"SCOORD3D\" : \"SCOORD\",\n GraphicType: \"POLYLINE\",\n GraphicData,\n ContentSequence: use3DSpatialCoordinates\n ? undefined\n : {\n RelationshipType: \"SELECTED FROM\",\n ValueType: \"IMAGE\",\n ReferencedSOPSequence\n }\n }\n }\n ]);\n }\n}\n","import MeasurementReport from \"./MeasurementReport\";\nimport TID300Polyline from \"../../utilities/TID300/Polyline\";\nimport CORNERSTONE_4_TAG from \"./cornerstone4Tag\";\n\nclass FreehandRoi {\n constructor() {}\n\n static getMeasurementData(MeasurementGroup) {\n const { defaultState, SCOORDGroup, NUMGroup } =\n MeasurementReport.getSetupMeasurementData(MeasurementGroup);\n\n const state = {\n ...defaultState,\n toolType: FreehandRoi.toolType,\n handles: {\n points: [],\n textBox: {\n active: false,\n hasMoved: false,\n movesIndependently: false,\n drawnIndependently: true,\n allowedOutsideImage: true,\n hasBoundingBox: true\n }\n },\n cachedStats: {\n area: NUMGroup ? NUMGroup.MeasuredValueSequence.NumericValue : 0\n },\n color: undefined,\n invalidated: true\n };\n const { GraphicData } = SCOORDGroup;\n for (let i = 0; i < GraphicData.length; i += 2) {\n state.handles.points.push({\n x: GraphicData[i],\n y: GraphicData[i + 1]\n });\n }\n\n return state;\n }\n\n static getTID300RepresentationArguments(tool) {\n const { handles, finding, findingSites, cachedStats = {} } = tool;\n const { points } = handles;\n const { area = 0, perimeter = 0 } = cachedStats;\n\n const trackingIdentifierTextValue =\n \"cornerstoneTools@^4.0.0:FreehandRoi\";\n\n return {\n points,\n area,\n perimeter,\n trackingIdentifierTextValue,\n finding,\n findingSites: findingSites || []\n };\n }\n}\n\nFreehandRoi.toolType = \"FreehandRoi\";\nFreehandRoi.utilityToolType = \"FreehandRoi\";\nFreehandRoi.TID300Representation = TID300Polyline;\nFreehandRoi.isValidCornerstoneTrackingIdentifier = TrackingIdentifier => {\n if (!TrackingIdentifier.includes(\":\")) {\n return false;\n }\n\n const [cornerstone4Tag, toolType] = TrackingIdentifier.split(\":\");\n\n if (cornerstone4Tag !== CORNERSTONE_4_TAG) {\n return false;\n }\n\n return toolType === FreehandRoi.toolType;\n};\n\nMeasurementReport.registerTool(FreehandRoi);\n\nexport default FreehandRoi;\n","import { DicomMetaDictionary } from \"../../DicomMetaDictionary.js\";\nimport TID300Measurement from \"./TID300Measurement.js\";\nimport unit2CodingValue from \"./unit2CodingValue.js\";\n\nexport default class Bidirectional extends TID300Measurement {\n contentItem() {\n const {\n longAxis,\n shortAxis,\n longAxisLength,\n shortAxisLength,\n unit,\n ReferencedSOPSequence\n } = this.props;\n\n return this.getMeasurement([\n {\n RelationshipType: \"CONTAINS\",\n ValueType: \"NUM\",\n ConceptNameCodeSequence: {\n CodeValue: \"G-A185\",\n CodingSchemeDesignator: \"SRT\",\n CodeMeaning: \"Long Axis\"\n },\n MeasuredValueSequence: {\n MeasurementUnitsCodeSequence: unit2CodingValue(unit),\n NumericValue: longAxisLength\n },\n ContentSequence: {\n RelationshipType: \"INFERRED FROM\",\n ValueType: \"SCOORD\",\n GraphicType: \"POLYLINE\",\n GraphicData: [\n longAxis.point1.x,\n longAxis.point1.y,\n longAxis.point2.x,\n longAxis.point2.y\n ],\n ContentSequence: {\n RelationshipType: \"SELECTED FROM\",\n ValueType: \"IMAGE\",\n ReferencedSOPSequence\n }\n }\n },\n {\n RelationshipType: \"CONTAINS\",\n ValueType: \"NUM\",\n ConceptNameCodeSequence: {\n CodeValue: \"G-A186\",\n CodingSchemeDesignator: \"SRT\",\n CodeMeaning: \"Short Axis\"\n },\n MeasuredValueSequence: {\n MeasurementUnitsCodeSequence: unit2CodingValue(unit),\n NumericValue: shortAxisLength\n },\n ContentSequence: {\n RelationshipType: \"INFERRED FROM\",\n ValueType: \"SCOORD\",\n GraphicType: \"POLYLINE\",\n GraphicData: [\n shortAxis.point1.x,\n shortAxis.point1.y,\n shortAxis.point2.x,\n shortAxis.point2.y\n ],\n ContentSequence: {\n RelationshipType: \"SELECTED FROM\",\n ValueType: \"IMAGE\",\n ReferencedSOPSequence\n }\n }\n }\n ]);\n }\n}\n","import MeasurementReport from \"./MeasurementReport\";\nimport TID300Bidirectional from \"../../utilities/TID300/Bidirectional\";\nimport CORNERSTONE_4_TAG from \"./cornerstone4Tag\";\nimport { toArray } from \"../helpers.js\";\n\nconst BIDIRECTIONAL = \"Bidirectional\";\nconst LONG_AXIS = \"Long Axis\";\nconst SHORT_AXIS = \"Short Axis\";\nconst FINDING = \"121071\";\nconst FINDING_SITE = \"G-C0E3\";\n\nclass Bidirectional {\n constructor() {}\n\n // TODO: this function is required for all Cornerstone Tool Adapters, since it is called by MeasurementReport.\n static getMeasurementData(MeasurementGroup) {\n const { ContentSequence } = MeasurementGroup;\n\n const findingGroup = toArray(ContentSequence).find(\n group => group.ConceptNameCodeSequence.CodeValue === FINDING\n );\n\n const findingSiteGroups = toArray(ContentSequence).filter(\n group => group.ConceptNameCodeSequence.CodeValue === FINDING_SITE\n );\n\n const longAxisNUMGroup = toArray(ContentSequence).find(\n group => group.ConceptNameCodeSequence.CodeMeaning === LONG_AXIS\n );\n\n const longAxisSCOORDGroup = toArray(\n longAxisNUMGroup.ContentSequence\n ).find(group => group.ValueType === \"SCOORD\");\n\n const shortAxisNUMGroup = toArray(ContentSequence).find(\n group => group.ConceptNameCodeSequence.CodeMeaning === SHORT_AXIS\n );\n\n const shortAxisSCOORDGroup = toArray(\n shortAxisNUMGroup.ContentSequence\n ).find(group => group.ValueType === \"SCOORD\");\n\n const { ReferencedSOPSequence } = longAxisSCOORDGroup.ContentSequence;\n const { ReferencedSOPInstanceUID, ReferencedFrameNumber } =\n ReferencedSOPSequence;\n\n // Long axis\n\n const longestDiameter = String(\n longAxisNUMGroup.MeasuredValueSequence.NumericValue\n );\n\n const shortestDiameter = String(\n shortAxisNUMGroup.MeasuredValueSequence.NumericValue\n );\n\n const bottomRight = {\n x: Math.max(\n longAxisSCOORDGroup.GraphicData[0],\n longAxisSCOORDGroup.GraphicData[2],\n shortAxisSCOORDGroup.GraphicData[0],\n shortAxisSCOORDGroup.GraphicData[2]\n ),\n y: Math.max(\n longAxisSCOORDGroup.GraphicData[1],\n longAxisSCOORDGroup.GraphicData[3],\n shortAxisSCOORDGroup.GraphicData[1],\n shortAxisSCOORDGroup.GraphicData[3]\n )\n };\n\n const state = {\n sopInstanceUid: ReferencedSOPInstanceUID,\n frameIndex: ReferencedFrameNumber || 1,\n toolType: Bidirectional.toolType,\n active: false,\n handles: {\n start: {\n x: longAxisSCOORDGroup.GraphicData[0],\n y: longAxisSCOORDGroup.GraphicData[1],\n drawnIndependently: false,\n allowedOutsideImage: false,\n active: false,\n highlight: false,\n index: 0\n },\n end: {\n x: longAxisSCOORDGroup.GraphicData[2],\n y: longAxisSCOORDGroup.GraphicData[3],\n drawnIndependently: false,\n allowedOutsideImage: false,\n active: false,\n highlight: false,\n index: 1\n },\n perpendicularStart: {\n x: shortAxisSCOORDGroup.GraphicData[0],\n y: shortAxisSCOORDGroup.GraphicData[1],\n drawnIndependently: false,\n allowedOutsideImage: false,\n active: false,\n highlight: false,\n index: 2\n },\n perpendicularEnd: {\n x: shortAxisSCOORDGroup.GraphicData[2],\n y: shortAxisSCOORDGroup.GraphicData[3],\n drawnIndependently: false,\n allowedOutsideImage: false,\n active: false,\n highlight: false,\n index: 3\n },\n textBox: {\n highlight: false,\n hasMoved: true,\n active: false,\n movesIndependently: false,\n drawnIndependently: true,\n allowedOutsideImage: true,\n hasBoundingBox: true,\n x: bottomRight.x + 10,\n y: bottomRight.y + 10\n }\n },\n invalidated: false,\n isCreating: false,\n longestDiameter,\n shortestDiameter,\n toolType: \"Bidirectional\",\n toolName: \"Bidirectional\",\n visible: true,\n finding: findingGroup\n ? findingGroup.ConceptCodeSequence\n : undefined,\n findingSites: findingSiteGroups.map(fsg => fsg.ConceptCodeSequence)\n };\n\n return state;\n }\n\n static getTID300RepresentationArguments(tool) {\n const { start, end, perpendicularStart, perpendicularEnd } =\n tool.handles;\n const { shortestDiameter, longestDiameter, finding, findingSites } =\n tool;\n\n const trackingIdentifierTextValue =\n \"cornerstoneTools@^4.0.0:Bidirectional\";\n\n return {\n longAxis: {\n point1: start,\n point2: end\n },\n shortAxis: {\n point1: perpendicularStart,\n point2: perpendicularEnd\n },\n longAxisLength: longestDiameter,\n shortAxisLength: shortestDiameter,\n trackingIdentifierTextValue,\n finding: finding,\n findingSites: findingSites || []\n };\n }\n}\n\nBidirectional.toolType = BIDIRECTIONAL;\nBidirectional.utilityToolType = BIDIRECTIONAL;\nBidirectional.TID300Representation = TID300Bidirectional;\nBidirectional.isValidCornerstoneTrackingIdentifier = TrackingIdentifier => {\n if (!TrackingIdentifier.includes(\":\")) {\n return false;\n }\n\n const [cornerstone4Tag, toolType] = TrackingIdentifier.split(\":\");\n\n if (cornerstone4Tag !== CORNERSTONE_4_TAG) {\n return false;\n }\n\n return toolType === BIDIRECTIONAL;\n};\n\nMeasurementReport.registerTool(Bidirectional);\n\nexport default Bidirectional;\n","import TID300Measurement from \"./TID300Measurement.js\";\nimport unit2CodingValue from \"./unit2CodingValue.js\";\n\n/**\n * Expand an array of points stored as objects into\n * a flattened array of points\n *\n * @param points\n * @return {Array}\n */\nfunction expandPoints(points) {\n const allPoints = [];\n\n points.forEach(point => {\n allPoints.push(point.x);\n allPoints.push(point.y);\n });\n\n return allPoints;\n}\n\nexport default class Ellipse extends TID300Measurement {\n contentItem() {\n const { points, ReferencedSOPSequence, area, areaUnit } = this.props;\n\n const GraphicData = expandPoints(points);\n\n return this.getMeasurement([\n {\n RelationshipType: \"CONTAINS\",\n ValueType: \"NUM\",\n ConceptNameCodeSequence: {\n CodeValue: \"G-D7FE\",\n CodingSchemeDesignator: \"SRT\",\n CodeMeaning: \"AREA\"\n },\n MeasuredValueSequence: {\n MeasurementUnitsCodeSequence: unit2CodingValue(areaUnit),\n NumericValue: area\n },\n ContentSequence: {\n RelationshipType: \"INFERRED FROM\",\n ValueType: \"SCOORD\",\n GraphicType: \"ELLIPSE\",\n GraphicData,\n ContentSequence: {\n RelationshipType: \"SELECTED FROM\",\n ValueType: \"IMAGE\",\n ReferencedSOPSequence\n }\n }\n }\n ]);\n }\n}\n","import MeasurementReport from \"./MeasurementReport\";\nimport TID300Ellipse from \"../../utilities/TID300/Ellipse\";\nimport CORNERSTONE_4_TAG from \"./cornerstone4Tag\";\nimport { toArray } from \"../helpers.js\";\n\nconst ELLIPTICALROI = \"EllipticalRoi\";\nconst FINDING = \"121071\";\nconst FINDING_SITE = \"G-C0E3\";\n\nclass EllipticalRoi {\n constructor() {}\n\n // TODO: this function is required for all Cornerstone Tool Adapters, since it is called by MeasurementReport.\n static getMeasurementData(MeasurementGroup) {\n const { defaultState, NUMGroup, SCOORDGroup } =\n MeasurementReport.getSetupMeasurementData(MeasurementGroup);\n\n const { GraphicData } = SCOORDGroup;\n\n const majorAxis = [\n { x: GraphicData[0], y: GraphicData[1] },\n { x: GraphicData[2], y: GraphicData[3] }\n ];\n const minorAxis = [\n { x: GraphicData[4], y: GraphicData[5] },\n { x: GraphicData[6], y: GraphicData[7] }\n ];\n\n // Calculate two opposite corners of box defined by two axes.\n\n const minorAxisLength = Math.sqrt(\n Math.pow(minorAxis[0].x - minorAxis[1].x, 2) +\n Math.pow(minorAxis[0].y - minorAxis[1].y, 2)\n );\n\n const minorAxisDirection = {\n x: (minorAxis[1].x - minorAxis[0].x) / minorAxisLength,\n y: (minorAxis[1].y - minorAxis[0].y) / minorAxisLength\n };\n\n const halfMinorAxisLength = minorAxisLength / 2;\n\n // First end point of major axis + half minor axis vector\n const corner1 = {\n x: majorAxis[0].x + minorAxisDirection.x * halfMinorAxisLength,\n y: majorAxis[0].y + minorAxisDirection.y * halfMinorAxisLength\n };\n\n // Second end point of major axis - half of minor axis vector\n const corner2 = {\n x: majorAxis[1].x - minorAxisDirection.x * halfMinorAxisLength,\n y: majorAxis[1].y - minorAxisDirection.y * halfMinorAxisLength\n };\n const state = {\n ...defaultState,\n toolType: EllipticalRoi.toolType,\n active: false,\n cachedStats: {\n area: NUMGroup ? NUMGroup.MeasuredValueSequence.NumericValue : 0\n },\n handles: {\n end: {\n x: corner1.x,\n y: corner1.y,\n highlight: false,\n active: false\n },\n initialRotation: 0,\n start: {\n x: corner2.x,\n y: corner2.y,\n highlight: false,\n active: false\n },\n textBox: {\n hasMoved: false,\n movesIndependently: false,\n drawnIndependently: true,\n allowedOutsideImage: true,\n hasBoundingBox: true\n }\n },\n invalidated: true,\n visible: true\n };\n\n return state;\n }\n\n static getTID300RepresentationArguments(tool) {\n const { cachedStats = {}, handles, finding, findingSites } = tool;\n const { start, end } = handles;\n const { area } = cachedStats;\n\n const halfXLength = Math.abs(start.x - end.x) / 2;\n const halfYLength = Math.abs(start.y - end.y) / 2;\n\n const points = [];\n\n const center = { x: (start.x + end.x) / 2, y: (start.y + end.y) / 2 };\n\n if (halfXLength > halfYLength) {\n // X-axis major\n // Major axis\n points.push({ x: center.x - halfXLength, y: center.y });\n points.push({ x: center.x + halfXLength, y: center.y });\n // Minor axis\n points.push({ x: center.x, y: center.y - halfYLength });\n points.push({ x: center.x, y: center.y + halfYLength });\n } else {\n // Y-axis major\n // Major axis\n points.push({ x: center.x, y: center.y - halfYLength });\n points.push({ x: center.x, y: center.y + halfYLength });\n // Minor axis\n points.push({ x: center.x - halfXLength, y: center.y });\n points.push({ x: center.x + halfXLength, y: center.y });\n }\n\n const trackingIdentifierTextValue =\n \"cornerstoneTools@^4.0.0:EllipticalRoi\";\n\n return {\n area,\n points,\n trackingIdentifierTextValue,\n finding,\n findingSites: findingSites || []\n };\n }\n}\n\nEllipticalRoi.toolType = ELLIPTICALROI;\nEllipticalRoi.utilityToolType = ELLIPTICALROI;\nEllipticalRoi.TID300Representation = TID300Ellipse;\nEllipticalRoi.isValidCornerstoneTrackingIdentifier = TrackingIdentifier => {\n if (!TrackingIdentifier.includes(\":\")) {\n return false;\n }\n\n const [cornerstone4Tag, toolType] = TrackingIdentifier.split(\":\");\n\n if (cornerstone4Tag !== CORNERSTONE_4_TAG) {\n return false;\n }\n\n return toolType === ELLIPTICALROI;\n};\n\nMeasurementReport.registerTool(EllipticalRoi);\n\nexport default EllipticalRoi;\n","import TID300Measurement from \"./TID300Measurement.js\";\nimport unit2CodingValue from \"./unit2CodingValue.js\";\n\n/**\n * Expand an array of points stored as objects into\n * a flattened array of points\n *\n * @param points [{x: 0, y: 1}, {x: 1, y: 2}] or [{x: 0, y: 1, z: 0}, {x: 1, y: 2, z: 0}]\n * @return {Array} [point1x, point1y, point2x, point2y] or [point1x, point1y, point1z, point2x, point2y, point2z]\n */\nfunction expandPoints(points) {\n const allPoints = [];\n\n points.forEach(point => {\n allPoints.push(point.x);\n allPoints.push(point.y);\n });\n\n return allPoints;\n}\n\nexport default class Circle extends TID300Measurement {\n contentItem() {\n const {\n points,\n ReferencedSOPSequence,\n use3DSpatialCoordinates = false,\n perimeter,\n area,\n areaUnit = \"mm2\",\n unit = \"mm\"\n } = this.props;\n\n // Combine all lengths to save the perimeter\n // @ToDO The permiter has to be implemented\n // const reducer = (accumulator, currentValue) => accumulator + currentValue;\n // const perimeter = lengths.reduce(reducer);\n const GraphicData = expandPoints(points);\n\n // TODO: Add Mean and STDev value of (modality?) pixels\n\n return this.getMeasurement([\n {\n RelationshipType: \"CONTAINS\",\n ValueType: \"NUM\",\n ConceptNameCodeSequence: {\n CodeValue: \"G-A197\",\n CodingSchemeDesignator: \"SRT\",\n CodeMeaning: \"Perimeter\" // TODO: Look this up from a Code Meaning dictionary\n },\n MeasuredValueSequence: {\n MeasurementUnitsCodeSequence: unit2CodingValue(unit),\n NumericValue: perimeter\n },\n ContentSequence: {\n RelationshipType: \"INFERRED FROM\",\n ValueType: use3DSpatialCoordinates ? \"SCOORD3D\" : \"SCOORD\",\n GraphicType: \"CIRCLE\",\n GraphicData,\n ContentSequence: use3DSpatialCoordinates\n ? undefined\n : {\n RelationshipType: \"SELECTED FROM\",\n ValueType: \"IMAGE\",\n ReferencedSOPSequence\n }\n }\n },\n {\n // TODO: This feels weird to repeat the GraphicData\n RelationshipType: \"CONTAINS\",\n ValueType: \"NUM\",\n ConceptNameCodeSequence: {\n CodeValue: \"G-A166\",\n CodingSchemeDesignator: \"SRT\",\n CodeMeaning: \"Area\" // TODO: Look this up from a Code Meaning dictionary\n },\n MeasuredValueSequence: {\n MeasurementUnitsCodeSequence: unit2CodingValue(areaUnit),\n NumericValue: area\n },\n ContentSequence: {\n RelationshipType: \"INFERRED FROM\",\n ValueType: use3DSpatialCoordinates ? \"SCOORD3D\" : \"SCOORD\",\n GraphicType: \"CIRCLE\",\n GraphicData,\n ContentSequence: use3DSpatialCoordinates\n ? undefined\n : {\n RelationshipType: \"SELECTED FROM\",\n ValueType: \"IMAGE\",\n ReferencedSOPSequence\n }\n }\n }\n ]);\n }\n}\n","import MeasurementReport from \"./MeasurementReport\";\nimport TID300Circle from \"../../utilities/TID300/Circle\";\nimport CORNERSTONE_4_TAG from \"./cornerstone4Tag\";\n\nconst CIRCLEROI = \"CircleRoi\";\n\nclass CircleRoi {\n constructor() {}\n\n /** Gets the measurement data for cornerstone, given DICOM SR measurement data. */\n static getMeasurementData(MeasurementGroup) {\n const { defaultState, NUMGroup, SCOORDGroup } =\n MeasurementReport.getSetupMeasurementData(MeasurementGroup);\n\n const { GraphicData } = SCOORDGroup;\n\n const center = { x: GraphicData[0], y: GraphicData[1] };\n const end = { x: GraphicData[2], y: GraphicData[3] };\n\n const state = {\n ...defaultState,\n toolType: CircleRoi.toolType,\n active: false,\n cachedStats: {\n area: NUMGroup\n ? NUMGroup.MeasuredValueSequence.NumericValue\n : 0,\n // Dummy values to be updated by cornerstone\n radius: 0,\n perimeter: 0\n },\n handles: {\n end: {\n ...end,\n highlight: false,\n active: false\n },\n initialRotation: 0,\n start: {\n ...center,\n highlight: false,\n active: false\n },\n textBox: {\n hasMoved: false,\n movesIndependently: false,\n drawnIndependently: true,\n allowedOutsideImage: true,\n hasBoundingBox: true\n }\n },\n invalidated: true,\n visible: true\n };\n\n return state;\n }\n\n /**\n * Gets the TID 300 representation of a circle, given the cornerstone representation.\n *\n * @param {Object} tool\n * @returns\n */\n static getTID300RepresentationArguments(tool) {\n const { cachedStats = {}, handles, finding, findingSites } = tool;\n const { start: center, end } = handles;\n const { area, areaUnit = \"mm2\", unit = \"mm\", radius } = cachedStats;\n\n const perimeter = 2 * Math.PI * radius;\n const points = [];\n\n points.push(center);\n points.push(end);\n\n const trackingIdentifierTextValue = \"cornerstoneTools@^4.0.0:CircleRoi\";\n\n return {\n area,\n areaUnit,\n perimeter,\n unit,\n radius,\n points,\n trackingIdentifierTextValue,\n finding,\n findingSites: findingSites || []\n };\n }\n}\n\nCircleRoi.toolType = CIRCLEROI;\nCircleRoi.utilityToolType = CIRCLEROI;\nCircleRoi.TID300Representation = TID300Circle;\nCircleRoi.isValidCornerstoneTrackingIdentifier = TrackingIdentifier => {\n if (!TrackingIdentifier.includes(\":\")) {\n return false;\n }\n\n const [cornerstone4Tag, toolType] = TrackingIdentifier.split(\":\");\n\n if (cornerstone4Tag !== CORNERSTONE_4_TAG) {\n return false;\n }\n\n return toolType === CIRCLEROI;\n};\n\nMeasurementReport.registerTool(CircleRoi);\n\nexport default CircleRoi;\n","import { DicomMetaDictionary } from \"../../DicomMetaDictionary.js\";\nimport TID300Measurement from \"./TID300Measurement.js\";\n\nexport default class Point extends TID300Measurement {\n contentItem() {\n const {\n points,\n ReferencedSOPSequence,\n use3DSpatialCoordinates = false\n } = this.props;\n\n const GraphicData = use3DSpatialCoordinates\n ? [points[0].x, points[0].y, points[0].z]\n : [points[0].x, points[0].y];\n // Allow storing another point as part of an indicator showing a single point\n if (points.length == 2) {\n GraphicData.push(points[1].x);\n GraphicData.push(points[1].y);\n if (use3DSpatialCoordinates) GraphicData.push(points[1].z);\n }\n return this.getMeasurement([\n {\n RelationshipType: \"CONTAINS\",\n ValueType: \"NUM\",\n ConceptNameCodeSequence: {\n CodeValue: \"111010\",\n CodingSchemeDesignator: \"DCM\",\n CodeMeaning: \"Center\"\n },\n //MeasuredValueSequence: ,\n ContentSequence: {\n RelationshipType: \"INFERRED FROM\",\n ValueType: use3DSpatialCoordinates ? \"SCOORD3D\" : \"SCOORD\",\n GraphicType: \"POINT\",\n GraphicData,\n ContentSequence: use3DSpatialCoordinates\n ? undefined\n : {\n RelationshipType: \"SELECTED FROM\",\n ValueType: \"IMAGE\",\n ReferencedSOPSequence\n }\n }\n }\n ]);\n }\n}\n","import MeasurementReport from \"./MeasurementReport.js\";\nimport TID300Point from \"../../utilities/TID300/Point.js\";\nimport CORNERSTONE_4_TAG from \"./cornerstone4Tag\";\n\nconst ARROW_ANNOTATE = \"ArrowAnnotate\";\nconst CORNERSTONEFREETEXT = \"CORNERSTONEFREETEXT\";\n\nclass ArrowAnnotate {\n constructor() {}\n\n static getMeasurementData(MeasurementGroup) {\n const { defaultState, SCOORDGroup, findingGroup } =\n MeasurementReport.getSetupMeasurementData(MeasurementGroup);\n\n const text = findingGroup.ConceptCodeSequence.CodeMeaning;\n\n const { GraphicData } = SCOORDGroup;\n\n const state = {\n ...defaultState,\n toolType: ArrowAnnotate.toolType,\n active: false,\n handles: {\n start: {\n x: GraphicData[0],\n y: GraphicData[1],\n highlight: true,\n active: false\n },\n // Use a generic offset if the stored data doesn't have the endpoint, otherwise\n // use the actual endpoint.\n end: {\n x:\n GraphicData.length == 4\n ? GraphicData[2]\n : GraphicData[0] + 20,\n y:\n GraphicData.length == 4\n ? GraphicData[3]\n : GraphicData[1] + 20,\n highlight: true,\n active: false\n },\n textBox: {\n hasMoved: false,\n movesIndependently: false,\n drawnIndependently: true,\n allowedOutsideImage: true,\n hasBoundingBox: true\n }\n },\n invalidated: true,\n text,\n visible: true\n };\n\n return state;\n }\n\n static getTID300RepresentationArguments(tool) {\n const points = [tool.handles.start, tool.handles.end];\n\n let { finding, findingSites } = tool;\n\n const TID300RepresentationArguments = {\n points,\n trackingIdentifierTextValue: `cornerstoneTools@^4.0.0:ArrowAnnotate`,\n findingSites: findingSites || []\n };\n\n // If freetext finding isn't present, add it from the tool text.\n if (!finding || finding.CodeValue !== CORNERSTONEFREETEXT) {\n finding = {\n CodeValue: CORNERSTONEFREETEXT,\n CodingSchemeDesignator: \"CST4\",\n CodeMeaning: tool.text\n };\n }\n\n TID300RepresentationArguments.finding = finding;\n\n return TID300RepresentationArguments;\n }\n}\n\nArrowAnnotate.toolType = ARROW_ANNOTATE;\nArrowAnnotate.utilityToolType = ARROW_ANNOTATE;\nArrowAnnotate.TID300Representation = TID300Point;\nArrowAnnotate.isValidCornerstoneTrackingIdentifier = TrackingIdentifier => {\n if (!TrackingIdentifier.includes(\":\")) {\n return false;\n }\n\n const [cornerstone4Tag, toolType] = TrackingIdentifier.split(\":\");\n\n if (cornerstone4Tag !== CORNERSTONE_4_TAG) {\n return false;\n }\n\n return toolType === ARROW_ANNOTATE;\n};\n\nMeasurementReport.registerTool(ArrowAnnotate);\n\nexport default ArrowAnnotate;\n","\"use strict\"\n\nfunction iota(n) {\n var result = new Array(n)\n for(var i=0; i\n * @license MIT\n */\n\n// The _isBuffer check is for Safari 5-7 support, because it's missing\n// Object.prototype.constructor. Remove this eventually\nmodule.exports = function (obj) {\n return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer)\n}\n\nfunction isBuffer (obj) {\n return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n\n// For Node v0.10 support. Remove this eventually.\nfunction isSlowBuffer (obj) {\n return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(0, 0))\n}\n","var iota = require(\"iota-array\")\nvar isBuffer = require(\"is-buffer\")\n\nvar hasTypedArrays = ((typeof Float64Array) !== \"undefined\")\n\nfunction compare1st(a, b) {\n return a[0] - b[0]\n}\n\nfunction order() {\n var stride = this.stride\n var terms = new Array(stride.length)\n var i\n for(i=0; iMath.abs(this.stride[1]))?[1,0]:[0,1]}})\")\n } else if(dimension === 3) {\n code.push(\n\"var s0=Math.abs(this.stride[0]),s1=Math.abs(this.stride[1]),s2=Math.abs(this.stride[2]);\\\nif(s0>s1){\\\nif(s1>s2){\\\nreturn [2,1,0];\\\n}else if(s0>s2){\\\nreturn [1,2,0];\\\n}else{\\\nreturn [1,0,2];\\\n}\\\n}else if(s0>s2){\\\nreturn [2,0,1];\\\n}else if(s2>s1){\\\nreturn [0,1,2];\\\n}else{\\\nreturn [0,2,1];\\\n}}})\")\n }\n } else {\n code.push(\"ORDER})\")\n }\n }\n\n //view.set(i0, ..., v):\n code.push(\n\"proto.set=function \"+className+\"_set(\"+args.join(\",\")+\",v){\")\n if(useGetters) {\n code.push(\"return this.data.set(\"+index_str+\",v)}\")\n } else {\n code.push(\"return this.data[\"+index_str+\"]=v}\")\n }\n\n //view.get(i0, ...):\n code.push(\"proto.get=function \"+className+\"_get(\"+args.join(\",\")+\"){\")\n if(useGetters) {\n code.push(\"return this.data.get(\"+index_str+\")}\")\n } else {\n code.push(\"return this.data[\"+index_str+\"]}\")\n }\n\n //view.index:\n code.push(\n \"proto.index=function \"+className+\"_index(\", args.join(), \"){return \"+index_str+\"}\")\n\n //view.hi():\n code.push(\"proto.hi=function \"+className+\"_hi(\"+args.join(\",\")+\"){return new \"+className+\"(this.data,\"+\n indices.map(function(i) {\n return [\"(typeof i\",i,\"!=='number'||i\",i,\"<0)?this.shape[\", i, \"]:i\", i,\"|0\"].join(\"\")\n }).join(\",\")+\",\"+\n indices.map(function(i) {\n return \"this.stride[\"+i + \"]\"\n }).join(\",\")+\",this.offset)}\")\n\n //view.lo():\n var a_vars = indices.map(function(i) { return \"a\"+i+\"=this.shape[\"+i+\"]\" })\n var c_vars = indices.map(function(i) { return \"c\"+i+\"=this.stride[\"+i+\"]\" })\n code.push(\"proto.lo=function \"+className+\"_lo(\"+args.join(\",\")+\"){var b=this.offset,d=0,\"+a_vars.join(\",\")+\",\"+c_vars.join(\",\"))\n for(var i=0; i=0){\\\nd=i\"+i+\"|0;\\\nb+=c\"+i+\"*d;\\\na\"+i+\"-=d}\")\n }\n code.push(\"return new \"+className+\"(this.data,\"+\n indices.map(function(i) {\n return \"a\"+i\n }).join(\",\")+\",\"+\n indices.map(function(i) {\n return \"c\"+i\n }).join(\",\")+\",b)}\")\n\n //view.step():\n code.push(\"proto.step=function \"+className+\"_step(\"+args.join(\",\")+\"){var \"+\n indices.map(function(i) {\n return \"a\"+i+\"=this.shape[\"+i+\"]\"\n }).join(\",\")+\",\"+\n indices.map(function(i) {\n return \"b\"+i+\"=this.stride[\"+i+\"]\"\n }).join(\",\")+\",c=this.offset,d=0,ceil=Math.ceil\")\n for(var i=0; i=0){c=(c+this.stride[\"+i+\"]*i\"+i+\")|0}else{a.push(this.shape[\"+i+\"]);b.push(this.stride[\"+i+\"])}\")\n }\n code.push(\"var ctor=CTOR_LIST[a.length+1];return ctor(this.data,a,b,c)}\")\n\n //Add return statement\n code.push(\"return function construct_\"+className+\"(data,shape,stride,offset){return new \"+className+\"(data,\"+\n indices.map(function(i) {\n return \"shape[\"+i+\"]\"\n }).join(\",\")+\",\"+\n indices.map(function(i) {\n return \"stride[\"+i+\"]\"\n }).join(\",\")+\",offset)}\")\n\n //Compile procedure\n var procedure = new Function(\"CTOR_LIST\", \"ORDER\", code.join(\"\\n\"))\n return procedure(CACHED_CONSTRUCTORS[dtype], order)\n}\n\nfunction arrayDType(data) {\n if(isBuffer(data)) {\n return \"buffer\"\n }\n if(hasTypedArrays) {\n switch(Object.prototype.toString.call(data)) {\n case \"[object Float64Array]\":\n return \"float64\"\n case \"[object Float32Array]\":\n return \"float32\"\n case \"[object Int8Array]\":\n return \"int8\"\n case \"[object Int16Array]\":\n return \"int16\"\n case \"[object Int32Array]\":\n return \"int32\"\n case \"[object Uint8Array]\":\n return \"uint8\"\n case \"[object Uint16Array]\":\n return \"uint16\"\n case \"[object Uint32Array]\":\n return \"uint32\"\n case \"[object Uint8ClampedArray]\":\n return \"uint8_clamped\"\n case \"[object BigInt64Array]\":\n return \"bigint64\"\n case \"[object BigUint64Array]\":\n return \"biguint64\"\n }\n }\n if(Array.isArray(data)) {\n return \"array\"\n }\n return \"generic\"\n}\n\nvar CACHED_CONSTRUCTORS = {\n \"float32\":[],\n \"float64\":[],\n \"int8\":[],\n \"int16\":[],\n \"int32\":[],\n \"uint8\":[],\n \"uint16\":[],\n \"uint32\":[],\n \"array\":[],\n \"uint8_clamped\":[],\n \"bigint64\": [],\n \"biguint64\": [],\n \"buffer\":[],\n \"generic\":[]\n}\n\n;(function() {\n for(var id in CACHED_CONSTRUCTORS) {\n CACHED_CONSTRUCTORS[id].push(compileConstructor(id, -1))\n }\n});\n\nfunction wrappedNDArrayCtor(data, shape, stride, offset) {\n if(data === undefined) {\n var ctor = CACHED_CONSTRUCTORS.array[0]\n return ctor([])\n } else if(typeof data === \"number\") {\n data = [data]\n }\n if(shape === undefined) {\n shape = [ data.length ]\n }\n var d = shape.length\n if(stride === undefined) {\n stride = new Array(d)\n for(var i=d-1, sz=1; i>=0; --i) {\n stride[i] = sz\n sz *= shape[i]\n }\n }\n if(offset === undefined) {\n offset = 0\n for(var i=0; i {\n return [iop[0], iop[1], iop[2], -iop[3], -iop[4], -iop[5]];\n },\n /**\n * v: Flips ImageOrientationPatient in the vertical direction.\n * @param {Number[6]} iop - ImageOrientationPatient\n * @returns {Number[6]} The transformed ImageOrientationPatient\n */\n v: iop => {\n return [-iop[0], -iop[1], -iop[2], iop[3], iop[4], iop[5]];\n },\n /**\n * hv: Flips ImageOrientationPatient in the horizontal and vertical directions.\n * @param {Number[6]} iop - ImageOrientationPatient\n * @returns {Number[6]} The transformed ImageOrientationPatient\n */\n hv: iop => {\n return [-iop[0], -iop[1], -iop[2], -iop[3], -iop[4], -iop[5]];\n }\n};\n\nexport { flipImageOrientationPatient };\n","import crossProduct3D from \"./crossProduct3D.js\";\n\n/**\n * rotateVectorAroundUnitVector - Rotates vector v around unit vector k using\n * Rodrigues' rotation formula.\n *\n * @param {Number[3]} v The vector to rotate.\n * @param {Number[3]} k The unit vector of the axis of rotation.\n * @param {Number} theta The rotation magnitude in radians.\n * @return {Number[3]} The rotated v vector.\n */\nexport default function (v, k, theta) {\n const cosTheta = Math.cos(theta);\n const sinTheta = Math.sin(theta);\n const oneMinusCosTheta = 1.0 - cosTheta;\n const kdotv = k[0] * v[0] + k[1] * v[1] + k[2] * v[2];\n const vRot = [];\n const kxv = crossProduct3D(k, v);\n\n for (let i = 0; i <= 2; i++) {\n vRot[i] =\n v[i] * cosTheta +\n kxv[i] * sinTheta +\n k[i] * kdotv * oneMinusCosTheta;\n\n vRot[i] *= -1;\n }\n\n return vRot;\n}\n","import crossProduct3D from \"./crossProduct3D.js\";\nimport rotateVectorAroundUnitVector from \"./rotateVectorAroundUnitVector.js\";\n\n/**\n * rotateDirectionCosinesInPlane - rotates the row and column cosines around\n * their normal by angle theta.\n *\n * @param {Number[6]} iop The row (0..2) an column (3..5) direction cosines.\n * @param {Number} theta The rotation magnitude in radians.\n * @return {Number[6]} The rotate row (0..2) and column (3..5) direction cosines.\n */\nexport default function (iop, theta) {\n const r = [iop[0], iop[1], iop[2]];\n const c = [iop[3], iop[4], iop[5]];\n const rxc = crossProduct3D(r, c);\n\n const rRot = rotateVectorAroundUnitVector(r, rxc, theta);\n const cRot = rotateVectorAroundUnitVector(c, rxc, theta);\n\n return [...rRot, ...cRot];\n}\n","import ndarray from \"ndarray\";\n\nconst flipMatrix2D = {\n h,\n v\n};\n\nexport { flipMatrix2D };\n\n/**\n * flipMatrix2D.h - Flips a 2D matrix in the horizontal direction.\n *\n * @param {Ndarry} matrix The matrix to flip.\n * @return {Ndarry} The flipped matrix.\n */\nfunction h(matrix) {\n const [rows, cols] = matrix.shape;\n\n const result = ndarray(new Uint8Array(rows * cols), [rows, cols]);\n\n for (let i = 0; i < rows; i++) {\n for (let j = 0; j < cols; j++) {\n result.set(i, j, matrix.get(i, cols - 1 - j));\n }\n }\n\n return result;\n}\n\n/**\n * flipMatrix2D.h - Flips a 2D matrix in the vertical direction.\n *\n * @param {Ndarry} matrix The matrix to flip.\n * @return {Ndarry} The flipped matrix.\n */\nfunction v(matrix) {\n const [rows, cols] = matrix.shape;\n\n const result = ndarray(new Uint8Array(rows * cols), [rows, cols]);\n\n for (let j = 0; j < cols; j++) {\n for (let i = 0; i < rows; i++) {\n result.set(i, j, matrix.get(rows - 1 - i, j));\n }\n }\n\n return result;\n}\n","import ndarray from \"ndarray\";\n\n/**\n * anonymous function - Rotates a matrix by 90 degrees.\n *\n * @param {Ndarray} matrix The matrix to rotate.\n * @return {Ndarry} The rotated matrix.\n */\nexport default function (matrix) {\n const [rows, cols] = matrix.shape;\n\n //debugPrintMatrix(matrix);\n\n let result = ndarray(new Uint8Array(rows * cols), [cols, rows]);\n\n let resultColsMinus1 = result.shape[1] - 1;\n\n for (let i = 0; i < rows; i++) {\n for (let j = 0; j < cols; j++) {\n result.set(j, resultColsMinus1 - i, matrix.get(i, j));\n }\n }\n\n //debugPrintMatrix(result);\n\n return result;\n}\n\nfunction debugPrintMatrix(m) {\n console.log(`shape: (${m.shape[0]}, ${m.shape[1]})`);\n\n for (let i = 0; i < m.shape[0]; i++) {\n let row = \"\";\n for (let j = 0; j < m.shape[1]; j++) {\n row += `${m.get(i, j)} `;\n }\n console.log(row);\n }\n}\n","/**\n * nearlyEqual - Returns true if a and b are nearly equal\n * within a tolerance.\n *\n * Inspiration for this function logic source comes from:\n * https://floating-point-gui.de/errors/comparison/\n *\n * https://floating-point-gui.de is published under\n * the Creative Commons Attribution License (BY):\n * http://creativecommons.org/licenses/by/3.0/\n *\n * The actual implementation has been adjusted\n * as discussed here: https://github.com/dcmjs-org/dcmjs/pull/304\n *\n * More information on floating point comparison here:\n * http://randomascii.wordpress.com/2012/02/25/comparing-floating-point-numbers-2012-edition/\n *\n * @param {Number} a\n * @param {Number} b\n * @param {Number} tolerance.\n * @return {Boolean} True if a and b are nearly equal.\n */\nexport default function nearlyEqual(a, b, epsilon) {\n const absA = Math.abs(a);\n const absB = Math.abs(b);\n const diff = Math.abs(a - b);\n if (a === b) {\n // shortcut, handles infinities\n return true;\n } else if (a === 0 || b === 0 || absA + absB < epsilon * epsilon) {\n // a or b is zero or both are extremely close to it\n // relative error is less meaningful here\n return diff < epsilon;\n } else {\n // use relative error\n return diff / Math.min(absA + absB, Number.MAX_VALUE) < epsilon;\n }\n}\n","import log from \"../../log.js\";\nimport ndarray from \"ndarray\";\nimport { BitArray } from \"../../bitArray.js\";\nimport { datasetToBlob } from \"../../datasetToBlob.js\";\nimport { DicomMessage } from \"../../DicomMessage.js\";\nimport { DicomMetaDictionary } from \"../../DicomMetaDictionary.js\";\nimport { Normalizer } from \"../../normalizers.js\";\nimport { Segmentation as SegmentationDerivation } from \"../../derivations/index.js\";\nimport {\n rotateDirectionCosinesInPlane,\n flipImageOrientationPatient as flipIOP,\n flipMatrix2D,\n rotateMatrix902D\n} from \"../../utilities/orientation/index.js\";\n\nconst Segmentation = {\n generateSegmentation,\n generateToolState\n};\n\nexport default Segmentation;\n\n/**\n *\n * @typedef {Object} BrushData\n * @property {Object} toolState - The cornerstoneTools global toolState.\n * @property {Object[]} segments - The cornerstoneTools segment metadata that corresponds to the\n * seriesInstanceUid.\n */\n\n/**\n * generateSegmentation - Generates cornerstoneTools brush data, given a stack of\n * imageIds, images and the cornerstoneTools brushData.\n *\n * @param {object[]} images An array of the cornerstone image objects.\n * @param {BrushData} brushData and object containing the brushData.\n * @returns {type} description\n */\nfunction generateSegmentation(\n images,\n brushData,\n options = { includeSliceSpacing: true }\n) {\n const { toolState, segments } = brushData;\n\n // Calculate the dimensions of the data cube.\n const image0 = images[0];\n\n const dims = {\n x: image0.columns,\n y: image0.rows,\n z: images.length\n };\n\n dims.xy = dims.x * dims.y;\n\n const numSegments = _getSegCount(seg, segments);\n\n if (!numSegments) {\n throw new Error(\"No segments to export!\");\n }\n\n const isMultiframe = image0.imageId.includes(\"?frame\");\n const seg = _createSegFromImages(images, isMultiframe, options);\n\n const { referencedFramesPerSegment, segmentIndicies } =\n _getNumberOfFramesPerSegment(toolState, images, segments);\n\n let NumberOfFrames = 0;\n\n for (let i = 0; i < referencedFramesPerSegment.length; i++) {\n NumberOfFrames += referencedFramesPerSegment[i].length;\n }\n\n seg.setNumberOfFrames(NumberOfFrames);\n\n for (let i = 0; i < segmentIndicies.length; i++) {\n const segmentIndex = segmentIndicies[i];\n const referencedFrameIndicies = referencedFramesPerSegment[i];\n\n // Frame numbers start from 1.\n const referencedFrameNumbers = referencedFrameIndicies.map(element => {\n return element + 1;\n });\n\n const segment = segments[segmentIndex];\n\n seg.addSegment(\n segment,\n _extractCornerstoneToolsPixelData(\n segmentIndex,\n referencedFrameIndicies,\n toolState,\n images,\n dims\n ),\n referencedFrameNumbers\n );\n }\n\n seg.bitPackPixelData();\n\n const segBlob = datasetToBlob(seg.dataset);\n\n return segBlob;\n}\n\nfunction _extractCornerstoneToolsPixelData(\n segmentIndex,\n referencedFrames,\n toolState,\n images,\n dims\n) {\n const pixelData = new Uint8Array(dims.xy * referencedFrames.length);\n\n let pixelDataIndex = 0;\n\n for (let i = 0; i < referencedFrames.length; i++) {\n const frame = referencedFrames[i];\n\n const imageId = images[frame].imageId;\n const imageIdSpecificToolState = toolState[imageId];\n\n const brushPixelData =\n imageIdSpecificToolState.brush.data[segmentIndex].pixelData;\n\n for (let p = 0; p < brushPixelData.length; p++) {\n pixelData[pixelDataIndex] = brushPixelData[p];\n pixelDataIndex++;\n }\n }\n\n return pixelData;\n}\n\nfunction _getNumberOfFramesPerSegment(toolState, images, segments) {\n const segmentIndicies = [];\n const referencedFramesPerSegment = [];\n\n for (let i = 0; i < segments.length; i++) {\n if (segments[i]) {\n segmentIndicies.push(i);\n referencedFramesPerSegment.push([]);\n }\n }\n\n for (let z = 0; z < images.length; z++) {\n const imageId = images[z].imageId;\n const imageIdSpecificToolState = toolState[imageId];\n\n for (let i = 0; i < segmentIndicies.length; i++) {\n const segIdx = segmentIndicies[i];\n\n if (\n imageIdSpecificToolState &&\n imageIdSpecificToolState.brush &&\n imageIdSpecificToolState.brush.data &&\n imageIdSpecificToolState.brush.data[segIdx] &&\n imageIdSpecificToolState.brush.data[segIdx].pixelData\n ) {\n referencedFramesPerSegment[i].push(z);\n }\n }\n }\n\n return {\n referencedFramesPerSegment,\n segmentIndicies\n };\n}\n\nfunction _getSegCount(seg, segments) {\n let numSegments = 0;\n\n for (let i = 0; i < segments.length; i++) {\n if (segments[i]) {\n numSegments++;\n }\n }\n\n return numSegments;\n}\n\n/**\n * _createSegFromImages - description\n *\n * @param {Object[]} images An array of the cornerstone image objects.\n * @param {Boolean} isMultiframe Whether the images are multiframe.\n * @returns {Object} The Seg derived dataSet.\n */\nfunction _createSegFromImages(images, isMultiframe, options) {\n const datasets = [];\n\n if (isMultiframe) {\n const image = images[0];\n const arrayBuffer = image.data.byteArray.buffer;\n\n const dicomData = DicomMessage.readFile(arrayBuffer);\n const dataset = DicomMetaDictionary.naturalizeDataset(dicomData.dict);\n\n dataset._meta = DicomMetaDictionary.namifyDataset(dicomData.meta);\n\n datasets.push(dataset);\n } else {\n for (let i = 0; i < images.length; i++) {\n const image = images[i];\n const arrayBuffer = image.data.byteArray.buffer;\n const dicomData = DicomMessage.readFile(arrayBuffer);\n const dataset = DicomMetaDictionary.naturalizeDataset(\n dicomData.dict\n );\n\n dataset._meta = DicomMetaDictionary.namifyDataset(dicomData.meta);\n datasets.push(dataset);\n }\n }\n\n const multiframe = Normalizer.normalizeToDataset(datasets);\n\n return new SegmentationDerivation([multiframe], options);\n}\n\n/**\n * generateToolState - Given a set of cornrstoneTools imageIds and a Segmentation buffer,\n * derive cornerstoneTools toolState and brush metadata.\n *\n * @param {string[]} imageIds An array of the imageIds.\n * @param {ArrayBuffer} arrayBuffer The SEG arrayBuffer.\n * @param {*} metadataProvider\n * @returns {Object} The toolState and an object from which the\n * segment metadata can be derived.\n */\nfunction generateToolState(imageIds, arrayBuffer, metadataProvider) {\n const dicomData = DicomMessage.readFile(arrayBuffer);\n const dataset = DicomMetaDictionary.naturalizeDataset(dicomData.dict);\n dataset._meta = DicomMetaDictionary.namifyDataset(dicomData.meta);\n const multiframe = Normalizer.normalizeToDataset([dataset]);\n\n const imagePlaneModule = metadataProvider.get(\n \"imagePlaneModule\",\n imageIds[0]\n );\n\n if (!imagePlaneModule) {\n console.warn(\"Insufficient metadata, imagePlaneModule missing.\");\n }\n\n const ImageOrientationPatient = Array.isArray(imagePlaneModule.rowCosines)\n ? [...imagePlaneModule.rowCosines, ...imagePlaneModule.columnCosines]\n : [\n imagePlaneModule.rowCosines.x,\n imagePlaneModule.rowCosines.y,\n imagePlaneModule.rowCosines.z,\n imagePlaneModule.columnCosines.x,\n imagePlaneModule.columnCosines.y,\n imagePlaneModule.columnCosines.z\n ];\n\n // Get IOP from ref series, compute supported orientations:\n const validOrientations = getValidOrientations(ImageOrientationPatient);\n\n const SharedFunctionalGroupsSequence =\n multiframe.SharedFunctionalGroupsSequence;\n\n const sharedImageOrientationPatient =\n SharedFunctionalGroupsSequence.PlaneOrientationSequence\n ? SharedFunctionalGroupsSequence.PlaneOrientationSequence\n .ImageOrientationPatient\n : undefined;\n\n const sliceLength = multiframe.Columns * multiframe.Rows;\n const segMetadata = getSegmentMetadata(multiframe);\n const pixelData = unpackPixelData(multiframe);\n\n const PerFrameFunctionalGroupsSequence =\n multiframe.PerFrameFunctionalGroupsSequence;\n\n const toolState = {};\n\n let inPlane = true;\n\n for (let i = 0; i < PerFrameFunctionalGroupsSequence.length; i++) {\n const PerFrameFunctionalGroups = PerFrameFunctionalGroupsSequence[i];\n\n const ImageOrientationPatientI =\n sharedImageOrientationPatient ||\n PerFrameFunctionalGroups.PlaneOrientationSequence\n .ImageOrientationPatient;\n\n const pixelDataI2D = ndarray(\n new Uint8Array(pixelData.buffer, i * sliceLength, sliceLength),\n [multiframe.Rows, multiframe.Columns]\n );\n\n const alignedPixelDataI = alignPixelDataWithSourceData(\n pixelDataI2D,\n ImageOrientationPatientI,\n validOrientations\n );\n\n if (!alignedPixelDataI) {\n console.warn(\n \"This segmentation object is not in-plane with the source data. Bailing out of IO. It'd be better to render this with vtkjs. \"\n );\n inPlane = false;\n break;\n }\n\n const segmentIndex =\n PerFrameFunctionalGroups.SegmentIdentificationSequence\n .ReferencedSegmentNumber - 1;\n\n let SourceImageSequence;\n if (\n SharedFunctionalGroupsSequence.DerivationImageSequence &&\n SharedFunctionalGroupsSequence.DerivationImageSequence\n .SourceImageSequence\n ) {\n SourceImageSequence =\n SharedFunctionalGroupsSequence.DerivationImageSequence\n .SourceImageSequence[i];\n } else {\n SourceImageSequence =\n PerFrameFunctionalGroups.DerivationImageSequence\n .SourceImageSequence;\n }\n\n const imageId = getImageIdOfSourceImage(\n SourceImageSequence,\n imageIds,\n metadataProvider\n );\n\n addImageIdSpecificBrushToolState(\n toolState,\n imageId,\n segmentIndex,\n alignedPixelDataI\n );\n }\n\n if (!inPlane) {\n return;\n }\n\n return { toolState, segMetadata };\n}\n\n/**\n * unpackPixelData - Unpacks bitpacked pixelData if the Segmentation is BINARY.\n *\n * @param {Object} multiframe The multiframe dataset.\n * @return {Uint8Array} The unpacked pixelData.\n */\nfunction unpackPixelData(multiframe) {\n const segType = multiframe.SegmentationType;\n\n if (segType === \"BINARY\") {\n return BitArray.unpack(multiframe.PixelData);\n }\n\n const pixelData = new Uint8Array(multiframe.PixelData);\n\n const max = multiframe.MaximumFractionalValue;\n const onlyMaxAndZero =\n pixelData.find(element => element !== 0 && element !== max) ===\n undefined;\n\n if (!onlyMaxAndZero) {\n log.warn(\n \"This is a fractional segmentation, which is not currently supported.\"\n );\n return;\n }\n\n log.warn(\n \"This segmentation object is actually binary... processing as such.\"\n );\n\n return pixelData;\n}\n\n/**\n * addImageIdSpecificBrushToolState - Adds brush pixel data to cornerstoneTools\n * formatted toolState object.\n *\n * @param {Object} toolState The toolState object to modify\n * @param {String} imageId The imageId of the toolState to add the data.\n * @param {Number} segmentIndex The index of the segment data being added.\n * @param {Ndarray} pixelData2D The pixelData in Ndarry 2D format.\n */\nfunction addImageIdSpecificBrushToolState(\n toolState,\n imageId,\n segmentIndex,\n pixelData2D\n) {\n if (!toolState[imageId]) {\n toolState[imageId] = {};\n toolState[imageId].brush = {};\n toolState[imageId].brush.data = [];\n } else if (!toolState[imageId].brush) {\n toolState[imageId].brush = {};\n toolState[imageId].brush.data = [];\n } else if (!toolState[imageId].brush.data) {\n toolState[imageId].brush.data = [];\n }\n\n toolState[imageId].brush.data[segmentIndex] = {};\n\n const brushDataI = toolState[imageId].brush.data[segmentIndex];\n\n brushDataI.pixelData = new Uint8Array(pixelData2D.data.length);\n\n const cToolsPixelData = brushDataI.pixelData;\n\n const [rows, cols] = pixelData2D.shape;\n\n for (let p = 0; p < cToolsPixelData.length; p++) {\n if (pixelData2D.data[p]) {\n cToolsPixelData[p] = 1;\n } else {\n cToolsPixelData[p] = 0;\n }\n }\n}\n\n/**\n * getImageIdOfSourceImage - Returns the Cornerstone imageId of the source image.\n *\n * @param {Object} SourceImageSequence Sequence describing the source image.\n * @param {String[]} imageIds A list of imageIds.\n * @param {Object} metadataProvider A Cornerstone metadataProvider to query\n * metadata from imageIds.\n * @return {String} The corresponding imageId.\n */\nfunction getImageIdOfSourceImage(\n SourceImageSequence,\n imageIds,\n metadataProvider\n) {\n const { ReferencedSOPInstanceUID, ReferencedFrameNumber } =\n SourceImageSequence;\n\n return ReferencedFrameNumber\n ? getImageIdOfReferencedFrame(\n ReferencedSOPInstanceUID,\n ReferencedFrameNumber,\n imageIds,\n metadataProvider\n )\n : getImageIdOfReferencedSingleFramedSOPInstance(\n ReferencedSOPInstanceUID,\n imageIds,\n metadataProvider\n );\n}\n\n/**\n * getImageIdOfReferencedSingleFramedSOPInstance - Returns the imageId\n * corresponding to the specified sopInstanceUid for single-frame images.\n *\n * @param {String} sopInstanceUid The sopInstanceUid of the desired image.\n * @param {String[]} imageIds The list of imageIds.\n * @param {Object} metadataProvider The metadataProvider to obtain sopInstanceUids\n * from the cornerstone imageIds.\n * @return {String} The imageId that corresponds to the sopInstanceUid.\n */\nfunction getImageIdOfReferencedSingleFramedSOPInstance(\n sopInstanceUid,\n imageIds,\n metadataProvider\n) {\n return imageIds.find(imageId => {\n const sopCommonModule = metadataProvider.get(\n \"sopCommonModule\",\n imageId\n );\n if (!sopCommonModule) {\n return;\n }\n\n return sopCommonModule.sopInstanceUID === sopInstanceUid;\n });\n}\n\n/**\n * getImageIdOfReferencedFrame - Returns the imageId corresponding to the\n * specified sopInstanceUid and frameNumber for multi-frame images.\n *\n * @param {String} sopInstanceUid The sopInstanceUid of the desired image.\n * @param {Number} frameNumber The frame number.\n * @param {String} imageIds The list of imageIds.\n * @param {Object} metadataProvider The metadataProvider to obtain sopInstanceUids\n * from the cornerstone imageIds.\n * @return {String} The imageId that corresponds to the sopInstanceUid.\n */\nfunction getImageIdOfReferencedFrame(\n sopInstanceUid,\n frameNumber,\n imageIds,\n metadataProvider\n) {\n const imageId = imageIds.find(imageId => {\n const sopCommonModule = metadataProvider.get(\n \"sopCommonModule\",\n imageId\n );\n if (!sopCommonModule) {\n return;\n }\n\n const imageIdFrameNumber = Number(imageId.split(\"frame=\")[1]);\n\n return (\n //frameNumber is zero indexed for cornerstoneWADOImageLoader image Ids.\n sopCommonModule.sopInstanceUID === sopInstanceUid &&\n imageIdFrameNumber === frameNumber - 1\n );\n });\n\n return imageId;\n}\n\n/**\n * getValidOrientations - returns an array of valid orientations.\n *\n * @param {Number[6]} iop The row (0..2) an column (3..5) direction cosines.\n * @return {Number[8][6]} An array of valid orientations.\n */\nfunction getValidOrientations(iop) {\n const orientations = [];\n\n // [0, 1, 2]: 0, 0hf, 0vf\n // [3, 4, 5]: 90, 90hf, 90vf\n // [6, 7]: 180, 270\n\n orientations[0] = iop;\n orientations[1] = flipIOP.h(iop);\n orientations[2] = flipIOP.v(iop);\n\n const iop90 = rotateDirectionCosinesInPlane(iop, Math.PI / 2);\n\n orientations[3] = iop90;\n orientations[4] = flipIOP.h(iop90);\n orientations[5] = flipIOP.v(iop90);\n\n orientations[6] = rotateDirectionCosinesInPlane(iop, Math.PI);\n orientations[7] = rotateDirectionCosinesInPlane(iop, 1.5 * Math.PI);\n\n return orientations;\n}\n\n/**\n * alignPixelDataWithSourceData -\n *\n * @param {Ndarray} pixelData2D The data to align.\n * @param {Number[6]} iop The orientation of the image slice.\n * @param {Number[8][6]} orientations An array of valid imageOrientationPatient values.\n * @return {Ndarray} The aligned pixelData.\n */\nfunction alignPixelDataWithSourceData(pixelData2D, iop, orientations) {\n if (compareIOP(iop, orientations[0])) {\n //Same orientation.\n return pixelData2D;\n } else if (compareIOP(iop, orientations[1])) {\n //Flipped vertically.\n return flipMatrix2D.v(pixelData2D);\n } else if (compareIOP(iop, orientations[2])) {\n //Flipped horizontally.\n return flipMatrix2D.h(pixelData2D);\n } else if (compareIOP(iop, orientations[3])) {\n //Rotated 90 degrees.\n return rotateMatrix902D(pixelData2D);\n } else if (compareIOP(iop, orientations[4])) {\n //Rotated 90 degrees and fliped horizontally.\n return flipMatrix2D.h(rotateMatrix902D(pixelData2D));\n } else if (compareIOP(iop, orientations[5])) {\n //Rotated 90 degrees and fliped vertically.\n return flipMatrix2D.v(rotateMatrix902D(pixelData2D));\n } else if (compareIOP(iop, orientations[6])) {\n //Rotated 180 degrees. // TODO -> Do this more effeciently, there is a 1:1 mapping like 90 degree rotation.\n return rotateMatrix902D(rotateMatrix902D(pixelData2D));\n } else if (compareIOP(iop, orientations[7])) {\n //Rotated 270 degrees. // TODO -> Do this more effeciently, there is a 1:1 mapping like 90 degree rotation.\n return rotateMatrix902D(\n rotateMatrix902D(rotateMatrix902D(pixelData2D))\n );\n }\n}\n\nconst dx = 1e-5;\n\n/**\n * compareIOP - Returns true if iop1 and iop2 are equal\n * within a tollerance, dx.\n *\n * @param {Number[6]} iop1 An ImageOrientationPatient array.\n * @param {Number[6]} iop2 An ImageOrientationPatient array.\n * @return {Boolean} True if iop1 and iop2 are equal.\n */\nfunction compareIOP(iop1, iop2) {\n return (\n Math.abs(iop1[0] - iop2[0]) < dx &&\n Math.abs(iop1[1] - iop2[1]) < dx &&\n Math.abs(iop1[2] - iop2[2]) < dx &&\n Math.abs(iop1[3] - iop2[3]) < dx &&\n Math.abs(iop1[4] - iop2[4]) < dx &&\n Math.abs(iop1[5] - iop2[5]) < dx\n );\n}\n\nfunction getSegmentMetadata(multiframe) {\n const data = [];\n\n const segmentSequence = multiframe.SegmentSequence;\n\n if (Array.isArray(segmentSequence)) {\n for (let segIdx = 0; segIdx < segmentSequence.length; segIdx++) {\n data.push(segmentSequence[segIdx]);\n }\n } else {\n // Only one segment, will be stored as an object.\n data.push(segmentSequence);\n }\n\n return {\n seriesInstanceUid:\n multiframe.ReferencedSeriesSequence.SeriesInstanceUID,\n data\n };\n}\n","/**\r\n * Common utilities\r\n * @module glMatrix\r\n */\n// Configuration Constants\nexport var EPSILON = 0.000001;\nexport var ARRAY_TYPE = typeof Float32Array !== 'undefined' ? Float32Array : Array;\nexport var RANDOM = Math.random;\n/**\r\n * Sets the type of array used when creating new vectors and matrices\r\n *\r\n * @param {Float32ArrayConstructor | ArrayConstructor} type Array type, such as Float32Array or Array\r\n */\n\nexport function setMatrixArrayType(type) {\n ARRAY_TYPE = type;\n}\nvar degree = Math.PI / 180;\n/**\r\n * Convert Degree To Radian\r\n *\r\n * @param {Number} a Angle in Degrees\r\n */\n\nexport function toRadian(a) {\n return a * degree;\n}\n/**\r\n * Tests whether or not the arguments have approximately the same value, within an absolute\r\n * or relative tolerance of glMatrix.EPSILON (an absolute tolerance is used for values less\r\n * than or equal to 1.0, and a relative tolerance is used for larger values)\r\n *\r\n * @param {Number} a The first number to test.\r\n * @param {Number} b The second number to test.\r\n * @returns {Boolean} True if the numbers are approximately equal, false otherwise.\r\n */\n\nexport function equals(a, b) {\n return Math.abs(a - b) <= EPSILON * Math.max(1.0, Math.abs(a), Math.abs(b));\n}\nif (!Math.hypot) Math.hypot = function () {\n var y = 0,\n i = arguments.length;\n\n while (i--) {\n y += arguments[i] * arguments[i];\n }\n\n return Math.sqrt(y);\n};","import * as glMatrix from \"./common.js\";\n/**\r\n * 3 Dimensional Vector\r\n * @module vec3\r\n */\n\n/**\r\n * Creates a new, empty vec3\r\n *\r\n * @returns {vec3} a new 3D vector\r\n */\n\nexport function create() {\n var out = new glMatrix.ARRAY_TYPE(3);\n\n if (glMatrix.ARRAY_TYPE != Float32Array) {\n out[0] = 0;\n out[1] = 0;\n out[2] = 0;\n }\n\n return out;\n}\n/**\r\n * Creates a new vec3 initialized with values from an existing vector\r\n *\r\n * @param {ReadonlyVec3} a vector to clone\r\n * @returns {vec3} a new 3D vector\r\n */\n\nexport function clone(a) {\n var out = new glMatrix.ARRAY_TYPE(3);\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n return out;\n}\n/**\r\n * Calculates the length of a vec3\r\n *\r\n * @param {ReadonlyVec3} a vector to calculate length of\r\n * @returns {Number} length of a\r\n */\n\nexport function length(a) {\n var x = a[0];\n var y = a[1];\n var z = a[2];\n return Math.hypot(x, y, z);\n}\n/**\r\n * Creates a new vec3 initialized with the given values\r\n *\r\n * @param {Number} x X component\r\n * @param {Number} y Y component\r\n * @param {Number} z Z component\r\n * @returns {vec3} a new 3D vector\r\n */\n\nexport function fromValues(x, y, z) {\n var out = new glMatrix.ARRAY_TYPE(3);\n out[0] = x;\n out[1] = y;\n out[2] = z;\n return out;\n}\n/**\r\n * Copy the values from one vec3 to another\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {ReadonlyVec3} a the source vector\r\n * @returns {vec3} out\r\n */\n\nexport function copy(out, a) {\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n return out;\n}\n/**\r\n * Set the components of a vec3 to the given values\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {Number} x X component\r\n * @param {Number} y Y component\r\n * @param {Number} z Z component\r\n * @returns {vec3} out\r\n */\n\nexport function set(out, x, y, z) {\n out[0] = x;\n out[1] = y;\n out[2] = z;\n return out;\n}\n/**\r\n * Adds two vec3's\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {ReadonlyVec3} a the first operand\r\n * @param {ReadonlyVec3} b the second operand\r\n * @returns {vec3} out\r\n */\n\nexport function add(out, a, b) {\n out[0] = a[0] + b[0];\n out[1] = a[1] + b[1];\n out[2] = a[2] + b[2];\n return out;\n}\n/**\r\n * Subtracts vector b from vector a\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {ReadonlyVec3} a the first operand\r\n * @param {ReadonlyVec3} b the second operand\r\n * @returns {vec3} out\r\n */\n\nexport function subtract(out, a, b) {\n out[0] = a[0] - b[0];\n out[1] = a[1] - b[1];\n out[2] = a[2] - b[2];\n return out;\n}\n/**\r\n * Multiplies two vec3's\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {ReadonlyVec3} a the first operand\r\n * @param {ReadonlyVec3} b the second operand\r\n * @returns {vec3} out\r\n */\n\nexport function multiply(out, a, b) {\n out[0] = a[0] * b[0];\n out[1] = a[1] * b[1];\n out[2] = a[2] * b[2];\n return out;\n}\n/**\r\n * Divides two vec3's\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {ReadonlyVec3} a the first operand\r\n * @param {ReadonlyVec3} b the second operand\r\n * @returns {vec3} out\r\n */\n\nexport function divide(out, a, b) {\n out[0] = a[0] / b[0];\n out[1] = a[1] / b[1];\n out[2] = a[2] / b[2];\n return out;\n}\n/**\r\n * Math.ceil the components of a vec3\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {ReadonlyVec3} a vector to ceil\r\n * @returns {vec3} out\r\n */\n\nexport function ceil(out, a) {\n out[0] = Math.ceil(a[0]);\n out[1] = Math.ceil(a[1]);\n out[2] = Math.ceil(a[2]);\n return out;\n}\n/**\r\n * Math.floor the components of a vec3\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {ReadonlyVec3} a vector to floor\r\n * @returns {vec3} out\r\n */\n\nexport function floor(out, a) {\n out[0] = Math.floor(a[0]);\n out[1] = Math.floor(a[1]);\n out[2] = Math.floor(a[2]);\n return out;\n}\n/**\r\n * Returns the minimum of two vec3's\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {ReadonlyVec3} a the first operand\r\n * @param {ReadonlyVec3} b the second operand\r\n * @returns {vec3} out\r\n */\n\nexport function min(out, a, b) {\n out[0] = Math.min(a[0], b[0]);\n out[1] = Math.min(a[1], b[1]);\n out[2] = Math.min(a[2], b[2]);\n return out;\n}\n/**\r\n * Returns the maximum of two vec3's\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {ReadonlyVec3} a the first operand\r\n * @param {ReadonlyVec3} b the second operand\r\n * @returns {vec3} out\r\n */\n\nexport function max(out, a, b) {\n out[0] = Math.max(a[0], b[0]);\n out[1] = Math.max(a[1], b[1]);\n out[2] = Math.max(a[2], b[2]);\n return out;\n}\n/**\r\n * Math.round the components of a vec3\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {ReadonlyVec3} a vector to round\r\n * @returns {vec3} out\r\n */\n\nexport function round(out, a) {\n out[0] = Math.round(a[0]);\n out[1] = Math.round(a[1]);\n out[2] = Math.round(a[2]);\n return out;\n}\n/**\r\n * Scales a vec3 by a scalar number\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {ReadonlyVec3} a the vector to scale\r\n * @param {Number} b amount to scale the vector by\r\n * @returns {vec3} out\r\n */\n\nexport function scale(out, a, b) {\n out[0] = a[0] * b;\n out[1] = a[1] * b;\n out[2] = a[2] * b;\n return out;\n}\n/**\r\n * Adds two vec3's after scaling the second operand by a scalar value\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {ReadonlyVec3} a the first operand\r\n * @param {ReadonlyVec3} b the second operand\r\n * @param {Number} scale the amount to scale b by before adding\r\n * @returns {vec3} out\r\n */\n\nexport function scaleAndAdd(out, a, b, scale) {\n out[0] = a[0] + b[0] * scale;\n out[1] = a[1] + b[1] * scale;\n out[2] = a[2] + b[2] * scale;\n return out;\n}\n/**\r\n * Calculates the euclidian distance between two vec3's\r\n *\r\n * @param {ReadonlyVec3} a the first operand\r\n * @param {ReadonlyVec3} b the second operand\r\n * @returns {Number} distance between a and b\r\n */\n\nexport function distance(a, b) {\n var x = b[0] - a[0];\n var y = b[1] - a[1];\n var z = b[2] - a[2];\n return Math.hypot(x, y, z);\n}\n/**\r\n * Calculates the squared euclidian distance between two vec3's\r\n *\r\n * @param {ReadonlyVec3} a the first operand\r\n * @param {ReadonlyVec3} b the second operand\r\n * @returns {Number} squared distance between a and b\r\n */\n\nexport function squaredDistance(a, b) {\n var x = b[0] - a[0];\n var y = b[1] - a[1];\n var z = b[2] - a[2];\n return x * x + y * y + z * z;\n}\n/**\r\n * Calculates the squared length of a vec3\r\n *\r\n * @param {ReadonlyVec3} a vector to calculate squared length of\r\n * @returns {Number} squared length of a\r\n */\n\nexport function squaredLength(a) {\n var x = a[0];\n var y = a[1];\n var z = a[2];\n return x * x + y * y + z * z;\n}\n/**\r\n * Negates the components of a vec3\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {ReadonlyVec3} a vector to negate\r\n * @returns {vec3} out\r\n */\n\nexport function negate(out, a) {\n out[0] = -a[0];\n out[1] = -a[1];\n out[2] = -a[2];\n return out;\n}\n/**\r\n * Returns the inverse of the components of a vec3\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {ReadonlyVec3} a vector to invert\r\n * @returns {vec3} out\r\n */\n\nexport function inverse(out, a) {\n out[0] = 1.0 / a[0];\n out[1] = 1.0 / a[1];\n out[2] = 1.0 / a[2];\n return out;\n}\n/**\r\n * Normalize a vec3\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {ReadonlyVec3} a vector to normalize\r\n * @returns {vec3} out\r\n */\n\nexport function normalize(out, a) {\n var x = a[0];\n var y = a[1];\n var z = a[2];\n var len = x * x + y * y + z * z;\n\n if (len > 0) {\n //TODO: evaluate use of glm_invsqrt here?\n len = 1 / Math.sqrt(len);\n }\n\n out[0] = a[0] * len;\n out[1] = a[1] * len;\n out[2] = a[2] * len;\n return out;\n}\n/**\r\n * Calculates the dot product of two vec3's\r\n *\r\n * @param {ReadonlyVec3} a the first operand\r\n * @param {ReadonlyVec3} b the second operand\r\n * @returns {Number} dot product of a and b\r\n */\n\nexport function dot(a, b) {\n return a[0] * b[0] + a[1] * b[1] + a[2] * b[2];\n}\n/**\r\n * Computes the cross product of two vec3's\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {ReadonlyVec3} a the first operand\r\n * @param {ReadonlyVec3} b the second operand\r\n * @returns {vec3} out\r\n */\n\nexport function cross(out, a, b) {\n var ax = a[0],\n ay = a[1],\n az = a[2];\n var bx = b[0],\n by = b[1],\n bz = b[2];\n out[0] = ay * bz - az * by;\n out[1] = az * bx - ax * bz;\n out[2] = ax * by - ay * bx;\n return out;\n}\n/**\r\n * Performs a linear interpolation between two vec3's\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {ReadonlyVec3} a the first operand\r\n * @param {ReadonlyVec3} b the second operand\r\n * @param {Number} t interpolation amount, in the range [0-1], between the two inputs\r\n * @returns {vec3} out\r\n */\n\nexport function lerp(out, a, b, t) {\n var ax = a[0];\n var ay = a[1];\n var az = a[2];\n out[0] = ax + t * (b[0] - ax);\n out[1] = ay + t * (b[1] - ay);\n out[2] = az + t * (b[2] - az);\n return out;\n}\n/**\r\n * Performs a hermite interpolation with two control points\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {ReadonlyVec3} a the first operand\r\n * @param {ReadonlyVec3} b the second operand\r\n * @param {ReadonlyVec3} c the third operand\r\n * @param {ReadonlyVec3} d the fourth operand\r\n * @param {Number} t interpolation amount, in the range [0-1], between the two inputs\r\n * @returns {vec3} out\r\n */\n\nexport function hermite(out, a, b, c, d, t) {\n var factorTimes2 = t * t;\n var factor1 = factorTimes2 * (2 * t - 3) + 1;\n var factor2 = factorTimes2 * (t - 2) + t;\n var factor3 = factorTimes2 * (t - 1);\n var factor4 = factorTimes2 * (3 - 2 * t);\n out[0] = a[0] * factor1 + b[0] * factor2 + c[0] * factor3 + d[0] * factor4;\n out[1] = a[1] * factor1 + b[1] * factor2 + c[1] * factor3 + d[1] * factor4;\n out[2] = a[2] * factor1 + b[2] * factor2 + c[2] * factor3 + d[2] * factor4;\n return out;\n}\n/**\r\n * Performs a bezier interpolation with two control points\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {ReadonlyVec3} a the first operand\r\n * @param {ReadonlyVec3} b the second operand\r\n * @param {ReadonlyVec3} c the third operand\r\n * @param {ReadonlyVec3} d the fourth operand\r\n * @param {Number} t interpolation amount, in the range [0-1], between the two inputs\r\n * @returns {vec3} out\r\n */\n\nexport function bezier(out, a, b, c, d, t) {\n var inverseFactor = 1 - t;\n var inverseFactorTimesTwo = inverseFactor * inverseFactor;\n var factorTimes2 = t * t;\n var factor1 = inverseFactorTimesTwo * inverseFactor;\n var factor2 = 3 * t * inverseFactorTimesTwo;\n var factor3 = 3 * factorTimes2 * inverseFactor;\n var factor4 = factorTimes2 * t;\n out[0] = a[0] * factor1 + b[0] * factor2 + c[0] * factor3 + d[0] * factor4;\n out[1] = a[1] * factor1 + b[1] * factor2 + c[1] * factor3 + d[1] * factor4;\n out[2] = a[2] * factor1 + b[2] * factor2 + c[2] * factor3 + d[2] * factor4;\n return out;\n}\n/**\r\n * Generates a random vector with the given scale\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {Number} [scale] Length of the resulting vector. If ommitted, a unit vector will be returned\r\n * @returns {vec3} out\r\n */\n\nexport function random(out, scale) {\n scale = scale || 1.0;\n var r = glMatrix.RANDOM() * 2.0 * Math.PI;\n var z = glMatrix.RANDOM() * 2.0 - 1.0;\n var zScale = Math.sqrt(1.0 - z * z) * scale;\n out[0] = Math.cos(r) * zScale;\n out[1] = Math.sin(r) * zScale;\n out[2] = z * scale;\n return out;\n}\n/**\r\n * Transforms the vec3 with a mat4.\r\n * 4th vector component is implicitly '1'\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {ReadonlyVec3} a the vector to transform\r\n * @param {ReadonlyMat4} m matrix to transform with\r\n * @returns {vec3} out\r\n */\n\nexport function transformMat4(out, a, m) {\n var x = a[0],\n y = a[1],\n z = a[2];\n var w = m[3] * x + m[7] * y + m[11] * z + m[15];\n w = w || 1.0;\n out[0] = (m[0] * x + m[4] * y + m[8] * z + m[12]) / w;\n out[1] = (m[1] * x + m[5] * y + m[9] * z + m[13]) / w;\n out[2] = (m[2] * x + m[6] * y + m[10] * z + m[14]) / w;\n return out;\n}\n/**\r\n * Transforms the vec3 with a mat3.\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {ReadonlyVec3} a the vector to transform\r\n * @param {ReadonlyMat3} m the 3x3 matrix to transform with\r\n * @returns {vec3} out\r\n */\n\nexport function transformMat3(out, a, m) {\n var x = a[0],\n y = a[1],\n z = a[2];\n out[0] = x * m[0] + y * m[3] + z * m[6];\n out[1] = x * m[1] + y * m[4] + z * m[7];\n out[2] = x * m[2] + y * m[5] + z * m[8];\n return out;\n}\n/**\r\n * Transforms the vec3 with a quat\r\n * Can also be used for dual quaternions. (Multiply it with the real part)\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {ReadonlyVec3} a the vector to transform\r\n * @param {ReadonlyQuat} q quaternion to transform with\r\n * @returns {vec3} out\r\n */\n\nexport function transformQuat(out, a, q) {\n // benchmarks: https://jsperf.com/quaternion-transform-vec3-implementations-fixed\n var qx = q[0],\n qy = q[1],\n qz = q[2],\n qw = q[3];\n var x = a[0],\n y = a[1],\n z = a[2]; // var qvec = [qx, qy, qz];\n // var uv = vec3.cross([], qvec, a);\n\n var uvx = qy * z - qz * y,\n uvy = qz * x - qx * z,\n uvz = qx * y - qy * x; // var uuv = vec3.cross([], qvec, uv);\n\n var uuvx = qy * uvz - qz * uvy,\n uuvy = qz * uvx - qx * uvz,\n uuvz = qx * uvy - qy * uvx; // vec3.scale(uv, uv, 2 * w);\n\n var w2 = qw * 2;\n uvx *= w2;\n uvy *= w2;\n uvz *= w2; // vec3.scale(uuv, uuv, 2);\n\n uuvx *= 2;\n uuvy *= 2;\n uuvz *= 2; // return vec3.add(out, a, vec3.add(out, uv, uuv));\n\n out[0] = x + uvx + uuvx;\n out[1] = y + uvy + uuvy;\n out[2] = z + uvz + uuvz;\n return out;\n}\n/**\r\n * Rotate a 3D vector around the x-axis\r\n * @param {vec3} out The receiving vec3\r\n * @param {ReadonlyVec3} a The vec3 point to rotate\r\n * @param {ReadonlyVec3} b The origin of the rotation\r\n * @param {Number} rad The angle of rotation in radians\r\n * @returns {vec3} out\r\n */\n\nexport function rotateX(out, a, b, rad) {\n var p = [],\n r = []; //Translate point to the origin\n\n p[0] = a[0] - b[0];\n p[1] = a[1] - b[1];\n p[2] = a[2] - b[2]; //perform rotation\n\n r[0] = p[0];\n r[1] = p[1] * Math.cos(rad) - p[2] * Math.sin(rad);\n r[2] = p[1] * Math.sin(rad) + p[2] * Math.cos(rad); //translate to correct position\n\n out[0] = r[0] + b[0];\n out[1] = r[1] + b[1];\n out[2] = r[2] + b[2];\n return out;\n}\n/**\r\n * Rotate a 3D vector around the y-axis\r\n * @param {vec3} out The receiving vec3\r\n * @param {ReadonlyVec3} a The vec3 point to rotate\r\n * @param {ReadonlyVec3} b The origin of the rotation\r\n * @param {Number} rad The angle of rotation in radians\r\n * @returns {vec3} out\r\n */\n\nexport function rotateY(out, a, b, rad) {\n var p = [],\n r = []; //Translate point to the origin\n\n p[0] = a[0] - b[0];\n p[1] = a[1] - b[1];\n p[2] = a[2] - b[2]; //perform rotation\n\n r[0] = p[2] * Math.sin(rad) + p[0] * Math.cos(rad);\n r[1] = p[1];\n r[2] = p[2] * Math.cos(rad) - p[0] * Math.sin(rad); //translate to correct position\n\n out[0] = r[0] + b[0];\n out[1] = r[1] + b[1];\n out[2] = r[2] + b[2];\n return out;\n}\n/**\r\n * Rotate a 3D vector around the z-axis\r\n * @param {vec3} out The receiving vec3\r\n * @param {ReadonlyVec3} a The vec3 point to rotate\r\n * @param {ReadonlyVec3} b The origin of the rotation\r\n * @param {Number} rad The angle of rotation in radians\r\n * @returns {vec3} out\r\n */\n\nexport function rotateZ(out, a, b, rad) {\n var p = [],\n r = []; //Translate point to the origin\n\n p[0] = a[0] - b[0];\n p[1] = a[1] - b[1];\n p[2] = a[2] - b[2]; //perform rotation\n\n r[0] = p[0] * Math.cos(rad) - p[1] * Math.sin(rad);\n r[1] = p[0] * Math.sin(rad) + p[1] * Math.cos(rad);\n r[2] = p[2]; //translate to correct position\n\n out[0] = r[0] + b[0];\n out[1] = r[1] + b[1];\n out[2] = r[2] + b[2];\n return out;\n}\n/**\r\n * Get the angle between two 3D vectors\r\n * @param {ReadonlyVec3} a The first operand\r\n * @param {ReadonlyVec3} b The second operand\r\n * @returns {Number} The angle in radians\r\n */\n\nexport function angle(a, b) {\n var ax = a[0],\n ay = a[1],\n az = a[2],\n bx = b[0],\n by = b[1],\n bz = b[2],\n mag1 = Math.sqrt(ax * ax + ay * ay + az * az),\n mag2 = Math.sqrt(bx * bx + by * by + bz * bz),\n mag = mag1 * mag2,\n cosine = mag && dot(a, b) / mag;\n return Math.acos(Math.min(Math.max(cosine, -1), 1));\n}\n/**\r\n * Set the components of a vec3 to zero\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @returns {vec3} out\r\n */\n\nexport function zero(out) {\n out[0] = 0.0;\n out[1] = 0.0;\n out[2] = 0.0;\n return out;\n}\n/**\r\n * Returns a string representation of a vector\r\n *\r\n * @param {ReadonlyVec3} a vector to represent as a string\r\n * @returns {String} string representation of the vector\r\n */\n\nexport function str(a) {\n return \"vec3(\" + a[0] + \", \" + a[1] + \", \" + a[2] + \")\";\n}\n/**\r\n * Returns whether or not the vectors have exactly the same elements in the same position (when compared with ===)\r\n *\r\n * @param {ReadonlyVec3} a The first vector.\r\n * @param {ReadonlyVec3} b The second vector.\r\n * @returns {Boolean} True if the vectors are equal, false otherwise.\r\n */\n\nexport function exactEquals(a, b) {\n return a[0] === b[0] && a[1] === b[1] && a[2] === b[2];\n}\n/**\r\n * Returns whether or not the vectors have approximately the same elements in the same position.\r\n *\r\n * @param {ReadonlyVec3} a The first vector.\r\n * @param {ReadonlyVec3} b The second vector.\r\n * @returns {Boolean} True if the vectors are equal, false otherwise.\r\n */\n\nexport function equals(a, b) {\n var a0 = a[0],\n a1 = a[1],\n a2 = a[2];\n var b0 = b[0],\n b1 = b[1],\n b2 = b[2];\n return Math.abs(a0 - b0) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a0), Math.abs(b0)) && Math.abs(a1 - b1) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a1), Math.abs(b1)) && Math.abs(a2 - b2) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a2), Math.abs(b2));\n}\n/**\r\n * Alias for {@link vec3.subtract}\r\n * @function\r\n */\n\nexport var sub = subtract;\n/**\r\n * Alias for {@link vec3.multiply}\r\n * @function\r\n */\n\nexport var mul = multiply;\n/**\r\n * Alias for {@link vec3.divide}\r\n * @function\r\n */\n\nexport var div = divide;\n/**\r\n * Alias for {@link vec3.distance}\r\n * @function\r\n */\n\nexport var dist = distance;\n/**\r\n * Alias for {@link vec3.squaredDistance}\r\n * @function\r\n */\n\nexport var sqrDist = squaredDistance;\n/**\r\n * Alias for {@link vec3.length}\r\n * @function\r\n */\n\nexport var len = length;\n/**\r\n * Alias for {@link vec3.squaredLength}\r\n * @function\r\n */\n\nexport var sqrLen = squaredLength;\n/**\r\n * Perform some operation over an array of vec3s.\r\n *\r\n * @param {Array} a the array of vectors to iterate over\r\n * @param {Number} stride Number of elements between the start of each vec3. If 0 assumes tightly packed\r\n * @param {Number} offset Number of elements to skip at the beginning of the array\r\n * @param {Number} count Number of vec3s to iterate over. If 0 iterates over entire array\r\n * @param {Function} fn Function to call for each vector in the array\r\n * @param {Object} [arg] additional argument to pass to fn\r\n * @returns {Array} a\r\n * @function\r\n */\n\nexport var forEach = function () {\n var vec = create();\n return function (a, stride, offset, count, fn, arg) {\n var i, l;\n\n if (!stride) {\n stride = 3;\n }\n\n if (!offset) {\n offset = 0;\n }\n\n if (count) {\n l = Math.min(count * stride + offset, a.length);\n } else {\n l = a.length;\n }\n\n for (i = offset; i < l; i += stride) {\n vec[0] = a[i];\n vec[1] = a[i + 1];\n vec[2] = a[i + 2];\n fn(vec, vec, arg);\n a[i] = vec[0];\n a[i + 1] = vec[1];\n a[i + 2] = vec[2];\n }\n\n return a;\n };\n}();","import log from \"../../log.js\";\n\n/**\n * Encodes a non-bitpacked frame which has one sample per pixel.\n *\n * @param {*} buffer\n * @param {*} numberOfFrames\n * @param {*} rows\n * @param {*} cols\n */\nfunction encode(buffer, numberOfFrames, rows, cols) {\n const frameLength = rows * cols;\n\n const header = createHeader();\n let encodedFrames = [];\n\n for (let frame = 0; frame < numberOfFrames; frame++) {\n const frameOffset = frameLength * frame;\n\n encodedFrames.push(\n encodeFrame(buffer, frameOffset, rows, cols, header)\n );\n }\n\n return encodedFrames;\n}\n\nfunction encodeFrame(buffer, frameOffset, rows, cols, header) {\n // Add header to frame:\n let rleArray = [];\n\n for (let r = 0; r < rows; r++) {\n const rowOffset = r * cols;\n const uint8Row = new Uint8Array(buffer, frameOffset + rowOffset, cols);\n\n let i = 0;\n\n while (i < uint8Row.length) {\n const literalRunLength = getLiteralRunLength(uint8Row, i);\n\n if (literalRunLength) {\n // State how many in litteral run\n rleArray.push(literalRunLength - 1);\n // Append litteral run.\n const literalRun = uint8Row.slice(i, i + literalRunLength);\n\n rleArray = [...rleArray, ...literalRun];\n\n i += literalRunLength;\n }\n\n if (i >= uint8Row.length) {\n break;\n }\n\n // Next must be a replicate run.\n const replicateRunLength = getReplicateRunLength(uint8Row, i);\n\n if (replicateRunLength) {\n // State how many in replicate run\n rleArray.push(257 - replicateRunLength);\n rleArray.push(uint8Row[i]);\n\n i += replicateRunLength;\n }\n }\n }\n\n const headerLength = 64;\n\n const bodyLength =\n rleArray.length % 2 === 0 ? rleArray.length : rleArray.length + 1;\n\n const encodedFrameBuffer = new ArrayBuffer(headerLength + bodyLength);\n\n // Copy header into encodedFrameBuffer.\n const headerView = new Uint32Array(encodedFrameBuffer, 0, 16);\n\n for (let i = 0; i < headerView.length; i++) {\n headerView[i] = header[i];\n }\n\n for (let i = 0; i < headerView.length; i++) {\n rleArray.push(headerView[i]);\n }\n\n // Copy rle data into encodedFrameBuffer.\n const bodyView = new Uint8Array(encodedFrameBuffer, 64);\n\n for (let i = 0; i < rleArray.length; i++) {\n bodyView[i] = rleArray[i];\n }\n\n return encodedFrameBuffer;\n}\n\nfunction createHeader() {\n const headerUint32 = new Uint32Array(16);\n\n headerUint32[0] = 1; // 1 Segment.\n headerUint32[1] = 64; // Data offset is 64 bytes.\n\n // Return byte-array version of header:\n return headerUint32;\n}\n\nfunction getLiteralRunLength(uint8Row, i) {\n for (var l = 0; l < uint8Row.length - i; l++) {\n if (\n uint8Row[i + l] === uint8Row[i + l + 1] &&\n uint8Row[i + l + 1] === uint8Row[i + l + 2]\n ) {\n return l;\n }\n\n if (l === 128) {\n return l;\n }\n }\n return uint8Row.length - i;\n}\n\nfunction getReplicateRunLength(uint8Row, i) {\n const first = uint8Row[i];\n for (let l = 1; l < uint8Row.length - i; l++) {\n if (uint8Row[i + l] !== first) {\n return l;\n }\n\n if (l === 128) {\n return l;\n }\n }\n\n return uint8Row.length - i;\n}\n\nfunction decode(rleEncodedFrames, rows, cols) {\n const pixelData = new Uint8Array(rows * cols * rleEncodedFrames.length);\n const buffer = pixelData.buffer;\n const frameLength = rows * cols;\n\n for (let i = 0; i < rleEncodedFrames.length; i++) {\n const rleEncodedFrame = rleEncodedFrames[i];\n\n const uint8FrameView = new Uint8Array(\n buffer,\n i * frameLength,\n frameLength\n );\n\n decodeFrame(rleEncodedFrame, uint8FrameView);\n }\n\n return pixelData;\n}\n\nfunction decodeFrame(rleEncodedFrame, pixelData) {\n // Check HEADER:\n const header = new Uint32Array(rleEncodedFrame, 0, 16);\n\n if (header[0] !== 1) {\n log.error(\n `rleSingleSamplePerPixel only supports fragments with single Byte Segments (for rle encoded segmentation data) at the current time. This rleEncodedFrame has ${header[0]} Byte Segments.`\n );\n\n return;\n }\n\n if (header[1] !== 64) {\n log.error(\n \"Data offset of Byte Segment 1 should be 64 bytes, this rle fragment is encoded incorrectly.\"\n );\n\n return;\n }\n\n const uInt8Frame = new Uint8Array(rleEncodedFrame, 64);\n\n let pixelDataIndex = 0;\n let i = 0;\n\n while (pixelDataIndex < pixelData.length) {\n const byteValue = uInt8Frame[i];\n\n if (byteValue === undefined) {\n break;\n }\n\n if (byteValue <= 127) {\n // TODO -> Interpret the next N+1 bytes literally.\n const N = byteValue + 1;\n const next = i + 1;\n\n // Read the next N bytes literally.\n for (let p = next; p < next + N; p++) {\n pixelData[pixelDataIndex] = uInt8Frame[p];\n pixelDataIndex++;\n }\n i += N + 1;\n }\n\n if (byteValue >= 129) {\n const N = 257 - byteValue;\n const next = i + 1;\n\n // Repeat the next byte N times.\n for (let p = 0; p < N; p++) {\n pixelData[pixelDataIndex] = uInt8Frame[next];\n pixelDataIndex++;\n }\n\n i += 2;\n }\n\n if (i === uInt8Frame.length) {\n break;\n }\n }\n}\n\nexport { encode, decode };\n","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/** Used to identify `toStringTag` values supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/**\n * Adds the key-value `pair` to `map`.\n *\n * @private\n * @param {Object} map The map to modify.\n * @param {Array} pair The key-value pair to add.\n * @returns {Object} Returns `map`.\n */\nfunction addMapEntry(map, pair) {\n // Don't return `map.set` because it's not chainable in IE 11.\n map.set(pair[0], pair[1]);\n return map;\n}\n\n/**\n * Adds `value` to `set`.\n *\n * @private\n * @param {Object} set The set to modify.\n * @param {*} value The value to add.\n * @returns {Object} Returns `set`.\n */\nfunction addSetEntry(set, value) {\n // Don't return `set.add` because it's not chainable in IE 11.\n set.add(value);\n return set;\n}\n\n/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array ? array.length : 0;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\n/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\n/**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\nfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array ? array.length : 0;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Checks if `value` is a host object in IE < 9.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n */\nfunction isHostObject(value) {\n // Many host objects are `Object` objects that can coerce to strings\n // despite having improperly defined `toString` methods.\n var result = false;\n if (value != null && typeof value.toString != 'function') {\n try {\n result = !!(value + '');\n } catch (e) {}\n }\n return result;\n}\n\n/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n Symbol = root.Symbol,\n Uint8Array = root.Uint8Array,\n getPrototype = overArg(Object.getPrototypeOf, Object),\n objectCreate = Object.create,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols,\n nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeKeys = overArg(Object.keys, Object);\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView'),\n Map = getNative(root, 'Map'),\n Promise = getNative(root, 'Promise'),\n Set = getNative(root, 'Set'),\n WeakMap = getNative(root, 'WeakMap'),\n nativeCreate = getNative(Object, 'create');\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n return this.has(key) && delete this.__data__[key];\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n return getMapData(this, key)['delete'](key);\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n getMapData(this, key).set(key, value);\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n this.__data__ = new ListCache(entries);\n}\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n}\n\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n return this.__data__['delete'](key);\n}\n\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var cache = this.__data__;\n if (cache instanceof ListCache) {\n var pairs = cache.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n return this;\n }\n cache = this.__data__ = new MapCache(pairs);\n }\n cache.set(key, value);\n return this;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n // Safari 9 makes `arguments.length` enumerable in strict mode.\n var result = (isArray(value) || isArguments(value))\n ? baseTimes(value.length, String)\n : [];\n\n var length = result.length,\n skipIndexes = !!length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (key == 'length' || isIndex(key, length)))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n object[key] = value;\n }\n}\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n}\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @param {boolean} [isFull] Specify a clone including symbols.\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, isDeep, isFull, customizer, key, object, stack) {\n var result;\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n if (isHostObject(value)) {\n return object ? value : {};\n }\n result = initCloneObject(isFunc ? {} : value);\n if (!isDeep) {\n return copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, baseClone, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (!isArr) {\n var props = isFull ? getAllKeys(value) : keys(value);\n }\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, isDeep, isFull, customizer, key, value, stack));\n });\n return result;\n}\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} prototype The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nfunction baseCreate(proto) {\n return isObject(proto) ? objectCreate(proto) : {};\n}\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\n/**\n * The base implementation of `getTag`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n return objectToString.call(value);\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = (isFunction(value) || isHostObject(value)) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var result = new buffer.constructor(buffer.length);\n buffer.copy(result);\n return result;\n}\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\n/**\n * Creates a clone of `map`.\n *\n * @private\n * @param {Object} map The map to clone.\n * @param {Function} cloneFunc The function to clone values.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned map.\n */\nfunction cloneMap(map, isDeep, cloneFunc) {\n var array = isDeep ? cloneFunc(mapToArray(map), true) : mapToArray(map);\n return arrayReduce(array, addMapEntry, new map.constructor);\n}\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\n/**\n * Creates a clone of `set`.\n *\n * @private\n * @param {Object} set The set to clone.\n * @param {Function} cloneFunc The function to clone values.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned set.\n */\nfunction cloneSet(set, isDeep, cloneFunc) {\n var array = isDeep ? cloneFunc(setToArray(set), true) : setToArray(set);\n return arrayReduce(array, addSetEntry, new set.constructor);\n}\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\n/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n assignValue(object, key, newValue === undefined ? source[key] : newValue);\n }\n return object;\n}\n\n/**\n * Copies own symbol properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n}\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * Creates an array of the own enumerable symbol properties of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = nativeGetSymbols ? overArg(nativeGetSymbols, Object) : stubArray;\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11,\n// for data views in Edge < 14, and promises in Node.js.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = objectToString.call(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : undefined;\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\n/**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n var length = array.length,\n result = array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n}\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\n/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {Function} cloneFunc The function to clone values.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, cloneFunc, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return cloneMap(object, isDeep, cloneFunc);\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return cloneSet(object, isDeep, cloneFunc);\n\n case symbolTag:\n return cloneSymbol(object);\n }\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length &&\n (typeof value == 'number' || reIsUint.test(value)) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to process.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\nfunction cloneDeep(value) {\n return baseClone(value, true, true);\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nfunction isArguments(value) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&\n (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);\n}\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 8-9 which returns 'object' for typed array and other constructors.\n var tag = isObject(value) ? objectToString.call(value) : '';\n return tag == funcTag || tag == genTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\n/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\n/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = cloneDeep;\n","import log from \"../../log.js\";\nimport ndarray from \"ndarray\";\nimport { BitArray } from \"../../bitArray.js\";\nimport { datasetToBlob } from \"../../datasetToBlob.js\";\nimport { DicomMessage } from \"../../DicomMessage.js\";\nimport { DicomMetaDictionary } from \"../../DicomMetaDictionary.js\";\nimport { Normalizer } from \"../../normalizers.js\";\nimport { Segmentation as SegmentationDerivation } from \"../../derivations/index.js\";\nimport { mat4 } from \"gl-matrix\";\nimport {\n rotateDirectionCosinesInPlane,\n flipImageOrientationPatient as flipIOP,\n flipMatrix2D,\n rotateMatrix902D,\n nearlyEqual\n} from \"../../utilities/orientation/index.js\";\nimport {\n encode,\n decode\n} from \"../../utilities/compression/rleSingleSamplePerPixel\";\nimport cloneDeep from \"lodash.clonedeep\";\n\nconst Segmentation = {\n generateSegmentation,\n generateToolState,\n fillSegmentation\n};\n\nexport default Segmentation;\n\n/**\n *\n * @typedef {Object} BrushData\n * @property {Object} toolState - The cornerstoneTools global toolState.\n * @property {Object[]} segments - The cornerstoneTools segment metadata that corresponds to the\n * seriesInstanceUid.\n */\n\nconst generateSegmentationDefaultOptions = {\n includeSliceSpacing: true,\n rleEncode: true\n};\n\n/**\n * generateSegmentation - Generates cornerstoneTools brush data, given a stack of\n * imageIds, images and the cornerstoneTools brushData.\n *\n * @param {object[]} images An array of cornerstone images that contain the source\n * data under `image.data.byteArray.buffer`.\n * @param {Object|Object[]} inputLabelmaps3D The cornerstone `Labelmap3D` object, or an array of objects.\n * @param {Object} userOptions Options to pass to the segmentation derivation and `fillSegmentation`.\n * @returns {Blob}\n */\nfunction generateSegmentation(images, inputLabelmaps3D, userOptions = {}) {\n const isMultiframe = images[0].imageId.includes(\"?frame\");\n const segmentation = _createSegFromImages(\n images,\n isMultiframe,\n userOptions\n );\n\n return fillSegmentation(segmentation, inputLabelmaps3D, userOptions);\n}\n\n/**\n * fillSegmentation - Fills a derived segmentation dataset with cornerstoneTools `LabelMap3D` data.\n *\n * @param {object[]} segmentation An empty segmentation derived dataset.\n * @param {Object|Object[]} inputLabelmaps3D The cornerstone `Labelmap3D` object, or an array of objects.\n * @param {Object} userOptions Options object to override default options.\n * @returns {Blob} description\n */\nfunction fillSegmentation(segmentation, inputLabelmaps3D, userOptions = {}) {\n const options = Object.assign(\n {},\n generateSegmentationDefaultOptions,\n userOptions\n );\n\n // Use another variable so we don't redefine labelmaps3D.\n const labelmaps3D = Array.isArray(inputLabelmaps3D)\n ? inputLabelmaps3D\n : [inputLabelmaps3D];\n\n let numberOfFrames = 0;\n const referencedFramesPerLabelmap = [];\n\n for (\n let labelmapIndex = 0;\n labelmapIndex < labelmaps3D.length;\n labelmapIndex++\n ) {\n const labelmap3D = labelmaps3D[labelmapIndex];\n const { labelmaps2D, metadata } = labelmap3D;\n\n const referencedFramesPerSegment = [];\n\n for (let i = 1; i < metadata.length; i++) {\n if (metadata[i]) {\n referencedFramesPerSegment[i] = [];\n }\n }\n\n for (let i = 0; i < labelmaps2D.length; i++) {\n const labelmap2D = labelmaps2D[i];\n\n if (labelmaps2D[i]) {\n const { segmentsOnLabelmap } = labelmap2D;\n\n segmentsOnLabelmap.forEach(segmentIndex => {\n if (segmentIndex !== 0) {\n referencedFramesPerSegment[segmentIndex].push(i);\n numberOfFrames++;\n }\n });\n }\n }\n\n referencedFramesPerLabelmap[labelmapIndex] = referencedFramesPerSegment;\n }\n\n segmentation.setNumberOfFrames(numberOfFrames);\n\n for (\n let labelmapIndex = 0;\n labelmapIndex < labelmaps3D.length;\n labelmapIndex++\n ) {\n const referencedFramesPerSegment =\n referencedFramesPerLabelmap[labelmapIndex];\n\n const labelmap3D = labelmaps3D[labelmapIndex];\n const { metadata } = labelmap3D;\n\n for (\n let segmentIndex = 1;\n segmentIndex < referencedFramesPerSegment.length;\n segmentIndex++\n ) {\n const referencedFrameIndicies =\n referencedFramesPerSegment[segmentIndex];\n\n if (referencedFrameIndicies) {\n // Frame numbers start from 1.\n const referencedFrameNumbers = referencedFrameIndicies.map(\n element => {\n return element + 1;\n }\n );\n const segmentMetadata = metadata[segmentIndex];\n const labelmaps = _getLabelmapsFromRefernecedFrameIndicies(\n labelmap3D,\n referencedFrameIndicies\n );\n\n segmentation.addSegmentFromLabelmap(\n segmentMetadata,\n labelmaps,\n segmentIndex,\n referencedFrameNumbers\n );\n }\n }\n }\n\n if (options.rleEncode) {\n const rleEncodedFrames = encode(\n segmentation.dataset.PixelData,\n numberOfFrames,\n segmentation.dataset.Rows,\n segmentation.dataset.Columns\n );\n\n // Must use fractional now to RLE encode, as the DICOM standard only allows BitStored && BitsAllocated\n // to be 1 for BINARY. This is not ideal and there should be a better format for compression in this manner\n // added to the standard.\n segmentation.assignToDataset({\n BitsAllocated: \"8\",\n BitsStored: \"8\",\n HighBit: \"7\",\n SegmentationType: \"FRACTIONAL\",\n SegmentationFractionalType: \"PROBABILITY\",\n MaximumFractionalValue: \"255\"\n });\n\n segmentation.dataset._meta.TransferSyntaxUID = {\n Value: [\"1.2.840.10008.1.2.5\"],\n vr: \"UI\"\n };\n segmentation.dataset._vrMap.PixelData = \"OB\";\n segmentation.dataset.PixelData = rleEncodedFrames;\n } else {\n // If no rleEncoding, at least bitpack the data.\n segmentation.bitPackPixelData();\n }\n\n const segBlob = datasetToBlob(segmentation.dataset);\n\n return segBlob;\n}\n\nfunction _getLabelmapsFromRefernecedFrameIndicies(\n labelmap3D,\n referencedFrameIndicies\n) {\n const { labelmaps2D } = labelmap3D;\n\n const labelmaps = [];\n\n for (let i = 0; i < referencedFrameIndicies.length; i++) {\n const frame = referencedFrameIndicies[i];\n\n labelmaps.push(labelmaps2D[frame].pixelData);\n }\n\n return labelmaps;\n}\n\n/**\n * _createSegFromImages - description\n *\n * @param {Object[]} images An array of the cornerstone image objects.\n * @param {Boolean} isMultiframe Whether the images are multiframe.\n * @returns {Object} The Seg derived dataSet.\n */\nfunction _createSegFromImages(images, isMultiframe, options) {\n const datasets = [];\n\n if (isMultiframe) {\n const image = images[0];\n const arrayBuffer = image.data.byteArray.buffer;\n\n const dicomData = DicomMessage.readFile(arrayBuffer);\n const dataset = DicomMetaDictionary.naturalizeDataset(dicomData.dict);\n\n dataset._meta = DicomMetaDictionary.namifyDataset(dicomData.meta);\n\n datasets.push(dataset);\n } else {\n for (let i = 0; i < images.length; i++) {\n const image = images[i];\n const arrayBuffer = image.data.byteArray.buffer;\n const dicomData = DicomMessage.readFile(arrayBuffer);\n const dataset = DicomMetaDictionary.naturalizeDataset(\n dicomData.dict\n );\n\n dataset._meta = DicomMetaDictionary.namifyDataset(dicomData.meta);\n datasets.push(dataset);\n }\n }\n\n const multiframe = Normalizer.normalizeToDataset(datasets);\n\n return new SegmentationDerivation([multiframe], options);\n}\n\n/**\n * generateToolState - Given a set of cornrstoneTools imageIds and a Segmentation buffer,\n * derive cornerstoneTools toolState and brush metadata.\n *\n * @param {string[]} imageIds - An array of the imageIds.\n * @param {ArrayBuffer} arrayBuffer - The SEG arrayBuffer.\n * @param {*} metadataProvider.\n * @param {bool} skipOverlapping - skip checks for overlapping segs, default value false.\n * @param {number} tolerance - default value 1.e-3.\n *\n * @return {[]ArrayBuffer}a list of array buffer for each labelMap\n * @return {Object} an object from which the segment metadata can be derived\n * @return {[][][]} 2D list containing the track of segments per frame\n * @return {[][][]} 3D list containing the track of segments per frame for each labelMap\n * (available only for the overlapping case).\n */\nfunction generateToolState(\n imageIds,\n arrayBuffer,\n metadataProvider,\n skipOverlapping = false,\n tolerance = 1e-3\n) {\n const dicomData = DicomMessage.readFile(arrayBuffer);\n const dataset = DicomMetaDictionary.naturalizeDataset(dicomData.dict);\n dataset._meta = DicomMetaDictionary.namifyDataset(dicomData.meta);\n const multiframe = Normalizer.normalizeToDataset([dataset]);\n\n const imagePlaneModule = metadataProvider.get(\n \"imagePlaneModule\",\n imageIds[0]\n );\n\n const generalSeriesModule = metadataProvider.get(\n \"generalSeriesModule\",\n imageIds[0]\n );\n\n const SeriesInstanceUID = generalSeriesModule.seriesInstanceUID;\n\n let ImageOrientationPatient;\n let validOrientations;\n\n const hasCoordinateSystem = \"FrameOfReferenceUID\" in multiframe;\n if (hasCoordinateSystem) {\n if (!imagePlaneModule) {\n console.warn(\"Insufficient metadata, imagePlaneModule missing.\");\n }\n\n ImageOrientationPatient = Array.isArray(imagePlaneModule.rowCosines)\n ? [\n ...imagePlaneModule.rowCosines,\n ...imagePlaneModule.columnCosines\n ]\n : [\n imagePlaneModule.rowCosines.x,\n imagePlaneModule.rowCosines.y,\n imagePlaneModule.rowCosines.z,\n imagePlaneModule.columnCosines.x,\n imagePlaneModule.columnCosines.y,\n imagePlaneModule.columnCosines.z\n ];\n\n // Get IOP from ref series, compute supported orientations:\n validOrientations = getValidOrientations(ImageOrientationPatient);\n }\n\n const sliceLength = multiframe.Columns * multiframe.Rows;\n const segMetadata = getSegmentMetadata(multiframe, SeriesInstanceUID);\n\n const TransferSyntaxUID = multiframe._meta.TransferSyntaxUID.Value[0];\n\n let pixelData;\n\n if (TransferSyntaxUID === \"1.2.840.10008.1.2.5\") {\n const rleEncodedFrames = Array.isArray(multiframe.PixelData)\n ? multiframe.PixelData\n : [multiframe.PixelData];\n\n pixelData = decode(\n rleEncodedFrames,\n multiframe.Rows,\n multiframe.Columns\n );\n\n if (multiframe.BitsStored === 1) {\n console.warn(\"No implementation for rle + bitbacking.\");\n\n return;\n }\n } else {\n pixelData = unpackPixelData(multiframe);\n\n if (!pixelData) {\n throw new Error(\"Fractional segmentations are not yet supported\");\n }\n }\n\n let orientation;\n if (hasCoordinateSystem) {\n orientation = checkOrientation(\n multiframe,\n validOrientations,\n [imagePlaneModule.rows, imagePlaneModule.columns, imageIds.length],\n tolerance\n );\n } else {\n orientation = \"Planar\";\n }\n\n let overlapping = false;\n if (!skipOverlapping) {\n overlapping = checkSEGsOverlapping(\n pixelData,\n multiframe,\n imageIds,\n validOrientations,\n metadataProvider,\n tolerance\n );\n }\n\n let insertFunction;\n\n switch (orientation) {\n case \"Planar\":\n if (overlapping) {\n insertFunction = insertOverlappingPixelDataPlanar;\n } else {\n insertFunction = insertPixelDataPlanar;\n }\n break;\n case \"Perpendicular\":\n //insertFunction = insertPixelDataPerpendicular;\n throw new Error(\n \"Segmentations orthogonal to the acquisition plane of the source data are not yet supported.\"\n );\n case \"Oblique\":\n throw new Error(\n \"Segmentations oblique to the acquisition plane of the source data are not yet supported.\"\n );\n }\n\n /* if SEGs are overlapping:\n 1) the labelmapBuffer will contain M volumes which have non-overlapping segments;\n 2) segmentsOnFrame will have M * numberOfFrames values to track in which labelMap are the segments;\n 3) insertFunction will return the number of LabelMaps\n 4) generateToolState return is an array*/\n\n const segmentsOnFrameArray = [];\n segmentsOnFrameArray[0] = [];\n const segmentsOnFrame = [];\n\n const arrayBufferLength = sliceLength * imageIds.length * 2; // 2 bytes per label voxel in cst4.\n const labelmapBufferArray = [];\n labelmapBufferArray[0] = new ArrayBuffer(arrayBufferLength);\n\n insertFunction(\n segmentsOnFrame,\n segmentsOnFrameArray,\n labelmapBufferArray,\n pixelData,\n multiframe,\n imageIds,\n validOrientations,\n metadataProvider,\n tolerance\n );\n\n return {\n labelmapBufferArray,\n segMetadata,\n segmentsOnFrame,\n segmentsOnFrameArray\n };\n}\n\nfunction insertPixelDataPerpendicular(\n segmentsOnFrame,\n labelmapBuffer,\n pixelData,\n multiframe,\n imageIds,\n validOrientations,\n metadataProvider\n) {\n const {\n SharedFunctionalGroupsSequence,\n PerFrameFunctionalGroupsSequence,\n Rows,\n Columns\n } = multiframe;\n\n const firstImagePlaneModule = metadataProvider.get(\n \"imagePlaneModule\",\n imageIds[0]\n );\n\n const lastImagePlaneModule = metadataProvider.get(\n \"imagePlaneModule\",\n imageIds[imageIds.length - 1]\n );\n\n console.log(firstImagePlaneModule);\n console.log(lastImagePlaneModule);\n\n const corners = [\n ...getCorners(firstImagePlaneModule),\n ...getCorners(lastImagePlaneModule)\n ];\n\n console.log(`corners:`);\n console.log(corners);\n\n const indexToWorld = mat4.create();\n\n const ippFirstFrame = firstImagePlaneModule.imagePositionPatient;\n const rowCosines = Array.isArray(firstImagePlaneModule.rowCosines)\n ? [...firstImagePlaneModule.rowCosines]\n : [\n firstImagePlaneModule.rowCosines.x,\n firstImagePlaneModule.rowCosines.y,\n firstImagePlaneModule.rowCosines.z\n ];\n\n const columnCosines = Array.isArray(firstImagePlaneModule.columnCosines)\n ? [...firstImagePlaneModule.columnCosines]\n : [\n firstImagePlaneModule.columnCosines.x,\n firstImagePlaneModule.columnCosines.y,\n firstImagePlaneModule.columnCosines.z\n ];\n\n const { pixelSpacing } = firstImagePlaneModule;\n\n mat4.set(\n indexToWorld,\n // Column 1\n 0,\n 0,\n 0,\n ippFirstFrame[0],\n // Column 2\n 0,\n 0,\n 0,\n ippFirstFrame[1],\n // Column 3\n 0,\n 0,\n 0,\n ippFirstFrame[2],\n // Column 4\n 0,\n 0,\n 0,\n 1\n );\n\n // TODO -> Get origin and (x,y,z) increments to build a translation matrix:\n // TODO -> Equation C.7.6.2.1-1\n\n // | cx*di rx* Xx 0 | |x|\n // | cy*di ry Xy 0 | |y|\n // | cz*di rz Xz 0 | |z|\n // | tx ty tz 1 | |1|\n\n // const [\n // 0, 0 , 0 , 0,\n // 0, 0 , 0 , 0,\n // 0, 0 , 0 , 0,\n // ipp[0], ipp[1] , ipp[2] , 1,\n // ]\n\n // Each frame:\n\n // Find which corner the first voxel lines up with (one of 8 corners.)\n\n // Find how i,j,k orient with respect to source volume.\n // Go through each frame, find location in source to start, and whether to increment +/ix,+/-y,+/-z\n // through each voxel.\n\n // [1,0,0,0,1,0]\n\n // const [\n\n // ]\n\n // Invert transformation matrix to get worldToIndex\n\n // Apply world to index on each point to fill up the matrix.\n\n // const sharedImageOrientationPatient = SharedFunctionalGroupsSequence.PlaneOrientationSequence\n // ? SharedFunctionalGroupsSequence.PlaneOrientationSequence\n // .ImageOrientationPatient\n // : undefined;\n // const sliceLength = Columns * Rows;\n}\n\nfunction getCorners(imagePlaneModule) {\n // console.log(imagePlaneModule);\n\n const {\n rows,\n columns,\n rowCosines,\n columnCosines,\n imagePositionPatient: ipp,\n rowPixelSpacing,\n columnPixelSpacing\n } = imagePlaneModule;\n\n const rowLength = columns * columnPixelSpacing;\n const columnLength = rows * rowPixelSpacing;\n\n const entireRowVector = [\n rowLength * columnCosines[0],\n rowLength * columnCosines[1],\n rowLength * columnCosines[2]\n ];\n\n const entireColumnVector = [\n columnLength * rowCosines[0],\n columnLength * rowCosines[1],\n columnLength * rowCosines[2]\n ];\n\n const topLeft = [ipp[0], ipp[1], ipp[2]];\n const topRight = [\n topLeft[0] + entireRowVector[0],\n topLeft[1] + entireRowVector[1],\n topLeft[2] + entireRowVector[2]\n ];\n const bottomLeft = [\n topLeft[0] + entireColumnVector[0],\n topLeft[1] + entireColumnVector[1],\n topLeft[2] + entireColumnVector[2]\n ];\n\n const bottomRight = [\n bottomLeft[0] + entireRowVector[0],\n bottomLeft[1] + entireRowVector[1],\n bottomLeft[2] + entireRowVector[2]\n ];\n\n return [topLeft, topRight, bottomLeft, bottomRight];\n}\n\n/**\n * Find the reference frame of the segmentation frame in the source data.\n *\n * @param {Object} multiframe dicom metadata\n * @param {Int} frameSegment frame dicom index\n * @param {String[]} imageIds A list of imageIds.\n * @param {Object} metadataProvider A Cornerstone metadataProvider to query\n * metadata from imageIds.\n * @param {Float} tolerance The tolerance parameter\n *\n * @returns {String} Returns the imageId\n */\nfunction findReferenceSourceImageId(\n multiframe,\n frameSegment,\n imageIds,\n metadataProvider,\n tolerance\n) {\n let imageId = undefined;\n\n if (!multiframe) {\n return imageId;\n }\n\n const {\n FrameOfReferenceUID,\n PerFrameFunctionalGroupsSequence,\n SourceImageSequence,\n ReferencedSeriesSequence\n } = multiframe;\n\n if (\n !PerFrameFunctionalGroupsSequence ||\n PerFrameFunctionalGroupsSequence.length === 0\n ) {\n return imageId;\n }\n\n const PerFrameFunctionalGroup =\n PerFrameFunctionalGroupsSequence[frameSegment];\n\n if (!PerFrameFunctionalGroup) {\n return imageId;\n }\n\n let frameSourceImageSequence = undefined;\n if (PerFrameFunctionalGroup.DerivationImageSequence) {\n let DerivationImageSequence =\n PerFrameFunctionalGroup.DerivationImageSequence;\n if (Array.isArray(DerivationImageSequence)) {\n if (DerivationImageSequence.length !== 0) {\n DerivationImageSequence = DerivationImageSequence[0];\n } else {\n DerivationImageSequence = undefined;\n }\n }\n\n if (DerivationImageSequence) {\n frameSourceImageSequence =\n DerivationImageSequence.SourceImageSequence;\n if (Array.isArray(frameSourceImageSequence)) {\n if (frameSourceImageSequence.length !== 0) {\n frameSourceImageSequence = frameSourceImageSequence[0];\n } else {\n frameSourceImageSequence = undefined;\n }\n }\n }\n } else if (SourceImageSequence && SourceImageSequence.length !== 0) {\n frameSourceImageSequence = SourceImageSequence[frameSegment];\n }\n\n if (frameSourceImageSequence) {\n imageId = getImageIdOfSourceImagebySourceImageSequence(\n frameSourceImageSequence,\n imageIds,\n metadataProvider\n );\n }\n\n if (imageId === undefined && ReferencedSeriesSequence) {\n const referencedSeriesSequence = Array.isArray(ReferencedSeriesSequence)\n ? ReferencedSeriesSequence[0]\n : ReferencedSeriesSequence;\n const ReferencedSeriesInstanceUID =\n referencedSeriesSequence.SeriesInstanceUID;\n\n imageId = getImageIdOfSourceImagebyGeometry(\n ReferencedSeriesInstanceUID,\n FrameOfReferenceUID,\n PerFrameFunctionalGroup,\n imageIds,\n metadataProvider,\n tolerance\n );\n }\n\n return imageId;\n}\n\n/**\n * Checks if there is any overlapping segmentations.\n * @returns {boolean} Returns a flag if segmentations overlapping\n */\n\nfunction checkSEGsOverlapping(\n pixelData,\n multiframe,\n imageIds,\n validOrientations,\n metadataProvider,\n tolerance\n) {\n const {\n SharedFunctionalGroupsSequence,\n PerFrameFunctionalGroupsSequence,\n SegmentSequence,\n Rows,\n Columns\n } = multiframe;\n\n let numberOfSegs = SegmentSequence.length;\n if (numberOfSegs < 2) {\n return false;\n }\n\n const sharedImageOrientationPatient =\n SharedFunctionalGroupsSequence.PlaneOrientationSequence\n ? SharedFunctionalGroupsSequence.PlaneOrientationSequence\n .ImageOrientationPatient\n : undefined;\n const sliceLength = Columns * Rows;\n const groupsLen = PerFrameFunctionalGroupsSequence.length;\n\n /** sort groupsLen to have all the segments for each frame in an array\n * frame 2 : 1, 2\n * frame 4 : 1, 3\n * frame 5 : 4\n */\n\n let frameSegmentsMapping = new Map();\n for (let frameSegment = 0; frameSegment < groupsLen; ++frameSegment) {\n const segmentIndex = getSegmentIndex(multiframe, frameSegment);\n if (segmentIndex === undefined) {\n console.warn(\n \"Could not retrieve the segment index for frame segment \" +\n frameSegment +\n \", skipping this frame.\"\n );\n continue;\n }\n\n const imageId = findReferenceSourceImageId(\n multiframe,\n frameSegment,\n imageIds,\n metadataProvider,\n tolerance\n );\n\n if (!imageId) {\n console.warn(\n \"Image not present in stack, can't import frame : \" +\n frameSegment +\n \".\"\n );\n continue;\n }\n\n const imageIdIndex = imageIds.findIndex(element => element === imageId);\n\n if (frameSegmentsMapping.has(imageIdIndex)) {\n let segmentArray = frameSegmentsMapping.get(imageIdIndex);\n if (!segmentArray.includes(frameSegment)) {\n segmentArray.push(frameSegment);\n frameSegmentsMapping.set(imageIdIndex, segmentArray);\n }\n } else {\n frameSegmentsMapping.set(imageIdIndex, [frameSegment]);\n }\n }\n\n for (let [user, role] of frameSegmentsMapping.entries()) {\n let temp2DArray = new Uint16Array(sliceLength).fill(0);\n\n for (let i = 0; i < role.length; ++i) {\n const frameSegment = role[i];\n\n const PerFrameFunctionalGroups =\n PerFrameFunctionalGroupsSequence[frameSegment];\n\n const pixelDataI2D = ndarray(\n new Uint8Array(\n pixelData.buffer,\n frameSegment * sliceLength,\n sliceLength\n ),\n [Rows, Columns]\n );\n\n let alignedPixelDataI;\n\n const hasCoordinateSystem = \"FrameOfReferenceUID\" in multiframe;\n if (hasCoordinateSystem) {\n const ImageOrientationPatientI =\n sharedImageOrientationPatient ||\n PerFrameFunctionalGroups.PlaneOrientationSequence\n .ImageOrientationPatient;\n\n alignedPixelDataI = alignPixelDataWithSourceData(\n pixelDataI2D,\n ImageOrientationPatientI,\n validOrientations,\n tolerance\n );\n } else {\n alignedPixelDataI = pixelDataI2D;\n }\n\n if (!alignedPixelDataI) {\n console.warn(\n \"Individual SEG frames are out of plane with respect to the first SEG frame, this is not yet supported, skipping this frame.\"\n );\n continue;\n }\n\n const data = alignedPixelDataI.data;\n for (let j = 0, len = data.length; j < len; ++j) {\n if (data[j] !== 0) {\n temp2DArray[j]++;\n if (temp2DArray[j] > 1) {\n return true;\n }\n }\n }\n }\n }\n\n return false;\n}\n\nfunction insertOverlappingPixelDataPlanar(\n segmentsOnFrame,\n segmentsOnFrameArray,\n labelmapBufferArray,\n pixelData,\n multiframe,\n imageIds,\n validOrientations,\n metadataProvider,\n tolerance\n) {\n const {\n SharedFunctionalGroupsSequence,\n PerFrameFunctionalGroupsSequence,\n Rows,\n Columns\n } = multiframe;\n\n const sharedImageOrientationPatient =\n SharedFunctionalGroupsSequence.PlaneOrientationSequence\n ? SharedFunctionalGroupsSequence.PlaneOrientationSequence\n .ImageOrientationPatient\n : undefined;\n const sliceLength = Columns * Rows;\n const arrayBufferLength = sliceLength * imageIds.length * 2; // 2 bytes per label voxel in cst4.\n\n // indicate the number of labelMaps\n let M = 1;\n\n // indicate the current labelMap array index;\n let m = 0;\n\n // temp array for checking overlaps\n let tempBuffer = labelmapBufferArray[m].slice(0);\n\n // temp list for checking overlaps\n let tempSegmentsOnFrame = cloneDeep(segmentsOnFrameArray[m]);\n\n /** split overlapping SEGs algorithm for each segment:\n * A) copy the labelmapBuffer in the array with index 0\n * B) add the segment pixel per pixel on the copied buffer from (A)\n * C) if no overlap, copy the results back on the orignal array from (A)\n * D) if overlap, repeat increasing the index m up to M (if out of memory, add new buffer in the array and M++);\n */\n\n let numberOfSegs = multiframe.SegmentSequence.length;\n for (\n let segmentIndexToProcess = 1;\n segmentIndexToProcess <= numberOfSegs;\n ++segmentIndexToProcess\n ) {\n for (\n let i = 0, groupsLen = PerFrameFunctionalGroupsSequence.length;\n i < groupsLen;\n ++i\n ) {\n const PerFrameFunctionalGroups =\n PerFrameFunctionalGroupsSequence[i];\n\n const segmentIndex = getSegmentIndex(multiframe, i);\n if (segmentIndex === undefined) {\n throw new Error(\n \"Could not retrieve the segment index. Aborting segmentation loading.\"\n );\n }\n\n if (segmentIndex !== segmentIndexToProcess) {\n continue;\n }\n\n const pixelDataI2D = ndarray(\n new Uint8Array(pixelData.buffer, i * sliceLength, sliceLength),\n [Rows, Columns]\n );\n\n let alignedPixelDataI;\n\n const hasCoordinateSystem = \"FrameOfReferenceUID\" in multiframe;\n if (hasCoordinateSystem) {\n const ImageOrientationPatientI =\n sharedImageOrientationPatient ||\n PerFrameFunctionalGroups.PlaneOrientationSequence\n .ImageOrientationPatient;\n\n alignedPixelDataI = alignPixelDataWithSourceData(\n pixelDataI2D,\n ImageOrientationPatientI,\n validOrientations,\n tolerance\n );\n } else {\n alignedPixelDataI = pixelDataI2D;\n }\n\n if (!alignedPixelDataI) {\n throw new Error(\n \"Individual SEG frames are out of plane with respect to the first SEG frame. \" +\n \"This is not yet supported. Aborting segmentation loading.\"\n );\n }\n\n const imageId = findReferenceSourceImageId(\n multiframe,\n i,\n imageIds,\n metadataProvider,\n tolerance\n );\n\n if (!imageId) {\n console.warn(\n \"Image not present in stack, can't import frame : \" +\n i +\n \".\"\n );\n continue;\n }\n\n const sourceImageMetadata = metadataProvider.get(\n \"imagePixelModule\",\n imageId\n );\n if (\n Rows !== sourceImageMetadata.rows ||\n Columns !== sourceImageMetadata.columns\n ) {\n throw new Error(\n \"Individual SEG frames have different geometry dimensions (Rows and Columns) \" +\n \"respect to the source image reference frame. This is not yet supported. \" +\n \"Aborting segmentation loading. \"\n );\n }\n\n const imageIdIndex = imageIds.findIndex(\n element => element === imageId\n );\n const byteOffset = sliceLength * 2 * imageIdIndex; // 2 bytes/pixel\n\n const labelmap2DView = new Uint16Array(\n tempBuffer,\n byteOffset,\n sliceLength\n );\n\n const data = alignedPixelDataI.data;\n\n let segmentOnFrame = false;\n for (let j = 0, len = alignedPixelDataI.data.length; j < len; ++j) {\n if (data[j]) {\n if (labelmap2DView[j] !== 0) {\n m++;\n if (m >= M) {\n labelmapBufferArray[m] = new ArrayBuffer(\n arrayBufferLength\n );\n segmentsOnFrameArray[m] = [];\n M++;\n }\n tempBuffer = labelmapBufferArray[m].slice(0);\n tempSegmentsOnFrame = cloneDeep(\n segmentsOnFrameArray[m]\n );\n\n i = 0;\n break;\n } else {\n labelmap2DView[j] = segmentIndex;\n segmentOnFrame = true;\n }\n }\n }\n\n if (segmentOnFrame) {\n if (!tempSegmentsOnFrame[imageIdIndex]) {\n tempSegmentsOnFrame[imageIdIndex] = [];\n }\n\n tempSegmentsOnFrame[imageIdIndex].push(segmentIndex);\n\n if (!segmentsOnFrame[imageIdIndex]) {\n segmentsOnFrame[imageIdIndex] = [];\n }\n\n segmentsOnFrame[imageIdIndex].push(segmentIndex);\n }\n }\n\n labelmapBufferArray[m] = tempBuffer.slice(0);\n segmentsOnFrameArray[m] = cloneDeep(tempSegmentsOnFrame);\n\n // reset temp variables/buffers for new segment\n m = 0;\n tempBuffer = labelmapBufferArray[m].slice(0);\n tempSegmentsOnFrame = cloneDeep(segmentsOnFrameArray[m]);\n }\n}\n\nconst getSegmentIndex = (multiframe, frame) => {\n const { PerFrameFunctionalGroupsSequence, SharedFunctionalGroupsSequence } =\n multiframe;\n const PerFrameFunctionalGroups = PerFrameFunctionalGroupsSequence[frame];\n return PerFrameFunctionalGroups &&\n PerFrameFunctionalGroups.SegmentIdentificationSequence\n ? PerFrameFunctionalGroups.SegmentIdentificationSequence\n .ReferencedSegmentNumber\n : SharedFunctionalGroupsSequence.SegmentIdentificationSequence\n ? SharedFunctionalGroupsSequence.SegmentIdentificationSequence\n .ReferencedSegmentNumber\n : undefined;\n};\n\nfunction insertPixelDataPlanar(\n segmentsOnFrame,\n segmentsOnFrameArray,\n labelmapBufferArray,\n pixelData,\n multiframe,\n imageIds,\n validOrientations,\n metadataProvider,\n tolerance\n) {\n const {\n SharedFunctionalGroupsSequence,\n PerFrameFunctionalGroupsSequence,\n Rows,\n Columns\n } = multiframe;\n\n const sharedImageOrientationPatient =\n SharedFunctionalGroupsSequence.PlaneOrientationSequence\n ? SharedFunctionalGroupsSequence.PlaneOrientationSequence\n .ImageOrientationPatient\n : undefined;\n const sliceLength = Columns * Rows;\n\n for (\n let i = 0, groupsLen = PerFrameFunctionalGroupsSequence.length;\n i < groupsLen;\n ++i\n ) {\n const PerFrameFunctionalGroups = PerFrameFunctionalGroupsSequence[i];\n\n const pixelDataI2D = ndarray(\n new Uint8Array(pixelData.buffer, i * sliceLength, sliceLength),\n [Rows, Columns]\n );\n\n let alignedPixelDataI;\n\n const hasCoordinateSystem = \"FrameOfReferenceUID\" in multiframe;\n if (hasCoordinateSystem) {\n const ImageOrientationPatientI =\n sharedImageOrientationPatient ||\n PerFrameFunctionalGroups.PlaneOrientationSequence\n .ImageOrientationPatient;\n\n alignedPixelDataI = alignPixelDataWithSourceData(\n pixelDataI2D,\n ImageOrientationPatientI,\n validOrientations,\n tolerance\n );\n } else {\n alignedPixelDataI = pixelDataI2D;\n }\n\n if (!alignedPixelDataI) {\n throw new Error(\n \"Individual SEG frames are out of plane with respect to the first SEG frame. \" +\n \"This is not yet supported. Aborting segmentation loading.\"\n );\n }\n\n const segmentIndex = getSegmentIndex(multiframe, i);\n if (segmentIndex === undefined) {\n throw new Error(\n \"Could not retrieve the segment index. Aborting segmentation loading.\"\n );\n }\n\n const imageId = findReferenceSourceImageId(\n multiframe,\n i,\n imageIds,\n metadataProvider,\n tolerance\n );\n\n if (!imageId) {\n console.warn(\n \"Image not present in stack, can't import frame : \" + i + \".\"\n );\n continue;\n }\n\n const sourceImageMetadata = metadataProvider.get(\n \"imagePixelModule\",\n imageId\n );\n if (\n Rows !== sourceImageMetadata.rows ||\n Columns !== sourceImageMetadata.columns\n ) {\n throw new Error(\n \"Individual SEG frames have different geometry dimensions (Rows and Columns) \" +\n \"respect to the source image reference frame. This is not yet supported. \" +\n \"Aborting segmentation loading. \"\n );\n }\n\n const imageIdIndex = imageIds.findIndex(element => element === imageId);\n const byteOffset = sliceLength * 2 * imageIdIndex; // 2 bytes/pixel\n\n const labelmap2DView = new Uint16Array(\n labelmapBufferArray[0],\n byteOffset,\n sliceLength\n );\n\n const data = alignedPixelDataI.data;\n for (let j = 0, len = alignedPixelDataI.data.length; j < len; ++j) {\n if (data[j]) {\n for (let x = j; x < len; ++x) {\n if (data[x]) {\n labelmap2DView[x] = segmentIndex;\n }\n }\n\n if (!segmentsOnFrame[imageIdIndex]) {\n segmentsOnFrame[imageIdIndex] = [];\n }\n\n segmentsOnFrame[imageIdIndex].push(segmentIndex);\n\n break;\n }\n }\n }\n}\n\nfunction checkOrientation(\n multiframe,\n validOrientations,\n sourceDataDimensions,\n tolerance\n) {\n const { SharedFunctionalGroupsSequence, PerFrameFunctionalGroupsSequence } =\n multiframe;\n\n const sharedImageOrientationPatient =\n SharedFunctionalGroupsSequence.PlaneOrientationSequence\n ? SharedFunctionalGroupsSequence.PlaneOrientationSequence\n .ImageOrientationPatient\n : undefined;\n\n // Check if in plane.\n const PerFrameFunctionalGroups = PerFrameFunctionalGroupsSequence[0];\n\n const iop =\n sharedImageOrientationPatient ||\n PerFrameFunctionalGroups.PlaneOrientationSequence\n .ImageOrientationPatient;\n\n const inPlane = validOrientations.some(operation =>\n compareArrays(iop, operation, tolerance)\n );\n\n if (inPlane) {\n return \"Planar\";\n }\n\n if (\n checkIfPerpendicular(iop, validOrientations[0], tolerance) &&\n sourceDataDimensions.includes(multiframe.Rows) &&\n sourceDataDimensions.includes(multiframe.Columns)\n ) {\n // Perpendicular and fits on same grid.\n return \"Perpendicular\";\n }\n\n return \"Oblique\";\n}\n\n/**\n * checkIfPerpendicular - Returns true if iop1 and iop2 are perpendicular\n * within a tolerance.\n *\n * @param {Number[6]} iop1 An ImageOrientationPatient array.\n * @param {Number[6]} iop2 An ImageOrientationPatient array.\n * @param {Number} tolerance.\n * @return {Boolean} True if iop1 and iop2 are equal.\n */\nfunction checkIfPerpendicular(iop1, iop2, tolerance) {\n const absDotColumnCosines = Math.abs(\n iop1[0] * iop2[0] + iop1[1] * iop2[1] + iop1[2] * iop2[2]\n );\n const absDotRowCosines = Math.abs(\n iop1[3] * iop2[3] + iop1[4] * iop2[4] + iop1[5] * iop2[5]\n );\n\n return (\n (absDotColumnCosines < tolerance ||\n Math.abs(absDotColumnCosines - 1) < tolerance) &&\n (absDotRowCosines < tolerance ||\n Math.abs(absDotRowCosines - 1) < tolerance)\n );\n}\n\n/**\n * unpackPixelData - Unpacks bitpacked pixelData if the Segmentation is BINARY.\n *\n * @param {Object} multiframe The multiframe dataset.\n * @return {Uint8Array} The unpacked pixelData.\n */\nfunction unpackPixelData(multiframe) {\n const segType = multiframe.SegmentationType;\n\n let data;\n if (Array.isArray(multiframe.PixelData)) {\n data = multiframe.PixelData[0];\n } else {\n data = multiframe.PixelData;\n }\n\n if (data === undefined) {\n log.error(\"This segmentation pixeldata is undefined.\");\n }\n\n if (segType === \"BINARY\") {\n return BitArray.unpack(data);\n }\n\n const pixelData = new Uint8Array(data);\n\n const max = multiframe.MaximumFractionalValue;\n const onlyMaxAndZero =\n pixelData.find(element => element !== 0 && element !== max) ===\n undefined;\n\n if (!onlyMaxAndZero) {\n // This is a fractional segmentation, which is not currently supported.\n return;\n }\n\n log.warn(\n \"This segmentation object is actually binary... processing as such.\"\n );\n\n return pixelData;\n}\n\n/**\n * getImageIdOfSourceImagebySourceImageSequence - Returns the Cornerstone imageId of the source image.\n *\n * @param {Object} SourceImageSequence Sequence describing the source image.\n * @param {String[]} imageIds A list of imageIds.\n * @param {Object} metadataProvider A Cornerstone metadataProvider to query\n * metadata from imageIds.\n * @return {String} The corresponding imageId.\n */\nfunction getImageIdOfSourceImagebySourceImageSequence(\n SourceImageSequence,\n imageIds,\n metadataProvider\n) {\n const { ReferencedSOPInstanceUID, ReferencedFrameNumber } =\n SourceImageSequence;\n\n return ReferencedFrameNumber\n ? getImageIdOfReferencedFrame(\n ReferencedSOPInstanceUID,\n ReferencedFrameNumber,\n imageIds,\n metadataProvider\n )\n : getImageIdOfReferencedSingleFramedSOPInstance(\n ReferencedSOPInstanceUID,\n imageIds,\n metadataProvider\n );\n}\n\n/**\n * getImageIdOfSourceImagebyGeometry - Returns the Cornerstone imageId of the source image.\n *\n * @param {String} ReferencedSeriesInstanceUID Referenced series of the source image.\n * @param {String} FrameOfReferenceUID Frame of reference.\n * @param {Object} PerFrameFunctionalGroup Sequence describing segmentation reference attributes per frame.\n * @param {String[]} imageIds A list of imageIds.\n * @param {Object} metadataProvider A Cornerstone metadataProvider to query\n * @param {Float} tolerance The tolerance parameter\n *\n * @return {String} The corresponding imageId.\n */\nfunction getImageIdOfSourceImagebyGeometry(\n ReferencedSeriesInstanceUID,\n FrameOfReferenceUID,\n PerFrameFunctionalGroup,\n imageIds,\n metadataProvider,\n tolerance\n) {\n if (\n ReferencedSeriesInstanceUID === undefined ||\n PerFrameFunctionalGroup.PlanePositionSequence === undefined ||\n PerFrameFunctionalGroup.PlanePositionSequence[0] === undefined ||\n PerFrameFunctionalGroup.PlanePositionSequence[0]\n .ImagePositionPatient === undefined\n ) {\n return undefined;\n }\n\n for (\n let imageIdsIndexc = 0;\n imageIdsIndexc < imageIds.length;\n ++imageIdsIndexc\n ) {\n const sourceImageMetadata = metadataProvider.get(\n \"instance\",\n imageIds[imageIdsIndexc]\n );\n\n if (\n sourceImageMetadata === undefined ||\n sourceImageMetadata.ImagePositionPatient === undefined ||\n sourceImageMetadata.FrameOfReferenceUID !== FrameOfReferenceUID ||\n sourceImageMetadata.SeriesInstanceUID !==\n ReferencedSeriesInstanceUID\n ) {\n continue;\n }\n\n if (\n compareArrays(\n PerFrameFunctionalGroup.PlanePositionSequence[0]\n .ImagePositionPatient,\n sourceImageMetadata.ImagePositionPatient,\n tolerance\n )\n ) {\n return imageIds[imageIdsIndexc];\n }\n }\n}\n\n/**\n * getImageIdOfReferencedSingleFramedSOPInstance - Returns the imageId\n * corresponding to the specified sopInstanceUid for single-frame images.\n *\n * @param {String} sopInstanceUid The sopInstanceUid of the desired image.\n * @param {String[]} imageIds The list of imageIds.\n * @param {Object} metadataProvider The metadataProvider to obtain sopInstanceUids\n * from the cornerstone imageIds.\n * @return {String} The imageId that corresponds to the sopInstanceUid.\n */\nfunction getImageIdOfReferencedSingleFramedSOPInstance(\n sopInstanceUid,\n imageIds,\n metadataProvider\n) {\n return imageIds.find(imageId => {\n const sopCommonModule = metadataProvider.get(\n \"sopCommonModule\",\n imageId\n );\n if (!sopCommonModule) {\n return;\n }\n\n return sopCommonModule.sopInstanceUID === sopInstanceUid;\n });\n}\n\n/**\n * getImageIdOfReferencedFrame - Returns the imageId corresponding to the\n * specified sopInstanceUid and frameNumber for multi-frame images.\n *\n * @param {String} sopInstanceUid The sopInstanceUid of the desired image.\n * @param {Number} frameNumber The frame number.\n * @param {String} imageIds The list of imageIds.\n * @param {Object} metadataProvider The metadataProvider to obtain sopInstanceUids\n * from the cornerstone imageIds.\n * @return {String} The imageId that corresponds to the sopInstanceUid.\n */\nfunction getImageIdOfReferencedFrame(\n sopInstanceUid,\n frameNumber,\n imageIds,\n metadataProvider\n) {\n const imageId = imageIds.find(imageId => {\n const sopCommonModule = metadataProvider.get(\n \"sopCommonModule\",\n imageId\n );\n if (!sopCommonModule) {\n return;\n }\n\n const imageIdFrameNumber = Number(imageId.split(\"frame=\")[1]);\n\n return (\n //frameNumber is zero indexed for cornerstoneWADOImageLoader image Ids.\n sopCommonModule.sopInstanceUID === sopInstanceUid &&\n imageIdFrameNumber === frameNumber - 1\n );\n });\n\n return imageId;\n}\n\n/**\n * getValidOrientations - returns an array of valid orientations.\n *\n * @param {Number[6]} iop The row (0..2) an column (3..5) direction cosines.\n * @return {Number[8][6]} An array of valid orientations.\n */\nfunction getValidOrientations(iop) {\n const orientations = [];\n\n // [0, 1, 2]: 0, 0hf, 0vf\n // [3, 4, 5]: 90, 90hf, 90vf\n // [6, 7]: 180, 270\n\n orientations[0] = iop;\n orientations[1] = flipIOP.h(iop);\n orientations[2] = flipIOP.v(iop);\n\n const iop90 = rotateDirectionCosinesInPlane(iop, Math.PI / 2);\n\n orientations[3] = iop90;\n orientations[4] = flipIOP.h(iop90);\n orientations[5] = flipIOP.v(iop90);\n\n orientations[6] = rotateDirectionCosinesInPlane(iop, Math.PI);\n orientations[7] = rotateDirectionCosinesInPlane(iop, 1.5 * Math.PI);\n\n return orientations;\n}\n\n/**\n * alignPixelDataWithSourceData -\n *\n * @param {Ndarray} pixelData2D - The data to align.\n * @param {Number[6]} iop - The orientation of the image slice.\n * @param {Number[8][6]} orientations - An array of valid imageOrientationPatient values.\n * @param {Number} tolerance.\n * @return {Ndarray} The aligned pixelData.\n */\nfunction alignPixelDataWithSourceData(\n pixelData2D,\n iop,\n orientations,\n tolerance\n) {\n if (compareArrays(iop, orientations[0], tolerance)) {\n return pixelData2D;\n } else if (compareArrays(iop, orientations[1], tolerance)) {\n // Flipped vertically.\n\n // Undo Flip\n return flipMatrix2D.v(pixelData2D);\n } else if (compareArrays(iop, orientations[2], tolerance)) {\n // Flipped horizontally.\n\n // Unfo flip\n return flipMatrix2D.h(pixelData2D);\n } else if (compareArrays(iop, orientations[3], tolerance)) {\n //Rotated 90 degrees\n\n // Rotate back\n return rotateMatrix902D(pixelData2D);\n } else if (compareArrays(iop, orientations[4], tolerance)) {\n //Rotated 90 degrees and fliped horizontally.\n\n // Undo flip and rotate back.\n return rotateMatrix902D(flipMatrix2D.h(pixelData2D));\n } else if (compareArrays(iop, orientations[5], tolerance)) {\n // Rotated 90 degrees and fliped vertically\n\n // Unfo flip and rotate back.\n return rotateMatrix902D(flipMatrix2D.v(pixelData2D));\n } else if (compareArrays(iop, orientations[6], tolerance)) {\n // Rotated 180 degrees. // TODO -> Do this more effeciently, there is a 1:1 mapping like 90 degree rotation.\n\n return rotateMatrix902D(rotateMatrix902D(pixelData2D));\n } else if (compareArrays(iop, orientations[7], tolerance)) {\n // Rotated 270 degrees\n\n // Rotate back.\n return rotateMatrix902D(\n rotateMatrix902D(rotateMatrix902D(pixelData2D))\n );\n }\n}\n\n/**\n * compareArrays - Returns true if array1 and array2 are equal\n * within a tolerance.\n *\n * @param {Number[]} array1 - An array.\n * @param {Number[]} array2 - An array.\n * @param {Number} tolerance.\n * @return {Boolean} True if array1 and array2 are equal.\n */\nfunction compareArrays(array1, array2, tolerance) {\n if (array1.length != array2.length) {\n return false;\n }\n\n for (let i = 0; i < array1.length; ++i) {\n if (!nearlyEqual(array1[i], array2[i], tolerance)) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction getSegmentMetadata(multiframe, seriesInstanceUid) {\n const segmentSequence = multiframe.SegmentSequence;\n let data = [];\n\n if (Array.isArray(segmentSequence)) {\n data = [undefined, ...segmentSequence];\n } else {\n // Only one segment, will be stored as an object.\n data = [undefined, segmentSequence];\n }\n\n return {\n seriesInstanceUid,\n data\n };\n}\n","import Segmentation_3X from \"./Segmentation_3X\";\nimport Segmentation_4X from \"./Segmentation_4X\";\n\nconst Segmentation = {\n generateSegmentation,\n generateToolState,\n fillSegmentation\n};\n\nexport default Segmentation;\n\n/**\n * generateSegmentation - Generates a DICOM Segmentation object given cornerstoneTools data.\n *\n * @param {object[]} images An array of the cornerstone image objects.\n * @param {Object|Object[]} labelmaps3DorBrushData For 4.X: The cornerstone `Labelmap3D` object, or an array of objects.\n * For 3.X: the BrushData.\n * @param {number} cornerstoneToolsVersion The cornerstoneTools major version to map against.\n * @returns {Object}\n */\nfunction generateSegmentation(\n images,\n labelmaps3DorBrushData,\n options = { includeSliceSpacing: true },\n cornerstoneToolsVersion = 4\n) {\n if (cornerstoneToolsVersion === 4) {\n return Segmentation_4X.generateSegmentation(\n images,\n labelmaps3DorBrushData,\n options\n );\n }\n\n if (cornerstoneToolsVersion === 3) {\n return Segmentation_3X.generateSegmentation(\n images,\n labelmaps3DorBrushData,\n options\n );\n }\n\n console.warn(\n `No generateSegmentation adapater for cornerstone version ${cornerstoneToolsVersion}, exiting.`\n );\n}\n\n/**\n * generateToolState - Given a set of cornrstoneTools imageIds and a Segmentation buffer,\n * derive cornerstoneTools toolState and brush metadata.\n *\n * @param {string[]} imageIds An array of the imageIds.\n * @param {ArrayBuffer} arrayBuffer The SEG arrayBuffer.\n * @param {*} metadataProvider\n * @param {bool} skipOverlapping - skip checks for overlapping segs, default value false.\n * @param {number} tolerance - default value 1.e-3.\n * @param {number} cornerstoneToolsVersion - default value 4.\n *\n * @returns {Object} The toolState and an object from which the\n * segment metadata can be derived.\n */\nfunction generateToolState(\n imageIds,\n arrayBuffer,\n metadataProvider,\n skipOverlapping = false,\n tolerance = 1e-3,\n cornerstoneToolsVersion = 4\n) {\n if (cornerstoneToolsVersion === 4) {\n return Segmentation_4X.generateToolState(\n imageIds,\n arrayBuffer,\n metadataProvider,\n skipOverlapping,\n tolerance\n );\n }\n\n if (cornerstoneToolsVersion === 3) {\n return Segmentation_3X.generateToolState(\n imageIds,\n arrayBuffer,\n metadataProvider\n );\n }\n\n console.warn(\n `No generateToolState adapater for cornerstone version ${cornerstoneToolsVersion}, exiting.`\n );\n}\n\n/**\n * fillSegmentation - Fills a derived segmentation dataset with cornerstoneTools `LabelMap3D` data.\n *\n * @param {object[]} segmentation An empty segmentation derived dataset.\n * @param {Object|Object[]} inputLabelmaps3D The cornerstone `Labelmap3D` object, or an array of objects.\n * @param {Object} userOptions Options object to override default options.\n * @returns {Blob} description\n */\nfunction fillSegmentation(\n segmentation,\n inputLabelmaps3D,\n options = { includeSliceSpacing: true },\n cornerstoneToolsVersion = 4\n) {\n if (cornerstoneToolsVersion === 4) {\n return Segmentation_4X.fillSegmentation(\n segmentation,\n inputLabelmaps3D,\n options\n );\n }\n\n console.warn(\n `No generateSegmentation adapater for cornerstone version ${cornerstoneToolsVersion}, exiting.`\n );\n}\n","import { DicomMetaDictionary } from \"../../DicomMetaDictionary.js\";\nimport TID300Measurement from \"./TID300Measurement.js\";\n\nexport default class CobbAngle extends TID300Measurement {\n contentItem() {\n const {\n point1,\n point2,\n point3,\n point4,\n rAngle,\n ReferencedSOPSequence\n } = this.props;\n\n return this.getMeasurement([\n {\n RelationshipType: \"CONTAINS\",\n ValueType: \"NUM\",\n ConceptNameCodeSequence: {\n CodeValue: \"285285000\",\n CodingSchemeDesignator: \"SCT\",\n CodeMeaning: \"Cobb angle\"\n },\n MeasuredValueSequence: {\n MeasurementUnitsCodeSequence: {\n CodeValue: \"deg\",\n CodingSchemeDesignator: \"UCUM\",\n CodingSchemeVersion: \"1.4\",\n CodeMeaning: \"\\u00B0\"\n },\n NumericValue: rAngle\n },\n ContentSequence: {\n RelationshipType: \"INFERRED FROM\",\n ValueType: \"SCOORD\",\n GraphicType: \"POLYLINE\",\n GraphicData: [\n point1.x,\n point1.y,\n point2.x,\n point2.y,\n point3.x,\n point3.y,\n point4.x,\n point4.y\n ],\n ContentSequence: {\n RelationshipType: \"SELECTED FROM\",\n ValueType: \"IMAGE\",\n ReferencedSOPSequence\n }\n }\n }\n ]);\n }\n}\n","import MeasurementReport from \"./MeasurementReport.js\";\nimport TID300CobbAngle from \"../../utilities/TID300/CobbAngle.js\";\nimport CORNERSTONE_4_TAG from \"./cornerstone4Tag\";\n\nconst COBB_ANGLE = \"CobbAngle\";\n\nclass CobbAngle {\n constructor() {}\n\n // TODO: this function is required for all Cornerstone Tool Adapters, since it is called by MeasurementReport.\n static getMeasurementData(MeasurementGroup) {\n const { defaultState, NUMGroup, SCOORDGroup } =\n MeasurementReport.getSetupMeasurementData(MeasurementGroup);\n\n const state = {\n ...defaultState,\n rAngle: NUMGroup.MeasuredValueSequence.NumericValue,\n toolType: CobbAngle.toolType,\n handles: {\n start: {},\n end: {},\n start2: {\n highlight: true,\n drawnIndependently: true\n },\n end2: {\n highlight: true,\n drawnIndependently: true\n },\n textBox: {\n hasMoved: false,\n movesIndependently: false,\n drawnIndependently: true,\n allowedOutsideImage: true,\n hasBoundingBox: true\n }\n }\n };\n\n [\n state.handles.start.x,\n state.handles.start.y,\n state.handles.end.x,\n state.handles.end.y,\n state.handles.start2.x,\n state.handles.start2.y,\n state.handles.end2.x,\n state.handles.end2.y\n ] = SCOORDGroup.GraphicData;\n\n return state;\n }\n\n static getTID300RepresentationArguments(tool) {\n const { handles, finding, findingSites } = tool;\n const point1 = handles.start;\n const point2 = handles.end;\n const point3 = handles.start2;\n const point4 = handles.end2;\n const rAngle = tool.rAngle;\n\n const trackingIdentifierTextValue = \"cornerstoneTools@^4.0.0:CobbAngle\";\n\n return {\n point1,\n point2,\n point3,\n point4,\n rAngle,\n trackingIdentifierTextValue,\n finding,\n findingSites: findingSites || []\n };\n }\n}\n\nCobbAngle.toolType = COBB_ANGLE;\nCobbAngle.utilityToolType = COBB_ANGLE;\nCobbAngle.TID300Representation = TID300CobbAngle;\nCobbAngle.isValidCornerstoneTrackingIdentifier = TrackingIdentifier => {\n if (!TrackingIdentifier.includes(\":\")) {\n return false;\n }\n\n const [cornerstone4Tag, toolType] = TrackingIdentifier.split(\":\");\n\n if (cornerstone4Tag !== CORNERSTONE_4_TAG) {\n return false;\n }\n\n return toolType === COBB_ANGLE;\n};\n\nMeasurementReport.registerTool(CobbAngle);\n\nexport default CobbAngle;\n","import MeasurementReport from \"./MeasurementReport.js\";\nimport TID300CobbAngle from \"../../utilities/TID300/CobbAngle.js\";\nimport CORNERSTONE_4_TAG from \"./cornerstone4Tag\";\n\nconst ANGLE = \"Angle\";\n\nclass Angle {\n constructor() {}\n\n /**\n * Generate TID300 measurement data for a plane angle measurement - use a CobbAngle, but label it as Angle\n * @param MeasurementGroup\n * @returns\n */\n static getMeasurementData(MeasurementGroup) {\n const { defaultState, NUMGroup, SCOORDGroup } =\n MeasurementReport.getSetupMeasurementData(MeasurementGroup);\n\n const state = {\n ...defaultState,\n rAngle: NUMGroup.MeasuredValueSequence.NumericValue,\n toolType: Angle.toolType,\n handles: {\n start: {},\n middle: {},\n end: {},\n textBox: {\n hasMoved: false,\n movesIndependently: false,\n drawnIndependently: true,\n allowedOutsideImage: true,\n hasBoundingBox: true\n }\n }\n };\n\n [\n state.handles.start.x,\n state.handles.start.y,\n state.handles.middle.x,\n state.handles.middle.y,\n state.handles.middle.x,\n state.handles.middle.y,\n state.handles.end.x,\n state.handles.end.y\n ] = SCOORDGroup.GraphicData;\n\n return state;\n }\n\n static getTID300RepresentationArguments(tool) {\n const { handles, finding, findingSites } = tool;\n const point1 = handles.start;\n const point2 = handles.middle;\n const point3 = handles.middle;\n const point4 = handles.end;\n const rAngle = tool.rAngle;\n\n const trackingIdentifierTextValue = \"cornerstoneTools@^4.0.0:Angle\";\n\n return {\n point1,\n point2,\n point3,\n point4,\n rAngle,\n trackingIdentifierTextValue,\n finding,\n findingSites: findingSites || []\n };\n }\n}\n\nAngle.toolType = ANGLE;\nAngle.utilityToolType = ANGLE;\nAngle.TID300Representation = TID300CobbAngle;\nAngle.isValidCornerstoneTrackingIdentifier = TrackingIdentifier => {\n if (!TrackingIdentifier.includes(\":\")) {\n return false;\n }\n\n const [cornerstone4Tag, toolType] = TrackingIdentifier.split(\":\");\n\n if (cornerstone4Tag !== CORNERSTONE_4_TAG) {\n return false;\n }\n\n return toolType === ANGLE;\n};\n\nMeasurementReport.registerTool(Angle);\n\nexport default Angle;\n","import MeasurementReport from \"./MeasurementReport\";\nimport TID300Polyline from \"../../utilities/TID300/Polyline\";\nimport CORNERSTONE_4_TAG from \"./cornerstone4Tag\";\n\nclass RectangleRoi {\n constructor() {}\n\n static getMeasurementData(MeasurementGroup) {\n const { defaultState, SCOORDGroup, NUMGroup } =\n MeasurementReport.getSetupMeasurementData(MeasurementGroup);\n\n const state = {\n ...defaultState,\n toolType: RectangleRoi.toolType,\n handles: {\n start: {},\n end: {},\n textBox: {\n active: false,\n hasMoved: false,\n movesIndependently: false,\n drawnIndependently: true,\n allowedOutsideImage: true,\n hasBoundingBox: true\n },\n initialRotation: 0\n },\n cachedStats: {\n area: NUMGroup ? NUMGroup.MeasuredValueSequence.NumericValue : 0\n },\n color: undefined,\n invalidated: true\n };\n const intermediate = {};\n\n [\n state.handles.start.x,\n state.handles.start.y,\n intermediate.x,\n intermediate.y,\n state.handles.end.x,\n state.handles.end.y\n ] = SCOORDGroup.GraphicData;\n\n return state;\n }\n\n static getTID300RepresentationArguments(tool) {\n const { finding, findingSites, cachedStats = {}, handles } = tool;\n console.log(\"getTID300 Rectangle\", tool, cachedStats, handles);\n const { start, end } = handles;\n const points = [\n start,\n { x: start.x, y: end.y },\n end,\n { x: end.x, y: start.y }\n ];\n const { area, perimeter } = cachedStats;\n\n console.log(\"Point=\", points, \"cachedStats=\", cachedStats);\n const trackingIdentifierTextValue =\n \"cornerstoneTools@^4.0.0:RectangleRoi\";\n\n return {\n points,\n area,\n perimeter,\n trackingIdentifierTextValue,\n finding,\n findingSites: findingSites || []\n };\n }\n}\n\nRectangleRoi.toolType = \"RectangleRoi\";\nRectangleRoi.utilityToolType = \"RectangleRoi\";\nRectangleRoi.TID300Representation = TID300Polyline;\nRectangleRoi.isValidCornerstoneTrackingIdentifier = TrackingIdentifier => {\n if (!TrackingIdentifier.includes(\":\")) {\n return false;\n }\n\n const [cornerstone4Tag, toolType] = TrackingIdentifier.split(\":\");\n\n if (cornerstone4Tag !== CORNERSTONE_4_TAG) {\n return false;\n }\n\n return toolType === RectangleRoi.toolType;\n};\n\nMeasurementReport.registerTool(RectangleRoi);\n\nexport default RectangleRoi;\n","import MeasurementReport from \"./MeasurementReport.js\";\nimport Length from \"./Length.js\";\nimport FreehandRoi from \"./FreehandRoi.js\";\nimport Bidirectional from \"./Bidirectional.js\";\nimport EllipticalRoi from \"./EllipticalRoi.js\";\nimport CircleRoi from \"./CircleRoi.js\";\nimport ArrowAnnotate from \"./ArrowAnnotate.js\";\nimport Segmentation from \"./Segmentation.js\";\nimport CobbAngle from \"./CobbAngle\";\nimport Angle from \"./Angle\";\nimport RectangleRoi from \"./RectangleRoi\";\n\nconst Cornerstone = {\n Length,\n FreehandRoi,\n Bidirectional,\n EllipticalRoi,\n CircleRoi,\n ArrowAnnotate,\n MeasurementReport,\n Segmentation,\n CobbAngle,\n Angle,\n RectangleRoi\n};\n\nexport default Cornerstone;\n","// This is a custom coding scheme defined to store some annotations from Cornerstone.\n// Note: CodeMeaning is VR type LO, which means we only actually support 64 characters\n// here this is fine for most labels, but may be problematic at some point.\nconst CORNERSTONEFREETEXT = \"CORNERSTONEFREETEXT\";\n\n// Cornerstone specified coding scheme for storing findings\nconst CodingSchemeDesignator = \"CORNERSTONEJS\";\n\nconst CodingScheme = {\n CodingSchemeDesignator,\n codeValues: {\n CORNERSTONEFREETEXT\n }\n};\n\nexport default CodingScheme;\n","import { Normalizer } from \"../../normalizers.js\";\nimport { DicomMetaDictionary } from \"../../DicomMetaDictionary.js\";\nimport { StructuredReport } from \"../../derivations/index.js\";\nimport TID1500MeasurementReport from \"../../utilities/TID1500/TID1500MeasurementReport.js\";\nimport TID1501MeasurementGroup from \"../../utilities/TID1500/TID1501MeasurementGroup.js\";\nimport Cornerstone3DCodingScheme from \"./CodingScheme\";\nimport addAccessors from \"../../utilities/addAccessors.js\";\n\nimport { toArray, codeMeaningEquals } from \"../helpers.js\";\n\nconst FINDING = { CodingSchemeDesignator: \"DCM\", CodeValue: \"121071\" };\nconst FINDING_SITE = { CodingSchemeDesignator: \"SCT\", CodeValue: \"363698007\" };\nconst FINDING_SITE_OLD = { CodingSchemeDesignator: \"SRT\", CodeValue: \"G-C0E3\" };\n\nconst codeValueMatch = (group, code, oldCode) => {\n const { ConceptNameCodeSequence } = group;\n if (!ConceptNameCodeSequence) return;\n const { CodingSchemeDesignator, CodeValue } = ConceptNameCodeSequence;\n return (\n (CodingSchemeDesignator == code.CodingSchemeDesignator &&\n CodeValue == code.CodeValue) ||\n (oldCode &&\n CodingSchemeDesignator == oldCode.CodingSchemeDesignator &&\n CodeValue == oldCode.CodeValue)\n );\n};\n\nfunction getTID300ContentItem(\n tool,\n toolType,\n ReferencedSOPSequence,\n toolClass,\n worldToImageCoords\n) {\n const args = toolClass.getTID300RepresentationArguments(\n tool,\n worldToImageCoords\n );\n args.ReferencedSOPSequence = ReferencedSOPSequence;\n\n const TID300Measurement = new toolClass.TID300Representation(args);\n\n return TID300Measurement;\n}\n\nfunction getMeasurementGroup(\n toolType,\n toolData,\n ReferencedSOPSequence,\n worldToImageCoords\n) {\n const toolTypeData = toolData[toolType];\n const toolClass =\n MeasurementReport.CORNERSTONE_TOOL_CLASSES_BY_TOOL_TYPE[toolType];\n if (\n !toolTypeData ||\n !toolTypeData.data ||\n !toolTypeData.data.length ||\n !toolClass\n ) {\n return;\n }\n\n // Loop through the array of tool instances\n // for this tool\n const Measurements = toolTypeData.data.map(tool => {\n return getTID300ContentItem(\n tool,\n toolType,\n ReferencedSOPSequence,\n toolClass,\n worldToImageCoords\n );\n });\n\n return new TID1501MeasurementGroup(Measurements);\n}\n\nexport default class MeasurementReport {\n constructor() {}\n\n static getCornerstoneLabelFromDefaultState(defaultState) {\n const { findingSites = [], finding } = defaultState;\n\n const cornersoneFreeTextCodingValue =\n Cornerstone3DCodingScheme.codeValues.CORNERSTONEFREETEXT;\n\n let freeTextLabel = findingSites.find(\n fs => fs.CodeValue === cornersoneFreeTextCodingValue\n );\n\n if (freeTextLabel) {\n return freeTextLabel.CodeMeaning;\n }\n\n if (finding && finding.CodeValue === cornersoneFreeTextCodingValue) {\n return finding.CodeMeaning;\n }\n }\n\n static generateDatasetMeta() {\n // TODO: what is the correct metaheader\n // http://dicom.nema.org/medical/Dicom/current/output/chtml/part10/chapter_7.html\n // TODO: move meta creation to happen in derivations.js\n const fileMetaInformationVersionArray = new Uint8Array(2);\n fileMetaInformationVersionArray[1] = 1;\n\n const _meta = {\n FileMetaInformationVersion: {\n Value: [fileMetaInformationVersionArray.buffer],\n vr: \"OB\"\n },\n //MediaStorageSOPClassUID\n //MediaStorageSOPInstanceUID: sopCommonModule.sopInstanceUID,\n TransferSyntaxUID: {\n Value: [\"1.2.840.10008.1.2.1\"],\n vr: \"UI\"\n },\n ImplementationClassUID: {\n Value: [DicomMetaDictionary.uid()], // TODO: could be git hash or other valid id\n vr: \"UI\"\n },\n ImplementationVersionName: {\n Value: [\"dcmjs\"],\n vr: \"SH\"\n }\n };\n\n return _meta;\n }\n\n static generateDerivationSourceDataset(\n StudyInstanceUID,\n SeriesInstanceUID\n ) {\n const _vrMap = {\n PixelData: \"OW\"\n };\n\n const _meta = MeasurementReport.generateDatasetMeta();\n\n const derivationSourceDataset = {\n StudyInstanceUID,\n SeriesInstanceUID,\n _meta: _meta,\n _vrMap: _vrMap\n };\n\n return derivationSourceDataset;\n }\n\n static getSetupMeasurementData(\n MeasurementGroup,\n sopInstanceUIDToImageIdMap,\n metadata,\n toolType\n ) {\n const { ContentSequence } = MeasurementGroup;\n\n const contentSequenceArr = toArray(ContentSequence);\n const findingGroup = contentSequenceArr.find(group =>\n codeValueMatch(group, FINDING)\n );\n const findingSiteGroups =\n contentSequenceArr.filter(group =>\n codeValueMatch(group, FINDING_SITE, FINDING_SITE_OLD)\n ) || [];\n const NUMGroup = contentSequenceArr.find(\n group => group.ValueType === \"NUM\"\n );\n const SCOORDGroup = toArray(NUMGroup.ContentSequence).find(\n group => group.ValueType === \"SCOORD\"\n );\n const { ReferencedSOPSequence } = SCOORDGroup.ContentSequence;\n const { ReferencedSOPInstanceUID, ReferencedFrameNumber } =\n ReferencedSOPSequence;\n\n const referencedImageId =\n sopInstanceUIDToImageIdMap[ReferencedSOPInstanceUID];\n const imagePlaneModule = metadata.get(\n \"imagePlaneModule\",\n referencedImageId\n );\n\n const finding = findingGroup\n ? addAccessors(findingGroup.ConceptCodeSequence)\n : undefined;\n const findingSites = findingSiteGroups.map(fsg => {\n return addAccessors(fsg.ConceptCodeSequence);\n });\n\n const defaultState = {\n sopInstanceUid: ReferencedSOPInstanceUID,\n annotation: {\n annotationUID: DicomMetaDictionary.uid(),\n metadata: {\n toolName: toolType,\n referencedImageId,\n FrameOfReferenceUID: imagePlaneModule.frameOfReferenceUID,\n label: \"\"\n }\n },\n finding,\n findingSites\n };\n if (defaultState.finding) {\n defaultState.description = defaultState.finding.CodeMeaning;\n }\n\n defaultState.annotation.metadata.label =\n MeasurementReport.getCornerstoneLabelFromDefaultState(defaultState);\n\n return {\n defaultState,\n NUMGroup,\n SCOORDGroup,\n ReferencedSOPSequence,\n ReferencedSOPInstanceUID,\n ReferencedFrameNumber\n };\n }\n\n static generateReport(\n toolState,\n metadataProvider,\n worldToImageCoords,\n options\n ) {\n // ToolState for array of imageIDs to a Report\n // Assume Cornerstone metadata provider has access to Study / Series / Sop Instance UID\n let allMeasurementGroups = [];\n\n /* Patient ID\n Warning - Missing attribute or value that would be needed to build DICOMDIR - Patient ID\n Warning - Missing attribute or value that would be needed to build DICOMDIR - Study Date\n Warning - Missing attribute or value that would be needed to build DICOMDIR - Study Time\n Warning - Missing attribute or value that would be needed to build DICOMDIR - Study ID\n */\n\n const sopInstanceUIDsToSeriesInstanceUIDMap = {};\n const derivationSourceDatasets = [];\n\n const _meta = MeasurementReport.generateDatasetMeta();\n\n // Loop through each image in the toolData\n Object.keys(toolState).forEach(imageId => {\n const sopCommonModule = metadataProvider.get(\n \"sopCommonModule\",\n imageId\n );\n const generalSeriesModule = metadataProvider.get(\n \"generalSeriesModule\",\n imageId\n );\n\n const { sopInstanceUID, sopClassUID } = sopCommonModule;\n const { studyInstanceUID, seriesInstanceUID } = generalSeriesModule;\n\n sopInstanceUIDsToSeriesInstanceUIDMap[sopInstanceUID] =\n seriesInstanceUID;\n\n if (\n !derivationSourceDatasets.find(\n dsd => dsd.SeriesInstanceUID === seriesInstanceUID\n )\n ) {\n // Entry not present for series, create one.\n const derivationSourceDataset =\n MeasurementReport.generateDerivationSourceDataset(\n studyInstanceUID,\n seriesInstanceUID\n );\n\n derivationSourceDatasets.push(derivationSourceDataset);\n }\n\n const frameNumber = metadataProvider.get(\"frameNumber\", imageId);\n const toolData = toolState[imageId];\n const toolTypes = Object.keys(toolData);\n\n const ReferencedSOPSequence = {\n ReferencedSOPClassUID: sopClassUID,\n ReferencedSOPInstanceUID: sopInstanceUID\n };\n\n const instance = metadataProvider.get(\"instance\", imageId);\n if (\n (instance &&\n instance.NumberOfFrames &&\n instance.NumberOfFrames > 1) ||\n Normalizer.isMultiframeSOPClassUID(sopClassUID)\n ) {\n ReferencedSOPSequence.ReferencedFrameNumber = frameNumber;\n }\n\n // Loop through each tool type for the image\n const measurementGroups = [];\n\n toolTypes.forEach(toolType => {\n const group = getMeasurementGroup(\n toolType,\n toolData,\n ReferencedSOPSequence,\n worldToImageCoords\n );\n if (group) {\n measurementGroups.push(group);\n }\n });\n\n allMeasurementGroups =\n allMeasurementGroups.concat(measurementGroups);\n });\n\n const tid1500MeasurementReport = new TID1500MeasurementReport(\n { TID1501MeasurementGroups: allMeasurementGroups },\n options\n );\n\n const report = new StructuredReport(derivationSourceDatasets);\n\n const contentItem = tid1500MeasurementReport.contentItem(\n derivationSourceDatasets,\n { sopInstanceUIDsToSeriesInstanceUIDMap }\n );\n\n // Merge the derived dataset with the content from the Measurement Report\n report.dataset = Object.assign(report.dataset, contentItem);\n report.dataset._meta = _meta;\n\n return report;\n }\n\n /**\n * Generate Cornerstone tool state from dataset\n * @param {object} dataset dataset\n * @param {object} hooks\n * @param {function} hooks.getToolClass Function to map dataset to a tool class\n * @returns\n */\n static generateToolState(\n dataset,\n sopInstanceUIDToImageIdMap,\n imageToWorldCoords,\n metadata,\n hooks = {}\n ) {\n // For now, bail out if the dataset is not a TID1500 SR with length measurements\n if (dataset.ContentTemplateSequence.TemplateIdentifier !== \"1500\") {\n throw new Error(\n \"This package can currently only interpret DICOM SR TID 1500\"\n );\n }\n\n const REPORT = \"Imaging Measurements\";\n const GROUP = \"Measurement Group\";\n const TRACKING_IDENTIFIER = \"Tracking Identifier\";\n\n // Identify the Imaging Measurements\n const imagingMeasurementContent = toArray(dataset.ContentSequence).find(\n codeMeaningEquals(REPORT)\n );\n\n // Retrieve the Measurements themselves\n const measurementGroups = toArray(\n imagingMeasurementContent.ContentSequence\n ).filter(codeMeaningEquals(GROUP));\n\n // For each of the supported measurement types, compute the measurement data\n const measurementData = {};\n\n const cornerstoneToolClasses =\n MeasurementReport.CORNERSTONE_TOOL_CLASSES_BY_UTILITY_TYPE;\n\n const registeredToolClasses = [];\n\n Object.keys(cornerstoneToolClasses).forEach(key => {\n registeredToolClasses.push(cornerstoneToolClasses[key]);\n measurementData[key] = [];\n });\n\n measurementGroups.forEach((measurementGroup, index) => {\n const measurementGroupContentSequence = toArray(\n measurementGroup.ContentSequence\n );\n\n const TrackingIdentifierGroup =\n measurementGroupContentSequence.find(\n contentItem =>\n contentItem.ConceptNameCodeSequence.CodeMeaning ===\n TRACKING_IDENTIFIER\n );\n\n const TrackingIdentifierValue = TrackingIdentifierGroup.TextValue;\n\n const toolClass = hooks.getToolClass\n ? hooks.getToolClass(\n measurementGroup,\n dataset,\n registeredToolClasses\n )\n : registeredToolClasses.find(tc =>\n tc.isValidCornerstoneTrackingIdentifier(\n TrackingIdentifierValue\n )\n );\n\n if (toolClass) {\n const measurement = toolClass.getMeasurementData(\n measurementGroup,\n sopInstanceUIDToImageIdMap,\n imageToWorldCoords,\n metadata\n );\n\n console.log(`=== ${toolClass.toolType} ===`);\n console.log(measurement);\n\n measurementData[toolClass.toolType].push(measurement);\n }\n });\n\n // NOTE: There is no way of knowing the cornerstone imageIds as that could be anything.\n // That is up to the consumer to derive from the SOPInstanceUIDs.\n return measurementData;\n }\n\n static registerTool(toolClass) {\n MeasurementReport.CORNERSTONE_TOOL_CLASSES_BY_UTILITY_TYPE[\n toolClass.utilityToolType\n ] = toolClass;\n MeasurementReport.CORNERSTONE_TOOL_CLASSES_BY_TOOL_TYPE[\n toolClass.toolType\n ] = toolClass;\n MeasurementReport.MEASUREMENT_BY_TOOLTYPE[toolClass.toolType] =\n toolClass.utilityToolType;\n }\n}\n\nMeasurementReport.MEASUREMENT_BY_TOOLTYPE = {};\nMeasurementReport.CORNERSTONE_TOOL_CLASSES_BY_UTILITY_TYPE = {};\nMeasurementReport.CORNERSTONE_TOOL_CLASSES_BY_TOOL_TYPE = {};\n","export default \"Cornerstone3DTools@^0.1.0\";\n","import MeasurementReport from \"./MeasurementReport.js\";\nimport TID300Length from \"../../utilities/TID300/Length.js\";\nimport CORNERSTONE_3D_TAG from \"./cornerstone3DTag\";\n\nconst LENGTH = \"Length\";\nconst FINDING = \"121071\";\nconst FINDING_SITE = \"G-C0E3\";\nconst trackingIdentifierTextValue = `${CORNERSTONE_3D_TAG}:${LENGTH}`;\n\nclass Length {\n constructor() {}\n\n // TODO: this function is required for all Cornerstone Tool Adapters, since it is called by MeasurementReport.\n static getMeasurementData(\n MeasurementGroup,\n sopInstanceUIDToImageIdMap,\n imageToWorldCoords,\n metadata\n ) {\n const { defaultState, NUMGroup, SCOORDGroup, ReferencedFrameNumber } =\n MeasurementReport.getSetupMeasurementData(\n MeasurementGroup,\n sopInstanceUIDToImageIdMap,\n metadata,\n Length.toolType\n );\n\n const referencedImageId =\n defaultState.annotation.metadata.referencedImageId;\n\n const { GraphicData } = SCOORDGroup;\n const worldCoords = [];\n for (let i = 0; i < GraphicData.length; i += 2) {\n const point = imageToWorldCoords(referencedImageId, [\n GraphicData[i],\n GraphicData[i + 1]\n ]);\n worldCoords.push(point);\n }\n\n const state = defaultState;\n\n state.annotation.data = {\n handles: {\n points: [worldCoords[0], worldCoords[1]],\n activeHandleIndex: 0,\n textBox: {\n hasMoved: false\n }\n },\n cachedStats: {\n [`imageId:${referencedImageId}`]: {\n length: NUMGroup\n ? NUMGroup.MeasuredValueSequence.NumericValue\n : 0\n }\n },\n frameNumber: ReferencedFrameNumber\n };\n\n return state;\n }\n\n static getTID300RepresentationArguments(tool, worldToImageCoords) {\n const { data, finding, findingSites, metadata } = tool;\n const { cachedStats = {}, handles } = data;\n\n const { referencedImageId } = metadata;\n\n if (!referencedImageId) {\n throw new Error(\n \"Length.getTID300RepresentationArguments: referencedImageId is not defined\"\n );\n }\n\n const start = worldToImageCoords(referencedImageId, handles.points[0]);\n const end = worldToImageCoords(referencedImageId, handles.points[1]);\n\n const point1 = { x: start[0], y: start[1] };\n const point2 = { x: end[0], y: end[1] };\n\n const { length: distance } =\n cachedStats[`imageId:${referencedImageId}`] || {};\n\n return {\n point1,\n point2,\n distance,\n trackingIdentifierTextValue,\n finding,\n findingSites: findingSites || []\n };\n }\n}\n\nLength.toolType = LENGTH;\nLength.utilityToolType = LENGTH;\nLength.TID300Representation = TID300Length;\nLength.isValidCornerstoneTrackingIdentifier = TrackingIdentifier => {\n if (!TrackingIdentifier.includes(\":\")) {\n return false;\n }\n\n const [cornerstone3DTag, toolType] = TrackingIdentifier.split(\":\");\n\n if (cornerstone3DTag !== CORNERSTONE_3D_TAG) {\n return false;\n }\n\n return toolType === LENGTH;\n};\n\nMeasurementReport.registerTool(Length);\n\nexport default Length;\n","import MeasurementReport from \"./MeasurementReport\";\nimport TID300Bidirectional from \"../../utilities/TID300/Bidirectional\";\nimport CORNERSTONE_3D_TAG from \"./cornerstone3DTag\";\n\nimport { toArray } from \"../helpers.js\";\n\nconst BIDIRECTIONAL = \"Bidirectional\";\nconst LONG_AXIS = \"Long Axis\";\nconst SHORT_AXIS = \"Short Axis\";\nconst FINDING = \"121071\";\nconst FINDING_SITE = \"G-C0E3\";\nconst trackingIdentifierTextValue = `${CORNERSTONE_3D_TAG}:${BIDIRECTIONAL}`;\n\nclass Bidirectional {\n constructor() {}\n\n static getMeasurementData(\n MeasurementGroup,\n sopInstanceUIDToImageIdMap,\n imageToWorldCoords,\n metadata\n ) {\n const { defaultState, ReferencedFrameNumber } =\n MeasurementReport.getSetupMeasurementData(\n MeasurementGroup,\n sopInstanceUIDToImageIdMap,\n metadata,\n Bidirectional.toolType\n );\n\n const referencedImageId =\n defaultState.annotation.metadata.referencedImageId;\n const { ContentSequence } = MeasurementGroup;\n\n const longAxisNUMGroup = toArray(ContentSequence).find(\n group => group.ConceptNameCodeSequence.CodeMeaning === LONG_AXIS\n );\n\n const longAxisSCOORDGroup = toArray(\n longAxisNUMGroup.ContentSequence\n ).find(group => group.ValueType === \"SCOORD\");\n\n const shortAxisNUMGroup = toArray(ContentSequence).find(\n group => group.ConceptNameCodeSequence.CodeMeaning === SHORT_AXIS\n );\n\n const shortAxisSCOORDGroup = toArray(\n shortAxisNUMGroup.ContentSequence\n ).find(group => group.ValueType === \"SCOORD\");\n\n const worldCoords = [];\n\n [longAxisSCOORDGroup, shortAxisSCOORDGroup].forEach(group => {\n const { GraphicData } = group;\n for (let i = 0; i < GraphicData.length; i += 2) {\n const point = imageToWorldCoords(referencedImageId, [\n GraphicData[i],\n GraphicData[i + 1]\n ]);\n worldCoords.push(point);\n }\n });\n\n const state = defaultState;\n\n state.annotation.data = {\n handles: {\n points: [\n worldCoords[0],\n worldCoords[1],\n worldCoords[2],\n worldCoords[3]\n ],\n activeHandleIndex: 0,\n textBox: {\n hasMoved: false\n }\n },\n cachedStats: {\n [`imageId:${referencedImageId}`]: {\n length: longAxisNUMGroup.MeasuredValueSequence.NumericValue,\n width: shortAxisNUMGroup.MeasuredValueSequence.NumericValue\n }\n },\n frameNumber: ReferencedFrameNumber\n };\n\n return state;\n }\n\n static getTID300RepresentationArguments(tool, worldToImageCoords) {\n const { data, finding, findingSites, metadata } = tool;\n const { cachedStats = {}, handles } = data;\n\n const { referencedImageId } = metadata;\n\n if (!referencedImageId) {\n throw new Error(\n \"Bidirectional.getTID300RepresentationArguments: referencedImageId is not defined\"\n );\n }\n\n const { length, width } =\n cachedStats[`imageId:${referencedImageId}`] || {};\n const { points } = handles;\n\n // Find the length and width point pairs by comparing the distances of the points at 0,1 to points at 2,3\n let firstPointPairs = [points[0], points[1]];\n let secondPointPairs = [points[2], points[3]];\n\n let firstPointPairsDistance = Math.sqrt(\n Math.pow(firstPointPairs[0][0] - firstPointPairs[1][0], 2) +\n Math.pow(firstPointPairs[0][1] - firstPointPairs[1][1], 2) +\n Math.pow(firstPointPairs[0][2] - firstPointPairs[1][2], 2)\n );\n\n let secondPointPairsDistance = Math.sqrt(\n Math.pow(secondPointPairs[0][0] - secondPointPairs[1][0], 2) +\n Math.pow(secondPointPairs[0][1] - secondPointPairs[1][1], 2) +\n Math.pow(secondPointPairs[0][2] - secondPointPairs[1][2], 2)\n );\n\n let shortAxisPoints;\n let longAxisPoints;\n if (firstPointPairsDistance > secondPointPairsDistance) {\n shortAxisPoints = firstPointPairs;\n longAxisPoints = secondPointPairs;\n } else {\n shortAxisPoints = secondPointPairs;\n longAxisPoints = firstPointPairs;\n }\n\n const longAxisStartImage = worldToImageCoords(\n referencedImageId,\n shortAxisPoints[0]\n );\n const longAxisEndImage = worldToImageCoords(\n referencedImageId,\n shortAxisPoints[1]\n );\n const shortAxisStartImage = worldToImageCoords(\n referencedImageId,\n longAxisPoints[0]\n );\n const shortAxisEndImage = worldToImageCoords(\n referencedImageId,\n longAxisPoints[1]\n );\n\n return {\n longAxis: {\n point1: {\n x: longAxisStartImage[0],\n y: longAxisStartImage[1]\n },\n point2: {\n x: longAxisEndImage[0],\n y: longAxisEndImage[1]\n }\n },\n shortAxis: {\n point1: {\n x: shortAxisStartImage[0],\n y: shortAxisStartImage[1]\n },\n point2: {\n x: shortAxisEndImage[0],\n y: shortAxisEndImage[1]\n }\n },\n longAxisLength: length,\n shortAxisLength: width,\n trackingIdentifierTextValue,\n finding: finding,\n findingSites: findingSites || []\n };\n }\n}\n\nBidirectional.toolType = BIDIRECTIONAL;\nBidirectional.utilityToolType = BIDIRECTIONAL;\nBidirectional.TID300Representation = TID300Bidirectional;\nBidirectional.isValidCornerstoneTrackingIdentifier = TrackingIdentifier => {\n if (!TrackingIdentifier.includes(\":\")) {\n return false;\n }\n\n const [cornerstone3DTag, toolType] = TrackingIdentifier.split(\":\");\n\n if (cornerstone3DTag !== CORNERSTONE_3D_TAG) {\n return false;\n }\n\n return toolType === BIDIRECTIONAL;\n};\n\nMeasurementReport.registerTool(Bidirectional);\n\nexport default Bidirectional;\n","import { vec2, vec3 } from \"gl-matrix\";\nimport MeasurementReport from \"./MeasurementReport\";\nimport TID300Ellipse from \"../../utilities/TID300/Ellipse\";\nimport CORNERSTONE_3D_TAG from \"./cornerstone3DTag\";\n\nconst ELLIPTICALROI = \"EllipticalROI\";\nconst FINDING = \"121071\";\nconst FINDING_SITE = \"G-C0E3\";\nconst EPSILON = 1e-4;\n\nconst trackingIdentifierTextValue = `${CORNERSTONE_3D_TAG}:${ELLIPTICALROI}`;\n\nclass EllipticalROI {\n constructor() {}\n\n static getMeasurementData(\n MeasurementGroup,\n sopInstanceUIDToImageIdMap,\n imageToWorldCoords,\n metadata\n ) {\n const { defaultState, NUMGroup, SCOORDGroup, ReferencedFrameNumber } =\n MeasurementReport.getSetupMeasurementData(\n MeasurementGroup,\n sopInstanceUIDToImageIdMap,\n metadata,\n EllipticalROI.toolType\n );\n\n const referencedImageId =\n defaultState.annotation.metadata.referencedImageId;\n\n const { GraphicData } = SCOORDGroup;\n\n // GraphicData is ordered as [majorAxisStartX, majorAxisStartY, majorAxisEndX, majorAxisEndY, minorAxisStartX, minorAxisStartY, minorAxisEndX, minorAxisEndY]\n // But Cornerstone3D points are ordered as top, bottom, left, right for the\n // ellipse so we need to identify if the majorAxis is horizontal or vertical\n // in the image plane and then choose the correct points to use for the ellipse.\n const pointsWorld = [];\n for (let i = 0; i < GraphicData.length; i += 2) {\n const worldPos = imageToWorldCoords(referencedImageId, [\n GraphicData[i],\n GraphicData[i + 1]\n ]);\n\n pointsWorld.push(worldPos);\n }\n\n const majorAxisStart = vec3.fromValues(...pointsWorld[0]);\n const majorAxisEnd = vec3.fromValues(...pointsWorld[1]);\n const minorAxisStart = vec3.fromValues(...pointsWorld[2]);\n const minorAxisEnd = vec3.fromValues(...pointsWorld[3]);\n\n const majorAxisVec = vec3.create();\n vec3.sub(majorAxisVec, majorAxisEnd, majorAxisStart);\n\n // normalize majorAxisVec to avoid scaling issues\n vec3.normalize(majorAxisVec, majorAxisVec);\n\n const minorAxisVec = vec3.create();\n vec3.sub(minorAxisVec, minorAxisEnd, minorAxisStart);\n vec3.normalize(minorAxisVec, minorAxisVec);\n\n const imagePlaneModule = metadata.get(\n \"imagePlaneModule\",\n referencedImageId\n );\n\n if (!imagePlaneModule) {\n throw new Error(\"imageId does not have imagePlaneModule metadata\");\n }\n\n const { columnCosines } = imagePlaneModule;\n\n // find which axis is parallel to the columnCosines\n const columnCosinesVec = vec3.fromValues(...columnCosines);\n\n const projectedMajorAxisOnColVec = vec3.dot(\n columnCosinesVec,\n majorAxisVec\n );\n\n const projectedMinorAxisOnColVec = vec3.dot(\n columnCosinesVec,\n minorAxisVec\n );\n\n const absoluteOfMajorDotProduct = Math.abs(projectedMajorAxisOnColVec);\n const absoluteOfMinorDotProduct = Math.abs(projectedMinorAxisOnColVec);\n\n let ellipsePoints = [];\n if (Math.abs(absoluteOfMajorDotProduct - 1) < EPSILON) {\n ellipsePoints = [\n pointsWorld[0],\n pointsWorld[1],\n pointsWorld[2],\n pointsWorld[3]\n ];\n } else if (Math.abs(absoluteOfMinorDotProduct - 1) < EPSILON) {\n ellipsePoints = [\n pointsWorld[2],\n pointsWorld[3],\n pointsWorld[0],\n pointsWorld[1]\n ];\n } else {\n console.warn(\"OBLIQUE ELLIPSE NOT YET SUPPORTED\");\n }\n\n const state = defaultState;\n\n state.annotation.data = {\n handles: {\n points: [...ellipsePoints],\n activeHandleIndex: 0,\n textBox: {\n hasMoved: false\n }\n },\n cachedStats: {\n [`imageId:${referencedImageId}`]: {\n area: NUMGroup\n ? NUMGroup.MeasuredValueSequence.NumericValue\n : 0\n }\n },\n frameNumber: ReferencedFrameNumber\n };\n\n return state;\n }\n\n static getTID300RepresentationArguments(tool, worldToImageCoords) {\n const { data, finding, findingSites, metadata } = tool;\n const { cachedStats = {}, handles } = data;\n\n const { referencedImageId } = metadata;\n\n if (!referencedImageId) {\n throw new Error(\n \"EllipticalROI.getTID300RepresentationArguments: referencedImageId is not defined\"\n );\n }\n\n const top = worldToImageCoords(referencedImageId, handles.points[0]);\n const bottom = worldToImageCoords(referencedImageId, handles.points[1]);\n const left = worldToImageCoords(referencedImageId, handles.points[2]);\n const right = worldToImageCoords(referencedImageId, handles.points[3]);\n\n // find the major axis and minor axis\n const topBottomLength = Math.abs(top[1] - bottom[1]);\n const leftRightLength = Math.abs(left[0] - right[0]);\n\n let points = [];\n if (topBottomLength > leftRightLength) {\n // major axis is bottom to top\n points.push({ x: top[0], y: top[1] });\n points.push({ x: bottom[0], y: bottom[1] });\n\n // minor axis is left to right\n points.push({ x: left[0], y: left[1] });\n points.push({ x: right[0], y: right[1] });\n } else {\n // major axis is left to right\n points.push({ x: left[0], y: left[1] });\n points.push({ x: right[0], y: right[1] });\n\n // minor axis is bottom to top\n points.push({ x: top[0], y: top[1] });\n points.push({ x: bottom[0], y: bottom[1] });\n }\n\n const { area } = cachedStats[`imageId:${referencedImageId}`] || {};\n\n return {\n area,\n points,\n trackingIdentifierTextValue,\n finding,\n findingSites: findingSites || []\n };\n }\n}\n\nEllipticalROI.toolType = ELLIPTICALROI;\nEllipticalROI.utilityToolType = ELLIPTICALROI;\nEllipticalROI.TID300Representation = TID300Ellipse;\nEllipticalROI.isValidCornerstoneTrackingIdentifier = TrackingIdentifier => {\n if (!TrackingIdentifier.includes(\":\")) {\n return false;\n }\n\n const [cornerstone3DTag, toolType] = TrackingIdentifier.split(\":\");\n\n if (cornerstone3DTag !== CORNERSTONE_3D_TAG) {\n return false;\n }\n\n // The following is needed since the new cornerstone3D has changed\n // the EllipticalRoi toolName (which was in the old cornerstone) to EllipticalROI\n return toolType.toLowerCase() === ELLIPTICALROI.toLowerCase();\n};\n\nMeasurementReport.registerTool(EllipticalROI);\n\nexport default EllipticalROI;\n","import MeasurementReport from \"./MeasurementReport.js\";\nimport TID300Point from \"../../utilities/TID300/Point.js\";\nimport CORNERSTONE_3D_TAG from \"./cornerstone3DTag\";\nimport CodingScheme from \"./CodingScheme\";\n\nconst ARROW_ANNOTATE = \"ArrowAnnotate\";\nconst trackingIdentifierTextValue = `${CORNERSTONE_3D_TAG}:${ARROW_ANNOTATE}`;\n\nconst { codeValues, CodingSchemeDesignator } = CodingScheme;\n\nclass ArrowAnnotate {\n constructor() {}\n\n static getMeasurementData(\n MeasurementGroup,\n sopInstanceUIDToImageIdMap,\n imageToWorldCoords,\n metadata\n ) {\n const { defaultState, SCOORDGroup, ReferencedFrameNumber } =\n MeasurementReport.getSetupMeasurementData(\n MeasurementGroup,\n sopInstanceUIDToImageIdMap,\n metadata,\n ArrowAnnotate.toolType\n );\n\n const referencedImageId =\n defaultState.annotation.metadata.referencedImageId;\n\n const text = defaultState.annotation.metadata.label;\n\n const { GraphicData } = SCOORDGroup;\n\n const worldCoords = [];\n for (let i = 0; i < GraphicData.length; i += 2) {\n const point = imageToWorldCoords(referencedImageId, [\n GraphicData[i],\n GraphicData[i + 1]\n ]);\n worldCoords.push(point);\n }\n\n // Since the arrowAnnotate measurement is just a point, to generate the tool state\n // we derive the second point based on the image size relative to the first point.\n if (worldCoords.length === 1) {\n const imagePixelModule = metadata.get(\n \"imagePixelModule\",\n referencedImageId\n );\n\n let xOffset = 10;\n let yOffset = 10;\n\n if (imagePixelModule) {\n const { columns, rows } = imagePixelModule;\n xOffset = columns / 10;\n yOffset = rows / 10;\n }\n\n const secondPoint = imageToWorldCoords(referencedImageId, [\n GraphicData[0] + xOffset,\n GraphicData[1] + yOffset\n ]);\n\n worldCoords.push(secondPoint);\n }\n\n const state = defaultState;\n\n state.annotation.data = {\n text,\n handles: {\n arrowFirst: true,\n points: [worldCoords[0], worldCoords[1]],\n activeHandleIndex: 0,\n textBox: {\n hasMoved: false\n }\n },\n frameNumber: ReferencedFrameNumber\n };\n\n return state;\n }\n\n static getTID300RepresentationArguments(tool, worldToImageCoords) {\n const { data, metadata } = tool;\n let { finding, findingSites } = tool;\n const { referencedImageId } = metadata;\n\n if (!referencedImageId) {\n throw new Error(\n \"ArrowAnnotate.getTID300RepresentationArguments: referencedImageId is not defined\"\n );\n }\n\n const { points, arrowFirst } = data.handles;\n\n let point;\n\n if (arrowFirst) {\n point = points[0];\n } else {\n point = points[1];\n }\n\n const pointImage = worldToImageCoords(referencedImageId, point);\n\n const TID300RepresentationArguments = {\n points: [\n {\n x: pointImage[0],\n y: pointImage[1]\n }\n ],\n trackingIdentifierTextValue,\n findingSites: findingSites || []\n };\n\n // If freetext finding isn't present, add it from the tool text.\n if (!finding || finding.CodeValue !== codeValues.CORNERSTONEFREETEXT) {\n finding = {\n CodeValue: codeValues.CORNERSTONEFREETEXT,\n CodingSchemeDesignator,\n CodeMeaning: data.text\n };\n }\n\n TID300RepresentationArguments.finding = finding;\n\n return TID300RepresentationArguments;\n }\n}\n\nArrowAnnotate.toolType = ARROW_ANNOTATE;\nArrowAnnotate.utilityToolType = ARROW_ANNOTATE;\nArrowAnnotate.TID300Representation = TID300Point;\nArrowAnnotate.isValidCornerstoneTrackingIdentifier = TrackingIdentifier => {\n if (!TrackingIdentifier.includes(\":\")) {\n return false;\n }\n\n const [cornerstone3DTag, toolType] = TrackingIdentifier.split(\":\");\n\n if (cornerstone3DTag !== CORNERSTONE_3D_TAG) {\n return false;\n }\n\n return toolType === ARROW_ANNOTATE;\n};\n\nMeasurementReport.registerTool(ArrowAnnotate);\n\nexport default ArrowAnnotate;\n","import MeasurementReport from \"./MeasurementReport.js\";\nimport TID300Point from \"../../utilities/TID300/Point.js\";\nimport CORNERSTONE_3D_TAG from \"./cornerstone3DTag\";\n\nconst PROBE = \"Probe\";\nconst trackingIdentifierTextValue = `${CORNERSTONE_3D_TAG}:${PROBE}`;\n\nclass Probe {\n constructor() {}\n\n static getMeasurementData(\n MeasurementGroup,\n sopInstanceUIDToImageIdMap,\n imageToWorldCoords,\n metadata\n ) {\n const { defaultState, SCOORDGroup, ReferencedFrameNumber } =\n MeasurementReport.getSetupMeasurementData(\n MeasurementGroup,\n sopInstanceUIDToImageIdMap,\n metadata,\n Probe.toolType\n );\n\n const referencedImageId =\n defaultState.annotation.metadata.referencedImageId;\n\n const { GraphicData } = SCOORDGroup;\n\n const worldCoords = [];\n for (let i = 0; i < GraphicData.length; i += 2) {\n const point = imageToWorldCoords(referencedImageId, [\n GraphicData[i],\n GraphicData[i + 1]\n ]);\n worldCoords.push(point);\n }\n\n const state = defaultState;\n\n state.annotation.data = {\n handles: {\n points: worldCoords,\n activeHandleIndex: null,\n textBox: {\n hasMoved: false\n }\n },\n frameNumber: ReferencedFrameNumber\n };\n\n return state;\n }\n\n static getTID300RepresentationArguments(tool, worldToImageCoords) {\n const { data, metadata } = tool;\n let { finding, findingSites } = tool;\n const { referencedImageId } = metadata;\n\n if (!referencedImageId) {\n throw new Error(\n \"Probe.getTID300RepresentationArguments: referencedImageId is not defined\"\n );\n }\n\n const { points } = data.handles;\n\n const pointsImage = points.map(point => {\n const pointImage = worldToImageCoords(referencedImageId, point);\n return {\n x: pointImage[0],\n y: pointImage[1]\n };\n });\n\n const TID300RepresentationArguments = {\n points: pointsImage,\n trackingIdentifierTextValue,\n findingSites: findingSites || [],\n finding\n };\n\n return TID300RepresentationArguments;\n }\n}\n\nProbe.toolType = PROBE;\nProbe.utilityToolType = PROBE;\nProbe.TID300Representation = TID300Point;\nProbe.isValidCornerstoneTrackingIdentifier = TrackingIdentifier => {\n if (!TrackingIdentifier.includes(\":\")) {\n return false;\n }\n\n const [cornerstone3DTag, toolType] = TrackingIdentifier.split(\":\");\n\n if (cornerstone3DTag !== CORNERSTONE_3D_TAG) {\n return false;\n }\n\n return toolType === PROBE;\n};\n\nMeasurementReport.registerTool(Probe);\n\nexport default Probe;\n","import MeasurementReport from \"./MeasurementReport\";\nimport TID300Polyline from \"../../utilities/TID300/Polyline\";\nimport CORNERSTONE_3D_TAG from \"./cornerstone3DTag\";\nimport { vec3 } from \"gl-matrix\";\n\nconst PLANARFREEHANDROI = \"PlanarFreehandROI\";\nconst perimeterCodeValue = \"131191004\";\nconst sctCodingSchemeDesignator = \"SCT\";\nconst polylineGraphicType = \"POLYLINE\";\nconst trackingIdentifierTextValue = `${CORNERSTONE_3D_TAG}:${PLANARFREEHANDROI}`;\nconst closedContourThreshold = 1e-5;\n\nclass PlanarFreehandROI {\n constructor() {}\n\n static getMeasurementData(\n MeasurementGroup,\n sopInstanceUIDToImageIdMap,\n imageToWorldCoords,\n metadata\n ) {\n const { defaultState, SCOORDGroup, ReferencedFrameNumber } =\n MeasurementReport.getSetupMeasurementData(\n MeasurementGroup,\n sopInstanceUIDToImageIdMap,\n metadata,\n PlanarFreehandROI.toolType\n );\n\n const referencedImageId =\n defaultState.annotation.metadata.referencedImageId;\n const { GraphicData } = SCOORDGroup;\n\n const worldCoords = [];\n\n for (let i = 0; i < GraphicData.length; i += 2) {\n const point = imageToWorldCoords(referencedImageId, [\n GraphicData[i],\n GraphicData[i + 1]\n ]);\n\n worldCoords.push(point);\n }\n\n const distanceBetweenFirstAndLastPoint = vec3.distance(\n worldCoords[worldCoords.length - 1],\n worldCoords[0]\n );\n\n let isOpenContour = true;\n\n // If the contour is closed, this should have been encoded as exactly the same point, so check for a very small difference.\n if (distanceBetweenFirstAndLastPoint < closedContourThreshold) {\n worldCoords.pop(); // Remove the last element which is duplicated.\n\n isOpenContour = false;\n }\n\n let points = [];\n\n if (isOpenContour) {\n points.push(worldCoords[0], worldCoords[worldCoords.length - 1]);\n }\n\n const state = defaultState;\n\n state.annotation.data = {\n polyline: worldCoords,\n isOpenContour,\n handles: {\n points,\n activeHandleIndex: null,\n textBox: {\n hasMoved: false\n }\n },\n frameNumber: ReferencedFrameNumber\n };\n\n return state;\n }\n\n static getTID300RepresentationArguments(tool, worldToImageCoords) {\n const { data, finding, findingSites, metadata } = tool;\n const { isOpenContour, polyline } = data;\n\n const { referencedImageId } = metadata;\n\n if (!referencedImageId) {\n throw new Error(\n \"PlanarFreehandROI.getTID300RepresentationArguments: referencedImageId is not defined\"\n );\n }\n\n const points = polyline.map(worldPos =>\n worldToImageCoords(referencedImageId, worldPos)\n );\n\n if (!isOpenContour) {\n // Need to repeat the first point at the end of to have an explicitly closed contour.\n const firstPoint = points[0];\n\n // Explicitly expand to avoid ciruclar references.\n points.push([firstPoint[0], firstPoint[1]]);\n }\n\n const area = 0; // TODO -> The tool doesn't have these stats yet.\n const perimeter = 0;\n\n return {\n points,\n area,\n perimeter,\n trackingIdentifierTextValue,\n finding,\n findingSites: findingSites || []\n };\n }\n}\n\nPlanarFreehandROI.toolType = PLANARFREEHANDROI;\nPlanarFreehandROI.utilityToolType = PLANARFREEHANDROI;\nPlanarFreehandROI.TID300Representation = TID300Polyline;\nPlanarFreehandROI.isValidCornerstoneTrackingIdentifier = TrackingIdentifier => {\n if (!TrackingIdentifier.includes(\":\")) {\n return false;\n }\n\n const [cornerstone3DTag, toolType] = TrackingIdentifier.split(\":\");\n\n if (cornerstone3DTag !== CORNERSTONE_3D_TAG) {\n return false;\n }\n\n return toolType === PLANARFREEHANDROI;\n};\n\nMeasurementReport.registerTool(PlanarFreehandROI);\n\nexport default PlanarFreehandROI;\n","import MeasurementReport from \"./MeasurementReport.js\";\nimport Length from \"./Length.js\";\nimport Bidirectional from \"./Bidirectional.js\";\nimport EllipticalROI from \"./EllipticalROI.js\";\nimport ArrowAnnotate from \"./ArrowAnnotate.js\";\nimport Probe from \"./Probe.js\";\nimport PlanarFreehandROI from \"./PlanarFreehandROI.js\";\nimport CodeScheme from \"./CodingScheme\";\nimport CORNERSTONE_3D_TAG from \"./cornerstone3DTag\";\n\nconst Cornerstone3D = {\n Length,\n Bidirectional,\n EllipticalROI,\n ArrowAnnotate,\n Probe,\n PlanarFreehandROI,\n MeasurementReport,\n CodeScheme,\n CORNERSTONE_3D_TAG\n};\n\nexport default Cornerstone3D;\n","import Colors from \"../../colors.js\";\nimport BitArray from \"../../bitArray.js\";\n\n// TODO: Is there a better name for this? RGBAInt?\n// Should we move it to Colors.js\nfunction dicomlab2RGBA(cielab) {\n const rgba = Colors.dicomlab2RGB(cielab).map(x => Math.round(x * 255));\n rgba.push(255);\n\n return rgba;\n}\n\n// TODO: Copied these functions in from VTK Math so we don't need a dependency.\n// I guess we should put them somewhere\n// https://github.com/Kitware/vtk-js/blob/master/Sources/Common/Core/Math/index.js\nfunction cross(x, y, out) {\n const Zx = x[1] * y[2] - x[2] * y[1];\n const Zy = x[2] * y[0] - x[0] * y[2];\n const Zz = x[0] * y[1] - x[1] * y[0];\n out[0] = Zx;\n out[1] = Zy;\n out[2] = Zz;\n}\n\nfunction norm(x, n = 3) {\n switch (n) {\n case 1:\n return Math.abs(x);\n case 2:\n return Math.sqrt(x[0] * x[0] + x[1] * x[1]);\n case 3:\n return Math.sqrt(x[0] * x[0] + x[1] * x[1] + x[2] * x[2]);\n default: {\n let sum = 0;\n for (let i = 0; i < n; i++) {\n sum += x[i] * x[i];\n }\n return Math.sqrt(sum);\n }\n }\n}\n\nfunction normalize(x) {\n const den = norm(x);\n if (den !== 0.0) {\n x[0] /= den;\n x[1] /= den;\n x[2] /= den;\n }\n return den;\n}\n\nfunction subtract(a, b, out) {\n out[0] = a[0] - b[0];\n out[1] = a[1] - b[1];\n out[2] = a[2] - b[2];\n}\n\n// TODO: This is a useful utility on its own. We should move it somewhere?\n// dcmjs.adapters.vtk.Multiframe? dcmjs.utils?\nfunction geometryFromFunctionalGroups(dataset, PerFrameFunctionalGroups) {\n const geometry = {};\n const pixelMeasures =\n dataset.SharedFunctionalGroupsSequence.PixelMeasuresSequence;\n const planeOrientation =\n dataset.SharedFunctionalGroupsSequence.PlaneOrientationSequence;\n\n // Find the origin of the volume from the PerFrameFunctionalGroups' ImagePositionPatient values\n //\n // TODO: assumes sorted frames. This should read the ImagePositionPatient from each frame and\n // sort them to obtain the first and last position along the acquisition axis.\n const firstFunctionalGroup = PerFrameFunctionalGroups[0];\n const lastFunctionalGroup =\n PerFrameFunctionalGroups[PerFrameFunctionalGroups.length - 1];\n const firstPosition =\n firstFunctionalGroup.PlanePositionSequence.ImagePositionPatient.map(\n Number\n );\n const lastPosition =\n lastFunctionalGroup.PlanePositionSequence.ImagePositionPatient.map(\n Number\n );\n\n geometry.origin = firstPosition;\n\n // NB: DICOM PixelSpacing is defined as Row then Column,\n // unlike ImageOrientationPatient\n geometry.spacing = [\n pixelMeasures.PixelSpacing[1],\n pixelMeasures.PixelSpacing[0],\n pixelMeasures.SpacingBetweenSlices\n ].map(Number);\n\n geometry.dimensions = [\n dataset.Columns,\n dataset.Rows,\n PerFrameFunctionalGroups.length\n ].map(Number);\n\n const orientation = planeOrientation.ImageOrientationPatient.map(Number);\n const columnStepToPatient = orientation.slice(0, 3);\n const rowStepToPatient = orientation.slice(3, 6);\n\n geometry.planeNormal = [];\n\n cross(columnStepToPatient, rowStepToPatient, geometry.planeNormal);\n\n geometry.sliceStep = [];\n subtract(lastPosition, firstPosition, geometry.sliceStep);\n normalize(geometry.sliceStep);\n geometry.direction = columnStepToPatient\n .concat(rowStepToPatient)\n .concat(geometry.sliceStep);\n\n return geometry;\n}\n\nexport default class Segmentation {\n constructor() {}\n\n /**\n * Produces an array of Segments from an input DICOM Segmentation dataset\n *\n * Segments are returned with Geometry values that can be used to create\n * VTK Image Data objects.\n *\n * @example Example usage to create VTK Volume actors from each segment:\n *\n * const actors = [];\n * const segments = generateToolState(dataset);\n * segments.forEach(segment => {\n * // now make actors using the segment information\n * const scalarArray = vtk.Common.Core.vtkDataArray.newInstance({\n * name: \"Scalars\",\n * numberOfComponents: 1,\n * values: segment.pixelData,\n * });\n *\n * const imageData = vtk.Common.DataModel.vtkImageData.newInstance();\n * imageData.getPointData().setScalars(scalarArray);\n * imageData.setDimensions(geometry.dimensions);\n * imageData.setSpacing(geometry.spacing);\n * imageData.setOrigin(geometry.origin);\n * imageData.setDirection(geometry.direction);\n *\n * const mapper = vtk.Rendering.Core.vtkVolumeMapper.newInstance();\n * mapper.setInputData(imageData);\n * mapper.setSampleDistance(2.);\n *\n * const actor = vtk.Rendering.Core.vtkVolume.newInstance();\n * actor.setMapper(mapper);\n *\n * actors.push(actor);\n * });\n *\n * @param dataset\n * @return {{}}\n */\n static generateSegments(dataset) {\n if (dataset.SegmentSequence.constructor.name !== \"Array\") {\n dataset.SegmentSequence = [dataset.SegmentSequence];\n }\n\n dataset.SegmentSequence.forEach(segment => {\n // TODO: other interesting fields could be extracted from the segment\n // TODO: Read SegmentsOverlay field\n // http://dicom.nema.org/medical/dicom/current/output/chtml/part03/sect_C.8.20.2.html\n\n // TODO: Looks like vtkColor only wants RGB in 0-1 values.\n // Why was this example converting to RGBA with 0-255 values?\n const color = dicomlab2RGBA(segment.RecommendedDisplayCIELabValue);\n\n segments[segment.SegmentNumber] = {\n color,\n functionalGroups: [],\n offset: null,\n size: null,\n pixelData: null\n };\n });\n\n // make a list of functional groups per segment\n dataset.PerFrameFunctionalGroupsSequence.forEach(functionalGroup => {\n const segmentNumber =\n functionalGroup.SegmentIdentificationSequence\n .ReferencedSegmentNumber;\n\n segments[segmentNumber].functionalGroups.push(functionalGroup);\n });\n\n // determine per-segment index into the pixel data\n // TODO: only handles one-bit-per pixel\n const frameSize = Math.ceil((dataset.Rows * dataset.Columns) / 8);\n let nextOffset = 0;\n\n Object.keys(segments).forEach(segmentNumber => {\n const segment = segments[segmentNumber];\n\n segment.numberOfFrames = segment.functionalGroups.length;\n segment.size = segment.numberOfFrames * frameSize;\n segment.offset = nextOffset;\n\n nextOffset = segment.offset + segment.size;\n\n const packedSegment = dataset.PixelData.slice(\n segment.offset,\n nextOffset\n );\n\n segment.pixelData = BitArray.unpack(packedSegment);\n\n const geometry = geometryFromFunctionalGroups(\n dataset,\n segment.functionalGroups\n );\n\n segment.geometry = geometry;\n });\n\n return segments;\n }\n}\n","import Segmentation from \"./Segmentation.js\";\n\nconst VTKjs = {\n Segmentation\n};\n\nexport default VTKjs;\n","import { DicomMetaDictionary } from \"../../DicomMetaDictionary.js\";\nimport { StructuredReport } from \"../../derivations/\";\nimport TID1500MeasurementReport from \"../../utilities/TID1500/TID1500MeasurementReport.js\";\nimport TID1501MeasurementGroup from \"../../utilities/TID1500/TID1501MeasurementGroup.js\";\nimport { toArray, codeMeaningEquals, graphicTypeEquals } from \"../helpers.js\";\n\nfunction getTID300ContentItem(tool, toolClass) {\n const args = toolClass.getTID300RepresentationArguments(tool);\n args.use3DSpatialCoordinates = true;\n return new toolClass.TID300Representation(args);\n}\n\nfunction getMeasurementGroup(graphicType, measurements) {\n const toolClass =\n MeasurementReport.MICROSCOPY_TOOL_CLASSES_BY_TOOL_TYPE[graphicType];\n\n // Loop through the array of tool instances\n // for this tool\n const Measurements = measurements.map(tool => {\n return getTID300ContentItem(tool, toolClass);\n });\n\n return new TID1501MeasurementGroup(Measurements);\n}\n\nexport default class MeasurementReport {\n constructor() {}\n\n static generateReport(rois, metadataProvider, options) {\n // Input is all ROIS returned via viewer.getALLROIs()\n // let report = MeasurementReport.generateReport(viewer.getAllROIs());\n\n // Sort and split into arrays by scoord3d.graphicType\n const measurementsByGraphicType = {};\n rois.forEach(roi => {\n const graphicType = roi.scoord3d.graphicType;\n\n if (graphicType !== \"POINT\") {\n // adding z coord as 0\n roi.scoord3d.graphicData.map(coord => coord.push(0));\n }\n\n if (!measurementsByGraphicType[graphicType]) {\n measurementsByGraphicType[graphicType] = [];\n }\n\n measurementsByGraphicType[graphicType].push(roi.scoord3d);\n });\n\n // For each measurement, get the utility arguments using the adapter, and create TID300 Measurement\n // Group these TID300 Measurements into a TID1501 Measurement Group (for each graphicType)\n // Use TID1500MeasurementReport utility to create a single report from the created groups\n // return report;\n\n let allMeasurementGroups = [];\n const measurementGroups = [];\n Object.keys(measurementsByGraphicType).forEach(graphicType => {\n const measurements = measurementsByGraphicType[graphicType];\n\n const group = getMeasurementGroup(graphicType, measurements);\n if (group) {\n measurementGroups.push(group);\n }\n\n allMeasurementGroups =\n allMeasurementGroups.concat(measurementGroups);\n });\n\n const MeasurementReport = new TID1500MeasurementReport(\n { TID1501MeasurementGroups: allMeasurementGroups },\n options\n );\n\n // TODO: what is the correct metaheader\n // http://dicom.nema.org/medical/Dicom/current/output/chtml/part10/chapter_7.html\n // TODO: move meta creation to happen in derivations.js\n const fileMetaInformationVersionArray = new Uint8Array(2);\n fileMetaInformationVersionArray[1] = 1;\n\n // TODO: Find out how to reference the data from dicom-microscopy-viewer\n const studyInstanceUID = \"12.4\";\n const seriesInstanceUID = \"12.4\";\n\n const derivationSourceDataset = {\n StudyInstanceUID: studyInstanceUID,\n SeriesInstanceUID: seriesInstanceUID\n //SOPInstanceUID: sopInstanceUID, // TODO: Necessary?\n //SOPClassUID: sopClassUID,\n };\n\n const _meta = {\n FileMetaInformationVersion: {\n Value: [fileMetaInformationVersionArray.buffer],\n vr: \"OB\"\n },\n //MediaStorageSOPClassUID\n //MediaStorageSOPInstanceUID: sopCommonModule.sopInstanceUID,\n TransferSyntaxUID: {\n Value: [\"1.2.840.10008.1.2.1\"],\n vr: \"UI\"\n },\n ImplementationClassUID: {\n Value: [DicomMetaDictionary.uid()], // TODO: could be git hash or other valid id\n vr: \"UI\"\n },\n ImplementationVersionName: {\n Value: [\"dcmjs\"],\n vr: \"SH\"\n }\n };\n\n const _vrMap = {\n PixelData: \"OW\"\n };\n\n derivationSourceDataset._meta = _meta;\n derivationSourceDataset._vrMap = _vrMap;\n\n const report = new StructuredReport([derivationSourceDataset]);\n const contentItem = MeasurementReport.contentItem(\n derivationSourceDataset\n );\n\n // Merge the derived dataset with the content from the Measurement Report\n report.dataset = Object.assign(report.dataset, contentItem);\n report.dataset._meta = _meta;\n\n return report;\n }\n\n //@ToDo\n static generateToolState(dataset) {\n // For now, bail out if the dataset is not a TID1500 SR with length measurements\n if (dataset.ContentTemplateSequence.TemplateIdentifier !== \"1500\") {\n throw new Error(\n \"This package can currently only interpret DICOM SR TID 1500\"\n );\n }\n\n const REPORT = \"Imaging Measurements\";\n const GROUP = \"Measurement Group\";\n\n // Split the imagingMeasurementContent into measurement groups by their code meaning\n const imagingMeasurementContent = toArray(dataset.ContentSequence).find(\n codeMeaningEquals(REPORT)\n );\n\n // Retrieve the Measurements themselves\n const measurementGroups = toArray(\n imagingMeasurementContent.ContentSequence\n ).filter(codeMeaningEquals(GROUP));\n\n // // For each of the supported measurement types, compute the measurement data\n const measurementData = {};\n\n measurementGroups.forEach(mg => {\n Object.keys(\n MeasurementReport.MICROSCOPY_TOOL_CLASSES_BY_UTILITY_TYPE\n ).forEach(measurementType => {\n // Find supported measurement types in the Structured Report\n const measurementGroupContentSequence = toArray(\n mg.ContentSequence\n );\n let measurementContent = measurementGroupContentSequence.filter(\n graphicTypeEquals(measurementType.toUpperCase())\n );\n if (!measurementContent || measurementContent.length === 0) {\n return;\n }\n\n const toolClass =\n MeasurementReport.MICROSCOPY_TOOL_CLASSES_BY_UTILITY_TYPE[\n measurementType\n ];\n const toolType = toolClass.toolType;\n\n if (!toolClass.getMeasurementData) {\n throw new Error(\n \"MICROSCOPY Tool Adapters must define a getMeasurementData static method.\"\n );\n }\n\n if (!measurementData[toolType]) {\n measurementData[toolType] = [];\n }\n measurementData[toolType] = [\n ...measurementData[toolType],\n ...toolClass.getMeasurementData(measurementContent)\n ];\n });\n });\n\n return measurementData;\n }\n\n static registerTool(toolClass) {\n MeasurementReport.MICROSCOPY_TOOL_CLASSES_BY_UTILITY_TYPE[\n toolClass.utilityToolType\n ] = toolClass;\n MeasurementReport.MICROSCOPY_TOOL_CLASSES_BY_TOOL_TYPE[\n toolClass.graphicType\n ] = toolClass;\n MeasurementReport.MEASUREMENT_BY_TOOLTYPE[toolClass.graphicType] =\n toolClass.utilityToolType;\n }\n}\n\nMeasurementReport.MEASUREMENT_BY_TOOLTYPE = {};\nMeasurementReport.MICROSCOPY_TOOL_CLASSES_BY_UTILITY_TYPE = {};\nMeasurementReport.MICROSCOPY_TOOL_CLASSES_BY_TOOL_TYPE = {};\n","import MeasurementReport from \"./MeasurementReport.js\";\nimport TID300Polyline from \"../../utilities/TID300/Polyline\";\n\nclass Polyline {\n constructor() {}\n\n static getMeasurementData(measurementContent) {\n // removing duplication and Getting only the graphicData information\n const measurement = measurementContent\n .map(item => item.GraphicData)\n .filter(\n (\n s => a =>\n (j => !s.has(j) && s.add(j))(JSON.stringify(a))\n )(new Set())\n );\n\n // Chunking the array into size of three\n return measurement.map(measurement => {\n return measurement.reduce((all, one, i) => {\n const ch = Math.floor(i / 3);\n all[ch] = [].concat(all[ch] || [], one);\n return all;\n }, []);\n });\n }\n\n static getTID300RepresentationArguments(scoord3d) {\n if (scoord3d.graphicType !== \"POLYLINE\") {\n throw new Error(\"We expected a POLYLINE graphicType\");\n }\n\n const points = scoord3d.graphicData;\n const lengths = 1;\n\n return { points, lengths };\n }\n}\n\nPolyline.graphicType = \"POLYLINE\";\nPolyline.toolType = \"Polyline\";\nPolyline.utilityToolType = \"Polyline\";\nPolyline.TID300Representation = TID300Polyline;\n\nMeasurementReport.registerTool(Polyline);\n\nexport default Polyline;\n","import { DicomMetaDictionary } from \"../../DicomMetaDictionary.js\";\nimport TID300Measurement from \"./TID300Measurement.js\";\nimport unit2CodingValue from \"./unit2CodingValue.js\";\n\n/**\n * Expand an array of points stored as objects into\n * a flattened array of points\n *\n * @param points [{x: 0, y: 1}, {x: 1, y: 2}] or [{x: 0, y: 1, z: 0}, {x: 1, y: 2, z: 0}]\n * @return {Array} [point1x, point1y, point2x, point2y] or [point1x, point1y, point1z, point2x, point2y, point2z]\n */\nfunction expandPoints(points) {\n const allPoints = [];\n\n points.forEach(point => {\n allPoints.push(point[0]);\n allPoints.push(point[1]);\n if (point[2] !== undefined) {\n allPoints.push(point[2]);\n }\n });\n\n return allPoints;\n}\n\nexport default class Polygon extends TID300Measurement {\n contentItem() {\n const {\n points,\n perimeter,\n unit = \"mm\",\n area,\n areaUnit,\n ReferencedSOPSequence,\n use3DSpatialCoordinates = false\n } = this.props;\n\n const GraphicData = expandPoints(points);\n\n return this.getMeasurement([\n {\n RelationshipType: \"CONTAINS\",\n ValueType: \"NUM\",\n ConceptNameCodeSequence: {\n CodeValue: \"G-A197\",\n CodingSchemeDesignator: \"SRT\",\n CodeMeaning: \"Perimeter\"\n },\n MeasuredValueSequence: {\n MeasurementUnitsCodeSequence: unit2CodingValue(unit),\n NumericValue: perimeter\n },\n ContentSequence: {\n RelationshipType: \"INFERRED FROM\",\n ValueType: use3DSpatialCoordinates ? \"SCOORD3D\" : \"SCOORD\",\n GraphicType: \"POLYGON\",\n GraphicData,\n ContentSequence: use3DSpatialCoordinates\n ? undefined\n : {\n RelationshipType: \"SELECTED FROM\",\n ValueType: \"IMAGE\",\n ReferencedSOPSequence\n }\n }\n },\n {\n RelationshipType: \"CONTAINS\",\n ValueType: \"NUM\",\n ConceptNameCodeSequence: {\n CodeValue: \"G-A166\",\n CodingSchemeDesignator: \"SRT\",\n CodeMeaning: \"Area\"\n },\n MeasuredValueSequence: {\n MeasurementUnitsCodeSequence: unit2CodingValue(areaUnit),\n NumericValue: area\n },\n ContentSequence: {\n RelationshipType: \"INFERRED FROM\",\n ValueType: use3DSpatialCoordinates ? \"SCOORD3D\" : \"SCOORD\",\n GraphicType: \"POLYGON\",\n GraphicData,\n ContentSequence: use3DSpatialCoordinates\n ? undefined\n : {\n RelationshipType: \"SELECTED FROM\",\n ValueType: \"IMAGE\",\n ReferencedSOPSequence\n }\n }\n }\n ]);\n }\n}\n","import MeasurementReport from \"./MeasurementReport.js\";\nimport TID300Polygon from \"../../utilities/TID300/Polygon\";\n\nclass Polygon {\n constructor() {}\n\n static getMeasurementData(measurementContent) {\n // removing duplication and Getting only the graphicData information\n const measurement = measurementContent\n .map(item => item.GraphicData)\n .filter(\n (\n s => a =>\n (j => !s.has(j) && s.add(j))(JSON.stringify(a))\n )(new Set())\n );\n\n // Chunking the array into size of three\n return measurement.map(measurement => {\n return measurement.reduce((all, one, i) => {\n const ch = Math.floor(i / 3);\n all[ch] = [].concat(all[ch] || [], one);\n return all;\n }, []);\n });\n }\n\n static getTID300RepresentationArguments(scoord3d) {\n if (scoord3d.graphicType !== \"POLYGON\") {\n throw new Error(\"We expected a POLYGON graphicType\");\n }\n\n const points = scoord3d.graphicData;\n const lengths = 1;\n\n return { points, lengths };\n }\n}\n\nPolygon.graphicType = \"POLYGON\";\nPolygon.toolType = \"Polygon\";\nPolygon.utilityToolType = \"Polygon\";\nPolygon.TID300Representation = TID300Polygon;\n\nMeasurementReport.registerTool(Polygon);\n\nexport default Polygon;\n","import MeasurementReport from \"./MeasurementReport.js\";\nimport TID300Point from \"../../utilities/TID300/Point\";\n\nclass Point {\n constructor() {}\n\n static getMeasurementData(measurementContent) {\n const measurement = measurementContent.map(item => item.GraphicData);\n return measurement.filter(\n (\n s => a =>\n (j => !s.has(j) && s.add(j))(JSON.stringify(a))\n )(new Set())\n );\n }\n\n static getTID300RepresentationArguments(scoord3d) {\n if (scoord3d.graphicType !== \"POINT\") {\n throw new Error(\"We expected a POINT graphicType\");\n }\n\n const points = [scoord3d.graphicData];\n const lengths = 1;\n\n return { points, lengths };\n }\n}\n\nPoint.graphicType = \"POINT\";\nPoint.toolType = \"Point\";\nPoint.utilityToolType = \"Point\";\nPoint.TID300Representation = TID300Point;\n\nMeasurementReport.registerTool(Point);\n\nexport default Point;\n","import MeasurementReport from \"./MeasurementReport.js\";\nimport TID300Circle from \"../../utilities/TID300/Circle\";\n\nclass Circle {\n constructor() {}\n\n static getMeasurementData(measurementContent) {\n // removing duplication and Getting only the graphicData information\n const measurement = measurementContent\n .map(item => item.GraphicData)\n .filter(\n (\n s => a =>\n (j => !s.has(j) && s.add(j))(JSON.stringify(a))\n )(new Set())\n );\n\n // Chunking the array into size of three\n return measurement.map(measurement => {\n return measurement.reduce((all, one, i) => {\n const ch = Math.floor(i / 3);\n all[ch] = [].concat(all[ch] || [], one);\n return all;\n }, []);\n });\n }\n\n static getTID300RepresentationArguments(scoord3d) {\n if (scoord3d.graphicType !== \"CIRCLE\") {\n throw new Error(\"We expected a CIRCLE graphicType\");\n }\n\n const points = scoord3d.graphicData;\n const lengths = 1;\n\n return { points, lengths };\n }\n}\n\nCircle.graphicType = \"CIRCLE\";\nCircle.toolType = \"Circle\";\nCircle.utilityToolType = \"Circle\";\nCircle.TID300Representation = TID300Circle;\n\nMeasurementReport.registerTool(Circle);\n\nexport default Circle;\n","import MeasurementReport from \"./MeasurementReport.js\";\nimport TID300Ellipse from \"../../utilities/TID300/Ellipse\";\n\nclass Ellipse {\n constructor() {}\n\n static getMeasurementData(measurementContent) {\n // removing duplication and Getting only the graphicData information\n const measurement = measurementContent\n .map(item => item.GraphicData)\n .filter(\n (\n s => a =>\n (j => !s.has(j) && s.add(j))(JSON.stringify(a))\n )(new Set())\n );\n\n // Chunking the array into size of three\n return measurement.map(measurement => {\n return measurement.reduce((all, one, i) => {\n const ch = Math.floor(i / 3);\n all[ch] = [].concat(all[ch] || [], one);\n return all;\n }, []);\n });\n }\n\n static getTID300RepresentationArguments(scoord3d) {\n if (scoord3d.graphicType !== \"Ellipse\") {\n throw new Error(\"We expected a Ellipse graphicType\");\n }\n\n const points = scoord3d.graphicData;\n const lengths = 1;\n\n return { points, lengths };\n }\n}\n\nEllipse.graphicType = \"ELLIPSE\";\nEllipse.toolType = \"Ellipse\";\nEllipse.utilityToolType = \"Ellipse\";\nEllipse.TID300Representation = TID300Ellipse;\n\nMeasurementReport.registerTool(Ellipse);\n\nexport default Ellipse;\n","import MeasurementReport from \"./MeasurementReport.js\";\nimport Polyline from \"./Polyline.js\";\nimport Polygon from \"./Polygon.js\";\nimport Point from \"./Point.js\";\nimport Circle from \"./Circle.js\";\nimport Ellipse from \"./Ellipse.js\";\n\nconst DICOMMicroscopyViewer = {\n Polyline,\n Polygon,\n Point,\n Circle,\n Ellipse,\n MeasurementReport\n};\n\nexport default DICOMMicroscopyViewer;\n","import Cornerstone from \"./Cornerstone/index.js\";\nimport Cornerstone3D from \"./Cornerstone3D/index.js\";\nimport VTKjs from \"./VTKjs/index.js\";\nimport DICOMMicroscopyViewer from \"./DICOMMicroscopyViewer/\";\n\nconst adapters = {\n Cornerstone,\n Cornerstone3D,\n VTKjs,\n DICOMMicroscopyViewer\n};\n\nexport default adapters;\n","import TID1500MeasurementReport from \"./TID1500MeasurementReport.js\";\nimport TID1501MeasurementGroup from \"./TID1501MeasurementGroup.js\";\n\nconst TID1500 = {\n TID1500MeasurementReport,\n TID1501MeasurementGroup\n};\n\nexport { TID1500MeasurementReport, TID1501MeasurementGroup };\n\nexport default TID1500;\n","import TID300Measurement from \"./TID300Measurement.js\";\nimport unit2CodingValue from \"./unit2CodingValue.js\";\n\nexport default class Calibration extends TID300Measurement {\n contentItem() {\n const {\n point1,\n point2,\n unit = \"mm\",\n distance,\n ReferencedSOPSequence\n } = this.props;\n\n return this.getMeasurement([\n {\n RelationshipType: \"CONTAINS\",\n ValueType: \"NUM\",\n ConceptNameCodeSequence: {\n CodeValue: \"102304005\",\n CodingSchemeDesignator: \"SCT\",\n CodeMeaning: \"Calibration Ruler\"\n },\n MeasuredValueSequence: {\n MeasurementUnitsCodeSequence: unit2CodingValue(unit),\n NumericValue: distance\n },\n ContentSequence: {\n RelationshipType: \"INFERRED FROM\",\n ValueType: \"SCOORD\",\n GraphicType: \"POLYLINE\",\n GraphicData: [point1.x, point1.y, point2.x, point2.y],\n ContentSequence: {\n RelationshipType: \"SELECTED FROM\",\n ValueType: \"IMAGE\",\n ReferencedSOPSequence\n }\n }\n }\n ]);\n }\n}\n","import TID300Measurement from \"./TID300Measurement.js\";\nimport Point from \"./Point.js\";\nimport Length from \"./Length.js\";\nimport CobbAngle from \"./CobbAngle\";\nimport Bidirectional from \"./Bidirectional.js\";\nimport Polyline from \"./Polyline.js\";\nimport Polygon from \"./Polygon.js\";\nimport Ellipse from \"./Ellipse\";\nimport Circle from \"./Circle\";\nimport Calibration from \"./Calibration\";\nimport unit2CodingValue from \"./unit2CodingValue\";\n\n// To be implemented:\n// - Cornerstone Probe\n// Note: OHIF currently uses Cornerstone's 'dragProbe'. We need to add the regular Probe tool, which drops a single point.\n//\n// Hierarchy\n// TID 1500 MeasurementReport\n// --TID 1501 Measurement Group\n// ---Measurement Group (DCM 125007)\n// ----TID 300 Measurement\n// ------SCOORD. Graphic Type: POINT\n//\n//\n// - Cornerstone Ellipse:\n//\n// Should specify the Mean Modality Pixel Value measured in whatever units the image is in\n// Should specify the Standard Deviation Modality Pixel Value measured in whatever units the image is in\n//\n//\n// - Cornerstone Rectangle ROI\n//\n// Hierarchy\n// TID 1500 MeasurementReport\n// --TID 1501 Measurement Group\n// ---Measurement Group (DCM 125007)\n// ----TID 300 Measurement\n// ------SCOORD. Graphic Type: POLYLINE\n// ------ Use concept corresponding to Rectangle measurement\n//\n// http://dicom.nema.org/medical/dicom/current/output/html/part16.html#sect_TID_4019\n//\n// OR\n// Note: This should be the same as a Freehand ROI, more or less. We add a TID 4019: Algorithm Identification flag to specify that this was created (and should be rehydrated) into a Rectangle ROI.\n// TODO: Should we use a Derivation instead? http://dicom.nema.org/medical/dicom/current/output/html/part16.html#DCM_121401\n// Should specify the Area measured in mmˆ2, including the units in UCUM\n// Should specify the Mean Modality Pixel Value measured in whatever units the image is in\n// Should specify the Standard Deviation Modality Pixel Value measured in whatever units the image is in\n//\n//\n// - Cornerstone Simple Angle tool\n//\n// Hierarchy\n// TID 1500 MeasurementReport\n// --TID 1501 Measurement Group\n// ---Measurement Group (DCM 125007)\n// ----TID 300 Measurement\n// ------SCOORD. Graphic Type: POLYLINE\n// (ftp://dicom.nema.org/MEDICAL/dicom/current/output/chtml/part03/sect_C.10.5.html)\n// ----TID 300 Measurement\n// ------SCOORD. Graphic Type: POLYLINE\n// (ftp://dicom.nema.org/MEDICAL/dicom/current/output/chtml/part03/sect_C.10.5.html)\n//\n// ------ Use concept corresponding to Angle measurement\n//\n// Two lines specify the angle\n// Should specify the Angle measured in Degrees, including the units in UCUM\n//\nconst TID300 = {\n TID300Measurement,\n Point,\n Length,\n CobbAngle,\n Bidirectional,\n Polyline,\n Polygon,\n Ellipse,\n Circle,\n Calibration,\n unit2CodingValue\n};\n\nexport { TID300Measurement, Length };\n\nexport default TID300;\n","/**\n * Converts a Uint8Array to a String.\n * @param {Uint8Array} array that should be converted\n * @param {Number} offset array offset in case only subset of array items should be extracted (default: 0)\n * @param {Number} limit maximum number of array items that should be extracted (defaults to length of array)\n * @returns {String}\n */\nfunction uint8ArrayToString(arr, offset, limit) {\n offset = offset || 0;\n limit = limit || arr.length - offset;\n let str = \"\";\n for (let i = offset; i < offset + limit; i++) {\n str += String.fromCharCode(arr[i]);\n }\n return str;\n}\n\n/**\n * Converts a String to a Uint8Array.\n * @param {String} str string that should be converted\n * @returns {Uint8Array}\n */\nfunction stringToUint8Array(str) {\n const arr = new Uint8Array(str.length);\n for (let i = 0, j = str.length; i < j; i++) {\n arr[i] = str.charCodeAt(i);\n }\n return arr;\n}\n\n/**\n * Identifies the boundary in a multipart/related message header.\n * @param {String} header message header\n * @returns {String} boundary\n */\nfunction identifyBoundary(header) {\n const parts = header.split(\"\\r\\n\");\n\n for (let i = 0; i < parts.length; i++) {\n if (parts[i].substr(0, 2) === \"--\") {\n return parts[i];\n }\n }\n}\n\n/**\n * Checks whether a given token is contained by a message at a given offset.\n * @param {Uint8Array} message message content\n * @param {Uint8Array} token substring that should be present\n * @param {Number} offset offset in message content from where search should start\n * @returns {Boolean} whether message contains token at offset\n */\nfunction containsToken(message, token, offset = 0) {\n if (offset + token.length > message.length) {\n return false;\n }\n\n let index = offset;\n for (let i = 0; i < token.length; i++) {\n if (token[i] !== message[index++]) {\n return false;\n }\n }\n return true;\n}\n\n/**\n * Finds a given token in a message at a given offset.\n * @param {Uint8Array} message message content\n * @param {Uint8Array} token substring that should be found\n * @param {Number} offset message body offset from where search should start\n * @returns {Boolean} whether message has a part at given offset or not\n */\nfunction findToken(message, token, offset = 0, maxSearchLength) {\n let searchLength = message.length;\n if (maxSearchLength) {\n searchLength = Math.min(offset + maxSearchLength, message.length);\n }\n\n for (let i = offset; i < searchLength; i++) {\n // If the first value of the message matches\n // the first value of the token, check if\n // this is the full token.\n if (message[i] === token[0]) {\n if (containsToken(message, token, i)) {\n return i;\n }\n }\n }\n\n return -1;\n}\n\n/**\n * @typedef {Object} MultipartEncodedData\n * @property {ArrayBuffer} data The encoded Multipart Data\n * @property {String} boundary The boundary used to divide pieces of the encoded data\n */\n\n/**\n * Encode one or more DICOM datasets into a single body so it can be\n * sent using the Multipart Content-Type.\n *\n * @param {ArrayBuffer[]} datasets Array containing each file to be encoded in the multipart body, passed as ArrayBuffers.\n * @param {String} [boundary] Optional string to define a boundary between each part of the multipart body. If this is not specified, a random GUID will be generated.\n * @return {MultipartEncodedData} The Multipart encoded data returned as an Object. This contains both the data itself, and the boundary string used to divide it.\n */\nfunction multipartEncode(\n datasets,\n boundary = guid(),\n contentType = \"application/dicom\"\n) {\n const contentTypeString = `Content-Type: ${contentType}`;\n const header = `\\r\\n--${boundary}\\r\\n${contentTypeString}\\r\\n\\r\\n`;\n const footer = `\\r\\n--${boundary}--`;\n const headerArray = stringToUint8Array(header);\n const footerArray = stringToUint8Array(footer);\n const headerLength = headerArray.length;\n const footerLength = footerArray.length;\n\n let length = 0;\n\n // Calculate the total length for the final array\n const contentArrays = datasets.map(datasetBuffer => {\n const contentArray = new Uint8Array(datasetBuffer);\n const contentLength = contentArray.length;\n\n length += headerLength + contentLength + footerLength;\n\n return contentArray;\n });\n\n // Allocate the array\n const multipartArray = new Uint8Array(length);\n\n // Set the initial header\n multipartArray.set(headerArray, 0);\n\n // Write each dataset into the multipart array\n let position = 0;\n contentArrays.forEach(contentArray => {\n const contentLength = contentArray.length;\n\n multipartArray.set(headerArray, position);\n multipartArray.set(contentArray, position + headerLength);\n\n position += headerLength + contentArray.length;\n });\n\n multipartArray.set(footerArray, position);\n\n return {\n data: multipartArray.buffer,\n boundary\n };\n}\n\n/**\n * Decode a Multipart encoded ArrayBuffer and return the components as an Array.\n *\n * @param {ArrayBuffer} response Data encoded as a 'multipart/related' message\n * @returns {Array} The content\n */\nfunction multipartDecode(response) {\n const message = new Uint8Array(response);\n\n /* Set a maximum length to search for the header boundaries, otherwise\n findToken can run for a long time\n */\n const maxSearchLength = 1000;\n\n // First look for the multipart mime header\n let separator = stringToUint8Array(\"\\r\\n\\r\\n\");\n let headerIndex = findToken(message, separator, 0, maxSearchLength);\n if (headerIndex === -1) {\n throw new Error(\"Response message has no multipart mime header\");\n }\n\n const header = uint8ArrayToString(message, 0, headerIndex);\n const boundaryString = identifyBoundary(header);\n if (!boundaryString) {\n throw new Error(\"Header of response message does not specify boundary\");\n }\n\n const boundary = stringToUint8Array(boundaryString);\n const boundaryLength = boundary.length;\n const components = [];\n\n let offset = headerIndex + separator.length;\n\n // Loop until we cannot find any more boundaries\n let boundaryIndex;\n\n while (boundaryIndex !== -1) {\n // Search for the next boundary in the message, starting\n // from the current offset position\n boundaryIndex = findToken(message, boundary, offset);\n\n // If no further boundaries are found, stop here.\n if (boundaryIndex === -1) {\n break;\n }\n\n // Extract data from response message, excluding \"\\r\\n\"\n const spacingLength = 2;\n const length = boundaryIndex - offset - spacingLength;\n const data = response.slice(offset, offset + length);\n\n // Add the data to the array of results\n components.push(data);\n\n // find the end of the boundary\n var boundaryEnd = findToken(\n message,\n separator,\n boundaryIndex + 1,\n maxSearchLength\n );\n if (boundaryEnd === -1) break;\n // Move the offset to the end of the identified boundary\n offset = boundaryEnd + separator.length;\n }\n\n return components;\n}\n\n/**\n * Create a random GUID\n *\n * @return {string}\n */\nfunction guid() {\n function s4() {\n return Math.floor((1 + Math.random()) * 0x10000)\n .toString(16)\n .substring(1);\n }\n return (\n s4() +\n s4() +\n \"-\" +\n s4() +\n \"-\" +\n s4() +\n \"-\" +\n s4() +\n \"-\" +\n s4() +\n s4() +\n s4()\n );\n}\n\nconst message = {\n containsToken: containsToken,\n findToken: findToken,\n identifyBoundary: identifyBoundary,\n uint8ArrayToString: uint8ArrayToString,\n stringToUint8Array: stringToUint8Array,\n multipartEncode: multipartEncode,\n multipartDecode: multipartDecode,\n guid: guid\n};\n\nexport default message;\n","import TID1500 from \"./TID1500\";\nimport TID300 from \"./TID300\";\nimport message from \"./Message\";\nimport addAccessors from \"./addAccessors\";\nimport dicomJson from \"./dicomJson\";\nimport * as orientation from \"./orientation\";\nimport * as compression from \"./compression/rleSingleSamplePerPixel\";\n\nconst utilities = {\n TID1500,\n TID300,\n message,\n addAccessors,\n orientation,\n compression,\n dicomJson\n};\n\nexport default utilities;\n","class Code {\n constructor(options) {\n this[_value] = options.value;\n this[_meaning] = options.meaning;\n this[_schemeDesignator] = options.schemeDesignator;\n this[_schemeVersion] = options.schemeVersion || null;\n }\n\n get value() {\n return this[_value];\n }\n\n get meaning() {\n return this[_meaning];\n }\n\n get schemeDesignator() {\n return this[_schemeDesignator];\n }\n\n get schemeVersion() {\n return this[_schemeVersion];\n }\n}\n\nclass CodedConcept {\n constructor(options) {\n if (options.value === undefined) {\n throw new Error(\"Option 'value' is required for CodedConcept.\");\n }\n if (options.meaning === undefined) {\n throw new Error(\"Option 'meaning' is required for CodedConcept.\");\n }\n if (options.schemeDesignator === undefined) {\n throw new Error(\n \"Option 'schemeDesignator' is required for CodedConcept.\"\n );\n }\n this.CodeValue = options.value;\n this.CodeMeaning = options.meaning;\n this.CodingSchemeDesignator = options.schemeDesignator;\n if (\"schemeVersion\" in options) {\n this.CodingSchemeVersion = options.schemeVersion;\n }\n }\n\n equals(other) {\n if (\n other.value === this.value &&\n other.schemeDesignator === this.schemeDesignator\n ) {\n if (other.schemeVersion && this.schemeVersion) {\n return other.schemeVersion === this.schemeVersion;\n }\n return true;\n }\n return false;\n }\n\n get value() {\n return this.CodeValue;\n }\n\n get meaning() {\n return this.CodeMeaning;\n }\n\n get schemeDesignator() {\n return this.CodingSchemeDesignator;\n }\n\n get schemeVersion() {\n return this.CodingSchemeVersion;\n }\n}\n\nexport { Code, CodedConcept };\n","import { CodedConcept } from \"./coding.js\";\n\nconst ValueTypes = {\n CODE: \"CODE\",\n COMPOSITE: \"COMPOSITE\",\n CONTAINER: \"CONTAINER\",\n DATE: \"DATE\",\n DATETIME: \"DATETIME\",\n IMAGE: \"IMAGE\",\n NUM: \"NUM\",\n PNAME: \"PNAME\",\n SCOORD: \"SCOORD\",\n SCOORD3D: \"SCOORD3D\",\n TCOORD: \"TCOORD\",\n TEXT: \"TEXT\",\n TIME: \"TIME\",\n UIDREF: \"UIDREF\",\n WAVEFORM: \"WAVEFORM\"\n};\nObject.freeze(ValueTypes);\n\nconst GraphicTypes = {\n CIRCLE: \"CIRCLE\",\n ELLIPSE: \"ELLIPSE\",\n ELLIPSOID: \"ELLIPSOID\",\n MULTIPOINT: \"MULTIPOINT\",\n POINT: \"POINT\",\n POLYLINE: \"POLYLINE\"\n};\nObject.freeze(GraphicTypes);\n\nconst GraphicTypes3D = {\n ELLIPSE: \"ELLIPSE\",\n ELLIPSOID: \"ELLIPSOID\",\n MULTIPOINT: \"MULTIPOINT\",\n POINT: \"POINT\",\n POLYLINE: \"POLYLINE\",\n POLYGON: \"POLYGON\"\n};\nObject.freeze(GraphicTypes3D);\n\nconst TemporalRangeTypes = {\n BEGIN: \"BEGIN\",\n END: \"END\",\n MULTIPOINT: \"MULTIPOINT\",\n MULTISEGMENT: \"MULTISEGMENT\",\n POINT: \"POINT\",\n SEGMENT: \"SEGMENT\"\n};\nObject.freeze(TemporalRangeTypes);\n\nconst RelationshipTypes = {\n CONTAINS: \"CONTAINS\",\n HAS_ACQ_CONTENT: \"HAS ACQ CONTENT\",\n HAS_CONCEPT_MOD: \"HAS CONCEPT MOD\",\n HAS_OBS_CONTEXT: \"HAS OBS CONTEXT\",\n HAS_PROPERTIES: \"HAS PROPERTIES\",\n INFERRED_FROM: \"INFERRED FROM\",\n SELECTED_FROM: \"SELECTED FROM\"\n};\nObject.freeze(RelationshipTypes);\n\nconst PixelOriginInterpretations = {\n FRAME: \"FRAME\",\n VOLUME: \"VOLUME\"\n};\nObject.freeze(RelationshipTypes);\n\nfunction isFloat(n) {\n return n === +n && n !== (n | 0);\n}\n\nfunction isInteger(n) {\n return n === +n && n === (n | 0);\n}\n\nfunction zeroPad(value) {\n return (value > 9 ? \"\" : \"0\") + value;\n}\n\nfunction TM(date) {\n // %H%M%S.%f\n const hours = date.getHours();\n const minutes = date.getMinutes();\n const seconds = date.getSeconds();\n const milliseconds = date.getMilliseconds();\n return zeroPad(hours) + zeroPad(minutes) + zeroPad(seconds) + milliseconds;\n}\n\nfunction DA(date) {\n const year = date.getFullYear();\n const month = date.getMonth() + 1;\n const day = date.getDate();\n return year + zeroPad(month) + zeroPad(day);\n}\n\nfunction DT(date) {\n return DA(date) + TM(date);\n}\n\nclass ContentSequence extends Array {\n constructor(...args) {\n super(...args);\n }\n\n // filterBy(options) {\n // }\n}\n\nclass ContentItem {\n constructor(options) {\n if (options.name === undefined) {\n throw new Error(\"Option 'name' is required for ContentItem.\");\n }\n if (options.name.constructor !== CodedConcept) {\n throw new Error(\"Option 'name' must have type CodedConcept.\");\n }\n this.ConceptNameCodeSequence = [options.name];\n if (options.valueType === undefined) {\n throw new Error(\"Option 'valueType' is required for ContentItem.\");\n }\n if (!(Object.values(ValueTypes).indexOf(options.valueType) !== -1)) {\n throw new Error(`Invalid value type ${options.valueType}`);\n }\n this.ValueType = options.valueType;\n if (options.relationshipType !== undefined) {\n if (\n !(\n Object.values(RelationshipTypes).indexOf(\n options.relationshipType\n ) !== -1\n )\n ) {\n throw new Error(\n `Invalid relationship type ${options.relationshipTypes}`\n );\n }\n this.RelationshipType = options.relationshipType;\n }\n // TODO: relationship type is required\n }\n\n // getContentItems(options) {\n // // TODO: filter by name, value type and relationship type\n // return this.ContentSequence;\n // }\n}\n\nclass CodeContentItem extends ContentItem {\n constructor(options) {\n super({\n name: options.name,\n relationshipType: options.relationshipType,\n valueType: ValueTypes.CODE\n });\n if (options.value === undefined) {\n throw new Error(\"Option 'value' is required for CodeContentItem.\");\n }\n if (!(options.value || options.value.constructor === CodedConcept)) {\n throw new Error(\"Option 'value' must have type CodedConcept.\");\n }\n this.ConceptCodeSequence = [options.value];\n }\n}\n\nclass TextContentItem extends ContentItem {\n constructor(options) {\n super({\n name: options.name,\n relationshipType: options.relationshipType,\n valueType: ValueTypes.TEXT\n });\n if (options.value === undefined) {\n throw new Error(\"Option 'value' is required for TextContentItem.\");\n }\n if (\n !(\n typeof options.value === \"string\" ||\n options.value instanceof String\n )\n ) {\n throw new Error(\"Option 'value' must have type String.\");\n }\n this.TextValue = options.value;\n }\n}\n\nclass PNameContentItem extends ContentItem {\n constructor(options) {\n super({\n name: options.name,\n relationshipType: options.relationshipType,\n valueType: ValueTypes.PNAME\n });\n if (options.value === undefined) {\n throw new Error(\"Option 'value' is required for PNameContentItem.\");\n }\n if (\n !(\n typeof options.value === \"string\" ||\n options.value instanceof String\n )\n ) {\n throw new Error(\"Option 'value' must have type String.\");\n }\n this.PersonName = options.value;\n }\n}\n\nclass TimeContentItem extends ContentItem {\n constructor(options) {\n super({\n name: options.name,\n relationshipType: options.relationshipType,\n valueType: ValueTypes.TIME\n });\n if (options.value === undefined) {\n throw new Error(\"Option 'value' is required for TimeContentItem.\");\n }\n if (\n !(\n typeof options.value === \"object\" ||\n options.value instanceof Date\n )\n ) {\n throw new Error(\"Option 'value' must have type Date.\");\n }\n this.Time = TM(options.value);\n }\n}\n\nclass DateContentItem extends ContentItem {\n constructor(options) {\n super({\n name: options.name,\n relationshipType: options.relationshipType,\n valueType: ValueTypes.DATE\n });\n if (options.value === undefined) {\n throw new Error(\"Option 'value' is required for DateContentItem.\");\n }\n if (\n !(\n typeof options.value === \"object\" ||\n options.value instanceof Date\n )\n ) {\n throw new Error(\"Option 'value' must have type Date.\");\n }\n this.Date = DA(options.value);\n }\n}\n\nclass DateTimeContentItem extends ContentItem {\n constructor(options) {\n super({\n name: options.name,\n relationshipType: options.relationshipType,\n valueType: ValueTypes.DATETIME\n });\n if (options.value === undefined) {\n throw new Error(\n \"Option 'value' is required for DateTimeContentItem.\"\n );\n }\n if (\n !(\n typeof options.value === \"object\" ||\n options.value instanceof Date\n )\n ) {\n throw new Error(\"Option 'value' must have type Date.\");\n }\n this.DateTime = DT(otions.value);\n }\n}\n\nclass UIDRefContentItem extends ContentItem {\n constructor(options) {\n super({\n name: options.name,\n relationshipType: options.relationshipType,\n valueType: ValueTypes.UIDREF\n });\n if (options.value === undefined) {\n throw new Error(\n \"Option 'value' is required for UIDRefContentItem.\"\n );\n }\n if (\n !(\n typeof options.value === \"string\" ||\n options.value instanceof String\n )\n ) {\n throw new Error(\"Option 'value' must have type String.\");\n }\n this.UID = options.value;\n }\n}\n\nclass NumContentItem extends ContentItem {\n constructor(options) {\n super({\n name: options.name,\n relationshipType: options.relationshipType,\n valueType: ValueTypes.NUM\n });\n if (options.value !== undefined) {\n if (\n !(\n typeof options.value === \"number\" ||\n options.value instanceof Number\n )\n ) {\n throw new Error(\"Option 'value' must have type Number.\");\n }\n if (options.unit === undefined) {\n throw new Error(\n \"Option 'unit' is required for NumContentItem with 'value'.\"\n );\n }\n if (options.unit.constructor !== CodedConcept) {\n throw new Error(\"Option 'unit' must have type CodedConcept.\");\n }\n const item = {};\n item.NumericValue = options.value;\n if (isFloat(options.value)) {\n item.FloatingPointValue = options.value;\n }\n item.MeasurementUnitsCodeSequence = [options.unit];\n this.MeasuredValueSequence = [item];\n } else if (options.qualifier !== undefined) {\n if (\n !(\n options.qualifier ||\n options.qualifier.constructor === CodedConcept\n )\n ) {\n throw new Error(\n \"Option 'qualifier' must have type CodedConcept.\"\n );\n }\n this.NumericValueQualifierCodeSequence = [options.qualifier];\n } else {\n throw new Error(\n \"Either option 'value' or 'qualifier' is required for NumContentItem.\"\n );\n }\n }\n}\n\nclass ContainerContentItem extends ContentItem {\n constructor(options) {\n super({\n name: options.name,\n relationshipType: options.relationshipType,\n valueType: ValueTypes.CONTAINER\n });\n if (options.isContentContinuous !== undefined) {\n this.ContinuityOfContent = \"CONTINUOUS\";\n } else {\n this.ContinuityOfContent = \"SEPARATE\";\n }\n if (options.templateID !== undefined) {\n if (\n !(\n typeof options.templateID === \"string\" ||\n options.templateID instanceof String\n )\n ) {\n throw new Error(\"Option 'templateID' must have type String.\");\n }\n const item = {};\n item.MappingResource = \"DCMR\";\n item.TemplateIdentifier = options.templateID;\n this.ContentTemplateSequence = [item];\n }\n }\n}\n\nclass CompositeContentItem extends ContentItem {\n constructor(options) {\n super({\n name: options.name,\n relationshipType: options.relationshipType,\n valueType: ValueTypes.COMPOSITE\n });\n if (options.referencedSOPClassUID === undefined) {\n throw new Error(\n \"Option 'referencedSOPClassUID' is required for CompositeContentItem.\"\n );\n }\n if (options.referencedSOPInstanceUID === undefined) {\n throw new Error(\n \"Option 'referencedSOPInstanceUID' is required for CompositeContentItem.\"\n );\n }\n if (\n !(\n typeof options.referencedSOPClassUID === \"string\" ||\n options.referencedSOPClassUID instanceof String\n )\n ) {\n throw new Error(\n \"Option 'referencedSOPClassUID' must have type String.\"\n );\n }\n if (\n !(\n typeof options.referencedSOPInstanceUID === \"string\" ||\n options.referencedSOPInstanceUID instanceof String\n )\n ) {\n throw new Error(\n \"Option 'referencedSOPInstanceUID' must have type String.\"\n );\n }\n const item = {};\n item.ReferencedSOPClassUID = options.referencedSOPClassUID;\n item.ReferencedSOPInstanceUID = options.referencedSOPInstanceUID;\n this.ReferenceSOPSequence = [item];\n }\n}\n\nclass ImageContentItem extends ContentItem {\n constructor(options) {\n super({\n name: options.name,\n relationshipType: options.relationshipType,\n valueType: ValueTypes.IMAGE\n });\n if (options.referencedSOPClassUID === undefined) {\n throw new Error(\n \"Option 'referencedSOPClassUID' is required for ImageContentItem.\"\n );\n }\n if (options.referencedSOPInstanceUID === undefined) {\n throw new Error(\n \"Option 'referencedSOPInstanceUID' is required for ImageContentItem.\"\n );\n }\n if (\n !(\n typeof options.referencedSOPClassUID === \"string\" ||\n options.referencedSOPClassUID instanceof String\n )\n ) {\n throw new Error(\n \"Option 'referencedSOPClassUID' must have type String.\"\n );\n }\n if (\n !(\n typeof options.referencedSOPInstanceUID === \"string\" ||\n options.referencedSOPInstanceUID instanceof String\n )\n ) {\n throw new Error(\n \"Option 'referencedSOPInstanceUID' must have type String.\"\n );\n }\n const item = {};\n item.ReferencedSOPClassUID = options.referencedSOPClassUID;\n item.ReferencedSOPInstanceUID = options.referencedSOPInstanceUID;\n if (options.referencedFrameNumbers !== undefined) {\n if (\n !(\n typeof options.referencedFrameNumbers === \"object\" ||\n options.referencedFrameNumbers instanceof Array\n )\n ) {\n throw new Error(\n \"Option 'referencedFrameNumbers' must have type Array.\"\n );\n }\n // FIXME: value multiplicity\n item.ReferencedFrameNumber = options.referencedFrameNumbers;\n }\n if (options.referencedFrameSegmentNumber !== undefined) {\n if (\n !(\n typeof options.referencedSegmentNumbers === \"object\" ||\n options.referencedSegmentNumbers instanceof Array\n )\n ) {\n throw new Error(\n \"Option 'referencedSegmentNumbers' must have type Array.\"\n );\n }\n // FIXME: value multiplicity\n item.ReferencedSegmentNumber = options.referencedSegmentNumbers;\n }\n this.ReferencedSOPSequence = [item];\n }\n}\n\nclass ScoordContentItem extends ContentItem {\n constructor(options) {\n super({\n name: options.name,\n relationshipType: options.relationshipType,\n valueType: ValueTypes.SCOORD\n });\n if (options.graphicType === undefined) {\n throw new Error(\n \"Option 'graphicType' is required for ScoordContentItem.\"\n );\n }\n if (\n !(\n typeof options.graphicType === \"string\" ||\n options.graphicType instanceof String\n )\n ) {\n throw new Error(\n \"Option 'graphicType' of ScoordContentItem must have type String.\"\n );\n }\n if (options.graphicData === undefined) {\n throw new Error(\n \"Option 'graphicData' is required for ScoordContentItem.\"\n );\n }\n if (\n !(\n typeof options.graphicData === \"object\" ||\n options.graphicData instanceof Array\n )\n ) {\n throw new Error(\n \"Option 'graphicData' of ScoordContentItem must have type Array.\"\n );\n }\n if (Object.values(GraphicTypes).indexOf(options.graphicType) === -1) {\n throw new Error(`Invalid graphic type '${options.graphicType}'.`);\n }\n if (options.graphicData[0] instanceof Array) {\n options.graphicData = [].concat.apply([], options.graphicData);\n }\n this.GraphicData = options.graphicData;\n options.pixelOriginInterpretation =\n options.pixelOriginInterpretation ||\n PixelOriginInterpretations.VOLUME;\n if (\n !(\n typeof options.pixelOriginInterpretation === \"string\" ||\n options.pixelOriginInterpretation instanceof String\n )\n ) {\n throw new Error(\n \"Option 'pixelOriginInterpretation' must have type String.\"\n );\n }\n if (\n Object.values(PixelOriginInterpretations).indexOf(\n options.pixelOriginInterpretation\n ) === -1\n ) {\n throw new Error(\n `Invalid pixel origin interpretation '${options.pixelOriginInterpretation}'.`\n );\n }\n if (options.fiducialUID !== undefined) {\n if (\n !(\n typeof options.fiducialUID === \"string\" ||\n options.fiducialUID instanceof String\n )\n ) {\n throw new Error(\"Option 'fiducialUID' must have type String.\");\n }\n this.FiducialUID = options.fiducialUID;\n }\n }\n}\n\nclass Scoord3DContentItem extends ContentItem {\n constructor(options) {\n super({\n name: options.name,\n relationshipType: options.relationshipType,\n valueType: ValueTypes.SCOORD3D\n });\n if (options.graphicType === undefined) {\n throw new Error(\n \"Option 'graphicType' is required for Scoord3DContentItem.\"\n );\n }\n if (\n !(\n typeof options.graphicType === \"string\" ||\n options.graphicType instanceof String\n )\n ) {\n throw new Error(\"Option 'graphicType' must have type String.\");\n }\n if (options.graphicData === undefined) {\n throw new Error(\n \"Option 'graphicData' is required for Scoord3DContentItem.\"\n );\n }\n if (\n !(\n typeof options.graphicData === \"object\" ||\n options.graphicData instanceof Array\n )\n ) {\n throw new Error(\"Option 'graphicData' must have type Array.\");\n }\n if (Object.values(GraphicTypes3D).indexOf(options.graphicType) === -1) {\n throw new Error(`Invalid graphic type '${options.graphicType}'.`);\n }\n if (options.graphicData[0] instanceof Array) {\n options.graphicData = [].concat.apply([], options.graphicData);\n }\n this.GraphicType = options.graphicType;\n this.GraphicData = options.graphicData;\n if (options.frameOfReferenceUID === undefined) {\n throw new Error(\n \"Option 'frameOfReferenceUID' is required for Scoord3DContentItem.\"\n );\n }\n if (\n !(\n typeof options.frameOfReferenceUID === \"string\" ||\n options.frameOfReferenceUID instanceof String\n )\n ) {\n throw new Error(\n \"Option 'frameOfReferenceUID' must have type String.\"\n );\n }\n this.ReferencedFrameOfReferenceUID = options.frameOfReferenceUID;\n if (\"fiducialUID\" in options) {\n if (\n !(\n typeof options.fiducialUID === \"string\" ||\n options.fiducialUID instanceof String\n )\n ) {\n throw new Error(\"Option 'fiducialUID' must have type String.\");\n }\n this.FiducialUID = fiducialUID;\n }\n }\n}\n\nclass TcoordContentItem extends ContentItem {\n constructor(options) {\n super({\n name: options.name,\n relationshipType: options.relationshipType,\n valueType: ValueTypes.TCOORD\n });\n if (options.temporalRangeType === undefined) {\n throw new Error(\n \"Option 'temporalRangeType' is required for TcoordContentItem.\"\n );\n }\n if (\n Object.values(TemporalRangeTypes).indexOf(\n options.temporalRangeType\n ) === -1\n ) {\n throw new Error(\n `Invalid temporal range type '${options.temporalRangeType}'.`\n );\n }\n if (options.referencedSamplePositions === undefined) {\n if (\n !(\n typeof options.referencedSamplePositions === \"object\" ||\n options.referencedSamplePositions instanceof Array\n )\n ) {\n throw new Error(\n \"Option 'referencedSamplePositions' must have type Array.\"\n );\n }\n // TODO: ensure values are integers\n this.ReferencedSamplePositions = options.referencedSamplePositions;\n } else if (options.referencedTimeOffsets === undefined) {\n if (\n !(\n typeof options.referencedTimeOffsets === \"object\" ||\n options.referencedTimeOffsets instanceof Array\n )\n ) {\n throw new Error(\n \"Option 'referencedTimeOffsets' must have type Array.\"\n );\n }\n // TODO: ensure values are floats\n this.ReferencedTimeOffsets = options.referencedTimeOffsets;\n } else if (options.referencedDateTime === undefined) {\n if (\n !(\n typeof options.referencedDateTime === \"object\" ||\n options.referencedDateTime instanceof Array\n )\n ) {\n throw new Error(\n \"Option 'referencedDateTime' must have type Array.\"\n );\n }\n this.ReferencedDateTime = options.referencedDateTime;\n } else {\n throw new Error(\n \"One of the following options is required for TcoordContentItem: \" +\n \"'referencedSamplePositions', 'referencedTimeOffsets', or \" +\n \"'referencedDateTime'.\"\n );\n }\n }\n}\n\nexport {\n CodeContentItem,\n ContainerContentItem,\n ContentSequence,\n CompositeContentItem,\n DateContentItem,\n DateTimeContentItem,\n GraphicTypes,\n GraphicTypes3D,\n ImageContentItem,\n NumContentItem,\n PNameContentItem,\n PixelOriginInterpretations,\n RelationshipTypes,\n ScoordContentItem,\n Scoord3DContentItem,\n TcoordContentItem,\n TemporalRangeTypes,\n TextContentItem,\n TimeContentItem,\n UIDRefContentItem,\n ValueTypes\n};\n","import { CodedConcept } from \"./coding.js\";\nimport {\n CodeContentItem,\n CompositeContentItem,\n ContentSequence,\n GraphicTypes,\n GraphicTypes3D,\n ImageContentItem,\n NumContentItem,\n PixelOriginInterpretations,\n RelationshipTypes,\n ScoordContentItem,\n Scoord3DContentItem,\n UIDRefContentItem\n} from \"./valueTypes.js\";\n\nclass LongitudinalTemporalOffsetFromEvent extends NumContentItem {\n constructor(options) {\n super({\n name: new CodedConcept({\n value: \"128740\",\n meaning: \"Longitudinal Temporal Offset from Event\",\n schemeDesignator: \"DCM\"\n }),\n value: options.value,\n unit: options.unit,\n relationshipType: RelationshipTypes.HAS_OBS_CONTEXT\n });\n this.ContentSequence = new ContentSequence();\n const item = new CodeContentItem({\n name: new CodedConcept({\n value: \"128741\",\n meaning: \"Longitudinal Temporal Event Type\",\n schemeDesignator: \"DCM\"\n }),\n value: options.eventType,\n relationshipType: RelationshipTypes.HAS_CONCEPT_MOD\n });\n this.ContentSequence.push(item);\n }\n}\n\nclass SourceImageForRegion extends ImageContentItem {\n constructor(options) {\n super({\n name: new CodedConcept({\n value: \"121324\",\n meaning: \"Source Image\",\n schemeDesignator: \"DCM\"\n }),\n referencedSOPClassUID: options.referencedSOPClassUID,\n referencedSOPInstanceUID: options.referencedSOPInstanceUID,\n referencedFrameNumbers: options.referencedFrameNumbers,\n relationshipType: RelationshipTypes.SELECTED_FROM\n });\n }\n}\n\nclass SourceImageForSegmentation extends ImageContentItem {\n constructor(options) {\n super({\n name: new CodedConcept({\n value: \"121233\",\n meaning: \"Source Image for Segmentation\",\n schemeDesignator: \"DCM\"\n }),\n referencedSOPClassUID: options.referencedSOPClassUID,\n referencedSOPInstanceUID: options.referencedSOPInstanceUID,\n referencedFrameNumbers: options.referencedFrameNumbers,\n relationshipType: RelationshipTypes.SELECTED_FROM\n });\n }\n}\n\nclass SourceSeriesForSegmentation extends UIDRefContentItem {\n constructor(options) {\n super({\n name: new CodedConcept({\n value: \"121232\",\n meaning: \"Source Series for Segmentation\",\n schemeDesignator: \"DCM\"\n }),\n value: options.referencedSeriesInstanceUID,\n relationshipType: RelationshipTypes.CONTAINS\n });\n }\n}\n\nclass ImageRegion extends ScoordContentItem {\n constructor(options) {\n super({\n name: new CodedConcept({\n value: \"111030\",\n meaning: \"Image Region\",\n schemeDesignator: \"DCM\"\n }),\n graphicType: options.graphicType,\n graphicData: options.graphicData,\n pixelOriginInterpretation: options.pixelOriginInterpretation,\n relationshipType: RelationshipTypes.CONTAINS\n });\n if (options.graphicType === GraphicTypes.MULTIPOINT) {\n throw new Error(\n \"Graphic type 'MULTIPOINT' is not valid for region.\"\n );\n }\n if (options.sourceImage === undefined) {\n throw Error(\"Option 'sourceImage' is required for ImageRegion.\");\n }\n if (\n !(\n options.sourceImage ||\n options.sourceImage.constructor === SourceImageForRegion\n )\n ) {\n throw new Error(\n \"Option 'sourceImage' of ImageRegion must have type \" +\n \"SourceImageForRegion.\"\n );\n }\n this.ContentSequence = new ContentSequence();\n this.ContentSequence.push(options.sourceImage);\n }\n}\n\nclass ImageRegion3D extends Scoord3DContentItem {\n constructor(options) {\n super({\n name: new CodedConcept({\n value: \"111030\",\n meaning: \"Image Region\",\n schemeDesignator: \"DCM\"\n }),\n graphicType: options.graphicType,\n graphicData: options.graphicData,\n frameOfReferenceUID: options.frameOfReferenceUID,\n relationshipType: RelationshipTypes.CONTAINS\n });\n if (options.graphicType === GraphicTypes3D.MULTIPOINT) {\n throw new Error(\n \"Graphic type 'MULTIPOINT' is not valid for region.\"\n );\n }\n if (options.graphicType === GraphicTypes3D.ELLIPSOID) {\n throw new Error(\n \"Graphic type 'ELLIPSOID' is not valid for region.\"\n );\n }\n }\n}\n\nclass VolumeSurface extends Scoord3DContentItem {\n constructor(options) {\n super({\n name: new CodedConcept({\n value: \"121231\",\n meaning: \"Volume Surface\",\n schemeDesignator: \"DCM\"\n }),\n graphicType: options.graphicType,\n graphicData: options.graphicData,\n frameOfFeferenceUID: options.frameOfFeferenceUID,\n relationshipType: RelationshipTypes.CONTAINS\n });\n if (options.graphicType !== GraphicTypes3D.ELLIPSOID) {\n throw new Error(\n \"Graphic type for volume surface must be 'ELLIPSOID'.\"\n );\n }\n this.ContentSequence = new ContentSequence();\n if (options.sourceImages) {\n options.sourceImages.forEach(image => {\n if (!(image || image.constructor === SourceImageForRegion)) {\n throw new Error(\n \"Items of option 'sourceImages' of VolumeSurface \" +\n \"must have type SourceImageForRegion.\"\n );\n }\n this.ContentSequence.push(image);\n });\n } else if (options.sourceSeries) {\n if (\n !(\n options.sourceSeries ||\n options.sourceSeries.constructor === SourceSeriesForRegion\n )\n ) {\n throw new Error(\n \"Option 'sourceSeries' of VolumeSurface \" +\n \"must have type SourceSeriesForRegion.\"\n );\n }\n this.ContentSequence.push(options.sourceSeries);\n } else {\n throw new Error(\n \"One of the following two options must be provided: \" +\n \"'sourceImage' or 'sourceSeries'.\"\n );\n }\n }\n}\n\nclass ReferencedRealWorldValueMap extends CompositeContentItem {\n constructor(options) {\n super({\n name: new CodedConcept({\n value: \"126100\",\n meaning: \"Real World Value Map used for measurement\",\n schemeDesignator: \"DCM\"\n }),\n referencedSOPClassUID: option.referencedSOPClassUID,\n referencedSOPInstanceUID: options.referencedSOPInstanceUID,\n relationshipType: RelationshipTypes.CONTAINS\n });\n }\n}\n\nclass FindingSite extends CodeContentItem {\n constructor(options) {\n super({\n name: new CodedConcept({\n value: \"363698007\",\n meaning: \"Finding Site\",\n schemeDesignator: \"SCT\"\n }),\n value: options.anatomicLocation,\n relationshipType: RelationshipTypes.HAS_CONCEPT_MOD\n });\n this.ContentSequence = new ContentSequence();\n if (options.laterality) {\n const item = new CodeContentItem({\n name: new CodedConcept({\n value: \"272741003\",\n meaning: \"Laterality\",\n schemeDesignator: \"SCT\"\n }),\n value: options.laterality,\n relationshipType: RelationshipTypes.HAS_CONCEPT_MOD\n });\n this.ContentSequence.push(item);\n }\n if (options.topographicalModifier) {\n const item = new CodeContentItem({\n name: new CodedConcept({\n value: \"106233006\",\n meaning: \"Topographical Modifier\",\n schemeDesignator: \"SCT\"\n }),\n value: options.topographicalModifier,\n relationshipType: RelationshipTypes.HAS_CONCEPT_MOD\n });\n this.ContentSequence.push(item);\n }\n }\n}\n\nclass ReferencedSegmentationFrame extends ContentSequence {\n constructor(options) {\n if (options.sopClassUID === undefined) {\n throw new Error(\n \"Option 'sopClassUID' is required for ReferencedSegmentationFrame.\"\n );\n }\n if (options.sopInstanceUID === undefined) {\n throw new Error(\n \"Option 'sopInstanceUID' is required for ReferencedSegmentationFrame.\"\n );\n }\n if (options.frameNumber === undefined) {\n throw new Error(\n \"Option 'frameNumber' is required for ReferencedSegmentationFrame.\"\n );\n }\n if (options.segmentNumber === undefined) {\n throw new Error(\n \"Option 'segmentNumber' is required for ReferencedSegmentationFrame.\"\n );\n }\n if (options.sourceImage === undefined) {\n throw new Error(\n \"Option 'sourceImage' is required for ReferencedSegmentationFrame.\"\n );\n }\n super();\n const segmentationItem = ImageContentItem({\n name: new CodedConcept({\n value: \"121214\",\n meaning: \"Referenced Segmentation Frame\",\n schemeDesignator: \"DCM\"\n }),\n referencedSOPClassUid: options.sopClassUid,\n referencedSOPInstanceUid: options.sopInstanceUid,\n referencedFrameNumber: options.frameNumber,\n referencedSegmentNumber: options.segmentNumber\n });\n this.push(segmentationItem);\n if (options.sourceImage.constructor !== SourceImageForSegmentation) {\n throw new Error(\n \"Option 'sourceImage' must have type SourceImageForSegmentation.\"\n );\n }\n this.push(sourceImage);\n }\n}\n\nclass ReferencedSegmentation extends ContentSequence {\n constructor(options) {\n if (options.sopClassUID === undefined) {\n throw new Error(\n \"Option 'sopClassUID' is required for ReferencedSegmentation.\"\n );\n }\n if (options.sopInstanceUID === undefined) {\n throw new Error(\n \"Option 'sopInstanceUID' is required for ReferencedSegmentation.\"\n );\n }\n if (options.frameNumbers === undefined) {\n throw new Error(\n \"Option 'frameNumbers' is required for ReferencedSegmentation.\"\n );\n }\n if (options.segmentNumber === undefined) {\n throw new Error(\n \"Option 'segmentNumber' is required for ReferencedSegmentation.\"\n );\n }\n super();\n const segmentationItem = new ImageContentItem({\n name: new CodedConcept({\n value: \"121191\",\n meaning: \"Referenced Segment\",\n schemeDesignator: \"DCM\"\n }),\n referencedSOPClassUid: options.sopClassUid,\n referencedSOPInstanceUid: options.sopInstanceUid,\n referencedFrameNumber: options.frameNumbers,\n referencedSegmentNumber: options.segmentNumber\n });\n this.push(segmentationItem);\n if (options.sourceImages !== undefined) {\n options.sourceImages.forEach(image => {\n if (\n !image ||\n image.constructor !== SourceImageForSegmentation\n ) {\n throw new Error(\n \"Items of option 'sourceImages' must have type \" +\n \"SourceImageForSegmentation.\"\n );\n }\n this.push(image);\n });\n } else if (options.sourceSeries !== undefined) {\n if (\n options.sourceSeries.constructor !== SourceSeriesForSegmentation\n ) {\n throw new Error(\n \"Option 'sourceSeries' must have type SourceSeriesForSegmentation.\"\n );\n }\n this.push(sourceSeries);\n } else {\n throw new Error(\n \"One of the following two options must be provided: \" +\n \"'sourceImages' or 'sourceSeries'.\"\n );\n }\n }\n}\n\nexport {\n FindingSite,\n LongitudinalTemporalOffsetFromEvent,\n ReferencedRealWorldValueMap,\n ImageRegion,\n ImageRegion3D,\n ReferencedSegmentation,\n ReferencedSegmentationFrame,\n VolumeSurface,\n SourceImageForRegion,\n SourceImageForSegmentation,\n SourceSeriesForSegmentation\n};\n","import { Code, CodedConcept } from \"./coding.js\";\nimport {\n CodeContentItem,\n CompositeContentItem,\n ContainerContentItem,\n ContentSequence,\n GraphicTypes,\n GraphicTypes3D,\n ImageContentItem,\n NumContentItem,\n PixelOriginInterpretations,\n PNameContentItem,\n RelationshipTypes,\n ScoordContentItem,\n Scoord3DContentItem,\n TextContentItem,\n UIDRefContentItem\n} from \"./valueTypes.js\";\nimport {\n FindingSite,\n LongitudinalTemporalOffsetFromEvent,\n ImageRegion,\n ImageRegion3D,\n ReferencedSegmentation,\n ReferencedSegmentationFrame,\n VolumeSurface,\n ReferencedRealWorldValueMap,\n SourceImageForSegmentation,\n SourceSeriesForSegmentation\n} from \"./contentItems.js\";\n\nclass Template extends ContentSequence {\n constructor(...args) {\n super(...args);\n }\n}\n\nclass Measurement extends Template {\n constructor(options) {\n super();\n const valueItem = new NumContentItem({\n name: options.name,\n value: options.value,\n unit: options.unit,\n qualifier: options.qualifier,\n relationshipType: RelationshipTypes.CONTAINS\n });\n valueItem.ContentSequence = new ContentSequence();\n if (options.trackingIdentifier === undefined) {\n throw new Error(\n \"Option 'trackingIdentifier' is required for Measurement.\"\n );\n }\n if (options.trackingIdentifier.constructor === TrackingIdentifier) {\n throw new Error(\n \"Option 'trackingIdentifier' must have type TrackingIdentifier.\"\n );\n }\n valueItem.ContentSequence.push(...options.trackingIdentifier);\n if (options.method !== undefined) {\n const methodItem = new CodeContentItem({\n name: new CodedConcept({\n value: \"370129005\",\n meaning: \"Measurement Method\",\n schemeDesignator: \"SCT\"\n }),\n value: options.method,\n relationshipType: RelationshipTypes.HAS_CONCEPT_MOD\n });\n valueItem.ContentSequence.push(methodItem);\n }\n if (options.derivation !== undefined) {\n const derivationItem = new CodeContentItem({\n name: new CodedConcept({\n value: \"121401\",\n meaning: \"Derivation\",\n schemeDesignator: \"DCM\"\n }),\n value: options.derivation,\n relationshipType: RelationshipTypes.HAS_CONCEPT_MOD\n });\n valueItem.ContentSequence.push(derivationItem);\n }\n if (options.findingSites !== undefined) {\n if (\n !(\n typeof options.findingSites === \"object\" ||\n options.findingSites instanceof Array\n )\n ) {\n throw new Error(\"Option 'findingSites' must have type Array.\");\n }\n options.findingSites.forEach(site => {\n if (!site || site.constructor !== FindingSite) {\n throw new Error(\n \"Items of option 'findingSites' must have type FindingSite.\"\n );\n }\n valueItem.ContentSequence.push(site);\n });\n }\n if (options.properties !== undefined) {\n if (options.properties.constructor !== MeasurementProperties) {\n throw new Error(\n \"Option 'properties' must have type MeasurementProperties.\"\n );\n }\n valueItem.ContentSequence.push(...options.properties);\n }\n if (options.referencedRegions !== undefined) {\n if (\n !(\n typeof options.referencedRegions === \"object\" ||\n options.referencedRegions instanceof Array\n )\n ) {\n throw new Error(\n \"Option 'referencedRegions' must have type Array.\"\n );\n }\n options.referencedRegions.forEach(region => {\n if (\n !region ||\n (region.constructor !== ImageRegion &&\n region.constructor !== ImageRegion3D)\n ) {\n throw new Error(\n \"Items of option 'referencedRegion' must have type \" +\n \"ImageRegion or ImageRegion3D.\"\n );\n }\n valueItem.ContentSequence.push(region);\n });\n } else if (options.referencedVolume !== undefined) {\n if (options.referencedVolume.constructor !== VolumeSurface) {\n throw new Error(\n \"Option 'referencedVolume' must have type VolumeSurface.\"\n );\n }\n valueItem.ContentSequence.push(options.referencedVolume);\n } else if (options.referencedSegmentation !== undefined) {\n if (\n options.referencedSegmentation.constructor !==\n ReferencedSegmentation &&\n options.referencedSegmentation.constructor !==\n ReferencedSegmentationFrame\n ) {\n throw new Error(\n \"Option 'referencedSegmentation' must have type \" +\n \"ReferencedSegmentation or ReferencedSegmentationFrame.\"\n );\n }\n valueItem.ContentSequence.push(options.referencedSegmentation);\n }\n if (options.referencedRealWorldValueMap !== undefined) {\n if (\n options.referencedRealWorldValueMap.constructor !==\n ReferencedRealWorldValueMap\n ) {\n throw new Error(\n \"Option 'referencedRealWorldValueMap' must have type \" +\n \"ReferencedRealWorldValueMap.\"\n );\n }\n valueItem.ContentSequence.push(options.referencedRealWorldValueMap);\n }\n if (options.algorithmId !== undefined) {\n if (options.algorithmId.constructor !== AlgorithmIdentification) {\n throw new Error(\n \"Option 'algorithmId' must have type AlgorithmIdentification.\"\n );\n }\n valueItem.ContentSequence.push(...options.algorithmId);\n }\n this.push(valueItem);\n }\n}\n\nclass MeasurementProperties extends Template {\n constructor(options) {\n super();\n if (options.normality !== undefined) {\n const normalityItem = new CodeContentItem({\n name: new CodedConcept({\n value: \"121402\",\n schemeDesignator: \"DCM\",\n meaning: \"Normality\"\n }),\n value: options.normality,\n relationshipType: RelationshipTypes.HAS_PROPERTIES\n });\n this.push(normalityItem);\n }\n if (options.measurementStatisticalProperties !== undefined) {\n if (\n options.measurementStatisticalProperties.constructor !==\n MeasurementStatisticalProperties\n ) {\n throw new Error(\n \"Option 'measurmentStatisticalProperties' must have type \" +\n \"MeasurementStatisticalProperties.\"\n );\n }\n this.push(...measurementStatisticalProperties);\n }\n if (options.normalRangeProperties !== undefined) {\n if (\n options.normalRangeProperties.constructor !==\n NormalRangeProperties\n ) {\n throw new Error(\n \"Option 'normalRangeProperties' must have type NormalRangeProperties.\"\n );\n }\n this.push(...normalRangeProperties);\n }\n if (options.levelOfSignificance !== undefined) {\n const levelOfSignificanceItem = new CodeContentItem({\n name: new CodedConcept({\n value: \"121403\",\n schemeDesignator: \"DCM\",\n meaning: \"Level of Significance\"\n }),\n value: options.levelOfSignificance,\n relationshipType: RelationshipTypes.HAS_PROPERTIES\n });\n this.push(levelOfSignificanceItem);\n }\n if (options.selectionStatus !== undefined) {\n const selectionStatusItem = new CodeContentItem({\n name: new CodedConcept({\n value: \"121404\",\n schemeDesignator: \"DCM\",\n meaning: \"Selection Status\"\n }),\n value: options.selectionStatus,\n relationshipType: RelationshipTypes.HAS_PROPERTIES\n });\n this.push(selectionStatusItem);\n }\n if (options.upperMeasurementUncertainty !== undefined) {\n const upperMeasurementUncertaintyItem = new CodeContentItem({\n name: new CodedConcept({\n value: \"R-00364\",\n schemeDesignator: \"SRT\",\n meaning: \"Range of Upper Measurement Uncertainty\"\n }),\n value: options.upperMeasurementUncertainty,\n relationshipType: RelationshipTypes.HAS_PROPERTIES\n });\n this.push(upperMeasurementUncertaintyItem);\n }\n if (options.lowerMeasurementUncertainty !== undefined) {\n const lowerMeasurementUncertaintyItem = new CodeContentItem({\n name: new CodedConcept({\n value: \"R-00362\",\n schemeDesignator: \"SRT\",\n meaning: \"Range of Lower Measurement Uncertainty\"\n }),\n value: options.lowerMeasurementUncertainty,\n relationshipType: RelationshipTypes.HAS_PROPERTIES\n });\n this.push(lowerMeasurementUncertaintyItem);\n }\n }\n}\n\nclass MeasurementStatisticalProperties extends Template {\n constructor(options) {\n super();\n if (options.values === undefined) {\n throw new Error(\n \"Option 'values' is required for MeasurementStatisticalProperties.\"\n );\n }\n if (\n !(\n typeof options.values === \"object\" ||\n options.values instanceof Array\n )\n ) {\n throw new Error(\"Option 'values' must have type Array.\");\n }\n options.values.forEach(value => {\n if (\n !options.concept ||\n options.concept.constructor !== NumContentItem\n ) {\n throw new Error(\n \"Items of option 'values' must have type NumContentItem.\"\n );\n }\n this.push(value);\n });\n if (options.description !== undefined) {\n const descriptionItem = new TextContentItem({\n name: new CodedConcept({\n value: \"121405\",\n schemeDesignator: \"DCM\",\n meaning: \"Population Description\"\n }),\n value: options.authority,\n relationshipType: RelationshipTypes.HAS_PROPERTIES\n });\n this.push(authorityItem);\n }\n if (options.authority !== undefined) {\n const authorityItem = new TextContentItem({\n name: new CodedConcept({\n value: \"121406\",\n schemeDesignator: \"DCM\",\n meaning: \"Population Authority\"\n }),\n value: options.authority,\n relationshipType: RelationshipTypes.HAS_PROPERTIES\n });\n this.push(authorityItem);\n }\n }\n}\n\nclass NormalRangeProperties extends Template {\n constructor(options) {\n super();\n if (options.values === undefined) {\n throw new Error(\n \"Option 'values' is required for NormalRangeProperties.\"\n );\n }\n if (\n !(\n typeof options.values === \"object\" ||\n options.values instanceof Array\n )\n ) {\n throw new Error(\"Option 'values' must have type Array.\");\n }\n options.values.forEach(value => {\n if (\n !options.concept ||\n options.concept.constructor !== NumContentItem\n ) {\n throw new Error(\n \"Items of option 'values' must have type NumContentItem.\"\n );\n }\n this.push(value);\n });\n if (options.description !== undefined) {\n const descriptionItem = new TextContentItem({\n name: new CodedConcept({\n value: \"121407\",\n schemeDesignator: \"DCM\",\n meaning: \"Normal Range Description\"\n }),\n value: options.authority,\n relationshipType: RelationshipTypes.HAS_PROPERTIES\n });\n this.push(authorityItem);\n }\n if (options.authority !== undefined) {\n const authorityItem = new TextContentItem({\n name: new CodedConcept({\n value: \"121408\",\n schemeDesignator: \"DCM\",\n meaning: \"Normal Range Authority\"\n }),\n value: options.authority,\n relationshipType: RelationshipTypes.HAS_PROPERTIES\n });\n this.push(authorityItem);\n }\n }\n}\n\nclass ObservationContext extends Template {\n constructor(options) {\n super();\n if (options.observerPersonContext === undefined) {\n throw new Error(\n \"Option 'observerPersonContext' is required for ObservationContext.\"\n );\n }\n if (options.observerPersonContext.constructor !== ObserverContext) {\n throw new Error(\n \"Option 'observerPersonContext' must have type ObserverContext\"\n );\n }\n this.push(...options.observerPersonContext);\n if (options.observerDeviceContext !== undefined) {\n if (options.observerDeviceContext.constructor !== ObserverContext) {\n throw new Error(\n \"Option 'observerDeviceContext' must have type ObserverContext\"\n );\n }\n this.push(...options.observerDeviceContext);\n }\n if (options.subjectContext !== undefined) {\n if (options.subjectContext.constructor !== SubjectContext) {\n throw new Error(\n \"Option 'subjectContext' must have type SubjectContext\"\n );\n }\n this.push(...options.subjectContext);\n }\n }\n}\n\nclass ObserverContext extends Template {\n constructor(options) {\n super();\n if (options.observerType === undefined) {\n throw new Error(\n \"Option 'observerType' is required for ObserverContext.\"\n );\n } else {\n if (\n options.observerType.constructor !== Code &&\n options.observerType.constructor !== CodedConcept\n ) {\n throw new Error(\n \"Option 'observerType' must have type Code or CodedConcept.\"\n );\n }\n }\n const observerTypeItem = new CodeContentItem({\n name: new CodedConcept({\n value: \"121005\",\n meaning: \"Observer Type\",\n schemeDesignator: \"DCM\"\n }),\n value: options.observerType,\n relationshipType: RelationshipTypes.HAS_OBS_CONTEXT\n });\n this.push(observerTypeItem);\n if (options.observerIdentifyingAttributes === undefined) {\n throw new Error(\n \"Option 'observerIdentifyingAttributes' is required for ObserverContext.\"\n );\n }\n // FIXME\n const person = new CodedConcept({\n value: \"121006\",\n schemeDesignator: \"DCM\",\n meaning: \"Person\"\n });\n const device = new CodedConcept({\n value: \"121007\",\n schemeDesignator: \"DCM\",\n meaning: \"Device\"\n });\n if (person.equals(options.observerType)) {\n if (\n options.observerIdentifyingAttributes.constructor !==\n PersonObserverIdentifyingAttributes\n ) {\n throw new Error(\n \"Option 'observerIdentifyingAttributes' must have type \" +\n \"PersonObserverIdentifyingAttributes for 'Person' observer type.\"\n );\n }\n } else if (device.equals(options.observerType)) {\n if (\n options.observerIdentifyingAttributes.constructor !==\n DeviceObserverIdentifyingAttributes\n ) {\n throw new Error(\n \"Option 'observerIdentifyingAttributes' must have type \" +\n \"DeviceObserverIdentifyingAttributes for 'Device' observer type.\"\n );\n }\n } else {\n throw new Error(\n \"Option 'oberverType' must be either 'Person' or 'Device'.\"\n );\n }\n this.push(...options.observerIdentifyingAttributes);\n }\n}\n\nclass PersonObserverIdentifyingAttributes extends Template {\n constructor(options) {\n super();\n if (options.name === undefined) {\n throw new Error(\n \"Option 'name' is required for PersonObserverIdentifyingAttributes.\"\n );\n }\n const nameItem = new PNameContentItem({\n name: new CodedConcept({\n value: \"121008\",\n meaning: \"Person Observer Name\",\n schemeDesignator: \"DCM\"\n }),\n value: options.name,\n relationshipType: RelationshipTypes.HAS_OBS_CONTEXT\n });\n this.push(nameItem);\n if (options.loginName !== undefined) {\n const loginNameItem = new TextContentItem({\n name: new CodedConcept({\n value: \"128774\",\n meaning: \"Person Observer's Login Name\",\n schemeDesignator: \"DCM\"\n }),\n value: options.loginName,\n relationshipType: RelationshipTypes.HAS_OBS_CONTEXT\n });\n this.push(loginNameItem);\n }\n if (options.organizationName !== undefined) {\n const organizationNameItem = new TextContentItem({\n name: new CodedConcept({\n value: \"121009\",\n meaning: \"Person Observer's Organization Name\",\n schemeDesignator: \"DCM\"\n }),\n value: options.organizationName,\n relationshipType: RelationshipTypes.HAS_OBS_CONTEXT\n });\n this.push(organizationNameItem);\n }\n if (options.roleInOrganization !== undefined) {\n const roleInOrganizationItem = new CodeContentItem({\n name: new CodedConcept({\n value: \"121010\",\n meaning: \"Person Observer's Role in the Organization\",\n schemeDesignator: \"DCM\"\n }),\n value: options.roleInOrganization,\n relationshipType: RelationshipTypes.HAS_OBS_CONTEXT\n });\n this.push(roleInOrganizationItem);\n }\n if (options.roleInProcedure !== undefined) {\n const roleInProcedureItem = new CodeContentItem({\n name: new CodedConcept({\n value: \"121011\",\n meaning: \"Person Observer's Role in this Procedure\",\n schemeDesignator: \"DCM\"\n }),\n value: options.roleInProcedure,\n relationshipType: RelationshipTypes.HAS_OBS_CONTEXT\n });\n this.push(roleInProcedureItem);\n }\n }\n}\n\nclass DeviceObserverIdentifyingAttributes extends Template {\n constructor(options) {\n super();\n if (options.uid === undefined) {\n throw new Error(\n \"Option 'uid' is required for DeviceObserverIdentifyingAttributes.\"\n );\n }\n const deviceObserverItem = new UIDRefContentItem({\n name: new CodedConcept({\n value: \"121012\",\n meaning: \"Device Observer UID\",\n schemeDesignator: \"DCM\"\n }),\n value: options.uid,\n relationshipType: RelationshipTypes.HAS_OBS_CONTEXT\n });\n this.push(deviceObserverItem);\n if (options.manufacturerName !== undefined) {\n const manufacturerNameItem = new TextContentItem({\n name: new CodedConcept({\n value: \"121013\",\n meaning: \"Device Observer Manufacturer\",\n schemeDesignator: \"DCM\"\n }),\n value: options.manufacturerName,\n relationshipType: RelationshipTypes.HAS_OBS_CONTEXT\n });\n this.push(manufacturerNameItem);\n }\n if (options.modelName !== undefined) {\n const modelNameItem = new TextContentItem({\n name: new CodedConcept({\n value: \"121015\",\n meaning: \"Device Observer Model Name\",\n schemeDesignator: \"DCM\"\n }),\n value: options.modelName,\n relationshipType: RelationshipTypes.HAS_OBS_CONTEXT\n });\n this.push(modelNameItem);\n }\n if (options.serialNumber !== undefined) {\n const serialNumberItem = new TextContentItem({\n name: new CodedConcept({\n value: \"121016\",\n meaning: \"Device Observer Serial Number\",\n schemeDesignator: \"DCM\"\n }),\n value: options.serialNumber,\n relationshipType: RelationshipTypes.HAS_OBS_CONTEXT\n });\n this.push(serialNumberItem);\n }\n if (options.physicalLocation !== undefined) {\n const physicalLocationItem = new TextContentItem({\n name: new CodedConcept({\n value: \"121017\",\n meaning:\n \"Device Observer Physical Location During Observation\",\n schemeDesignator: \"DCM\"\n }),\n value: options.physicalLocation,\n relationshipType: RelationshipTypes.HAS_OBS_CONTEXT\n });\n this.push(physicalLocationItem);\n }\n if (options.roleInProcedure !== undefined) {\n const roleInProcedureItem = new CodeContentItem({\n name: new CodedConcept({\n value: \"113876\",\n meaning: \"Device Role in Procedure\",\n schemeDesignator: \"DCM\"\n }),\n value: options.roleInProcedure,\n relationshipType: RelationshipTypes.HAS_OBS_CONTEXT\n });\n this.push(roleInProcedureItem);\n }\n }\n}\n\nclass SubjectContext extends Template {\n constructor(options) {\n super();\n if (options.subjectClass === undefined) {\n throw new Error(\n \"Option 'subjectClass' is required for SubjectContext.\"\n );\n }\n if (options.subjectClassSpecificContext === undefined) {\n throw new Error(\n \"Option 'subjectClassSpecificContext' is required for SubjectContext.\"\n );\n }\n const subjectClassItem = new CodeContentItem({\n name: new CodedConcept({\n value: \"121024\",\n meaning: \"Subject Class\",\n schemeDesignator: \"DCM\"\n }),\n value: options.subjectClass,\n relationshipType: RelationshipTypes.HAS_OBS_CONTEXT\n });\n this.push(subjectClassItem);\n const fetus = new CodedConcept({\n value: \"121026 \",\n schemeDesignator: \"DCM\",\n meaning: \"Fetus\"\n });\n const specimen = new CodedConcept({\n value: \"121027\",\n schemeDesignator: \"DCM\",\n meaning: \"Specimen\"\n });\n const device = new CodedConcept({\n value: \"121192\",\n schemeDesignator: \"DCM\",\n meaning: \"Device Subject\"\n });\n if (fetus.equals(options.subjectClass)) {\n if (\n options.subjectClassSpecificContext.constructor !==\n SubjectContextFetus\n ) {\n throw new Error(\n \"Option 'subjectClass' must have type \" +\n \"SubjectContextFetus for 'Fetus' subject class.\"\n );\n }\n } else if (specimen.equals(options.subjectClass)) {\n if (\n options.subjectClassSpecificContext.constructor !==\n SubjectContextSpecimen\n ) {\n throw new Error(\n \"Option 'subjectClass' must have type \" +\n \"SubjectContextSpecimen for 'Specimen' subject class.\"\n );\n }\n } else if (device.equals(options.subjectClass)) {\n if (\n options.subjectClassSpecificContext.constructor !==\n SubjectContextDevice\n ) {\n throw new Error(\n \"Option 'subjectClass' must have type \" +\n \"SubjectContextDevice for 'Device' subject class.\"\n );\n }\n } else {\n throw new Error(\n \"Option 'subjectClass' must be either 'Fetus', 'Specimen', or 'Device'.\"\n );\n }\n this.push(...options.subjectClassSpecificContext);\n }\n}\n\nclass SubjectContextFetus extends Template {\n constructor(options) {\n super();\n if (options.subjectID === undefined) {\n throw new Error(\n \"Option 'subjectID' is required for SubjectContextFetus.\"\n );\n }\n const subjectIdItem = new TextContentItem({\n name: new CodedConcept({\n value: \"121030\",\n meaning: \"Subject ID\",\n schemeDesignator: \"DCM\"\n }),\n value: options.subjectID,\n relationshipType: RelationshipTypes.HAS_OBS_CONTEXT\n });\n this.push(subjectIdItem);\n }\n}\n\nclass SubjectContextSpecimen extends Template {\n constructor(options) {\n super();\n if (options.uid === undefined) {\n throw new Error(\n \"Option 'uid' is required for SubjectContextSpecimen.\"\n );\n }\n const specimenUidItem = new UIDRefContentItem({\n name: new CodedConcept({\n value: \"121039\",\n meaning: \"Specimen UID\",\n schemeDesignator: \"DCM\"\n }),\n value: options.uid,\n relationshipType: RelationshipTypes.HAS_OBS_CONTEXT\n });\n this.push(specimenUidItem);\n if (options.identifier !== undefined) {\n const specimenIdentifierItem = new TextContentItem({\n name: new CodedConcept({\n value: \"121041\",\n meaning: \"Specimen Identifier\",\n schemeDesignator: \"DCM\"\n }),\n value: options.identifier,\n relationshipType: RelationshipTypes.HAS_OBS_CONTEXT\n });\n this.push(specimenIdentifierItem);\n }\n if (options.containerIdentifier !== undefined) {\n const containerIdentifierItem = new TextContentItem({\n name: new CodedConcept({\n value: \"111700\",\n meaning: \"Specimen Container Identifier\",\n schemeDesignator: \"DCM\"\n }),\n value: options.containerIdentifier,\n relationshipType: RelationshipTypes.HAS_OBS_CONTEXT\n });\n this.push(containerIdentifierItem);\n }\n if (options.specimenType !== undefined) {\n const specimenTypeItem = new CodeContentItem({\n name: new CodedConcept({\n value: \"R-00254\",\n meaning: \"Specimen Type\",\n schemeDesignator: \"DCM\"\n }),\n value: options.specimenType,\n relationshipType: RelationshipTypes.HAS_OBS_CONTEXT\n });\n this.push(specimenTypeItem);\n }\n }\n}\n\nclass SubjectContextDevice extends Template {\n constructor(options) {\n if (options.name === undefined) {\n throw new Error(\n \"Option 'name' is required for SubjectContextDevice.\"\n );\n }\n const deviceNameItem = new TextContentItem({\n name: new CodedConcept({\n value: \"121193\",\n meaning: \"Device Subject Name\",\n schemeDesignator: \"DCM\"\n }),\n value: options.name,\n relationshipType: RelationshipTypes.HAS_OBS_CONTEXT\n });\n this.push(deviceNameItem);\n if (options.uid !== undefined) {\n const deviceUidItem = new UIDRefContentItem({\n name: new CodedConcept({\n value: \"121198\",\n meaning: \"Device Subject UID\",\n schemeDesignator: \"DCM\"\n }),\n value: options.uid,\n relationshipType: RelationshipTypes.HAS_OBS_CONTEXT\n });\n this.push(deviceUidItem);\n }\n if (options.manufacturerName !== undefined) {\n const manufacturerNameItem = new TextContentItem({\n name: new CodedConcept({\n value: \"121194\",\n meaning: \"Device Subject Manufacturer\",\n schemeDesignator: \"DCM\"\n }),\n value: options.manufacturerName,\n relationshipType: RelationshipTypes.HAS_OBS_CONTEXT\n });\n this.push(manufacturerNameItem);\n }\n if (options.modelName !== undefined) {\n const modelNameItem = new TextContentItem({\n name: new CodedConcept({\n value: \"121195\",\n meaning: \"Device Subject Model Name\",\n schemeDesignator: \"DCM\"\n }),\n value: options.modelName,\n relationshipType: RelationshipTypes.HAS_OBS_CONTEXT\n });\n this.push(modelNameItem);\n }\n if (options.serialNumber !== undefined) {\n const serialNumberItem = new TextContentItem({\n name: new CodedConcept({\n value: \"121196\",\n meaning: \"Device Subject Serial Number\",\n schemeDesignator: \"DCM\"\n }),\n value: options.serialNumber,\n relationshipType: RelationshipTypes.HAS_OBS_CONTEXT\n });\n this.push(serialNumberItem);\n }\n if (options.physicalLocation !== undefined) {\n const physicalLocationItem = new TextContentItem({\n name: new CodedConcept({\n value: \"121197\",\n meaning:\n \"Device Subject Physical Location During Observation\",\n schemeDesignator: \"DCM\"\n }),\n value: options.physicalLocation,\n relationshipType: RelationshipTypes.HAS_OBS_CONTEXT\n });\n this.push(physicalLocationItem);\n }\n }\n}\n\nclass LanguageOfContentItemAndDescendants extends Template {\n constructor(options) {\n super();\n if (options.language === undefined) {\n options.language = new CodedConcept({\n value: \"en-US\",\n schemeDesignator: \"RFC5646\",\n meaning: \"English (United States)\"\n });\n }\n const languageItem = new CodeContentItem({\n name: new CodedConcept({\n value: \"121049\",\n meaning: \"Language of Content Item and Descendants\",\n schemeDesignator: \"DCM\"\n }),\n value: options.language,\n relationshipType: RelationshipTypes.HAS_CONCEPT_MOD\n });\n this.push(languageItem);\n }\n}\n\nclass _MeasurementsAndQualitatitiveEvaluations extends Template {\n constructor(options) {\n super();\n const groupItem = new ContainerContentItem({\n name: new CodedConcept({\n value: \"125007\",\n meaning: \"Measurement Group\",\n schemeDesignator: \"DCM\"\n }),\n relationshipType: RelationshipTypes.CONTAINS\n });\n groupItem.ContentSequence = new ContentSequence();\n if (options.trackingIdentifier === undefined) {\n throw new Error(\n \"Option 'trackingIdentifier' is required for measurements group.\"\n );\n }\n if (options.trackingIdentifier.constructor !== TrackingIdentifier) {\n throw new Error(\n \"Option 'trackingIdentifier' must have type TrackingIdentifier.\"\n );\n }\n if (options.trackingIdentifier.length !== 2) {\n throw new Error(\n \"Option 'trackingIdentifier' must include a human readable tracking \" +\n \"identifier and a tracking unique identifier.\"\n );\n }\n groupItem.ContentSequence.push(...options.trackingIdentifier);\n if (options.session !== undefined) {\n const sessionItem = new TextContentItem({\n name: new CodedConcept({\n value: \"C67447\",\n meaning: \"Activity Session\",\n schemeDesignator: \"NCIt\"\n }),\n value: options.session,\n relationshipType: RelationshipTypes.HAS_OBS_CONTEXT\n });\n groupItem.ContentSequence.push(sessionItem);\n }\n if (options.findingType !== undefined) {\n const findingTypeItem = new CodeContentItem({\n name: new CodedConcept({\n value: \"121071\",\n meaning: \"Finding\",\n schemeDesignator: \"DCM\"\n }),\n value: options.findingType,\n relationshipType: RelationshipTypes.CONTAINS\n });\n groupItem.ContentSequence.push(findingTypeItem);\n }\n if (options.timePointContext !== undefined) {\n if (options.timePointContext.constructor !== TimePointContext) {\n throw new Error(\n \"Option 'timePointContext' must have type TimePointContext.\"\n );\n }\n groupItem.ContentSequence.push(...timePointContext);\n }\n if (options.referencedRealWorldValueMap !== undefined) {\n if (\n options.referencedRealWorldValueMap.constructor !==\n ReferencedRealWorldValueMap\n ) {\n throw new Error(\n \"Option 'referencedRealWorldValleMap' must have type \" +\n \"ReferencedRealWorldValueMap.\"\n );\n }\n groupItem.ContentSequence.push(options.referencedRealWorldValueMap);\n }\n if (options.measurements !== undefined) {\n if (\n !(\n typeof options.measurements === \"object\" ||\n options.measurements instanceof Array\n )\n ) {\n throw new Error(\"Option 'measurements' must have type Array.\");\n }\n options.measurements.forEach(measurement => {\n console.log(measurement);\n if (\n !measurement ||\n measurement.constructor !== NumContentItem\n ) {\n throw new Error(\n \"Items of option 'measurement' must have type NumContentItem.\"\n );\n }\n groupItem.ContentSequence.push(measurement);\n });\n }\n if (options.qualitativeEvaluations !== undefined) {\n if (\n !(\n typeof options.qualitativeEvaluations === \"object\" ||\n options.qualitativeEvaluations instanceof Array\n )\n ) {\n throw new Error(\n \"Option 'qualitativeEvaluations' must have type Array.\"\n );\n }\n options.qualitativeEvaluations.forEach(evaluation => {\n if (\n !evaluation ||\n (evaluation.constructor !== CodeContentItem &&\n evaluation.constructor !== TextContentItem)\n ) {\n throw new Error(\n \"Items of option 'qualitativeEvaluations' must have type \" +\n \"CodeContentItem or TextContentItem.\"\n );\n }\n groupItem.ContentSequence.push(evaluation);\n });\n }\n this.push(groupItem);\n }\n}\n\nclass _ROIMeasurementsAndQualitativeEvaluations extends _MeasurementsAndQualitatitiveEvaluations {\n constructor(options) {\n super({\n trackingIdentifier: options.trackingIdentifier,\n timePointContext: options.timePointContext,\n findingType: options.findingType,\n session: options.session,\n measurements: options.measurements,\n qualitativeEvaluations: options.qualitativeEvaluations\n });\n const groupItem = this[0];\n const wereReferencesProvided = [\n options.referencedRegions !== undefined,\n options.referencedVolume !== undefined,\n options.referencedSegmentation !== undefined\n ];\n const numReferences = wereReferencesProvided.reduce((a, b) => a + b);\n if (numReferences === 0) {\n throw new Error(\n \"One of the following options must be provided: \" +\n \"'referencedRegions', 'referencedVolume', or \" +\n \"'referencedSegmentation'.\"\n );\n } else if (numReferences > 1) {\n throw new Error(\n \"Only one of the following options should be provided: \" +\n \"'referencedRegions', 'referencedVolume', or \" +\n \"'referencedSegmentation'.\"\n );\n }\n if (options.referencedRegions !== undefined) {\n if (\n !(\n typeof options.referencedRegions === \"object\" ||\n options.referencedRegions instanceof Array\n )\n ) {\n throw new Error(\n \"Option 'referencedRegions' must have type Array.\"\n );\n }\n if (options.referencedRegions.length === 0) {\n throw new Error(\n \"Option 'referencedRegion' must have non-zero length.\"\n );\n }\n options.referencedRegions.forEach(region => {\n if (\n region === undefined ||\n (region.constructor !== ImageRegion &&\n region.constructor !== ImageRegion3D)\n ) {\n throw new Error(\n \"Items of option 'referencedRegion' must have type \" +\n \"ImageRegion or ImageRegion3D.\"\n );\n }\n groupItem.ContentSequence.push(region);\n });\n } else if (options.referencedVolume !== undefined) {\n if (options.referencedVolume.constructor !== VolumeSurface) {\n throw new Error(\n \"Items of option 'referencedVolume' must have type VolumeSurface.\"\n );\n }\n groupItem.ContentSequence.push(referencedVolume);\n } else if (options.referencedSegmentation !== undefined) {\n if (\n options.referencedSegmentation.constructor !==\n ReferencedSegmentation &&\n options.referencedSegmentation.constructor !==\n ReferencedSegmentationFrame\n ) {\n throw new Error(\n \"Option 'referencedSegmentation' must have type \" +\n \"ReferencedSegmentation or ReferencedSegmentationFrame.\"\n );\n }\n groupItem.ContentSequence.push(referencedSegmentation);\n }\n this[0] = groupItem;\n }\n}\n\nclass PlanarROIMeasurementsAndQualitativeEvaluations extends _ROIMeasurementsAndQualitativeEvaluations {\n constructor(options) {\n const wereReferencesProvided = [\n options.referencedRegion !== undefined,\n options.referencedSegmentation !== undefined\n ];\n const numReferences = wereReferencesProvided.reduce((a, b) => a + b);\n if (numReferences === 0) {\n throw new Error(\n \"One of the following options must be provided: \" +\n \"'referencedRegion', 'referencedSegmentation'.\"\n );\n } else if (numReferences > 1) {\n throw new Error(\n \"Only one of the following options should be provided: \" +\n \"'referencedRegion', 'referencedSegmentation'.\"\n );\n }\n super({\n trackingIdentifier: options.trackingIdentifier,\n referencedRegions: [options.referencedRegion],\n referencedSegmentation: options.referencedSegmentation,\n referencedRealWorldValueMap: options.referencedRealWorldValueMap,\n timePointContext: options.timePointContext,\n findingType: options.findingType,\n session: options.session,\n measurements: options.measurements,\n qualitativeEvaluations: options.qualitativeEvaluations\n });\n }\n}\n\nclass VolumetricROIMeasurementsAndQualitativeEvaluations extends _ROIMeasurementsAndQualitativeEvaluations {\n constructor(options) {\n super({\n trackingIdentifier: options.trackingIdentifier,\n referencedRegions: options.referencedRegions,\n referencedSegmentation: options.referencedSegmentation,\n referencedRealWorldValueMap: options.referencedRealWorldValueMap,\n timePointContext: options.timePointContext,\n findingType: options.findingType,\n session: options.session,\n measurements: options.measurements,\n qualitativeEvaluations: options.qualitativeEvaluations\n });\n }\n}\n\nclass MeasurementsDerivedFromMultipleROIMeasurements extends Template {\n constructor(options) {\n if (options.derivation === undefined) {\n throw new Error(\n \"Option 'derivation' is required for \" +\n \"MeasurementsDerivedFromMultipleROIMeasurements.\"\n );\n }\n // FIXME\n const valueItem = new NumContentItem({\n name: options.derivation\n });\n valueItem.ContentSequence = new ContentSequence();\n if (options.measurementGroups === undefined) {\n throw new Error(\n \"Option 'measurementGroups' is required for \" +\n \"MeasurementsDerivedFromMultipleROIMeasurements.\"\n );\n }\n if (\n !(\n typeof options.measurementGroups === \"object\" ||\n options.measurementGroups instanceof Array\n )\n ) {\n throw new Error(\"Option 'measurementGroups' must have type Array.\");\n }\n options.measurementGroups.forEach(group => {\n if (\n !group ||\n (group.constructor !==\n PlanarROIMeasurementsAndQualitativeEvaluations &&\n group.constructor !==\n VolumetricROIMeasurementsAndQualitativeEvaluations)\n ) {\n throw new Error(\n \"Items of option 'measurementGroups' must have type \" +\n \"PlanarROIMeasurementsAndQualitativeEvaluations or \" +\n \"VolumetricROIMeasurementsAndQualitativeEvaluations.\"\n );\n }\n group[0].RelationshipType = \"R-INFERRED FROM\";\n valueItem.ContentSequence.push(...group);\n });\n if (options.measurementProperties !== undefined) {\n if (\n options.measurementProperties.constructor !==\n MeasurementProperties\n ) {\n throw new Error(\n \"Option 'measurementProperties' must have type MeasurementProperties.\"\n );\n }\n valueItem.ContentSequence.push(...options.measurementProperties);\n }\n this.push(valueItem);\n }\n}\n\nclass MeasurementAndQualitativeEvaluationGroup extends _MeasurementsAndQualitatitiveEvaluations {\n constructor(options) {\n super({\n trackingIdentifier: options.trackingIdentifier,\n referencedRealWorldValueMap: options.referencedRealWorldValueMap,\n timePointContext: options.timePointContext,\n findingType: options.findingType,\n session: options.session,\n measurements: options.measurements,\n qualitativeEvaluations: options.qualitativeEvaluations\n });\n }\n}\n\nclass ROIMeasurements extends Template {\n constructor(options) {\n super();\n if (options.method !== undefined) {\n const methodItem = new CodeContentItem({\n name: new CodedConcept({\n value: \"370129005\",\n meaning: \"Measurement Method\",\n schemeDesignator: \"SCT\"\n }),\n value: options.method,\n relationshipType: RelationshipTypes.HAS_CONCEPT_MOD\n });\n this.push(methodItem);\n }\n if (options.findingSites !== undefined) {\n if (\n !(\n typeof options.findingSites === \"object\" ||\n options.findingSites instanceof Array\n )\n ) {\n throw new Error(\"Option 'findingSites' must have type Array.\");\n }\n options.findingSites.forEach(site => {\n if (!site || site.constructor !== FindingSite) {\n throw new Error(\n \"Items of option 'findingSites' must have type FindingSite.\"\n );\n }\n this.push(site);\n });\n }\n if (options.measurements === undefined) {\n throw new Error(\n \"Options 'measurements' is required ROIMeasurements.\"\n );\n }\n if (\n !(\n typeof options.measurements === \"object\" ||\n options.measurements instanceof Array\n )\n ) {\n throw new Error(\"Option 'measurements' must have type Array.\");\n }\n if (options.measurements.length === 0) {\n throw new Error(\"Option 'measurements' must have non-zero length.\");\n }\n options.measurements.forEach(measurement => {\n if (!measurement || measurement.constructor !== Measurement) {\n throw new Error(\n \"Items of option 'measurements' must have type Measurement.\"\n );\n }\n this.push(measurement);\n });\n }\n}\n\nclass MeasurementReport extends Template {\n constructor(options) {\n super();\n if (options.observationContext === undefined) {\n throw new Error(\n \"Option 'observationContext' is required for MeasurementReport.\"\n );\n }\n if (options.procedureReported === undefined) {\n throw new Error(\n \"Option 'procedureReported' is required for MeasurementReport.\"\n );\n }\n const item = new ContainerContentItem({\n name: new CodedConcept({\n value: \"126000\",\n schemeDesignator: \"DCM\",\n meaning: \"Imaging Measurement Report\"\n }),\n templateID: \"1500\"\n });\n item.ContentSequence = new ContentSequence();\n if (options.languageOfContentItemAndDescendants === undefined) {\n throw new Error(\n \"Option 'languageOfContentItemAndDescendants' is required for \" +\n \"MeasurementReport.\"\n );\n }\n if (\n options.languageOfContentItemAndDescendants.constructor !==\n LanguageOfContentItemAndDescendants\n ) {\n throw new Error(\n \"Option 'languageOfContentItemAndDescendants' must have type \" +\n \"LanguageOfContentItemAndDescendants.\"\n );\n }\n item.ContentSequence.push(\n ...options.languageOfContentItemAndDescendants\n );\n item.ContentSequence.push(...options.observationContext);\n if (\n options.procedureReported.constructor === CodedConcept ||\n options.procedureReported.constructor === Code\n ) {\n options.procedureReported = [options.procedureReported];\n }\n if (\n !(\n typeof options.procedureReported === \"object\" ||\n options.procedureReported instanceof Array\n )\n ) {\n throw new Error(\"Option 'procedureReported' must have type Array.\");\n }\n options.procedureReported.forEach(procedure => {\n const procedureItem = new CodeContentItem({\n name: new CodedConcept({\n value: \"121058\",\n meaning: \"Procedure reported\",\n schemeDesignator: \"DCM\"\n }),\n value: procedure,\n relationshipType: RelationshipTypes.HAS_CONCEPT_MOD\n });\n item.ContentSequence.push(procedureItem);\n });\n const imageLibraryItem = new ImageLibrary();\n item.ContentSequence.push(...imageLibraryItem);\n\n const wereOptionsProvided = [\n options.imagingMeasurements !== undefined,\n options.derivedImagingMeasurements !== undefined,\n options.qualitativeEvaluations !== undefined\n ];\n const numOptionsProvided = wereOptionsProvided.reduce((a, b) => a + b);\n if (numOptionsProvided > 1) {\n throw new Error(\n \"Only one of the following options should be provided: \" +\n \"'imagingMeasurements', 'derivedImagingMeasurement', \" +\n \"'qualitativeEvaluations'.\"\n );\n }\n if (options.imagingMeasurements !== undefined) {\n const containerItem = new ContainerContentItem({\n name: new CodedConcept({\n value: \"126010\",\n meaning: \"Imaging Measurements\",\n schemeDesignator: \"DCM\"\n }),\n relationshipType: RelationshipTypes.CONTAINS\n });\n containerItem.ContentSequence = new ContentSequence(\n ...options.imagingMeasurements\n );\n item.ContentSequence.push(containerItem);\n } else if (options.derivedImagingMeasurements !== undefined) {\n const containerItem = new ContainerContentItem({\n name: new CodedConcept({\n value: \"126011\",\n meaning: \"Derived Imaging Measurements\",\n schemeDesignator: \"DCM\"\n }),\n relationshipType: RelationshipTypes.CONTAINS\n });\n containerItem.ContentSequence = new ContentSequence(\n ...options.derivedImagingMeasurements\n );\n item.ContentSequence.push(containerItem);\n } else if (options.qualitativeEvaluations !== undefined) {\n const containerItem = new ContainerContentItem({\n name: new CodedConcept({\n value: \"C0034375\",\n meaning: \"Qualitative Evaluations\",\n schemeDesignator: \"UMLS\"\n }),\n relationshipType: RelationshipTypes.CONTAINS\n });\n containerItem.ContentSequence = new ContentSequence(\n ...options.qualitativeEvaluations\n );\n item.ContentSequence.push(containerItem);\n }\n this.push(item);\n }\n}\n\nclass TimePointContext extends Template {\n constructor(options) {\n if (options.timePoint === undefined) {\n throw new Error(\n \"Option 'timePoint' is required for TimePointContext.\"\n );\n }\n const timePointItem = new TextContentItem({\n name: new CodedConcept({\n value: \"C2348792\",\n meaning: \"Time Point\",\n schemeDesignator: \"UMLS\"\n }),\n value: options.timePoint,\n relationshipType: RelationshipTypes.HAS_OBS_CONTEXT\n });\n this.push(timePointItem);\n if (options.timePointType !== undefined) {\n const timePointTypeItem = new CodeContentItem({\n name: new CodedConcept({\n value: \"126072\",\n meaning: \"Time Point Type\",\n schemeDesignator: \"DCM\"\n }),\n value: options.timePointType,\n relationshipType: RelationshipTypes.HAS_OBS_CONTEXT\n });\n this.push(timePointTypeItem);\n }\n if (options.timePointOrder !== undefined) {\n const timePointOrderItem = new NumContentItem({\n name: new CodedConcept({\n value: \"126073\",\n meaning: \"Time Point Order\",\n schemeDesignator: \"DCM\"\n }),\n value: options.timePointOrder,\n relationshipType: RelationshipTypes.HAS_OBS_CONTEXT\n });\n this.push(timePointOrderItem);\n }\n if (options.subjectTimePointIdentifier !== undefined) {\n const subjectTimePointIdentifierItem = new NumContentItem({\n name: new CodedConcept({\n value: \"126070\",\n meaning: \"Subject Time Point Identifier\",\n schemeDesignator: \"DCM\"\n }),\n value: options.subjectTimePointIdentifier,\n relationshipType: RelationshipTypes.HAS_OBS_CONTEXT\n });\n this.push(subjectTimePointIdentifierItem);\n }\n if (options.protocolTimePointIdentifier !== undefined) {\n const protocolTimePointIdentifierItem = new NumContentItem({\n name: new CodedConcept({\n value: \"126071\",\n meaning: \"Protocol Time Point Identifier\",\n schemeDesignator: \"DCM\"\n }),\n value: options.protocolTimePointIdentifier,\n relationshipType: RelationshipTypes.HAS_OBS_CONTEXT\n });\n this.push(protocolTimePointIdentifierItem);\n }\n if (options.temporalOffsetFromEvent !== undefined) {\n if (\n options.temporalOffsetFromEvent.constructor !==\n LongitudinalTemporalOffsetFromEventContentItem\n ) {\n throw new Error(\n \"Option 'temporalOffsetFromEvent' must have type \" +\n \"LongitudinalTemporalOffsetFromEventContentItem.\"\n );\n }\n this.push(temporalOffsetFromEvent);\n }\n }\n}\n\nclass ImageLibrary extends Template {\n constructor(options) {\n super();\n const libraryItem = new ContainerContentItem({\n name: new CodedConcept({\n value: \"111028\",\n meaning: \"Image Library\",\n schemeDesignator: \"DCM\"\n }),\n relationshipType: RelationshipTypes.CONTAINS\n });\n this.push(libraryItem);\n }\n}\n\nclass AlgorithmIdentification extends Template {\n constructor(options) {\n super();\n if (options.name === undefined) {\n throw new Error(\n \"Option 'name' is required for AlgorithmIdentification.\"\n );\n }\n if (options.version === undefined) {\n throw new Error(\n \"Option 'version' is required for AlgorithmIdentification.\"\n );\n }\n const nameItem = new TextContentItem({\n name: new CodedConcept({\n value: \"111001\",\n meaning: \"Algorithm Name\",\n schemeDesignator: \"DCM\"\n }),\n value: options.name,\n relationshipType: RelationshipTypes.HAS_CONCEPT_MOD\n });\n this.push(nameItem);\n const versionItem = new TextContentItem({\n name: new CodedConcept({\n value: \"111003\",\n meaning: \"Algorithm Version\",\n schemeDesignator: \"DCM\"\n }),\n value: options.version,\n relationshipType: RelationshipTypes.HAS_CONCEPT_MOD\n });\n this.push(versionItem);\n if (options.parameters !== undefined) {\n if (\n !(\n typeof options.parameters === \"object\" ||\n options.parameters instanceof Array\n )\n ) {\n throw new Error(\"Option 'parameters' must have type Array.\");\n }\n options.parameters.forEach(parameter => {\n const parameterItem = new TextContentItem({\n name: new CodedConcept({\n value: \"111002\",\n meaning: \"Algorithm Parameter\",\n schemeDesignator: \"DCM\"\n }),\n value: param,\n relationshipType: RelationshipTypes.HAS_CONCEPT_MOD\n });\n this.push(parameterItem);\n });\n }\n }\n}\n\nclass TrackingIdentifier extends Template {\n constructor(options) {\n super();\n if (options.uid === undefined) {\n throw new Error(\"Option 'uid' is required for TrackingIdentifier.\");\n }\n if (options.identifier !== undefined) {\n const trackingIdentifierItem = new TextContentItem({\n name: new CodedConcept({\n value: \"112039\",\n meaning: \"Tracking Identifier\",\n schemeDesignator: \"DCM\"\n }),\n value: options.identifier,\n relationshipType: RelationshipTypes.HAS_OBS_CONTEXT\n });\n this.push(trackingIdentifierItem);\n }\n const trackingUIDItem = new UIDRefContentItem({\n name: new CodedConcept({\n value: \"112040\",\n meaning: \"Tracking Unique Identifier\",\n schemeDesignator: \"DCM\"\n }),\n value: options.uid,\n relationshipType: RelationshipTypes.HAS_OBS_CONTEXT\n });\n this.push(trackingUIDItem);\n }\n}\n\nexport {\n AlgorithmIdentification,\n DeviceObserverIdentifyingAttributes,\n ImageLibrary,\n LanguageOfContentItemAndDescendants,\n Measurement,\n MeasurementAndQualitativeEvaluationGroup,\n MeasurementReport,\n MeasurementsDerivedFromMultipleROIMeasurements,\n ObservationContext,\n ObserverContext,\n PersonObserverIdentifyingAttributes,\n PlanarROIMeasurementsAndQualitativeEvaluations,\n ROIMeasurements,\n SubjectContext,\n SubjectContextDevice,\n SubjectContextFetus,\n SubjectContextSpecimen,\n TimePointContext,\n TrackingIdentifier,\n VolumetricROIMeasurementsAndQualitativeEvaluations\n // MeasurementProperties,\n // MeasurementStatisticalProperties,\n // NormalRangeProperties,\n // EquationOrTable,\n // ImageOrSpatialCoordinates,\n // WaveformOrTemporalCoordinates,\n // Quotation,\n};\n","import { DicomMetaDictionary } from \"../DicomMetaDictionary.js\";\n\nconst _attributesToInclude = [\n // Patient\n \"00080054\",\n \"00080100\",\n \"00080102\",\n \"00080103\",\n \"00080104\",\n \"00080105\",\n \"00080106\",\n \"00080107\",\n \"0008010B\",\n \"0008010D\",\n \"0008010F\",\n \"00080117\",\n \"00080118\",\n \"00080119\",\n \"00080120\",\n \"00080121\",\n \"00080122\",\n \"00081120\",\n \"00081150\",\n \"00081155\",\n \"00081160\",\n \"00081190\",\n \"00081199\",\n \"00100010\",\n \"00100020\",\n \"00100021\",\n \"00100022\",\n \"00100024\",\n \"00100026\",\n \"00100027\",\n \"00100028\",\n \"00100030\",\n \"00100032\",\n \"00100033\",\n \"00100034\",\n \"00100035\",\n \"00100040\",\n \"00100200\",\n \"00100212\",\n \"00100213\",\n \"00100214\",\n \"00100215\",\n \"00100216\",\n \"00100217\",\n \"00100218\",\n \"00100219\",\n \"00100221\",\n \"00100222\",\n \"00100223\",\n \"00100229\",\n \"00101001\",\n \"00101002\",\n \"00101100\",\n \"00102160\",\n \"00102201\",\n \"00102202\",\n \"00102292\",\n \"00102293\",\n \"00102294\",\n \"00102295\",\n \"00102296\",\n \"00102297\",\n \"00102298\",\n \"00102299\",\n \"00104000\",\n \"00120062\",\n \"00120063\",\n \"00120064\",\n \"0020000D\",\n \"00400031\",\n \"00400032\",\n \"00400033\",\n \"00400035\",\n \"00400036\",\n \"00400039\",\n \"0040003A\",\n \"0040E001\",\n \"0040E010\",\n \"0040E020\",\n \"0040E021\",\n \"0040E022\",\n \"0040E023\",\n \"0040E024\",\n \"0040E025\",\n \"0040E030\",\n \"0040E031\",\n \"0062000B\",\n \"00880130\",\n \"00880140\",\n // Patient Study\n \"00080100\",\n \"00080102\",\n \"00080103\",\n \"00080104\",\n \"00080105\",\n \"00080106\",\n \"00080107\",\n \"0008010B\",\n \"0008010D\",\n \"0008010F\",\n \"00080117\",\n \"00080118\",\n \"00080119\",\n \"00080120\",\n \"00080121\",\n \"00080122\",\n \"00081080\",\n \"00081084\",\n \"00101010\",\n \"00101020\",\n \"00101021\",\n \"00101022\",\n \"00101023\",\n \"00101024\",\n \"00101030\",\n \"00102000\",\n \"00102110\",\n \"00102180\",\n \"001021A0\",\n \"001021B0\",\n \"001021C0\",\n \"001021D0\",\n \"00102203\",\n \"00380010\",\n \"00380014\",\n \"00380060\",\n \"00380062\",\n \"00380064\",\n \"00380500\",\n \"00400031\",\n \"00400032\",\n \"00400033\",\n // General Study\n \"00080020\",\n \"00080030\",\n \"00080050\",\n \"00080051\",\n \"00080080\",\n \"00080081\",\n \"00080082\",\n \"00080090\",\n \"00080096\",\n \"0008009C\",\n \"0008009D\",\n \"00080100\",\n \"00080102\",\n \"00080103\",\n \"00080104\",\n \"00080105\",\n \"00080106\",\n \"00080107\",\n \"0008010B\",\n \"0008010D\",\n \"0008010F\",\n \"00080117\",\n \"00080118\",\n \"00080119\",\n \"00080120\",\n \"00080121\",\n \"00080122\",\n \"00081030\",\n \"00081032\",\n \"00081048\",\n \"00081049\",\n \"00081060\",\n \"00081062\",\n \"00081110\",\n \"00081150\",\n \"00081155\",\n \"0020000D\",\n \"00200010\",\n \"00321034\",\n \"00400031\",\n \"00400032\",\n \"00400033\",\n \"00401012\",\n \"00401101\",\n \"00401102\",\n \"00401103\",\n \"00401104\",\n // Clinical Trial Subject\n \"00120010\",\n \"00120020\",\n \"00120021\",\n \"00120030\",\n \"00120031\",\n \"00120040\",\n \"00120042\",\n \"00120081\",\n \"00120082\",\n // Clinical Trial Study\n \"00120020\",\n \"00120050\",\n \"00120051\",\n \"00120052\",\n \"00120053\",\n \"00120083\",\n \"00120084\",\n \"00120085\"\n];\n\nclass Comprehensive3DSR {\n constructor(options) {\n if (options.evidence === undefined) {\n throw new Error(\n \"Option 'evidence' is required for Comprehensive3DSR.\"\n );\n }\n if (\n !(\n typeof options.evidence === \"object\" ||\n options.evidence instanceof Array\n )\n ) {\n throw new Error(\"Option 'evidence' must have type Array.\");\n }\n if (options.evidence.length === 0) {\n throw new Error(\"Option 'evidence' must have non-zero length.\");\n }\n if (options.content === undefined) {\n throw new Error(\n \"Option 'content' is required for Comprehensive3DSR.\"\n );\n }\n if (options.seriesInstanceUID === undefined) {\n throw new Error(\n \"Option 'seriesInstanceUID' is required for Comprehensive3DSR.\"\n );\n }\n if (options.seriesNumber === undefined) {\n throw new Error(\n \"Option 'seriesNumber' is required for Comprehensive3DSR.\"\n );\n }\n if (options.seriesDescription === undefined) {\n throw new Error(\n \"Option 'seriesDescription' is required for Comprehensive3DSR.\"\n );\n }\n if (options.sopInstanceUID === undefined) {\n throw new Error(\n \"Option 'sopInstanceUID' is required for Comprehensive3DSR.\"\n );\n }\n if (options.instanceNumber === undefined) {\n throw new Error(\n \"Option 'instanceNumber' is required for Comprehensive3DSR.\"\n );\n }\n if (options.manufacturer === undefined) {\n throw new Error(\n \"Option 'manufacturer' is required for Comprehensive3DSR.\"\n );\n }\n\n this.SOPClassUID = \"1.2.840.10008.5.1.4.1.1.88.34\";\n this.SOPInstanceUID = options.sopInstanceUID;\n this.Modality = \"SR\";\n this.SeriesDescription = options.seriesDescription;\n this.SeriesInstanceUID = options.seriesInstanceUID;\n this.SeriesNumber = options.seriesNumber;\n this.InstanceNumber = options.instanceNumber;\n\n this.Manufacturer = options.manufacturer;\n if (options.institutionName !== undefined) {\n this.InstitutionName = options.institutionName;\n if (options.institutionalDepartmentName !== undefined) {\n this.InstitutionalDepartmentName =\n options.institutionDepartmentName;\n }\n }\n\n if (options.isComplete) {\n this.CompletionFlag = \"COMPLETE\";\n } else {\n this.CompletionFlag = \"PARTIAL\";\n }\n if (options.isVerified) {\n if (options.verifyingObserverName === undefined) {\n throw new Error(\n \"Verifying Observer Name must be specified if SR document \" +\n \"has been verified.\"\n );\n }\n if (options.verifyingOrganization === undefined) {\n throw new Error(\n \"Verifying Organization must be specified if SR document \" +\n \"has been verified.\"\n );\n }\n this.VerificationFlag = \"VERIFIED\";\n const ovserver_item = {};\n ovserver_item.VerifyingObserverName = options.verifyingObserverName;\n ovserver_item.VerifyingOrganization = options.verifyingOrganization;\n ovserver_item.VerificationDateTime = DicomMetaDictionary.dateTime();\n this.VerifyingObserverSequence = [observer_item];\n } else {\n this.VerificationFlag = \"UNVERIFIED\";\n }\n if (options.isFinal) {\n this.PreliminaryFlag = \"FINAL\";\n } else {\n this.PreliminaryFlag = \"PRELIMINARY\";\n }\n\n this.ContentDate = DicomMetaDictionary.date();\n this.ContentTime = DicomMetaDictionary.time();\n\n Object.keys(options.content).forEach(keyword => {\n this[keyword] = options.content[keyword];\n });\n\n const evidenceCollection = {};\n options.evidence.forEach(evidence => {\n if (\n evidence.StudyInstanceUID !==\n options.evidence[0].StudyInstanceUID\n ) {\n throw new Error(\n \"Referenced data sets must all belong to the same study.\"\n );\n }\n if (!(evidence.SeriesInstanceUID in evidenceCollection)) {\n evidenceCollection[evidence.SeriesInstanceUID] = [];\n }\n const instanceItem = {};\n instanceItem.ReferencedSOPClassUID = evidence.SOPClassUID;\n instanceItem.ReferencedSOPInstanceUID = evidence.SOPInstanceUID;\n evidenceCollection[evidence.SeriesInstanceUID].push(instanceItem);\n });\n const evidenceStudyItem = {};\n evidenceStudyItem.StudyInstanceUID =\n options.evidence[0].StudyInstanceUID;\n evidenceStudyItem.ReferencedSeriesSequence = [];\n Object.keys(evidenceCollection).forEach(seriesInstanceUID => {\n const seriesItem = {};\n seriesItem.SeriesInstanceUID = seriesInstanceUID;\n seriesItem.ReferencedSOPSequence =\n evidenceCollection[seriesInstanceUID];\n evidenceStudyItem.ReferencedSeriesSequence.push(seriesItem);\n });\n\n if (options.requestedProcedures !== undefined) {\n if (\n !(\n typeof options.requestedProcedures === \"object\" ||\n options.requestedProcedures instanceof Array\n )\n ) {\n throw new Error(\n \"Option 'requestedProcedures' must have type Array.\"\n );\n }\n this.ReferencedRequestSequence = new ContentSequence(\n ...options.requestedProcedures\n );\n this.CurrentRequestedProcedureEvidenceSequence = [\n evidenceStudyItem\n ];\n } else {\n this.PertinentOtherEvidenceSequence = [evidenceStudyItem];\n }\n\n if (options.previousVersions !== undefined) {\n const preCollection = {};\n options.previousVersions.forEach(version => {\n if (\n version.StudyInstanceUID !=\n options.evidence[0].StudyInstanceUID\n ) {\n throw new Error(\n \"Previous version data sets must belong to the same study.\"\n );\n }\n const instanceItem = {};\n instanceItem.ReferencedSOPClassUID = version.SOPClassUID;\n instanceItem.ReferencedSOPInstanceUID = version.SOPInstanceUID;\n preCollection[version.SeriesInstanceUID].push(instanceItem);\n });\n const preStudyItem = {};\n preStudyItem.StudyInstanceUID =\n options.previousVersions[0].StudyInstanceUID;\n preStudyItem.ReferencedSeriesSequence = [];\n Object.keys(preCollection).forEach(seriesInstanceUID => {\n const seriesItem = {};\n seriesItem.SeriesInstanceUID = seriesInstanceUID;\n seriesItem.ReferencedSOPSequence =\n preCollection[seriesInstanceUID];\n preStudyItem.ReferencedSeriesSequence.push(seriesItem);\n });\n this.PredecessorDocumentsSequence = [preStudyItem];\n }\n\n if (options.performedProcedureCodes !== undefined) {\n if (\n !(\n typeof options.performedProcedureCodes === \"object\" ||\n options.performedProcedureCodes instanceof Array\n )\n ) {\n throw new Error(\n \"Option 'performedProcedureCodes' must have type Array.\"\n );\n }\n this.PerformedProcedureCodeSequence = new ContentSequence(\n ...options.performedProcedureCodes\n );\n } else {\n this.PerformedProcedureCodeSequence = [];\n }\n\n this.ReferencedPerformedProcedureStepSequence = [];\n\n _attributesToInclude.forEach(tag => {\n const key = DicomMetaDictionary.punctuateTag(tag);\n const element = DicomMetaDictionary.dictionary[key];\n if (element !== undefined) {\n const keyword = element.name;\n const value = options.evidence[0][keyword];\n if (value !== undefined) {\n this[keyword] = value;\n }\n }\n });\n }\n}\n\nexport { Comprehensive3DSR };\n","import * as coding from \"./coding.js\";\nimport * as contentItems from \"./contentItems.js\";\nimport * as templates from \"./templates.js\";\nimport * as valueTypes from \"./valueTypes.js\";\nimport * as documents from \"./documents.js\";\n\nconst sr = {\n coding,\n contentItems,\n documents,\n templates,\n valueTypes\n};\n\nexport default sr;\n","import { DicomMetaDictionary } from \"./DicomMetaDictionary.js\";\nimport { Tag } from \"./Tag.js\";\nimport { ValueRepresentation } from \"./ValueRepresentation.js\";\n\nvar tagNamesToEmpty = [\n // please override these in specificReplaceDefaults to have useful values\n \"PatientID\",\n \"PatientName\",\n\n // 0/3: those that appear missing in CTP\n \"SeriesDate\",\n \"AccessionNumber\",\n // (valuable, but sometimes manually filled)\n \"SeriesDescription\",\n // cat 1/3: CTP: set to empty explicitely using @empty\n \"StudyTime\",\n \"ContentTime\",\n \"ReferringPhysicianName\",\n \"PatientBirthDate\",\n \"PatientSex\",\n \"ClinicalTrialSiteID\",\n \"ClinicalTrialSiteName\",\n \"ClinicalTrialSubjectID\",\n \"ClinicalTrialSubjectReadingID\",\n \"ClinicalTrialTimePointID\",\n \"ClinicalTrialTimePointDescription\",\n \"ContrastBolusAgent\",\n \"StudyID\",\n // cat 2/3: CTP: set to increment dates\n \"InstanceCreationDate\",\n \"StudyDate\",\n \"ContentDate\",\n \"DateOfSecondaryCapture\",\n \"DateOfLastCalibration\",\n \"DateOfLastDetectorCalibration\",\n \"FrameAcquisitionDatetime\",\n \"FrameReferenceDatetime\",\n \"StudyVerifiedDate\",\n \"StudyReadDate\",\n \"ScheduledStudyStartDate\",\n \"ScheduledStudyStopDate\",\n \"StudyArrivalDate\",\n \"StudyCompletionDate\",\n \"ScheduledAdmissionDate\",\n \"ScheduledDischargeDate\",\n \"DischargeDate\",\n \"SPSStartDate\",\n \"SPSEndDate\",\n \"PPSStartDate\",\n \"PPSEndDate\",\n \"IssueDateOfImagingServiceRequest\",\n \"VerificationDateTime\",\n \"ObservationDateTime\",\n \"DateTime\",\n \"Date\",\n \"RefDatetime\",\n // cat 3/3: CTP: set to remove using @remove\n \"AcquisitionDate\",\n \"OverlayDate\",\n \"CurveDate\",\n \"AcquisitionDatetime\",\n \"SeriesTime\",\n \"AcquisitionTime\",\n \"OverlayTime\",\n \"CurveTime\",\n \"InstitutionName\",\n \"InstitutionAddress\",\n \"ReferringPhysicianAddress\",\n \"ReferringPhysicianPhoneNumbers\",\n \"ReferringPhysiciansIDSeq\",\n \"TimezoneOffsetFromUTC\",\n \"StationName\",\n \"StudyDescription\",\n \"InstitutionalDepartmentName\",\n \"PhysicianOfRecord\",\n \"PhysicianOfRecordIdSeq\",\n \"PerformingPhysicianName\",\n \"PerformingPhysicianIdSeq\",\n \"NameOfPhysicianReadingStudy\",\n \"PhysicianReadingStudyIdSeq\",\n \"OperatorName\",\n \"OperatorsIdentificationSeq\",\n \"AdmittingDiagnosisDescription\",\n \"AdmittingDiagnosisCodeSeq\",\n \"RefStudySeq\",\n \"RefPPSSeq\",\n \"RefPatientSeq\",\n \"RefImageSeq\",\n \"DerivationDescription\",\n \"SourceImageSeq\",\n \"IdentifyingComments\",\n \"IssuerOfPatientID\",\n \"PatientBirthTime\",\n \"PatientInsurancePlanCodeSeq\",\n \"PatientPrimaryLanguageCodeSeq\",\n \"PatientPrimaryLanguageModifierCodeSeq\",\n \"OtherPatientIDs\",\n \"OtherPatientNames\",\n \"OtherPatientIDsSeq\",\n \"PatientBirthName\",\n \"PatientAge\",\n \"PatientSize\",\n \"PatientWeight\",\n \"PatientAddress\",\n \"InsurancePlanIdentification\",\n \"PatientMotherBirthName\",\n \"MilitaryRank\",\n \"BranchOfService\",\n \"MedicalRecordLocator\",\n \"MedicalAlerts\",\n \"ContrastAllergies\",\n \"CountryOfResidence\",\n \"RegionOfResidence\",\n \"PatientPhoneNumbers\",\n \"EthnicGroup\",\n \"Occupation\",\n \"SmokingStatus\",\n \"AdditionalPatientHistory\",\n \"PregnancyStatus\",\n \"LastMenstrualDate\",\n \"PatientReligiousPreference\",\n \"PatientSexNeutered\",\n \"ResponsiblePerson\",\n \"ResponsibleOrganization\",\n \"PatientComments\",\n \"DeviceSerialNumber\",\n \"PlateID\",\n \"GeneratorID\",\n \"CassetteID\",\n \"GantryID\",\n // we keep - should be SoftwareVersions anyway\n // \"SoftwareVersion\",\n \"ProtocolName\",\n \"AcquisitionDeviceProcessingDescription\",\n \"AcquisitionComments\",\n \"DetectorID\",\n \"AcquisitionProtocolDescription\",\n \"ContributionDescription\",\n \"ModifyingDeviceID\",\n \"ModifyingDeviceManufacturer\",\n \"ModifiedImageDescription\",\n \"ImageComments\",\n \"ImagePresentationComments\",\n \"StudyIDIssuer\",\n \"ScheduledStudyLocation\",\n \"ScheduledStudyLocationAET\",\n \"ReasonforStudy\",\n \"RequestingPhysician\",\n \"RequestingService\",\n \"RequestedProcedureDescription\",\n \"RequestedContrastAgent\",\n \"StudyComments\",\n \"AdmissionID\",\n \"IssuerOfAdmissionID\",\n \"ScheduledPatientInstitutionResidence\",\n \"AdmittingDate\",\n \"AdmittingTime\",\n \"DischargeDiagnosisDescription\",\n \"SpecialNeeds\",\n \"ServiceEpisodeID\",\n \"IssuerOfServiceEpisodeId\",\n \"ServiceEpisodeDescription\",\n \"CurrentPatientLocation\",\n \"PatientInstitutionResidence\",\n \"PatientState\",\n \"ReferencedPatientAliasSeq\",\n \"VisitComments\",\n \"ScheduledStationAET\",\n \"ScheduledPerformingPhysicianName\",\n \"SPSDescription\",\n \"ScheduledStationName\",\n \"SPSLocation\",\n \"PreMedication\",\n \"PerformedStationAET\",\n \"PerformedStationName\",\n \"PerformedLocation\",\n \"PerformedStationNameCodeSeq\",\n \"PPSID\",\n \"PPSDescription\",\n \"RequestAttributesSeq\",\n \"PPSComments\",\n \"AcquisitionContextSeq\",\n \"PatientTransportArrangements\",\n \"RequestedProcedureLocation\",\n \"NamesOfIntendedRecipientsOfResults\",\n \"IntendedRecipientsOfResultsIDSequence\",\n \"PersonAddress\",\n \"PersonTelephoneNumbers\",\n \"RequestedProcedureComments\",\n \"ReasonForTheImagingServiceRequest\",\n \"OrderEnteredBy\",\n \"OrderEntererLocation\",\n \"OrderCallbackPhoneNumber\",\n \"ImagingServiceRequestComments\",\n \"ConfidentialityPatientData\",\n \"ScheduledStationNameCodeSeq\",\n \"ScheduledStationGeographicLocCodeSeq\",\n \"PerformedStationGeoLocCodeSeq\",\n \"ScheduledHumanPerformersSeq\",\n \"ActualHumanPerformersSequence\",\n \"HumanPerformersOrganization\",\n \"HumanPerformersName\",\n \"VerifyingOrganization\",\n \"VerifyingObserverName\",\n \"AuthorObserverSequence\",\n \"ParticipantSequence\",\n \"CustodialOrganizationSeq\",\n \"VerifyingObserverIdentificationCodeSeq\",\n \"PersonName\",\n \"ContentSeq\",\n \"OverlayData\",\n \"OverlayComments\",\n \"IconImageSequence\",\n \"TopicSubject\",\n \"TopicAuthor\",\n \"TopicKeyWords\",\n \"TextString\",\n \"Arbitrary\",\n \"TextComments\",\n \"ResultsIDIssuer\",\n \"InterpretationRecorder\",\n \"InterpretationTranscriber\",\n \"InterpretationText\",\n \"InterpretationAuthor\",\n \"InterpretationApproverSequence\",\n \"PhysicianApprovingInterpretation\",\n \"InterpretationDiagnosisDescription\",\n \"ResultsDistributionListSeq\",\n \"DistributionName\",\n \"DistributionAddress\",\n \"InterpretationIdIssuer\",\n \"Impressions\",\n \"ResultComments\",\n \"DigitalSignaturesSeq\",\n \"DataSetTrailingPadding\"\n];\n\nexport function getTagsNameToEmpty() {\n return [...tagNamesToEmpty];\n}\n\nexport function cleanTags(\n dict,\n tagNamesToReplace = undefined,\n customTagNamesToEmpty = undefined\n) {\n if (tagNamesToReplace == undefined) {\n tagNamesToReplace = {\n \"00100010\": \"ANON^PATIENT\",\n \"00100020\": \"ANON^ID\"\n };\n }\n var tags =\n customTagNamesToEmpty != undefined\n ? customTagNamesToEmpty\n : tagNamesToEmpty;\n tags.forEach(function (tag) {\n var tagInfo = DicomMetaDictionary.nameMap[tag];\n if (tagInfo && tagInfo.version != \"PrivateTag\") {\n var tagNumber = tagInfo.tag,\n tagString = Tag.fromPString(tagNumber).toCleanString();\n if (dict[tagString]) {\n var newValue;\n if (tagString in tagNamesToReplace) {\n newValue = [tagNamesToReplace[tagString]];\n } else {\n newValue = [];\n }\n dict[tagString] = ValueRepresentation.addTagAccessors(\n dict[tagString]\n );\n dict[tagString].Value = newValue;\n }\n }\n });\n}\n","// Data\nimport { BitArray } from \"./bitArray.js\";\nimport { ReadBufferStream } from \"./BufferStream.js\";\nimport { DeflatedReadBufferStream } from \"./BufferStream.js\";\nimport { WriteBufferStream } from \"./BufferStream.js\";\nimport { DicomDict } from \"./DicomDict.js\";\nimport { DicomMessage } from \"./DicomMessage.js\";\nimport { DicomMetaDictionary } from \"./DicomMetaDictionary.js\";\nimport { DICOMWEB } from \"./dicomweb.js\";\nimport { Tag } from \"./Tag.js\";\nimport { ValueRepresentation } from \"./ValueRepresentation.js\";\nimport { Colors } from \"./colors.js\";\nimport log from \"./log.js\";\n\nimport {\n datasetToDict,\n datasetToBuffer,\n datasetToBlob\n} from \"./datasetToBlob.js\";\n// Derivations\nimport {\n DerivedDataset,\n DerivedPixels,\n DerivedImage,\n Segmentation,\n StructuredReport,\n ParametricMap\n} from \"./derivations/index.js\";\n// Normalizers\n\nimport { Normalizer } from \"./normalizers.js\";\nimport { ImageNormalizer } from \"./normalizers.js\";\nimport { MRImageNormalizer } from \"./normalizers.js\";\nimport { EnhancedMRImageNormalizer } from \"./normalizers.js\";\nimport { EnhancedUSVolumeNormalizer } from \"./normalizers.js\";\nimport { CTImageNormalizer } from \"./normalizers.js\";\nimport { PETImageNormalizer } from \"./normalizers.js\";\nimport { SEGImageNormalizer } from \"./normalizers.js\";\nimport { DSRNormalizer } from \"./normalizers.js\";\n\nimport adapters from \"./adapters/index.js\";\nimport utilities from \"./utilities/index.js\";\nimport sr from \"./sr/index.js\";\n\nimport { cleanTags, getTagsNameToEmpty } from \"./anonymizer.js\";\n\nlet data = {\n BitArray,\n ReadBufferStream,\n DeflatedReadBufferStream,\n WriteBufferStream,\n DicomDict,\n DicomMessage,\n DicomMetaDictionary,\n Tag,\n ValueRepresentation,\n Colors,\n datasetToDict,\n datasetToBuffer,\n datasetToBlob\n};\n\nlet derivations = {\n DerivedDataset,\n DerivedPixels,\n DerivedImage,\n Segmentation,\n StructuredReport,\n ParametricMap\n};\n\nlet normalizers = {\n Normalizer,\n ImageNormalizer,\n MRImageNormalizer,\n EnhancedMRImageNormalizer,\n EnhancedUSVolumeNormalizer,\n CTImageNormalizer,\n PETImageNormalizer,\n SEGImageNormalizer,\n DSRNormalizer\n};\n\nlet anonymizer = {\n cleanTags,\n getTagsNameToEmpty\n};\n\nconst dcmjs = {\n DICOMWEB,\n adapters,\n data,\n derivations,\n normalizers,\n sr,\n utilities,\n log,\n anonymizer\n};\n\nexport {\n DICOMWEB,\n adapters,\n data,\n derivations,\n normalizers,\n sr,\n utilities,\n log,\n anonymizer\n};\n\nexport default dcmjs;\n"],"names":["MethodFactory","require$$0","defaults","require$$1","require$$2","log","loglevelnext","create","validationLog","BitArray","getBytesForBinaryFrame","pack","unpack","numPixels","remainder","bytesRequired","Math","floor","pixelData","length","debug","bitPixelData","Uint8Array","bytePos","i","pixValue","bitPixelValue","bitPixelArray","bitArray","byteArray","byteIndex","bitIndex","bitByteIndex","zero","LENGTH","toInt","val","isNaN","Error","parseInt","toFloat","parseFloat","BufferStream","sizeOrBuffer","littleEndian","_classCallCheck","buffer","ArrayBuffer","view","DataView","offset","isLittleEndian","size","encoder","TextEncoder","_createClass","key","value","setEndian","isLittle","writeUint8","checkSize","setUint8","increment","writeUint8Repeat","count","v","writeInt8","setInt8","writeUint16","setUint16","writeTwoUint16s","first","second","writeInt16","setInt16","writeUint32","setUint32","writeInt32","setInt32","writeFloat","setFloat32","writeDouble","setFloat64","writeUTF8String","encodedString","encode","byteLength","set","writeAsciiString","len","startOffset","charcode","charCodeAt","readUint32","getUint32","readUint16","getUint16","readUint8","getUint8","peekUint8","readUint8Array","arr","readUint16Array","sixlen","Uint16Array","readInt16","getInt16","readInt32","getInt32","readFloat","getFloat32","readDouble","getFloat64","readAsciiString","result","start","end","String","fromCharCode","readVR","vr","readEncodedString","decoder","decode","readHex","hexString","toString","step","dstSize","dst","concat","stream","available","newbuf","int8","getBuffer","slice","more","endOffset","newBuf","ReadBufferStream","stop","reset","toEnd","_BufferStream","_inherits","_super","_createSuper","_this","options","arguments","undefined","noCopy","call","TextDecoder","setDecoder","DeflatedReadBufferStream","_ReadBufferStream","_super2","inflatedBuffer","pako","inflateRaw","WriteBufferStream","_BufferStream2","_super3","_this2","IMPLICIT_LITTLE_ENDIAN","EXPLICIT_LITTLE_ENDIAN","DEFLATED_EXPLICIT_LITTLE_ENDIAN","EXPLICIT_BIG_ENDIAN","VM_DELIMITER","PADDING_NULL","PADDING_SPACE","PN_COMPONENT_DELIMITER","dictionary","tag","name","vm","version","handler","get","target","prop","obj","addAccessors","dest","sqZero","__isProxy","itemZero","_typeof","Array","isArray","push","Proxy","paddingLeft","paddingValue","string","Tag","group","toUpperCase","element","toCleanString","is","t","isPixelDataTag","isPrivateCreator","write","vrType","values","syntax","writeOptions","ValueRepresentation","createByTypeString","useSyntax","DicomMessage","_normalizeSyntax","implicit","isEncapsulated","oldEndian","tagStream","valueLength","writeBytes","written","isExplicit","type","fromString","str","substring","fromNumbers","fromPString","readTag","pnStringToObject","multiple","split","filter","Boolean","pnObj","map","components","_objectSpread","Alphabetic","Ideographic","Phonetic","Object","assign","pnObjectToString","pnDelim","_v$Alphabetic","_v$Ideographic","_v$Phonetic","join","replace","RegExp","pnAddValueAccessors","__hasValueAccessors","defineProperty","x","dicomJson","pnConvertToJsonObject","tagProxyHandler","includes","hasValueAccessors","DicomMetaDictionary","nameMap","addValueAccessors","rtrim","toWindows","inputArray","from","_","index","binaryVRs","explicitVRs","singleVRs","multi","_isBinary","indexOf","_allowMultiple","_isExplicit","isBinary","allowMultiple","read","fixed","maxLength","defaultValue","error","readBytes","readPaddedAsciiString","padByte","readPaddedEncodedString","args","valueArgs","func","self","forEach","k","singularArgs","byteCount","apply","lengths","allowInvalidVRLength","valid","valarr","total","checkValue","checklen","isString","displaylen","checkLength","maxCharLength","check","errmsg","addTagAccessors","_tag$vr","__hasTagAccessors","VRinstances","prototype","parseUnknownVr","ParsedUnknownValue","AsciiStringRepresentation","_ValueRepresentation","_get","_getPrototypeOf","EncodedStringRepresentation","_ValueRepresentation2","BinaryRepresentation","_ValueRepresentation3","binaryStream","_writeOptions$fragmen","fragmentMultiframe","fragmentSize","frames","bufferLength","needsPadding","fragmentsLength","ceil","frameBuffer","frameStream","j","fragmentStart","isFinalFragment","fragmentEnd","fragStream","addPaddingByte","binaryData","itemTagValue","itemLength","numOfFrames","offsets","SequenceItemTag","SequenceDelimiterTag","getNextSequenceItemData","nextTag","e","range","fragments","_range","_slicedToArray","rangeStream","frameSize","buf","mergedFrame","u8Data","reduce","bytes","ApplicationEntity","_AsciiStringRepresent","_super4","trim","CodeString","_AsciiStringRepresent2","_super5","AgeString","_AsciiStringRepresent3","_super6","_this3","AttributeTag","_ValueRepresentation4","_super7","_this4","DateValue","_AsciiStringRepresent4","_super8","_this5","DecimalString","_AsciiStringRepresent5","_super9","_this6","BACKSLASH","ds","dsArray","Number","formatValue","sign_chars","logval","log10","abs","use_scientific","trunc_str","toExponential","toFixed","_this7","DateTime","_AsciiStringRepresent6","_super10","_this8","FloatingPointSingle","_ValueRepresentation5","_super11","_this9","FloatingPointDouble","_ValueRepresentation6","_super12","_this10","IntegerString","_AsciiStringRepresent7","_super13","_this11","integerStringArray","_this12","LongString","_EncodedStringReprese","_super14","_this13","LongText","_EncodedStringReprese2","_super15","_this14","PersonName","_EncodedStringReprese3","_super16","_this15","_iterator","_createForOfIteratorHelper","_step","s","n","done","pnValue","keys","checkComponentLengths","err","f","_iterator2","_step2","pnString","cmp","ShortString","_EncodedStringReprese4","_super17","_this16","SignedLong","_ValueRepresentation7","_super18","_this17","SequenceOfItems","_ValueRepresentation8","_super19","_this18","noMultiple","sqlength","undefLength","elements","itemStream","toRead","undef","stack","g","ge","items","_read","item","SignedShort","_ValueRepresentation9","_super20","_this19","ShortText","_EncodedStringReprese5","_super21","_this20","TimeValue","_AsciiStringRepresent8","_super22","_this21","UnlimitedCharacters","_EncodedStringReprese6","_super23","_this22","UnlimitedText","_EncodedStringReprese7","_super24","_this23","UnsignedShort","_ValueRepresentation10","_super25","_this24","UnsignedLong","_ValueRepresentation11","_super26","_this25","UniqueIdentifier","_AsciiStringRepresent9","_super27","_this26","uidRegExp","uid","UniversalResource","_AsciiStringRepresent10","_super28","_this27","UnknownValue","_BinaryRepresentation","_super29","_this28","_BinaryRepresentation2","_super30","_this29","arrayBuffer","streamFromBuffer","times","OtherWordString","_BinaryRepresentation3","_super31","_this30","OtherByteString","_BinaryRepresentation4","_super32","_this31","OtherDoubleString","_BinaryRepresentation5","_super33","_this32","OtherFloatString","_BinaryRepresentation6","_super34","_this33","AE","AS","AT","CS","DA","DS","DT","FL","FD","IS","LO","LT","OB","OD","OF","OW","PN","SH","SL","SQ","SS","ST","TM","UC","UI","UL","UN","UR","US","UT","customDictionary","customNameMap","_generateCustomNameMap","denaturalizeDataset","dataset","punctuateTag","rawTag","match","unpunctuateTag","parseIntFromTag","integerValue","tagAsIntegerFromName","cleanDataset","cleanedDataset","data","cleanedValues","Value","constructor","namifyDataset","namedDataset","namedValues","punctuatedTag","entry","naturalizeDataset","naturalDataset","_vrMap","naturalName","InlineBinary","BulkDataURI","naturalValues","denaturalizeValue","naturalValue","thereIsUndefinedValues","some","unnaturalDataset","dataValue","dataItem","unnaturalValues","datasetIndex","nestedDataset","warn","validMetaNames","random","date","now","Date","toISOString","time","dateTime","_generateNameMap","dict","_generateUIDMap","sopClassUIDsByName","sopClassNamesByUID","encodingMapping","gb18030","gbk","encapsulatedSyntaxes","bufferStream","ignoreErrors","untilTag","includeUntilTagValue","_readTag","readInfo","cleanTagString","coding","toLowerCase","readFile","el","metaLength","metaStream","metaHeader","mainSyntax","objects","dicomDict","DicomDict","writeTagObject","tagString","jsonObjects","useStream","sortedTags","sort","tagObject","elementData","lookupTag","retObj","meta","upsertTag","metaSyntax","fileStream","DICOMWEB","rootURL","progressCallback","request","endpoint","parameters","payload","responseType","service","endpointService","url","firstParameter","parameter","encodeURIComponent","promiseHandler","resolve","reject","XMLHttpRequest","open","onload","response","onprogress","onerror","send","promise","Promise","bind","patients","studies","patientID","PatientID","series","studyInstanceUID","StudyInstanceUID","instances","seriesInstanceUID","SeriesInstanceUID","instance","sopInstanceUID","requestType","studyUID","seriesUID","objectUID","contentType","tests","testingServerURL","testOptions","then","responses","patient","types","wado","services","randomEntry","array","Colors","d65WhitePointXYZ","dicomlab2RGB","dicomlab","lab2RGB","dicomlab2LAB","rgb2DICOMLAB","rgb","lab2DICOMLAB","rgb2LAB","lab","xyz2LAB","rgb2XYZ","gammaCorrection","pow","invGammaCorrection","R","G","B","xyz","whitePoint","X","Y","Z","labf","xyz2RGB","lab2XYZ","L","a","b","labfInv","R1","G1","B1","minimumComponent","min","datasetToDict","fileMetaInformationVersionArray","TransferSyntaxUID","_meta","MediaStorageSOPClassUID","SOPClassUID","MediaStorageSOPInstanceUID","SOPInstanceUID","ImplementationVersionName","ImplementationClassUID","FileMetaInformationVersion","denaturalized","datasetToBuffer","Buffer","datasetToBlob","Blob","DerivedDataset","datasets","JSON","parse","stringify","o","Manufacturer","ManufacturerModelName","SeriesDescription","SeriesNumber","SoftwareVersions","DeviceSerialNumber","SeriesDate","SeriesTime","ContentDate","ContentTime","ClinicalTrialTimePointID","ClinicalTrialCoordinatingCenterName","ClinicalTrialSeriesID","ImageComments","ContentQualification","referencedDatasets","referencedDataset","derive","assignToDataset","assignFromReference","tags","assignFromOptions","copyDataset","DerivedPixels","_DerivedDataset","ContentLabel","ContentDescription","ContentCreatorName","ImageType","LossyImageCompression","InstanceNumber","SharedFunctionalGroupsSequence","PerFrameFunctionalGroupsSequence","PixelData","DerivedImage","_DerivedPixels","Normalizer","normalize","consistentSOPClassUIDs","sopClassUID","normalizerForSOPClassUID","toUID","sopClassUIDMap","CTImage","CTImageNormalizer","ParametricMapStorage","PMImageNormalizer","MRImage","MRImageNormalizer","EnhancedCTImage","EnhancedCTImageNormalizer","LegacyConvertedEnhancedCTImage","EnhancedMRImage","EnhancedMRImageNormalizer","LegacyConvertedEnhancedMRImage","EnhancedUSVolume","EnhancedUSVolumeNormalizer","PETImage","PETImageNormalizer","EnhancedPETImage","LegacyConvertedEnhancedPETImage","Segmentation","SEGImageNormalizer","DeformableSpatialRegistration","DSRNormalizer","isMultiframeSOPClassUID","multiframeSOPClasses","isMultiframeDataset","normalizeToDataset","normalizerClass","normalizer","ImageNormalizer","_Normalizer","convertToMultiframe","normalizeMultiframe","derivation","referenceDataset","NumberOfFrames","Rows","Columns","BitsAllocated","PixelRepresentation","RescaleSlope","RescaleIntercept","referencePosition","ImagePositionPatient","rowVector","ImageOrientationPatient","columnVector","scanAxis","vec3CrossProduct","distanceDatasetPairs","position","positionVector","vec3Subtract","distance","vec3Dot","frame","pair","pixels","frameView","RangeError","message","_distanceDatasetPairs","distance0","dataset0","distance1","SpacingBetweenSlices","PlaneOrientationSequence","PixelMeasuresSequence","PixelSpacing","SliceThickness","ReferencedSeriesSequence","ReferencedInstanceSequence","PlanePositionSequence","FrameVOILUTSequence","WindowCenter","WindowWidth","ReferencedSOPClassUID","ReferencedSOPInstanceUID","dimensionUID","DimensionOrganizationSequence","DimensionOrganizationUID","DimensionIndexSequence","DimensionIndexPointer","FunctionalGroupPointer","DimensionDescriptionLabel","StudyID","validLateralities","Laterality","PresentationLUTShape","BodyPartExamined","FrameAnatomySequence","AnatomicRegionSequence","CodeValue","CodingSchemeDesignator","CodeMeaning","FrameLaterality","rescaleIntercept","rescaleSlope","PixelValueTransformationSequence","RescaleType","frameNumber","FrameContentSequence","FrameAcquisitionDuration","StackID","InStackPositionNumber","DimensionIndexValues","frameTime","AcquisitionDate","AcquisitionTime","frameContentSequence","FrameAcquisitionDateTime","FrameReferenceDateTime","wcww","center","width","functionalGroup","FrameVOILUT","wc","ww","ax","ay","az","bx","by","bz","out","_ImageNormalizer","MRImageFrameTypeSequence","FrameType","PixelPresentation","VolumetricProperties","VolumeBasedCalculationTechnique","ComplexImageComponent","AcquisitionContrast","_ImageNormalizer2","_ImageNormalizer3","_ImageNormalizer4","_ImageNormalizer5","_ImageNormalizer6","_ImageNormalizer7","_ImageNormalizer8","_Normalizer2","includeSliceSpacing","Modality","SamplesPerPixel","PhotometricInterpretation","BitsStored","HighBit","SegmentationType","SegmentSequence","setNumberOfFrames","bitPackPixelData","isBitpacked","console","unpackedPixelData","uInt8ViewUnpackedPixelData","bitPackedPixelData","addSegmentFromLabelmap","Segment","labelmaps","segmentIndexInLabelmap","referencedFrameNumbers","_addSegmentPixelDataFromLabelmaps","ReferencedSegmentNumber","_addSegmentMetadata","_addPerFrameFunctionalGroups","segmentIndex","existingFrames","sliceLength","byteOffset","pixelDataUInt8View","occupiedValue","_getOccupiedValue","l","labelmap","addSegment","_addSegmentPixelData","perFrameFunctionalGroups","SegmentIdentificationSequence","ReferencedFrameNumber","referencedInstanceSequenceI","DerivationImageSequence","SourceImageSequence","PurposeOfReferenceCodeSequence","DerivationCodeSequence","SegmentLabel","SegmentedPropertyCategoryCodeSequence","SegmentedPropertyTypeCodeSequence","SegmentAlgorithmType","SegmentAlgorithmName","reNumberedSegmentCopy","SegmentNumber","RecommendedDisplayCIELabValue","ParametricMap","StructuredReport","EnhancedSR","ValueType","TID1500MeasurementReport","TIDIncludeGroups","ImageLibraryContentSequence","CurrentRequestedProcedureEvidenceSequence","PersonObserverName","RelationshipType","ConceptNameCodeSequence","tid1500","ContinuityOfContent","PerformedProcedureCodeSequence","CompletionFlag","VerificationFlag","ReferencedPerformedProcedureStepSequence","CodingSchemeIdentificationSequence","CodingSchemeName","CodingSchemeVersion","CodingSchemeResponsibleOrganization","ContentTemplateSequence","MappingResource","TemplateIdentifier","ContentSequence","ConceptCodeSequence","validate","contentItem","derivationSourceDatasetOrDatasets","derivationSourceDatasets","addTID1501MeasurementGroups","sopInstanceUIDsToSeriesInstanceUIDMap","TID1501MeasurementGroups","child","parsedSOPInstances","measurementGroup","TID300Measurements","measurement","ReferencedSOPSequence","derivationSourceDataset","find","dsd","ImagingMeasurments","TID1501MeasurementGroup","measurementGroups","TID300Measurement","getMeasurementGroup","contentSequenceEntries","_toConsumableArray","toArray","codeMeaningEquals","codeMeaningName","graphicTypeEquals","graphicType","GraphicType","FINDING","FINDING_SITE","FINDING_SITE_OLD","codeValueMatch","code","oldCode","getTID300ContentItem","tool","toolType","toolClass","getTID300RepresentationArguments","TID300Representation","toolData","toolTypeData","MeasurementReport","CORNERSTONE_TOOL_CLASSES_BY_TOOL_TYPE","Measurements","getSetupMeasurementData","MeasurementGroup","contentSequenceArr","findingGroup","findingSiteGroups","NUMGroup","SCOORDGroup","defaultState","sopInstanceUid","frameIndex","complete","finding","findingSites","fsg","description","findingSite","location","generateReport","toolState","metadataProvider","allMeasurementGroups","firstImageId","generalSeriesModule","imageId","sopCommonModule","toolTypes","report","generateToolState","hooks","REPORT","GROUP","TRACKING_IDENTIFIER","imagingMeasurementContent","measurementData","cornerstoneToolClasses","CORNERSTONE_TOOL_CLASSES_BY_UTILITY_TYPE","registeredToolClasses","measurementGroupContentSequence","TrackingIdentifierGroup","TrackingIdentifierValue","TextValue","getToolClass","tc","isValidCornerstoneTrackingIdentifier","getMeasurementData","registerTool","utilityToolType","MEASUREMENT_BY_TOOLTYPE","props","getMeasurement","getTrackingGroups","getFindingGroup","getFindingSiteGroups","trackingIdentifierTextValue","UID","MM_UNIT","MM2_UNIT","NO_UNIT","NO2_UNIT","measurementMap","px","mm","mm2","unit2CodingValue","units","space","baseUnit","codingUnit","Length","_TID300Measurement","_this$props","point1","point2","_this$props$unit","unit","MeasuredValueSequence","MeasurementUnitsCodeSequence","NumericValue","GraphicData","y","_MeasurementReport$ge","state","handles","textBox","hasMoved","movesIndependently","drawnIndependently","allowedOutsideImage","hasBoundingBox","_SCOORDGroup$GraphicD","TID300Length","TrackingIdentifier","_TrackingIdentifier$s","_TrackingIdentifier$s2","cornerstone4Tag","CORNERSTONE_4_TAG","expandPoints","points","allPoints","point","z","Polyline","area","_this$props$areaUnit","areaUnit","_this$props$use3DSpat","use3DSpatialCoordinates","perimeter","FreehandRoi","active","cachedStats","color","invalidated","_tool$cachedStats","_cachedStats$area","_cachedStats$perimete","TID300Polyline","Bidirectional","longAxis","shortAxis","longAxisLength","shortAxisLength","BIDIRECTIONAL","LONG_AXIS","SHORT_AXIS","_state","longAxisNUMGroup","longAxisSCOORDGroup","shortAxisNUMGroup","shortAxisSCOORDGroup","longestDiameter","shortestDiameter","bottomRight","max","highlight","perpendicularStart","perpendicularEnd","isCreating","_defineProperty","_tool$handles","TID300Bidirectional","Ellipse","ELLIPTICALROI","EllipticalRoi","majorAxis","minorAxis","minorAxisLength","sqrt","minorAxisDirection","halfMinorAxisLength","corner1","corner2","initialRotation","visible","halfXLength","halfYLength","TID300Ellipse","Circle","CIRCLEROI","CircleRoi","radius","_cachedStats$areaUnit","_cachedStats$unit","PI","TID300Circle","Point","ARROW_ANNOTATE","CORNERSTONEFREETEXT","ArrowAnnotate","text","TID300RepresentationArguments","TID300Point","iota","isBuffer","flipImageOrientationPatient","h","iop","hv","theta","cosTheta","cos","sinTheta","sin","oneMinusCosTheta","kdotv","vRot","kxv","crossProduct3D","r","c","rxc","rRot","rotateVectorAroundUnitVector","cRot","flipMatrix2D","matrix","_matrix$shape","shape","rows","cols","ndarray","_matrix$shape2","resultColsMinus1","nearlyEqual","epsilon","absA","absB","diff","MAX_VALUE","generateSegmentation","images","brushData","segments","image0","dims","columns","xy","numSegments","_getSegCount","seg","isMultiframe","_createSegFromImages","_getNumberOfFramesPer","_getNumberOfFramesPerSegment","referencedFramesPerSegment","segmentIndicies","referencedFrameIndicies","segment","_extractCornerstoneToolsPixelData","segBlob","referencedFrames","pixelDataIndex","imageIdSpecificToolState","brushPixelData","brush","p","segIdx","image","dicomData","multiframe","SegmentationDerivation","imageIds","imagePlaneModule","rowCosines","columnCosines","validOrientations","getValidOrientations","sharedImageOrientationPatient","segMetadata","getSegmentMetadata","unpackPixelData","inPlane","PerFrameFunctionalGroups","ImageOrientationPatientI","pixelDataI2D","alignedPixelDataI","alignPixelDataWithSourceData","getImageIdOfSourceImage","addImageIdSpecificBrushToolState","segType","MaximumFractionalValue","onlyMaxAndZero","pixelData2D","brushDataI","cToolsPixelData","_pixelData2D$shape","getImageIdOfReferencedFrame","getImageIdOfReferencedSingleFramedSOPInstance","imageIdFrameNumber","orientations","flipIOP","iop90","rotateDirectionCosinesInPlane","compareIOP","rotateMatrix902D","dx","iop1","iop2","segmentSequence","seriesInstanceUid","EPSILON","glMatrix.ARRAY_TYPE","subtract","cross","glMatrix.RANDOM","glMatrix.EPSILON","numberOfFrames","frameLength","header","createHeader","encodedFrames","frameOffset","encodeFrame","rleArray","rowOffset","uint8Row","literalRunLength","getLiteralRunLength","literalRun","replicateRunLength","getReplicateRunLength","headerLength","bodyLength","encodedFrameBuffer","headerView","Uint32Array","bodyView","headerUint32","rleEncodedFrames","rleEncodedFrame","uint8FrameView","decodeFrame","uInt8Frame","byteValue","N","next","global","fillSegmentation","generateSegmentationDefaultOptions","rleEncode","inputLabelmaps3D","userOptions","segmentation","labelmaps3D","referencedFramesPerLabelmap","_loop","labelmapIndex","labelmap3D","labelmaps2D","metadata","_loop2","labelmap2D","segmentsOnLabelmap","segmentMetadata","_getLabelmapsFromRefernecedFrameIndicies","SegmentationFractionalType","skipOverlapping","tolerance","hasCoordinateSystem","orientation","checkOrientation","overlapping","checkSEGsOverlapping","insertFunction","insertOverlappingPixelDataPlanar","insertPixelDataPlanar","segmentsOnFrameArray","segmentsOnFrame","arrayBufferLength","labelmapBufferArray","findReferenceSourceImageId","frameSegment","FrameOfReferenceUID","PerFrameFunctionalGroup","frameSourceImageSequence","getImageIdOfSourceImagebySourceImageSequence","referencedSeriesSequence","ReferencedSeriesInstanceUID","getImageIdOfSourceImagebyGeometry","numberOfSegs","groupsLen","frameSegmentsMapping","Map","_loop3","getSegmentIndex","imageIdIndex","findIndex","has","segmentArray","_ret","entries","_step$value","user","role","temp2DArray","fill","M","m","tempBuffer","tempSegmentsOnFrame","cloneDeep","segmentIndexToProcess","_loop4","_i2","sourceImageMetadata","labelmap2DView","segmentOnFrame","_ret2","_loop5","_ret3","sourceDataDimensions","operation","compareArrays","checkIfPerpendicular","absDotColumnCosines","absDotRowCosines","imageIdsIndexc","array1","array2","labelmaps3DorBrushData","cornerstoneToolsVersion","Segmentation_4X","Segmentation_3X","CobbAngle","point3","point4","rAngle","COBB_ANGLE","start2","end2","TID300CobbAngle","ANGLE","Angle","middle","RectangleRoi","Cornerstone","CodingScheme","codeValues","worldToImageCoords","getCornerstoneLabelFromDefaultState","_defaultState$finding","cornersoneFreeTextCodingValue","Cornerstone3DCodingScheme","freeTextLabel","fs","generateDatasetMeta","generateDerivationSourceDataset","sopInstanceUIDToImageIdMap","referencedImageId","annotation","annotationUID","toolName","frameOfReferenceUID","label","tid1500MeasurementReport","imageToWorldCoords","CORNERSTONE_3D_TAG","worldCoords","activeHandleIndex","_data$cachedStats","_ref","cornerstone3DTag","firstPointPairs","secondPointPairs","firstPointPairsDistance","secondPointPairsDistance","shortAxisPoints","longAxisPoints","longAxisStartImage","longAxisEndImage","shortAxisStartImage","shortAxisEndImage","EllipticalROI","pointsWorld","worldPos","majorAxisStart","vec3","majorAxisEnd","minorAxisStart","minorAxisEnd","majorAxisVec","minorAxisVec","columnCosinesVec","projectedMajorAxisOnColVec","projectedMinorAxisOnColVec","absoluteOfMajorDotProduct","absoluteOfMinorDotProduct","ellipsePoints","top","bottom","left","right","topBottomLength","leftRightLength","imagePixelModule","xOffset","yOffset","secondPoint","arrowFirst","_data$handles","pointImage","PROBE","Probe","pointsImage","PLANARFREEHANDROI","closedContourThreshold","PlanarFreehandROI","distanceBetweenFirstAndLastPoint","isOpenContour","pop","polyline","firstPoint","Cornerstone3D","CodeScheme","dicomlab2RGBA","cielab","rgba","round","Zx","Zy","Zz","norm","sum","den","geometryFromFunctionalGroups","geometry","pixelMeasures","planeOrientation","firstFunctionalGroup","lastFunctionalGroup","firstPosition","lastPosition","origin","spacing","dimensions","columnStepToPatient","rowStepToPatient","planeNormal","sliceStep","direction","generateSegments","functionalGroups","segmentNumber","nextOffset","packedSegment","VTKjs","measurements","MICROSCOPY_TOOL_CLASSES_BY_TOOL_TYPE","rois","measurementsByGraphicType","roi","scoord3d","graphicData","coord","mg","MICROSCOPY_TOOL_CLASSES_BY_UTILITY_TYPE","measurementType","measurementContent","add","Set","all","one","ch","Polygon","TID300Polygon","DICOMMicroscopyViewer","adapters","TID1500","Calibration","TID300","uint8ArrayToString","limit","stringToUint8Array","identifyBoundary","parts","substr","containsToken","token","findToken","maxSearchLength","searchLength","multipartEncode","boundary","guid","contentTypeString","footer","headerArray","footerArray","footerLength","contentArrays","datasetBuffer","contentArray","contentLength","multipartArray","multipartDecode","separator","headerIndex","boundaryString","boundaryIndex","spacingLength","boundaryEnd","s4","utilities","compression","Code","_value","_meaning","meaning","_schemeDesignator","schemeDesignator","_schemeVersion","schemeVersion","CodedConcept","equals","other","ValueTypes","CODE","COMPOSITE","CONTAINER","DATE","DATETIME","IMAGE","NUM","PNAME","SCOORD","SCOORD3D","TCOORD","TEXT","TIME","UIDREF","WAVEFORM","freeze","GraphicTypes","CIRCLE","ELLIPSE","ELLIPSOID","MULTIPOINT","POINT","POLYLINE","GraphicTypes3D","POLYGON","TemporalRangeTypes","BEGIN","END","MULTISEGMENT","SEGMENT","RelationshipTypes","CONTAINS","HAS_ACQ_CONTENT","HAS_CONCEPT_MOD","HAS_OBS_CONTEXT","HAS_PROPERTIES","INFERRED_FROM","SELECTED_FROM","PixelOriginInterpretations","FRAME","VOLUME","isFloat","zeroPad","hours","getHours","minutes","getMinutes","seconds","getSeconds","milliseconds","getMilliseconds","year","getFullYear","month","getMonth","day","getDate","_Array","_len","_key","_wrapNativeSuper","ContentItem","valueType","relationshipType","relationshipTypes","CodeContentItem","_ContentItem","TextContentItem","_ContentItem2","PNameContentItem","_ContentItem3","TimeContentItem","_ContentItem4","Time","DateContentItem","_ContentItem5","DateTimeContentItem","_ContentItem6","otions","UIDRefContentItem","_ContentItem7","NumContentItem","_ContentItem8","FloatingPointValue","qualifier","NumericValueQualifierCodeSequence","ContainerContentItem","_ContentItem9","isContentContinuous","templateID","CompositeContentItem","_ContentItem10","referencedSOPClassUID","referencedSOPInstanceUID","ReferenceSOPSequence","ImageContentItem","_ContentItem11","referencedFrameSegmentNumber","referencedSegmentNumbers","ScoordContentItem","_ContentItem12","pixelOriginInterpretation","fiducialUID","FiducialUID","Scoord3DContentItem","_ContentItem13","ReferencedFrameOfReferenceUID","TcoordContentItem","_ContentItem14","temporalRangeType","referencedSamplePositions","ReferencedSamplePositions","referencedTimeOffsets","ReferencedTimeOffsets","referencedDateTime","ReferencedDateTime","LongitudinalTemporalOffsetFromEvent","_NumContentItem","eventType","SourceImageForRegion","_ImageContentItem","SourceImageForSegmentation","_ImageContentItem2","SourceSeriesForSegmentation","_UIDRefContentItem","referencedSeriesInstanceUID","ImageRegion","_ScoordContentItem","sourceImage","ImageRegion3D","_Scoord3DContentItem","VolumeSurface","_Scoord3DContentItem2","frameOfFeferenceUID","sourceImages","sourceSeries","SourceSeriesForRegion","ReferencedRealWorldValueMap","_CompositeContentItem","option","FindingSite","_CodeContentItem","anatomicLocation","laterality","topographicalModifier","ReferencedSegmentationFrame","_ContentSequence","segmentationItem","referencedSOPClassUid","sopClassUid","referencedSOPInstanceUid","referencedFrameNumber","referencedSegmentNumber","ReferencedSegmentation","_ContentSequence2","frameNumbers","Template","Measurement","_Template","_valueItem$ContentSeq","valueItem","trackingIdentifier","method","methodItem","derivationItem","site","properties","_valueItem$ContentSeq2","MeasurementProperties","referencedRegions","region","referencedVolume","referencedSegmentation","referencedRealWorldValueMap","algorithmId","_valueItem$ContentSeq3","AlgorithmIdentification","_Template2","normality","normalityItem","measurementStatisticalProperties","MeasurementStatisticalProperties","normalRangeProperties","NormalRangeProperties","levelOfSignificance","levelOfSignificanceItem","selectionStatus","selectionStatusItem","upperMeasurementUncertainty","upperMeasurementUncertaintyItem","lowerMeasurementUncertainty","lowerMeasurementUncertaintyItem","_Template3","concept","authority","authorityItem","_Template4","ObservationContext","_Template5","observerPersonContext","ObserverContext","observerDeviceContext","subjectContext","SubjectContext","_Template6","observerType","observerTypeItem","observerIdentifyingAttributes","person","device","PersonObserverIdentifyingAttributes","DeviceObserverIdentifyingAttributes","_Template7","nameItem","loginName","loginNameItem","organizationName","organizationNameItem","roleInOrganization","roleInOrganizationItem","roleInProcedure","roleInProcedureItem","_Template8","deviceObserverItem","manufacturerName","manufacturerNameItem","modelName","modelNameItem","serialNumber","serialNumberItem","physicalLocation","physicalLocationItem","_Template9","subjectClass","subjectClassSpecificContext","subjectClassItem","fetus","specimen","SubjectContextFetus","SubjectContextSpecimen","SubjectContextDevice","_Template10","subjectID","subjectIdItem","_Template11","specimenUidItem","identifier","specimenIdentifierItem","containerIdentifier","containerIdentifierItem","specimenType","specimenTypeItem","_Template12","deviceNameItem","deviceUidItem","_possibleConstructorReturn","LanguageOfContentItemAndDescendants","_Template13","language","languageItem","_MeasurementsAndQualitatitiveEvaluations","_Template14","_groupItem$ContentSeq","groupItem","session","sessionItem","findingType","findingTypeItem","timePointContext","_groupItem$ContentSeq2","TimePointContext","qualitativeEvaluations","evaluation","_ROIMeasurementsAndQualitativeEvaluations","_MeasurementsAndQuali","wereReferencesProvided","numReferences","PlanarROIMeasurementsAndQualitativeEvaluations","_ROIMeasurementsAndQu","referencedRegion","VolumetricROIMeasurementsAndQualitativeEvaluations","_ROIMeasurementsAndQu2","MeasurementsDerivedFromMultipleROIMeasurements","_Template15","_valueItem$ContentSeq4","measurementProperties","_valueItem$ContentSeq5","MeasurementAndQualitativeEvaluationGroup","_MeasurementsAndQuali2","ROIMeasurements","_Template16","_Template17","_item$ContentSequence","_item$ContentSequence2","_item$ContentSequence3","observationContext","procedureReported","languageOfContentItemAndDescendants","procedure","procedureItem","imageLibraryItem","ImageLibrary","wereOptionsProvided","imagingMeasurements","derivedImagingMeasurements","numOptionsProvided","containerItem","_construct","_Template18","timePoint","timePointItem","timePointType","timePointTypeItem","timePointOrder","timePointOrderItem","subjectTimePointIdentifier","subjectTimePointIdentifierItem","protocolTimePointIdentifier","protocolTimePointIdentifierItem","temporalOffsetFromEvent","LongitudinalTemporalOffsetFromEventContentItem","_Template19","libraryItem","_Template20","versionItem","parameterItem","param","_Template21","trackingIdentifierItem","trackingUIDItem","_attributesToInclude","Comprehensive3DSR","evidence","content","seriesNumber","seriesDescription","instanceNumber","manufacturer","institutionName","InstitutionName","institutionalDepartmentName","InstitutionalDepartmentName","institutionDepartmentName","isComplete","isVerified","verifyingObserverName","verifyingOrganization","ovserver_item","VerifyingObserverName","VerifyingOrganization","VerificationDateTime","VerifyingObserverSequence","observer_item","isFinal","PreliminaryFlag","keyword","evidenceCollection","instanceItem","evidenceStudyItem","seriesItem","requestedProcedures","ReferencedRequestSequence","PertinentOtherEvidenceSequence","previousVersions","preCollection","preStudyItem","PredecessorDocumentsSequence","performedProcedureCodes","sr","contentItems","documents","templates","valueTypes","tagNamesToEmpty","getTagsNameToEmpty","cleanTags","tagNamesToReplace","customTagNamesToEmpty","tagInfo","tagNumber","newValue","derivations","normalizers","anonymizer","dcmjs"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;CAWA,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC;CACtB,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;CACpC,MAAM,QAAQ,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;AACxC;KACA,eAAc,GAAG,MAAM,aAAa,CAAC;CACrC,EAAE,WAAW,CAAC,MAAM,EAAE;CACtB,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC;CAC5B,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG;CACnB,MAAM,KAAK,EAAE,CAAC;CACd,MAAM,KAAK,EAAE,CAAC;CACd,MAAM,IAAI,EAAE,CAAC;CACb,MAAM,IAAI,EAAE,CAAC;CACb,MAAM,KAAK,EAAE,CAAC;CACd,MAAM,MAAM,EAAE,CAAC;CACf,KAAK,CAAC;CACN,GAAG;AACH;CACA,EAAE,IAAI,MAAM,GAAG;CACf,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC;CACxB,GAAG;AACH;CACA,EAAE,IAAI,MAAM,GAAG;CACf,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC;CAC1B,GAAG;AACH;CACA,EAAE,IAAI,MAAM,CAAC,MAAM,EAAE;CACrB,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC;CAC5B,GAAG;AACH;CACA,EAAE,IAAI,OAAO,GAAG;CAChB,IAAI,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;CACnC,OAAO,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,WAAW,EAAE,CAAC;CACtC,OAAO,MAAM,CAAC,CAAC,GAAG,KAAK,GAAG,KAAK,QAAQ,CAAC,CAAC;CACzC,GAAG;AACH;CACA;CACA,EAAE,UAAU,CAAC,GAAG,EAAE,UAAU,EAAE;CAC9B,IAAI,MAAM,MAAM,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC;CACnC,IAAI,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,UAAU,EAAE;CAC3C,MAAM,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;CAC9B,KAAK;AACL;CACA,IAAI,IAAI;CACR,MAAM,OAAO,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CACvD,KAAK,CAAC,OAAO,CAAC,EAAE;CAChB;CACA,MAAM,OAAO,SAAS,MAAM,GAAG;CAC/B;CACA,QAAQ,OAAO,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC;CACxE,OAAO,CAAC;CACR,KAAK;CACL,GAAG;AACH;CACA,EAAE,YAAY,CAAC,KAAK,EAAE;CACtB,IAAI,IAAI,MAAM,GAAG,KAAK,CAAC;AACvB;CACA,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,KAAK,WAAW,EAAE;CAChG,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;CACjD,KAAK;AACL;CACA,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;CACjC,MAAM,OAAO,MAAM,CAAC;CACpB,KAAK;AACL;CACA,IAAI,OAAO,KAAK,CAAC;CACjB,GAAG;AACH;CACA,EAAE,UAAU,CAAC,KAAK,EAAE;CACpB,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;CAChF,MAAM,OAAO,IAAI,CAAC;CAClB,KAAK;AACL;CACA,IAAI,OAAO,KAAK,CAAC;CACjB,GAAG;AACH;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,EAAE,IAAI,CAAC,UAAU,EAAE;CACnB,IAAI,IAAI,UAAU,KAAK,OAAO,EAAE;CAChC;CACA,MAAM,UAAU,GAAG,KAAK,CAAC;CACzB,KAAK;AACL;CACA;CACA,IAAI,IAAI,OAAO,OAAO,CAAC,UAAU,CAAC,KAAK,WAAW,EAAE;CACpD,MAAM,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;CAClD,KAAK,MAAM,IAAI,OAAO,OAAO,CAAC,GAAG,KAAK,WAAW,EAAE;CACnD,MAAM,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;CAC7C,KAAK;AACL;CACA;CACA,IAAI,OAAO,IAAI,CAAC;CAChB,GAAG;AACH;CACA,EAAE,cAAc,CAAC,QAAQ,EAAE;CAC3B,IAAI,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;AAC9C;CACA,IAAI,IAAI,KAAK,IAAI,IAAI,EAAE;CACvB,MAAM,MAAM,IAAI,KAAK,CAAC,CAAC,0DAA0D,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;CAC/F,KAAK;AACL;CACA,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,UAAU,EAAE;CACzD,MAAM,MAAM,IAAI,SAAS;CACzB,QAAQ,uFAAuF;CAC/F,OAAO,CAAC;CACR,KAAK;AACL;CACA,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,UAAU,KAAK;CACzC,MAAM,MAAM,EAAE,CAAC,UAAU,CAAC,WAAW,EAAE,GAAG,WAAW,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;AACtE;CACA,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,WAAW,GAAG,KAAK,GAAG,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;CACnF,KAAK,CAAC,CAAC;AACP;CACA;CACA,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;CACxC,GAAG;CACH,CAAC;;;;;;;;;;;;;CCzHD,MAAMA,eAAa,GAAGC,eAA0B,CAAC;AACjD;CACA,MAAMC,UAAQ,GAAG;CACjB,EAAE,KAAK,EAAE,CAAC,IAAI,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;CACpC,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,CAAC,IAAI;CAClC,EAAE,QAAQ,EAAE,qBAAqB;CACjC,EAAE,IAAI,EAAE,MAAM,IAAI,IAAI,EAAE,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACrD,CAAC,CAAC;AACF;CACA,IAAA,eAAc,GAAG,MAAM,aAAa,SAASF,eAAa,CAAC;CAC3D,EAAE,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE;CAC/B,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;CAClB,IAAI,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAEE,UAAQ,EAAE,OAAO,CAAC,CAAC;CACxD,GAAG;AACH;CACA,EAAE,WAAW,CAAC,KAAK,EAAE;CACrB,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC,MAAM,EAAE,IAAI,KAAK;CAC5E,MAAM,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACpC;CACA,MAAM,IAAI,EAAE,EAAE;CACd,QAAQ,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;CAClD,OAAO;AACP;CACA,MAAM,OAAO,MAAM,CAAC;CACpB,KAAK,CAAC,CAAC;CACP,GAAG;AACH;CACA,EAAE,IAAI,CAAC,UAAU,EAAE;CACnB,IAAI,MAAM,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACtC;CACA,IAAI,OAAO,CAAC,GAAG,IAAI,KAAK;CACxB,MAAM,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;CAClD,MAAM,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;AAC3B;CACA,MAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;CACrC;CACA,QAAQ,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,KAAK,CAAC;CACjC,OAAO,MAAM;CACb,QAAQ,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;CAC7B,OAAO;AACP;CACA,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;CAClB,KAAK,CAAC;CACN,GAAG;CACH,CAAC;;;;;;;;;;;;;CC5CD,MAAM,aAAa,GAAGD,eAAkC,CAAC;AACzD;CACA,MAAM,aAAa,GAAGE,eAAkC,CAAC;AACzD;CACA,MAAM,QAAQ,GAAG;CACjB,EAAE,OAAO,EAAE,IAAI;CACf,EAAE,KAAK,EAAE,MAAM;CACf,EAAE,IAAI,EAAE,CAAC,IAAI,IAAI,EAAE;CACnB,EAAE,MAAM,EAAE,IAAI;CACd,CAAC,CAAC;AACF;KACA,UAAc,GAAG,MAAM,QAAQ,CAAC;CAChC,EAAE,WAAW,CAAC,OAAO,EAAE;CACvB;CACA;CACA,IAAI,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;CAC3B,IAAI,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;CACxD,IAAI,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC;AACzC;CACA,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;CAC7B,MAAM,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM;CACpC,UAAU,IAAI,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC;CACjD,UAAU,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC;CAClC,MAAM,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC;CACnC,KAAK;AACL;CACA,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE;CACpC,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,IAAI,CAAC;CACvC,KAAK;AACL;CACA,IAAI,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,WAAW,CAAC;AAC5C;CACA;CACA,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;CACpC,GAAG;AACH;CACA,EAAE,IAAI,OAAO,GAAG;CAChB,IAAI,OAAO,IAAI,CAAC,aAAa,CAAC;CAC9B,GAAG;AACH;CACA,EAAE,IAAI,OAAO,CAAC,OAAO,EAAE;CACvB;CACA,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;CAC1B,IAAI,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC;CACjC,IAAI,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;CAClD,GAAG;AACH;CACA,EAAE,OAAO,GAAG;CACZ,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;CACpC,GAAG;AACH;CACA,EAAE,MAAM,GAAG;CACX,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;CACnC,GAAG;AACH;CACA,EAAE,IAAI,KAAK,GAAG;CACd,IAAI,OAAO,IAAI,CAAC,YAAY,CAAC;CAC7B,GAAG;AACH;CACA,EAAE,IAAI,KAAK,CAAC,QAAQ,EAAE;CACtB,IAAI,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;AAC5D;CACA,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,IAAI,IAAI,EAAE;CAC1C,MAAM,MAAM,IAAI,UAAU,CAAC,CAAC,oDAAoD,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;CAC9F,KAAK;AACL;CACA,IAAI,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;CAC9B,IAAI,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;AAC7C;CACA,IAAI,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;CACtE;CACA,MAAM,OAAO,CAAC,IAAI,CAAC,qEAAqE,CAAC,CAAC;CAC1F,KAAK;CACL,GAAG;AACH;CACA,EAAE,IAAI,MAAM,GAAG;CACf;CACA,IAAI,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;CACrC,GAAG;CACH,CAAC;;;;;;;;;;;;;;EC/ED,MAAM,QAAQ,GAAGF,UAAqB,CAAC;EACvC,MAAM,aAAa,GAAGE,eAAkC,CAAC;EACzD,MAAM,aAAa,GAAGC,eAAkC,CAAC;AACzD;CACA,CAAA,MAAM,SAAS,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC;AAC1C;EACA,MAAM,aAAa,SAAS,QAAQ,CAAC;CACrC,GAAE,WAAW,GAAG;MACZ,KAAK,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;AAC/B;MACI,IAAI,CAAC,KAAK,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;MAC/B,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,aAAa,EAAE,aAAa,EAAE,CAAC;KACpD;AACH;IACE,IAAI,SAAS,GAAG;CAClB,KAAI,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC;KACxB;AACH;IACE,IAAI,OAAO,GAAG;CAChB,KAAI,OAAO,IAAI,CAAC,KAAK,CAAC;KACnB;AACH;IACE,MAAM,CAAC,IAAI,EAAE;MACX,IAAI,OAAO,CAAC;AAChB;CACA,KAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;CAClC,OAAM,OAAO,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;CAC/B,MAAK,MAAM;QACL,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;OACnC;AACL;CACA,KAAI,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE;CACrB,OAAM,OAAO,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;OAC3B;AACL;MACI,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC;MAC7B,MAAM,QAAQ,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;AAC3C;CACA,KAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;CAC3D,OAAM,MAAM,IAAI,SAAS,CAAC,gDAAgD,CAAC,CAAC;OACvE;AACL;MACI,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;MAC5B,IAAI,CAAC,MAAM,EAAE;CACjB,OAAM,MAAM,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;QAC5D,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC;OACzB;MACD,OAAO,MAAM,CAAC;KACf;GACF;AACD;EACA,MAAiB,CAAA,OAAA,GAAA,IAAI,aAAa,EAAE,CAAC;AACrC;CACA;EACA,MAAyB,CAAA,OAAA,CAAA,OAAA,GAAA,MAAM,CAAC,OAAO,CAAA;;;;;;AC/DvC,KAAMC,GAAG,GAAGC,YAAY,CAACC,MAAM,CAAC,OAAO,EAAC;;CAExC;CACA;CACA;CACA;CACA;CACA,IAAMC,aAAa,GAAGF,YAAY,CAACC,MAAM,CAAC,kBAAkB,CAAC;;CCT7D;CAGA,IAAME,QAAQ,GAAG;CACbC,EAAAA,sBAAsB,EAAtBA,sBAAsB;CACtBC,EAAAA,IAAI,EAAJA,IAAI;CACJC,EAAAA,MAAM,EAANA,MAAAA;CACJ,CAAC,CAAA;CAKD,SAASF,sBAAsBA,CAACG,SAAS,EAAE;CACvC;CACA,EAAA,IAAMC,SAAS,GAAGD,SAAS,GAAG,CAAC,CAAA;;CAE/B;GACA,IAAIE,aAAa,GAAGC,IAAI,CAACC,KAAK,CAACJ,SAAS,GAAG,CAAC,CAAC,CAAA;;CAE7C;GACA,IAAIC,SAAS,GAAG,CAAC,EAAE;CACfC,IAAAA,aAAa,EAAE,CAAA;CACnB,GAAA;CAEA,EAAA,OAAOA,aAAa,CAAA;CACxB,CAAA;CAEA,SAASJ,IAAIA,CAACO,SAAS,EAAE;CACrB,EAAA,IAAML,SAAS,GAAGK,SAAS,CAACC,MAAM,CAAA;CAElCd,EAAAA,GAAG,CAACe,KAAK,CAAC,aAAa,GAAGP,SAAS,CAAC,CAAA;CAEpC,EAAA,IAAMM,MAAM,GAAGT,sBAAsB,CAACG,SAAS,CAAC,CAAA;CAChD;;CAEA,EAAA,IAAMQ,YAAY,GAAG,IAAIC,UAAU,CAACH,MAAM,CAAC,CAAA;GAE3C,IAAII,OAAO,GAAG,CAAC,CAAA;GAEf,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGX,SAAS,EAAEW,CAAC,EAAE,EAAE;CAChC;KACAD,OAAO,GAAGP,IAAI,CAACC,KAAK,CAACO,CAAC,GAAG,CAAC,CAAC,CAAA;CAE3B,IAAA,IAAMC,QAAQ,GAAGP,SAAS,CAACM,CAAC,CAAC,KAAK,CAAC,CAAA;;CAEnC;CACA;CACA;;CAEA,IAAA,IAAME,aAAa,GAAGD,QAAQ,IAAID,CAAC,GAAG,CAAC,CAAA;CACvC;CACA;;CAEAH,IAAAA,YAAY,CAACE,OAAO,CAAC,IAAIG,aAAa,CAAA;;CAEtC;CACJ,GAAA;;CAEA,EAAA,OAAOL,YAAY,CAAA;CACvB,CAAA;;CAEA;CACA;CACA,SAAST,MAAMA,CAACe,aAAa,EAAE;CAC3B,EAAA,IAAMC,QAAQ,GAAG,IAAIN,UAAU,CAACK,aAAa,CAAC,CAAA;GAC9C,IAAME,SAAS,GAAG,IAAIP,UAAU,CAAC,CAAC,GAAGM,QAAQ,CAACT,MAAM,CAAC,CAAA;CAErD,EAAA,KAAK,IAAIW,SAAS,GAAG,CAAC,EAAEA,SAAS,GAAGD,SAAS,CAACV,MAAM,EAAEW,SAAS,EAAE,EAAE;CAC/D,IAAA,IAAMC,QAAQ,GAAGD,SAAS,GAAG,CAAC,CAAA;KAC9B,IAAME,YAAY,GAAGhB,IAAI,CAACC,KAAK,CAACa,SAAS,GAAG,CAAC,CAAC,CAAA;CAC9CD,IAAAA,SAAS,CAACC,SAAS,CAAC,GAChB,GAAG,IAAI,CAACF,QAAQ,CAACI,YAAY,CAAC,GAAI,CAAC,IAAID,QAAS,KAAKA,QAAQ,CAAC,CAAA;CACtE,GAAA;CAEA,EAAA,OAAOF,SAAS,CAAA;CACpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CC1EA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;CACA;AACA;CACA;CACA;AACA;AACA;CACA;CACA;CACA;CACA,MAAM,SAAS,iBAAiB,CAAC,CAAC;CAClC;AACA;CACA;CACA,MAAM,QAAQ,gBAAgB,CAAC,CAAC;CAChC,MAAM,MAAM,kBAAkB,CAAC,CAAC;CAChC;CACA,MAAM,WAAW,eAAe,CAAC,CAAC;AAClC;CACA;AACA;AACA;CACA,SAAS,MAAM,CAAC,GAAG,EAAE,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE;AACnF;CACA;AACA;CACA,MAAM,YAAY,GAAG,CAAC,CAAC;CACvB,MAAM,YAAY,GAAG,CAAC,CAAC;CACvB,MAAM,SAAS,MAAM,CAAC,CAAC;CACvB;AACA;CACA,MAAM,WAAW,MAAM,CAAC,CAAC;CACzB,MAAM,WAAW,MAAM,GAAG,CAAC;CAC3B;AACA;CACA;CACA;CACA;CACA;AACA;CACA,MAAM,cAAc,IAAI,EAAE,CAAC;CAC3B;AACA;CACA,MAAM,UAAU,QAAQ,GAAG,CAAC;CAC5B;AACA;CACA,MAAM,SAAS,SAAS,UAAU,GAAG,CAAC,GAAG,cAAc,CAAC;CACxD;AACA;CACA,MAAM,SAAS,SAAS,EAAE,CAAC;CAC3B;AACA;CACA,MAAM,UAAU,QAAQ,EAAE,CAAC;CAC3B;AACA;CACA,MAAM,WAAW,OAAO,CAAC,GAAG,SAAS,GAAG,CAAC,CAAC;CAC1C;AACA;CACA,MAAM,UAAU,QAAQ,EAAE,CAAC;CAC3B;AACA;CACA,MAAM,QAAQ,QAAQ,EAAE,CAAC;CACzB;AACA;AACA;CACA;CACA;CACA;AACA;CACA,MAAM,WAAW,GAAG,CAAC,CAAC;CACtB;AACA;CACA,MAAM,SAAS,KAAK,GAAG,CAAC;CACxB;AACA;CACA,MAAM,OAAO,OAAO,EAAE,CAAC;CACvB;AACA;CACA,MAAM,SAAS,KAAK,EAAE,CAAC;CACvB;AACA;CACA,MAAM,WAAW,GAAG,EAAE,CAAC;CACvB;AACA;CACA;CACA,MAAM,WAAW;CACjB,EAAE,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9E;CACA,MAAM,WAAW;CACjB,EAAE,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACxF;CACA,MAAM,YAAY;CAClB,EAAE,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1D;CACA,MAAM,QAAQ;CACd,EAAE,IAAI,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;CACnE;AACA;CACA;CACA;CACA;AACA;CACA;CACA;CACA;AACA;CACA;AACA;CACA,MAAM,aAAa,GAAG,GAAG,CAAC;AAC1B;CACA;CACA,MAAM,YAAY,IAAI,IAAI,KAAK,CAAC,CAAC,SAAS,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;CACrD,MAAM,CAAC,YAAY,CAAC,CAAC;CACrB;CACA;CACA;CACA;CACA;AACA;CACA,MAAM,YAAY,IAAI,IAAI,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;CAC/C,MAAM,CAAC,YAAY,CAAC,CAAC;CACrB;CACA;CACA;AACA;CACA,MAAM,UAAU,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;CAC/C,MAAM,CAAC,UAAU,CAAC,CAAC;CACnB;CACA;CACA;CACA;AACA;CACA,MAAM,YAAY,IAAI,IAAI,KAAK,CAAC,WAAW,GAAG,WAAW,GAAG,CAAC,CAAC,CAAC;CAC/D,MAAM,CAAC,YAAY,CAAC,CAAC;CACrB;AACA;CACA,MAAM,WAAW,KAAK,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;CAChD,MAAM,CAAC,WAAW,CAAC,CAAC;CACpB;AACA;CACA,MAAM,SAAS,OAAO,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC;CAC3C,MAAM,CAAC,SAAS,CAAC,CAAC;CAClB;AACA;AACA;CACA,SAAS,cAAc,CAAC,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE;AAChF;CACA,EAAE,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC;CAClC,EAAE,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC;CACjC,EAAE,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC;CACjC,EAAE,IAAI,CAAC,KAAK,UAAU,KAAK,CAAC;CAC5B,EAAE,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC;AACjC;CACA;CACA,EAAE,IAAI,CAAC,SAAS,MAAM,WAAW,IAAI,WAAW,CAAC,MAAM,CAAC;CACxD,CAAC;AACD;AACA;CACA,IAAI,aAAa,CAAC;CAClB,IAAI,aAAa,CAAC;CAClB,IAAI,cAAc,CAAC;AACnB;AACA;CACA,SAAS,QAAQ,CAAC,QAAQ,EAAE,SAAS,EAAE;CACvC,EAAE,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;CAC3B,EAAE,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;CACpB,EAAE,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;CAC7B,CAAC;AACD;AACA;AACA;CACA,MAAM,MAAM,GAAG,CAAC,IAAI,KAAK;AACzB;CACA,EAAE,OAAO,IAAI,GAAG,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,GAAG,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;CACxE,CAAC,CAAC;AACF;AACA;CACA;CACA;CACA;CACA;CACA,MAAM,SAAS,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK;CAC5B;CACA;CACA,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC;CAC1C,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC;CAChD,CAAC,CAAC;AACF;AACA;CACA;CACA;CACA;CACA;CACA,MAAM,SAAS,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK;AACxC;CACA,EAAE,IAAI,CAAC,CAAC,QAAQ,IAAI,QAAQ,GAAG,MAAM,CAAC,EAAE;CACxC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,QAAQ,IAAI,MAAM,CAAC;CAC/C,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;CAC3B,IAAI,CAAC,CAAC,MAAM,GAAG,KAAK,KAAK,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;CAChD,IAAI,CAAC,CAAC,QAAQ,IAAI,MAAM,GAAG,QAAQ,CAAC;CACpC,GAAG,MAAM;CACT,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,QAAQ,IAAI,MAAM,CAAC;CAC/C,IAAI,CAAC,CAAC,QAAQ,IAAI,MAAM,CAAC;CACzB,GAAG;CACH,CAAC,CAAC;AACF;AACA;CACA,MAAM,SAAS,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,KAAK;AAClC;CACA,EAAE,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC;CAC9D,CAAC,CAAC;AACF;AACA;CACA;CACA;CACA;CACA;CACA;CACA,MAAM,UAAU,GAAG,CAAC,IAAI,EAAE,GAAG,KAAK;AAClC;CACA,EAAE,IAAI,GAAG,GAAG,CAAC,CAAC;CACd,EAAE,GAAG;CACL,IAAI,GAAG,IAAI,IAAI,GAAG,CAAC,CAAC;CACpB,IAAI,IAAI,MAAM,CAAC,CAAC;CAChB,IAAI,GAAG,KAAK,CAAC,CAAC;CACd,GAAG,QAAQ,EAAE,GAAG,GAAG,CAAC,EAAE;CACtB,EAAE,OAAO,GAAG,KAAK,CAAC,CAAC;CACnB,CAAC,CAAC;AACF;AACA;CACA;CACA;CACA;CACA,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK;AACxB;CACA,EAAE,IAAI,CAAC,CAAC,QAAQ,KAAK,EAAE,EAAE;CACzB,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;CAC3B,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;CACjB,IAAI,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC;AACnB;CACA,GAAG,MAAM,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,EAAE;CAC9B,IAAI,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;CACjD,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;CACnB,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC;CACpB,GAAG;CACH,CAAC,CAAC;AACF;AACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,MAAM,UAAU,GAAG,CAAC,CAAC,EAAE,IAAI;CAC3B;CACA;CACA;CACA,EAAE,MAAM,IAAI,cAAc,IAAI,CAAC,QAAQ,CAAC;CACxC,EAAE,MAAM,QAAQ,UAAU,IAAI,CAAC,QAAQ,CAAC;CACxC,EAAE,MAAM,KAAK,aAAa,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;CACrD,EAAE,MAAM,SAAS,SAAS,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;CACnD,EAAE,MAAM,KAAK,aAAa,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC;CACpD,EAAE,MAAM,IAAI,cAAc,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC;CACpD,EAAE,MAAM,UAAU,QAAQ,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC;CACpD,EAAE,IAAI,CAAC,CAAC;CACR,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;CACX,EAAE,IAAI,IAAI,CAAC;CACX,EAAE,IAAI,KAAK,CAAC;CACZ,EAAE,IAAI,CAAC,CAAC;CACR,EAAE,IAAI,QAAQ,GAAG,CAAC,CAAC;AACnB;CACA,EAAE,KAAK,IAAI,GAAG,CAAC,EAAE,IAAI,IAAI,UAAU,EAAE,IAAI,EAAE,EAAE;CAC7C,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;CACzB,GAAG;AACH;CACA;CACA;CACA;CACA,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC;AAC/C;CACA,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE;CACjD,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;CAClB,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC;CAC7D,IAAI,IAAI,IAAI,GAAG,UAAU,EAAE;CAC3B,MAAM,IAAI,GAAG,UAAU,CAAC;CACxB,MAAM,QAAQ,EAAE,CAAC;CACjB,KAAK;CACL,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,WAAW,IAAI,CAAC;CACnC;AACA;CACA,IAAI,IAAI,CAAC,GAAG,QAAQ,EAAE,EAAE,SAAS,EAAE;AACnC;CACA,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;CACvB,IAAI,KAAK,GAAG,CAAC,CAAC;CACd,IAAI,IAAI,CAAC,IAAI,IAAI,EAAE;CACnB,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;CAC9B,KAAK;CACL,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU;CAC7B,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC;CACpC,IAAI,IAAI,SAAS,EAAE;CACnB,MAAM,CAAC,CAAC,UAAU,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,WAAW,KAAK,CAAC,CAAC;CAC7D,KAAK;CACL,GAAG;CACH,EAAE,IAAI,QAAQ,KAAK,CAAC,EAAE,EAAE,OAAO,EAAE;AACjC;CACA;CACA;AACA;CACA;CACA,EAAE,GAAG;CACL,IAAI,IAAI,GAAG,UAAU,GAAG,CAAC,CAAC;CAC1B,IAAI,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;CAC9C,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;CACvB,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;CAC9B,IAAI,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;CAC7B;CACA;CACA;CACA,IAAI,QAAQ,IAAI,CAAC,CAAC;CAClB,GAAG,QAAQ,QAAQ,GAAG,CAAC,EAAE;AACzB;CACA;CACA;CACA;CACA;CACA;CACA,EAAE,KAAK,IAAI,GAAG,UAAU,EAAE,IAAI,KAAK,CAAC,EAAE,IAAI,EAAE,EAAE;CAC9C,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;CACzB,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE;CACpB,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;CACtB,MAAM,IAAI,CAAC,GAAG,QAAQ,EAAE,EAAE,SAAS,EAAE;CACrC,MAAM,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,aAAa,IAAI,EAAE;CAC5C;CACA,QAAQ,CAAC,CAAC,OAAO,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU;CAC7E,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,WAAW,IAAI,CAAC;CACvC,OAAO;CACP,MAAM,CAAC,EAAE,CAAC;CACV,KAAK;CACL,GAAG;CACH,CAAC,CAAC;AACF;AACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,MAAM,SAAS,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ;CAC3C;CACA;CACA;CACA;CACA,EAAE,MAAM,SAAS,GAAG,IAAI,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;CAC9C,EAAE,IAAI,IAAI,GAAG,CAAC,CAAC;CACf,EAAE,IAAI,IAAI,CAAC;CACX,EAAE,IAAI,CAAC,CAAC;AACR;CACA;CACA;CACA;CACA,EAAE,KAAK,IAAI,GAAG,CAAC,EAAE,IAAI,IAAI,UAAU,EAAE,IAAI,EAAE,EAAE;CAC7C,IAAI,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;CAC9D,GAAG;CACH;CACA;CACA;CACA;CACA;CACA;AACA;CACA,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,QAAQ,EAAE,CAAC,EAAE,EAAE;CACnC,IAAI,IAAI,GAAG,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,SAAS;CACtC,IAAI,IAAI,GAAG,KAAK,CAAC,EAAE,EAAE,SAAS,EAAE;CAChC;CACA,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,YAAY,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;AAC7D;CACA;CACA;CACA,GAAG;CACH,CAAC,CAAC;AACF;AACA;CACA;CACA;CACA;CACA,MAAM,cAAc,GAAG,MAAM;AAC7B;CACA,EAAE,IAAI,CAAC,CAAC;CACR,EAAE,IAAI,IAAI,CAAC;CACX,EAAE,IAAI,MAAM,CAAC;CACb,EAAE,IAAI,IAAI,CAAC;CACX,EAAE,IAAI,IAAI,CAAC;CACX,EAAE,MAAM,QAAQ,GAAG,IAAI,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;CAC7C;AACA;CACA;CACA;AACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;CACA;CACA,EAAE,MAAM,GAAG,CAAC,CAAC;CACb,EAAE,KAAK,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,cAAc,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE;CACpD,IAAI,WAAW,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;CAC/B,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;CACnD,MAAM,YAAY,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC;CACpC,KAAK;CACL,GAAG;CACH;CACA;CACA;CACA;CACA;CACA,EAAE,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;AAClC;CACA;CACA,EAAE,IAAI,GAAG,CAAC,CAAC;CACX,EAAE,KAAK,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE;CACpC,IAAI,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CAC3B,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;CACnD,MAAM,UAAU,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;CAChC,KAAK;CACL,GAAG;CACH;CACA,EAAE,IAAI,KAAK,CAAC,CAAC;CACb,EAAE,OAAO,IAAI,GAAG,SAAS,EAAE,IAAI,EAAE,EAAE;CACnC,IAAI,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC;CAChC,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;CACzD,MAAM,UAAU,CAAC,GAAG,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;CACtC,KAAK;CACL,GAAG;CACH;AACA;CACA;CACA,EAAE,KAAK,IAAI,GAAG,CAAC,EAAE,IAAI,IAAI,UAAU,EAAE,IAAI,EAAE,EAAE;CAC7C,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;CACvB,GAAG;AACH;CACA,EAAE,CAAC,GAAG,CAAC,CAAC;CACR,EAAE,OAAO,CAAC,IAAI,GAAG,EAAE;CACnB,IAAI,YAAY,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC;CACxC,IAAI,CAAC,EAAE,CAAC;CACR,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;CAClB,GAAG;CACH,EAAE,OAAO,CAAC,IAAI,GAAG,EAAE;CACnB,IAAI,YAAY,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC;CACxC,IAAI,CAAC,EAAE,CAAC;CACR,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;CAClB,GAAG;CACH,EAAE,OAAO,CAAC,IAAI,GAAG,EAAE;CACnB,IAAI,YAAY,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC;CACxC,IAAI,CAAC,EAAE,CAAC;CACR,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;CAClB,GAAG;CACH,EAAE,OAAO,CAAC,IAAI,GAAG,EAAE;CACnB,IAAI,YAAY,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC;CACxC,IAAI,CAAC,EAAE,CAAC;CACR,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;CAClB,GAAG;CACH;CACA;CACA;CACA;CACA,EAAE,SAAS,CAAC,YAAY,EAAE,SAAS,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC;AACnD;CACA;CACA,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE;CAClC,IAAI,YAAY,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC;CACxC,IAAI,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,YAAY,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;CACpD,GAAG;AACH;CACA;CACA,EAAE,aAAa,GAAG,IAAI,cAAc,CAAC,YAAY,EAAE,WAAW,EAAE,UAAU,GAAG,CAAC,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;CACvG,EAAE,aAAa,GAAG,IAAI,cAAc,CAAC,YAAY,EAAE,WAAW,EAAE,CAAC,WAAW,SAAS,EAAE,UAAU,CAAC,CAAC;CACnG,EAAE,cAAc,GAAG,IAAI,cAAc,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,UAAU,UAAU,EAAE,WAAW,CAAC,CAAC;AACtG;CACA;CACA,CAAC,CAAC;AACF;AACA;CACA;CACA;CACA;CACA,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK;AAC1B;CACA,EAAE,IAAI,CAAC,CAAC;AACR;CACA;CACA,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC,EAAE;CACvE,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC,EAAE;CACvE,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC,EAAE;AACrE;CACA,EAAE,CAAC,CAAC,SAAS,CAAC,SAAS,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC;CAC1C,EAAE,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC;CAC/B,EAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC;CAC7B,CAAC,CAAC;AACF;AACA;CACA;CACA;CACA;CACA,MAAM,SAAS,GAAG,CAAC,CAAC;CACpB;CACA,EAAE,IAAI,CAAC,CAAC,QAAQ,GAAG,CAAC,EAAE;CACtB,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;CAC3B,GAAG,MAAM,IAAI,CAAC,CAAC,QAAQ,GAAG,CAAC,EAAE;CAC7B;CACA,IAAI,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;CAC1C,GAAG;CACH,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;CACf,EAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC;CACjB,CAAC,CAAC;AACF;CACA;CACA;CACA;CACA;CACA,MAAM,UAAU,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM;CACvC;CACA;CACA;CACA;CACA;CACA,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;AACf;CACA,EAAE,IAAI,MAAM,EAAE;CACd,IAAI,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;CACtB,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;CACvB,GAAG;CACH;CACA;CACA;CACA,EAAE,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;CAClE,EAAE,CAAC,CAAC,OAAO,IAAI,GAAG,CAAC;CACnB,CAAC,CAAC;AACF;CACA;CACA;CACA;CACA;CACA,MAAM,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,KAAK;AACvC;CACA,EAAE,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;CACpB,EAAE,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;CACpB,EAAE,QAAQ,IAAI,CAAC,GAAG,CAAC,YAAY,IAAI,CAAC,GAAG,CAAC;CACxC,UAAU,IAAI,CAAC,GAAG,CAAC,cAAc,IAAI,CAAC,GAAG,CAAC,aAAa,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;CAC9E,CAAC,CAAC;AACF;CACA;CACA;CACA;CACA;CACA;CACA;CACA,MAAM,UAAU,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;CAC9B;CACA;CACA;CACA;CACA,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;CACtB,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;CACjB,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;CAC1B;CACA,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ;CACtB,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE;CACxD,MAAM,CAAC,EAAE,CAAC;CACV,KAAK;CACL;CACA,IAAI,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE;AACxD;CACA;CACA,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;CAC1B,IAAI,CAAC,GAAG,CAAC,CAAC;AACV;CACA;CACA,IAAI,CAAC,KAAK,CAAC,CAAC;CACZ,GAAG;CACH,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;CAChB,CAAC,CAAC;AACF;AACA;CACA;CACA;AACA;CACA;CACA;CACA;CACA,MAAM,cAAc,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK;CACvC;CACA;CACA;CACA;CACA,EAAE,IAAI,IAAI,CAAC;CACX,EAAE,IAAI,EAAE,CAAC;CACT,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;CACb,EAAE,IAAI,IAAI,CAAC;CACX,EAAE,IAAI,KAAK,CAAC;AACZ;CACA,EAAE,IAAI,CAAC,CAAC,QAAQ,KAAK,CAAC,EAAE;CACxB,IAAI,GAAG;CACP,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAC5F,MAAM,EAAE,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC;CACvC,MAAM,EAAE,EAAE,CAAC;AACX;CACA,MAAM,IAAI,IAAI,KAAK,CAAC,EAAE;CACtB,QAAQ,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;CAChC;CACA,OAAO,MAAM;CACb;CACA,QAAQ,IAAI,GAAG,YAAY,CAAC,EAAE,CAAC,CAAC;CAChC,QAAQ,SAAS,CAAC,CAAC,EAAE,IAAI,GAAG,UAAU,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;CACnD,QAAQ,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;CAClC,QAAQ,IAAI,KAAK,KAAK,CAAC,EAAE;CACzB,UAAU,EAAE,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC;CAClC,UAAU,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;CAClC,SAAS;CACT,QAAQ,IAAI,EAAE,CAAC;CACf,QAAQ,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;CAC5B;AACA;CACA,QAAQ,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;CAClC,QAAQ,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;CAClC,QAAQ,IAAI,KAAK,KAAK,CAAC,EAAE;CACzB,UAAU,IAAI,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC;CAClC,UAAU,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;CACpC,SAAS;CACT,OAAO;AACP;CACA;CACA;CACA;AACA;CACA,KAAK,QAAQ,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAE;CAC9B,GAAG;AACH;CACA,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;CACjC,CAAC,CAAC;AACF;AACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,MAAM,UAAU,GAAG,CAAC,CAAC,EAAE,IAAI;CAC3B;CACA;CACA;CACA,EAAE,MAAM,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC;CACjC,EAAE,MAAM,KAAK,MAAM,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;CAC9C,EAAE,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;CAC7C,EAAE,MAAM,KAAK,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;CACxC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;CACX,EAAE,IAAI,QAAQ,GAAG,CAAC,CAAC,CAAC;CACpB,EAAE,IAAI,IAAI,CAAC;AACX;CACA;CACA;CACA;CACA;CACA,EAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC;CACjB,EAAE,CAAC,CAAC,QAAQ,GAAG,WAAW,CAAC;AAC3B;CACA,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;CAC9B,IAAI,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,EAAE;CACpC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC;CAC1C,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACrB;CACA,KAAK,MAAM;CACX,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC;CAClC,KAAK;CACL,GAAG;AACH;CACA;CACA;CACA;CACA;CACA;CACA,EAAE,OAAO,CAAC,CAAC,QAAQ,GAAG,CAAC,EAAE;CACzB,IAAI,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,QAAQ,GAAG,CAAC,GAAG,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC;CAClE,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC;CAChC,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;CACtB,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;AAChB;CACA,IAAI,IAAI,SAAS,EAAE;CACnB,MAAM,CAAC,CAAC,UAAU,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,SAAS;CAClD,KAAK;CACL;CACA,GAAG;CACH,EAAE,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAC3B;CACA;CACA;CACA;CACA,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE;AAChF;CACA;CACA;CACA;CACA,EAAE,IAAI,GAAG,KAAK,CAAC;CACf,EAAE,GAAG;CACL;CACA;CACA,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC;CAC9B,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;CACjD,IAAI,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,aAAa,CAAC;CACvC;AACA;CACA,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC;AAC9B;CACA,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;CAC7B,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AAC7B;CACA;CACA,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU;CAC1E,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;CAC7E,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,WAAW,IAAI,CAAC;AAC7D;CACA;CACA,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,aAAa,GAAG,IAAI,EAAE,CAAC;CACnC,IAAI,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,aAAa,CAAC;AACvC;CACA,GAAG,QAAQ,CAAC,CAAC,QAAQ,IAAI,CAAC,EAAE;AAC5B;CACA,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC;AAC/C;CACA;CACA;CACA;CACA,EAAE,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AACtB;CACA;CACA,EAAE,SAAS,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;CACxC,CAAC,CAAC;AACF;AACA;CACA;CACA;CACA;CACA;CACA,MAAM,SAAS,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ;CACpC;CACA;CACA;CACA;CACA,EAAE,IAAI,CAAC,CAAC;CACR,EAAE,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC;CACnB,EAAE,IAAI,MAAM,CAAC;AACb;CACA,EAAE,IAAI,OAAO,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,SAAS;AACxC;CACA,EAAE,IAAI,KAAK,GAAG,CAAC,CAAC;CAChB,EAAE,IAAI,SAAS,GAAG,CAAC,CAAC;CACpB,EAAE,IAAI,SAAS,GAAG,CAAC,CAAC;AACpB;CACA,EAAE,IAAI,OAAO,KAAK,CAAC,EAAE;CACrB,IAAI,SAAS,GAAG,GAAG,CAAC;CACpB,IAAI,SAAS,GAAG,CAAC,CAAC;CAClB,GAAG;CACH,EAAE,IAAI,CAAC,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,MAAM,CAAC;AAChD;CACA,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,QAAQ,EAAE,CAAC,EAAE,EAAE;CAClC,IAAI,MAAM,GAAG,OAAO,CAAC;CACrB,IAAI,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,SAAS;AAC5C;CACA,IAAI,IAAI,EAAE,KAAK,GAAG,SAAS,IAAI,MAAM,KAAK,OAAO,EAAE;CACnD,MAAM,SAAS;AACf;CACA,KAAK,MAAM,IAAI,KAAK,GAAG,SAAS,EAAE;CAClC,MAAM,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,aAAa,KAAK,CAAC;AAC9C;CACA,KAAK,MAAM,IAAI,MAAM,KAAK,CAAC,EAAE;AAC7B;CACA,MAAM,IAAI,MAAM,KAAK,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,WAAW,CAAC,EAAE;CACnE,MAAM,CAAC,CAAC,OAAO,CAAC,OAAO,GAAG,CAAC,CAAC,WAAW,CAAC;AACxC;CACA,KAAK,MAAM,IAAI,KAAK,IAAI,EAAE,EAAE;CAC5B,MAAM,CAAC,CAAC,OAAO,CAAC,SAAS,GAAG,CAAC,CAAC,WAAW,CAAC;AAC1C;CACA,KAAK,MAAM;CACX,MAAM,CAAC,CAAC,OAAO,CAAC,WAAW,GAAG,CAAC,CAAC,WAAW,CAAC;CAC5C,KAAK;AACL;CACA,IAAI,KAAK,GAAG,CAAC,CAAC;CACd,IAAI,OAAO,GAAG,MAAM,CAAC;AACrB;CACA,IAAI,IAAI,OAAO,KAAK,CAAC,EAAE;CACvB,MAAM,SAAS,GAAG,GAAG,CAAC;CACtB,MAAM,SAAS,GAAG,CAAC,CAAC;AACpB;CACA,KAAK,MAAM,IAAI,MAAM,KAAK,OAAO,EAAE;CACnC,MAAM,SAAS,GAAG,CAAC,CAAC;CACpB,MAAM,SAAS,GAAG,CAAC,CAAC;AACpB;CACA,KAAK,MAAM;CACX,MAAM,SAAS,GAAG,CAAC,CAAC;CACpB,MAAM,SAAS,GAAG,CAAC,CAAC;CACpB,KAAK;CACL,GAAG;CACH,CAAC,CAAC;AACF;AACA;CACA;CACA;CACA;CACA;CACA,MAAM,SAAS,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ;CACpC;CACA;CACA;CACA;CACA,EAAE,IAAI,CAAC,CAAC;CACR,EAAE,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC;CACnB,EAAE,IAAI,MAAM,CAAC;AACb;CACA,EAAE,IAAI,OAAO,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,SAAS;AACxC;CACA,EAAE,IAAI,KAAK,GAAG,CAAC,CAAC;CAChB,EAAE,IAAI,SAAS,GAAG,CAAC,CAAC;CACpB,EAAE,IAAI,SAAS,GAAG,CAAC,CAAC;AACpB;CACA;CACA,EAAE,IAAI,OAAO,KAAK,CAAC,EAAE;CACrB,IAAI,SAAS,GAAG,GAAG,CAAC;CACpB,IAAI,SAAS,GAAG,CAAC,CAAC;CAClB,GAAG;AACH;CACA,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,QAAQ,EAAE,CAAC,EAAE,EAAE;CAClC,IAAI,MAAM,GAAG,OAAO,CAAC;CACrB,IAAI,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,SAAS;AAC5C;CACA,IAAI,IAAI,EAAE,KAAK,GAAG,SAAS,IAAI,MAAM,KAAK,OAAO,EAAE;CACnD,MAAM,SAAS;AACf;CACA,KAAK,MAAM,IAAI,KAAK,GAAG,SAAS,EAAE;CAClC,MAAM,GAAG,EAAE,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,KAAK,CAAC,EAAE;AACpE;CACA,KAAK,MAAM,IAAI,MAAM,KAAK,CAAC,EAAE;CAC7B,MAAM,IAAI,MAAM,KAAK,OAAO,EAAE;CAC9B,QAAQ,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;CACxC,QAAQ,KAAK,EAAE,CAAC;CAChB,OAAO;CACP;CACA,MAAM,SAAS,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;CACvC,MAAM,SAAS,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AACjC;CACA,KAAK,MAAM,IAAI,KAAK,IAAI,EAAE,EAAE;CAC5B,MAAM,SAAS,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;CACzC,MAAM,SAAS,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AACjC;CACA,KAAK,MAAM;CACX,MAAM,SAAS,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;CAC3C,MAAM,SAAS,CAAC,CAAC,EAAE,KAAK,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;CAClC,KAAK;AACL;CACA,IAAI,KAAK,GAAG,CAAC,CAAC;CACd,IAAI,OAAO,GAAG,MAAM,CAAC;CACrB,IAAI,IAAI,OAAO,KAAK,CAAC,EAAE;CACvB,MAAM,SAAS,GAAG,GAAG,CAAC;CACtB,MAAM,SAAS,GAAG,CAAC,CAAC;AACpB;CACA,KAAK,MAAM,IAAI,MAAM,KAAK,OAAO,EAAE;CACnC,MAAM,SAAS,GAAG,CAAC,CAAC;CACpB,MAAM,SAAS,GAAG,CAAC,CAAC;AACpB;CACA,KAAK,MAAM;CACX,MAAM,SAAS,GAAG,CAAC,CAAC;CACpB,MAAM,SAAS,GAAG,CAAC,CAAC;CACpB,KAAK;CACL,GAAG;CACH,CAAC,CAAC;AACF;AACA;CACA;CACA;CACA;CACA;CACA,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK;AAC7B;CACA,EAAE,IAAI,WAAW,CAAC;AAClB;CACA;CACA,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;CAC/C,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAC/C;CACA;CACA,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;CAC3B;CACA;CACA;AACA;CACA;CACA;CACA;CACA;CACA,EAAE,KAAK,WAAW,GAAG,UAAU,GAAG,CAAC,EAAE,WAAW,IAAI,CAAC,EAAE,WAAW,EAAE,EAAE;CACtE,IAAI,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,aAAa,CAAC,EAAE;CAChE,MAAM,MAAM;CACZ,KAAK;CACL,GAAG;CACH;CACA,EAAE,CAAC,CAAC,OAAO,IAAI,CAAC,IAAI,WAAW,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;CACjD;CACA;AACA;CACA,EAAE,OAAO,WAAW,CAAC;CACrB,CAAC,CAAC;AACF;AACA;CACA;CACA;CACA;CACA;CACA;CACA,MAAM,cAAc,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO;CAClD;CACA;CACA;CACA,EAAE,IAAI,IAAI,CAAC;AACX;CACA;CACA;CACA;CACA;CACA,EAAE,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC;CAChC,EAAE,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;CAChC,EAAE,SAAS,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;CAChC,EAAE,KAAK,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,OAAO,EAAE,IAAI,EAAE,EAAE;CACzC;CACA,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;CAC/D,GAAG;CACH;AACA;CACA,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC;CACxC;AACA;CACA,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC;CACxC;CACA,CAAC,CAAC;AACF;AACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK;CAChC;CACA;CACA;CACA;CACA,EAAE,IAAI,UAAU,GAAG,UAAU,CAAC;CAC9B,EAAE,IAAI,CAAC,CAAC;AACR;CACA;CACA,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,UAAU,MAAM,CAAC,EAAE;CAC/C,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC,EAAE;CACjE,MAAM,OAAO,QAAQ,CAAC;CACtB,KAAK;CACL,GAAG;AACH;CACA;CACA,EAAE,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,EAAE,GAAG,CAAC,CAAC,cAAc,CAAC;CAC7E,MAAM,CAAC,CAAC,SAAS,CAAC,EAAE,GAAG,CAAC,CAAC,cAAc,CAAC,EAAE;CAC1C,IAAI,OAAO,MAAM,CAAC;CAClB,GAAG;CACH,EAAE,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE;CACpC,IAAI,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,EAAE;CAC3C,MAAM,OAAO,MAAM,CAAC;CACpB,KAAK;CACL,GAAG;AACH;CACA;CACA;CACA;CACA,EAAE,OAAO,QAAQ,CAAC;CAClB,CAAC,CAAC;AACF;AACA;CACA,IAAI,gBAAgB,GAAG,KAAK,CAAC;AAC7B;CACA;CACA;CACA;CACA,MAAM,UAAU,GAAG,CAAC,CAAC;CACrB;AACA;CACA,EAAE,IAAI,CAAC,gBAAgB,EAAE;CACzB,IAAI,cAAc,EAAE,CAAC;CACrB,IAAI,gBAAgB,GAAG,IAAI,CAAC;CAC5B,GAAG;AACH;CACA,EAAE,CAAC,CAAC,MAAM,IAAI,IAAI,QAAQ,CAAC,CAAC,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;CACvD,EAAE,CAAC,CAAC,MAAM,IAAI,IAAI,QAAQ,CAAC,CAAC,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;CACvD,EAAE,CAAC,CAAC,OAAO,GAAG,IAAI,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;AACtD;CACA,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;CACf,EAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC;AACjB;CACA;CACA,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;CAChB,CAAC,CAAC;AACF;AACA;CACA;CACA;CACA;CACA,MAAM,kBAAkB,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,IAAI;CACpD;CACA;CACA;CACA;CACA;CACA,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,YAAY,IAAI,CAAC,KAAK,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;CACxD,EAAE,UAAU,CAAC,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;CACvC,CAAC,CAAC;AACF;AACA;CACA;CACA;CACA;CACA;CACA,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK;CAC3B,EAAE,SAAS,CAAC,CAAC,EAAE,YAAY,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;CACrC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;CACxC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;CACd,CAAC,CAAC;AACF;AACA;CACA;CACA;CACA;CACA;CACA,MAAM,iBAAiB,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,IAAI;CACnD;CACA;CACA;CACA;CACA;CACA,EAAE,IAAI,QAAQ,EAAE,WAAW,CAAC;CAC5B,EAAE,IAAI,WAAW,GAAG,CAAC,CAAC;AACtB;CACA;CACA,EAAE,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,EAAE;AACnB;CACA;CACA,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,KAAK,WAAW,EAAE;CAC1C,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;CAC7C,KAAK;AACL;CACA;CACA,IAAI,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;CAC5B;CACA;AACA;CACA,IAAI,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;CAC5B;CACA;CACA;CACA;CACA;AACA;CACA;CACA;CACA;CACA,IAAI,WAAW,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;AACnC;CACA;CACA,IAAI,QAAQ,GAAG,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;CACzC,IAAI,WAAW,GAAG,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAC/C;CACA;CACA;CACA;AACA;CACA,IAAI,IAAI,WAAW,IAAI,QAAQ,EAAE,EAAE,QAAQ,GAAG,WAAW,CAAC,EAAE;AAC5D;CACA,GAAG,MAAM;CACT;CACA,IAAI,QAAQ,GAAG,WAAW,GAAG,UAAU,GAAG,CAAC,CAAC;CAC5C,GAAG;AACH;CACA,EAAE,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,QAAQ,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE;CACpD;AACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,IAAI,kBAAkB,CAAC,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;AACjD;CACA,GAAG,MAAM,IAAI,CAAC,CAAC,QAAQ,KAAK,SAAS,IAAI,WAAW,KAAK,QAAQ,EAAE;AACnE;CACA,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,YAAY,IAAI,CAAC,KAAK,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;CAC1D,IAAI,cAAc,CAAC,CAAC,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;AAClD;CACA,GAAG,MAAM;CACT,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,SAAS,IAAI,CAAC,KAAK,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;CACvD,IAAI,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,GAAG,CAAC,EAAE,WAAW,GAAG,CAAC,CAAC,CAAC;CACrF,IAAI,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC;CAChD,GAAG;CACH;CACA;CACA;CACA;CACA,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;AAChB;CACA,EAAE,IAAI,IAAI,EAAE;CACZ,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC;CACjB,GAAG;CACH;CACA;CACA,CAAC,CAAC;AACF;CACA;CACA;CACA;CACA;CACA,MAAM,WAAW,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE;CAChC;CACA;CACA;CACA;CACA;AACA;CACA,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC;CACpE,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;AAC5D;CACA,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;CAClD,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;AACf;CACA,EAAE,IAAI,IAAI,KAAK,CAAC,EAAE;CAClB;CACA,IAAI,CAAC,CAAC,SAAS,CAAC,EAAE,GAAG,CAAC,CAAC,WAAW,CAAC;CACnC,GAAG,MAAM;CACT,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;CAChB;CACA,IAAI,IAAI,EAAE,CAAC;CACX;CACA;CACA;AACA;CACA,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,GAAG,UAAU,GAAG,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC;CACpE,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC;CAC7C,GAAG;AACH;CACA;CACA;AACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;CACA,EAAE,QAAQ,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,WAAW,GAAG,CAAC,EAAE;CAC5C;CACA;CACA;CACA;CACA,CAAC,CAAC;AACF;CACA,IAAI,UAAU,IAAI,UAAU,CAAC;CAC7B,IAAI,kBAAkB,GAAG,kBAAkB,CAAC;CAC5C,IAAI,iBAAiB,IAAI,iBAAiB,CAAC;CAC3C,IAAI,WAAW,GAAG,WAAW,CAAC;CAC9B,IAAI,WAAW,GAAG,WAAW,CAAC;AAC9B;CACA,IAAI,KAAK,GAAG;CACZ,CAAC,QAAQ,EAAE,UAAU;CACrB,CAAC,gBAAgB,EAAE,kBAAkB;CACrC,CAAC,eAAe,EAAE,iBAAiB;CACnC,CAAC,SAAS,EAAE,WAAW;CACvB,CAAC,SAAS,EAAE,WAAW;CACvB,CAAC,CAAC;AACF;CACA;CACA;CACA;AACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;CACA,MAAM,OAAO,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,KAAK;CAC1C,EAAE,IAAI,EAAE,GAAG,CAAC,KAAK,GAAG,MAAM,GAAG,CAAC;CAC9B,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,KAAK,EAAE,IAAI,MAAM,GAAG,CAAC;CACvC,MAAM,CAAC,GAAG,CAAC,CAAC;AACZ;CACA,EAAE,OAAO,GAAG,KAAK,CAAC,EAAE;CACpB;CACA;CACA;CACA,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,CAAC;CAChC,IAAI,GAAG,IAAI,CAAC,CAAC;AACb;CACA,IAAI,GAAG;CACP,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;CAChC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;CACxB,KAAK,QAAQ,EAAE,CAAC,EAAE;AAClB;CACA,IAAI,EAAE,IAAI,KAAK,CAAC;CAChB,IAAI,EAAE,IAAI,KAAK,CAAC;CAChB,GAAG;AACH;CACA,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC;CAC9B,CAAC,CAAC;AACF;AACA;CACA,IAAI,SAAS,GAAG,OAAO,CAAC;AACxB;CACA;CACA;CACA;AACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;CACA;CACA,MAAM,SAAS,GAAG,MAAM;CACxB,EAAE,IAAI,CAAC,EAAE,KAAK,GAAG,EAAE,CAAC;AACpB;CACA,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;CAChC,IAAI,CAAC,GAAG,CAAC,CAAC;CACV,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;CAChC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,UAAU,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;CAC3D,KAAK;CACL,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;CACjB,GAAG;AACH;CACA,EAAE,OAAO,KAAK,CAAC;CACf,CAAC,CAAC;AACF;CACA;CACA,MAAM,QAAQ,GAAG,IAAI,WAAW,CAAC,SAAS,EAAE,CAAC,CAAC;AAC9C;AACA;CACA,MAAM,KAAK,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,KAAK;CACtC,EAAE,MAAM,CAAC,GAAG,QAAQ,CAAC;CACrB,EAAE,MAAM,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AACxB;CACA,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;AACZ;CACA,EAAE,KAAK,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;CAClC,IAAI,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC;CACjD,GAAG;AACH;CACA,EAAE,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE;CACtB,CAAC,CAAC;AACF;AACA;CACA,IAAI,OAAO,GAAG,KAAK,CAAC;AACpB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;CACA,IAAI,QAAQ,GAAG;CACf,EAAE,CAAC,OAAO,iBAAiB;CAC3B,EAAE,CAAC,OAAO,YAAY;CACtB,EAAE,CAAC,OAAO,EAAE;CACZ,EAAE,IAAI,IAAI,YAAY;CACtB,EAAE,IAAI,IAAI,cAAc;CACxB,EAAE,IAAI,IAAI,YAAY;CACtB,EAAE,IAAI,IAAI,qBAAqB;CAC/B,EAAE,IAAI,IAAI,cAAc;CACxB,EAAE,IAAI,IAAI,sBAAsB;CAChC,CAAC,CAAC;AACF;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;CACA,IAAI,WAAW,GAAG;AAClB;CACA;CACA,EAAE,UAAU,UAAU,CAAC;CACvB,EAAE,eAAe,KAAK,CAAC;CACvB,EAAE,YAAY,QAAQ,CAAC;CACvB,EAAE,YAAY,QAAQ,CAAC;CACvB,EAAE,QAAQ,YAAY,CAAC;CACvB,EAAE,OAAO,aAAa,CAAC;CACvB,EAAE,OAAO,aAAa,CAAC;AACvB;CACA;CACA;CACA;CACA,EAAE,IAAI,gBAAgB,CAAC;CACvB,EAAE,YAAY,QAAQ,CAAC;CACvB,EAAE,WAAW,SAAS,CAAC;CACvB,EAAE,OAAO,YAAY,CAAC,CAAC;CACvB,EAAE,cAAc,KAAK,CAAC,CAAC;CACvB,EAAE,YAAY,OAAO,CAAC,CAAC;CACvB,EAAE,WAAW,QAAQ,CAAC,CAAC;CACvB,EAAE,WAAW,QAAQ,CAAC,CAAC;CACvB;AACA;CACA;CACA,EAAE,gBAAgB,UAAU,CAAC;CAC7B,EAAE,YAAY,cAAc,CAAC;CAC7B,EAAE,kBAAkB,QAAQ,CAAC;CAC7B,EAAE,qBAAqB,IAAI,CAAC,CAAC;AAC7B;AACA;CACA,EAAE,UAAU,gBAAgB,CAAC;CAC7B,EAAE,cAAc,YAAY,CAAC;CAC7B,EAAE,KAAK,qBAAqB,CAAC;CAC7B,EAAE,OAAO,mBAAmB,CAAC;CAC7B,EAAE,kBAAkB,QAAQ,CAAC;AAC7B;CACA;CACA,EAAE,QAAQ,kBAAkB,CAAC;CAC7B,EAAE,MAAM,oBAAoB,CAAC;CAC7B;CACA,EAAE,SAAS,iBAAiB,CAAC;AAC7B;CACA;CACA,EAAE,UAAU,gBAAgB,CAAC;CAC7B;CACA,CAAC,CAAC;AACF;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;CACA,MAAM,EAAE,QAAQ,EAAE,gBAAgB,EAAE,eAAe,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;AACpF;AACA;AACA;AACA;CACA;CACA;AACA;CACA,MAAM;CACN,EAAE,UAAU,EAAE,YAAY,EAAE,eAAe,EAAE,YAAY,EAAE,cAAc,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS;CACnH,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,gBAAgB,EAAE,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,aAAa;CACxI,EAAE,qBAAqB,EAAE,uBAAuB;CAChD,EAAE,UAAU,EAAE,cAAc,EAAE,KAAK,EAAE,OAAO,EAAE,kBAAkB,EAAE,oBAAoB;CACtF,EAAE,SAAS;CACX,EAAE,UAAU,EAAE,YAAY;CAC1B,CAAC,GAAG,WAAW,CAAC;AAChB;CACA;AACA;AACA;CACA,MAAM,aAAa,GAAG,CAAC,CAAC;CACxB;CACA,MAAM,WAAW,GAAG,EAAE,CAAC;CACvB;CACA,MAAM,aAAa,GAAG,CAAC,CAAC;AACxB;AACA;CACA,MAAM,YAAY,IAAI,EAAE,CAAC;CACzB;CACA,MAAM,QAAQ,QAAQ,GAAG,CAAC;CAC1B;CACA,MAAM,OAAO,SAAS,QAAQ,GAAG,CAAC,GAAG,YAAY,CAAC;CAClD;CACA,MAAM,OAAO,SAAS,EAAE,CAAC;CACzB;CACA,MAAM,QAAQ,QAAQ,EAAE,CAAC;CACzB;CACA,MAAM,SAAS,OAAO,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC;CACtC;CACA,MAAM,QAAQ,IAAI,EAAE,CAAC;CACrB;AACA;CACA,MAAM,SAAS,GAAG,CAAC,CAAC;CACpB,MAAM,SAAS,GAAG,GAAG,CAAC;CACtB,MAAM,aAAa,IAAI,SAAS,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC;AAClD;CACA,MAAM,WAAW,GAAG,IAAI,CAAC;AACzB;CACA,MAAM,UAAU,GAAG,EAAE,CAAC;CACtB,MAAM,WAAW,GAAG,EAAE,CAAC;CACvB,MAAM,UAAU,GAAG,EAAE,CAAC;CACtB,MAAM,aAAa,GAAG,EAAE,CAAC;CACzB,MAAM,UAAU,GAAG,GAAG,CAAC;CACvB,MAAM,UAAU,GAAG,GAAG,CAAC;CACvB,MAAM,YAAY,GAAG,GAAG,CAAC;AACzB;CACA,MAAM,YAAY,QAAQ,CAAC,CAAC;CAC5B,MAAM,aAAa,OAAO,CAAC,CAAC;CAC5B,MAAM,iBAAiB,GAAG,CAAC,CAAC;CAC5B,MAAM,cAAc,MAAM,CAAC,CAAC;AAC5B;CACA,MAAM,OAAO,GAAG,IAAI,CAAC;AACrB;CACA,MAAM,GAAG,GAAG,CAAC,IAAI,EAAE,SAAS,KAAK;CACjC,EAAE,IAAI,CAAC,GAAG,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;CACjC,EAAE,OAAO,SAAS,CAAC;CACnB,CAAC,CAAC;AACF;CACA,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK;CACpB,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;CACxC,CAAC,CAAC;AACF;CACA,MAAMI,MAAI,GAAG,CAAC,GAAG,KAAK;CACtB,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE;CAC5D,CAAC,CAAC;AACF;AACA;CACA;CACA,IAAI,SAAS,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,UAAU,IAAI,IAAI,IAAI,CAAC,CAAC,SAAS,CAAC;CACjF;CACA;CACA;CACA,IAAI,IAAI,GAAG,SAAS,CAAC;AACrB;CACA;CACA;CACA;CACA;CACA;CACA;CACA,MAAM,aAAa,GAAG,CAAC,IAAI,KAAK;CAChC,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;AACvB;CACA;CACA,EAAE,IAAI,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC;CACtB,EAAE,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,EAAE;CAC5B,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC;CACzB,GAAG;CACH,EAAE,IAAI,GAAG,KAAK,CAAC,EAAE,EAAE,OAAO,EAAE;AAC5B;CACA,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,WAAW,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;CAC7F,EAAE,IAAI,CAAC,QAAQ,IAAI,GAAG,CAAC;CACvB,EAAE,CAAC,CAAC,WAAW,IAAI,GAAG,CAAC;CACvB,EAAE,IAAI,CAAC,SAAS,IAAI,GAAG,CAAC;CACxB,EAAE,IAAI,CAAC,SAAS,IAAI,GAAG,CAAC;CACxB,EAAE,CAAC,CAAC,OAAO,IAAI,GAAG,CAAC;CACnB,EAAE,IAAI,CAAC,CAAC,OAAO,KAAK,CAAC,EAAE;CACvB,IAAI,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC;CACtB,GAAG;CACH,CAAC,CAAC;AACF;AACA;CACA,MAAM,gBAAgB,GAAG,CAAC,CAAC,EAAE,IAAI,KAAK;CACtC,EAAE,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC,WAAW,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;CAClG,EAAE,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,QAAQ,CAAC;CAC7B,EAAE,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;CACxB,CAAC,CAAC;AACF;AACA;CACA,MAAM,QAAQ,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK;CAC3B,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC;CACjC,CAAC,CAAC;AACF;AACA;CACA;CACA;CACA;CACA;CACA;CACA,MAAM,WAAW,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK;AAC9B;CACA;CACA;CACA,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC;CAChD,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;CACxC,CAAC,CAAC;AACF;AACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,MAAM,QAAQ,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,KAAK;AAC7C;CACA,EAAE,IAAI,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC;AAC1B;CACA,EAAE,IAAI,GAAG,GAAG,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,CAAC,EAAE;CACjC,EAAE,IAAI,GAAG,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE;AAC9B;CACA,EAAE,IAAI,CAAC,QAAQ,IAAI,GAAG,CAAC;AACvB;CACA;CACA,EAAE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;CACxE,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE;CAC7B,IAAI,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;CACxD,GAAG;AACH;CACA,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE;CAClC,IAAI,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;CACtD,GAAG;AACH;CACA,EAAE,IAAI,CAAC,OAAO,IAAI,GAAG,CAAC;CACtB,EAAE,IAAI,CAAC,QAAQ,IAAI,GAAG,CAAC;AACvB;CACA,EAAE,OAAO,GAAG,CAAC;CACb,CAAC,CAAC;AACF;AACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,MAAM,aAAa,GAAG,CAAC,CAAC,EAAE,SAAS,KAAK;AACxC;CACA,EAAE,IAAI,YAAY,GAAG,CAAC,CAAC,gBAAgB,CAAC;CACxC,EAAE,IAAI,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC;CACxB,EAAE,IAAI,KAAK,CAAC;CACZ,EAAE,IAAI,GAAG,CAAC;CACV,EAAE,IAAI,QAAQ,GAAG,CAAC,CAAC,WAAW,CAAC;CAC/B,EAAE,IAAI,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC;CAChC,EAAE,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,MAAM,GAAG,aAAa,CAAC;CACxD,MAAM,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,QAAQ;AACzD;CACA,EAAE,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC;AACxB;CACA,EAAE,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC;CACzB,EAAE,MAAM,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC;AACvB;CACA;CACA;CACA;AACA;CACA,EAAE,MAAM,MAAM,GAAG,CAAC,CAAC,QAAQ,GAAG,SAAS,CAAC;CACxC,EAAE,IAAI,SAAS,IAAI,IAAI,CAAC,IAAI,GAAG,QAAQ,GAAG,CAAC,CAAC,CAAC;CAC7C,EAAE,IAAI,QAAQ,KAAK,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,CAAC;AACzC;CACA;CACA;CACA;CACA;AACA;CACA;CACA,EAAE,IAAI,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,UAAU,EAAE;CACrC,IAAI,YAAY,KAAK,CAAC,CAAC;CACvB,GAAG;CACH;CACA;CACA;CACA,EAAE,IAAI,UAAU,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,UAAU,GAAG,CAAC,CAAC,SAAS,CAAC,EAAE;AAC7D;CACA;AACA;CACA,EAAE,GAAG;CACL;CACA,IAAI,KAAK,GAAG,SAAS,CAAC;AACtB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;CACA,IAAI,IAAI,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,SAAS,QAAQ;CAC/C,QAAQ,IAAI,CAAC,KAAK,GAAG,QAAQ,GAAG,CAAC,CAAC,KAAK,SAAS;CAChD,QAAQ,IAAI,CAAC,KAAK,CAAC,oBAAoB,IAAI,CAAC,IAAI,CAAC;CACjD,QAAQ,IAAI,CAAC,EAAE,KAAK,CAAC,kBAAkB,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE;CACvD,MAAM,SAAS;CACf,KAAK;AACL;CACA;CACA;CACA;CACA;CACA;CACA;CACA,IAAI,IAAI,IAAI,CAAC,CAAC;CACd,IAAI,KAAK,EAAE,CAAC;CACZ;AACA;CACA;CACA;CACA;CACA,IAAI,GAAG;CACP;CACA,KAAK,QAAQ,IAAI,CAAC,EAAE,IAAI,CAAC,KAAK,IAAI,CAAC,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,EAAE,IAAI,CAAC,KAAK,IAAI,CAAC,EAAE,KAAK,CAAC;CAC7E,aAAa,IAAI,CAAC,EAAE,IAAI,CAAC,KAAK,IAAI,CAAC,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,EAAE,IAAI,CAAC,KAAK,IAAI,CAAC,EAAE,KAAK,CAAC;CAC7E,aAAa,IAAI,CAAC,EAAE,IAAI,CAAC,KAAK,IAAI,CAAC,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,EAAE,IAAI,CAAC,KAAK,IAAI,CAAC,EAAE,KAAK,CAAC;CAC7E,aAAa,IAAI,CAAC,EAAE,IAAI,CAAC,KAAK,IAAI,CAAC,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,EAAE,IAAI,CAAC,KAAK,IAAI,CAAC,EAAE,KAAK,CAAC;CAC7E,aAAa,IAAI,GAAG,MAAM,EAAE;AAC5B;CACA;AACA;CACA,IAAI,GAAG,GAAG,SAAS,IAAI,MAAM,GAAG,IAAI,CAAC,CAAC;CACtC,IAAI,IAAI,GAAG,MAAM,GAAG,SAAS,CAAC;AAC9B;CACA,IAAI,IAAI,GAAG,GAAG,QAAQ,EAAE;CACxB,MAAM,CAAC,CAAC,WAAW,GAAG,SAAS,CAAC;CAChC,MAAM,QAAQ,GAAG,GAAG,CAAC;CACrB,MAAM,IAAI,GAAG,IAAI,UAAU,EAAE;CAC7B,QAAQ,MAAM;CACd,OAAO;CACP,MAAM,SAAS,IAAI,IAAI,CAAC,IAAI,GAAG,QAAQ,GAAG,CAAC,CAAC,CAAC;CAC7C,MAAM,QAAQ,KAAK,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,CAAC;CACzC,KAAK;CACL,GAAG,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,IAAI,KAAK,IAAI,EAAE,YAAY,KAAK,CAAC,EAAE;AAClF;CACA,EAAE,IAAI,QAAQ,IAAI,CAAC,CAAC,SAAS,EAAE;CAC/B,IAAI,OAAO,QAAQ,CAAC;CACpB,GAAG;CACH,EAAE,OAAO,CAAC,CAAC,SAAS,CAAC;CACrB,CAAC,CAAC;AACF;AACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK;AAC3B;CACA,EAAE,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC;CAC3B,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC;AACzB;CACA;AACA;CACA,EAAE,GAAG;CACL,IAAI,IAAI,GAAG,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,QAAQ,CAAC;AACpD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;AACA;CACA;CACA;CACA;CACA,IAAI,IAAI,CAAC,CAAC,QAAQ,IAAI,OAAO,IAAI,OAAO,GAAG,aAAa,CAAC,EAAE;AAC3D;CACA,MAAM,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;CACrE,MAAM,CAAC,CAAC,WAAW,IAAI,OAAO,CAAC;CAC/B,MAAM,CAAC,CAAC,QAAQ,IAAI,OAAO,CAAC;CAC5B;CACA,MAAM,CAAC,CAAC,WAAW,IAAI,OAAO,CAAC;AAC/B;CACA;CACA;CACA;CACA;CACA;CACA;AACA;CACA,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC;CACtB,MAAM,CAAC,GAAG,CAAC,CAAC;AACZ;CACA,MAAM,GAAG;CACT,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;CACxB,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC,CAAC;CACrD,OAAO,QAAQ,EAAE,CAAC,EAAE;AACpB;CACA,MAAM,CAAC,GAAG,OAAO,CAAC;CAClB,MAAM,CAAC,GAAG,CAAC,CAAC;AACZ;CACA,MAAM,GAAG;CACT,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;CACxB,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC,CAAC;CACrD;CACA;CACA;CACA,OAAO,QAAQ,EAAE,CAAC,EAAE;AACpB;CACA,MAAM,IAAI,IAAI,OAAO,CAAC;CACtB,KAAK;CACL,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,KAAK,CAAC,EAAE;CAC/B,MAAM,MAAM;CACZ,KAAK;AACL;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;CACnE,IAAI,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC;AACrB;CACA;CACA,IAAI,IAAI,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,MAAM,IAAI,SAAS,EAAE;CAC7C,MAAM,GAAG,GAAG,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC;CAClC,MAAM,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC9B;CACA;CACA,MAAM,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;CACpD;CACA;CACA;CACA,MAAM,OAAO,CAAC,CAAC,MAAM,EAAE;CACvB;CACA,QAAQ,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC;AAClE;CACA,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;CACjD,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC;CAC9B,QAAQ,GAAG,EAAE,CAAC;CACd,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC;CACnB,QAAQ,IAAI,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,MAAM,GAAG,SAAS,EAAE;CAChD,UAAU,MAAM;CAChB,SAAS;CACT,OAAO;CACP,KAAK;CACL;CACA;CACA;AACA;CACA,GAAG,QAAQ,CAAC,CAAC,SAAS,GAAG,aAAa,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,KAAK,CAAC,EAAE;AACjE;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,CAAC,CAAC;AACF;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,MAAM,cAAc,GAAG,CAAC,CAAC,EAAE,KAAK,KAAK;AACrC;CACA;CACA;CACA;CACA,EAAE,IAAI,cAAc,GAAG,MAAM,CAAC;AAC9B;CACA,EAAE,IAAI,cAAc,GAAG,CAAC,CAAC,gBAAgB,GAAG,CAAC,EAAE;CAC/C,IAAI,cAAc,GAAG,CAAC,CAAC,gBAAgB,GAAG,CAAC,CAAC;CAC5C,GAAG;AACH;CACA;CACA,EAAE,SAAS;CACX;CACA,IAAI,IAAI,CAAC,CAAC,SAAS,IAAI,CAAC,EAAE;AAC1B;CACA;CACA;CACA;CACA;CACA;CACA;AACA;CACA,MAAM,WAAW,CAAC,CAAC,CAAC,CAAC;CACrB,MAAM,IAAI,CAAC,CAAC,SAAS,KAAK,CAAC,IAAI,KAAK,KAAK,YAAY,EAAE;CACvD,QAAQ,OAAO,YAAY,CAAC;CAC5B,OAAO;AACP;CACA,MAAM,IAAI,CAAC,CAAC,SAAS,KAAK,CAAC,EAAE;CAC7B,QAAQ,MAAM;CACd,OAAO;CACP;CACA,KAAK;CACL;CACA;AACA;CACA,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,SAAS,CAAC;CAC9B,IAAI,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC;AACpB;CACA;CACA,IAAI,MAAM,SAAS,GAAG,CAAC,CAAC,WAAW,GAAG,cAAc,CAAC;AACrD;CACA,IAAI,IAAI,CAAC,CAAC,QAAQ,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,IAAI,SAAS,EAAE;CACrD;CACA,MAAM,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,QAAQ,GAAG,SAAS,CAAC;CAC3C,MAAM,CAAC,CAAC,QAAQ,GAAG,SAAS,CAAC;CAC7B;CACA,MAAM,gBAAgB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;CACjC,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,KAAK,CAAC,EAAE;CAClC,QAAQ,OAAO,YAAY,CAAC;CAC5B,OAAO;CACP;AACA;AACA;CACA,KAAK;CACL;CACA;CACA;CACA,IAAI,IAAI,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,WAAW,KAAK,CAAC,CAAC,MAAM,GAAG,aAAa,CAAC,EAAE;CAClE;CACA,MAAM,gBAAgB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;CACjC,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,KAAK,CAAC,EAAE;CAClC,QAAQ,OAAO,YAAY,CAAC;CAC5B,OAAO;CACP;CACA,KAAK;CACL,GAAG;AACH;CACA,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;AACf;CACA,EAAE,IAAI,KAAK,KAAK,UAAU,EAAE;CAC5B;CACA,IAAI,gBAAgB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;CAC9B,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,KAAK,CAAC,EAAE;CAChC,MAAM,OAAO,iBAAiB,CAAC;CAC/B,KAAK;CACL;CACA,IAAI,OAAO,cAAc,CAAC;CAC1B,GAAG;AACH;CACA,EAAE,IAAI,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,WAAW,EAAE;CAClC;CACA,IAAI,gBAAgB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;CAC/B,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,KAAK,CAAC,EAAE;CAChC,MAAM,OAAO,YAAY,CAAC;CAC1B,KAAK;CACL;CACA,GAAG;AACH;CACA,EAAE,OAAO,YAAY,CAAC;CACtB,CAAC,CAAC;AACF;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,MAAM,YAAY,GAAG,CAAC,CAAC,EAAE,KAAK,KAAK;AACnC;CACA,EAAE,IAAI,SAAS,CAAC;CAChB,EAAE,IAAI,MAAM,CAAC;AACb;CACA,EAAE,SAAS;CACX;CACA;CACA;CACA;CACA;CACA,IAAI,IAAI,CAAC,CAAC,SAAS,GAAG,aAAa,EAAE;CACrC,MAAM,WAAW,CAAC,CAAC,CAAC,CAAC;CACrB,MAAM,IAAI,CAAC,CAAC,SAAS,GAAG,aAAa,IAAI,KAAK,KAAK,YAAY,EAAE;CACjE,QAAQ,OAAO,YAAY,CAAC;CAC5B,OAAO;CACP,MAAM,IAAI,CAAC,CAAC,SAAS,KAAK,CAAC,EAAE;CAC7B,QAAQ,MAAM;CACd,OAAO;CACP,KAAK;AACL;CACA;CACA;CACA;CACA,IAAI,SAAS,GAAG,CAAC,QAAQ;CACzB,IAAI,IAAI,CAAC,CAAC,SAAS,IAAI,SAAS,EAAE;CAClC;CACA,MAAM,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC;CACvE,MAAM,SAAS,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;CAClE,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC;CACnC;CACA,KAAK;AACL;CACA;CACA;CACA;CACA,IAAI,IAAI,SAAS,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,GAAG,SAAS,MAAM,CAAC,CAAC,MAAM,GAAG,aAAa,CAAC,CAAC,EAAE;CAC5F;CACA;CACA;CACA;CACA,MAAM,CAAC,CAAC,YAAY,GAAG,aAAa,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;CACnD;CACA,KAAK;CACL,IAAI,IAAI,CAAC,CAAC,YAAY,IAAI,SAAS,EAAE;CACrC;AACA;CACA;CACA;CACA,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,YAAY,GAAG,SAAS,CAAC,CAAC;AACpF;CACA,MAAM,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,YAAY,CAAC;AACpC;CACA;CACA;CACA;CACA,MAAM,IAAI,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,cAAc,yBAAyB,CAAC,CAAC,SAAS,IAAI,SAAS,EAAE;CAC/F,QAAQ,CAAC,CAAC,YAAY,EAAE,CAAC;CACzB,QAAQ,GAAG;CACX,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAC;CACvB;CACA,UAAU,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC;CAC3E,UAAU,SAAS,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;CACtE,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC;CACvC;CACA;CACA;CACA;CACA,SAAS,QAAQ,EAAE,CAAC,CAAC,YAAY,KAAK,CAAC,EAAE;CACzC,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC;CACrB,OAAO;CACP,MAAM;CACN,QAAQ,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,YAAY,CAAC;CACrC,QAAQ,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC;CAC3B,QAAQ,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;CACvC;CACA,QAAQ,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC;AAC7D;CACA;CACA;CACA;CACA;CACA;CACA;CACA,OAAO;CACP,KAAK,MAAM;CACX;CACA;CACA;CACA,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AACrD;CACA,MAAM,CAAC,CAAC,SAAS,EAAE,CAAC;CACpB,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;CACnB,KAAK;CACL,IAAI,IAAI,MAAM,EAAE;CAChB;CACA,MAAM,gBAAgB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;CACjC,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,KAAK,CAAC,EAAE;CAClC,QAAQ,OAAO,YAAY,CAAC;CAC5B,OAAO;CACP;CACA,KAAK;CACL,GAAG;CACH,EAAE,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,QAAQ,IAAI,SAAS,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC;CAC3E,EAAE,IAAI,KAAK,KAAK,UAAU,EAAE;CAC5B;CACA,IAAI,gBAAgB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;CAC9B,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,KAAK,CAAC,EAAE;CAChC,MAAM,OAAO,iBAAiB,CAAC;CAC/B,KAAK;CACL;CACA,IAAI,OAAO,cAAc,CAAC;CAC1B,GAAG;CACH,EAAE,IAAI,CAAC,CAAC,QAAQ,EAAE;CAClB;CACA,IAAI,gBAAgB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;CAC/B,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,KAAK,CAAC,EAAE;CAChC,MAAM,OAAO,YAAY,CAAC;CAC1B,KAAK;CACL;CACA,GAAG;CACH,EAAE,OAAO,aAAa,CAAC;CACvB,CAAC,CAAC;AACF;CACA;CACA;CACA;CACA;CACA;CACA,MAAM,YAAY,GAAG,CAAC,CAAC,EAAE,KAAK,KAAK;AACnC;CACA,EAAE,IAAI,SAAS,CAAC;CAChB,EAAE,IAAI,MAAM,CAAC;AACb;CACA,EAAE,IAAI,UAAU,CAAC;AACjB;CACA;CACA,EAAE,SAAS;CACX;CACA;CACA;CACA;CACA;CACA,IAAI,IAAI,CAAC,CAAC,SAAS,GAAG,aAAa,EAAE;CACrC,MAAM,WAAW,CAAC,CAAC,CAAC,CAAC;CACrB,MAAM,IAAI,CAAC,CAAC,SAAS,GAAG,aAAa,IAAI,KAAK,KAAK,YAAY,EAAE;CACjE,QAAQ,OAAO,YAAY,CAAC;CAC5B,OAAO;CACP,MAAM,IAAI,CAAC,CAAC,SAAS,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE;CACvC,KAAK;AACL;CACA;CACA;CACA;CACA,IAAI,SAAS,GAAG,CAAC,QAAQ;CACzB,IAAI,IAAI,CAAC,CAAC,SAAS,IAAI,SAAS,EAAE;CAClC;CACA,MAAM,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC;CACvE,MAAM,SAAS,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;CAClE,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC;CACnC;CACA,KAAK;AACL;CACA;CACA;CACA,IAAI,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,YAAY,CAAC;CACnC,IAAI,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,WAAW,CAAC;CACjC,IAAI,CAAC,CAAC,YAAY,GAAG,SAAS,GAAG,CAAC,CAAC;AACnC;CACA,IAAI,IAAI,SAAS,KAAK,CAAC,WAAW,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,cAAc;CAClE,QAAQ,CAAC,CAAC,QAAQ,GAAG,SAAS,KAAK,CAAC,CAAC,MAAM,GAAG,aAAa,CAAC,iBAAiB;CAC7E;CACA;CACA;CACA;CACA,MAAM,CAAC,CAAC,YAAY,GAAG,aAAa,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;CACnD;AACA;CACA,MAAM,IAAI,CAAC,CAAC,YAAY,IAAI,CAAC;CAC7B,UAAU,CAAC,CAAC,QAAQ,KAAK,UAAU,KAAK,CAAC,CAAC,YAAY,KAAK,SAAS,IAAI,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,WAAW,GAAG,IAAI,YAAY,CAAC,EAAE;AACxH;CACA;CACA;CACA;CACA,QAAQ,CAAC,CAAC,YAAY,GAAG,SAAS,GAAG,CAAC,CAAC;CACvC,OAAO;CACP,KAAK;CACL;CACA;CACA;CACA,IAAI,IAAI,CAAC,CAAC,WAAW,IAAI,SAAS,IAAI,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,WAAW,EAAE;CACvE,MAAM,UAAU,GAAG,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC;CACxD;AACA;CACA;AACA;CACA;CACA;CACA,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,WAAW,GAAG,SAAS,CAAC,CAAC;CACtF;CACA;CACA;CACA;CACA;CACA,MAAM,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC;CACvC,MAAM,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC;CACzB,MAAM,GAAG;CACT,QAAQ,IAAI,EAAE,CAAC,CAAC,QAAQ,IAAI,UAAU,EAAE;CACxC;CACA,UAAU,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC;CAC3E,UAAU,SAAS,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;CACtE,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC;CACvC;CACA,SAAS;CACT,OAAO,QAAQ,EAAE,CAAC,CAAC,WAAW,KAAK,CAAC,EAAE;CACtC,MAAM,CAAC,CAAC,eAAe,GAAG,CAAC,CAAC;CAC5B,MAAM,CAAC,CAAC,YAAY,GAAG,SAAS,GAAG,CAAC,CAAC;CACrC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;AACnB;CACA,MAAM,IAAI,MAAM,EAAE;CAClB;CACA,QAAQ,gBAAgB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;CACnC,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,KAAK,CAAC,EAAE;CACpC,UAAU,OAAO,YAAY,CAAC;CAC9B,SAAS;CACT;CACA,OAAO;AACP;CACA,KAAK,MAAM,IAAI,CAAC,CAAC,eAAe,EAAE;CAClC;CACA;CACA;CACA;CACA;CACA;CACA,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC;AACzD;CACA,MAAM,IAAI,MAAM,EAAE;CAClB;CACA,QAAQ,gBAAgB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;CACnC;CACA,OAAO;CACP,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;CACnB,MAAM,CAAC,CAAC,SAAS,EAAE,CAAC;CACpB,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,KAAK,CAAC,EAAE;CAClC,QAAQ,OAAO,YAAY,CAAC;CAC5B,OAAO;CACP,KAAK,MAAM;CACX;CACA;CACA;CACA,MAAM,CAAC,CAAC,eAAe,GAAG,CAAC,CAAC;CAC5B,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;CACnB,MAAM,CAAC,CAAC,SAAS,EAAE,CAAC;CACpB,KAAK;CACL,GAAG;CACH;CACA,EAAE,IAAI,CAAC,CAAC,eAAe,EAAE;CACzB;CACA;CACA,IAAI,MAAM,GAAG,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC;AACvD;CACA,IAAI,CAAC,CAAC,eAAe,GAAG,CAAC,CAAC;CAC1B,GAAG;CACH,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,QAAQ,GAAG,SAAS,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,GAAG,SAAS,GAAG,CAAC,CAAC;CACrE,EAAE,IAAI,KAAK,KAAK,UAAU,EAAE;CAC5B;CACA,IAAI,gBAAgB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;CAC9B,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,KAAK,CAAC,EAAE;CAChC,MAAM,OAAO,iBAAiB,CAAC;CAC/B,KAAK;CACL;CACA,IAAI,OAAO,cAAc,CAAC;CAC1B,GAAG;CACH,EAAE,IAAI,CAAC,CAAC,QAAQ,EAAE;CAClB;CACA,IAAI,gBAAgB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;CAC/B,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,KAAK,CAAC,EAAE;CAChC,MAAM,OAAO,YAAY,CAAC;CAC1B,KAAK;CACL;CACA,GAAG;AACH;CACA,EAAE,OAAO,aAAa,CAAC;CACvB,CAAC,CAAC;AACF;AACA;CACA;CACA;CACA;CACA;CACA;CACA,MAAM,WAAW,GAAG,CAAC,CAAC,EAAE,KAAK,KAAK;AAClC;CACA,EAAE,IAAI,MAAM,CAAC;CACb,EAAE,IAAI,IAAI,CAAC;CACX,EAAE,IAAI,IAAI,EAAE,MAAM,CAAC;AACnB;CACA,EAAE,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC;AACxB;CACA,EAAE,SAAS;CACX;CACA;CACA;CACA;CACA,IAAI,IAAI,CAAC,CAAC,SAAS,IAAI,SAAS,EAAE;CAClC,MAAM,WAAW,CAAC,CAAC,CAAC,CAAC;CACrB,MAAM,IAAI,CAAC,CAAC,SAAS,IAAI,SAAS,IAAI,KAAK,KAAK,YAAY,EAAE;CAC9D,QAAQ,OAAO,YAAY,CAAC;CAC5B,OAAO;CACP,MAAM,IAAI,CAAC,CAAC,SAAS,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE;CACvC,KAAK;AACL;CACA;CACA,IAAI,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC;CACvB,IAAI,IAAI,CAAC,CAAC,SAAS,IAAI,SAAS,IAAI,CAAC,CAAC,QAAQ,GAAG,CAAC,EAAE;CACpD,MAAM,IAAI,GAAG,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC;CAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;CACxB,MAAM,IAAI,IAAI,KAAK,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,IAAI,KAAK,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,IAAI,KAAK,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE;CACnF,QAAQ,MAAM,GAAG,CAAC,CAAC,QAAQ,GAAG,SAAS,CAAC;CACxC,QAAQ,GAAG;CACX;CACA,SAAS,QAAQ,IAAI,KAAK,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,IAAI,KAAK,IAAI,CAAC,EAAE,IAAI,CAAC;CAC/D,iBAAiB,IAAI,KAAK,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,IAAI,KAAK,IAAI,CAAC,EAAE,IAAI,CAAC;CAC/D,iBAAiB,IAAI,KAAK,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,IAAI,KAAK,IAAI,CAAC,EAAE,IAAI,CAAC;CAC/D,iBAAiB,IAAI,KAAK,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,IAAI,KAAK,IAAI,CAAC,EAAE,IAAI,CAAC;CAC/D,iBAAiB,IAAI,GAAG,MAAM,EAAE;CAChC,QAAQ,CAAC,CAAC,YAAY,GAAG,SAAS,IAAI,MAAM,GAAG,IAAI,CAAC,CAAC;CACrD,QAAQ,IAAI,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,SAAS,EAAE;CAC1C,UAAU,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,SAAS,CAAC;CACvC,SAAS;CACT,OAAO;CACP;CACA,KAAK;AACL;CACA;CACA,IAAI,IAAI,CAAC,CAAC,YAAY,IAAI,SAAS,EAAE;CACrC;AACA;CACA;CACA,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,YAAY,GAAG,SAAS,CAAC,CAAC;AAC3D;CACA,MAAM,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,YAAY,CAAC;CACpC,MAAM,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,YAAY,CAAC;CACnC,MAAM,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC;CACzB,KAAK,MAAM;CACX;CACA;CACA;CACA,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AACrD;CACA,MAAM,CAAC,CAAC,SAAS,EAAE,CAAC;CACpB,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;CACnB,KAAK;CACL,IAAI,IAAI,MAAM,EAAE;CAChB;CACA,MAAM,gBAAgB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;CACjC,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,KAAK,CAAC,EAAE;CAClC,QAAQ,OAAO,YAAY,CAAC;CAC5B,OAAO;CACP;CACA,KAAK;CACL,GAAG;CACH,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;CACf,EAAE,IAAI,KAAK,KAAK,UAAU,EAAE;CAC5B;CACA,IAAI,gBAAgB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;CAC9B,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,KAAK,CAAC,EAAE;CAChC,MAAM,OAAO,iBAAiB,CAAC;CAC/B,KAAK;CACL;CACA,IAAI,OAAO,cAAc,CAAC;CAC1B,GAAG;CACH,EAAE,IAAI,CAAC,CAAC,QAAQ,EAAE;CAClB;CACA,IAAI,gBAAgB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;CAC/B,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,KAAK,CAAC,EAAE;CAChC,MAAM,OAAO,YAAY,CAAC;CAC1B,KAAK;CACL;CACA,GAAG;CACH,EAAE,OAAO,aAAa,CAAC;CACvB,CAAC,CAAC;AACF;CACA;CACA;CACA;CACA;CACA,MAAM,YAAY,GAAG,CAAC,CAAC,EAAE,KAAK,KAAK;AACnC;CACA,EAAE,IAAI,MAAM,CAAC;AACb;CACA,EAAE,SAAS;CACX;CACA,IAAI,IAAI,CAAC,CAAC,SAAS,KAAK,CAAC,EAAE;CAC3B,MAAM,WAAW,CAAC,CAAC,CAAC,CAAC;CACrB,MAAM,IAAI,CAAC,CAAC,SAAS,KAAK,CAAC,EAAE;CAC7B,QAAQ,IAAI,KAAK,KAAK,YAAY,EAAE;CACpC,UAAU,OAAO,YAAY,CAAC;CAC9B,SAAS;CACT,QAAQ,MAAM;CACd,OAAO;CACP,KAAK;AACL;CACA;CACA,IAAI,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC;CACvB;CACA;CACA,IAAI,MAAM,GAAG,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;CACnD,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;CAClB,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;CACjB,IAAI,IAAI,MAAM,EAAE;CAChB;CACA,MAAM,gBAAgB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;CACjC,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,KAAK,CAAC,EAAE;CAClC,QAAQ,OAAO,YAAY,CAAC;CAC5B,OAAO;CACP;CACA,KAAK;CACL,GAAG;CACH,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;CACf,EAAE,IAAI,KAAK,KAAK,UAAU,EAAE;CAC5B;CACA,IAAI,gBAAgB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;CAC9B,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,KAAK,CAAC,EAAE;CAChC,MAAM,OAAO,iBAAiB,CAAC;CAC/B,KAAK;CACL;CACA,IAAI,OAAO,cAAc,CAAC;CAC1B,GAAG;CACH,EAAE,IAAI,CAAC,CAAC,QAAQ,EAAE;CAClB;CACA,IAAI,gBAAgB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;CAC/B,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,KAAK,CAAC,EAAE;CAChC,MAAM,OAAO,YAAY,CAAC;CAC1B,KAAK;CACL;CACA,GAAG;CACH,EAAE,OAAO,aAAa,CAAC;CACvB,CAAC,CAAC;AACF;CACA;CACA;CACA;CACA;CACA;CACA,SAAS,MAAM,CAAC,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE;AACrE;CACA,EAAE,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;CACjC,EAAE,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;CAC3B,EAAE,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;CACjC,EAAE,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;CAC7B,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;CACnB,CAAC;AACD;CACA,MAAM,mBAAmB,GAAG;CAC5B;CACA,EAAE,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,cAAc,CAAC;CACxC,EAAE,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,CAAC;CACtC,EAAE,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,YAAY,CAAC;CACvC,EAAE,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,YAAY,CAAC;AACxC;CACA,EAAE,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,YAAY,CAAC;CACxC,EAAE,IAAI,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,YAAY,CAAC;CACzC,EAAE,IAAI,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,YAAY,CAAC;CAC3C,EAAE,IAAI,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,YAAY,CAAC;CAC3C,EAAE,IAAI,MAAM,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,YAAY,CAAC;CAC9C,EAAE,IAAI,MAAM,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,YAAY,CAAC;CAC9C,CAAC,CAAC;AACF;AACA;CACA;CACA;CACA;CACA,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK;AACvB;CACA,EAAE,CAAC,CAAC,WAAW,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;AAC/B;CACA;CACA,EAAEA,MAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACf;CACA;CACA;CACA,EAAE,CAAC,CAAC,cAAc,GAAG,mBAAmB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC;CAC3D,EAAE,CAAC,CAAC,UAAU,GAAG,mBAAmB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC;CAC1D,EAAE,CAAC,CAAC,UAAU,GAAG,mBAAmB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC;CAC1D,EAAE,CAAC,CAAC,gBAAgB,GAAG,mBAAmB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC;AAC9D;CACA,EAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC;CACjB,EAAE,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC;CACpB,EAAE,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC;CAClB,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;CACf,EAAE,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,WAAW,GAAG,SAAS,GAAG,CAAC,CAAC;CACjD,EAAE,CAAC,CAAC,eAAe,GAAG,CAAC,CAAC;CACxB,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;CACd,CAAC,CAAC;AACF;AACA;CACA,SAAS,YAAY,GAAG;CACxB,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;CACnB,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;CAClB,EAAE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;CAC1B,EAAE,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;CAC5B,EAAE,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;CACvB,EAAE,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;CACnB,EAAE,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;CAChB,EAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;CACrB,EAAE,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;CACnB,EAAE,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC;CAC7B,EAAE,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;AACvB;CACA,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;CAClB,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;CAClB,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AAClB;CACA,EAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;CACrB;CACA;CACA;CACA;CACA;CACA;AACA;CACA,EAAE,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;CACvB;CACA;CACA;AACA;CACA,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;CACnB;CACA;CACA;CACA;AACA;CACA,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACnB;CACA,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;CACjB,EAAE,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;CACrB,EAAE,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;CACrB,EAAE,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;AACrB;CACA,EAAE,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;CACtB;CACA;CACA;CACA;CACA;AACA;CACA,EAAE,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;CACvB;CACA;CACA;AACA;CACA,EAAE,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;CACxB,EAAE,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;CACtB,EAAE,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;CAC3B,EAAE,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;CACpB,EAAE,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;CACvB,EAAE,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;AACrB;CACA,EAAE,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;CACvB;CACA;CACA;AACA;CACA,EAAE,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;CAC5B;CACA;CACA;CACA;AACA;CACA,EAAE,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;CAC1B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;CACA,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;CACjB,EAAE,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;AACpB;CACA,EAAE,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;CACtB;AACA;CACA,EAAE,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;AACtB;CACA;AACA;CACA;AACA;CACA;CACA;CACA;AACA;CACA;CACA;CACA,EAAE,IAAI,CAAC,SAAS,IAAI,IAAI,WAAW,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;CACnD,EAAE,IAAI,CAAC,SAAS,IAAI,IAAI,WAAW,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;CAC3D,EAAE,IAAI,CAAC,OAAO,MAAM,IAAI,WAAW,CAAC,CAAC,CAAC,GAAG,QAAQ,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;CAC5D,EAAEA,MAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;CACvB,EAAEA,MAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;CACvB,EAAEA,MAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACrB;CACA,EAAE,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC;CACvB,EAAE,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC;CACvB,EAAE,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC;AACvB;CACA;CACA,EAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,WAAW,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;CAChD;AACA;CACA;CACA,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI,WAAW,CAAC,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC,CAAC;CAC/C,EAAEA,MAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClB;CACA,EAAE,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;CACpB,EAAE,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;CACpB;CACA;CACA;AACA;CACA,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,WAAW,CAAC,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC,CAAC;CAChD,EAAEA,MAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;CACnB;CACA;AACA;CACA,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;AACjB;CACA,EAAE,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;CACvB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;CACA,EAAE,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;AACpB;CACA,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;CACjB;CACA;CACA;CACA;AACA;CACA,EAAE,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;CACnB,EAAE,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;CACtB,EAAE,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;CACnB,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AAClB;AACA;CACA,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;CAClB;CACA;CACA;CACA,EAAE,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;CACpB;CACA;CACA;AACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,CAAC;AACD;AACA;CACA,MAAM,gBAAgB,GAAG,CAAC,IAAI,KAAK;AACnC;CACA,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;CAC5B,IAAI,OAAO,GAAG,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;CACvC,GAAG;AACH;CACA,EAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;CACrC,EAAE,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;AAC7B;CACA,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;CACvB,EAAE,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC;CAChB,EAAE,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC;AACpB;CACA,EAAE,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,EAAE;CAClB,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;CACrB;CACA,GAAG;CACH,EAAE,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI,GAAG,UAAU,GAAG,UAAU,CAAC,CAAC;CAChD,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC;CAC5B,IAAI,CAAC;CACL;CACA,IAAI,CAAC,CAAC;CACN,EAAE,CAAC,CAAC,UAAU,GAAG,YAAY,CAAC;CAC9B,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;CACd,EAAE,OAAO,MAAM,CAAC;CAChB,CAAC,CAAC;AACF;AACA;CACA,MAAM,YAAY,GAAG,CAAC,IAAI,KAAK;AAC/B;CACA,EAAE,MAAM,GAAG,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;CACrC,EAAE,IAAI,GAAG,KAAK,MAAM,EAAE;CACtB,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;CACxB,GAAG;CACH,EAAE,OAAO,GAAG,CAAC;CACb,CAAC,CAAC;AACF;AACA;CACA,MAAM,gBAAgB,GAAG,CAAC,IAAI,EAAE,IAAI,KAAK;AACzC;CACA,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,OAAO,gBAAgB,CAAC,EAAE;CACxD,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,EAAE,OAAO,gBAAgB,CAAC,EAAE;CACzD,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;CAC3B,EAAE,OAAO,MAAM,CAAC;CAChB,CAAC,CAAC;AACF;AACA;CACA,MAAM,YAAY,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,KAAK;AAC9E;CACA,EAAE,IAAI,CAAC,IAAI,EAAE;CACb,IAAI,OAAO,gBAAgB,CAAC;CAC5B,GAAG;CACH,EAAE,IAAI,IAAI,GAAG,CAAC,CAAC;AACf;CACA,EAAE,IAAI,KAAK,KAAK,uBAAuB,EAAE;CACzC,IAAI,KAAK,GAAG,CAAC,CAAC;CACd,GAAG;AACH;CACA,EAAE,IAAI,UAAU,GAAG,CAAC,EAAE;CACtB,IAAI,IAAI,GAAG,CAAC,CAAC;CACb,IAAI,UAAU,GAAG,CAAC,UAAU,CAAC;CAC7B,GAAG;AACH;CACA,OAAO,IAAI,UAAU,GAAG,EAAE,EAAE;CAC5B,IAAI,IAAI,GAAG,CAAC,CAAC;CACb,IAAI,UAAU,IAAI,EAAE,CAAC;CACrB,GAAG;AACH;AACA;CACA,EAAE,IAAI,QAAQ,GAAG,CAAC,IAAI,QAAQ,GAAG,aAAa,IAAI,MAAM,KAAK,YAAY;CACzE,IAAI,UAAU,GAAG,CAAC,IAAI,UAAU,GAAG,EAAE,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC;CAC/D,IAAI,QAAQ,GAAG,CAAC,IAAI,QAAQ,GAAG,OAAO,EAAE;CACxC,IAAI,OAAO,GAAG,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;CACvC,GAAG;AACH;AACA;CACA,EAAE,IAAI,UAAU,KAAK,CAAC,EAAE;CACxB,IAAI,UAAU,GAAG,CAAC,CAAC;CACnB,GAAG;CACH;AACA;CACA,EAAE,MAAM,CAAC,GAAG,IAAI,YAAY,EAAE,CAAC;AAC/B;CACA,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;CACjB,EAAE,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC;AAChB;CACA,EAAE,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC;CAChB,EAAE,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;CAClB,EAAE,CAAC,CAAC,MAAM,GAAG,UAAU,CAAC;CACxB,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;CAC3B,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;AAC1B;CACA,EAAE,CAAC,CAAC,SAAS,GAAG,QAAQ,GAAG,CAAC,CAAC;CAC7B,EAAE,CAAC,CAAC,SAAS,GAAG,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC;CACjC,EAAE,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC;CAChC,EAAE,CAAC,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,SAAS,GAAG,CAAC,IAAI,SAAS,CAAC,CAAC;AAC/D;CACA,EAAE,CAAC,CAAC,MAAM,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;CAC1C,EAAE,CAAC,CAAC,IAAI,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;CACxC,EAAE,CAAC,CAAC,IAAI,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AACrC;CACA;CACA;AACA;CACA,EAAE,CAAC,CAAC,WAAW,GAAG,CAAC,KAAK,QAAQ,GAAG,CAAC,CAAC,CAAC;AACtC;CACA,EAAE,CAAC,CAAC,gBAAgB,GAAG,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC;AACzC;CACA;CACA;CACA,EAAE,CAAC,CAAC,WAAW,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;AACrD;CACA;CACA;CACA,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC;AAC9B;CACA;CACA,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC;AACpC;CACA,EAAE,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC;CAClB,EAAE,CAAC,CAAC,QAAQ,GAAG,QAAQ,CAAC;CACxB,EAAE,CAAC,CAAC,MAAM,GAAG,MAAM,CAAC;AACpB;CACA,EAAE,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC;CAC5B,CAAC,CAAC;AACF;CACA,MAAM,WAAW,GAAG,CAAC,IAAI,EAAE,KAAK,KAAK;AACrC;CACA,EAAE,OAAO,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,oBAAoB,CAAC,CAAC;CACnG,CAAC,CAAC;AACF;AACA;CACA,MAAM,SAAS,GAAG,CAAC,IAAI,EAAE,KAAK,KAAK;AACnC;CACA,EAAE,IAAI,GAAG,EAAE,GAAG,CAAC;AACf;CACA,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK;CAC1B,IAAI,KAAK,GAAG,SAAS,IAAI,KAAK,GAAG,CAAC,EAAE;CACpC,IAAI,OAAO,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,gBAAgB,CAAC,GAAG,gBAAgB,CAAC;CACjE,GAAG;AACH;CACA,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;AACvB;CACA,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM;CAClB,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,CAAC;CAC1C,OAAO,CAAC,CAAC,MAAM,KAAK,YAAY,IAAI,KAAK,KAAK,UAAU,CAAC,EAAE;CAC3D,IAAI,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,SAAS,KAAK,CAAC,IAAI,aAAa,GAAG,gBAAgB,CAAC,CAAC;CAChF,GAAG;AACH;CACA,EAAE,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC;CAChB,EAAE,MAAM,SAAS,GAAG,CAAC,CAAC,UAAU,CAAC;CACjC,EAAE,CAAC,CAAC,UAAU,GAAG,KAAK,CAAC;AACvB;CACA;CACA,EAAE,IAAI,CAAC,CAAC,MAAM,KAAK,UAAU,EAAE;AAC/B;CACA,IAAI,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,EAAE;CACtB,MAAM,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;CACrB,MAAM,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;CACtB,MAAM,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;CACvB,MAAM,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;CACrB,MAAM,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE;CACrB,QAAQ,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;CACvB,QAAQ,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;CACvB,QAAQ,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;CACvB,QAAQ,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;CACvB,QAAQ,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;CACvB,QAAQ,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC;CACrC,qBAAqB,CAAC,CAAC,QAAQ,IAAI,cAAc,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC;CAChE,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAC7B,QAAQ,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;CAC7B,QAAQ,CAAC,CAAC,MAAM,GAAG,UAAU,CAAC;CAC9B,OAAO;CACP,WAAW;CACX,QAAQ,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC;CAC1C,qBAAqB,CAAC,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;CAC3C,qBAAqB,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;CAC7C,qBAAqB,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;CAC5C,qBAAqB,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,GAAG,CAAC,GAAG,EAAE,CAAC;CAChD,SAAS,CAAC;CACV,QAAQ,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;CAC1C,QAAQ,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC;CACjD,QAAQ,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,IAAI,IAAI,CAAC,CAAC;CAClD,QAAQ,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,IAAI,IAAI,CAAC,CAAC;CAClD,QAAQ,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC;CACrC,qBAAqB,CAAC,CAAC,QAAQ,IAAI,cAAc,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC;CAChE,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAC7B,QAAQ,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;CACxC,QAAQ,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE;CACrD,UAAU,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;CACpD,UAAU,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC;CAC3D,SAAS;CACT,QAAQ,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE;CAC3B,UAAU,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;CACxE,SAAS;CACT,QAAQ,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC;CACtB,QAAQ,CAAC,CAAC,MAAM,GAAG,WAAW,CAAC;CAC/B,OAAO;CACP,KAAK;CACL;CACA,IAAI;CACJ,MAAM,IAAI,MAAM,GAAG,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC;CAC/D,MAAM,IAAI,WAAW,GAAG,CAAC,CAAC,CAAC;AAC3B;CACA,MAAM,IAAI,CAAC,CAAC,QAAQ,IAAI,cAAc,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,EAAE;CACvD,QAAQ,WAAW,GAAG,CAAC,CAAC;CACxB,OAAO,MAAM,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,EAAE;CAC9B,QAAQ,WAAW,GAAG,CAAC,CAAC;CACxB,OAAO,MAAM,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,EAAE;CAChC,QAAQ,WAAW,GAAG,CAAC,CAAC;CACxB,OAAO,MAAM;CACb,QAAQ,WAAW,GAAG,CAAC,CAAC;CACxB,OAAO;CACP,MAAM,MAAM,KAAK,WAAW,IAAI,CAAC,CAAC,CAAC;CACnC,MAAM,IAAI,CAAC,CAAC,QAAQ,KAAK,CAAC,EAAE,EAAE,MAAM,IAAI,WAAW,CAAC,EAAE;CACtD,MAAM,MAAM,IAAI,EAAE,IAAI,MAAM,GAAG,EAAE,CAAC,CAAC;AACnC;CACA,MAAM,CAAC,CAAC,MAAM,GAAG,UAAU,CAAC;CAC5B,MAAM,WAAW,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;AAC7B;CACA;CACA,MAAM,IAAI,CAAC,CAAC,QAAQ,KAAK,CAAC,EAAE;CAC5B,QAAQ,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC;CAC1C,QAAQ,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC;CAC5C,OAAO;CACP,MAAM,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;CACrB,KAAK;CACL,GAAG;AACH;CACA;CACA,EAAE,IAAI,CAAC,CAAC,MAAM,KAAK,WAAW,EAAE;CAChC,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,gBAAgB;CACtC,MAAM,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC;AACtB;CACA,MAAM,OAAO,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE;CAC3D,QAAQ,IAAI,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,gBAAgB,EAAE;CAC9C,UAAU,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,OAAO,GAAG,GAAG,EAAE;CAChD,YAAY,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,OAAO,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC;CAClF,WAAW;CACX,UAAU,aAAa,CAAC,IAAI,CAAC,CAAC;CAC9B,UAAU,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC;CAC1B,UAAU,IAAI,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,gBAAgB,EAAE;CAChD,YAAY,MAAM;CAClB,WAAW;CACX,SAAS;CACT,QAAQ,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;CACtD,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC;CACpB,OAAO;CACP,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,OAAO,GAAG,GAAG,EAAE;CAC5C,QAAQ,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,OAAO,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC;CAC9E,OAAO;CACP,MAAM,IAAI,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE;CAC/C,QAAQ,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC;CACtB,QAAQ,CAAC,CAAC,MAAM,GAAG,UAAU,CAAC;CAC9B,OAAO;CACP,KAAK;CACL,SAAS;CACT,MAAM,CAAC,CAAC,MAAM,GAAG,UAAU,CAAC;CAC5B,KAAK;CACL,GAAG;CACH,EAAE,IAAI,CAAC,CAAC,MAAM,KAAK,UAAU,EAAE;CAC/B,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,gBAAgB;CACrC,MAAM,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC;CACtB;AACA;CACA,MAAM,GAAG;CACT,QAAQ,IAAI,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,gBAAgB,EAAE;CAC9C,UAAU,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,OAAO,GAAG,GAAG,EAAE;CAChD,YAAY,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,OAAO,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC;CAClF,WAAW;CACX,UAAU,aAAa,CAAC,IAAI,CAAC,CAAC;CAC9B,UAAU,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC;CAC1B,UAAU,IAAI,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,gBAAgB,EAAE;CAChD,YAAY,GAAG,GAAG,CAAC,CAAC;CACpB,YAAY,MAAM;CAClB,WAAW;CACX,SAAS;CACT;CACA,QAAQ,IAAI,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE;CAC9C,UAAU,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC;CAC7D,SAAS,MAAM;CACf,UAAU,GAAG,GAAG,CAAC,CAAC;CAClB,SAAS;CACT,QAAQ,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;CACzB,OAAO,QAAQ,GAAG,KAAK,CAAC,EAAE;AAC1B;CACA,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,OAAO,GAAG,GAAG,EAAE;CAC5C,QAAQ,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,OAAO,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC;CAC9E,OAAO;CACP,MAAM,IAAI,GAAG,KAAK,CAAC,EAAE;CACrB,QAAQ,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC;CACtB,QAAQ,CAAC,CAAC,MAAM,GAAG,aAAa,CAAC;CACjC,OAAO;CACP,KAAK;CACL,SAAS;CACT,MAAM,CAAC,CAAC,MAAM,GAAG,aAAa,CAAC;CAC/B,KAAK;CACL,GAAG;CACH,EAAE,IAAI,CAAC,CAAC,MAAM,KAAK,aAAa,EAAE;CAClC,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,gBAAgB;CACxC,MAAM,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC;CACtB;AACA;CACA,MAAM,GAAG;CACT,QAAQ,IAAI,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,gBAAgB,EAAE;CAC9C,UAAU,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,OAAO,GAAG,GAAG,EAAE;CAChD,YAAY,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,OAAO,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC;CAClF,WAAW;CACX,UAAU,aAAa,CAAC,IAAI,CAAC,CAAC;CAC9B,UAAU,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC;CAC1B,UAAU,IAAI,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,gBAAgB,EAAE;CAChD,YAAY,GAAG,GAAG,CAAC,CAAC;CACpB,YAAY,MAAM;CAClB,WAAW;CACX,SAAS;CACT;CACA,QAAQ,IAAI,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE;CACjD,UAAU,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC;CAChE,SAAS,MAAM;CACf,UAAU,GAAG,GAAG,CAAC,CAAC;CAClB,SAAS;CACT,QAAQ,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;CACzB,OAAO,QAAQ,GAAG,KAAK,CAAC,EAAE;AAC1B;CACA,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,OAAO,GAAG,GAAG,EAAE;CAC5C,QAAQ,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,OAAO,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC;CAC9E,OAAO;CACP,MAAM,IAAI,GAAG,KAAK,CAAC,EAAE;CACrB,QAAQ,CAAC,CAAC,MAAM,GAAG,UAAU,CAAC;CAC9B,OAAO;CACP,KAAK;CACL,SAAS;CACT,MAAM,CAAC,CAAC,MAAM,GAAG,UAAU,CAAC;CAC5B,KAAK;CACL,GAAG;CACH,EAAE,IAAI,CAAC,CAAC,MAAM,KAAK,UAAU,EAAE;CAC/B,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE;CACvB,MAAM,IAAI,CAAC,CAAC,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,gBAAgB,EAAE;CAC9C,QAAQ,aAAa,CAAC,IAAI,CAAC,CAAC;CAC5B,OAAO;CACP,MAAM,IAAI,CAAC,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC,gBAAgB,EAAE;CAC/C,QAAQ,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;CACvC,QAAQ,QAAQ,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC;CAC9C,QAAQ,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;CACvB,QAAQ,CAAC,CAAC,MAAM,GAAG,UAAU,CAAC;CAC9B,OAAO;CACP,KAAK;CACL,SAAS;CACT,MAAM,CAAC,CAAC,MAAM,GAAG,UAAU,CAAC;CAC5B,KAAK;CACL,GAAG;CACH;AACA;CACA;CACA,EAAE,IAAI,CAAC,CAAC,OAAO,KAAK,CAAC,EAAE;CACvB,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC;CACxB,IAAI,IAAI,IAAI,CAAC,SAAS,KAAK,CAAC,EAAE;CAC9B;CACA;CACA;CACA;CACA;CACA;CACA,MAAM,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;CACxB,MAAM,OAAO,MAAM,CAAC;CACpB,KAAK;AACL;CACA;CACA;CACA;CACA;CACA,GAAG,MAAM,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC;CAClE,IAAI,KAAK,KAAK,UAAU,EAAE;CAC1B,IAAI,OAAO,GAAG,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;CACpC,GAAG;AACH;CACA;CACA,EAAE,IAAI,CAAC,CAAC,MAAM,KAAK,YAAY,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,EAAE;CACxD,IAAI,OAAO,GAAG,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;CACpC,GAAG;AACH;CACA;CACA;CACA,EAAE,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,IAAI,CAAC,CAAC,SAAS,KAAK,CAAC;CAC9C,KAAK,KAAK,KAAK,YAAY,IAAI,CAAC,CAAC,MAAM,KAAK,YAAY,CAAC,EAAE;CAC3D,IAAI,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC,QAAQ,KAAK,cAAc,IAAI,YAAY,CAAC,CAAC,EAAE,KAAK,CAAC;CACzE,OAAO,CAAC,CAAC,QAAQ,KAAK,KAAK,GAAG,WAAW,CAAC,CAAC,EAAE,KAAK,CAAC;CACnD,QAAQ,mBAAmB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;AACrD;CACA,IAAI,IAAI,MAAM,KAAK,iBAAiB,IAAI,MAAM,KAAK,cAAc,EAAE;CACnE,MAAM,CAAC,CAAC,MAAM,GAAG,YAAY,CAAC;CAC9B,KAAK;CACL,IAAI,IAAI,MAAM,KAAK,YAAY,IAAI,MAAM,KAAK,iBAAiB,EAAE;CACjE,MAAM,IAAI,IAAI,CAAC,SAAS,KAAK,CAAC,EAAE;CAChC,QAAQ,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;CAC1B;CACA,OAAO;CACP,MAAM,OAAO,MAAM,CAAC;CACpB;CACA;CACA;CACA;CACA;CACA;CACA;CACA,KAAK;CACL,IAAI,IAAI,MAAM,KAAK,aAAa,EAAE;CAClC,MAAM,IAAI,KAAK,KAAK,eAAe,EAAE;CACrC,QAAQ,SAAS,CAAC,CAAC,CAAC,CAAC;CACrB,OAAO;CACP,WAAW,IAAI,KAAK,KAAK,SAAS,EAAE;AACpC;CACA,QAAQ,gBAAgB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;CACzC;CACA;CACA;CACA,QAAQ,IAAI,KAAK,KAAK,cAAc,EAAE;CACtC;CACA,UAAUA,MAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACvB;CACA,UAAU,IAAI,CAAC,CAAC,SAAS,KAAK,CAAC,EAAE;CACjC,YAAY,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC;CAC3B,YAAY,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC;CAC9B,YAAY,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;CACzB,WAAW;CACX,SAAS;CACT,OAAO;CACP,MAAM,aAAa,CAAC,IAAI,CAAC,CAAC;CAC1B,MAAM,IAAI,IAAI,CAAC,SAAS,KAAK,CAAC,EAAE;CAChC,QAAQ,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;CAC1B,QAAQ,OAAO,MAAM,CAAC;CACtB,OAAO;CACP,KAAK;CACL,GAAG;CACH;CACA;AACA;CACA,EAAE,IAAI,KAAK,KAAK,UAAU,EAAE,EAAE,OAAO,MAAM,CAAC,EAAE;CAC9C,EAAE,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,EAAE,EAAE,OAAO,cAAc,CAAC,EAAE;AAC7C;CACA;CACA,EAAE,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,EAAE;CACpB,IAAI,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;CACnC,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC;CAC1C,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,IAAI,IAAI,CAAC,CAAC;CAC3C,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,IAAI,IAAI,CAAC,CAAC;CAC3C,IAAI,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;CACtC,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC;CAC7C,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,IAAI,IAAI,CAAC,CAAC;CAC9C,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,IAAI,IAAI,CAAC,CAAC;CAC9C,GAAG;CACH;CACA,EAAE;CACF,IAAI,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC;CACtC,IAAI,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC;CACxC,GAAG;AACH;CACA,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;CACtB;CACA;CACA;CACA,EAAE,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;CACvC;CACA,EAAE,OAAO,CAAC,CAAC,OAAO,KAAK,CAAC,GAAG,MAAM,GAAG,cAAc,CAAC;CACnD,CAAC,CAAC;AACF;AACA;CACA,MAAM,UAAU,GAAG,CAAC,IAAI,KAAK;AAC7B;CACA,EAAE,IAAI,CAAC,IAAI,iBAAiB,CAAC,IAAI,CAAC,KAAK,eAAe;CACtD,IAAI,OAAO,gBAAgB,CAAC;CAC5B,GAAG;AACH;CACA,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;CACnC,EAAE,IAAI,MAAM,KAAK,UAAU;CAC3B,IAAI,MAAM,KAAK,WAAW;CAC1B,IAAI,MAAM,KAAK,UAAU;CACzB,IAAI,MAAM,KAAK,aAAa;CAC5B,IAAI,MAAM,KAAK,UAAU;CACzB,IAAI,MAAM,KAAK,UAAU;CACzB,IAAI,MAAM,KAAK,YAAY;CAC3B,IAAI;CACJ,IAAI,OAAO,GAAG,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;CACvC,GAAG;AACH;CACA,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AACpB;CACA,EAAE,OAAO,MAAM,KAAK,UAAU,GAAG,GAAG,CAAC,IAAI,EAAE,cAAc,CAAC,GAAG,MAAM,CAAC;CACpE,CAAC,CAAC;AACF;AACA;CACA;CACA;CACA;CACA;CACA,MAAM,oBAAoB,GAAG,CAAC,IAAI,EAAE,UAAU,KAAK;AACnD;CACA,EAAE,IAAI,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC;AACrC;CACA,EAAE,IAAI,CAAC,IAAI,iBAAiB,CAAC,IAAI,CAAC,KAAK,eAAe;CACtD,IAAI,OAAO,gBAAgB,CAAC;CAC5B,GAAG;AACH;CACA,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;CACvB,EAAE,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;AACtB;CACA,EAAE,IAAI,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE;CAC5E,IAAI,OAAO,gBAAgB,CAAC;CAC5B,GAAG;AACH;CACA;CACA,EAAE,IAAI,IAAI,KAAK,CAAC,EAAE;CAClB;CACA,IAAI,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;CAClE,GAAG;AACH;CACA,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;AACb;CACA;CACA,EAAE,IAAI,UAAU,IAAI,CAAC,CAAC,MAAM,EAAE;CAC9B,IAAI,IAAI,IAAI,KAAK,CAAC,EAAE;CACpB;CACA,MAAMA,MAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;CACnB,MAAM,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC;CACrB,MAAM,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC;CACxB,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;CACnB,KAAK;CACL;CACA;CACA,IAAI,IAAI,OAAO,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;CAC3C,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,UAAU,GAAG,CAAC,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;CAC3E,IAAI,UAAU,GAAG,OAAO,CAAC;CACzB,IAAI,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC;CAC1B,GAAG;CACH;CACA,EAAE,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC;CAC9B,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC;CAC5B,EAAE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;CAC3B,EAAE,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC;CAC7B,EAAE,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;CACnB,EAAE,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC;CAC1B,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;CACjB,EAAE,OAAO,CAAC,CAAC,SAAS,IAAI,SAAS,EAAE;CACnC,IAAI,IAAI,GAAG,GAAG,CAAC,CAAC,QAAQ,CAAC;CACzB,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,SAAS,IAAI,SAAS,GAAG,CAAC,CAAC,CAAC;CAC1C,IAAI,GAAG;CACP;CACA,MAAM,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC;AAChE;CACA,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AAC/C;CACA,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC;CAC5B,MAAM,GAAG,EAAE,CAAC;CACZ,KAAK,QAAQ,EAAE,CAAC,EAAE;CAClB,IAAI,CAAC,CAAC,QAAQ,GAAG,GAAG,CAAC;CACrB,IAAI,CAAC,CAAC,SAAS,GAAG,SAAS,GAAG,CAAC,CAAC;CAChC,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC;CACnB,GAAG;CACH,EAAE,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,SAAS,CAAC;CAC5B,EAAE,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,QAAQ,CAAC;CAC7B,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,SAAS,CAAC;CACzB,EAAE,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC;CAClB,EAAE,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,WAAW,GAAG,SAAS,GAAG,CAAC,CAAC;CACjD,EAAE,CAAC,CAAC,eAAe,GAAG,CAAC,CAAC;CACxB,EAAE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;CACtB,EAAE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;CACrB,EAAE,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;CACxB,EAAE,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC;CAChB,EAAE,OAAO,MAAM,CAAC;CAChB,CAAC,CAAC;AACF;AACA;CACA,IAAI,aAAa,GAAG,WAAW,CAAC;CAChC,IAAI,cAAc,GAAG,YAAY,CAAC;CAClC,IAAI,cAAc,GAAG,YAAY,CAAC;CAClC,IAAI,kBAAkB,GAAG,gBAAgB,CAAC;CAC1C,IAAI,kBAAkB,GAAG,gBAAgB,CAAC;CAC1C,IAAI,WAAW,GAAG,SAAS,CAAC;CAC5B,IAAI,YAAY,GAAG,UAAU,CAAC;CAC9B,IAAI,sBAAsB,GAAG,oBAAoB,CAAC;CAClD,IAAI,WAAW,GAAG,oCAAoC,CAAC;AACvD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;CACA,IAAI,WAAW,GAAG;CAClB,CAAC,WAAW,EAAE,aAAa;CAC3B,CAAC,YAAY,EAAE,cAAc;CAC7B,CAAC,YAAY,EAAE,cAAc;CAC7B,CAAC,gBAAgB,EAAE,kBAAkB;CACrC,CAAC,gBAAgB,EAAE,kBAAkB;CACrC,CAAC,OAAO,EAAE,WAAW;CACrB,CAAC,UAAU,EAAE,YAAY;CACzB,CAAC,oBAAoB,EAAE,sBAAsB;CAC7C,CAAC,WAAW,EAAE,WAAW;CACzB,CAAC,CAAC;AACF;CACA,MAAM,IAAI,GAAG,CAAC,GAAG,EAAE,GAAG,KAAK;CAC3B,EAAE,OAAO,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;CACxD,CAAC,CAAC;AACF;CACA,IAAI,MAAM,GAAG,UAAU,GAAG,+BAA+B;CACzD,EAAE,MAAM,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;CAC3D,EAAE,OAAO,OAAO,CAAC,MAAM,EAAE;CACzB,IAAI,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;CACnC,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE;AAC9B;CACA,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;CACpC,MAAM,MAAM,IAAI,SAAS,CAAC,MAAM,GAAG,oBAAoB,CAAC,CAAC;CACzD,KAAK;AACL;CACA,IAAI,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE;CAC5B,MAAM,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE;CAC3B,QAAQ,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;CAC3B,OAAO;CACP,KAAK;CACL,GAAG;AACH;CACA,EAAE,OAAO,GAAG,CAAC;CACb,CAAC,CAAC;AACF;AACA;CACA;CACA,IAAI,aAAa,GAAG,CAAC,MAAM,KAAK;CAChC;CACA,EAAE,IAAI,GAAG,GAAG,CAAC,CAAC;AACd;CACA,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;CACjD,IAAI,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;CAC5B,GAAG;AACH;CACA;CACA,EAAE,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;AACrC;CACA,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;CAC1D,IAAI,IAAI,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;CAC1B,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;CAC3B,IAAI,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC;CACxB,GAAG;AACH;CACA,EAAE,OAAO,MAAM,CAAC;CAChB,CAAC,CAAC;AACF;CACA,IAAI,MAAM,GAAG;CACb,CAAC,MAAM,EAAE,MAAM;CACf,CAAC,aAAa,EAAE,aAAa;CAC7B,CAAC,CAAC;AACF;CACA;AACA;AACA;CACA;CACA;CACA;CACA;CACA;CACA,IAAI,gBAAgB,GAAG,IAAI,CAAC;AAC5B;CACA,IAAI,EAAE,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,EAAE,gBAAgB,GAAG,KAAK,CAAC,EAAE;AACpG;AACA;CACA;CACA;CACA;CACA,MAAM,QAAQ,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;CACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;CAC9B,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;CAC/F,CAAC;CACD,QAAQ,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAClC;AACA;CACA;CACA,IAAI,UAAU,GAAG,CAAC,GAAG,KAAK;CAC1B,EAAE,IAAI,OAAO,WAAW,KAAK,UAAU,IAAI,WAAW,CAAC,SAAS,CAAC,MAAM,EAAE;CACzE,IAAI,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;CACzC,GAAG;AACH;CACA,EAAE,IAAI,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,GAAG,GAAG,CAAC,MAAM,EAAE,OAAO,GAAG,CAAC,CAAC;AAC9D;CACA;CACA,EAAE,KAAK,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,OAAO,EAAE,KAAK,EAAE,EAAE;CAC5C,IAAI,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;CAC9B,IAAI,IAAI,CAAC,CAAC,GAAG,MAAM,MAAM,MAAM,KAAK,KAAK,GAAG,CAAC,GAAG,OAAO,CAAC,EAAE;CAC1D,MAAM,EAAE,GAAG,GAAG,CAAC,UAAU,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;CACrC,MAAM,IAAI,CAAC,EAAE,GAAG,MAAM,MAAM,MAAM,EAAE;CACpC,QAAQ,CAAC,GAAG,OAAO,IAAI,CAAC,CAAC,GAAG,MAAM,KAAK,EAAE,CAAC,IAAI,EAAE,GAAG,MAAM,CAAC,CAAC;CAC3D,QAAQ,KAAK,EAAE,CAAC;CAChB,OAAO;CACP,KAAK;CACL,IAAI,OAAO,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;CAClE,GAAG;AACH;CACA;CACA,EAAE,GAAG,GAAG,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC;AAChC;CACA;CACA,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,EAAE;CAC/C,IAAI,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;CAC9B,IAAI,IAAI,CAAC,CAAC,GAAG,MAAM,MAAM,MAAM,KAAK,KAAK,GAAG,CAAC,GAAG,OAAO,CAAC,EAAE;CAC1D,MAAM,EAAE,GAAG,GAAG,CAAC,UAAU,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;CACrC,MAAM,IAAI,CAAC,EAAE,GAAG,MAAM,MAAM,MAAM,EAAE;CACpC,QAAQ,CAAC,GAAG,OAAO,IAAI,CAAC,CAAC,GAAG,MAAM,KAAK,EAAE,CAAC,IAAI,EAAE,GAAG,MAAM,CAAC,CAAC;CAC3D,QAAQ,KAAK,EAAE,CAAC;CAChB,OAAO;CACP,KAAK;CACL,IAAI,IAAI,CAAC,GAAG,IAAI,EAAE;CAClB;CACA,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;CACnB,KAAK,MAAM,IAAI,CAAC,GAAG,KAAK,EAAE;CAC1B;CACA,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;CAClC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;CACnC,KAAK,MAAM,IAAI,CAAC,GAAG,OAAO,EAAE;CAC5B;CACA,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;CACnC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;CACzC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;CACnC,KAAK,MAAM;CACX;CACA,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;CACnC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC;CAC1C,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;CACzC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;CACnC,KAAK;CACL,GAAG;AACH;CACA,EAAE,OAAO,GAAG,CAAC;CACb,CAAC,CAAC;AACF;CACA;CACA,MAAM,aAAa,GAAG,CAAC,GAAG,EAAE,GAAG,KAAK;CACpC;CACA;CACA;CACA,EAAE,IAAI,GAAG,GAAG,KAAK,EAAE;CACnB,IAAI,IAAI,GAAG,CAAC,QAAQ,IAAI,gBAAgB,EAAE;CAC1C,MAAM,OAAO,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,KAAK,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;CAC9F,KAAK;CACL,GAAG;AACH;CACA,EAAE,IAAI,MAAM,GAAG,EAAE,CAAC;CAClB,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;CAChC,IAAI,MAAM,IAAI,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;CAC1C,GAAG;CACH,EAAE,OAAO,MAAM,CAAC;CAChB,CAAC,CAAC;AACF;AACA;CACA;CACA,IAAI,UAAU,GAAG,CAAC,GAAG,EAAE,GAAG,KAAK;CAC/B,EAAE,MAAM,GAAG,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC;AAChC;CACA,EAAE,IAAI,OAAO,WAAW,KAAK,UAAU,IAAI,WAAW,CAAC,SAAS,CAAC,MAAM,EAAE;CACzE,IAAI,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;CAC1D,GAAG;AACH;CACA,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC;AACb;CACA;CACA;CACA;CACA,EAAE,MAAM,QAAQ,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;AACtC;CACA,EAAE,KAAK,GAAG,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,GAAG;CACjC,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;CACrB;CACA,IAAI,IAAI,CAAC,GAAG,IAAI,EAAE,EAAE,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE;AACpD;CACA,IAAI,IAAI,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;CAC5B;CACA,IAAI,IAAI,KAAK,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE;AAC1E;CACA;CACA,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,GAAG,IAAI,GAAG,KAAK,KAAK,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;CACxD;CACA,IAAI,OAAO,KAAK,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,EAAE;CACjC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;CACvC,MAAM,KAAK,EAAE,CAAC;CACd,KAAK;AACL;CACA;CACA,IAAI,IAAI,KAAK,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,SAAS,EAAE;AAC1D;CACA,IAAI,IAAI,CAAC,GAAG,OAAO,EAAE;CACrB,MAAM,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;CAC1B,KAAK,MAAM;CACX,MAAM,CAAC,IAAI,OAAO,CAAC;CACnB,MAAM,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,KAAK,CAAC,CAAC;CACrD,MAAM,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,MAAM,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC;CAC7C,KAAK;CACL,GAAG;AACH;CACA,EAAE,OAAO,aAAa,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;CACtC,CAAC,CAAC;AACF;AACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,IAAI,UAAU,GAAG,CAAC,GAAG,EAAE,GAAG,KAAK;AAC/B;CACA,EAAE,GAAG,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC;CAC1B,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC,MAAM,EAAE,EAAE,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE;AAC7C;CACA;CACA,EAAE,IAAI,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;CACpB,EAAE,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,MAAM,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE;AAC3D;CACA;CACA;CACA,EAAE,IAAI,GAAG,GAAG,CAAC,EAAE,EAAE,OAAO,GAAG,CAAC,EAAE;AAC9B;CACA;CACA;CACA,EAAE,IAAI,GAAG,KAAK,CAAC,EAAE,EAAE,OAAO,GAAG,CAAC,EAAE;AAChC;CACA,EAAE,OAAO,CAAC,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,CAAC;CACtD,CAAC,CAAC;AACF;CACA,IAAI,OAAO,GAAG;CACd,CAAC,UAAU,EAAE,UAAU;CACvB,CAAC,UAAU,EAAE,UAAU;CACvB,CAAC,UAAU,EAAE,UAAU;CACvB,CAAC,CAAC;AACF;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;CACA,SAAS,OAAO,GAAG;CACnB;CACA,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;CACpB,EAAE,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;CACnB;CACA,EAAE,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;CACpB;CACA,EAAE,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;CACpB;CACA,EAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;CACrB,EAAE,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;CACpB;CACA,EAAE,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;CACrB;CACA,EAAE,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;CACrB;CACA,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,WAAW;CAC1B;CACA,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;CACpB;CACA,EAAE,IAAI,CAAC,SAAS,GAAG,CAAC,cAAc;CAClC;CACA,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;CACjB,CAAC;AACD;CACA,IAAI,OAAO,GAAG,OAAO,CAAC;AACtB;CACA,MAAM,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC;AAC7C;CACA;CACA;AACA;CACA,MAAM;CACN,EAAE,UAAU,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,UAAU;CAC5E,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,cAAc;CAC5C,EAAE,qBAAqB;CACvB,EAAE,kBAAkB;CACpB,EAAE,UAAU,EAAE,YAAY;CAC1B,CAAC,GAAG,WAAW,CAAC;AAChB;CACA;AACA;AACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;CACA;CACA;CACA;CACA;CACA;AACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;CACA;CACA;CACA;CACA;CACA;AACA;AACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,SAAS,SAAS,CAAC,OAAO,EAAE;CAC5B,EAAE,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC;CAC/B,IAAI,KAAK,EAAE,qBAAqB;CAChC,IAAI,MAAM,EAAE,YAAY;CACxB,IAAI,SAAS,EAAE,KAAK;CACpB,IAAI,UAAU,EAAE,EAAE;CAClB,IAAI,QAAQ,EAAE,CAAC;CACf,IAAI,QAAQ,EAAE,kBAAkB;CAChC,GAAG,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;AACpB;CACA,EAAE,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC;AACzB;CACA,EAAE,IAAI,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,UAAU,GAAG,CAAC,CAAC,EAAE;CACvC,IAAI,GAAG,CAAC,UAAU,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC;CACrC,GAAG;AACH;CACA,OAAO,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,UAAU,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,UAAU,GAAG,EAAE,CAAC,EAAE;CACtE,IAAI,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC;CACzB,GAAG;AACH;CACA,EAAE,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC;CAClB,EAAE,IAAI,CAAC,GAAG,MAAM,EAAE,CAAC;CACnB,EAAE,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC;CACtB,EAAE,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;AACnB;CACA,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI,OAAO,EAAE,CAAC;CAC5B,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;AAC1B;CACA,EAAE,IAAI,MAAM,GAAG,WAAW,CAAC,YAAY;CACvC,IAAI,IAAI,CAAC,IAAI;CACb,IAAI,GAAG,CAAC,KAAK;CACb,IAAI,GAAG,CAAC,MAAM;CACd,IAAI,GAAG,CAAC,UAAU;CAClB,IAAI,GAAG,CAAC,QAAQ;CAChB,IAAI,GAAG,CAAC,QAAQ;CAChB,GAAG,CAAC;AACJ;CACA,EAAE,IAAI,MAAM,KAAK,MAAM,EAAE;CACzB,IAAI,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;CACtC,GAAG;AACH;CACA,EAAE,IAAI,GAAG,CAAC,MAAM,EAAE;CAClB,IAAI,WAAW,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACxD,GAAG;AACH;CACA,EAAE,IAAI,GAAG,CAAC,UAAU,EAAE;CACtB,IAAI,IAAI,IAAI,CAAC;CACb;CACA,IAAI,IAAI,OAAO,GAAG,CAAC,UAAU,KAAK,QAAQ,EAAE;CAC5C;CACA,MAAM,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;CAChD,KAAK,MAAM,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,sBAAsB,EAAE;CAC3E,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;CAC5C,KAAK,MAAM;CACX,MAAM,IAAI,GAAG,GAAG,CAAC,UAAU,CAAC;CAC5B,KAAK;AACL;CACA,IAAI,MAAM,GAAG,WAAW,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAC/D;CACA,IAAI,IAAI,MAAM,KAAK,MAAM,EAAE;CAC3B,MAAM,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;CACxC,KAAK;AACL;CACA,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;CAC1B,GAAG;CACH,CAAC;AACD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,SAAS,CAAC,SAAS,CAAC,IAAI,GAAG,UAAU,IAAI,EAAE,UAAU,EAAE;CACvD,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;CACzB,EAAE,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;CAC3C,EAAE,IAAI,MAAM,EAAE,WAAW,CAAC;AAC1B;CACA,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE,EAAE,OAAO,KAAK,CAAC,EAAE;AACnC;CACA,EAAE,IAAI,UAAU,KAAK,CAAC,CAAC,UAAU,EAAE,WAAW,GAAG,UAAU,CAAC;CAC5D,OAAO,WAAW,GAAG,UAAU,KAAK,IAAI,GAAG,UAAU,GAAG,YAAY,CAAC;AACrE;CACA;CACA,EAAE,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;CAChC;CACA,IAAI,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;CAC1C,GAAG,MAAM,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,sBAAsB,EAAE;CAC/D,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;CACtC,GAAG,MAAM;CACT,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;CACtB,GAAG;AACH;CACA,EAAE,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;CACnB,EAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;AACpC;CACA,EAAE,SAAS;CACX,IAAI,IAAI,IAAI,CAAC,SAAS,KAAK,CAAC,EAAE;CAC9B,MAAM,IAAI,CAAC,MAAM,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC,CAAC;CAC9C,MAAM,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;CACxB,MAAM,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;CACjC,KAAK;AACL;CACA;CACA,IAAI,IAAI,CAAC,WAAW,KAAK,YAAY,IAAI,WAAW,KAAK,YAAY,KAAK,IAAI,CAAC,SAAS,IAAI,CAAC,EAAE;CAC/F,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;CAC1D,MAAM,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;CACzB,MAAM,SAAS;CACf,KAAK;AACL;CACA,IAAI,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;AACpD;CACA;CACA,IAAI,IAAI,MAAM,KAAK,cAAc,EAAE;CACnC,MAAM,IAAI,IAAI,CAAC,QAAQ,GAAG,CAAC,EAAE;CAC7B,QAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;CAC5D,OAAO;CACP,MAAM,MAAM,GAAG,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;CACjD,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;CACzB,MAAM,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;CACxB,MAAM,OAAO,MAAM,KAAK,MAAM,CAAC;CAC/B,KAAK;AACL;CACA;CACA,IAAI,IAAI,IAAI,CAAC,SAAS,KAAK,CAAC,EAAE;CAC9B,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;CAC/B,MAAM,SAAS;CACf,KAAK;AACL;CACA;CACA,IAAI,IAAI,WAAW,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,GAAG,CAAC,EAAE;CAC9C,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;CAC1D,MAAM,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;CACzB,MAAM,SAAS;CACf,KAAK;AACL;CACA,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,EAAE,MAAM;CACnC,GAAG;AACH;CACA,EAAE,OAAO,IAAI,CAAC;CACd,CAAC,CAAC;AACF;AACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,UAAU,KAAK,EAAE;CAC9C,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;CAC1B,CAAC,CAAC;AACF;AACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,SAAS,CAAC,SAAS,CAAC,KAAK,GAAG,UAAU,MAAM,EAAE;CAC9C;CACA,EAAE,IAAI,MAAM,KAAK,MAAM,EAAE;CACzB,IAAI,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;CACpD,GAAG;CACH,EAAE,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;CACnB,EAAE,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC;CACpB,EAAE,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;CAC3B,CAAC,CAAC;AACF;AACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,SAAS,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE;CACnC,EAAE,MAAM,QAAQ,GAAG,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC;AAC1C;CACA,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AAC7B;CACA;CACA,EAAE,IAAI,QAAQ,CAAC,GAAG,EAAE,EAAE,MAAM,QAAQ,CAAC,GAAG,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE;AACrE;CACA,EAAE,OAAO,QAAQ,CAAC,MAAM,CAAC;CACzB,CAAC;AACD;AACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,SAAS,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE;CACtC,EAAE,OAAO,GAAG,OAAO,IAAI,EAAE,CAAC;CAC1B,EAAE,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC;CACrB,EAAE,OAAO,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;CACnC,CAAC;AACD;AACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,SAAS,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE;CAChC,EAAE,OAAO,GAAG,OAAO,IAAI,EAAE,CAAC;CAC1B,EAAE,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;CACtB,EAAE,OAAO,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;CACnC,CAAC;AACD;AACA;CACA,IAAI,WAAW,GAAG,SAAS,CAAC;CAC5B,IAAI,SAAS,GAAG,SAAS,CAAC;CAC1B,IAAI,cAAc,GAAG,YAAY,CAAC;CAClC,IAAI,QAAQ,GAAG,MAAM,CAAC;CACtB,IAAI,WAAW,GAAG,WAAW,CAAC;AAC9B;CACA,IAAI,WAAW,GAAG;CAClB,CAAC,OAAO,EAAE,WAAW;CACrB,CAAC,OAAO,EAAE,SAAS;CACnB,CAAC,UAAU,EAAE,cAAc;CAC3B,CAAC,IAAI,EAAE,QAAQ;CACf,CAAC,SAAS,EAAE,WAAW;CACvB,CAAC,CAAC;AACF;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;CACA;CACA,MAAM,KAAK,GAAG,EAAE,CAAC;CACjB,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;CACA;AACA;CACA;CACA;CACA;CACA;CACA;AACA;CACA;AACA;CACA;CACA;CACA;AACA;CACA;AACA;CACA;CACA;CACA;CACA;CACA;AACA;CACA;CACA;CACA;CACA;CACA;CACA,IAAI,OAAO,GAAG,SAAS,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE;CACjD,EAAE,IAAI,GAAG,CAAC;CACV,EAAE,IAAI,IAAI,CAAC;CACX,EAAE,IAAI,IAAI,CAAC;CACX,EAAE,IAAI,GAAG,CAAC;CACV,EAAE,IAAI,GAAG,CAAC;CACV;CACA,EAAE,IAAI,IAAI,CAAC;CACX;CACA,EAAE,IAAI,KAAK,CAAC;CACZ,EAAE,IAAI,KAAK,CAAC;CACZ,EAAE,IAAI,KAAK,CAAC;CACZ;CACA,EAAE,IAAI,QAAQ,CAAC;CACf,EAAE,IAAI,IAAI,CAAC;CACX,EAAE,IAAI,IAAI,CAAC;CACX,EAAE,IAAI,KAAK,CAAC;CACZ,EAAE,IAAI,KAAK,CAAC;CACZ,EAAE,IAAI,KAAK,CAAC;CACZ,EAAE,IAAI,KAAK,CAAC;CACZ,EAAE,IAAI,IAAI,CAAC;CACX,EAAE,IAAI,EAAE,CAAC;CACT;CACA,EAAE,IAAI,GAAG,CAAC;CACV,EAAE,IAAI,IAAI,CAAC;CACX,EAAE,IAAI,IAAI,CAAC;CACX,EAAE,IAAI,WAAW,CAAC;AAClB;AACA;CACA,EAAE,IAAI,KAAK,EAAE,MAAM,CAAC;AACpB;CACA;CACA,EAAE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;CAC3B;CACA,EAAE,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC;CACrB,EAAE,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;CACrB,EAAE,IAAI,GAAG,GAAG,IAAI,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;CACnC,EAAE,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC;CACvB,EAAE,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;CACvB,EAAE,GAAG,GAAG,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;CACxC,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC;CACtC;CACA,EAAE,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;CACpB;CACA,EAAE,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;CACtB,EAAE,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;CACtB,EAAE,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;CACtB,EAAE,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC;CAC1B,EAAE,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;CACpB,EAAE,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;CACpB,EAAE,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC;CACxB,EAAE,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC;CACzB,EAAE,KAAK,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;CACnC,EAAE,KAAK,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC;AACpC;AACA;CACA;CACA;AACA;CACA,EAAE,GAAG;CACL,EAAE,GAAG;CACL,IAAI,IAAI,IAAI,GAAG,EAAE,EAAE;CACnB,MAAM,IAAI,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,IAAI,CAAC;CACnC,MAAM,IAAI,IAAI,CAAC,CAAC;CAChB,MAAM,IAAI,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,IAAI,CAAC;CACnC,MAAM,IAAI,IAAI,CAAC,CAAC;CAChB,KAAK;AACL;CACA,IAAI,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC;AAC/B;CACA,IAAI,KAAK;CACT,IAAI,SAAS;CACb,MAAM,EAAE,GAAG,IAAI,KAAK,EAAE,cAAc;CACpC,MAAM,IAAI,MAAM,EAAE,CAAC;CACnB,MAAM,IAAI,IAAI,EAAE,CAAC;CACjB,MAAM,EAAE,GAAG,CAAC,IAAI,KAAK,EAAE,IAAI,IAAI,YAAY;CAC3C,MAAM,IAAI,EAAE,KAAK,CAAC,EAAE;CACpB;CACA;CACA;CACA,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,GAAG,MAAM,aAAa;CACnD,OAAO;CACP,WAAW,IAAI,EAAE,GAAG,EAAE,EAAE;CACxB,QAAQ,GAAG,GAAG,IAAI,GAAG,MAAM,aAAa;CACxC,QAAQ,EAAE,IAAI,EAAE,CAAC;CACjB,QAAQ,IAAI,EAAE,EAAE;CAChB,UAAU,IAAI,IAAI,GAAG,EAAE,EAAE;CACzB,YAAY,IAAI,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,IAAI,CAAC;CACzC,YAAY,IAAI,IAAI,CAAC,CAAC;CACtB,WAAW;CACX,UAAU,GAAG,IAAI,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;CACxC,UAAU,IAAI,MAAM,EAAE,CAAC;CACvB,UAAU,IAAI,IAAI,EAAE,CAAC;CACrB,SAAS;CACT;CACA,QAAQ,IAAI,IAAI,GAAG,EAAE,EAAE;CACvB,UAAU,IAAI,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,IAAI,CAAC;CACvC,UAAU,IAAI,IAAI,CAAC,CAAC;CACpB,UAAU,IAAI,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,IAAI,CAAC;CACvC,UAAU,IAAI,IAAI,CAAC,CAAC;CACpB,SAAS;CACT,QAAQ,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC;AACnC;CACA,QAAQ,MAAM;CACd,QAAQ,SAAS;CACjB,UAAU,EAAE,GAAG,IAAI,KAAK,EAAE,cAAc;CACxC,UAAU,IAAI,MAAM,EAAE,CAAC;CACvB,UAAU,IAAI,IAAI,EAAE,CAAC;CACrB,UAAU,EAAE,GAAG,CAAC,IAAI,KAAK,EAAE,IAAI,IAAI,YAAY;AAC/C;CACA,UAAU,IAAI,EAAE,GAAG,EAAE,EAAE;CACvB,YAAY,IAAI,GAAG,IAAI,GAAG,MAAM,aAAa;CAC7C,YAAY,EAAE,IAAI,EAAE,CAAC;CACrB,YAAY,IAAI,IAAI,GAAG,EAAE,EAAE;CAC3B,cAAc,IAAI,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,IAAI,CAAC;CAC3C,cAAc,IAAI,IAAI,CAAC,CAAC;CACxB,cAAc,IAAI,IAAI,GAAG,EAAE,EAAE;CAC7B,gBAAgB,IAAI,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,IAAI,CAAC;CAC7C,gBAAgB,IAAI,IAAI,CAAC,CAAC;CAC1B,eAAe;CACf,aAAa;CACb,YAAY,IAAI,IAAI,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;CAC3C;CACA,YAAY,IAAI,IAAI,GAAG,IAAI,EAAE;CAC7B,cAAc,IAAI,CAAC,GAAG,GAAG,+BAA+B,CAAC;CACzD,cAAc,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC;CACjC,cAAc,MAAM,GAAG,CAAC;CACxB,aAAa;CACb;CACA,YAAY,IAAI,MAAM,EAAE,CAAC;CACzB,YAAY,IAAI,IAAI,EAAE,CAAC;CACvB;CACA,YAAY,EAAE,GAAG,IAAI,GAAG,GAAG,CAAC;CAC5B,YAAY,IAAI,IAAI,GAAG,EAAE,EAAE;CAC3B,cAAc,EAAE,GAAG,IAAI,GAAG,EAAE,CAAC;CAC7B,cAAc,IAAI,EAAE,GAAG,KAAK,EAAE;CAC9B,gBAAgB,IAAI,KAAK,CAAC,IAAI,EAAE;CAChC,kBAAkB,IAAI,CAAC,GAAG,GAAG,+BAA+B,CAAC;CAC7D,kBAAkB,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC;CACrC,kBAAkB,MAAM,GAAG,CAAC;CAC5B,iBAAiB;AACjB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,eAAe;CACf,cAAc,IAAI,GAAG,CAAC,CAAC;CACvB,cAAc,WAAW,GAAG,QAAQ,CAAC;CACrC,cAAc,IAAI,KAAK,KAAK,CAAC,EAAE;CAC/B,gBAAgB,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;CACnC,gBAAgB,IAAI,EAAE,GAAG,GAAG,EAAE;CAC9B,kBAAkB,GAAG,IAAI,EAAE,CAAC;CAC5B,kBAAkB,GAAG;CACrB,oBAAoB,MAAM,CAAC,IAAI,EAAE,CAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;CACtD,mBAAmB,QAAQ,EAAE,EAAE,EAAE;CACjC,kBAAkB,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;CACrC,kBAAkB,WAAW,GAAG,MAAM,CAAC;CACvC,iBAAiB;CACjB,eAAe;CACf,mBAAmB,IAAI,KAAK,GAAG,EAAE,EAAE;CACnC,gBAAgB,IAAI,IAAI,KAAK,GAAG,KAAK,GAAG,EAAE,CAAC;CAC3C,gBAAgB,EAAE,IAAI,KAAK,CAAC;CAC5B,gBAAgB,IAAI,EAAE,GAAG,GAAG,EAAE;CAC9B,kBAAkB,GAAG,IAAI,EAAE,CAAC;CAC5B,kBAAkB,GAAG;CACrB,oBAAoB,MAAM,CAAC,IAAI,EAAE,CAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;CACtD,mBAAmB,QAAQ,EAAE,EAAE,EAAE;CACjC,kBAAkB,IAAI,GAAG,CAAC,CAAC;CAC3B,kBAAkB,IAAI,KAAK,GAAG,GAAG,EAAE;CACnC,oBAAoB,EAAE,GAAG,KAAK,CAAC;CAC/B,oBAAoB,GAAG,IAAI,EAAE,CAAC;CAC9B,oBAAoB,GAAG;CACvB,sBAAsB,MAAM,CAAC,IAAI,EAAE,CAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;CACxD,qBAAqB,QAAQ,EAAE,EAAE,EAAE;CACnC,oBAAoB,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;CACvC,oBAAoB,WAAW,GAAG,MAAM,CAAC;CACzC,mBAAmB;CACnB,iBAAiB;CACjB,eAAe;CACf,mBAAmB;CACnB,gBAAgB,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;CACnC,gBAAgB,IAAI,EAAE,GAAG,GAAG,EAAE;CAC9B,kBAAkB,GAAG,IAAI,EAAE,CAAC;CAC5B,kBAAkB,GAAG;CACrB,oBAAoB,MAAM,CAAC,IAAI,EAAE,CAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;CACtD,mBAAmB,QAAQ,EAAE,EAAE,EAAE;CACjC,kBAAkB,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;CACrC,kBAAkB,WAAW,GAAG,MAAM,CAAC;CACvC,iBAAiB;CACjB,eAAe;CACf,cAAc,OAAO,GAAG,GAAG,CAAC,EAAE;CAC9B,gBAAgB,MAAM,CAAC,IAAI,EAAE,CAAC,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;CACrD,gBAAgB,MAAM,CAAC,IAAI,EAAE,CAAC,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;CACrD,gBAAgB,MAAM,CAAC,IAAI,EAAE,CAAC,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;CACrD,gBAAgB,GAAG,IAAI,CAAC,CAAC;CACzB,eAAe;CACf,cAAc,IAAI,GAAG,EAAE;CACvB,gBAAgB,MAAM,CAAC,IAAI,EAAE,CAAC,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;CACrD,gBAAgB,IAAI,GAAG,GAAG,CAAC,EAAE;CAC7B,kBAAkB,MAAM,CAAC,IAAI,EAAE,CAAC,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;CACvD,iBAAiB;CACjB,eAAe;CACf,aAAa;CACb,iBAAiB;CACjB,cAAc,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;CACjC,cAAc,GAAG;CACjB,gBAAgB,MAAM,CAAC,IAAI,EAAE,CAAC,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;CAChD,gBAAgB,MAAM,CAAC,IAAI,EAAE,CAAC,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;CAChD,gBAAgB,MAAM,CAAC,IAAI,EAAE,CAAC,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;CAChD,gBAAgB,GAAG,IAAI,CAAC,CAAC;CACzB,eAAe,QAAQ,GAAG,GAAG,CAAC,EAAE;CAChC,cAAc,IAAI,GAAG,EAAE;CACvB,gBAAgB,MAAM,CAAC,IAAI,EAAE,CAAC,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;CAChD,gBAAgB,IAAI,GAAG,GAAG,CAAC,EAAE;CAC7B,kBAAkB,MAAM,CAAC,IAAI,EAAE,CAAC,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;CAClD,iBAAiB;CACjB,eAAe;CACf,aAAa;CACb,WAAW;CACX,eAAe,IAAI,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE;CACpC,YAAY,IAAI,GAAG,KAAK,CAAC,CAAC,IAAI,GAAG,MAAM,iBAAiB,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;CACjF,YAAY,SAAS,MAAM,CAAC;CAC5B,WAAW;CACX,eAAe;CACf,YAAY,IAAI,CAAC,GAAG,GAAG,uBAAuB,CAAC;CAC/C,YAAY,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC;CAC/B,YAAY,MAAM,GAAG,CAAC;CACtB,WAAW;AACX;CACA,UAAU,MAAM;CAChB,SAAS;CACT,OAAO;CACP,WAAW,IAAI,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE;CAChC,QAAQ,IAAI,GAAG,KAAK,CAAC,CAAC,IAAI,GAAG,MAAM,iBAAiB,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;CAC7E,QAAQ,SAAS,KAAK,CAAC;CACvB,OAAO;CACP,WAAW,IAAI,EAAE,GAAG,EAAE,EAAE;CACxB;CACA,QAAQ,KAAK,CAAC,IAAI,GAAG,MAAM,CAAC;CAC5B,QAAQ,MAAM,GAAG,CAAC;CAClB,OAAO;CACP,WAAW;CACX,QAAQ,IAAI,CAAC,GAAG,GAAG,6BAA6B,CAAC;CACjD,QAAQ,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC;CAC3B,QAAQ,MAAM,GAAG,CAAC;CAClB,OAAO;AACP;CACA,MAAM,MAAM;CACZ,KAAK;CACL,GAAG,QAAQ,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,EAAE;AACrC;CACA;CACA,EAAE,GAAG,GAAG,IAAI,IAAI,CAAC,CAAC;CAClB,EAAE,GAAG,IAAI,GAAG,CAAC;CACb,EAAE,IAAI,IAAI,GAAG,IAAI,CAAC,CAAC;CACnB,EAAE,IAAI,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC;AAC1B;CACA;CACA,EAAE,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;CACrB,EAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;CACvB,EAAE,IAAI,CAAC,QAAQ,IAAI,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC;CACrE,EAAE,IAAI,CAAC,SAAS,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC;CAC1E,EAAE,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;CACpB,EAAE,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;CACpB,EAAE,OAAO;CACT,CAAC,CAAC;AACF;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;CACA,MAAM,OAAO,GAAG,EAAE,CAAC;CACnB,MAAM,aAAa,GAAG,GAAG,CAAC;CAC1B,MAAM,cAAc,GAAG,GAAG,CAAC;CAC3B;AACA;CACA,MAAM,OAAO,GAAG,CAAC,CAAC;CAClB,MAAM,MAAM,GAAG,CAAC,CAAC;CACjB,MAAM,OAAO,GAAG,CAAC,CAAC;AAClB;CACA,MAAM,KAAK,GAAG,IAAI,WAAW,CAAC;CAC9B,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;CACzD,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;CAChE,CAAC,CAAC,CAAC;AACH;CACA,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC;CAC5B,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;CAChE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;CAC5D,CAAC,CAAC,CAAC;AACH;CACA,MAAM,KAAK,GAAG,IAAI,WAAW,CAAC;CAC9B,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG;CAC3D,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;CACxD,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;CACjC,CAAC,CAAC,CAAC;AACH;CACA,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC;CAC5B,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;CAChE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;CACxC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;CACxB,CAAC,CAAC,CAAC;AACH;CACA,MAAM,aAAa,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI;CACpF;CACA,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;CACzB;AACA;CACA,EAAE,IAAI,GAAG,GAAG,CAAC,CAAC;CACd,EAAE,IAAI,GAAG,GAAG,CAAC,CAAC;CACd,EAAE,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC;CACvB,EAAE,IAAI,IAAI,GAAG,CAAC,CAAC;CACf,EAAE,IAAI,IAAI,GAAG,CAAC,CAAC;CACf,EAAE,IAAI,IAAI,GAAG,CAAC,CAAC;CACf,EAAE,IAAI,IAAI,GAAG,CAAC,CAAC;CACf,EAAE,IAAI,IAAI,GAAG,CAAC,CAAC;CACf,EAAE,IAAI,IAAI,GAAG,CAAC,CAAC;CACf,EAAE,IAAI,IAAI,CAAC;CACX,EAAE,IAAI,IAAI,CAAC;CACX,EAAE,IAAI,GAAG,CAAC;CACV,EAAE,IAAI,IAAI,CAAC;CACX,EAAE,IAAI,IAAI,CAAC;CACX,EAAE,IAAI,IAAI,GAAG,IAAI,CAAC;CAClB,EAAE,IAAI,UAAU,GAAG,CAAC,CAAC;CACrB;CACA,EAAE,IAAI,GAAG,CAAC;CACV,EAAE,MAAM,KAAK,GAAG,IAAI,WAAW,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;CAC7C,EAAE,MAAM,IAAI,GAAG,IAAI,WAAW,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;CAC5C,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC;CACnB,EAAE,IAAI,WAAW,GAAG,CAAC,CAAC;AACtB;CACA,EAAE,IAAI,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC;AACnC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;CACA;CACA;CACA;CACA;AACA;CACA;CACA;CACA;CACA;CACA;AACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;CACA;CACA,EAAE,KAAK,GAAG,GAAG,CAAC,EAAE,GAAG,IAAI,OAAO,EAAE,GAAG,EAAE,EAAE;CACvC,IAAI,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;CACnB,GAAG;CACH,EAAE,KAAK,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,KAAK,EAAE,GAAG,EAAE,EAAE;CACpC,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC;CACpC,GAAG;AACH;CACA;CACA,EAAE,IAAI,GAAG,IAAI,CAAC;CACd,EAAE,KAAK,GAAG,GAAG,OAAO,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE;CACvC,IAAI,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE;CACpC,GAAG;CACH,EAAE,IAAI,IAAI,GAAG,GAAG,EAAE;CAClB,IAAI,IAAI,GAAG,GAAG,CAAC;CACf,GAAG;CACH,EAAE,IAAI,GAAG,KAAK,CAAC,EAAE;CACjB;CACA;CACA;CACA,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC;AACtD;AACA;CACA;CACA;CACA;CACA,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC;AACtD;CACA,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;CAClB,IAAI,OAAO,CAAC,CAAC;CACb,GAAG;CACH,EAAE,KAAK,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE;CAClC,IAAI,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE;CACpC,GAAG;CACH,EAAE,IAAI,IAAI,GAAG,GAAG,EAAE;CAClB,IAAI,IAAI,GAAG,GAAG,CAAC;CACf,GAAG;AACH;CACA;CACA,EAAE,IAAI,GAAG,CAAC,CAAC;CACX,EAAE,KAAK,GAAG,GAAG,CAAC,EAAE,GAAG,IAAI,OAAO,EAAE,GAAG,EAAE,EAAE;CACvC,IAAI,IAAI,KAAK,CAAC,CAAC;CACf,IAAI,IAAI,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;CACvB,IAAI,IAAI,IAAI,GAAG,CAAC,EAAE;CAClB,MAAM,OAAO,CAAC,CAAC,CAAC;CAChB,KAAK;CACL,GAAG;CACH,EAAE,IAAI,IAAI,GAAG,CAAC,KAAK,IAAI,KAAK,OAAO,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE;CACnD,IAAI,OAAO,CAAC,CAAC,CAAC;CACd,GAAG;AACH;CACA;CACA,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;CACd,EAAE,KAAK,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,OAAO,EAAE,GAAG,EAAE,EAAE;CACtC,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;CAC3C,GAAG;AACH;CACA;CACA,EAAE,KAAK,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,KAAK,EAAE,GAAG,EAAE,EAAE;CACpC,IAAI,IAAI,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE;CACtC,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;CACjD,KAAK;CACL,GAAG;AACH;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;CACA;CACA;CACA;CACA;CACA;AACA;CACA;CACA;CACA;CACA;AACA;CACA;CACA;CACA;CACA;CACA;AACA;CACA;CACA;CACA;CACA;CACA;AACA;CACA;CACA;CACA;CACA,EAAE,IAAI,IAAI,KAAK,OAAO,EAAE;CACxB,IAAI,IAAI,GAAG,KAAK,GAAG,IAAI,CAAC;CACxB,IAAI,GAAG,GAAG,EAAE,CAAC;AACb;CACA,GAAG,MAAM,IAAI,IAAI,KAAK,MAAM,EAAE;CAC9B,IAAI,IAAI,GAAG,KAAK,CAAC;CACjB,IAAI,UAAU,IAAI,GAAG,CAAC;CACtB,IAAI,KAAK,GAAG,IAAI,CAAC;CACjB,IAAI,WAAW,IAAI,GAAG,CAAC;CACvB,IAAI,GAAG,GAAG,GAAG,CAAC;AACd;CACA,GAAG,MAAM;CACT,IAAI,IAAI,GAAG,KAAK,CAAC;CACjB,IAAI,KAAK,GAAG,IAAI,CAAC;CACjB,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC;CACb,GAAG;AACH;CACA;CACA,EAAE,IAAI,GAAG,CAAC,CAAC;CACX,EAAE,GAAG,GAAG,CAAC,CAAC;CACV,EAAE,GAAG,GAAG,GAAG,CAAC;CACZ,EAAE,IAAI,GAAG,WAAW,CAAC;CACrB,EAAE,IAAI,GAAG,IAAI,CAAC;CACd,EAAE,IAAI,GAAG,CAAC,CAAC;CACX,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC;CACX,EAAE,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC;CACnB,EAAE,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC;AAClB;CACA;CACA,EAAE,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,GAAG,aAAa;CAC9C,KAAK,IAAI,KAAK,OAAO,IAAI,IAAI,GAAG,cAAc,CAAC,EAAE;CACjD,IAAI,OAAO,CAAC,CAAC;CACb,GAAG;AACH;CACA;CACA,EAAE,SAAS;CACX;CACA,IAAI,SAAS,GAAG,GAAG,GAAG,IAAI,CAAC;CAC3B,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE;CACzB,MAAM,OAAO,GAAG,CAAC,CAAC;CAClB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;CAC3B,KAAK;CACL,SAAS,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE;CAC9B,MAAM,OAAO,GAAG,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;CAC/C,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;CAC9C,KAAK;CACL,SAAS;CACT,MAAM,OAAO,GAAG,EAAE,GAAG,EAAE,CAAC;CACxB,MAAM,QAAQ,GAAG,CAAC,CAAC;CACnB,KAAK;AACL;CACA;CACA,IAAI,IAAI,GAAG,CAAC,KAAK,GAAG,GAAG,IAAI,CAAC,CAAC;CAC7B,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC;CACrB,IAAI,GAAG,GAAG,IAAI,CAAC;CACf,IAAI,GAAG;CACP,MAAM,IAAI,IAAI,IAAI,CAAC;CACnB,MAAM,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,IAAI,EAAE,KAAK,OAAO,IAAI,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,CAAC;CAC9F,KAAK,QAAQ,IAAI,KAAK,CAAC,EAAE;AACzB;CACA;CACA,IAAI,IAAI,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC;CAC1B,IAAI,OAAO,IAAI,GAAG,IAAI,EAAE;CACxB,MAAM,IAAI,KAAK,CAAC,CAAC;CACjB,KAAK;CACL,IAAI,IAAI,IAAI,KAAK,CAAC,EAAE;CACpB,MAAM,IAAI,IAAI,IAAI,GAAG,CAAC,CAAC;CACvB,MAAM,IAAI,IAAI,IAAI,CAAC;CACnB,KAAK,MAAM;CACX,MAAM,IAAI,GAAG,CAAC,CAAC;CACf,KAAK;AACL;CACA;CACA,IAAI,GAAG,EAAE,CAAC;CACV,IAAI,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;CAC5B,MAAM,IAAI,GAAG,KAAK,GAAG,EAAE,EAAE,MAAM,EAAE;CACjC,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;CACzC,KAAK;AACL;CACA;CACA,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,MAAM,GAAG,EAAE;CAC7C;CACA,MAAM,IAAI,IAAI,KAAK,CAAC,EAAE;CACtB,QAAQ,IAAI,GAAG,IAAI,CAAC;CACpB,OAAO;AACP;CACA;CACA,MAAM,IAAI,IAAI,GAAG,CAAC;AAClB;CACA;CACA,MAAM,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC;CACxB,MAAM,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC;CACvB,MAAM,OAAO,IAAI,GAAG,IAAI,GAAG,GAAG,EAAE;CAChC,QAAQ,IAAI,IAAI,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;CACnC,QAAQ,IAAI,IAAI,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE;CACjC,QAAQ,IAAI,EAAE,CAAC;CACf,QAAQ,IAAI,KAAK,CAAC,CAAC;CACnB,OAAO;AACP;CACA;CACA,MAAM,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC;CACxB,MAAM,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,GAAG,aAAa;CAClD,SAAS,IAAI,KAAK,OAAO,IAAI,IAAI,GAAG,cAAc,CAAC,EAAE;CACrD,QAAQ,OAAO,CAAC,CAAC;CACjB,OAAO;AACP;CACA;CACA,MAAM,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC;CACxB;CACA;CACA;CACA,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,CAAC,IAAI,IAAI,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC;CACzE,KAAK;CACL,GAAG;AACH;CACA;CACA;CACA;CACA,EAAE,IAAI,IAAI,KAAK,CAAC,EAAE;CAClB;CACA;CACA;CACA,IAAI,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,IAAI,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;CAC9D,GAAG;AACH;CACA;CACA;CACA,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;CACnB,EAAE,OAAO,CAAC,CAAC;CACX,CAAC,CAAC;AACF;AACA;CACA,IAAI,QAAQ,GAAG,aAAa,CAAC;AAC7B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;AACA;AACA;AACA;AACA;AACA;CACA,MAAM,KAAK,GAAG,CAAC,CAAC;CAChB,MAAM,IAAI,GAAG,CAAC,CAAC;CACf,MAAM,KAAK,GAAG,CAAC,CAAC;AAChB;CACA;CACA;AACA;CACA,MAAM;CACN,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO;CACxC,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,aAAa,EAAE,cAAc,EAAE,gBAAgB,EAAE,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW;CACjL,EAAE,UAAU;CACZ,CAAC,GAAG,WAAW,CAAC;AAChB;AACA;CACA;CACA;AACA;AACA;CACA,SAAS,IAAI,GAAG,CAAC,CAAC;CAClB,SAAS,KAAK,GAAG,CAAC,CAAC;CACnB,SAAS,IAAI,GAAG,CAAC,CAAC;CAClB,SAAS,EAAE,GAAG,CAAC,CAAC;CAChB,SAAS,KAAK,GAAG,CAAC,CAAC;CACnB,SAAS,KAAK,GAAG,CAAC,CAAC;CACnB,SAAS,IAAI,GAAG,CAAC,CAAC;CAClB,SAAS,OAAO,GAAG,CAAC,CAAC;CACrB,SAAS,IAAI,GAAG,CAAC,CAAC;CAClB,SAAS,MAAM,GAAG,EAAE,CAAC;CACrB,SAAS,IAAI,GAAG,EAAE,CAAC;CACnB,aAAa,IAAI,GAAG,EAAE,CAAC;CACvB,aAAa,MAAM,GAAG,EAAE,CAAC;CACzB,aAAa,MAAM,GAAG,EAAE,CAAC;CACzB,aAAa,KAAK,GAAG,EAAE,CAAC;CACxB,aAAa,IAAI,GAAG,EAAE,CAAC;CACvB,aAAa,KAAK,GAAG,EAAE,CAAC;CACxB,aAAa,OAAO,GAAG,EAAE,CAAC;CAC1B,aAAa,QAAQ,GAAG,EAAE,CAAC;CAC3B,iBAAiB,IAAI,GAAG,EAAE,CAAC;CAC3B,iBAAiB,GAAG,GAAG,EAAE,CAAC;CAC1B,iBAAiB,MAAM,GAAG,EAAE,CAAC;CAC7B,iBAAiB,IAAI,GAAG,EAAE,CAAC;CAC3B,iBAAiB,OAAO,GAAG,EAAE,CAAC;CAC9B,iBAAiB,KAAK,GAAG,EAAE,CAAC;CAC5B,iBAAiB,GAAG,GAAG,EAAE,CAAC;CAC1B,SAAS,KAAK,GAAG,EAAE,CAAC;CACpB,SAASC,QAAM,GAAG,EAAE,CAAC;CACrB,SAAS,IAAI,GAAG,EAAE,CAAC;CACnB,SAAS,GAAG,GAAG,EAAE,CAAC;CAClB,SAAS,GAAG,GAAG,EAAE,CAAC;CAClB,SAAS,IAAI,GAAG,EAAE,CAAC;AACnB;CACA;AACA;AACA;AACA;CACA,MAAM,WAAW,GAAG,GAAG,CAAC;CACxB,MAAM,YAAY,GAAG,GAAG,CAAC;CACzB;AACA;CACA,MAAM,SAAS,GAAG,EAAE,CAAC;CACrB;CACA,MAAM,SAAS,GAAG,SAAS,CAAC;AAC5B;AACA;CACA,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK;AACvB;CACA,EAAE,SAAS,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,IAAI;CAC7B,WAAW,CAAC,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC;CAC9B,WAAW,CAAC,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC;CAC7B,WAAW,CAAC,CAAC,GAAG,IAAI,KAAK,EAAE,CAAC,EAAE;CAC9B,CAAC,CAAC;AACF;AACA;CACA,SAAS,YAAY,GAAG;CACxB,EAAE,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;CAChB,EAAE,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;CACpB,EAAE,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;CAChB,EAAE,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;CACxB,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;CACjB,EAAE,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;CAChB,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;CACjB,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;CACjB;CACA,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACnB;CACA;CACA,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;CACjB,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;CACjB,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;CACjB,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;CACjB,EAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACrB;CACA;CACA,EAAE,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;CAChB,EAAE,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;AAChB;CACA;CACA,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;CAClB,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AAClB;CACA;CACA,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;AACjB;CACA;CACA,EAAE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;CACtB,EAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;CACvB,EAAE,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;CACnB,EAAE,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;AACpB;CACA;CACA,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;CACjB,EAAE,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;CAChB,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;CACjB,EAAE,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;CAChB,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACnB;CACA,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC;CACnC,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC;AACnC;CACA;CACA;CACA;CACA;CACA;CACA,EAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;CACrB,EAAE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;CACtB,EAAE,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;CAChB,EAAE,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;CAChB,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;CACf,CAAC;AACD;AACA;CACA,MAAM,gBAAgB,GAAG,CAAC,IAAI,KAAK;AACnC;CACA,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,OAAO,gBAAgB,CAAC,EAAE;CACxD,EAAE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;CAC3B,EAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;CACnD,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;CAChB,EAAE,IAAI,KAAK,CAAC,IAAI,EAAE;CAClB,IAAI,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;CAChC,GAAG;CACH,EAAE,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;CACpB,EAAE,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;CACjB,EAAE,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC;CACrB,EAAE,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC;CACrB,EAAE,KAAK,CAAC,IAAI,GAAG,IAAI,WAAW;CAC9B,EAAE,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;CACjB,EAAE,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;CACjB;CACA,EAAE,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,MAAM,GAAG,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC;CAC7D,EAAE,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,OAAO,GAAG,IAAI,UAAU,CAAC,YAAY,CAAC,CAAC;AAChE;CACA,EAAE,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;CACjB,EAAE,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;CAClB;CACA,EAAE,OAAO,MAAM,CAAC;CAChB,CAAC,CAAC;AACF;AACA;CACA,MAAM,YAAY,GAAG,CAAC,IAAI,KAAK;AAC/B;CACA,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,OAAO,gBAAgB,CAAC,EAAE;CACxD,EAAE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;CAC3B,EAAE,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;CAClB,EAAE,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;CAClB,EAAE,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;CAClB,EAAE,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAC;AAChC;CACA,CAAC,CAAC;AACF;AACA;CACA,MAAM,aAAa,GAAG,CAAC,IAAI,EAAE,UAAU,KAAK;CAC5C,EAAE,IAAI,IAAI,CAAC;AACX;CACA;CACA,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,OAAO,gBAAgB,CAAC,EAAE;CACxD,EAAE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;AAC3B;CACA;CACA,EAAE,IAAI,UAAU,GAAG,CAAC,EAAE;CACtB,IAAI,IAAI,GAAG,CAAC,CAAC;CACb,IAAI,UAAU,GAAG,CAAC,UAAU,CAAC;CAC7B,GAAG;CACH,OAAO;CACP,IAAI,IAAI,GAAG,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,CAAC;CACjC,IAAI,IAAI,UAAU,GAAG,EAAE,EAAE;CACzB,MAAM,UAAU,IAAI,EAAE,CAAC;CACvB,KAAK;CACL,GAAG;AACH;CACA;CACA,EAAE,IAAI,UAAU,KAAK,UAAU,GAAG,CAAC,IAAI,UAAU,GAAG,EAAE,CAAC,EAAE;CACzD,IAAI,OAAO,gBAAgB,CAAC;CAC5B,GAAG;CACH,EAAE,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,IAAI,KAAK,CAAC,KAAK,KAAK,UAAU,EAAE;CAC3D,IAAI,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;CACxB,GAAG;AACH;CACA;CACA,EAAE,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;CACpB,EAAE,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC;CAC3B,EAAE,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC;CAC5B,CAAC,CAAC;AACF;AACA;CACA,MAAM,YAAY,GAAG,CAAC,IAAI,EAAE,UAAU,KAAK;AAC3C;CACA,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,OAAO,gBAAgB,CAAC,EAAE;CACzC;AACA;CACA,EAAE,MAAM,KAAK,GAAG,IAAI,YAAY,EAAE,CAAC;AACnC;CACA;CACA;CACA,EAAE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;CACrB,EAAE,KAAK,CAAC,MAAM,GAAG,IAAI,WAAW;CAChC,EAAE,MAAM,GAAG,GAAG,aAAa,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;CAC9C,EAAE,IAAI,GAAG,KAAK,MAAM,EAAE;CACtB,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,WAAW;CAChC,GAAG;CACH,EAAE,OAAO,GAAG,CAAC;CACb,CAAC,CAAC;AACF;AACA;CACA,MAAM,WAAW,GAAG,CAAC,IAAI,KAAK;AAC9B;CACA,EAAE,OAAO,YAAY,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;CACvC,CAAC,CAAC;AACF;AACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,IAAI,MAAM,GAAG,IAAI,CAAC;AAClB;CACA,IAAI,MAAM,EAAE,OAAO,CAAC;AACpB;AACA;CACA,MAAM,WAAW,GAAG,CAAC,KAAK,KAAK;AAC/B;CACA;CACA,EAAE,IAAI,MAAM,EAAE;CACd,IAAI,MAAM,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;CACjC,IAAI,OAAO,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;AACjC;CACA;CACA,IAAI,IAAI,GAAG,GAAG,CAAC,CAAC;CAChB,IAAI,OAAO,GAAG,GAAG,GAAG,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE;CAChD,IAAI,OAAO,GAAG,GAAG,GAAG,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE;CAChD,IAAI,OAAO,GAAG,GAAG,GAAG,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE;CAChD,IAAI,OAAO,GAAG,GAAG,GAAG,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE;AAChD;CACA,IAAI,QAAQ,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,IAAI,CAAC,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;AAC9E;CACA;CACA,IAAI,GAAG,GAAG,CAAC,CAAC;CACZ,IAAI,OAAO,GAAG,GAAG,EAAE,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE;AAC/C;CACA,IAAI,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,IAAI,OAAO,EAAE,CAAC,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;AAC9E;CACA;CACA,IAAI,MAAM,GAAG,KAAK,CAAC;CACnB,GAAG;AACH;CACA,EAAE,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;CACzB,EAAE,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC;CACpB,EAAE,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC;CAC3B,EAAE,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC;CACrB,CAAC,CAAC;AACF;AACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,MAAM,YAAY,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,KAAK;AAC/C;CACA,EAAE,IAAI,IAAI,CAAC;CACX,EAAE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;AAC3B;CACA;CACA,EAAE,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,EAAE;CAC7B,IAAI,KAAK,CAAC,KAAK,GAAG,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC;CACnC,IAAI,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;CACpB,IAAI,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;AACpB;CACA,IAAI,KAAK,CAAC,MAAM,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;CAC/C,GAAG;AACH;CACA;CACA,EAAE,IAAI,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE;CAC3B,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,GAAG,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;CAC9D,IAAI,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;CACpB,IAAI,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;CAC9B,GAAG;CACH,OAAO;CACP,IAAI,IAAI,GAAG,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;CACrC,IAAI,IAAI,IAAI,GAAG,IAAI,EAAE;CACrB,MAAM,IAAI,GAAG,IAAI,CAAC;CAClB,KAAK;CACL;CACA,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,GAAG,IAAI,EAAE,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;CAC/E,IAAI,IAAI,IAAI,IAAI,CAAC;CACjB,IAAI,IAAI,IAAI,EAAE;CACd;CACA,MAAM,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;CACzD,MAAM,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;CACzB,MAAM,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;CAChC,KAAK;CACL,SAAS;CACT,MAAM,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC;CAC1B,MAAM,IAAI,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,EAAE,EAAE,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE;CAC3D,MAAM,IAAI,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,EAAE,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,EAAE;CAC7D,KAAK;CACL,GAAG;CACH,EAAE,OAAO,CAAC,CAAC;CACX,CAAC,CAAC;AACF;AACA;CACA,MAAM,SAAS,GAAG,CAAC,IAAI,EAAE,KAAK,KAAK;AACnC;CACA,EAAE,IAAI,KAAK,CAAC;CACZ,EAAE,IAAI,KAAK,EAAE,MAAM,CAAC;CACpB,EAAE,IAAI,IAAI,CAAC;CACX,EAAE,IAAI,GAAG,CAAC;CACV,EAAE,IAAI,IAAI,EAAE,IAAI,CAAC;CACjB,EAAE,IAAI,IAAI,CAAC;CACX,EAAE,IAAI,IAAI,CAAC;CACX,EAAE,IAAI,GAAG,EAAE,IAAI,CAAC;CAChB,EAAE,IAAI,IAAI,CAAC;CACX,EAAE,IAAI,IAAI,CAAC;CACX,EAAE,IAAI,WAAW,CAAC;CAClB,EAAE,IAAI,IAAI,GAAG,CAAC,CAAC;CACf,EAAE,IAAI,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC;CACnC;CACA,EAAE,IAAI,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC;CACnC,EAAE,IAAI,GAAG,CAAC;CACV,EAAE,IAAI,GAAG,CAAC;CACV,EAAE,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;CACjC,EAAE,IAAI,IAAI,CAAC;AACX;CACA,EAAE,IAAI,CAAC,CAAC;AACR;CACA,EAAE,MAAM,KAAK;CACb,IAAI,IAAI,UAAU,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AACzF;AACA;CACA,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,MAAM;CAC1C,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,CAAC,EAAE;CAC5C,IAAI,OAAO,gBAAgB,CAAC;CAC5B,GAAG;AACH;CACA,EAAE,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;CACrB,EAAE,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,EAAE,EAAE,KAAK,CAAC,IAAI,GAAG,MAAM,CAAC,EAAE;AACnD;AACA;CACA;CACA,EAAE,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC;CACtB,EAAE,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;CACvB,EAAE,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC;CACxB,EAAE,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC;CACtB,EAAE,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;CACrB,EAAE,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC;CACvB,EAAE,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;CACpB,EAAE,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;CACpB;AACA;CACA,EAAE,GAAG,GAAG,IAAI,CAAC;CACb,EAAE,IAAI,GAAG,IAAI,CAAC;CACd,EAAE,GAAG,GAAG,MAAM,CAAC;AACf;CACA,EAAE,SAAS;CACX,EAAE,SAAS;CACX,IAAI,QAAQ,KAAK,CAAC,IAAI;CACtB,MAAM,KAAK,IAAI;CACf,QAAQ,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE;CAC9B,UAAU,KAAK,CAAC,IAAI,GAAG,MAAM,CAAC;CAC9B,UAAU,MAAM;CAChB,SAAS;CACT;CACA,QAAQ,OAAO,IAAI,GAAG,EAAE,EAAE;CAC1B,UAAU,IAAI,IAAI,KAAK,CAAC,EAAE,EAAE,MAAM,SAAS,CAAC,EAAE;CAC9C,UAAU,IAAI,EAAE,CAAC;CACjB,UAAU,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC;CACxC,UAAU,IAAI,IAAI,CAAC,CAAC;CACpB,SAAS;CACT;CACA,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,KAAK,IAAI,KAAK,MAAM,EAAE;CACjD,UAAU,KAAK,CAAC,KAAK,GAAG,CAAC,yBAAyB;CAClD;CACA,UAAU,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;CAChC,UAAU,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC;CACxC,UAAU,KAAK,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;CACzD;AACA;CACA;CACA,UAAU,IAAI,GAAG,CAAC,CAAC;CACnB,UAAU,IAAI,GAAG,CAAC,CAAC;CACnB;CACA,UAAU,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC;CAC7B,UAAU,MAAM;CAChB,SAAS;CACT,QAAQ,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;CACxB,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE;CACxB,UAAU,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;CAClC,SAAS;CACT,QAAQ,IAAI,EAAE,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;CAC7B,UAAU,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,gBAAgB,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;CAChE,UAAU,IAAI,CAAC,GAAG,GAAG,wBAAwB,CAAC;CAC9C,UAAU,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC;CAC3B,UAAU,MAAM;CAChB,SAAS;CACT,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI,iBAAiB,UAAU,EAAE;CACrD,UAAU,IAAI,CAAC,GAAG,GAAG,4BAA4B,CAAC;CAClD,UAAU,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC;CAC3B,UAAU,MAAM;CAChB,SAAS;CACT;CACA,QAAQ,IAAI,MAAM,CAAC,CAAC;CACpB,QAAQ,IAAI,IAAI,CAAC,CAAC;CAClB;CACA,QAAQ,GAAG,GAAG,CAAC,IAAI,GAAG,IAAI,eAAe,CAAC,CAAC;CAC3C,QAAQ,IAAI,KAAK,CAAC,KAAK,KAAK,CAAC,EAAE;CAC/B,UAAU,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC;CAC5B,SAAS;CACT,aAAa,IAAI,GAAG,GAAG,KAAK,CAAC,KAAK,EAAE;CACpC,UAAU,IAAI,CAAC,GAAG,GAAG,qBAAqB,CAAC;CAC3C,UAAU,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC;CAC3B,UAAU,MAAM;CAChB,SAAS;AACT;CACA;CACA;CACA,QAAQ,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC;CACtC;AACA;CACA;CACA,QAAQ,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,GAAG,CAAC,2BAA2B;CAC/D,QAAQ,KAAK,CAAC,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,MAAM,GAAG,IAAI,CAAC;CAClD;CACA,QAAQ,IAAI,GAAG,CAAC,CAAC;CACjB,QAAQ,IAAI,GAAG,CAAC,CAAC;CACjB;CACA,QAAQ,MAAM;CACd,MAAM,KAAK,KAAK;CAChB;CACA,QAAQ,OAAO,IAAI,GAAG,EAAE,EAAE;CAC1B,UAAU,IAAI,IAAI,KAAK,CAAC,EAAE,EAAE,MAAM,SAAS,CAAC,EAAE;CAC9C,UAAU,IAAI,EAAE,CAAC;CACjB,UAAU,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC;CACxC,UAAU,IAAI,IAAI,CAAC,CAAC;CACpB,SAAS;CACT;CACA,QAAQ,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;CAC3B,QAAQ,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,MAAM,UAAU,EAAE;CACjD,UAAU,IAAI,CAAC,GAAG,GAAG,4BAA4B,CAAC;CAClD,UAAU,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC;CAC3B,UAAU,MAAM;CAChB,SAAS;CACT,QAAQ,IAAI,KAAK,CAAC,KAAK,GAAG,MAAM,EAAE;CAClC,UAAU,IAAI,CAAC,GAAG,GAAG,0BAA0B,CAAC;CAChD,UAAU,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC;CAC3B,UAAU,MAAM;CAChB,SAAS;CACT,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE;CACxB,UAAU,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;CAC9C,SAAS;CACT,QAAQ,IAAI,KAAK,CAAC,KAAK,GAAG,MAAM,EAAE;CAClC;CACA,UAAU,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;CAChC,UAAU,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC;CACxC,UAAU,KAAK,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;CACzD;CACA,SAAS;CACT;CACA,QAAQ,IAAI,GAAG,CAAC,CAAC;CACjB,QAAQ,IAAI,GAAG,CAAC,CAAC;CACjB;CACA,QAAQ,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;CAC1B;CACA,MAAM,KAAK,IAAI;CACf;CACA,QAAQ,OAAO,IAAI,GAAG,EAAE,EAAE;CAC1B,UAAU,IAAI,IAAI,KAAK,CAAC,EAAE,EAAE,MAAM,SAAS,CAAC,EAAE;CAC9C,UAAU,IAAI,EAAE,CAAC;CACjB,UAAU,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC;CACxC,UAAU,IAAI,IAAI,CAAC,CAAC;CACpB,SAAS;CACT;CACA,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE;CACxB,UAAU,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;CACjC,SAAS;CACT,QAAQ,IAAI,KAAK,CAAC,KAAK,GAAG,MAAM,EAAE;CAClC;CACA,UAAU,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;CAChC,UAAU,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC;CACxC,UAAU,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,EAAE,IAAI,IAAI,CAAC;CACzC,UAAU,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,EAAE,IAAI,IAAI,CAAC;CACzC,UAAU,KAAK,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;CACzD;CACA,SAAS;CACT;CACA,QAAQ,IAAI,GAAG,CAAC,CAAC;CACjB,QAAQ,IAAI,GAAG,CAAC,CAAC;CACjB;CACA,QAAQ,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC;CACxB;CACA,MAAM,KAAK,EAAE;CACb;CACA,QAAQ,OAAO,IAAI,GAAG,EAAE,EAAE;CAC1B,UAAU,IAAI,IAAI,KAAK,CAAC,EAAE,EAAE,MAAM,SAAS,CAAC,EAAE;CAC9C,UAAU,IAAI,EAAE,CAAC;CACjB,UAAU,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC;CACxC,UAAU,IAAI,IAAI,CAAC,CAAC;CACpB,SAAS;CACT;CACA,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE;CACxB,UAAU,KAAK,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,GAAG,IAAI,CAAC,CAAC;CAC5C,UAAU,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC;CACtC,SAAS;CACT,QAAQ,IAAI,KAAK,CAAC,KAAK,GAAG,MAAM,EAAE;CAClC;CACA,UAAU,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;CAChC,UAAU,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC;CACxC,UAAU,KAAK,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;CACzD;CACA,SAAS;CACT;CACA,QAAQ,IAAI,GAAG,CAAC,CAAC;CACjB,QAAQ,IAAI,GAAG,CAAC,CAAC;CACjB;CACA,QAAQ,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC;CAC3B;CACA,MAAM,KAAK,KAAK;CAChB,QAAQ,IAAI,KAAK,CAAC,KAAK,GAAG,MAAM,EAAE;CAClC;CACA,UAAU,OAAO,IAAI,GAAG,EAAE,EAAE;CAC5B,YAAY,IAAI,IAAI,KAAK,CAAC,EAAE,EAAE,MAAM,SAAS,CAAC,EAAE;CAChD,YAAY,IAAI,EAAE,CAAC;CACnB,YAAY,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC;CAC1C,YAAY,IAAI,IAAI,CAAC,CAAC;CACtB,WAAW;CACX;CACA,UAAU,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;CAC9B,UAAU,IAAI,KAAK,CAAC,IAAI,EAAE;CAC1B,YAAY,KAAK,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;CACxC,WAAW;CACX,UAAU,IAAI,KAAK,CAAC,KAAK,GAAG,MAAM,EAAE;CACpC;CACA,YAAY,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;CAClC,YAAY,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC;CAC1C,YAAY,KAAK,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;CAC3D;CACA,WAAW;CACX;CACA,UAAU,IAAI,GAAG,CAAC,CAAC;CACnB,UAAU,IAAI,GAAG,CAAC,CAAC;CACnB;CACA,SAAS;CACT,aAAa,IAAI,KAAK,CAAC,IAAI,EAAE;CAC7B,UAAU,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,WAAW;CAC5C,SAAS;CACT,QAAQ,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC;CAC3B;CACA,MAAM,KAAK,KAAK;CAChB,QAAQ,IAAI,KAAK,CAAC,KAAK,GAAG,MAAM,EAAE;CAClC,UAAU,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC;CAC9B,UAAU,IAAI,IAAI,GAAG,IAAI,EAAE,EAAE,IAAI,GAAG,IAAI,CAAC,EAAE;CAC3C,UAAU,IAAI,IAAI,EAAE;CACpB,YAAY,IAAI,KAAK,CAAC,IAAI,EAAE;CAC5B,cAAc,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC;CACxD,cAAc,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE;CACrC;CACA,gBAAgB,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;CACxE,eAAe;CACf,cAAc,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG;CAClC,gBAAgB,KAAK,CAAC,QAAQ;CAC9B,kBAAkB,IAAI;CACtB;CACA;CACA,kBAAkB,IAAI,GAAG,IAAI;CAC7B,iBAAiB;CACjB;CACA,gBAAgB,GAAG;CACnB,eAAe,CAAC;CAChB;CACA;CACA;CACA,aAAa;CACb,YAAY,IAAI,KAAK,CAAC,KAAK,GAAG,MAAM,EAAE;CACtC,cAAc,KAAK,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;CACpE,aAAa;CACb,YAAY,IAAI,IAAI,IAAI,CAAC;CACzB,YAAY,IAAI,IAAI,IAAI,CAAC;CACzB,YAAY,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC;CACjC,WAAW;CACX,UAAU,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,MAAM,SAAS,CAAC,EAAE;CAChD,SAAS;CACT,QAAQ,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;CACzB,QAAQ,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;CAC1B;CACA,MAAM,KAAK,IAAI;CACf,QAAQ,IAAI,KAAK,CAAC,KAAK,GAAG,MAAM,EAAE;CAClC,UAAU,IAAI,IAAI,KAAK,CAAC,EAAE,EAAE,MAAM,SAAS,CAAC,EAAE;CAC9C,UAAU,IAAI,GAAG,CAAC,CAAC;CACnB,UAAU,GAAG;CACb;CACA,YAAY,GAAG,GAAG,KAAK,CAAC,IAAI,GAAG,IAAI,EAAE,CAAC,CAAC;CACvC;CACA,YAAY,IAAI,KAAK,CAAC,IAAI,IAAI,GAAG;CACjC,iBAAiB,KAAK,CAAC,MAAM,GAAG,KAAK,yBAAyB,EAAE;CAChE,cAAc,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;CAC1D,aAAa;CACb,WAAW,QAAQ,GAAG,IAAI,IAAI,GAAG,IAAI,EAAE;AACvC;CACA,UAAU,IAAI,KAAK,CAAC,KAAK,GAAG,MAAM,EAAE;CACpC,YAAY,KAAK,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;CAClE,WAAW;CACX,UAAU,IAAI,IAAI,IAAI,CAAC;CACvB,UAAU,IAAI,IAAI,IAAI,CAAC;CACvB,UAAU,IAAI,GAAG,EAAE,EAAE,MAAM,SAAS,CAAC,EAAE;CACvC,SAAS;CACT,aAAa,IAAI,KAAK,CAAC,IAAI,EAAE;CAC7B,UAAU,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;CACjC,SAAS;CACT,QAAQ,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;CACzB,QAAQ,KAAK,CAAC,IAAI,GAAG,OAAO,CAAC;CAC7B;CACA,MAAM,KAAK,OAAO;CAClB,QAAQ,IAAI,KAAK,CAAC,KAAK,GAAG,MAAM,EAAE;CAClC,UAAU,IAAI,IAAI,KAAK,CAAC,EAAE,EAAE,MAAM,SAAS,CAAC,EAAE;CAC9C,UAAU,IAAI,GAAG,CAAC,CAAC;CACnB,UAAU,GAAG;CACb,YAAY,GAAG,GAAG,KAAK,CAAC,IAAI,GAAG,IAAI,EAAE,CAAC,CAAC;CACvC;CACA,YAAY,IAAI,KAAK,CAAC,IAAI,IAAI,GAAG;CACjC,iBAAiB,KAAK,CAAC,MAAM,GAAG,KAAK,yBAAyB,EAAE;CAChE,cAAc,KAAK,CAAC,IAAI,CAAC,OAAO,IAAI,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;CAC7D,aAAa;CACb,WAAW,QAAQ,GAAG,IAAI,IAAI,GAAG,IAAI,EAAE;CACvC,UAAU,IAAI,KAAK,CAAC,KAAK,GAAG,MAAM,EAAE;CACpC,YAAY,KAAK,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;CAClE,WAAW;CACX,UAAU,IAAI,IAAI,IAAI,CAAC;CACvB,UAAU,IAAI,IAAI,IAAI,CAAC;CACvB,UAAU,IAAI,GAAG,EAAE,EAAE,MAAM,SAAS,CAAC,EAAE;CACvC,SAAS;CACT,aAAa,IAAI,KAAK,CAAC,IAAI,EAAE;CAC7B,UAAU,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;CACpC,SAAS;CACT,QAAQ,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;CAC1B;CACA,MAAM,KAAK,IAAI;CACf,QAAQ,IAAI,KAAK,CAAC,KAAK,GAAG,MAAM,EAAE;CAClC;CACA,UAAU,OAAO,IAAI,GAAG,EAAE,EAAE;CAC5B,YAAY,IAAI,IAAI,KAAK,CAAC,EAAE,EAAE,MAAM,SAAS,CAAC,EAAE;CAChD,YAAY,IAAI,EAAE,CAAC;CACnB,YAAY,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC;CAC1C,YAAY,IAAI,IAAI,CAAC,CAAC;CACtB,WAAW;CACX;CACA,UAAU,IAAI,IAAI,MAAM,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,EAAE;CAC/C,YAAY,IAAI,CAAC,GAAG,GAAG,qBAAqB,CAAC;CAC7C,YAAY,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC;CAC7B,YAAY,MAAM;CAClB,WAAW;CACX;CACA,UAAU,IAAI,GAAG,CAAC,CAAC;CACnB,UAAU,IAAI,GAAG,CAAC,CAAC;CACnB;CACA,SAAS;CACT,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE;CACxB,UAAU,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;CACrD,UAAU,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;CACjC,SAAS;CACT,QAAQ,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;CACrC,QAAQ,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;CAC1B,QAAQ,MAAM;CACd,MAAM,KAAK,MAAM;CACjB;CACA,QAAQ,OAAO,IAAI,GAAG,EAAE,EAAE;CAC1B,UAAU,IAAI,IAAI,KAAK,CAAC,EAAE,EAAE,MAAM,SAAS,CAAC,EAAE;CAC9C,UAAU,IAAI,EAAE,CAAC;CACjB,UAAU,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC;CACxC,UAAU,IAAI,IAAI,CAAC,CAAC;CACpB,SAAS;CACT;CACA,QAAQ,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACjD;CACA,QAAQ,IAAI,GAAG,CAAC,CAAC;CACjB,QAAQ,IAAI,GAAG,CAAC,CAAC;CACjB;CACA,QAAQ,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;CAC1B;CACA,MAAM,KAAK,IAAI;CACf,QAAQ,IAAI,KAAK,CAAC,QAAQ,KAAK,CAAC,EAAE;CAClC;CACA,UAAU,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;CAC9B,UAAU,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;CAChC,UAAU,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;CAC9B,UAAU,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;CAC/B,UAAU,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;CAC5B,UAAU,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;CAC5B;CACA,UAAU,OAAO,aAAa,CAAC;CAC/B,SAAS;CACT,QAAQ,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,GAAG,CAAC,2BAA2B;CAC/D,QAAQ,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;CAC1B;CACA,MAAM,KAAK,IAAI;CACf,QAAQ,IAAI,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,OAAO,EAAE,EAAE,MAAM,SAAS,CAAC,EAAE;CACxE;CACA,MAAM,KAAK,MAAM;CACjB,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE;CACxB;CACA,UAAU,IAAI,MAAM,IAAI,GAAG,CAAC,CAAC;CAC7B,UAAU,IAAI,IAAI,IAAI,GAAG,CAAC,CAAC;CAC3B;CACA,UAAU,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC;CAC7B,UAAU,MAAM;CAChB,SAAS;CACT;CACA,QAAQ,OAAO,IAAI,GAAG,CAAC,EAAE;CACzB,UAAU,IAAI,IAAI,KAAK,CAAC,EAAE,EAAE,MAAM,SAAS,CAAC,EAAE;CAC9C,UAAU,IAAI,EAAE,CAAC;CACjB,UAAU,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC;CACxC,UAAU,IAAI,IAAI,CAAC,CAAC;CACpB,SAAS;CACT;CACA,QAAQ,KAAK,CAAC,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC,YAAY;CAC9C;CACA,QAAQ,IAAI,MAAM,CAAC,CAAC;CACpB,QAAQ,IAAI,IAAI,CAAC,CAAC;CAClB;AACA;CACA,QAAQ,SAAS,IAAI,GAAG,IAAI;CAC5B,UAAU,KAAK,CAAC;CAChB;CACA;CACA,YAAY,KAAK,CAAC,IAAI,GAAG,MAAM,CAAC;CAChC,YAAY,MAAM;CAClB,UAAU,KAAK,CAAC;CAChB,YAAY,WAAW,CAAC,KAAK,CAAC,CAAC;CAC/B;CACA;CACA,YAAY,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;CAC9B,YAAY,IAAI,KAAK,KAAK,OAAO,EAAE;CACnC;CACA,cAAc,IAAI,MAAM,CAAC,CAAC;CAC1B,cAAc,IAAI,IAAI,CAAC,CAAC;CACxB;CACA,cAAc,MAAM,SAAS,CAAC;CAC9B,aAAa;CACb,YAAY,MAAM;CAClB,UAAU,KAAK,CAAC;CAChB;CACA;CACA,YAAY,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC;CAC/B,YAAY,MAAM;CAClB,UAAU,KAAK,CAAC;CAChB,YAAY,IAAI,CAAC,GAAG,GAAG,oBAAoB,CAAC;CAC5C,YAAY,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC;CAC7B,SAAS;CACT;CACA,QAAQ,IAAI,MAAM,CAAC,CAAC;CACpB,QAAQ,IAAI,IAAI,CAAC,CAAC;CAClB;CACA,QAAQ,MAAM;CACd,MAAM,KAAK,MAAM;CACjB;CACA,QAAQ,IAAI,MAAM,IAAI,GAAG,CAAC,CAAC;CAC3B,QAAQ,IAAI,IAAI,IAAI,GAAG,CAAC,CAAC;CACzB;CACA;CACA,QAAQ,OAAO,IAAI,GAAG,EAAE,EAAE;CAC1B,UAAU,IAAI,IAAI,KAAK,CAAC,EAAE,EAAE,MAAM,SAAS,CAAC,EAAE;CAC9C,UAAU,IAAI,EAAE,CAAC;CACjB,UAAU,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC;CACxC,UAAU,IAAI,IAAI,CAAC,CAAC;CACpB,SAAS;CACT;CACA,QAAQ,IAAI,CAAC,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,KAAK,EAAE,IAAI,MAAM,CAAC,EAAE;CAC1D,UAAU,IAAI,CAAC,GAAG,GAAG,8BAA8B,CAAC;CACpD,UAAU,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC;CAC3B,UAAU,MAAM;CAChB,SAAS;CACT,QAAQ,KAAK,CAAC,MAAM,GAAG,IAAI,GAAG,MAAM,CAAC;CACrC;CACA;CACA;CACA,QAAQ,IAAI,GAAG,CAAC,CAAC;CACjB,QAAQ,IAAI,GAAG,CAAC,CAAC;CACjB;CACA,QAAQ,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC;CAC3B,QAAQ,IAAI,KAAK,KAAK,OAAO,EAAE,EAAE,MAAM,SAAS,CAAC,EAAE;CACnD;CACA,MAAM,KAAK,KAAK;CAChB,QAAQ,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;CAC1B;CACA,MAAM,KAAK,IAAI;CACf,QAAQ,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC;CAC5B,QAAQ,IAAI,IAAI,EAAE;CAClB,UAAU,IAAI,IAAI,GAAG,IAAI,EAAE,EAAE,IAAI,GAAG,IAAI,CAAC,EAAE;CAC3C,UAAU,IAAI,IAAI,GAAG,IAAI,EAAE,EAAE,IAAI,GAAG,IAAI,CAAC,EAAE;CAC3C,UAAU,IAAI,IAAI,KAAK,CAAC,EAAE,EAAE,MAAM,SAAS,CAAC,EAAE;CAC9C;CACA,UAAU,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;CAC7D;CACA,UAAU,IAAI,IAAI,IAAI,CAAC;CACvB,UAAU,IAAI,IAAI,IAAI,CAAC;CACvB,UAAU,IAAI,IAAI,IAAI,CAAC;CACvB,UAAU,GAAG,IAAI,IAAI,CAAC;CACtB,UAAU,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC;CAC/B,UAAU,MAAM;CAChB,SAAS;CACT;CACA,QAAQ,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;CAC1B,QAAQ,MAAM;CACd,MAAM,KAAK,KAAK;CAChB;CACA,QAAQ,OAAO,IAAI,GAAG,EAAE,EAAE;CAC1B,UAAU,IAAI,IAAI,KAAK,CAAC,EAAE,EAAE,MAAM,SAAS,CAAC,EAAE;CAC9C,UAAU,IAAI,EAAE,CAAC;CACjB,UAAU,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC;CACxC,UAAU,IAAI,IAAI,CAAC,CAAC;CACpB,SAAS;CACT;CACA,QAAQ,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,IAAI,eAAe,GAAG,CAAC;CACpD;CACA,QAAQ,IAAI,MAAM,CAAC,CAAC;CACpB,QAAQ,IAAI,IAAI,CAAC,CAAC;CAClB;CACA,QAAQ,KAAK,CAAC,KAAK,GAAG,CAAC,IAAI,GAAG,IAAI,eAAe,CAAC,CAAC;CACnD;CACA,QAAQ,IAAI,MAAM,CAAC,CAAC;CACpB,QAAQ,IAAI,IAAI,CAAC,CAAC;CAClB;CACA,QAAQ,KAAK,CAAC,KAAK,GAAG,CAAC,IAAI,GAAG,IAAI,eAAe,CAAC,CAAC;CACnD;CACA,QAAQ,IAAI,MAAM,CAAC,CAAC;CACpB,QAAQ,IAAI,IAAI,CAAC,CAAC;CAClB;CACA;CACA,QAAQ,IAAI,KAAK,CAAC,IAAI,GAAG,GAAG,IAAI,KAAK,CAAC,KAAK,GAAG,EAAE,EAAE;CAClD,UAAU,IAAI,CAAC,GAAG,GAAG,qCAAqC,CAAC;CAC3D,UAAU,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC;CAC3B,UAAU,MAAM;CAChB,SAAS;CACT;CACA;CACA,QAAQ,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;CACvB,QAAQ,KAAK,CAAC,IAAI,GAAG,OAAO,CAAC;CAC7B;CACA,MAAM,KAAK,OAAO;CAClB,QAAQ,OAAO,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,EAAE;CACzC;CACA,UAAU,OAAO,IAAI,GAAG,CAAC,EAAE;CAC3B,YAAY,IAAI,IAAI,KAAK,CAAC,EAAE,EAAE,MAAM,SAAS,CAAC,EAAE;CAChD,YAAY,IAAI,EAAE,CAAC;CACnB,YAAY,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC;CAC1C,YAAY,IAAI,IAAI,CAAC,CAAC;CACtB,WAAW;CACX;CACA,UAAU,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,GAAG,IAAI,CAAC,CAAC;CAC1D;CACA,UAAU,IAAI,MAAM,CAAC,CAAC;CACtB,UAAU,IAAI,IAAI,CAAC,CAAC;CACpB;CACA,SAAS;CACT,QAAQ,OAAO,KAAK,CAAC,IAAI,GAAG,EAAE,EAAE;CAChC,UAAU,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;CAC9C,SAAS;CACT;CACA;CACA;CACA;CACA,QAAQ,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC;CACrC,QAAQ,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC;AAC1B;CACA,QAAQ,IAAI,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;CACvC,QAAQ,GAAG,GAAG,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;CACrF,QAAQ,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC;AAClC;CACA,QAAQ,IAAI,GAAG,EAAE;CACjB,UAAU,IAAI,CAAC,GAAG,GAAG,0BAA0B,CAAC;CAChD,UAAU,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC;CAC3B,UAAU,MAAM;CAChB,SAAS;CACT;CACA,QAAQ,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;CACvB,QAAQ,KAAK,CAAC,IAAI,GAAG,QAAQ,CAAC;CAC9B;CACA,MAAM,KAAK,QAAQ;CACnB,QAAQ,OAAO,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,EAAE;CACtD,UAAU,SAAS;CACnB,YAAY,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;CACpE,YAAY,SAAS,GAAG,IAAI,KAAK,EAAE,CAAC;CACpC,YAAY,OAAO,GAAG,CAAC,IAAI,KAAK,EAAE,IAAI,IAAI,CAAC;CAC3C,YAAY,QAAQ,GAAG,IAAI,GAAG,MAAM,CAAC;AACrC;CACA,YAAY,IAAI,CAAC,SAAS,KAAK,IAAI,EAAE,EAAE,MAAM,EAAE;CAC/C;CACA,YAAY,IAAI,IAAI,KAAK,CAAC,EAAE,EAAE,MAAM,SAAS,CAAC,EAAE;CAChD,YAAY,IAAI,EAAE,CAAC;CACnB,YAAY,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC;CAC1C,YAAY,IAAI,IAAI,CAAC,CAAC;CACtB;CACA,WAAW;CACX,UAAU,IAAI,QAAQ,GAAG,EAAE,EAAE;CAC7B;CACA,YAAY,IAAI,MAAM,SAAS,CAAC;CAChC,YAAY,IAAI,IAAI,SAAS,CAAC;CAC9B;CACA,YAAY,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,GAAG,QAAQ,CAAC;CAChD,WAAW;CACX,eAAe;CACf,YAAY,IAAI,QAAQ,KAAK,EAAE,EAAE;CACjC;CACA,cAAc,CAAC,GAAG,SAAS,GAAG,CAAC,CAAC;CAChC,cAAc,OAAO,IAAI,GAAG,CAAC,EAAE;CAC/B,gBAAgB,IAAI,IAAI,KAAK,CAAC,EAAE,EAAE,MAAM,SAAS,CAAC,EAAE;CACpD,gBAAgB,IAAI,EAAE,CAAC;CACvB,gBAAgB,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC;CAC9C,gBAAgB,IAAI,IAAI,CAAC,CAAC;CAC1B,eAAe;CACf;CACA;CACA,cAAc,IAAI,MAAM,SAAS,CAAC;CAClC,cAAc,IAAI,IAAI,SAAS,CAAC;CAChC;CACA,cAAc,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE;CACpC,gBAAgB,IAAI,CAAC,GAAG,GAAG,2BAA2B,CAAC;CACvD,gBAAgB,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC;CACjC,gBAAgB,MAAM;CACtB,eAAe;CACf,cAAc,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;CAC/C,cAAc,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,IAAI,CAAC,CAAC;CACvC;CACA,cAAc,IAAI,MAAM,CAAC,CAAC;CAC1B,cAAc,IAAI,IAAI,CAAC,CAAC;CACxB;CACA,aAAa;CACb,iBAAiB,IAAI,QAAQ,KAAK,EAAE,EAAE;CACtC;CACA,cAAc,CAAC,GAAG,SAAS,GAAG,CAAC,CAAC;CAChC,cAAc,OAAO,IAAI,GAAG,CAAC,EAAE;CAC/B,gBAAgB,IAAI,IAAI,KAAK,CAAC,EAAE,EAAE,MAAM,SAAS,CAAC,EAAE;CACpD,gBAAgB,IAAI,EAAE,CAAC;CACvB,gBAAgB,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC;CAC9C,gBAAgB,IAAI,IAAI,CAAC,CAAC;CAC1B,eAAe;CACf;CACA;CACA,cAAc,IAAI,MAAM,SAAS,CAAC;CAClC,cAAc,IAAI,IAAI,SAAS,CAAC;CAChC;CACA,cAAc,GAAG,GAAG,CAAC,CAAC;CACtB,cAAc,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,IAAI,CAAC,CAAC;CACvC;CACA,cAAc,IAAI,MAAM,CAAC,CAAC;CAC1B,cAAc,IAAI,IAAI,CAAC,CAAC;CACxB;CACA,aAAa;CACb,iBAAiB;CACjB;CACA,cAAc,CAAC,GAAG,SAAS,GAAG,CAAC,CAAC;CAChC,cAAc,OAAO,IAAI,GAAG,CAAC,EAAE;CAC/B,gBAAgB,IAAI,IAAI,KAAK,CAAC,EAAE,EAAE,MAAM,SAAS,CAAC,EAAE;CACpD,gBAAgB,IAAI,EAAE,CAAC;CACvB,gBAAgB,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC;CAC9C,gBAAgB,IAAI,IAAI,CAAC,CAAC;CAC1B,eAAe;CACf;CACA;CACA,cAAc,IAAI,MAAM,SAAS,CAAC;CAClC,cAAc,IAAI,IAAI,SAAS,CAAC;CAChC;CACA,cAAc,GAAG,GAAG,CAAC,CAAC;CACtB,cAAc,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,IAAI,CAAC,CAAC;CACxC;CACA,cAAc,IAAI,MAAM,CAAC,CAAC;CAC1B,cAAc,IAAI,IAAI,CAAC,CAAC;CACxB;CACA,aAAa;CACb,YAAY,IAAI,KAAK,CAAC,IAAI,GAAG,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,EAAE;CAC9D,cAAc,IAAI,CAAC,GAAG,GAAG,2BAA2B,CAAC;CACrD,cAAc,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC;CAC/B,cAAc,MAAM;CACpB,aAAa;CACb,YAAY,OAAO,IAAI,EAAE,EAAE;CAC3B,cAAc,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,GAAG,GAAG,CAAC;CAC7C,aAAa;CACb,WAAW;CACX,SAAS;AACT;CACA;CACA,QAAQ,IAAI,KAAK,CAAC,IAAI,KAAK,GAAG,EAAE,EAAE,MAAM,EAAE;AAC1C;CACA;CACA,QAAQ,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;CACnC,UAAU,IAAI,CAAC,GAAG,GAAG,sCAAsC,CAAC;CAC5D,UAAU,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC;CAC3B,UAAU,MAAM;CAChB,SAAS;AACT;CACA;CACA;CACA;CACA,QAAQ,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC;AAC1B;CACA,QAAQ,IAAI,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;CACvC,QAAQ,GAAG,GAAG,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;CAC5F;CACA;CACA,QAAQ,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC;CAClC;AACA;CACA,QAAQ,IAAI,GAAG,EAAE;CACjB,UAAU,IAAI,CAAC,GAAG,GAAG,6BAA6B,CAAC;CACnD,UAAU,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC;CAC3B,UAAU,MAAM;CAChB,SAAS;AACT;CACA,QAAQ,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC;CAC3B;CACA;CACA,QAAQ,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC;CACvC,QAAQ,IAAI,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC;CACxC,QAAQ,GAAG,GAAG,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;CACxG;CACA;CACA,QAAQ,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;CACnC;AACA;CACA,QAAQ,IAAI,GAAG,EAAE;CACjB,UAAU,IAAI,CAAC,GAAG,GAAG,uBAAuB,CAAC;CAC7C,UAAU,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC;CAC3B,UAAU,MAAM;CAChB,SAAS;CACT;CACA,QAAQ,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;CAC1B,QAAQ,IAAI,KAAK,KAAK,OAAO,EAAE,EAAE,MAAM,SAAS,CAAC,EAAE;CACnD;CACA,MAAM,KAAK,IAAI;CACf,QAAQ,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC;CACzB;CACA,MAAM,KAAK,GAAG;CACd,QAAQ,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,GAAG,EAAE;CACtC;CACA,UAAU,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;CAC9B,UAAU,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;CAChC,UAAU,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;CAC9B,UAAU,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;CAC/B,UAAU,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;CAC5B,UAAU,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;CAC5B;CACA,UAAU,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;CAC9B;CACA,UAAU,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC;CAC9B,UAAU,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;CAC/B,UAAU,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC;CAChC,UAAU,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC;CAC9B,UAAU,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;CAC7B,UAAU,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC;CAC/B,UAAU,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;CAC5B,UAAU,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;CAC5B;AACA;CACA,UAAU,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,EAAE;CACnC,YAAY,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;CAC5B,WAAW;CACX,UAAU,MAAM;CAChB,SAAS;CACT,QAAQ,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;CACvB,QAAQ,SAAS;CACjB,UAAU,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;CAClE,UAAU,SAAS,GAAG,IAAI,KAAK,EAAE,CAAC;CAClC,UAAU,OAAO,GAAG,CAAC,IAAI,KAAK,EAAE,IAAI,IAAI,CAAC;CACzC,UAAU,QAAQ,GAAG,IAAI,GAAG,MAAM,CAAC;AACnC;CACA,UAAU,IAAI,SAAS,IAAI,IAAI,EAAE,EAAE,MAAM,EAAE;CAC3C;CACA,UAAU,IAAI,IAAI,KAAK,CAAC,EAAE,EAAE,MAAM,SAAS,CAAC,EAAE;CAC9C,UAAU,IAAI,EAAE,CAAC;CACjB,UAAU,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC;CACxC,UAAU,IAAI,IAAI,CAAC,CAAC;CACpB;CACA,SAAS;CACT,QAAQ,IAAI,OAAO,IAAI,CAAC,OAAO,GAAG,IAAI,MAAM,CAAC,EAAE;CAC/C,UAAU,SAAS,GAAG,SAAS,CAAC;CAChC,UAAU,OAAO,GAAG,OAAO,CAAC;CAC5B,UAAU,QAAQ,GAAG,QAAQ,CAAC;CAC9B,UAAU,SAAS;CACnB,YAAY,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ;CACzC,qBAAqB,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,kCAAkC,SAAS,CAAC,CAAC,CAAC;CAC7G,YAAY,SAAS,GAAG,IAAI,KAAK,EAAE,CAAC;CACpC,YAAY,OAAO,GAAG,CAAC,IAAI,KAAK,EAAE,IAAI,IAAI,CAAC;CAC3C,YAAY,QAAQ,GAAG,IAAI,GAAG,MAAM,CAAC;AACrC;CACA,YAAY,IAAI,CAAC,SAAS,GAAG,SAAS,KAAK,IAAI,EAAE,EAAE,MAAM,EAAE;CAC3D;CACA,YAAY,IAAI,IAAI,KAAK,CAAC,EAAE,EAAE,MAAM,SAAS,CAAC,EAAE;CAChD,YAAY,IAAI,EAAE,CAAC;CACnB,YAAY,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC;CAC1C,YAAY,IAAI,IAAI,CAAC,CAAC;CACtB;CACA,WAAW;CACX;CACA,UAAU,IAAI,MAAM,SAAS,CAAC;CAC9B,UAAU,IAAI,IAAI,SAAS,CAAC;CAC5B;CACA,UAAU,KAAK,CAAC,IAAI,IAAI,SAAS,CAAC;CAClC,SAAS;CACT;CACA,QAAQ,IAAI,MAAM,SAAS,CAAC;CAC5B,QAAQ,IAAI,IAAI,SAAS,CAAC;CAC1B;CACA,QAAQ,KAAK,CAAC,IAAI,IAAI,SAAS,CAAC;CAChC,QAAQ,KAAK,CAAC,MAAM,GAAG,QAAQ,CAAC;CAChC,QAAQ,IAAI,OAAO,KAAK,CAAC,EAAE;CAC3B;CACA;CACA;CACA,UAAU,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC;CAC3B,UAAU,MAAM;CAChB,SAAS;CACT,QAAQ,IAAI,OAAO,GAAG,EAAE,EAAE;CAC1B;CACA,UAAU,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;CAC1B,UAAU,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;CAC5B,UAAU,MAAM;CAChB,SAAS;CACT,QAAQ,IAAI,OAAO,GAAG,EAAE,EAAE;CAC1B,UAAU,IAAI,CAAC,GAAG,GAAG,6BAA6B,CAAC;CACnD,UAAU,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC;CAC3B,UAAU,MAAM;CAChB,SAAS;CACT,QAAQ,KAAK,CAAC,KAAK,GAAG,OAAO,GAAG,EAAE,CAAC;CACnC,QAAQ,KAAK,CAAC,IAAI,GAAG,MAAM,CAAC;CAC5B;CACA,MAAM,KAAK,MAAM;CACjB,QAAQ,IAAI,KAAK,CAAC,KAAK,EAAE;CACzB;CACA,UAAU,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;CAC1B,UAAU,OAAO,IAAI,GAAG,CAAC,EAAE;CAC3B,YAAY,IAAI,IAAI,KAAK,CAAC,EAAE,EAAE,MAAM,SAAS,CAAC,EAAE;CAChD,YAAY,IAAI,EAAE,CAAC;CACnB,YAAY,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC;CAC1C,YAAY,IAAI,IAAI,CAAC,CAAC;CACtB,WAAW;CACX;CACA,UAAU,KAAK,CAAC,MAAM,IAAI,IAAI,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC,sBAAsB;CAC/E;CACA,UAAU,IAAI,MAAM,KAAK,CAAC,KAAK,CAAC;CAChC,UAAU,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC;CAC9B;CACA,UAAU,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC;CACpC,SAAS;CACT;CACA,QAAQ,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC;CACjC,QAAQ,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;CAC1B;CACA,MAAM,KAAK,IAAI;CACf,QAAQ,SAAS;CACjB,UAAU,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC;CACpE,UAAU,SAAS,GAAG,IAAI,KAAK,EAAE,CAAC;CAClC,UAAU,OAAO,GAAG,CAAC,IAAI,KAAK,EAAE,IAAI,IAAI,CAAC;CACzC,UAAU,QAAQ,GAAG,IAAI,GAAG,MAAM,CAAC;AACnC;CACA,UAAU,IAAI,CAAC,SAAS,KAAK,IAAI,EAAE,EAAE,MAAM,EAAE;CAC7C;CACA,UAAU,IAAI,IAAI,KAAK,CAAC,EAAE,EAAE,MAAM,SAAS,CAAC,EAAE;CAC9C,UAAU,IAAI,EAAE,CAAC;CACjB,UAAU,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC;CACxC,UAAU,IAAI,IAAI,CAAC,CAAC;CACpB;CACA,SAAS;CACT,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI,MAAM,CAAC,EAAE;CACpC,UAAU,SAAS,GAAG,SAAS,CAAC;CAChC,UAAU,OAAO,GAAG,OAAO,CAAC;CAC5B,UAAU,QAAQ,GAAG,QAAQ,CAAC;CAC9B,UAAU,SAAS;CACnB,YAAY,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ;CAC1C,qBAAqB,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,kCAAkC,SAAS,CAAC,CAAC,CAAC;CAC7G,YAAY,SAAS,GAAG,IAAI,KAAK,EAAE,CAAC;CACpC,YAAY,OAAO,GAAG,CAAC,IAAI,KAAK,EAAE,IAAI,IAAI,CAAC;CAC3C,YAAY,QAAQ,GAAG,IAAI,GAAG,MAAM,CAAC;AACrC;CACA,YAAY,IAAI,CAAC,SAAS,GAAG,SAAS,KAAK,IAAI,EAAE,EAAE,MAAM,EAAE;CAC3D;CACA,YAAY,IAAI,IAAI,KAAK,CAAC,EAAE,EAAE,MAAM,SAAS,CAAC,EAAE;CAChD,YAAY,IAAI,EAAE,CAAC;CACnB,YAAY,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC;CAC1C,YAAY,IAAI,IAAI,CAAC,CAAC;CACtB;CACA,WAAW;CACX;CACA,UAAU,IAAI,MAAM,SAAS,CAAC;CAC9B,UAAU,IAAI,IAAI,SAAS,CAAC;CAC5B;CACA,UAAU,KAAK,CAAC,IAAI,IAAI,SAAS,CAAC;CAClC,SAAS;CACT;CACA,QAAQ,IAAI,MAAM,SAAS,CAAC;CAC5B,QAAQ,IAAI,IAAI,SAAS,CAAC;CAC1B;CACA,QAAQ,KAAK,CAAC,IAAI,IAAI,SAAS,CAAC;CAChC,QAAQ,IAAI,OAAO,GAAG,EAAE,EAAE;CAC1B,UAAU,IAAI,CAAC,GAAG,GAAG,uBAAuB,CAAC;CAC7C,UAAU,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC;CAC3B,UAAU,MAAM;CAChB,SAAS;CACT,QAAQ,KAAK,CAAC,MAAM,GAAG,QAAQ,CAAC;CAChC,QAAQ,KAAK,CAAC,KAAK,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC;CACrC,QAAQ,KAAK,CAAC,IAAI,GAAG,OAAO,CAAC;CAC7B;CACA,MAAM,KAAK,OAAO;CAClB,QAAQ,IAAI,KAAK,CAAC,KAAK,EAAE;CACzB;CACA,UAAU,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;CAC1B,UAAU,OAAO,IAAI,GAAG,CAAC,EAAE;CAC3B,YAAY,IAAI,IAAI,KAAK,CAAC,EAAE,EAAE,MAAM,SAAS,CAAC,EAAE;CAChD,YAAY,IAAI,EAAE,CAAC;CACnB,YAAY,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC;CAC1C,YAAY,IAAI,IAAI,CAAC,CAAC;CACtB,WAAW;CACX;CACA,UAAU,KAAK,CAAC,MAAM,IAAI,IAAI,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC,sBAAsB;CAC/E;CACA,UAAU,IAAI,MAAM,KAAK,CAAC,KAAK,CAAC;CAChC,UAAU,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC;CAC9B;CACA,UAAU,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC;CACpC,SAAS;CACT;CACA,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,IAAI,EAAE;CACvC,UAAU,IAAI,CAAC,GAAG,GAAG,+BAA+B,CAAC;CACrD,UAAU,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC;CAC3B,UAAU,MAAM;CAChB,SAAS;CACT;CACA;CACA,QAAQ,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC;CAC3B;CACA,MAAM,KAAK,KAAK;CAChB,QAAQ,IAAI,IAAI,KAAK,CAAC,EAAE,EAAE,MAAM,SAAS,CAAC,EAAE;CAC5C,QAAQ,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;CAC3B,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,IAAI,EAAE;CACjC,UAAU,IAAI,GAAG,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;CACrC,UAAU,IAAI,IAAI,GAAG,KAAK,CAAC,KAAK,EAAE;CAClC,YAAY,IAAI,KAAK,CAAC,IAAI,EAAE;CAC5B,cAAc,IAAI,CAAC,GAAG,GAAG,+BAA+B,CAAC;CACzD,cAAc,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC;CAC/B,cAAc,MAAM;CACpB,aAAa;CACb;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,WAAW;CACX,UAAU,IAAI,IAAI,GAAG,KAAK,CAAC,KAAK,EAAE;CAClC,YAAY,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC;CAChC,YAAY,IAAI,GAAG,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;CACtC,WAAW;CACX,eAAe;CACf,YAAY,IAAI,GAAG,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;CACtC,WAAW;CACX,UAAU,IAAI,IAAI,GAAG,KAAK,CAAC,MAAM,EAAE,EAAE,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,EAAE;CAC3D,UAAU,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC;CACrC,SAAS;CACT,aAAa;CACb,UAAU,WAAW,GAAG,MAAM,CAAC;CAC/B,UAAU,IAAI,GAAG,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC;CACpC,UAAU,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC;CAC9B,SAAS;CACT,QAAQ,IAAI,IAAI,GAAG,IAAI,EAAE,EAAE,IAAI,GAAG,IAAI,CAAC,EAAE;CACzC,QAAQ,IAAI,IAAI,IAAI,CAAC;CACrB,QAAQ,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC;CAC7B,QAAQ,GAAG;CACX,UAAU,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;CAC9C,SAAS,QAAQ,EAAE,IAAI,EAAE;CACzB,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC,EAAE;CACrD,QAAQ,MAAM;CACd,MAAM,KAAK,GAAG;CACd,QAAQ,IAAI,IAAI,KAAK,CAAC,EAAE,EAAE,MAAM,SAAS,CAAC,EAAE;CAC5C,QAAQ,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;CACrC,QAAQ,IAAI,EAAE,CAAC;CACf,QAAQ,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC;CACzB,QAAQ,MAAM;CACd,MAAM,KAAK,KAAK;CAChB,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE;CACxB;CACA,UAAU,OAAO,IAAI,GAAG,EAAE,EAAE;CAC5B,YAAY,IAAI,IAAI,KAAK,CAAC,EAAE,EAAE,MAAM,SAAS,CAAC,EAAE;CAChD,YAAY,IAAI,EAAE,CAAC;CACnB;CACA,YAAY,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC;CAC1C,YAAY,IAAI,IAAI,CAAC,CAAC;CACtB,WAAW;CACX;CACA,UAAU,IAAI,IAAI,IAAI,CAAC;CACvB,UAAU,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC;CACjC,UAAU,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC;CAC9B,UAAU,IAAI,IAAI,EAAE;CACpB,YAAY,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;CACpC;CACA,iBAAiB,KAAK,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC;AAClI;CACA,WAAW;CACX,UAAU,IAAI,GAAG,IAAI,CAAC;CACtB;CACA,UAAU,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,KAAK,EAAE;CACpE,YAAY,IAAI,CAAC,GAAG,GAAG,sBAAsB,CAAC;CAC9C,YAAY,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC;CAC7B,YAAY,MAAM;CAClB,WAAW;CACX;CACA,UAAU,IAAI,GAAG,CAAC,CAAC;CACnB,UAAU,IAAI,GAAG,CAAC,CAAC;CACnB;CACA;CACA,SAAS;CACT,QAAQ,KAAK,CAAC,IAAI,GAAGA,QAAM,CAAC;CAC5B;CACA,MAAM,KAAKA,QAAM;CACjB,QAAQ,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE;CACvC;CACA,UAAU,OAAO,IAAI,GAAG,EAAE,EAAE;CAC5B,YAAY,IAAI,IAAI,KAAK,CAAC,EAAE,EAAE,MAAM,SAAS,CAAC,EAAE;CAChD,YAAY,IAAI,EAAE,CAAC;CACnB,YAAY,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC;CAC1C,YAAY,IAAI,IAAI,CAAC,CAAC;CACtB,WAAW;CACX;CACA,UAAU,IAAI,IAAI,MAAM,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC,EAAE;CACnD,YAAY,IAAI,CAAC,GAAG,GAAG,wBAAwB,CAAC;CAChD,YAAY,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC;CAC7B,YAAY,MAAM;CAClB,WAAW;CACX;CACA,UAAU,IAAI,GAAG,CAAC,CAAC;CACnB,UAAU,IAAI,GAAG,CAAC,CAAC;CACnB;CACA;CACA,SAAS;CACT,QAAQ,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;CAC1B;CACA,MAAM,KAAK,IAAI;CACf,QAAQ,GAAG,GAAG,cAAc,CAAC;CAC7B,QAAQ,MAAM,SAAS,CAAC;CACxB,MAAM,KAAK,GAAG;CACd,QAAQ,GAAG,GAAG,cAAc,CAAC;CAC7B,QAAQ,MAAM,SAAS,CAAC;CACxB,MAAM,KAAK,GAAG;CACd,QAAQ,OAAO,aAAa,CAAC;CAC7B,MAAM,KAAK,IAAI,CAAC;CAChB;CACA,MAAM;CACN,QAAQ,OAAO,gBAAgB,CAAC;CAChC,KAAK;CACL,GAAG;AACH;CACA;AACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;CACA;CACA,EAAE,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;CACtB,EAAE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;CACxB,EAAE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;CACtB,EAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;CACvB,EAAE,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;CACpB,EAAE,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;CACpB;AACA;CACA,EAAE,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI,KAAK,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC,IAAI,GAAG,GAAG;CACjE,uBAAuB,KAAK,CAAC,IAAI,GAAG,KAAK,IAAI,KAAK,KAAK,UAAU,CAAC,CAAC,EAAE;CACrE,IAAI,IAAI,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;CAChF,GAAG;CACH,EAAE,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC;CACvB,EAAE,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC;CACzB,EAAE,IAAI,CAAC,QAAQ,IAAI,GAAG,CAAC;CACvB,EAAE,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC;CACzB,EAAE,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC;CACtB,EAAE,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,EAAE;CAC1B,IAAI,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;CAC5B,OAAO,KAAK,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC;CAC5I,GAAG;CACH,EAAE,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC;CACrD,qBAAqB,KAAK,CAAC,IAAI,KAAK,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC;CACnD,qBAAqB,KAAK,CAAC,IAAI,KAAK,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC;CAC5E,EAAE,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,KAAK,KAAK,KAAK,UAAU,KAAK,GAAG,KAAK,MAAM,EAAE;CAC7E,IAAI,GAAG,GAAG,WAAW,CAAC;CACtB,GAAG;CACH,EAAE,OAAO,GAAG,CAAC;CACb,CAAC,CAAC;AACF;AACA;CACA,MAAM,UAAU,GAAG,CAAC,IAAI,KAAK;AAC7B;CACA,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,qCAAqC;CAC/D,IAAI,OAAO,gBAAgB,CAAC;CAC5B,GAAG;AACH;CACA,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;CACzB,EAAE,IAAI,KAAK,CAAC,MAAM,EAAE;CACpB,IAAI,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;CACxB,GAAG;CACH,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;CACpB,EAAE,OAAO,MAAM,CAAC;CAChB,CAAC,CAAC;AACF;AACA;CACA,MAAM,gBAAgB,GAAG,CAAC,IAAI,EAAE,IAAI,KAAK;AACzC;CACA;CACA,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,OAAO,gBAAgB,CAAC,EAAE;CACxD,EAAE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;CAC3B,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,gBAAgB,CAAC,EAAE;AAC1D;CACA;CACA,EAAE,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;CACpB,EAAE,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;CACpB,EAAE,OAAO,MAAM,CAAC;CAChB,CAAC,CAAC;AACF;AACA;CACA,MAAM,oBAAoB,GAAG,CAAC,IAAI,EAAE,UAAU,KAAK;CACnD,EAAE,MAAM,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC;AACvC;CACA,EAAE,IAAI,KAAK,CAAC;CACZ,EAAE,IAAI,MAAM,CAAC;CACb,EAAE,IAAI,GAAG,CAAC;AACV;CACA;CACA,EAAE,IAAI,CAAC,IAAI,oBAAoB,CAAC,IAAI,CAAC,KAAK,kBAAkB,EAAE,OAAO,gBAAgB,CAAC,EAAE;CACxF,EAAE,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;AACrB;CACA,EAAE,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,EAAE;CAC/C,IAAI,OAAO,gBAAgB,CAAC;CAC5B,GAAG;AACH;CACA;CACA,EAAE,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,EAAE;CAC3B,IAAI,MAAM,GAAG,CAAC,CAAC;CACf;CACA,IAAI,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;CAC1D,IAAI,IAAI,MAAM,KAAK,KAAK,CAAC,KAAK,EAAE;CAChC,MAAM,OAAO,cAAc,CAAC;CAC5B,KAAK;CACL,GAAG;CACH;CACA;CACA,EAAE,GAAG,GAAG,YAAY,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;CAC/D,EAAE,IAAI,GAAG,EAAE;CACX,IAAI,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC;CACrB,IAAI,OAAO,aAAa,CAAC;CACzB,GAAG;CACH,EAAE,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC;CACrB;CACA,EAAE,OAAO,MAAM,CAAC;CAChB,CAAC,CAAC;AACF;AACA;CACA,IAAI,cAAc,GAAG,YAAY,CAAC;CAClC,IAAI,eAAe,GAAG,aAAa,CAAC;CACpC,IAAI,kBAAkB,GAAG,gBAAgB,CAAC;CAC1C,IAAI,aAAa,GAAG,WAAW,CAAC;CAChC,IAAI,cAAc,GAAG,YAAY,CAAC;CAClC,IAAI,WAAW,GAAG,SAAS,CAAC;CAC5B,IAAI,YAAY,GAAG,UAAU,CAAC;CAC9B,IAAI,kBAAkB,GAAG,gBAAgB,CAAC;CAC1C,IAAI,sBAAsB,GAAG,oBAAoB,CAAC;CAClD,IAAI,WAAW,GAAG,oCAAoC,CAAC;AACvD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;CACA,IAAI,WAAW,GAAG;CAClB,CAAC,YAAY,EAAE,cAAc;CAC7B,CAAC,aAAa,EAAE,eAAe;CAC/B,CAAC,gBAAgB,EAAE,kBAAkB;CACrC,CAAC,WAAW,EAAE,aAAa;CAC3B,CAAC,YAAY,EAAE,cAAc;CAC7B,CAAC,OAAO,EAAE,WAAW;CACrB,CAAC,UAAU,EAAE,YAAY;CACzB,CAAC,gBAAgB,EAAE,kBAAkB;CACrC,CAAC,oBAAoB,EAAE,sBAAsB;CAC7C,CAAC,WAAW,EAAE,WAAW;CACzB,CAAC,CAAC;AACF;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;CACA,SAAS,QAAQ,GAAG;CACpB;CACA,EAAE,IAAI,CAAC,IAAI,SAAS,CAAC,CAAC;CACtB;CACA,EAAE,IAAI,CAAC,IAAI,SAAS,CAAC,CAAC;CACtB;CACA,EAAE,IAAI,CAAC,MAAM,OAAO,CAAC,CAAC;CACtB;CACA,EAAE,IAAI,CAAC,EAAE,WAAW,CAAC,CAAC;CACtB;CACA,EAAE,IAAI,CAAC,KAAK,QAAQ,IAAI,CAAC;CACzB;CACA,EAAE,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC;CACtB;AACA;CACA;CACA;CACA;CACA;AACA;CACA;CACA;CACA;CACA,EAAE,IAAI,CAAC,IAAI,SAAS,EAAE,CAAC;CACvB;CACA;CACA;CACA,EAAE,IAAI,CAAC,OAAO,MAAM,EAAE,CAAC;CACvB;CACA;CACA;CACA,EAAE,IAAI,CAAC,IAAI,SAAS,CAAC,CAAC;CACtB;CACA,EAAE,IAAI,CAAC,IAAI,SAAS,KAAK,CAAC;CAC1B,CAAC;AACD;CACA,IAAI,QAAQ,GAAG,QAAQ,CAAC;AACxB;CACA,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC;AAC3C;CACA;CACA;AACA;CACA,MAAM;CACN,EAAE,UAAU,EAAE,QAAQ;CACtB,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,YAAY,EAAE,WAAW;CAC5E,CAAC,GAAG,WAAW,CAAC;AAChB;CACA;AACA;AACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;CACA;CACA;CACA;CACA;CACA;AACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;CACA;CACA;CACA;CACA;CACA;AACA;AACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,SAAS,SAAS,CAAC,OAAO,EAAE;CAC5B,EAAE,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC;CAC/B,IAAI,SAAS,EAAE,IAAI,GAAG,EAAE;CACxB,IAAI,UAAU,EAAE,EAAE;CAClB,IAAI,EAAE,EAAE,EAAE;CACV,GAAG,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;AACpB;CACA,EAAE,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC;AAC3B;CACA;CACA;CACA,EAAE,IAAI,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,UAAU,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,UAAU,GAAG,EAAE,CAAC,EAAE;CACjE,IAAI,GAAG,CAAC,UAAU,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC;CACrC,IAAI,IAAI,GAAG,CAAC,UAAU,KAAK,CAAC,EAAE,EAAE,GAAG,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC,EAAE;CACvD,GAAG;AACH;CACA;CACA,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU,IAAI,CAAC,MAAM,GAAG,CAAC,UAAU,GAAG,EAAE,CAAC;CACpD,MAAM,EAAE,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,EAAE;CACxC,IAAI,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC;CACzB,GAAG;AACH;CACA;CACA;CACA,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,EAAE,MAAM,GAAG,CAAC,UAAU,GAAG,EAAE,CAAC,EAAE;CACtD;CACA;CACA,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,EAAE,MAAM,CAAC,EAAE;CACrC,MAAM,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC;CAC3B,KAAK;CACL,GAAG;AACH;CACA,EAAE,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC;CAClB,EAAE,IAAI,CAAC,GAAG,MAAM,EAAE,CAAC;CACnB,EAAE,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC;CACtB,EAAE,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;AACnB;CACA,EAAE,IAAI,CAAC,IAAI,KAAK,IAAI,OAAO,EAAE,CAAC;CAC9B,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;AAC1B;CACA,EAAE,IAAI,MAAM,IAAI,WAAW,CAAC,YAAY;CACxC,IAAI,IAAI,CAAC,IAAI;CACb,IAAI,GAAG,CAAC,UAAU;CAClB,GAAG,CAAC;AACJ;CACA,EAAE,IAAI,MAAM,KAAK,IAAI,EAAE;CACvB,IAAI,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;CACtC,GAAG;AACH;CACA,EAAE,IAAI,CAAC,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;AAC/B;CACA,EAAE,WAAW,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;AACvD;CACA;CACA,EAAE,IAAI,GAAG,CAAC,UAAU,EAAE;CACtB;CACA,IAAI,IAAI,OAAO,GAAG,CAAC,UAAU,KAAK,QAAQ,EAAE;CAC5C,MAAM,GAAG,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;CAC1D,KAAK,MAAM,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,sBAAsB,EAAE;CACzE,MAAM,GAAG,CAAC,UAAU,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;CACtD,KAAK;CACL,IAAI,IAAI,GAAG,CAAC,GAAG,EAAE;CACjB,MAAM,MAAM,GAAG,WAAW,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;CAC3E,MAAM,IAAI,MAAM,KAAK,IAAI,EAAE;CAC3B,QAAQ,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;CAC1C,OAAO;CACP,KAAK;CACL,GAAG;CACH,CAAC;AACD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,SAAS,CAAC,SAAS,CAAC,IAAI,GAAG,UAAU,IAAI,EAAE,UAAU,EAAE;CACvD,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;CACzB,EAAE,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;CAC3C,EAAE,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;CAC7C,EAAE,IAAI,MAAM,EAAE,WAAW,EAAE,cAAc,CAAC;AAC1C;CACA,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE,OAAO,KAAK,CAAC;AAC/B;CACA,EAAE,IAAI,UAAU,KAAK,CAAC,CAAC,UAAU,EAAE,WAAW,GAAG,UAAU,CAAC;CAC5D,OAAO,WAAW,GAAG,UAAU,KAAK,IAAI,GAAG,QAAQ,GAAG,UAAU,CAAC;AACjE;CACA;CACA,EAAE,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,sBAAsB,EAAE;CACtD,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;CACtC,GAAG,MAAM;CACT,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;CACtB,GAAG;AACH;CACA,EAAE,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;CACnB,EAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;AACpC;CACA,EAAE,SAAS;CACX,IAAI,IAAI,IAAI,CAAC,SAAS,KAAK,CAAC,EAAE;CAC9B,MAAM,IAAI,CAAC,MAAM,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC,CAAC;CAC9C,MAAM,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;CACxB,MAAM,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;CACjC,KAAK;AACL;CACA,IAAI,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;AACpD;CACA,IAAI,IAAI,MAAM,KAAK,WAAW,IAAI,UAAU,EAAE;CAC9C,MAAM,MAAM,GAAG,WAAW,CAAC,oBAAoB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;AAClE;CACA,MAAM,IAAI,MAAM,KAAK,IAAI,EAAE;CAC3B,QAAQ,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;CACxD,OAAO,MAAM,IAAI,MAAM,KAAK,YAAY,EAAE;CAC1C;CACA,QAAQ,MAAM,GAAG,WAAW,CAAC;CAC7B,OAAO;CACP,KAAK;AACL;CACA;CACA,IAAI,OAAO,IAAI,CAAC,QAAQ,GAAG,CAAC;CAC5B,WAAW,MAAM,KAAK,YAAY;CAClC,WAAW,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC;CAC9B,WAAW,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;CACnC,IAAI;CACJ,MAAM,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;CACrC,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;CACtD,KAAK;AACL;CACA,IAAI,QAAQ,MAAM;CAClB,MAAM,KAAK,cAAc,CAAC;CAC1B,MAAM,KAAK,YAAY,CAAC;CACxB,MAAM,KAAK,WAAW,CAAC;CACvB,MAAM,KAAK,WAAW;CACtB,QAAQ,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;CAC3B,QAAQ,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;CAC1B,QAAQ,OAAO,KAAK,CAAC;CACrB,KAAK;AACL;CACA;CACA;CACA,IAAI,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC;AACpC;CACA,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE;CACvB,MAAM,IAAI,IAAI,CAAC,SAAS,KAAK,CAAC,IAAI,MAAM,KAAK,YAAY,EAAE;AAC3D;CACA,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE,KAAK,QAAQ,EAAE;AAC1C;CACA,UAAU,IAAI,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC7E;CACA,UAAU,IAAI,IAAI,GAAG,IAAI,CAAC,QAAQ,GAAG,aAAa,CAAC;CACnD,UAAU,IAAI,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;AACvE;CACA;CACA,UAAU,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;CAC/B,UAAU,IAAI,CAAC,SAAS,GAAG,SAAS,GAAG,IAAI,CAAC;CAC5C,UAAU,IAAI,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,aAAa,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;AAClG;CACA,UAAU,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAC/B;CACA,SAAS,MAAM;CACf,UAAU,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;CACnH,SAAS;CACT,OAAO;CACP,KAAK;AACL;CACA;CACA,IAAI,IAAI,MAAM,KAAK,IAAI,IAAI,cAAc,KAAK,CAAC,EAAE,SAAS;AAC1D;CACA;CACA,IAAI,IAAI,MAAM,KAAK,YAAY,EAAE;CACjC,MAAM,MAAM,GAAG,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;CACjD,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;CACzB,MAAM,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;CACxB,MAAM,OAAO,IAAI,CAAC;CAClB,KAAK;AACL;CACA,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,EAAE,MAAM;CACnC,GAAG;AACH;CACA,EAAE,OAAO,IAAI,CAAC;CACd,CAAC,CAAC;AACF;AACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,UAAU,KAAK,EAAE;CAC9C,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;CAC1B,CAAC,CAAC;AACF;AACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,SAAS,CAAC,SAAS,CAAC,KAAK,GAAG,UAAU,MAAM,EAAE;CAC9C;CACA,EAAE,IAAI,MAAM,KAAK,IAAI,EAAE;CACvB,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE,KAAK,QAAQ,EAAE;CACtC,MAAM,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;CACzC,KAAK,MAAM;CACX,MAAM,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;CACtD,KAAK;CACL,GAAG;CACH,EAAE,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;CACnB,EAAE,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC;CACpB,EAAE,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;CAC3B,CAAC,CAAC;AACF;AACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,SAAS,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE;CACnC,EAAE,MAAM,QAAQ,GAAG,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC;AAC1C;CACA,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACvB;CACA;CACA,EAAE,IAAI,QAAQ,CAAC,GAAG,EAAE,MAAM,QAAQ,CAAC,GAAG,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AACjE;CACA,EAAE,OAAO,QAAQ,CAAC,MAAM,CAAC;CACzB,CAAC;AACD;AACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,SAAS,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE;CACtC,EAAE,OAAO,GAAG,OAAO,IAAI,EAAE,CAAC;CAC1B,EAAE,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC;CACrB,EAAE,OAAO,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;CACnC,CAAC;AACD;AACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;AACA;CACA,IAAI,WAAW,GAAG,SAAS,CAAC;CAC5B,IAAI,SAAS,GAAG,SAAS,CAAC;CAC1B,IAAI,cAAc,GAAG,YAAY,CAAC;CAClC,IAAI,QAAQ,GAAG,SAAS,CAAC;CACzB,IAAI,SAAS,GAAG,WAAW,CAAC;AAC5B;CACA,IAAI,WAAW,GAAG;CAClB,CAAC,OAAO,EAAE,WAAW;CACrB,CAAC,OAAO,EAAE,SAAS;CACnB,CAAC,UAAU,EAAE,cAAc;CAC3B,CAAC,MAAM,EAAE,QAAQ;CACjB,CAAC,SAAS,EAAE,SAAS;CACrB,CAAC,CAAC;AACF;CACA,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,WAAW,CAAC;AAC3D;CACA,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,WAAW,CAAC;AAC7D;AACA;AACA;CACA,IAAI,SAAS,GAAG,OAAO,CAAC;CACxB,IAAI,SAAS,GAAG,OAAO,CAAC;CACxB,IAAI,YAAY,GAAG,UAAU,CAAC;CAC9B,IAAI,MAAM,GAAG,IAAI,CAAC;CAClB,IAAI,SAAS,GAAG,OAAO,CAAC;CACxB,IAAI,SAAS,GAAG,OAAO,CAAC;CACxB,IAAI,YAAY,GAAG,UAAU,CAAC;CAC9B,IAAI,QAAQ,GAAG,MAAM,CAAC;CACtB,IAAI,WAAW,GAAG,WAAW,CAAC;AAC9B;CACA,IAAI,IAAI,GAAG;CACX,CAAC,OAAO,EAAE,SAAS;CACnB,CAAC,OAAO,EAAE,SAAS;CACnB,CAAC,UAAU,EAAE,YAAY;CACzB,CAAC,IAAI,EAAE,MAAM;CACb,CAAC,OAAO,EAAE,SAAS;CACnB,CAAC,OAAO,EAAE,SAAS;CACnB,CAAC,UAAU,EAAE,YAAY;CACzB,CAAC,MAAM,EAAE,QAAQ;CACjB,CAAC,SAAS,EAAE,WAAW;CACvB,CAAC;;CC/iND,SAASC,KAAKA,CAACC,GAAG,EAAE;CAChB,EAAA,IAAIC,KAAK,CAACD,GAAG,CAAC,EAAE;CACZ,IAAA,MAAM,IAAIE,KAAK,CAAC,gBAAgB,GAAGF,GAAG,CAAC,CAAA;CAC3C,GAAC,MAAM,IAAI,OAAOA,GAAG,IAAI,QAAQ,EAAE;KAC/B,OAAOG,QAAQ,CAACH,GAAG,CAAC,CAAA;IACvB,MAAM,OAAOA,GAAG,CAAA;CACrB,CAAA;CAEA,SAASI,OAAOA,CAACJ,GAAG,EAAE;CAClB,EAAA,IAAI,OAAOA,GAAG,IAAI,QAAQ,EAAE;KACxB,OAAOK,UAAU,CAACL,GAAG,CAAC,CAAA;IACzB,MAAM,OAAOA,GAAG,CAAA;CACrB,CAAA;CAAC,IAEKM,YAAY,gBAAA,YAAA;CACd,EAAA,SAAAA,YAAYC,CAAAA,YAAY,EAAEC,YAAY,EAAE;CAAAC,IAAAA,eAAA,OAAAH,YAAA,CAAA,CAAA;CACpC,IAAA,IAAI,CAACI,MAAM,GACP,OAAOH,YAAY,IAAI,QAAQ,GACzB,IAAII,WAAW,CAACJ,YAAY,CAAC,GAC7BA,YAAY,CAAA;CACtB,IAAA,IAAI,CAAC,IAAI,CAACG,MAAM,EAAE;CACd,MAAA,IAAI,CAACA,MAAM,GAAG,IAAIC,WAAW,CAAC,CAAC,CAAC,CAAA;CACpC,KAAA;KACA,IAAI,CAACC,IAAI,GAAG,IAAIC,QAAQ,CAAC,IAAI,CAACH,MAAM,CAAC,CAAA;KACrC,IAAI,CAACI,MAAM,GAAG,CAAC,CAAA;CACf,IAAA,IAAI,CAACC,cAAc,GAAGP,YAAY,IAAI,KAAK,CAAA;KAC3C,IAAI,CAACQ,IAAI,GAAG,CAAC,CAAA;CACb,IAAA,IAAI,CAACC,OAAO,GAAG,IAAIC,WAAW,CAAC,OAAO,CAAC,CAAA;CAC3C,GAAA;CAACC,EAAAA,YAAA,CAAAb,YAAA,EAAA,CAAA;KAAAc,GAAA,EAAA,WAAA;CAAAC,IAAAA,KAAA,EAED,SAAAC,SAAUC,CAAAA,QAAQ,EAAE;OAChB,IAAI,CAACR,cAAc,GAAGQ,QAAQ,CAAA;CAClC,KAAA;CAAC,GAAA,EAAA;KAAAH,GAAA,EAAA,YAAA;CAAAC,IAAAA,KAAA,EAED,SAAAG,UAAWH,CAAAA,KAAK,EAAE;CACd,MAAA,IAAI,CAACI,SAAS,CAAC,CAAC,CAAC,CAAA;CACjB,MAAA,IAAI,CAACb,IAAI,CAACc,QAAQ,CAAC,IAAI,CAACZ,MAAM,EAAEf,KAAK,CAACsB,KAAK,CAAC,CAAC,CAAA;CAC7C,MAAA,OAAO,IAAI,CAACM,SAAS,CAAC,CAAC,CAAC,CAAA;CAC5B,KAAA;CAAC,GAAA,EAAA;KAAAP,GAAA,EAAA,kBAAA;CAAAC,IAAAA,KAAA,EAED,SAAAO,gBAAAA,CAAiBP,KAAK,EAAEQ,KAAK,EAAE;CAC3B,MAAA,IAAMC,CAAC,GAAG/B,KAAK,CAACsB,KAAK,CAAC,CAAA;CACtB,MAAA,IAAI,CAACI,SAAS,CAACI,KAAK,CAAC,CAAA;OACrB,KAAK,IAAIzC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGyC,KAAK,EAAEzC,CAAC,EAAE,EAAE;CAC5B,QAAA,IAAI,CAACwB,IAAI,CAACc,QAAQ,CAAC,IAAI,CAACZ,MAAM,GAAG1B,CAAC,EAAE0C,CAAC,CAAC,CAAA;CAC1C,OAAA;CACA,MAAA,OAAO,IAAI,CAACH,SAAS,CAACE,KAAK,CAAC,CAAA;CAChC,KAAA;CAAC,GAAA,EAAA;KAAAT,GAAA,EAAA,WAAA;CAAAC,IAAAA,KAAA,EAED,SAAAU,SAAUV,CAAAA,KAAK,EAAE;CACb,MAAA,IAAI,CAACI,SAAS,CAAC,CAAC,CAAC,CAAA;CACjB,MAAA,IAAI,CAACb,IAAI,CAACoB,OAAO,CAAC,IAAI,CAAClB,MAAM,EAAEf,KAAK,CAACsB,KAAK,CAAC,CAAC,CAAA;CAC5C,MAAA,OAAO,IAAI,CAACM,SAAS,CAAC,CAAC,CAAC,CAAA;CAC5B,KAAA;CAAC,GAAA,EAAA;KAAAP,GAAA,EAAA,aAAA;CAAAC,IAAAA,KAAA,EAED,SAAAY,WAAYZ,CAAAA,KAAK,EAAE;CACf,MAAA,IAAI,CAACI,SAAS,CAAC,CAAC,CAAC,CAAA;CACjB,MAAA,IAAI,CAACb,IAAI,CAACsB,SAAS,CAAC,IAAI,CAACpB,MAAM,EAAEf,KAAK,CAACsB,KAAK,CAAC,EAAE,IAAI,CAACN,cAAc,CAAC,CAAA;CACnE,MAAA,OAAO,IAAI,CAACY,SAAS,CAAC,CAAC,CAAC,CAAA;CAC5B,KAAA;CAAC,GAAA,EAAA;KAAAP,GAAA,EAAA,iBAAA;CAAAC,IAAAA,KAAA,EAED,SAAAc,eAAgBd,CAAAA,KAAK,EAAE;CACnB,MAAA,IAAI,CAACI,SAAS,CAAC,CAAC,CAAC,CAAA;CACjB,MAAA,IAAMW,KAAK,GAAGf,KAAK,IAAI,EAAE,CAAA;CACzB,MAAA,IAAMgB,MAAM,GAAGhB,KAAK,GAAG,MAAM,CAAA;CAC7B,MAAA,IAAI,CAACT,IAAI,CAACsB,SAAS,CAAC,IAAI,CAACpB,MAAM,EAAEf,KAAK,CAACqC,KAAK,CAAC,EAAE,IAAI,CAACrB,cAAc,CAAC,CAAA;CACnE,MAAA,IAAI,CAACH,IAAI,CAACsB,SAAS,CACf,IAAI,CAACpB,MAAM,GAAG,CAAC,EACff,KAAK,CAACsC,MAAM,CAAC,EACb,IAAI,CAACtB,cACT,CAAC,CAAA;CACD,MAAA,OAAO,IAAI,CAACY,SAAS,CAAC,CAAC,CAAC,CAAA;CAC5B,KAAA;CAAC,GAAA,EAAA;KAAAP,GAAA,EAAA,YAAA;CAAAC,IAAAA,KAAA,EAED,SAAAiB,UAAWjB,CAAAA,KAAK,EAAE;CACd,MAAA,IAAI,CAACI,SAAS,CAAC,CAAC,CAAC,CAAA;CACjB,MAAA,IAAI,CAACb,IAAI,CAAC2B,QAAQ,CAAC,IAAI,CAACzB,MAAM,EAAEf,KAAK,CAACsB,KAAK,CAAC,EAAE,IAAI,CAACN,cAAc,CAAC,CAAA;CAClE,MAAA,OAAO,IAAI,CAACY,SAAS,CAAC,CAAC,CAAC,CAAA;CAC5B,KAAA;CAAC,GAAA,EAAA;KAAAP,GAAA,EAAA,aAAA;CAAAC,IAAAA,KAAA,EAED,SAAAmB,WAAYnB,CAAAA,KAAK,EAAE;CACf,MAAA,IAAI,CAACI,SAAS,CAAC,CAAC,CAAC,CAAA;CACjB,MAAA,IAAI,CAACb,IAAI,CAAC6B,SAAS,CAAC,IAAI,CAAC3B,MAAM,EAAEf,KAAK,CAACsB,KAAK,CAAC,EAAE,IAAI,CAACN,cAAc,CAAC,CAAA;CACnE,MAAA,OAAO,IAAI,CAACY,SAAS,CAAC,CAAC,CAAC,CAAA;CAC5B,KAAA;CAAC,GAAA,EAAA;KAAAP,GAAA,EAAA,YAAA;CAAAC,IAAAA,KAAA,EAED,SAAAqB,UAAWrB,CAAAA,KAAK,EAAE;CACd,MAAA,IAAI,CAACI,SAAS,CAAC,CAAC,CAAC,CAAA;CACjB,MAAA,IAAI,CAACb,IAAI,CAAC+B,QAAQ,CAAC,IAAI,CAAC7B,MAAM,EAAEf,KAAK,CAACsB,KAAK,CAAC,EAAE,IAAI,CAACN,cAAc,CAAC,CAAA;CAClE,MAAA,OAAO,IAAI,CAACY,SAAS,CAAC,CAAC,CAAC,CAAA;CAC5B,KAAA;CAAC,GAAA,EAAA;KAAAP,GAAA,EAAA,YAAA;CAAAC,IAAAA,KAAA,EAED,SAAAuB,UAAWvB,CAAAA,KAAK,EAAE;CACd,MAAA,IAAI,CAACI,SAAS,CAAC,CAAC,CAAC,CAAA;CACjB,MAAA,IAAI,CAACb,IAAI,CAACiC,UAAU,CAAC,IAAI,CAAC/B,MAAM,EAAEV,OAAO,CAACiB,KAAK,CAAC,EAAE,IAAI,CAACN,cAAc,CAAC,CAAA;CACtE,MAAA,OAAO,IAAI,CAACY,SAAS,CAAC,CAAC,CAAC,CAAA;CAC5B,KAAA;CAAC,GAAA,EAAA;KAAAP,GAAA,EAAA,aAAA;CAAAC,IAAAA,KAAA,EAED,SAAAyB,WAAYzB,CAAAA,KAAK,EAAE;CACf,MAAA,IAAI,CAACI,SAAS,CAAC,CAAC,CAAC,CAAA;CACjB,MAAA,IAAI,CAACb,IAAI,CAACmC,UAAU,CAAC,IAAI,CAACjC,MAAM,EAAEV,OAAO,CAACiB,KAAK,CAAC,EAAE,IAAI,CAACN,cAAc,CAAC,CAAA;CACtE,MAAA,OAAO,IAAI,CAACY,SAAS,CAAC,CAAC,CAAC,CAAA;CAC5B,KAAA;CAAC,GAAA,EAAA;KAAAP,GAAA,EAAA,iBAAA;CAAAC,IAAAA,KAAA,EAED,SAAA2B,eAAgB3B,CAAAA,KAAK,EAAE;OACnB,IAAM4B,aAAa,GAAG,IAAI,CAAChC,OAAO,CAACiC,MAAM,CAAC7B,KAAK,CAAC,CAAA;CAChD,MAAA,IAAI,CAACI,SAAS,CAACwB,aAAa,CAACE,UAAU,CAAC,CAAA;CACxC,MAAA,IAAIjE,UAAU,CAAC,IAAI,CAACwB,MAAM,CAAC,CAAC0C,GAAG,CAACH,aAAa,EAAE,IAAI,CAACnC,MAAM,CAAC,CAAA;CAC3D,MAAA,OAAO,IAAI,CAACa,SAAS,CAACsB,aAAa,CAACE,UAAU,CAAC,CAAA;CACnD,KAAA;CAAC,GAAA,EAAA;KAAA/B,GAAA,EAAA,kBAAA;CAAAC,IAAAA,KAAA,EAED,SAAAgC,gBAAiBhC,CAAAA,KAAK,EAAE;OACpBA,KAAK,GAAGA,KAAK,IAAI,EAAE,CAAA;CACnB,MAAA,IAAIiC,GAAG,GAAGjC,KAAK,CAACtC,MAAM,CAAA;CACtB,MAAA,IAAI,CAAC0C,SAAS,CAAC6B,GAAG,CAAC,CAAA;CACnB,MAAA,IAAIC,WAAW,GAAG,IAAI,CAACzC,MAAM,CAAA;OAC7B,KAAK,IAAI1B,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGkE,GAAG,EAAElE,CAAC,EAAE,EAAE;CAC1B,QAAA,IAAIoE,QAAQ,GAAGnC,KAAK,CAACoC,UAAU,CAACrE,CAAC,CAAC,CAAA;SAClC,IAAI,CAACwB,IAAI,CAACc,QAAQ,CAAC6B,WAAW,GAAGnE,CAAC,EAAEoE,QAAQ,CAAC,CAAA;CACjD,OAAA;CACA,MAAA,OAAO,IAAI,CAAC7B,SAAS,CAAC2B,GAAG,CAAC,CAAA;CAC9B,KAAA;CAAC,GAAA,EAAA;KAAAlC,GAAA,EAAA,YAAA;KAAAC,KAAA,EAED,SAAAqC,UAAAA,GAAa;CACT,MAAA,IAAI1D,GAAG,GAAG,IAAI,CAACY,IAAI,CAAC+C,SAAS,CAAC,IAAI,CAAC7C,MAAM,EAAE,IAAI,CAACC,cAAc,CAAC,CAAA;CAC/D,MAAA,IAAI,CAACY,SAAS,CAAC,CAAC,CAAC,CAAA;CACjB,MAAA,OAAO3B,GAAG,CAAA;CACd,KAAA;CAAC,GAAA,EAAA;KAAAoB,GAAA,EAAA,YAAA;KAAAC,KAAA,EAED,SAAAuC,UAAAA,GAAa;CACT,MAAA,IAAI5D,GAAG,GAAG,IAAI,CAACY,IAAI,CAACiD,SAAS,CAAC,IAAI,CAAC/C,MAAM,EAAE,IAAI,CAACC,cAAc,CAAC,CAAA;CAC/D,MAAA,IAAI,CAACY,SAAS,CAAC,CAAC,CAAC,CAAA;CACjB,MAAA,OAAO3B,GAAG,CAAA;CACd,KAAA;CAAC,GAAA,EAAA;KAAAoB,GAAA,EAAA,WAAA;KAAAC,KAAA,EAED,SAAAyC,SAAAA,GAAY;OACR,IAAI9D,GAAG,GAAG,IAAI,CAACY,IAAI,CAACmD,QAAQ,CAAC,IAAI,CAACjD,MAAM,CAAC,CAAA;CACzC,MAAA,IAAI,CAACa,SAAS,CAAC,CAAC,CAAC,CAAA;CACjB,MAAA,OAAO3B,GAAG,CAAA;CACd,KAAA;CAAC,GAAA,EAAA;KAAAoB,GAAA,EAAA,WAAA;CAAAC,IAAAA,KAAA,EAED,SAAA2C,SAAUlD,CAAAA,MAAM,EAAE;OACd,OAAO,IAAI,CAACF,IAAI,CAACmD,QAAQ,CAAC,IAAI,CAACjD,MAAM,GAAGA,MAAM,CAAC,CAAA;CACnD,KAAA;CAAC,GAAA,EAAA;KAAAM,GAAA,EAAA,gBAAA;CAAAC,IAAAA,KAAA,EAED,SAAA4C,cAAelF,CAAAA,MAAM,EAAE;CACnB,MAAA,IAAImF,GAAG,GAAG,IAAIhF,UAAU,CAAC,IAAI,CAACwB,MAAM,EAAE,IAAI,CAACI,MAAM,EAAE/B,MAAM,CAAC,CAAA;CAC1D,MAAA,IAAI,CAAC4C,SAAS,CAAC5C,MAAM,CAAC,CAAA;CACtB,MAAA,OAAOmF,GAAG,CAAA;CACd,KAAA;CAAC,GAAA,EAAA;KAAA9C,GAAA,EAAA,iBAAA;CAAAC,IAAAA,KAAA,EAED,SAAA8C,eAAgBpF,CAAAA,MAAM,EAAE;CACpB,MAAA,IAAIqF,MAAM,GAAGrF,MAAM,GAAG,CAAC;CACnBmF,QAAAA,GAAG,GAAG,IAAIG,WAAW,CAACD,MAAM,CAAC;CAC7BhF,QAAAA,CAAC,GAAG,CAAC,CAAA;CACT,MAAA,OAAOA,CAAC,EAAE,GAAGgF,MAAM,EAAE;CACjBF,QAAAA,GAAG,CAAC9E,CAAC,CAAC,GAAG,IAAI,CAACwB,IAAI,CAACiD,SAAS,CAAC,IAAI,CAAC/C,MAAM,EAAE,IAAI,CAACC,cAAc,CAAC,CAAA;SAC9D,IAAI,CAACD,MAAM,IAAI,CAAC,CAAA;CACpB,OAAA;CACA,MAAA,OAAOoD,GAAG,CAAA;CACd,KAAA;CAAC,GAAA,EAAA;KAAA9C,GAAA,EAAA,WAAA;KAAAC,KAAA,EAED,SAAAiD,SAAAA,GAAY;CACR,MAAA,IAAItE,GAAG,GAAG,IAAI,CAACY,IAAI,CAAC2D,QAAQ,CAAC,IAAI,CAACzD,MAAM,EAAE,IAAI,CAACC,cAAc,CAAC,CAAA;CAC9D,MAAA,IAAI,CAACY,SAAS,CAAC,CAAC,CAAC,CAAA;CACjB,MAAA,OAAO3B,GAAG,CAAA;CACd,KAAA;CAAC,GAAA,EAAA;KAAAoB,GAAA,EAAA,WAAA;KAAAC,KAAA,EAED,SAAAmD,SAAAA,GAAY;CACR,MAAA,IAAIxE,GAAG,GAAG,IAAI,CAACY,IAAI,CAAC6D,QAAQ,CAAC,IAAI,CAAC3D,MAAM,EAAE,IAAI,CAACC,cAAc,CAAC,CAAA;CAC9D,MAAA,IAAI,CAACY,SAAS,CAAC,CAAC,CAAC,CAAA;CACjB,MAAA,OAAO3B,GAAG,CAAA;CACd,KAAA;CAAC,GAAA,EAAA;KAAAoB,GAAA,EAAA,WAAA;KAAAC,KAAA,EAED,SAAAqD,SAAAA,GAAY;CACR,MAAA,IAAI1E,GAAG,GAAG,IAAI,CAACY,IAAI,CAAC+D,UAAU,CAAC,IAAI,CAAC7D,MAAM,EAAE,IAAI,CAACC,cAAc,CAAC,CAAA;CAChE,MAAA,IAAI,CAACY,SAAS,CAAC,CAAC,CAAC,CAAA;CACjB,MAAA,OAAO3B,GAAG,CAAA;CACd,KAAA;CAAC,GAAA,EAAA;KAAAoB,GAAA,EAAA,YAAA;KAAAC,KAAA,EAED,SAAAuD,UAAAA,GAAa;CACT,MAAA,IAAI5E,GAAG,GAAG,IAAI,CAACY,IAAI,CAACiE,UAAU,CAAC,IAAI,CAAC/D,MAAM,EAAE,IAAI,CAACC,cAAc,CAAC,CAAA;CAChE,MAAA,IAAI,CAACY,SAAS,CAAC,CAAC,CAAC,CAAA;CACjB,MAAA,OAAO3B,GAAG,CAAA;CACd,KAAA;CAAC,GAAA,EAAA;KAAAoB,GAAA,EAAA,iBAAA;CAAAC,IAAAA,KAAA,EAED,SAAAyD,eAAgB/F,CAAAA,MAAM,EAAE;OACpB,IAAIgG,MAAM,GAAG,EAAE,CAAA;CACf,MAAA,IAAIC,KAAK,GAAG,IAAI,CAAClE,MAAM,CAAA;CACvB,MAAA,IAAImE,GAAG,GAAG,IAAI,CAACnE,MAAM,GAAG/B,MAAM,CAAA;CAC9B,MAAA,IAAIkG,GAAG,IAAI,IAAI,CAACvE,MAAM,CAACyC,UAAU,EAAE;CAC/B8B,QAAAA,GAAG,GAAG,IAAI,CAACvE,MAAM,CAACyC,UAAU,CAAA;CAChC,OAAA;OACA,KAAK,IAAI/D,CAAC,GAAG4F,KAAK,EAAE5F,CAAC,GAAG6F,GAAG,EAAE,EAAE7F,CAAC,EAAE;CAC9B2F,QAAAA,MAAM,IAAIG,MAAM,CAACC,YAAY,CAAC,IAAI,CAACvE,IAAI,CAACmD,QAAQ,CAAC3E,CAAC,CAAC,CAAC,CAAA;CACxD,OAAA;CACA,MAAA,IAAI,CAACuC,SAAS,CAACsD,GAAG,GAAGD,KAAK,CAAC,CAAA;CAC3B,MAAA,OAAOD,MAAM,CAAA;CACjB,KAAA;CAAC,GAAA,EAAA;KAAA3D,GAAA,EAAA,QAAA;KAAAC,KAAA,EAED,SAAA+D,MAAAA,GAAS;CACL,MAAA,IAAIC,EAAE,GACFH,MAAM,CAACC,YAAY,CAAC,IAAI,CAACvE,IAAI,CAACmD,QAAQ,CAAC,IAAI,CAACjD,MAAM,CAAC,CAAC,GACpDoE,MAAM,CAACC,YAAY,CAAC,IAAI,CAACvE,IAAI,CAACmD,QAAQ,CAAC,IAAI,CAACjD,MAAM,GAAG,CAAC,CAAC,CAAC,CAAA;CAC5D,MAAA,IAAI,CAACa,SAAS,CAAC,CAAC,CAAC,CAAA;CACjB,MAAA,OAAO0D,EAAE,CAAA;CACb,KAAA;CAAC,GAAA,EAAA;KAAAjE,GAAA,EAAA,mBAAA;CAAAC,IAAAA,KAAA,EAED,SAAAiE,iBAAkBvG,CAAAA,MAAM,EAAE;OACtB,IAAI,IAAI,CAAC+B,MAAM,GAAG/B,MAAM,IAAI,IAAI,CAAC2B,MAAM,CAACyC,UAAU,EAAE;SAChDpE,MAAM,GAAG,IAAI,CAAC2B,MAAM,CAACyC,UAAU,GAAG,IAAI,CAACrC,MAAM,CAAA;CACjD,OAAA;CACA,MAAA,IAAMF,IAAI,GAAG,IAAIC,QAAQ,CAAC,IAAI,CAACH,MAAM,EAAE,IAAI,CAACI,MAAM,EAAE/B,MAAM,CAAC,CAAA;OAC3D,IAAMgG,MAAM,GAAG,IAAI,CAACQ,OAAO,CAACC,MAAM,CAAC5E,IAAI,CAAC,CAAA;CACxC,MAAA,IAAI,CAACe,SAAS,CAAC5C,MAAM,CAAC,CAAA;CACtB,MAAA,OAAOgG,MAAM,CAAA;CACjB,KAAA;CAAC,GAAA,EAAA;KAAA3D,GAAA,EAAA,SAAA;CAAAC,IAAAA,KAAA,EAED,SAAAoE,OAAQ1G,CAAAA,MAAM,EAAE;OACZ,IAAI2G,SAAS,GAAG,EAAE,CAAA;OAClB,KAAK,IAAItG,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGL,MAAM,EAAEK,CAAC,EAAE,EAAE;SAC7BsG,SAAS,IAAI,IAAI,CAAC5B,SAAS,EAAE,CAAC6B,QAAQ,CAAC,EAAE,CAAC,CAAA;CAC9C,OAAA;CACA,MAAA,OAAOD,SAAS,CAAA;CACpB,KAAA;CAAC,GAAA,EAAA;KAAAtE,GAAA,EAAA,WAAA;CAAAC,IAAAA,KAAA,EAED,SAAAI,SAAUmE,CAAAA,IAAI,EAAE;OACZ,IAAI,IAAI,CAAC9E,MAAM,GAAG8E,IAAI,GAAG,IAAI,CAAClF,MAAM,CAACyC,UAAU,EAAE;CAC7C;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,QAAA,IAAI0C,OAAO,GAAG,IAAI,CAAC/E,MAAM,GAAG8E,IAAI,GAAG,IAAI,CAAClF,MAAM,CAACyC,UAAU,CAAA;CACzD,QAAA,IAAI2C,GAAG,GAAG,IAAInF,WAAW,CAACkF,OAAO,CAAC,CAAA;CAClC,QAAA,IAAI3G,UAAU,CAAC4G,GAAG,CAAC,CAAC1C,GAAG,CAAC,IAAIlE,UAAU,CAAC,IAAI,CAACwB,MAAM,CAAC,CAAC,CAAA;SACpD,IAAI,CAACA,MAAM,GAAGoF,GAAG,CAAA;SACjB,IAAI,CAAClF,IAAI,GAAG,IAAIC,QAAQ,CAAC,IAAI,CAACH,MAAM,CAAC,CAAA;CACzC,OAAA;CACJ,KAAA;CAAC,GAAA,EAAA;KAAAU,GAAA,EAAA,QAAA;CAAAC,IAAAA,KAAA,EAED,SAAA0E,MAAOC,CAAAA,MAAM,EAAE;OACX,IAAIC,SAAS,GAAG,IAAI,CAACvF,MAAM,CAACyC,UAAU,GAAG,IAAI,CAACrC,MAAM,CAAA;CACpD,MAAA,IAAIkF,MAAM,CAAChF,IAAI,GAAGiF,SAAS,EAAE;CACzB,QAAA,IAAIC,MAAM,GAAG,IAAIvF,WAAW,CAAC,IAAI,CAACG,MAAM,GAAGkF,MAAM,CAAChF,IAAI,CAAC,CAAA;CACvD,QAAA,IAAImF,IAAI,GAAG,IAAIjH,UAAU,CAACgH,MAAM,CAAC,CAAA;CACjCC,QAAAA,IAAI,CAAC/C,GAAG,CAAC,IAAIlE,UAAU,CAAC,IAAI,CAACkH,SAAS,CAAC,CAAC,EAAE,IAAI,CAACtF,MAAM,CAAC,CAAC,CAAC,CAAA;SACxDqF,IAAI,CAAC/C,GAAG,CACJ,IAAIlE,UAAU,CAAC8G,MAAM,CAACI,SAAS,CAAC,CAAC,EAAEJ,MAAM,CAAChF,IAAI,CAAC,CAAC,EAChD,IAAI,CAACF,MACT,CAAC,CAAA;SACD,IAAI,CAACJ,MAAM,GAAGwF,MAAM,CAAA;SACpB,IAAI,CAACtF,IAAI,GAAG,IAAIC,QAAQ,CAAC,IAAI,CAACH,MAAM,CAAC,CAAA;CACzC,OAAC,MAAM;SACH,IAAIyF,IAAI,GAAG,IAAIjH,UAAU,CAAC,IAAI,CAACwB,MAAM,CAAC,CAAA;SACtCyF,IAAI,CAAC/C,GAAG,CACJ,IAAIlE,UAAU,CAAC8G,MAAM,CAACI,SAAS,CAAC,CAAC,EAAEJ,MAAM,CAAChF,IAAI,CAAC,CAAC,EAChD,IAAI,CAACF,MACT,CAAC,CAAA;CACL,OAAA;CACA,MAAA,IAAI,CAACA,MAAM,IAAIkF,MAAM,CAAChF,IAAI,CAAA;CAC1B,MAAA,IAAI,CAACA,IAAI,GAAG,IAAI,CAACF,MAAM,CAAA;CACvB,MAAA,OAAO,IAAI,CAACJ,MAAM,CAACyC,UAAU,CAAA;CACjC,KAAA;CAAC,GAAA,EAAA;KAAA/B,GAAA,EAAA,WAAA;CAAAC,IAAAA,KAAA,EAED,SAAAM,SAAUiE,CAAAA,IAAI,EAAE;OACZ,IAAI,CAAC9E,MAAM,IAAI8E,IAAI,CAAA;CACnB,MAAA,IAAI,IAAI,CAAC9E,MAAM,GAAG,IAAI,CAACE,IAAI,EAAE;CACzB,QAAA,IAAI,CAACA,IAAI,GAAG,IAAI,CAACF,MAAM,CAAA;CAC3B,OAAA;CACA,MAAA,OAAO8E,IAAI,CAAA;CACf,KAAA;CAAC,GAAA,EAAA;KAAAxE,GAAA,EAAA,WAAA;CAAAC,IAAAA,KAAA,EAED,SAAA+E,SAAAA,CAAUpB,KAAK,EAAEC,GAAG,EAAE;CAClB,MAAA,IAAI,CAACD,KAAK,IAAI,CAACC,GAAG,EAAE;CAChBD,QAAAA,KAAK,GAAG,CAAC,CAAA;SACTC,GAAG,GAAG,IAAI,CAACjE,IAAI,CAAA;CACnB,OAAA;OAEA,OAAO,IAAI,CAACN,MAAM,CAAC2F,KAAK,CAACrB,KAAK,EAAEC,GAAG,CAAC,CAAA;CACxC,KAAA;CAAC,GAAA,EAAA;KAAA7D,GAAA,EAAA,MAAA;CAAAC,IAAAA,KAAA,EAED,SAAAiF,IAAKvH,CAAAA,MAAM,EAAE;OACT,IAAI,IAAI,CAAC+B,MAAM,GAAG/B,MAAM,GAAG,IAAI,CAACwH,SAAS,EAAE;CACvC,QAAA,MAAM,IAAIrG,KAAK,CAAC,8CAA8C,CAAC,CAAA;CACnE,OAAA;OAEA,IAAMsG,MAAM,GAAG,IAAIC,gBAAgB,CAAC,IAAI,CAAC/F,MAAM,EAAE,IAAI,EAAE;SACnDsE,KAAK,EAAE,IAAI,CAAClE,MAAM;CAClB4F,QAAAA,IAAI,EAAE,IAAI,CAAC5F,MAAM,GAAG/B,MAAAA;CACxB,OAAC,CAAC,CAAA;CACF,MAAA,IAAI,CAAC4C,SAAS,CAAC5C,MAAM,CAAC,CAAA;CAEtB,MAAA,OAAOyH,MAAM,CAAA;CACjB,KAAA;CAAC,GAAA,EAAA;KAAApF,GAAA,EAAA,OAAA;KAAAC,KAAA,EAED,SAAAsF,KAAAA,GAAQ;OACJ,IAAI,CAAC7F,MAAM,GAAG,CAAC,CAAA;CACf,MAAA,OAAO,IAAI,CAAA;CACf,KAAA;CAAC,GAAA,EAAA;KAAAM,GAAA,EAAA,KAAA;KAAAC,KAAA,EAED,SAAA4D,GAAAA,GAAM;OACF,OAAO,IAAI,CAACnE,MAAM,IAAI,IAAI,CAACJ,MAAM,CAACyC,UAAU,CAAA;CAChD,KAAA;CAAC,GAAA,EAAA;KAAA/B,GAAA,EAAA,OAAA;KAAAC,KAAA,EAED,SAAAuF,KAAAA,GAAQ;CACJ,MAAA,IAAI,CAAC9F,MAAM,GAAG,IAAI,CAACJ,MAAM,CAACyC,UAAU,CAAA;CACxC,KAAA;CAAC,GAAA,CAAA,CAAA,CAAA;CAAA,EAAA,OAAA7C,YAAA,CAAA;CAAA,CAAA,EAAA,CAAA;CAAA,IAGCmG,gBAAgB,0BAAAI,aAAA,EAAA;GAAAC,SAAA,CAAAL,gBAAA,EAAAI,aAAA,CAAA,CAAA;CAAA,EAAA,IAAAE,MAAA,GAAAC,YAAA,CAAAP,gBAAA,CAAA,CAAA;CAClB,EAAA,SAAAA,gBACI/F,CAAAA,MAAM,EACNF,YAAY,EAMd;CAAA,IAAA,IAAAyG,KAAA,CAAA;KAAA,IALEC,OAAO,GAAAC,SAAA,CAAApI,MAAA,GAAAoI,CAAAA,IAAAA,SAAA,CAAAC,CAAAA,CAAAA,KAAAA,SAAA,GAAAD,SAAA,CAAG,CAAA,CAAA,GAAA;CACNnC,MAAAA,KAAK,EAAE,IAAI;CACX0B,MAAAA,IAAI,EAAE,IAAI;CACVW,MAAAA,MAAM,EAAE,KAAA;MACX,CAAA;CAAA5G,IAAAA,eAAA,OAAAgG,gBAAA,CAAA,CAAA;CAEDQ,IAAAA,KAAA,GAAAF,MAAA,CAAAO,IAAA,CAAM5G,IAAAA,EAAAA,MAAM,EAAEF,YAAY,CAAA,CAAA;CAC1ByG,IAAAA,KAAA,CAAKnG,MAAM,GAAGoG,OAAO,CAAClC,KAAK,IAAI,CAAC,CAAA;KAChCiC,KAAA,CAAKjG,IAAI,GAAGkG,OAAO,CAACR,IAAI,IAAIO,KAAA,CAAKvG,MAAM,CAACyC,UAAU,CAAA;CAClD8D,IAAAA,KAAA,CAAKI,MAAM,GAAGH,OAAO,CAACG,MAAM,CAAA;CAC5BJ,IAAAA,KAAA,CAAK1D,WAAW,GAAG0D,KAAA,CAAKnG,MAAM,CAAA;CAC9BmG,IAAAA,KAAA,CAAKV,SAAS,GAAGU,KAAA,CAAKjG,IAAI,CAAA;CAC1BiG,IAAAA,KAAA,CAAK1B,OAAO,GAAG,IAAIgC,WAAW,CAAC,QAAQ,CAAC,CAAA;CAAC,IAAA,OAAAN,KAAA,CAAA;CAC7C,GAAA;CAAC9F,EAAAA,YAAA,CAAAsF,gBAAA,EAAA,CAAA;KAAArF,GAAA,EAAA,YAAA;CAAAC,IAAAA,KAAA,EAED,SAAAmG,UAAWjC,CAAAA,OAAO,EAAE;OAChB,IAAI,CAACA,OAAO,GAAGA,OAAO,CAAA;CAC1B,KAAA;CAAC,GAAA,EAAA;KAAAnE,GAAA,EAAA,WAAA;CAAAC,IAAAA,KAAA,EAED,SAAA+E,SAAAA,CAAUpB,KAAK,EAAEC,GAAG,EAAE;OAClB,IAAI,IAAI,CAACoC,MAAM,EAAE;CACb,QAAA,OAAO,IAAInI,UAAU,CAAC,IAAI,CAACwB,MAAM,EAAEsE,KAAK,EAAEC,GAAG,GAAGD,KAAK,CAAC,CAAA;CAC1D,OAAA;CACA,MAAA,IAAI,CAACA,KAAK,IAAI,CAACC,GAAG,EAAE;CAChBD,QAAAA,KAAK,GAAG,CAAC,CAAA;SACTC,GAAG,GAAG,IAAI,CAACjE,IAAI,CAAA;CACnB,OAAA;OAEA,OAAO,IAAI,CAACN,MAAM,CAAC2F,KAAK,CAACrB,KAAK,EAAEC,GAAG,CAAC,CAAA;CACxC,KAAA;CAAC,GAAA,EAAA;KAAA7D,GAAA,EAAA,OAAA;KAAAC,KAAA,EAED,SAAAsF,KAAAA,GAAQ;CACJ,MAAA,IAAI,CAAC7F,MAAM,GAAG,IAAI,CAACyC,WAAW,CAAA;CAC9B,MAAA,OAAO,IAAI,CAAA;CACf,KAAA;CAAC,GAAA,EAAA;KAAAnC,GAAA,EAAA,KAAA;KAAAC,KAAA,EAED,SAAA4D,GAAAA,GAAM;CACF,MAAA,OAAO,IAAI,CAACnE,MAAM,IAAI,IAAI,CAACyF,SAAS,CAAA;CACxC,KAAA;CAAC,GAAA,EAAA;KAAAnF,GAAA,EAAA,OAAA;KAAAC,KAAA,EAED,SAAAuF,KAAAA,GAAQ;CACJ,MAAA,IAAI,CAAC9F,MAAM,GAAG,IAAI,CAACyF,SAAS,CAAA;CAChC,KAAA;CAAC,GAAA,EAAA;KAAAnF,GAAA,EAAA,YAAA;CAAAC,IAAAA,KAAA,EAED,SAAAG,UAAWH,CAAAA,KAAK,EAAE;CACd,MAAA,MAAM,IAAInB,KAAK,CAACmB,KAAK,EAAE,4BAA4B,CAAC,CAAA;CACxD,KAAA;CAAC,GAAA,EAAA;KAAAD,GAAA,EAAA,kBAAA;CAAAC,IAAAA,KAAA,EAED,SAAAO,gBAAAA,CAAiBP,KAAK,EAAEQ,KAAK,EAAE;CAC3B,MAAA,MAAM,IAAI3B,KAAK,CAACmB,KAAK,EAAE,kCAAkC,CAAC,CAAA;CAC9D,KAAA;CAAC,GAAA,EAAA;KAAAD,GAAA,EAAA,WAAA;CAAAC,IAAAA,KAAA,EAED,SAAAU,SAAUV,CAAAA,KAAK,EAAE;CACb,MAAA,MAAM,IAAInB,KAAK,CAACmB,KAAK,EAAE,2BAA2B,CAAC,CAAA;CACvD,KAAA;CAAC,GAAA,EAAA;KAAAD,GAAA,EAAA,aAAA;CAAAC,IAAAA,KAAA,EAED,SAAAY,WAAYZ,CAAAA,KAAK,EAAE;CACf,MAAA,MAAM,IAAInB,KAAK,CAACmB,KAAK,EAAE,6BAA6B,CAAC,CAAA;CACzD,KAAA;CAAC,GAAA,EAAA;KAAAD,GAAA,EAAA,iBAAA;CAAAC,IAAAA,KAAA,EAED,SAAAc,eAAgBd,CAAAA,KAAK,EAAE;CACnB,MAAA,MAAM,IAAInB,KAAK,CAACmB,KAAK,EAAE,iCAAiC,CAAC,CAAA;CAC7D,KAAA;CAAC,GAAA,EAAA;KAAAD,GAAA,EAAA,YAAA;CAAAC,IAAAA,KAAA,EAED,SAAAiB,UAAWjB,CAAAA,KAAK,EAAE;CACd,MAAA,MAAM,IAAInB,KAAK,CAACmB,KAAK,EAAE,4BAA4B,CAAC,CAAA;CACxD,KAAA;CAAC,GAAA,EAAA;KAAAD,GAAA,EAAA,aAAA;CAAAC,IAAAA,KAAA,EAED,SAAAmB,WAAYnB,CAAAA,KAAK,EAAE;CACf,MAAA,MAAM,IAAInB,KAAK,CAACmB,KAAK,EAAE,6BAA6B,CAAC,CAAA;CACzD,KAAA;CAAC,GAAA,EAAA;KAAAD,GAAA,EAAA,YAAA;CAAAC,IAAAA,KAAA,EAED,SAAAqB,UAAWrB,CAAAA,KAAK,EAAE;CACd,MAAA,MAAM,IAAInB,KAAK,CAACmB,KAAK,EAAE,4BAA4B,CAAC,CAAA;CACxD,KAAA;CAAC,GAAA,EAAA;KAAAD,GAAA,EAAA,YAAA;CAAAC,IAAAA,KAAA,EAED,SAAAuB,UAAWvB,CAAAA,KAAK,EAAE;CACd,MAAA,MAAM,IAAInB,KAAK,CAACmB,KAAK,EAAE,4BAA4B,CAAC,CAAA;CACxD,KAAA;CAAC,GAAA,EAAA;KAAAD,GAAA,EAAA,aAAA;CAAAC,IAAAA,KAAA,EAED,SAAAyB,WAAYzB,CAAAA,KAAK,EAAE;CACf,MAAA,MAAM,IAAInB,KAAK,CAACmB,KAAK,EAAE,6BAA6B,CAAC,CAAA;CACzD,KAAA;CAAC,GAAA,EAAA;KAAAD,GAAA,EAAA,kBAAA;CAAAC,IAAAA,KAAA,EAED,SAAAgC,gBAAiBhC,CAAAA,KAAK,EAAE;CACpB,MAAA,MAAM,IAAInB,KAAK,CAACmB,KAAK,EAAE,kCAAkC,CAAC,CAAA;CAC9D,KAAA;CAAC,GAAA,EAAA;KAAAD,GAAA,EAAA,iBAAA;CAAAC,IAAAA,KAAA,EAED,SAAA2B,eAAgB3B,CAAAA,KAAK,EAAE;CACnB,MAAA,MAAM,IAAInB,KAAK,CAACmB,KAAK,EAAE,iCAAiC,CAAC,CAAA;CAC7D,KAAA;CAAC,GAAA,EAAA;KAAAD,GAAA,EAAA,WAAA;CAAAC,IAAAA,KAAA,EAED,SAAAI,SAAUmE,CAAAA,IAAI,EAAE;CACZ,MAAA,MAAM,IAAI1F,KAAK,CAAC0F,IAAI,EAAE,2BAA2B,CAAC,CAAA;CACtD,KAAA;CAAC,GAAA,EAAA;KAAAxE,GAAA,EAAA,QAAA;CAAAC,IAAAA,KAAA,EAED,SAAA0E,MAAOC,CAAAA,MAAM,EAAE;CACX,MAAA,MAAM,IAAI9F,KAAK,CAAC8F,MAAM,EAAE,wBAAwB,CAAC,CAAA;CACrD,KAAA;CAAC,GAAA,CAAA,CAAA,CAAA;CAAA,EAAA,OAAAS,gBAAA,CAAA;CAAA,CAAA,CAtG0BnG,YAAY,CAAA,CAAA;CAAA,IAyGrCmH,wBAAwB,0BAAAC,iBAAA,EAAA;GAAAZ,SAAA,CAAAW,wBAAA,EAAAC,iBAAA,CAAA,CAAA;CAAA,EAAA,IAAAC,OAAA,GAAAX,YAAA,CAAAS,wBAAA,CAAA,CAAA;CAC1B,EAAA,SAAAA,wBAAYzB,CAAAA,MAAM,EAAEkB,OAAO,EAAE;CAAAzG,IAAAA,eAAA,OAAAgH,wBAAA,CAAA,CAAA;CACzB,IAAA,IAAMG,cAAc,GAAGC,IAAI,CAACC,UAAU,CAClC9B,MAAM,CAACI,SAAS,CAACJ,MAAM,CAAClF,MAAM,EAAEkF,MAAM,CAAChF,IAAI,CAC/C,CAAC,CAAA;CAAC,IAAA,OAAA2G,OAAA,CAAAL,IAAA,CAAA,IAAA,EACIM,cAAc,CAAClH,MAAM,EAAEsF,MAAM,CAACxF,YAAY,EAAE0G,OAAO,CAAA,CAAA;CAC7D,GAAA;GAAC,OAAA/F,YAAA,CAAAsG,wBAAA,CAAA,CAAA;CAAA,CAAA,CANkChB,gBAAgB,CAAA,CAAA;CAAA,IASjDsB,iBAAiB,0BAAAC,cAAA,EAAA;GAAAlB,SAAA,CAAAiB,iBAAA,EAAAC,cAAA,CAAA,CAAA;CAAA,EAAA,IAAAC,OAAA,GAAAjB,YAAA,CAAAe,iBAAA,CAAA,CAAA;CACnB,EAAA,SAAAA,iBAAYrH,CAAAA,MAAM,EAAEF,YAAY,EAAE;CAAA,IAAA,IAAA0H,MAAA,CAAA;CAAAzH,IAAAA,eAAA,OAAAsH,iBAAA,CAAA,CAAA;CAC9BG,IAAAA,MAAA,GAAAD,OAAA,CAAAX,IAAA,CAAM5G,IAAAA,EAAAA,MAAM,EAAEF,YAAY,CAAA,CAAA;KAC1B0H,MAAA,CAAKlH,IAAI,GAAG,CAAC,CAAA;CAAC,IAAA,OAAAkH,MAAA,CAAA;CAClB,GAAA;GAAC,OAAA/G,YAAA,CAAA4G,iBAAA,CAAA,CAAA;CAAA,CAAA,CAJ2BzH,YAAY,CAAA;;CClb5C;CACO,IAAM6H,sBAAsB,GAAG,mBAAmB,CAAA;CAClD,IAAMC,wBAAsB,GAAG,qBAAqB,CAAA;CACpD,IAAMC,+BAA+B,GAAG,wBAAwB,CAAA;CAChE,IAAMC,mBAAmB,GAAG,qBAAqB,CAAA;;CASxD;CACO,IAAMC,YAAY,GAAG,IAAI,CAAA;CACzB,IAAMC,YAAY,GAAG,IAAI,CAAA;CACzB,IAAMC,aAAa,GAAG,IAAI,CAAA;;CAEjC;CACO,IAAMC,sBAAsB,GAAG,IAAI;;CCnB1C,IAAMC,UAAU,CAAG,CACf,aAAa,CAAE,CACXC,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,QAAQ,CACdC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sCAAsC,CAC5CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6CAA6C,CACnDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yDAAyD,CAC/DC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wDAAwD,CAC9DC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6CAA6C,CACnDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2CAA2C,CACjDC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oCAAoC,CAC1CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oCAAoC,CAC1CC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0CAA0C,CAChDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2CAA2C,CACjDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,aACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,aACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oCAAoC,CAC1CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qCAAqC,CAC3CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oCAAoC,CAC1CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uCAAuC,CAC7CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2CAA2C,CACjDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qCAAqC,CAC3CC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uCAAuC,CAC7CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sCAAsC,CAC5CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yCAAyC,CAC/CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0CAA0C,CAChDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2CAA2C,CACjDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8CAA8C,CACpDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0CAA0C,CAChDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wCAAwC,CAC9CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iDAAiD,CACvDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,MAAM,CACVC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mDAAmD,CACzDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wCAAwC,CAC9CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0CAA0C,CAChDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2CAA2C,CACjDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qCAAqC,CAC3CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oCAAoC,CAC1CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qCAAqC,CAC3CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0CAA0C,CAChDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uCAAuC,CAC7CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uCAAuC,CAC7CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uCAAuC,CAC7CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oCAAoC,CAC1CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4CAA4C,CAClDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uCAAuC,CAC7CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qCAAqC,CAC3CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qCAAqC,CAC3CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oCAAoC,CAC1CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0CAA0C,CAChDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oDAAoD,CAC1DC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oCAAoC,CAC1CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oCAAoC,CAC1CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iDAAiD,CACvDC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4CAA4C,CAClDC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qCAAqC,CAC3CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sCAAsC,CAC5CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oCAAoC,CAC1CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+CAA+C,CACrDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6CAA6C,CACnDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qCAAqC,CAC3CC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,QAAQ,CACdC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0CAA0C,CAChDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qCAAqC,CAC3CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,KAAK,CACXC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qCAAqC,CAC3CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,QAAQ,CACdC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oCAAoC,CAC1CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6CAA6C,CACnDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wCAAwC,CAC9CC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sCAAsC,CAC5CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qCAAqC,CAC3CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0CAA0C,CAChDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oCAAoC,CAC1CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,MAAM,CACZC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yCAAyC,CAC/CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+CAA+C,CACrDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uCAAuC,CAC7CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wCAAwC,CAC9CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sDAAsD,CAC5DC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,KAAK,CACXC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,MAAM,CACZC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wCAAwC,CAC9CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,MAAM,CACVC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qCAAqC,CAC3CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,MAAM,CACVC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oCAAoC,CAC1CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qCAAqC,CAC3CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yCAAyC,CAC/CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sCAAsC,CAC5CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sCAAsC,CAC5CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yCAAyC,CAC/CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qCAAqC,CAC3CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oCAAoC,CAC1CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qCAAqC,CAC3CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sCAAsC,CAC5CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oCAAoC,CAC1CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6CAA6C,CACnDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sCAAsC,CAC5CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wCAAwC,CAC9CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qCAAqC,CAC3CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mDAAmD,CACzDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wCAAwC,CAC9CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2CAA2C,CACjDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qCAAqC,CAC3CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2CAA2C,CACjDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2CAA2C,CACjDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sCAAsC,CAC5CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qCAAqC,CAC3CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uCAAuC,CAC7CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sCAAsC,CAC5CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8CAA8C,CACpDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oCAAoC,CAC1CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wCAAwC,CAC9CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uCAAuC,CAC7CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8CAA8C,CACpDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+CAA+C,CACrDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iDAAiD,CACvDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iDAAiD,CACvDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8CAA8C,CACpDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8CAA8C,CACpDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oDAAoD,CAC1DC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0CAA0C,CAChDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oCAAoC,CAC1CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wCAAwC,CAC9CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oCAAoC,CAC1CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sCAAsC,CAC5CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sCAAsC,CAC5CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yCAAyC,CAC/CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uCAAuC,CAC7CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qCAAqC,CAC3CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yCAAyC,CAC/CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6CAA6C,CACnDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2CAA2C,CACjDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uCAAuC,CAC7CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oCAAoC,CAC1CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wCAAwC,CAC9CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yCAAyC,CAC/CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0CAA0C,CAChDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qCAAqC,CAC3CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uCAAuC,CAC7CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iDAAiD,CACvDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oCAAoC,CAC1CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uCAAuC,CAC7CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oDAAoD,CAC1DC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uCAAuC,CAC7CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6CAA6C,CACnDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wCAAwC,CAC9CC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2CAA2C,CACjDC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qCAAqC,CAC3CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4CAA4C,CAClDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oCAAoC,CAC1CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qCAAqC,CAC3CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uCAAuC,CAC7CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sCAAsC,CAC5CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6CAA6C,CACnDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+CAA+C,CACrDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oCAAoC,CAC1CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qCAAqC,CAC3CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oCAAoC,CAC1CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oCAAoC,CAC1CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,IAAI,CACRC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,IAAI,CACRC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2CAA2C,CACjDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sCAAsC,CAC5CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sCAAsC,CAC5CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uCAAuC,CAC7CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sCAAsC,CAC5CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sCAAsC,CAC5CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,MAAM,CACVC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0CAA0C,CAChDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6CAA6C,CACnDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4CAA4C,CAClDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uCAAuC,CAC7CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uCAAuC,CAC7CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2CAA2C,CACjDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qCAAqC,CAC3CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wCAAwC,CAC9CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sCAAsC,CAC5CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yCAAyC,CAC/CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+CAA+C,CACrDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2CAA2C,CACjDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wCAAwC,CAC9CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+CAA+C,CACrDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0DAA0D,CAChEC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oDAAoD,CAC1DC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4CAA4C,CAClDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uCAAuC,CAC7CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8CAA8C,CACpDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wCAAwC,CAC9CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4CAA4C,CAClDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0CAA0C,CAChDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6CAA6C,CACnDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4CAA4C,CAClDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sDAAsD,CAC5DC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0DAA0D,CAChEC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0DAA0D,CAChEC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qDAAqD,CAC3DC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kDAAkD,CACxDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iDAAiD,CACvDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kDAAkD,CACxDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8CAA8C,CACpDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gDAAgD,CACtDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4CAA4C,CAClDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4CAA4C,CAClDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6CAA6C,CACnDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4CAA4C,CAClDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2DAA2D,CACjEC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oCAAoC,CAC1CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wCAAwC,CAC9CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2CAA2C,CACjDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wCAAwC,CAC9CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yCAAyC,CAC/CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gDAAgD,CACtDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8CAA8C,CACpDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sCAAsC,CAC5CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0CAA0C,CAChDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6CAA6C,CACnDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6CAA6C,CACnDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qDAAqD,CAC3DC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wDAAwD,CAC9DC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sDAAsD,CAC5DC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yCAAyC,CAC/CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6CAA6C,CACnDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oCAAoC,CAC1CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6CAA6C,CACnDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6CAA6C,CACnDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4CAA4C,CAClDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+CAA+C,CACrDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yCAAyC,CAC/CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2CAA2C,CACjDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uCAAuC,CAC7CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mDAAmD,CACzDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wDAAwD,CAC9DC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sCAAsC,CAC5CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2CAA2C,CACjDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iDAAiD,CACvDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uCAAuC,CAC7CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4DAA4D,CAClEC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kDAAkD,CACxDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oCAAoC,CAC1CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uCAAuC,CAC7CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uCAAuC,CAC7CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qCAAqC,CAC3CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kDAAkD,CACxDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oDAAoD,CAC1DC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qDAAqD,CAC3DC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gEAAgE,CACtEC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2CAA2C,CACjDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qDAAqD,CAC3DC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sDAAsD,CAC5DC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+CAA+C,CACrDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uCAAuC,CAC7CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,MAAM,CACZC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yCAAyC,CAC/CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oCAAoC,CAC1CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sCAAsC,CAC5CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wCAAwC,CAC9CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uCAAuC,CAC7CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wCAAwC,CAC9CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yCAAyC,CAC/CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2CAA2C,CACjDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0CAA0C,CAChDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yCAAyC,CAC/CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,MAAM,CACVC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wCAAwC,CAC9CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uCAAuC,CAC7CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4CAA4C,CAClDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oCAAoC,CAC1CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uCAAuC,CAC7CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,MAAM,CACVC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,MAAM,CACVC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,MAAM,CACVC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,IAAI,CACRC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yCAAyC,CAC/CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2CAA2C,CACjDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2CAA2C,CACjDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oCAAoC,CAC1CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sCAAsC,CAC5CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sCAAsC,CAC5CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iDAAiD,CACvDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oDAAoD,CAC1DC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yCAAyC,CAC/CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gDAAgD,CACtDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qCAAqC,CAC3CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yDAAyD,CAC/DC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qCAAqC,CAC3CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wCAAwC,CAC9CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sCAAsC,CAC5CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uCAAuC,CAC7CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4CAA4C,CAClDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yCAAyC,CAC/CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4CAA4C,CAClDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qCAAqC,CAC3CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yCAAyC,CAC/CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oCAAoC,CAC1CC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mDAAmD,CACzDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yCAAyC,CAC/CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wCAAwC,CAC9CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wCAAwC,CAC9CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mDAAmD,CACzDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qCAAqC,CAC3CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6CAA6C,CACnDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0CAA0C,CAChDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4CAA4C,CAClDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gDAAgD,CACtDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gDAAgD,CACtDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qCAAqC,CAC3CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8CAA8C,CACpDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6CAA6C,CACnDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,MAAM,CACVC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,MAAM,CACZC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,MAAM,CACZC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,KAAK,CACXC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2CAA2C,CACjDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wCAAwC,CAC9CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0CAA0C,CAChDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sCAAsC,CAC5CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qCAAqC,CAC3CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2CAA2C,CACjDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qCAAqC,CAC3CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0CAA0C,CAChDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sCAAsC,CAC5CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,MAAM,CACVC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yCAAyC,CAC/CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uCAAuC,CAC7CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uCAAuC,CAC7CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yCAAyC,CAC/CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sCAAsC,CAC5CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uCAAuC,CAC7CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oCAAoC,CAC1CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oCAAoC,CAC1CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wCAAwC,CAC9CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sCAAsC,CAC5CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wCAAwC,CAC9CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wCAAwC,CAC9CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uCAAuC,CAC7CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,OAAO,CACbC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uCAAuC,CAC7CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6CAA6C,CACnDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2CAA2C,CACjDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oCAAoC,CAC1CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0CAA0C,CAChDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2CAA2C,CACjDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yDAAyD,CAC/DC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sCAAsC,CAC5CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kDAAkD,CACxDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,MAAM,CACVC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,MAAM,CACVC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yCAAyC,CAC/CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oCAAoC,CAC1CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qCAAqC,CAC3CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sCAAsC,CAC5CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0CAA0C,CAChDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qCAAqC,CAC3CC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sCAAsC,CAC5CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sCAAsC,CAC5CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4CAA4C,CAClDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gDAAgD,CACtDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wCAAwC,CAC9CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oCAAoC,CAC1CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8CAA8C,CACpDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0CAA0C,CAChDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qCAAqC,CAC3CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qCAAqC,CAC3CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,MAAM,CACZC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,QAAQ,CACdC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iEAAiE,CACvEC,EAAE,CAAE,IAAI,CACRC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0CAA0C,CAChDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uCAAuC,CAC7CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2CAA2C,CACjDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uCAAuC,CAC7CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wCAAwC,CAC9CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+CAA+C,CACrDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uCAAuC,CAC7CC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wCAAwC,CAC9CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wCAAwC,CAC9CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2CAA2C,CACjDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6CAA6C,CACnDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0CAA0C,CAChDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yCAAyC,CAC/CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wCAAwC,CAC9CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gDAAgD,CACtDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sCAAsC,CAC5CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oCAAoC,CAC1CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yCAAyC,CAC/CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8CAA8C,CACpDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qCAAqC,CAC3CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uCAAuC,CAC7CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uCAAuC,CAC7CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gDAAgD,CACtDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yCAAyC,CAC/CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uCAAuC,CAC7CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qCAAqC,CAC3CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qCAAqC,CAC3CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yCAAyC,CAC/CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yCAAyC,CAC/CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2CAA2C,CACjDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8CAA8C,CACpDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wCAAwC,CAC9CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qCAAqC,CAC3CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wCAAwC,CAC9CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qCAAqC,CAC3CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sCAAsC,CAC5CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2CAA2C,CACjDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qCAAqC,CAC3CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+CAA+C,CACrDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8CAA8C,CACpDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yDAAyD,CAC/DC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6CAA6C,CACnDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4CAA4C,CAClDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gDAAgD,CACtDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4CAA4C,CAClDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oDAAoD,CAC1DC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wCAAwC,CAC9CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4CAA4C,CAClDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wCAAwC,CAC9CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,MAAM,CACVC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yCAAyC,CAC/CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yCAAyC,CAC/CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2CAA2C,CACjDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qCAAqC,CAC3CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oCAAoC,CAC1CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,KAAK,CACXC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yCAAyC,CAC/CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sCAAsC,CAC5CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,MAAM,CACZC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qCAAqC,CAC3CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sCAAsC,CAC5CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6CAA6C,CACnDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8CAA8C,CACpDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,MAAM,CACVC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oCAAoC,CAC1CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8CAA8C,CACpDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0CAA0C,CAChDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,MAAM,CACVC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qCAAqC,CAC3CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2CAA2C,CACjDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2CAA2C,CACjDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sCAAsC,CAC5CC,EAAE,CAAE,IAAI,CACRC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uCAAuC,CAC7CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oCAAoC,CAC1CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wCAAwC,CAC9CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iDAAiD,CACvDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oCAAoC,CAC1CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yCAAyC,CAC/CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uCAAuC,CAC7CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2CAA2C,CACjDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yCAAyC,CAC/CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qCAAqC,CAC3CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+CAA+C,CACrDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wCAAwC,CAC9CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0CAA0C,CAChDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uCAAuC,CAC7CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uCAAuC,CAC7CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qCAAqC,CAC3CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kDAAkD,CACxDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0CAA0C,CAChDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qCAAqC,CAC3CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qCAAqC,CAC3CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uCAAuC,CAC7CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qCAAqC,CAC3CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0CAA0C,CAChDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qCAAqC,CAC3CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8CAA8C,CACpDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8CAA8C,CACpDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oCAAoC,CAC1CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uCAAuC,CAC7CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4CAA4C,CAClDC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wCAAwC,CAC9CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wCAAwC,CAC9CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,MAAM,CACVC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oCAAoC,CAC1CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oCAAoC,CAC1CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,MAAM,CACVC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qCAAqC,CAC3CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oCAAoC,CAC1CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4DAA4D,CAClEC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sCAAsC,CAC5CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uCAAuC,CAC7CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qCAAqC,CAC3CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wCAAwC,CAC9CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uCAAuC,CAC7CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0CAA0C,CAChDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sCAAsC,CAC5CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yCAAyC,CAC/CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8CAA8C,CACpDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oCAAoC,CAC1CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uCAAuC,CAC7CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gDAAgD,CACtDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sCAAsC,CAC5CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wCAAwC,CAC9CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2CAA2C,CACjDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mDAAmD,CACzDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kDAAkD,CACxDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,MAAM,CACVC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qCAAqC,CAC3CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4CAA4C,CAClDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sCAAsC,CAC5CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0CAA0C,CAChDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4CAA4C,CAClDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wCAAwC,CAC9CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4CAA4C,CAClDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2CAA2C,CACjDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wCAAwC,CAC9CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oCAAoC,CAC1CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qCAAqC,CAC3CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qCAAqC,CAC3CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uCAAuC,CAC7CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yCAAyC,CAC/CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qCAAqC,CAC3CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qCAAqC,CAC3CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sCAAsC,CAC5CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0CAA0C,CAChDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8CAA8C,CACpDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yCAAyC,CAC/CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wCAAwC,CAC9CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yCAAyC,CAC/CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kDAAkD,CACxDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uCAAuC,CAC7CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qCAAqC,CAC3CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sCAAsC,CAC5CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oCAAoC,CAC1CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2DAA2D,CACjEC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oCAAoC,CAC1CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uCAAuC,CAC7CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wCAAwC,CAC9CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oCAAoC,CAC1CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yCAAyC,CAC/CC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oCAAoC,CAC1CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qCAAqC,CAC3CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sCAAsC,CAC5CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+CAA+C,CACrDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yDAAyD,CAC/DC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yCAAyC,CAC/CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2CAA2C,CACjDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+CAA+C,CACrDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2CAA2C,CACjDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+CAA+C,CACrDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2CAA2C,CACjDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yCAAyC,CAC/CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6CAA6C,CACnDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oCAAoC,CAC1CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sCAAsC,CAC5CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4CAA4C,CAClDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qCAAqC,CAC3CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oCAAoC,CAC1CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4CAA4C,CAClDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sCAAsC,CAC5CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qCAAqC,CAC3CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qCAAqC,CAC3CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0CAA0C,CAChDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iDAAiD,CACvDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8CAA8C,CACpDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qCAAqC,CAC3CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qCAAqC,CAC3CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8CAA8C,CACpDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wCAAwC,CAC9CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2CAA2C,CACjDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qCAAqC,CAC3CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wCAAwC,CAC9CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oCAAoC,CAC1CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6CAA6C,CACnDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8CAA8C,CACpDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uCAAuC,CAC7CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+CAA+C,CACrDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8CAA8C,CACpDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0CAA0C,CAChDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wCAAwC,CAC9CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qCAAqC,CAC3CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uCAAuC,CAC7CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wCAAwC,CAC9CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,aACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,aACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,aACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,aACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,aACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,aACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,aACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,aACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,aACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,aACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,aACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,aACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,aACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,aACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,aACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,aACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,aACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,aACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,MAAM,CACZC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,aACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,aACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,aACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,aACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,aACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,aACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,aACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,aACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,aACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,aACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,aACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,aACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,aACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,aACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,aACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,aACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,aACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oCAAoC,CAC1CC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,aACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,aACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,aACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,aACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,aACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,aACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,aACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,aACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,aACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,aACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,aACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,aACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,aACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,aACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,aACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,aACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,aACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,aACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,aACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,aACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,aACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,aACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,aACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,aACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,aACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,aACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,aACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,aACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,aACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,aACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,aACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,aACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,aACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,aACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,aACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uCAAuC,CAC7CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,aACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oCAAoC,CAC1CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,aACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,aACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,aACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,aACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,aACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,aACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,aACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,aACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,aACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,aACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,aACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,aACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,aACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,aACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,aACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oDAAoD,CAC1DC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4CAA4C,CAClDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2CAA2C,CACjDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yCAAyC,CAC/CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qCAAqC,CAC3CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qDAAqD,CAC3DC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qCAAqC,CAC3CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uCAAuC,CAC7CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wCAAwC,CAC9CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yCAAyC,CAC/CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+CAA+C,CACrDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0DAA0D,CAChEC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oCAAoC,CAC1CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6CAA6C,CACnDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qCAAqC,CAC3CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oCAAoC,CAC1CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uCAAuC,CAC7CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uCAAuC,CAC7CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2CAA2C,CACjDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0CAA0C,CAChDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qCAAqC,CAC3CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qCAAqC,CAC3CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uDAAuD,CAC7DC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oCAAoC,CAC1CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oCAAoC,CAC1CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yCAAyC,CAC/CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oCAAoC,CAC1CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sCAAsC,CAC5CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wCAAwC,CAC9CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oCAAoC,CAC1CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qCAAqC,CAC3CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wCAAwC,CAC9CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sCAAsC,CAC5CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oCAAoC,CAC1CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0CAA0C,CAChDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qCAAqC,CAC3CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sCAAsC,CAC5CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wCAAwC,CAC9CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yCAAyC,CAC/CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yCAAyC,CAC/CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0CAA0C,CAChDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2CAA2C,CACjDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qCAAqC,CAC3CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2CAA2C,CACjDC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,kBAAkB,CAAE,CAChBH,GAAG,CAAE,kBAAkB,CACvBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,kBAAkB,CAAE,CAChBH,GAAG,CAAE,kBAAkB,CACvBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,kBAAkB,CAAE,CAChBH,GAAG,CAAE,kBAAkB,CACvBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,kBAAkB,CAAE,CAChBH,GAAG,CAAE,kBAAkB,CACvBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,kBAAkB,CAAE,CAChBH,GAAG,CAAE,kBAAkB,CACvBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,kBAAkB,CAAE,CAChBH,GAAG,CAAE,kBAAkB,CACvBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,kBAAkB,CAAE,CAChBH,GAAG,CAAE,kBAAkB,CACvBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,kBAAkB,CAAE,CAChBH,GAAG,CAAE,kBAAkB,CACvBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,kBAAkB,CAAE,CAChBH,GAAG,CAAE,kBAAkB,CACvBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,kBAAkB,CAAE,CAChBH,GAAG,CAAE,kBAAkB,CACvBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,kBAAkB,CAAE,CAChBH,GAAG,CAAE,kBAAkB,CACvBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,kBAAkB,CAAE,CAChBH,GAAG,CAAE,kBAAkB,CACvBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,kBAAkB,CAAE,CAChBH,GAAG,CAAE,kBAAkB,CACvBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,kBAAkB,CAAE,CAChBH,GAAG,CAAE,kBAAkB,CACvBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,kBAAkB,CAAE,CAChBH,GAAG,CAAE,kBAAkB,CACvBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,kBAAkB,CAAE,CAChBH,GAAG,CAAE,kBAAkB,CACvBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,MAAM,CACZC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,OACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2CAA2C,CACjDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,gBACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,gBACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,gBACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,gBACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,gBACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0CAA0C,CAChDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,gBACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,gBACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,gBACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,MAAM,CACZC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,gBACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,gBACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,gBACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,gBACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,gBACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,gBACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,gBACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,gBACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,gBACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,gBACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,gBACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,gBACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,gBACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,gBACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,gBACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,gBACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,gBACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,gBACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,gBACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,gBACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,gBACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,gBACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kDAAkD,CACxDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,gBACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,gBACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,gBACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,gBACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8CAA8C,CACpDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,gBACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,gBACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,gBACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,gBACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,gBACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qCAAqC,CAC3CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,gBACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,gBACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+CAA+C,CACrDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,gBACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,gBACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,gBACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,gBACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,gBACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,gBACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,SACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,SACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,SACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,SACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,SACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,SACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0CAA0C,CAChDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,SACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2CAA2C,CACjDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,SACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,OAAO,CACbC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,SACb,CAAC,CACD,oBAAoB,CAAE,CAClBH,GAAG,CAAE,oBAAoB,CACzBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,SACb,CAAC,CACD,2BAA2B,CAAE,CACzBH,GAAG,CAAE,2BAA2B,CAChCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,SACb,CAAC,CACD,oBAAoB,CAAE,CAClBH,GAAG,CAAE,oBAAoB,CACzBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,SACb,CAAC,CACD,2BAA2B,CAAE,CACzBH,GAAG,CAAE,2BAA2B,CAChCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,SACb,CAAC,CACD,oBAAoB,CAAE,CAClBH,GAAG,CAAE,oBAAoB,CACzBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,SACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sCAAsC,CAC5CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oCAAoC,CAC1CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4CAA4C,CAClDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uCAAuC,CAC7CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+CAA+C,CACrDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yDAAyD,CAC/DC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mDAAmD,CACzDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oDAAoD,CAC1DC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6CAA6C,CACnDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8CAA8C,CACpDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+DAA+D,CACrEC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gEAAgE,CACtEC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iEAAiE,CACvEC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4DAA4D,CAClEC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qCAAqC,CAC3CC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6CAA6C,CACnDC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oCAAoC,CAC1CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uCAAuC,CAC7CC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6CAA6C,CACnDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6CAA6C,CACnDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6CAA6C,CACnDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+CAA+C,CACrDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kDAAkD,CACxDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kDAAkD,CACxDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,eACb,CAAC,CACD,kBAAkB,CAAE,CAChBH,GAAG,CAAE,kBAAkB,CACvBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qCAAqC,CAC3CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qCAAqC,CAC3CC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iDAAiD,CACvDC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4DAA4D,CAClEC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4DAA4D,CAClEC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2DAA2D,CACjEC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oCAAoC,CAC1CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wCAAwC,CAC9CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uCAAuC,CAC7CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qCAAqC,CAC3CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wCAAwC,CAC9CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mDAAmD,CACzDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qDAAqD,CAC3DC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oDAAoD,CAC1DC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6CAA6C,CACnDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+CAA+C,CACrDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8CAA8C,CACpDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yCAAyC,CAC/CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oCAAoC,CAC1CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qCAAqC,CAC3CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uCAAuC,CAC7CC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8CAA8C,CACpDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uCAAuC,CAC7CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wCAAwC,CAC9CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yCAAyC,CAC/CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0CAA0C,CAChDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0CAA0C,CAChDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qCAAqC,CAC3CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oCAAoC,CAC1CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oCAAoC,CAC1CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4CAA4C,CAClDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2CAA2C,CACjDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uDAAuD,CAC7DC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uDAAuD,CAC7DC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oDAAoD,CAC1DC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oDAAoD,CAC1DC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sDAAsD,CAC5DC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qDAAqD,CAC3DC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gEAAgE,CACtEC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gEAAgE,CACtEC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qCAAqC,CAC3CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sEAAsE,CAC5EC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iDAAiD,CACvDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oCAAoC,CAC1CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yCAAyC,CAC/CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yCAAyC,CAC/CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yCAAyC,CAC/CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iDAAiD,CACvDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4DAA4D,CAClEC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8CAA8C,CACpDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sCAAsC,CAC5CC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6CAA6C,CACnDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mDAAmD,CACzDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qCAAqC,CAC3CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qCAAqC,CAC3CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wDAAwD,CAC9DC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8CAA8C,CACpDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8CAA8C,CACpDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uCAAuC,CAC7CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gDAAgD,CACtDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wDAAwD,CAC9DC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8CAA8C,CACpDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oCAAoC,CAC1CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uCAAuC,CAC7CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yCAAyC,CAC/CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+CAA+C,CACrDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oCAAoC,CAC1CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wCAAwC,CAC9CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0CAA0C,CAChDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oCAAoC,CAC1CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,MAAM,CACVC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0CAA0C,CAChDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uCAAuC,CAC7CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iDAAiD,CACvDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oCAAoC,CAC1CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sCAAsC,CAC5CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iDAAiD,CACvDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4CAA4C,CAClDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2CAA2C,CACjDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qCAAqC,CAC3CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0CAA0C,CAChDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qCAAqC,CAC3CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6CAA6C,CACnDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iDAAiD,CACvDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gDAAgD,CACtDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qCAAqC,CAC3CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uCAAuC,CAC7CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sCAAsC,CAC5CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uCAAuC,CAC7CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,MAAM,CACVC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qCAAqC,CAC3CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uCAAuC,CAC7CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2CAA2C,CACjDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qCAAqC,CAC3CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wCAAwC,CAC9CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sCAAsC,CAC5CC,EAAE,CAAE,MAAM,CACVC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qCAAqC,CAC3CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2CAA2C,CACjDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mDAAmD,CACzDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qCAAqC,CAC3CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oCAAoC,CAC1CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6CAA6C,CACnDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wCAAwC,CAC9CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wCAAwC,CAC9CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wCAAwC,CAC9CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8CAA8C,CACpDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oCAAoC,CAC1CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4CAA4C,CAClDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sCAAsC,CAC5CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0CAA0C,CAChDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qCAAqC,CAC3CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oCAAoC,CAC1CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oCAAoC,CAC1CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yCAAyC,CAC/CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yCAAyC,CAC/CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wCAAwC,CAC9CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oCAAoC,CAC1CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oCAAoC,CAC1CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0CAA0C,CAChDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4CAA4C,CAClDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6CAA6C,CACnDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yCAAyC,CAC/CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,kBAAkB,CAAE,CAChBH,GAAG,CAAE,kBAAkB,CACvBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,kBAAkB,CAAE,CAChBH,GAAG,CAAE,kBAAkB,CACvBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,kBAAkB,CAAE,CAChBH,GAAG,CAAE,kBAAkB,CACvBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,kBAAkB,CAAE,CAChBH,GAAG,CAAE,kBAAkB,CACvBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,kBAAkB,CAAE,CAChBH,GAAG,CAAE,kBAAkB,CACvBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,eACb,CAAC,CACD,kBAAkB,CAAE,CAChBH,GAAG,CAAE,kBAAkB,CACvBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,eACb,CAAC,CACD,kBAAkB,CAAE,CAChBH,GAAG,CAAE,kBAAkB,CACvBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,kBAAkB,CAAE,CAChBH,GAAG,CAAE,kBAAkB,CACvBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,eACb,CAAC,CACD,kBAAkB,CAAE,CAChBH,GAAG,CAAE,kBAAkB,CACvBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,eACb,CAAC,CACD,kBAAkB,CAAE,CAChBH,GAAG,CAAE,kBAAkB,CACvBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,eACb,CAAC,CACD,kBAAkB,CAAE,CAChBH,GAAG,CAAE,kBAAkB,CACvBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,eACb,CAAC,CACD,kBAAkB,CAAE,CAChBH,GAAG,CAAE,kBAAkB,CACvBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,eACb,CAAC,CACD,kBAAkB,CAAE,CAChBH,GAAG,CAAE,kBAAkB,CACvBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,eACb,CAAC,CACD,kBAAkB,CAAE,CAChBH,GAAG,CAAE,kBAAkB,CACvBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,kBAAkB,CAAE,CAChBH,GAAG,CAAE,kBAAkB,CACvBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,kBAAkB,CAAE,CAChBH,GAAG,CAAE,kBAAkB,CACvBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,kBAAkB,CAAE,CAChBH,GAAG,CAAE,kBAAkB,CACvBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,kBAAkB,CAAE,CAChBH,GAAG,CAAE,kBAAkB,CACvBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,kBAAkB,CAAE,CAChBH,GAAG,CAAE,kBAAkB,CACvBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,kBAAkB,CAAE,CAChBH,GAAG,CAAE,kBAAkB,CACvBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,kBAAkB,CAAE,CAChBH,GAAG,CAAE,kBAAkB,CACvBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,kBAAkB,CAAE,CAChBH,GAAG,CAAE,kBAAkB,CACvBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,kBAAkB,CAAE,CAChBH,GAAG,CAAE,kBAAkB,CACvBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,kBAAkB,CAAE,CAChBH,GAAG,CAAE,kBAAkB,CACvBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wCAAwC,CAC9CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,kBAAkB,CAAE,CAChBH,GAAG,CAAE,kBAAkB,CACvBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qCAAqC,CAC3CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,kBAAkB,CAAE,CAChBH,GAAG,CAAE,kBAAkB,CACvBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,kBAAkB,CAAE,CAChBH,GAAG,CAAE,kBAAkB,CACvBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,kBAAkB,CAAE,CAChBH,GAAG,CAAE,kBAAkB,CACvBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,kBAAkB,CAAE,CAChBH,GAAG,CAAE,kBAAkB,CACvBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,kBAAkB,CAAE,CAChBH,GAAG,CAAE,kBAAkB,CACvBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sCAAsC,CAC5CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,kBAAkB,CAAE,CAChBH,GAAG,CAAE,kBAAkB,CACvBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,kBAAkB,CAAE,CAChBH,GAAG,CAAE,kBAAkB,CACvBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uCAAuC,CAC7CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,kBAAkB,CAAE,CAChBH,GAAG,CAAE,kBAAkB,CACvBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wCAAwC,CAC9CC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,eACb,CAAC,CACD,kBAAkB,CAAE,CAChBH,GAAG,CAAE,kBAAkB,CACvBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,kBAAkB,CAAE,CAChBH,GAAG,CAAE,kBAAkB,CACvBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,kBAAkB,CAAE,CAChBH,GAAG,CAAE,kBAAkB,CACvBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,kBAAkB,CAAE,CAChBH,GAAG,CAAE,kBAAkB,CACvBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,kBAAkB,CAAE,CAChBH,GAAG,CAAE,kBAAkB,CACvBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,eACb,CAAC,CACD,kBAAkB,CAAE,CAChBH,GAAG,CAAE,kBAAkB,CACvBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,kBAAkB,CAAE,CAChBH,GAAG,CAAE,kBAAkB,CACvBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,eACb,CAAC,CACD,kBAAkB,CAAE,CAChBH,GAAG,CAAE,kBAAkB,CACvBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,kBAAkB,CAAE,CAChBH,GAAG,CAAE,kBAAkB,CACvBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,kBAAkB,CAAE,CAChBH,GAAG,CAAE,kBAAkB,CACvBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,kBAAkB,CAAE,CAChBH,GAAG,CAAE,kBAAkB,CACvBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,kBAAkB,CAAE,CAChBH,GAAG,CAAE,kBAAkB,CACvBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,kBAAkB,CAAE,CAChBH,GAAG,CAAE,kBAAkB,CACvBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,eACb,CAAC,CACD,kBAAkB,CAAE,CAChBH,GAAG,CAAE,kBAAkB,CACvBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,eACb,CAAC,CACD,kBAAkB,CAAE,CAChBH,GAAG,CAAE,kBAAkB,CACvBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,eACb,CAAC,CACD,kBAAkB,CAAE,CAChBH,GAAG,CAAE,kBAAkB,CACvBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,eACb,CAAC,CACD,kBAAkB,CAAE,CAChBH,GAAG,CAAE,kBAAkB,CACvBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,aAAa,CAAE,CACXH,GAAG,CAAE,aAAa,CAClBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,kBAAkB,CAAE,CAChBH,GAAG,CAAE,kBAAkB,CACvBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,kBAAkB,CAAE,CAChBH,GAAG,CAAE,kBAAkB,CACvBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,kBAAkB,CAAE,CAChBH,GAAG,CAAE,kBAAkB,CACvBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,kBAAkB,CAAE,CAChBH,GAAG,CAAE,kBAAkB,CACvBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,kBAAkB,CAAE,CAChBH,GAAG,CAAE,kBAAkB,CACvBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,eACb,CAAC,CACD,EAAE,CAAE,CACAH,GAAG,CAAE,EACT,CAAC,CACD,4BAA4B,CAAE,CAC1BA,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,wCAAwC,CAAE,CACtCH,GAAG,CAAE,wCAAwC,CAC7CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,wCAAwC,CAAE,CACtCH,GAAG,CAAE,wCAAwC,CAC7CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,wCAAwC,CAAE,CACtCH,GAAG,CAAE,wCAAwC,CAC7CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oBAAoB,CAAE,CAClBH,GAAG,CAAE,oBAAoB,CACzBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oBAAoB,CAAE,CAClBH,GAAG,CAAE,oBAAoB,CACzBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oBAAoB,CAAE,CAClBH,GAAG,CAAE,oBAAoB,CACzBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oBAAoB,CAAE,CAClBH,GAAG,CAAE,oBAAoB,CACzBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oBAAoB,CAAE,CAClBH,GAAG,CAAE,oBAAoB,CACzBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oBAAoB,CAAE,CAClBH,GAAG,CAAE,oBAAoB,CACzBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oBAAoB,CAAE,CAClBH,GAAG,CAAE,oBAAoB,CACzBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oBAAoB,CAAE,CAClBH,GAAG,CAAE,oBAAoB,CACzBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oBAAoB,CAAE,CAClBH,GAAG,CAAE,oBAAoB,CACzBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oBAAoB,CAAE,CAClBH,GAAG,CAAE,oBAAoB,CACzBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oBAAoB,CAAE,CAClBH,GAAG,CAAE,oBAAoB,CACzBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oBAAoB,CAAE,CAClBH,GAAG,CAAE,oBAAoB,CACzBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oBAAoB,CAAE,CAClBH,GAAG,CAAE,oBAAoB,CACzBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oBAAoB,CAAE,CAClBH,GAAG,CAAE,oBAAoB,CACzBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oBAAoB,CAAE,CAClBH,GAAG,CAAE,oBAAoB,CACzBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oBAAoB,CAAE,CAClBH,GAAG,CAAE,oBAAoB,CACzBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oBAAoB,CAAE,CAClBH,GAAG,CAAE,oBAAoB,CACzBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oBAAoB,CAAE,CAClBH,GAAG,CAAE,oBAAoB,CACzBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oBAAoB,CAAE,CAClBH,GAAG,CAAE,oBAAoB,CACzBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oBAAoB,CAAE,CAClBH,GAAG,CAAE,oBAAoB,CACzBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oBAAoB,CAAE,CAClBH,GAAG,CAAE,oBAAoB,CACzBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oBAAoB,CAAE,CAClBH,GAAG,CAAE,oBAAoB,CACzBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,8BAA8B,CAAE,CAC5BH,GAAG,CAAE,8BAA8B,CACnCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,8BAA8B,CAAE,CAC5BH,GAAG,CAAE,8BAA8B,CACnCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,8BAA8B,CAAE,CAC5BH,GAAG,CAAE,8BAA8B,CACnCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,8BAA8B,CAAE,CAC5BH,GAAG,CAAE,8BAA8B,CACnCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,8BAA8B,CAAE,CAC5BH,GAAG,CAAE,8BAA8B,CACnCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,8BAA8B,CAAE,CAC5BH,GAAG,CAAE,8BAA8B,CACnCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,kBAAkB,CAAE,CAChBH,GAAG,CAAE,kBAAkB,CACvBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kBAAkB,CAAE,CAChBH,GAAG,CAAE,kBAAkB,CACvBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kBAAkB,CAAE,CAChBH,GAAG,CAAE,kBAAkB,CACvBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kBAAkB,CAAE,CAChBH,GAAG,CAAE,kBAAkB,CACvBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kBAAkB,CAAE,CAChBH,GAAG,CAAE,kBAAkB,CACvBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6CAA6C,CAAE,CAC3CH,GAAG,CAAE,6CAA6C,CAClDvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6CAA6C,CAAE,CAC3CH,GAAG,CAAE,6CAA6C,CAClDvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,2BAA2B,CAAE,CACzBH,GAAG,CAAE,2BAA2B,CAChCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,2BAA2B,CAAE,CACzBH,GAAG,CAAE,2BAA2B,CAChCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,2BAA2B,CAAE,CACzBH,GAAG,CAAE,2BAA2B,CAChCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,2BAA2B,CAAE,CACzBH,GAAG,CAAE,2BAA2B,CAChCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,wBAAwB,CAAE,CACtBH,GAAG,CAAE,wBAAwB,CAC7BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,wBAAwB,CAAE,CACtBH,GAAG,CAAE,wBAAwB,CAC7BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,wBAAwB,CAAE,CACtBH,GAAG,CAAE,wBAAwB,CAC7BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,wBAAwB,CAAE,CACtBH,GAAG,CAAE,wBAAwB,CAC7BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,wBAAwB,CAAE,CACtBH,GAAG,CAAE,wBAAwB,CAC7BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,wBAAwB,CAAE,CACtBH,GAAG,CAAE,wBAAwB,CAC7BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,wBAAwB,CAAE,CACtBH,GAAG,CAAE,wBAAwB,CAC7BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,8BAA8B,CAAE,CAC5BH,GAAG,CAAE,8BAA8B,CACnCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,8BAA8B,CAAE,CAC5BH,GAAG,CAAE,8BAA8B,CACnCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,8BAA8B,CAAE,CAC5BH,GAAG,CAAE,8BAA8B,CACnCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,8BAA8B,CAAE,CAC5BH,GAAG,CAAE,8BAA8B,CACnCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,8BAA8B,CAAE,CAC5BH,GAAG,CAAE,8BAA8B,CACnCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,8BAA8B,CAAE,CAC5BH,GAAG,CAAE,8BAA8B,CACnCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,OAAO,CACbC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,KAAK,CACXC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uCAAuC,CAC7CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,OAAO,CACbC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,MAAM,CACZC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,OAAO,CACbC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sBAAsB,CAAE,CACpBH,GAAG,CAAE,sBAAsB,CAC3BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4CAA4C,CAAE,CAC1CH,GAAG,CAAE,4CAA4C,CACjDvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4CAA4C,CAAE,CAC1CH,GAAG,CAAE,4CAA4C,CACjDvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4CAA4C,CAAE,CAC1CH,GAAG,CAAE,4CAA4C,CACjDvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4CAA4C,CAAE,CAC1CH,GAAG,CAAE,4CAA4C,CACjDvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4CAA4C,CAAE,CAC1CH,GAAG,CAAE,4CAA4C,CACjDvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4CAA4C,CAAE,CAC1CH,GAAG,CAAE,4CAA4C,CACjDvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oCAAoC,CAC1CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,MAAM,CACZC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,MAAM,CACZC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,MAAM,CACZC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,MAAM,CACZC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,MAAM,CACZC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,MAAM,CACZC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,MAAM,CACZC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,OAAO,CACbC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,OAAO,CACbC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,OAAO,CACbC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,OAAO,CACbC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,OAAO,CACbC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,OAAO,CACbC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,MAAM,CACZC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,MAAM,CACZC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,MAAM,CACZC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,MAAM,CACZC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,MAAM,CACZC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,MAAM,CACZC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,MAAM,CACZC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,OAAO,CACbC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,OAAO,CACbC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,OAAO,CACbC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,OAAO,CACbC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,OAAO,CACbC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,OAAO,CACbC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,8BAA8B,CAAE,CAC5BH,GAAG,CAAE,8BAA8B,CACnCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oCAAoC,CAC1CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,8BAA8B,CAAE,CAC5BH,GAAG,CAAE,8BAA8B,CACnCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,8BAA8B,CAAE,CAC5BH,GAAG,CAAE,8BAA8B,CACnCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,8BAA8B,CAAE,CAC5BH,GAAG,CAAE,8BAA8B,CACnCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,8BAA8B,CAAE,CAC5BH,GAAG,CAAE,8BAA8B,CACnCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,8BAA8B,CAAE,CAC5BH,GAAG,CAAE,8BAA8B,CACnCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,8BAA8B,CAAE,CAC5BH,GAAG,CAAE,8BAA8B,CACnCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,8BAA8B,CAAE,CAC5BH,GAAG,CAAE,8BAA8B,CACnCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,8BAA8B,CAAE,CAC5BH,GAAG,CAAE,8BAA8B,CACnCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,8BAA8B,CAAE,CAC5BH,GAAG,CAAE,8BAA8B,CACnCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,8BAA8B,CAAE,CAC5BH,GAAG,CAAE,8BAA8B,CACnCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,8BAA8B,CAAE,CAC5BH,GAAG,CAAE,8BAA8B,CACnCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,8BAA8B,CAAE,CAC5BH,GAAG,CAAE,8BAA8B,CACnCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2CAA2C,CACjDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,8BAA8B,CAAE,CAC5BH,GAAG,CAAE,8BAA8B,CACnCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8CAA8C,CACpDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,8BAA8B,CAAE,CAC5BH,GAAG,CAAE,8BAA8B,CACnCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,8BAA8B,CAAE,CAC5BH,GAAG,CAAE,8BAA8B,CACnCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,8BAA8B,CAAE,CAC5BH,GAAG,CAAE,8BAA8B,CACnCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,8BAA8B,CAAE,CAC5BH,GAAG,CAAE,8BAA8B,CACnCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,8BAA8B,CAAE,CAC5BH,GAAG,CAAE,8BAA8B,CACnCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,8BAA8B,CAAE,CAC5BH,GAAG,CAAE,8BAA8B,CACnCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,8BAA8B,CAAE,CAC5BH,GAAG,CAAE,8BAA8B,CACnCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,8BAA8B,CAAE,CAC5BH,GAAG,CAAE,8BAA8B,CACnCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,8BAA8B,CAAE,CAC5BH,GAAG,CAAE,8BAA8B,CACnCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,8BAA8B,CAAE,CAC5BH,GAAG,CAAE,8BAA8B,CACnCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oCAAoC,CAC1CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,8BAA8B,CAAE,CAC5BH,GAAG,CAAE,8BAA8B,CACnCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,8BAA8B,CAAE,CAC5BH,GAAG,CAAE,8BAA8B,CACnCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,8BAA8B,CAAE,CAC5BH,GAAG,CAAE,8BAA8B,CACnCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,8BAA8B,CAAE,CAC5BH,GAAG,CAAE,8BAA8B,CACnCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,8BAA8B,CAAE,CAC5BH,GAAG,CAAE,8BAA8B,CACnCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,8BAA8B,CAAE,CAC5BH,GAAG,CAAE,8BAA8B,CACnCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,8BAA8B,CAAE,CAC5BH,GAAG,CAAE,8BAA8B,CACnCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,8BAA8B,CAAE,CAC5BH,GAAG,CAAE,8BAA8B,CACnCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,8BAA8B,CAAE,CAC5BH,GAAG,CAAE,8BAA8B,CACnCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,8BAA8B,CAAE,CAC5BH,GAAG,CAAE,8BAA8B,CACnCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,8BAA8B,CAAE,CAC5BH,GAAG,CAAE,8BAA8B,CACnCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,8BAA8B,CAAE,CAC5BH,GAAG,CAAE,8BAA8B,CACnCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,8BAA8B,CAAE,CAC5BH,GAAG,CAAE,8BAA8B,CACnCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,8BAA8B,CAAE,CAC5BH,GAAG,CAAE,8BAA8B,CACnCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,8BAA8B,CAAE,CAC5BH,GAAG,CAAE,8BAA8B,CACnCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,8BAA8B,CAAE,CAC5BH,GAAG,CAAE,8BAA8B,CACnCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,8BAA8B,CAAE,CAC5BH,GAAG,CAAE,8BAA8B,CACnCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,8BAA8B,CAAE,CAC5BH,GAAG,CAAE,8BAA8B,CACnCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,8BAA8B,CAAE,CAC5BH,GAAG,CAAE,8BAA8B,CACnCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,8BAA8B,CAAE,CAC5BH,GAAG,CAAE,8BAA8B,CACnCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,8BAA8B,CAAE,CAC5BH,GAAG,CAAE,8BAA8B,CACnCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,8BAA8B,CAAE,CAC5BH,GAAG,CAAE,8BAA8B,CACnCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,8BAA8B,CAAE,CAC5BH,GAAG,CAAE,8BAA8B,CACnCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,8BAA8B,CAAE,CAC5BH,GAAG,CAAE,8BAA8B,CACnCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,8BAA8B,CAAE,CAC5BH,GAAG,CAAE,8BAA8B,CACnCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,8BAA8B,CAAE,CAC5BH,GAAG,CAAE,8BAA8B,CACnCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,8BAA8B,CAAE,CAC5BH,GAAG,CAAE,8BAA8B,CACnCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,8BAA8B,CAAE,CAC5BH,GAAG,CAAE,8BAA8B,CACnCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,8BAA8B,CAAE,CAC5BH,GAAG,CAAE,8BAA8B,CACnCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,8BAA8B,CAAE,CAC5BH,GAAG,CAAE,8BAA8B,CACnCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,8BAA8B,CAAE,CAC5BH,GAAG,CAAE,8BAA8B,CACnCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,8BAA8B,CAAE,CAC5BH,GAAG,CAAE,8BAA8B,CACnCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,8BAA8B,CAAE,CAC5BH,GAAG,CAAE,8BAA8B,CACnCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,wBAAwB,CAAE,CACtBH,GAAG,CAAE,wBAAwB,CAC7BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,wBAAwB,CAAE,CACtBH,GAAG,CAAE,wBAAwB,CAC7BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,wBAAwB,CAAE,CACtBH,GAAG,CAAE,wBAAwB,CAC7BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,wBAAwB,CAAE,CACtBH,GAAG,CAAE,wBAAwB,CAC7BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,wBAAwB,CAAE,CACtBH,GAAG,CAAE,wBAAwB,CAC7BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,wBAAwB,CAAE,CACtBH,GAAG,CAAE,wBAAwB,CAC7BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,KAAK,CACXC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,QAAQ,CACdC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,QAAQ,CACdC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,IAAI,CACRC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qCAAqC,CAC3CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sCAAsC,CAC5CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,MAAM,CACVC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sCAAsC,CAC5CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,KAAK,CACXC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,QAAQ,CACdC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wCAAwC,CAC9CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qCAAqC,CAC3CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wCAAwC,CAC9CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oCAAoC,CAC1CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,uCAAuC,CAAE,CACrCH,GAAG,CAAE,uCAAuC,CAC5CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,uCAAuC,CAAE,CACrCH,GAAG,CAAE,uCAAuC,CAC5CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,uCAAuC,CAAE,CACrCH,GAAG,CAAE,uCAAuC,CAC5CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,uCAAuC,CAAE,CACrCH,GAAG,CAAE,uCAAuC,CAC5CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,uCAAuC,CAAE,CACrCH,GAAG,CAAE,uCAAuC,CAC5CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,uCAAuC,CAAE,CACrCH,GAAG,CAAE,uCAAuC,CAC5CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,uCAAuC,CAAE,CACrCH,GAAG,CAAE,uCAAuC,CAC5CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,uCAAuC,CAAE,CACrCH,GAAG,CAAE,uCAAuC,CAC5CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,uCAAuC,CAAE,CACrCH,GAAG,CAAE,uCAAuC,CAC5CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,uCAAuC,CAAE,CACrCH,GAAG,CAAE,uCAAuC,CAC5CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,uCAAuC,CAAE,CACrCH,GAAG,CAAE,uCAAuC,CAC5CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,uCAAuC,CAAE,CACrCH,GAAG,CAAE,uCAAuC,CAC5CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,uCAAuC,CAAE,CACrCH,GAAG,CAAE,uCAAuC,CAC5CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,uCAAuC,CAAE,CACrCH,GAAG,CAAE,uCAAuC,CAC5CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,uCAAuC,CAAE,CACrCH,GAAG,CAAE,uCAAuC,CAC5CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,uCAAuC,CAAE,CACrCH,GAAG,CAAE,uCAAuC,CAC5CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,uCAAuC,CAAE,CACrCH,GAAG,CAAE,uCAAuC,CAC5CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,uCAAuC,CAAE,CACrCH,GAAG,CAAE,uCAAuC,CAC5CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,uCAAuC,CAAE,CACrCH,GAAG,CAAE,uCAAuC,CAC5CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,uCAAuC,CAAE,CACrCH,GAAG,CAAE,uCAAuC,CAC5CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,wBAAwB,CAAE,CACtBH,GAAG,CAAE,wBAAwB,CAC7BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,wBAAwB,CAAE,CACtBH,GAAG,CAAE,wBAAwB,CAC7BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,wBAAwB,CAAE,CACtBH,GAAG,CAAE,wBAAwB,CAC7BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iBAAiB,CAAE,CACfH,GAAG,CAAE,iBAAiB,CACtBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sCAAsC,CAAE,CACpCH,GAAG,CAAE,sCAAsC,CAC3CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,wCAAwC,CAAE,CACtCH,GAAG,CAAE,wCAAwC,CAC7CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,wCAAwC,CAAE,CACtCH,GAAG,CAAE,wCAAwC,CAC7CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,wCAAwC,CAAE,CACtCH,GAAG,CAAE,wCAAwC,CAC7CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,wCAAwC,CAAE,CACtCH,GAAG,CAAE,wCAAwC,CAC7CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yBAAyB,CAAE,CACvBH,GAAG,CAAE,yBAAyB,CAC9BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yBAAyB,CAAE,CACvBH,GAAG,CAAE,yBAAyB,CAC9BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yBAAyB,CAAE,CACvBH,GAAG,CAAE,yBAAyB,CAC9BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yBAAyB,CAAE,CACvBH,GAAG,CAAE,yBAAyB,CAC9BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yBAAyB,CAAE,CACvBH,GAAG,CAAE,yBAAyB,CAC9BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yBAAyB,CAAE,CACvBH,GAAG,CAAE,yBAAyB,CAC9BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yBAAyB,CAAE,CACvBH,GAAG,CAAE,yBAAyB,CAC9BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yBAAyB,CAAE,CACvBH,GAAG,CAAE,yBAAyB,CAC9BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yBAAyB,CAAE,CACvBH,GAAG,CAAE,yBAAyB,CAC9BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yBAAyB,CAAE,CACvBH,GAAG,CAAE,yBAAyB,CAC9BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yBAAyB,CAAE,CACvBH,GAAG,CAAE,yBAAyB,CAC9BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,yBAAyB,CAAE,CACvBH,GAAG,CAAE,yBAAyB,CAC9BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yBAAyB,CAAE,CACvBH,GAAG,CAAE,yBAAyB,CAC9BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yBAAyB,CAAE,CACvBH,GAAG,CAAE,yBAAyB,CAC9BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,OAAO,CACbC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qBAAqB,CAAE,CACnBH,GAAG,CAAE,qBAAqB,CAC1BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qBAAqB,CAAE,CACnBH,GAAG,CAAE,qBAAqB,CAC1BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qBAAqB,CAAE,CACnBH,GAAG,CAAE,qBAAqB,CAC1BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qBAAqB,CAAE,CACnBH,GAAG,CAAE,qBAAqB,CAC1BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,qBAAqB,CAAE,CACnBH,GAAG,CAAE,qBAAqB,CAC1BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qBAAqB,CAAE,CACnBH,GAAG,CAAE,qBAAqB,CAC1BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qBAAqB,CAAE,CACnBH,GAAG,CAAE,qBAAqB,CAC1BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qBAAqB,CAAE,CACnBH,GAAG,CAAE,qBAAqB,CAC1BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qBAAqB,CAAE,CACnBH,GAAG,CAAE,qBAAqB,CAC1BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qBAAqB,CAAE,CACnBH,GAAG,CAAE,qBAAqB,CAC1BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qBAAqB,CAAE,CACnBH,GAAG,CAAE,qBAAqB,CAC1BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qBAAqB,CAAE,CACnBH,GAAG,CAAE,qBAAqB,CAC1BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,qBAAqB,CAAE,CACnBH,GAAG,CAAE,qBAAqB,CAC1BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qBAAqB,CAAE,CACnBH,GAAG,CAAE,qBAAqB,CAC1BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qBAAqB,CAAE,CACnBH,GAAG,CAAE,qBAAqB,CAC1BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qBAAqB,CAAE,CACnBH,GAAG,CAAE,qBAAqB,CAC1BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,qBAAqB,CAAE,CACnBH,GAAG,CAAE,qBAAqB,CAC1BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,qBAAqB,CAAE,CACnBH,GAAG,CAAE,qBAAqB,CAC1BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,qBAAqB,CAAE,CACnBH,GAAG,CAAE,qBAAqB,CAC1BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,qBAAqB,CAAE,CACnBH,GAAG,CAAE,qBAAqB,CAC1BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,qBAAqB,CAAE,CACnBH,GAAG,CAAE,qBAAqB,CAC1BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,qBAAqB,CAAE,CACnBH,GAAG,CAAE,qBAAqB,CAC1BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,qBAAqB,CAAE,CACnBH,GAAG,CAAE,qBAAqB,CAC1BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,MAAM,CACZC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oCAAoC,CAC1CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,MAAM,CACZC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oCAAoC,CAC1CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,uCAAuC,CAAE,CACrCH,GAAG,CAAE,uCAAuC,CAC5CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,uCAAuC,CAAE,CACrCH,GAAG,CAAE,uCAAuC,CAC5CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,uCAAuC,CAAE,CACrCH,GAAG,CAAE,uCAAuC,CAC5CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,uCAAuC,CAAE,CACrCH,GAAG,CAAE,uCAAuC,CAC5CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,uCAAuC,CAAE,CACrCH,GAAG,CAAE,uCAAuC,CAC5CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,uCAAuC,CAAE,CACrCH,GAAG,CAAE,uCAAuC,CAC5CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,uCAAuC,CAAE,CACrCH,GAAG,CAAE,uCAAuC,CAC5CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,uCAAuC,CAAE,CACrCH,GAAG,CAAE,uCAAuC,CAC5CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,uCAAuC,CAAE,CACrCH,GAAG,CAAE,uCAAuC,CAC5CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,uCAAuC,CAAE,CACrCH,GAAG,CAAE,uCAAuC,CAC5CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,uCAAuC,CAAE,CACrCH,GAAG,CAAE,uCAAuC,CAC5CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,uCAAuC,CAAE,CACrCH,GAAG,CAAE,uCAAuC,CAC5CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,uCAAuC,CAAE,CACrCH,GAAG,CAAE,uCAAuC,CAC5CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,uCAAuC,CAAE,CACrCH,GAAG,CAAE,uCAAuC,CAC5CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,uCAAuC,CAAE,CACrCH,GAAG,CAAE,uCAAuC,CAC5CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,uCAAuC,CAAE,CACrCH,GAAG,CAAE,uCAAuC,CAC5CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,uCAAuC,CAAE,CACrCH,GAAG,CAAE,uCAAuC,CAC5CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,uCAAuC,CAAE,CACrCH,GAAG,CAAE,uCAAuC,CAC5CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,uCAAuC,CAAE,CACrCH,GAAG,CAAE,uCAAuC,CAC5CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,uCAAuC,CAAE,CACrCH,GAAG,CAAE,uCAAuC,CAC5CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,uCAAuC,CAAE,CACrCH,GAAG,CAAE,uCAAuC,CAC5CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,wBAAwB,CAAE,CACtBH,GAAG,CAAE,wBAAwB,CAC7BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,wBAAwB,CAAE,CACtBH,GAAG,CAAE,wBAAwB,CAC7BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,MAAM,CACZC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,OAAO,CACbC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,OAAO,CACbC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4CAA4C,CAClDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0BAA0B,CAAE,CACxBH,GAAG,CAAE,0BAA0B,CAC/BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qCAAqC,CAAE,CACnCH,GAAG,CAAE,qCAAqC,CAC1CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qCAAqC,CAAE,CACnCH,GAAG,CAAE,qCAAqC,CAC1CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,KAAK,CACXC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,QAAQ,CACdC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sCAAsC,CAC5CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wCAAwC,CAC9CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,2BAA2B,CAAE,CACzBH,GAAG,CAAE,2BAA2B,CAChCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,2BAA2B,CAAE,CACzBH,GAAG,CAAE,2BAA2B,CAChCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,KAAK,CACXC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,MAAM,CACZC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,MAAM,CACZC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,QAAQ,CACdC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yBAAyB,CAAE,CACvBH,GAAG,CAAE,yBAAyB,CAC9BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yBAAyB,CAAE,CACvBH,GAAG,CAAE,yBAAyB,CAC9BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yBAAyB,CAAE,CACvBH,GAAG,CAAE,yBAAyB,CAC9BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yBAAyB,CAAE,CACvBH,GAAG,CAAE,yBAAyB,CAC9BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yBAAyB,CAAE,CACvBH,GAAG,CAAE,yBAAyB,CAC9BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yBAAyB,CAAE,CACvBH,GAAG,CAAE,yBAAyB,CAC9BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yBAAyB,CAAE,CACvBH,GAAG,CAAE,yBAAyB,CAC9BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yBAAyB,CAAE,CACvBH,GAAG,CAAE,yBAAyB,CAC9BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yBAAyB,CAAE,CACvBH,GAAG,CAAE,yBAAyB,CAC9BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yBAAyB,CAAE,CACvBH,GAAG,CAAE,yBAAyB,CAC9BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yBAAyB,CAAE,CACvBH,GAAG,CAAE,yBAAyB,CAC9BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yBAAyB,CAAE,CACvBH,GAAG,CAAE,yBAAyB,CAC9BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,QAAQ,CACdC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yBAAyB,CAAE,CACvBH,GAAG,CAAE,yBAAyB,CAC9BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yBAAyB,CAAE,CACvBH,GAAG,CAAE,yBAAyB,CAC9BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yBAAyB,CAAE,CACvBH,GAAG,CAAE,yBAAyB,CAC9BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yBAAyB,CAAE,CACvBH,GAAG,CAAE,yBAAyB,CAC9BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yBAAyB,CAAE,CACvBH,GAAG,CAAE,yBAAyB,CAC9BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yBAAyB,CAAE,CACvBH,GAAG,CAAE,yBAAyB,CAC9BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yBAAyB,CAAE,CACvBH,GAAG,CAAE,yBAAyB,CAC9BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yBAAyB,CAAE,CACvBH,GAAG,CAAE,yBAAyB,CAC9BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yBAAyB,CAAE,CACvBH,GAAG,CAAE,yBAAyB,CAC9BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yBAAyB,CAAE,CACvBH,GAAG,CAAE,yBAAyB,CAC9BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yBAAyB,CAAE,CACvBH,GAAG,CAAE,yBAAyB,CAC9BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yBAAyB,CAAE,CACvBH,GAAG,CAAE,yBAAyB,CAC9BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yBAAyB,CAAE,CACvBH,GAAG,CAAE,yBAAyB,CAC9BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yBAAyB,CAAE,CACvBH,GAAG,CAAE,yBAAyB,CAC9BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yBAAyB,CAAE,CACvBH,GAAG,CAAE,yBAAyB,CAC9BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yBAAyB,CAAE,CACvBH,GAAG,CAAE,yBAAyB,CAC9BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yBAAyB,CAAE,CACvBH,GAAG,CAAE,yBAAyB,CAC9BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yBAAyB,CAAE,CACvBH,GAAG,CAAE,yBAAyB,CAC9BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yBAAyB,CAAE,CACvBH,GAAG,CAAE,yBAAyB,CAC9BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,QAAQ,CACdC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yBAAyB,CAAE,CACvBH,GAAG,CAAE,yBAAyB,CAC9BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yBAAyB,CAAE,CACvBH,GAAG,CAAE,yBAAyB,CAC9BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yBAAyB,CAAE,CACvBH,GAAG,CAAE,yBAAyB,CAC9BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yBAAyB,CAAE,CACvBH,GAAG,CAAE,yBAAyB,CAC9BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yBAAyB,CAAE,CACvBH,GAAG,CAAE,yBAAyB,CAC9BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yBAAyB,CAAE,CACvBH,GAAG,CAAE,yBAAyB,CAC9BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yBAAyB,CAAE,CACvBH,GAAG,CAAE,yBAAyB,CAC9BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yBAAyB,CAAE,CACvBH,GAAG,CAAE,yBAAyB,CAC9BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yBAAyB,CAAE,CACvBH,GAAG,CAAE,yBAAyB,CAC9BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yBAAyB,CAAE,CACvBH,GAAG,CAAE,yBAAyB,CAC9BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yBAAyB,CAAE,CACvBH,GAAG,CAAE,yBAAyB,CAC9BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yBAAyB,CAAE,CACvBH,GAAG,CAAE,yBAAyB,CAC9BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yBAAyB,CAAE,CACvBH,GAAG,CAAE,yBAAyB,CAC9BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yBAAyB,CAAE,CACvBH,GAAG,CAAE,yBAAyB,CAC9BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yBAAyB,CAAE,CACvBH,GAAG,CAAE,yBAAyB,CAC9BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yBAAyB,CAAE,CACvBH,GAAG,CAAE,yBAAyB,CAC9BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yBAAyB,CAAE,CACvBH,GAAG,CAAE,yBAAyB,CAC9BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yBAAyB,CAAE,CACvBH,GAAG,CAAE,yBAAyB,CAC9BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yBAAyB,CAAE,CACvBH,GAAG,CAAE,yBAAyB,CAC9BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,MAAM,CACZC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yBAAyB,CAAE,CACvBH,GAAG,CAAE,yBAAyB,CAC9BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,QAAQ,CACdC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yBAAyB,CAAE,CACvBH,GAAG,CAAE,yBAAyB,CAC9BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yBAAyB,CAAE,CACvBH,GAAG,CAAE,yBAAyB,CAC9BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yBAAyB,CAAE,CACvBH,GAAG,CAAE,yBAAyB,CAC9BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,OAAO,CACbC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yBAAyB,CAAE,CACvBH,GAAG,CAAE,yBAAyB,CAC9BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,QAAQ,CACdC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yBAAyB,CAAE,CACvBH,GAAG,CAAE,yBAAyB,CAC9BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,OAAO,CACbC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oCAAoC,CAAE,CAClCH,GAAG,CAAE,oCAAoC,CACzCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+CAA+C,CACrDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yCAAyC,CAC/CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qCAAqC,CAC3CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0CAA0C,CAChDC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gDAAgD,CACtDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0CAA0C,CAChDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sCAAsC,CAC5CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kDAAkD,CACxDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4CAA4C,CAClDC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,IAAI,CACRC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,IAAI,CACRC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,4BAA4B,CAAE,CAC1BH,GAAG,CAAE,4BAA4B,CACjCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,MAAM,CACZC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yBAAyB,CAAE,CACvBH,GAAG,CAAE,yBAAyB,CAC9BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yBAAyB,CAAE,CACvBH,GAAG,CAAE,yBAAyB,CAC9BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yBAAyB,CAAE,CACvBH,GAAG,CAAE,yBAAyB,CAC9BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yBAAyB,CAAE,CACvBH,GAAG,CAAE,yBAAyB,CAC9BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yBAAyB,CAAE,CACvBH,GAAG,CAAE,yBAAyB,CAC9BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yBAAyB,CAAE,CACvBH,GAAG,CAAE,yBAAyB,CAC9BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yBAAyB,CAAE,CACvBH,GAAG,CAAE,yBAAyB,CAC9BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yBAAyB,CAAE,CACvBH,GAAG,CAAE,yBAAyB,CAC9BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yBAAyB,CAAE,CACvBH,GAAG,CAAE,yBAAyB,CAC9BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yBAAyB,CAAE,CACvBH,GAAG,CAAE,yBAAyB,CAC9BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yBAAyB,CAAE,CACvBH,GAAG,CAAE,yBAAyB,CAC9BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yBAAyB,CAAE,CACvBH,GAAG,CAAE,yBAAyB,CAC9BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yBAAyB,CAAE,CACvBH,GAAG,CAAE,yBAAyB,CAC9BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qCAAqC,CAAE,CACnCH,GAAG,CAAE,qCAAqC,CAC1CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qCAAqC,CAAE,CACnCH,GAAG,CAAE,qCAAqC,CAC1CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qCAAqC,CAAE,CACnCH,GAAG,CAAE,qCAAqC,CAC1CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qCAAqC,CAAE,CACnCH,GAAG,CAAE,qCAAqC,CAC1CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qCAAqC,CAAE,CACnCH,GAAG,CAAE,qCAAqC,CAC1CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qCAAqC,CAAE,CACnCH,GAAG,CAAE,qCAAqC,CAC1CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,MAAM,CACZC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qCAAqC,CAAE,CACnCH,GAAG,CAAE,qCAAqC,CAC1CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qCAAqC,CAAE,CACnCH,GAAG,CAAE,qCAAqC,CAC1CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qCAAqC,CAAE,CACnCH,GAAG,CAAE,qCAAqC,CAC1CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qCAAqC,CAAE,CACnCH,GAAG,CAAE,qCAAqC,CAC1CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qCAAqC,CAAE,CACnCH,GAAG,CAAE,qCAAqC,CAC1CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qCAAqC,CAAE,CACnCH,GAAG,CAAE,qCAAqC,CAC1CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qCAAqC,CAAE,CACnCH,GAAG,CAAE,qCAAqC,CAC1CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,MAAM,CACVC,OAAO,CAAE,YACb,CAAC,CACD,qCAAqC,CAAE,CACnCH,GAAG,CAAE,qCAAqC,CAC1CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qCAAqC,CAAE,CACnCH,GAAG,CAAE,qCAAqC,CAC1CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,MAAM,CACVC,OAAO,CAAE,YACb,CAAC,CACD,qCAAqC,CAAE,CACnCH,GAAG,CAAE,qCAAqC,CAC1CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qCAAqC,CAAE,CACnCH,GAAG,CAAE,qCAAqC,CAC1CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qCAAqC,CAAE,CACnCH,GAAG,CAAE,qCAAqC,CAC1CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,qCAAqC,CAAE,CACnCH,GAAG,CAAE,qCAAqC,CAC1CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qCAAqC,CAAE,CACnCH,GAAG,CAAE,qCAAqC,CAC1CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qCAAqC,CAAE,CACnCH,GAAG,CAAE,qCAAqC,CAC1CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qCAAqC,CAAE,CACnCH,GAAG,CAAE,qCAAqC,CAC1CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qCAAqC,CAAE,CACnCH,GAAG,CAAE,qCAAqC,CAC1CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qCAAqC,CAAE,CACnCH,GAAG,CAAE,qCAAqC,CAC1CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qCAAqC,CAAE,CACnCH,GAAG,CAAE,qCAAqC,CAC1CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qCAAqC,CAAE,CACnCH,GAAG,CAAE,qCAAqC,CAC1CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,QAAQ,CACdC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qCAAqC,CAAE,CACnCH,GAAG,CAAE,qCAAqC,CAC1CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qCAAqC,CAAE,CACnCH,GAAG,CAAE,qCAAqC,CAC1CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qCAAqC,CAAE,CACnCH,GAAG,CAAE,qCAAqC,CAC1CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qCAAqC,CAAE,CACnCH,GAAG,CAAE,qCAAqC,CAC1CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,KAAK,CACXC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qCAAqC,CAAE,CACnCH,GAAG,CAAE,qCAAqC,CAC1CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qCAAqC,CAAE,CACnCH,GAAG,CAAE,qCAAqC,CAC1CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qCAAqC,CAAE,CACnCH,GAAG,CAAE,qCAAqC,CAC1CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qCAAqC,CAAE,CACnCH,GAAG,CAAE,qCAAqC,CAC1CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,QAAQ,CACdC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qCAAqC,CAAE,CACnCH,GAAG,CAAE,qCAAqC,CAC1CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qCAAqC,CAAE,CACnCH,GAAG,CAAE,qCAAqC,CAC1CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qCAAqC,CAAE,CACnCH,GAAG,CAAE,qCAAqC,CAC1CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qCAAqC,CAAE,CACnCH,GAAG,CAAE,qCAAqC,CAC1CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qDAAqD,CAAE,CACnDH,GAAG,CAAE,qDAAqD,CAC1DvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qDAAqD,CAAE,CACnDH,GAAG,CAAE,qDAAqD,CAC1DvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qDAAqD,CAAE,CACnDH,GAAG,CAAE,qDAAqD,CAC1DvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qDAAqD,CAAE,CACnDH,GAAG,CAAE,qDAAqD,CAC1DvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qDAAqD,CAAE,CACnDH,GAAG,CAAE,qDAAqD,CAC1DvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qDAAqD,CAAE,CACnDH,GAAG,CAAE,qDAAqD,CAC1DvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qDAAqD,CAAE,CACnDH,GAAG,CAAE,qDAAqD,CAC1DvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qDAAqD,CAAE,CACnDH,GAAG,CAAE,qDAAqD,CAC1DvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qDAAqD,CAAE,CACnDH,GAAG,CAAE,qDAAqD,CAC1DvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qDAAqD,CAAE,CACnDH,GAAG,CAAE,qDAAqD,CAC1DvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,MAAM,CACZC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qDAAqD,CAAE,CACnDH,GAAG,CAAE,qDAAqD,CAC1DvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qDAAqD,CAAE,CACnDH,GAAG,CAAE,qDAAqD,CAC1DvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qDAAqD,CAAE,CACnDH,GAAG,CAAE,qDAAqD,CAC1DvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qDAAqD,CAAE,CACnDH,GAAG,CAAE,qDAAqD,CAC1DvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,qDAAqD,CAAE,CACnDH,GAAG,CAAE,qDAAqD,CAC1DvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qDAAqD,CAAE,CACnDH,GAAG,CAAE,qDAAqD,CAC1DvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mCAAmC,CACzCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qDAAqD,CAAE,CACnDH,GAAG,CAAE,qDAAqD,CAC1DvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qDAAqD,CAAE,CACnDH,GAAG,CAAE,qDAAqD,CAC1DvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,MAAM,CACZC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qDAAqD,CAAE,CACnDH,GAAG,CAAE,qDAAqD,CAC1DvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qDAAqD,CAAE,CACnDH,GAAG,CAAE,qDAAqD,CAC1DvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qDAAqD,CAAE,CACnDH,GAAG,CAAE,qDAAqD,CAC1DvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qDAAqD,CAAE,CACnDH,GAAG,CAAE,qDAAqD,CAC1DvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,uCAAuC,CAAE,CACrCH,GAAG,CAAE,uCAAuC,CAC5CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,uCAAuC,CAAE,CACrCH,GAAG,CAAE,uCAAuC,CAC5CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,uCAAuC,CAAE,CACrCH,GAAG,CAAE,uCAAuC,CAC5CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,uCAAuC,CAAE,CACrCH,GAAG,CAAE,uCAAuC,CAC5CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,uCAAuC,CAAE,CACrCH,GAAG,CAAE,uCAAuC,CAC5CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,uCAAuC,CAAE,CACrCH,GAAG,CAAE,uCAAuC,CAC5CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,uCAAuC,CAAE,CACrCH,GAAG,CAAE,uCAAuC,CAC5CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,uCAAuC,CAAE,CACrCH,GAAG,CAAE,uCAAuC,CAC5CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,uCAAuC,CAAE,CACrCH,GAAG,CAAE,uCAAuC,CAC5CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sCAAsC,CAAE,CACpCH,GAAG,CAAE,sCAAsC,CAC3CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sCAAsC,CAAE,CACpCH,GAAG,CAAE,sCAAsC,CAC3CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sCAAsC,CAAE,CACpCH,GAAG,CAAE,sCAAsC,CAC3CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sCAAsC,CAAE,CACpCH,GAAG,CAAE,sCAAsC,CAC3CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sCAAsC,CAAE,CACpCH,GAAG,CAAE,sCAAsC,CAC3CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,MAAM,CACVC,OAAO,CAAE,YACb,CAAC,CACD,sCAAsC,CAAE,CACpCH,GAAG,CAAE,sCAAsC,CAC3CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sCAAsC,CAAE,CACpCH,GAAG,CAAE,sCAAsC,CAC3CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sCAAsC,CAAE,CACpCH,GAAG,CAAE,sCAAsC,CAC3CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sCAAsC,CAAE,CACpCH,GAAG,CAAE,sCAAsC,CAC3CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sCAAsC,CAAE,CACpCH,GAAG,CAAE,sCAAsC,CAC3CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sCAAsC,CAAE,CACpCH,GAAG,CAAE,sCAAsC,CAC3CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sCAAsC,CAAE,CACpCH,GAAG,CAAE,sCAAsC,CAC3CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sCAAsC,CAAE,CACpCH,GAAG,CAAE,sCAAsC,CAC3CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sCAAsC,CAAE,CACpCH,GAAG,CAAE,sCAAsC,CAC3CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sCAAsC,CAAE,CACpCH,GAAG,CAAE,sCAAsC,CAC3CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sCAAsC,CAAE,CACpCH,GAAG,CAAE,sCAAsC,CAC3CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sCAAsC,CAAE,CACpCH,GAAG,CAAE,sCAAsC,CAC3CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sCAAsC,CAAE,CACpCH,GAAG,CAAE,sCAAsC,CAC3CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,MAAM,CACZC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sCAAsC,CAAE,CACpCH,GAAG,CAAE,sCAAsC,CAC3CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,MAAM,CACZC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sCAAsC,CAAE,CACpCH,GAAG,CAAE,sCAAsC,CAC3CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,MAAM,CACZC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sCAAsC,CAAE,CACpCH,GAAG,CAAE,sCAAsC,CAC3CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sCAAsC,CAAE,CACpCH,GAAG,CAAE,sCAAsC,CAC3CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sCAAsC,CAAE,CACpCH,GAAG,CAAE,sCAAsC,CAC3CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sCAAsC,CAAE,CACpCH,GAAG,CAAE,sCAAsC,CAC3CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sCAAsC,CAAE,CACpCH,GAAG,CAAE,sCAAsC,CAC3CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sCAAsC,CAAE,CACpCH,GAAG,CAAE,sCAAsC,CAC3CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,sCAAsC,CAAE,CACpCH,GAAG,CAAE,sCAAsC,CAC3CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oBAAoB,CAAE,CAClBH,GAAG,CAAE,oBAAoB,CACzBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oBAAoB,CAAE,CAClBH,GAAG,CAAE,oBAAoB,CACzBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oBAAoB,CAAE,CAClBH,GAAG,CAAE,oBAAoB,CACzBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oBAAoB,CAAE,CAClBH,GAAG,CAAE,oBAAoB,CACzBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oBAAoB,CAAE,CAClBH,GAAG,CAAE,oBAAoB,CACzBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oBAAoB,CAAE,CAClBH,GAAG,CAAE,oBAAoB,CACzBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oBAAoB,CAAE,CAClBH,GAAG,CAAE,oBAAoB,CACzBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oBAAoB,CAAE,CAClBH,GAAG,CAAE,oBAAoB,CACzBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,oBAAoB,CAAE,CAClBH,GAAG,CAAE,oBAAoB,CACzBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,2BAA2B,CAAE,CACzBH,GAAG,CAAE,2BAA2B,CAChCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,2BAA2B,CAAE,CACzBH,GAAG,CAAE,2BAA2B,CAChCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,2BAA2B,CAAE,CACzBH,GAAG,CAAE,2BAA2B,CAChCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,2BAA2B,CAAE,CACzBH,GAAG,CAAE,2BAA2B,CAChCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,2BAA2B,CAAE,CACzBH,GAAG,CAAE,2BAA2B,CAChCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,OAAO,CACbC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,2BAA2B,CAAE,CACzBH,GAAG,CAAE,2BAA2B,CAChCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,2BAA2B,CAAE,CACzBH,GAAG,CAAE,2BAA2B,CAChCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,2BAA2B,CAAE,CACzBH,GAAG,CAAE,2BAA2B,CAChCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,2BAA2B,CAAE,CACzBH,GAAG,CAAE,2BAA2B,CAChCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,2BAA2B,CAAE,CACzBH,GAAG,CAAE,2BAA2B,CAChCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,2BAA2B,CAAE,CACzBH,GAAG,CAAE,2BAA2B,CAChCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,2BAA2B,CAAE,CACzBH,GAAG,CAAE,2BAA2B,CAChCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,2BAA2B,CAAE,CACzBH,GAAG,CAAE,2BAA2B,CAChCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,OAAO,CACbC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,2BAA2B,CAAE,CACzBH,GAAG,CAAE,2BAA2B,CAChCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,2BAA2B,CAAE,CACzBH,GAAG,CAAE,2BAA2B,CAChCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,2BAA2B,CAAE,CACzBH,GAAG,CAAE,2BAA2B,CAChCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iBAAiB,CAAE,CACfH,GAAG,CAAE,iBAAiB,CACtBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iBAAiB,CAAE,CACfH,GAAG,CAAE,iBAAiB,CACtBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iBAAiB,CAAE,CACfH,GAAG,CAAE,iBAAiB,CACtBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iBAAiB,CAAE,CACfH,GAAG,CAAE,iBAAiB,CACtBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iBAAiB,CAAE,CACfH,GAAG,CAAE,iBAAiB,CACtBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,OAAO,CACbC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iBAAiB,CAAE,CACfH,GAAG,CAAE,iBAAiB,CACtBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iBAAiB,CAAE,CACfH,GAAG,CAAE,iBAAiB,CACtBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iBAAiB,CAAE,CACfH,GAAG,CAAE,iBAAiB,CACtBvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,QAAQ,CACdC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sCAAsC,CAC5CC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,QAAQ,CACdC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,+BAA+B,CAAE,CAC7BH,GAAG,CAAE,+BAA+B,CACpCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yCAAyC,CAAE,CACvCH,GAAG,CAAE,yCAAyC,CAC9CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yCAAyC,CAAE,CACvCH,GAAG,CAAE,yCAAyC,CAC9CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yCAAyC,CAAE,CACvCH,GAAG,CAAE,yCAAyC,CAC9CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,yCAAyC,CAAE,CACvCH,GAAG,CAAE,yCAAyC,CAC9CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yCAAyC,CAAE,CACvCH,GAAG,CAAE,yCAAyC,CAC9CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yCAAyC,CAAE,CACvCH,GAAG,CAAE,yCAAyC,CAC9CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yCAAyC,CAAE,CACvCH,GAAG,CAAE,yCAAyC,CAC9CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,8BAA8B,CACpCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yCAAyC,CAAE,CACvCH,GAAG,CAAE,yCAAyC,CAC9CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iCAAiC,CACvCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yCAAyC,CAAE,CACvCH,GAAG,CAAE,yCAAyC,CAC9CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gCAAgC,CACtCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yCAAyC,CAAE,CACvCH,GAAG,CAAE,yCAAyC,CAC9CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kCAAkC,CACxCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yCAAyC,CAAE,CACvCH,GAAG,CAAE,yCAAyC,CAC9CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yCAAyC,CAAE,CACvCH,GAAG,CAAE,yCAAyC,CAC9CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yCAAyC,CAAE,CACvCH,GAAG,CAAE,yCAAyC,CAC9CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yCAAyC,CAAE,CACvCH,GAAG,CAAE,yCAAyC,CAC9CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yCAAyC,CAAE,CACvCH,GAAG,CAAE,yCAAyC,CAC9CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yCAAyC,CAAE,CACvCH,GAAG,CAAE,yCAAyC,CAC9CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yCAAyC,CAAE,CACvCH,GAAG,CAAE,yCAAyC,CAC9CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yCAAyC,CAAE,CACvCH,GAAG,CAAE,yCAAyC,CAC9CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yCAAyC,CAAE,CACvCH,GAAG,CAAE,yCAAyC,CAC9CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yCAAyC,CAAE,CACvCH,GAAG,CAAE,yCAAyC,CAC9CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yCAAyC,CAAE,CACvCH,GAAG,CAAE,yCAAyC,CAC9CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yCAAyC,CAAE,CACvCH,GAAG,CAAE,yCAAyC,CAC9CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yCAAyC,CAAE,CACvCH,GAAG,CAAE,yCAAyC,CAC9CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yCAAyC,CAAE,CACvCH,GAAG,CAAE,yCAAyC,CAC9CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yCAAyC,CAAE,CACvCH,GAAG,CAAE,yCAAyC,CAC9CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yCAAyC,CAAE,CACvCH,GAAG,CAAE,yCAAyC,CAC9CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yCAAyC,CAAE,CACvCH,GAAG,CAAE,yCAAyC,CAC9CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yCAAyC,CAAE,CACvCH,GAAG,CAAE,yCAAyC,CAC9CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,2CAA2C,CAAE,CACzCH,GAAG,CAAE,2CAA2C,CAChDvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,2CAA2C,CAAE,CACzCH,GAAG,CAAE,2CAA2C,CAChDvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,2CAA2C,CAAE,CACzCH,GAAG,CAAE,2CAA2C,CAChDvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,2CAA2C,CAAE,CACzCH,GAAG,CAAE,2CAA2C,CAChDvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,2CAA2C,CAAE,CACzCH,GAAG,CAAE,2CAA2C,CAChDvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,2CAA2C,CAAE,CACzCH,GAAG,CAAE,2CAA2C,CAChDvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,2CAA2C,CAAE,CACzCH,GAAG,CAAE,2CAA2C,CAChDvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,2CAA2C,CAAE,CACzCH,GAAG,CAAE,2CAA2C,CAChDvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,2CAA2C,CAAE,CACzCH,GAAG,CAAE,2CAA2C,CAChDvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,2CAA2C,CAAE,CACzCH,GAAG,CAAE,2CAA2C,CAChDvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,2CAA2C,CAAE,CACzCH,GAAG,CAAE,2CAA2C,CAChDvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,2CAA2C,CAAE,CACzCH,GAAG,CAAE,2CAA2C,CAChDvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,2CAA2C,CAAE,CACzCH,GAAG,CAAE,2CAA2C,CAChDvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,2CAA2C,CAAE,CACzCH,GAAG,CAAE,2CAA2C,CAChDvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,2CAA2C,CAAE,CACzCH,GAAG,CAAE,2CAA2C,CAChDvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,2CAA2C,CAAE,CACzCH,GAAG,CAAE,2CAA2C,CAChDvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,2CAA2C,CAAE,CACzCH,GAAG,CAAE,2CAA2C,CAChDvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,2CAA2C,CAAE,CACzCH,GAAG,CAAE,2CAA2C,CAChDvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,2CAA2C,CAAE,CACzCH,GAAG,CAAE,2CAA2C,CAChDvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,2CAA2C,CAAE,CACzCH,GAAG,CAAE,2CAA2C,CAChDvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,2CAA2C,CAAE,CACzCH,GAAG,CAAE,2CAA2C,CAChDvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,2CAA2C,CAAE,CACzCH,GAAG,CAAE,2CAA2C,CAChDvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,2CAA2C,CAAE,CACzCH,GAAG,CAAE,2CAA2C,CAChDvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qCAAqC,CAAE,CACnCH,GAAG,CAAE,qCAAqC,CAC1CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qCAAqC,CAAE,CACnCH,GAAG,CAAE,qCAAqC,CAC1CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qCAAqC,CAAE,CACnCH,GAAG,CAAE,qCAAqC,CAC1CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qCAAqC,CAAE,CACnCH,GAAG,CAAE,qCAAqC,CAC1CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qCAAqC,CAAE,CACnCH,GAAG,CAAE,qCAAqC,CAC1CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,+BAA+B,CACrCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,6BAA6B,CACnCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,0BAA0B,CAChCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,mCAAmC,CAAE,CACjCH,GAAG,CAAE,mCAAmC,CACxCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6CAA6C,CAAE,CAC3CH,GAAG,CAAE,6CAA6C,CAClDvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,2BAA2B,CACjCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,kCAAkC,CAAE,CAChCH,GAAG,CAAE,kCAAkC,CACvCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,4BAA4B,CAClCC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,iCAAiC,CAAE,CAC/BH,GAAG,CAAE,iCAAiC,CACtCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0CAA0C,CAAE,CACxCH,GAAG,CAAE,0CAA0C,CAC/CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0CAA0C,CAAE,CACxCH,GAAG,CAAE,0CAA0C,CAC/CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,0CAA0C,CAAE,CACxCH,GAAG,CAAE,0CAA0C,CAC/CvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yBAAyB,CAAE,CACvBH,GAAG,CAAE,yBAAyB,CAC9BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yBAAyB,CAAE,CACvBH,GAAG,CAAE,yBAAyB,CAC9BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,yBAAyB,CAAE,CACvBH,GAAG,CAAE,yBAAyB,CAC9BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qBAAqB,CAAE,CACnBH,GAAG,CAAE,qBAAqB,CAC1BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qBAAqB,CAAE,CACnBH,GAAG,CAAE,qBAAqB,CAC1BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qBAAqB,CAAE,CACnBH,GAAG,CAAE,qBAAqB,CAC1BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qBAAqB,CAAE,CACnBH,GAAG,CAAE,qBAAqB,CAC1BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qBAAqB,CAAE,CACnBH,GAAG,CAAE,qBAAqB,CAC1BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qBAAqB,CAAE,CACnBH,GAAG,CAAE,qBAAqB,CAC1BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qBAAqB,CAAE,CACnBH,GAAG,CAAE,qBAAqB,CAC1BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qBAAqB,CAAE,CACnBH,GAAG,CAAE,qBAAqB,CAC1BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qBAAqB,CAAE,CACnBH,GAAG,CAAE,qBAAqB,CAC1BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qBAAqB,CAAE,CACnBH,GAAG,CAAE,qBAAqB,CAC1BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qBAAqB,CAAE,CACnBH,GAAG,CAAE,qBAAqB,CAC1BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qBAAqB,CAAE,CACnBH,GAAG,CAAE,qBAAqB,CAC1BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,OAAO,CACbC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qBAAqB,CAAE,CACnBH,GAAG,CAAE,qBAAqB,CAC1BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,OAAO,CACbC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qBAAqB,CAAE,CACnBH,GAAG,CAAE,qBAAqB,CAC1BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qBAAqB,CAAE,CACnBH,GAAG,CAAE,qBAAqB,CAC1BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qBAAqB,CAAE,CACnBH,GAAG,CAAE,qBAAqB,CAC1BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qBAAqB,CAAE,CACnBH,GAAG,CAAE,qBAAqB,CAC1BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qBAAqB,CAAE,CACnBH,GAAG,CAAE,qBAAqB,CAC1BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,WAAW,CACjBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qBAAqB,CAAE,CACnBH,GAAG,CAAE,qBAAqB,CAC1BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qBAAqB,CAAE,CACnBH,GAAG,CAAE,qBAAqB,CAC1BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qBAAqB,CAAE,CACnBH,GAAG,CAAE,qBAAqB,CAC1BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qBAAqB,CAAE,CACnBH,GAAG,CAAE,qBAAqB,CAC1BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qBAAqB,CAAE,CACnBH,GAAG,CAAE,qBAAqB,CAC1BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qBAAqB,CAAE,CACnBH,GAAG,CAAE,qBAAqB,CAC1BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qBAAqB,CAAE,CACnBH,GAAG,CAAE,qBAAqB,CAC1BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qBAAqB,CAAE,CACnBH,GAAG,CAAE,qBAAqB,CAC1BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qBAAqB,CAAE,CACnBH,GAAG,CAAE,qBAAqB,CAC1BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qBAAqB,CAAE,CACnBH,GAAG,CAAE,qBAAqB,CAC1BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qBAAqB,CAAE,CACnBH,GAAG,CAAE,qBAAqB,CAC1BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qBAAqB,CAAE,CACnBH,GAAG,CAAE,qBAAqB,CAC1BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,yBAAyB,CAC/BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qBAAqB,CAAE,CACnBH,GAAG,CAAE,qBAAqB,CAC1BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qBAAqB,CAAE,CACnBH,GAAG,CAAE,qBAAqB,CAC1BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,uBAAuB,CAC7BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qBAAqB,CAAE,CACnBH,GAAG,CAAE,qBAAqB,CAC1BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,sBAAsB,CAC5BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qBAAqB,CAAE,CACnBH,GAAG,CAAE,qBAAqB,CAC1BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qBAAqB,CAAE,CACnBH,GAAG,CAAE,qBAAqB,CAC1BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qBAAqB,CAAE,CACnBH,GAAG,CAAE,qBAAqB,CAC1BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qBAAqB,CAAE,CACnBH,GAAG,CAAE,qBAAqB,CAC1BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qBAAqB,CAAE,CACnBH,GAAG,CAAE,qBAAqB,CAC1BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qBAAqB,CAAE,CACnBH,GAAG,CAAE,qBAAqB,CAC1BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qBAAqB,CAAE,CACnBH,GAAG,CAAE,qBAAqB,CAC1BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qBAAqB,CAAE,CACnBH,GAAG,CAAE,qBAAqB,CAC1BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qBAAqB,CAAE,CACnBH,GAAG,CAAE,qBAAqB,CAC1BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qBAAqB,CAAE,CACnBH,GAAG,CAAE,qBAAqB,CAC1BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,UAAU,CAChBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qBAAqB,CAAE,CACnBH,GAAG,CAAE,qBAAqB,CAC1BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qBAAqB,CAAE,CACnBH,GAAG,CAAE,qBAAqB,CAC1BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qBAAqB,CAAE,CACnBH,GAAG,CAAE,qBAAqB,CAC1BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qBAAqB,CAAE,CACnBH,GAAG,CAAE,qBAAqB,CAC1BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,oBAAoB,CAC1BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qBAAqB,CAAE,CACnBH,GAAG,CAAE,qBAAqB,CAC1BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qBAAqB,CAAE,CACnBH,GAAG,CAAE,qBAAqB,CAC1BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qBAAqB,CAAE,CACnBH,GAAG,CAAE,qBAAqB,CAC1BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qBAAqB,CAAE,CACnBH,GAAG,CAAE,qBAAqB,CAC1BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,mBAAmB,CACzBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qBAAqB,CAAE,CACnBH,GAAG,CAAE,qBAAqB,CAC1BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qBAAqB,CAAE,CACnBH,GAAG,CAAE,qBAAqB,CAC1BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qBAAqB,CAAE,CACnBH,GAAG,CAAE,qBAAqB,CAC1BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qBAAqB,CAAE,CACnBH,GAAG,CAAE,qBAAqB,CAC1BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qBAAqB,CAAE,CACnBH,GAAG,CAAE,qBAAqB,CAC1BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qBAAqB,CAAE,CACnBH,GAAG,CAAE,qBAAqB,CAC1BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,kBAAkB,CACxBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qBAAqB,CAAE,CACnBH,GAAG,CAAE,qBAAqB,CAC1BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,YAAY,CAClBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qBAAqB,CAAE,CACnBH,GAAG,CAAE,qBAAqB,CAC1BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qBAAqB,CAAE,CACnBH,GAAG,CAAE,qBAAqB,CAC1BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qBAAqB,CAAE,CACnBH,GAAG,CAAE,qBAAqB,CAC1BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,gBAAgB,CACtBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qBAAqB,CAAE,CACnBH,GAAG,CAAE,qBAAqB,CAC1BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,iBAAiB,CACvBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qBAAqB,CAAE,CACnBH,GAAG,CAAE,qBAAqB,CAC1BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qBAAqB,CAAE,CACnBH,GAAG,CAAE,qBAAqB,CAC1BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,cAAc,CACpBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qBAAqB,CAAE,CACnBH,GAAG,CAAE,qBAAqB,CAC1BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,qBAAqB,CAAE,CACnBH,GAAG,CAAE,qBAAqB,CAC1BvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,aAAa,CACnBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,6BAA6B,CAAE,CAC3BH,GAAG,CAAE,6BAA6B,CAClCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,qBAAqB,CAC3BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,eAAe,CACrBC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,wBAAwB,CAC9BC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,MAAM,CACZC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,GAAG,CACPC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CAAC,CACD,gCAAgC,CAAE,CAC9BH,GAAG,CAAE,gCAAgC,CACrCvD,EAAE,CAAE,IAAI,CACRwD,IAAI,CAAE,SAAS,CACfC,EAAE,CAAE,KAAK,CACTC,OAAO,CAAE,YACb,CACJ,CAAC;;CCr/pDD,IAAMC,OAAO,GAAG;CACZ;CACJ;CACA;CACA;CACA;CACIC,EAAAA,GAAG,EAAE,SAAAA,GAAAA,CAACC,MAAM,EAAEC,IAAI,EAAK;CACnB,IAAA,IAAIA,IAAI,IAAI,WAAW,EAAE,OAAO,IAAI,CAAA;KACpC,IAAIA,IAAI,IAAID,MAAM,EAAE,OAAOA,MAAM,CAACC,IAAI,CAAC,CAAA;CACvC,IAAA,OAAOD,MAAM,CAAC,CAAC,CAAC,CAACC,IAAI,CAAC,CAAA;IACzB;GAED/F,GAAG,EAAE,SAAAA,GAACgG,CAAAA,GAAG,EAAED,IAAI,EAAE9H,KAAK,EAAK;CACvB,IAAA,IAAI,OAAO8H,IAAI,KAAK,QAAQ,EAAE;CAC1BC,MAAAA,GAAG,CAACD,IAAI,CAAC,GAAG9H,KAAK,CAAA;CACrB,KAAC,MAAM,IAAI8H,IAAI,IAAIC,GAAG,EAAE;CACpBA,MAAAA,GAAG,CAACD,IAAI,CAAC,GAAG9H,KAAK,CAAA;CACrB,KAAC,MAAM;CACH+H,MAAAA,GAAG,CAAC,CAAC,CAAC,CAACD,IAAI,CAAC,GAAG9H,KAAK,CAAA;CACxB,KAAA;CACA,IAAA,OAAO,IAAI,CAAA;CACf,GAAA;CACJ,CAAC,CAAA;;CAED;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,IAAMgI,YAAY,GAAG,SAAfA,YAAYA,CAAIC,IAAI,EAAEC,MAAM,EAAK;CACnC,EAAA,IAAID,IAAI,CAACE,SAAS,EAAE,OAAOF,IAAI,CAAA;GAC/B,IAAIG,QAAQ,GAAGF,MAAM,CAAA;GACrB,IAAIE,QAAQ,KAAKrC,SAAS,EAAE;CACxB,IAAA,IAAIsC,OAAA,CAAOJ,IAAI,MAAK,QAAQ,EAAE,OAAOA,IAAI,CAAA;CACzC,IAAA,IAAIK,KAAK,CAACC,OAAO,CAACN,IAAI,CAAC,IAAIA,IAAI,CAACvK,MAAM,KAAK,CAAC,EAAE,OAAOuK,IAAI,CAAA;CACzDG,IAAAA,QAAQ,GAAGE,KAAK,CAACC,OAAO,CAACN,IAAI,CAAC,GAAGA,IAAI,CAAC,CAAC,CAAC,GAAGA,IAAI,CAAA;CACnD,GAAA;CACA;CACA,EAAA,IAAIK,KAAK,CAACC,OAAO,CAACN,IAAI,CAAC,EAAE;KACrBA,IAAI,CAACvK,MAAM,GAAG,CAAC,CAAA;CACfuK,IAAAA,IAAI,CAACO,IAAI,CAACJ,QAAQ,CAAC,CAAA;CACnB,IAAA,OAAO,IAAIK,KAAK,CAACR,IAAI,EAAEN,OAAO,CAAC,CAAA;CACnC,GAAC,MAAM;KACH,OAAO,IAAIc,KAAK,CAAC,CAACL,QAAQ,CAAC,EAAET,OAAO,CAAC,CAAA;CACzC,GAAA;CACJ,CAAC;;CCrDD,SAASe,WAAWA,CAACC,YAAY,EAAEC,MAAM,EAAE;CACvC,EAAA,OAAO/E,MAAM,CAAC8E,YAAY,GAAGC,MAAM,CAAC,CAAC5D,KAAK,CAAC,CAAC2D,YAAY,CAACjL,MAAM,CAAC,CAAA;CACpE,CAAA;CAAC,IAEKmL,GAAG,gBAAA,YAAA;GACL,SAAAA,GAAAA,CAAY7I,KAAK,EAAE;CAAAZ,IAAAA,eAAA,OAAAyJ,GAAA,CAAA,CAAA;KACf,IAAI,CAAC7I,KAAK,GAAGA,KAAK,CAAA;CACtB,GAAA;CAACF,EAAAA,YAAA,CAAA+I,GAAA,EAAA,CAAA;KAAA9I,GAAA,EAAA,UAAA;KAAAC,KAAA,EAED,SAAAsE,QAAAA,GAAW;OACP,OACI,GAAG,GACHoE,WAAW,CAAC,MAAM,EAAE,IAAI,CAACI,KAAK,EAAE,CAACxE,QAAQ,CAAC,EAAE,CAAC,CAACyE,WAAW,EAAE,CAAC,GAC5D,GAAG,GACHL,WAAW,CAAC,MAAM,EAAE,IAAI,CAACM,OAAO,EAAE,CAAC1E,QAAQ,CAAC,EAAE,CAAC,CAACyE,WAAW,EAAE,CAAC,GAC9D,GAAG,CAAA;CAEX,KAAA;CAAC,GAAA,EAAA;KAAAhJ,GAAA,EAAA,eAAA;KAAAC,KAAA,EAED,SAAAiJ,aAAAA,GAAgB;CACZ,MAAA,OACIP,WAAW,CAAC,MAAM,EAAE,IAAI,CAACI,KAAK,EAAE,CAACxE,QAAQ,CAAC,EAAE,CAAC,CAACyE,WAAW,EAAE,CAAC,GAC5DL,WAAW,CAAC,MAAM,EAAE,IAAI,CAACM,OAAO,EAAE,CAAC1E,QAAQ,CAAC,EAAE,CAAC,CAACyE,WAAW,EAAE,CAAC,CAAA;CAEtE,KAAA;CAAC,GAAA,EAAA;KAAAhJ,GAAA,EAAA,IAAA;CAAAC,IAAAA,KAAA,EAED,SAAAkJ,EAAGC,CAAAA,CAAC,EAAE;CACF,MAAA,OAAO,IAAI,CAACnJ,KAAK,IAAImJ,CAAC,CAAA;CAC1B,KAAA;CAAC,GAAA,EAAA;KAAApJ,GAAA,EAAA,OAAA;KAAAC,KAAA,EAED,SAAA8I,KAAAA,GAAQ;CACJ,MAAA,OAAO,IAAI,CAAC9I,KAAK,KAAK,EAAE,CAAA;CAC5B,KAAA;CAAC,GAAA,EAAA;KAAAD,GAAA,EAAA,SAAA;KAAAC,KAAA,EAED,SAAAgJ,OAAAA,GAAU;CACN,MAAA,OAAO,IAAI,CAAChJ,KAAK,GAAG,MAAM,CAAA;CAC9B,KAAA;CAAC,GAAA,EAAA;KAAAD,GAAA,EAAA,gBAAA;KAAAC,KAAA,EAED,SAAAoJ,cAAAA,GAAiB;CACb,MAAA,OAAO,IAAI,CAACF,EAAE,CAAC,UAAU,CAAC,CAAA;CAC9B,KAAA;CAAC,GAAA,EAAA;KAAAnJ,GAAA,EAAA,kBAAA;KAAAC,KAAA,EAED,SAAAqJ,gBAAAA,GAAmB;CACf,MAAA,IAAMP,KAAK,GAAG,IAAI,CAACA,KAAK,EAAE,CAAA;CAC1B,MAAA,IAAME,OAAO,GAAG,IAAI,CAACA,OAAO,EAAE,CAAA;CAC9B,MAAA,OAAOF,KAAK,GAAG,CAAC,KAAK,CAAC,IAAIE,OAAO,GAAG,KAAK,IAAIA,OAAO,GAAG,IAAI,CAAA;CAC/D,KAAA;CAAC,GAAA,EAAA;KAAAjJ,GAAA,EAAA,OAAA;CAAAC,IAAAA,KAAA,EAwBD,SAAAsJ,KAAM3E,CAAAA,MAAM,EAAE4E,MAAM,EAAEC,MAAM,EAAEC,MAAM,EAAEC,YAAY,EAAE;CAChD,MAAA,IAAI1F,EAAE,GAAG2F,mBAAmB,CAACC,kBAAkB,CAACL,MAAM,CAAC;CACnDM,QAAAA,SAAS,GAAGC,YAAY,CAACC,gBAAgB,CAACN,MAAM,CAAC,CAAA;OAErD,IAAIO,QAAQ,GAAGH,SAAS,IAAI/C,sBAAsB,GAAG,IAAI,GAAG,KAAK;SAC7DpH,cAAc,GACVmK,SAAS,IAAI/C,sBAAsB,IACnC+C,SAAS,IAAI9C,wBAAsB,GAC7B,IAAI,GACJ,KAAK;CACfkD,QAAAA,cAAc,GACV,IAAI,CAACb,cAAc,EAAE,IAAIU,YAAY,CAACG,cAAc,CAACR,MAAM,CAAC,CAAA;CAEpE,MAAA,IAAIS,SAAS,GAAGvF,MAAM,CAACjF,cAAc,CAAA;CACrCiF,MAAAA,MAAM,CAAC1E,SAAS,CAACP,cAAc,CAAC,CAAA;OAEhCiF,MAAM,CAAC/D,WAAW,CAAC,IAAI,CAACkI,KAAK,EAAE,CAAC,CAAA;OAChCnE,MAAM,CAAC/D,WAAW,CAAC,IAAI,CAACoI,OAAO,EAAE,CAAC,CAAA;CAElC,MAAA,IAAImB,SAAS,GAAG,IAAIzD,iBAAiB,CAAC,GAAG,CAAC;SACtC0D,WAAW,CAAA;CACfD,MAAAA,SAAS,CAAClK,SAAS,CAACP,cAAc,CAAC,CAAA;OAEnC,IAAI6J,MAAM,IAAI,IAAI,IAAIA,MAAM,IAAI,IAAI,IAAIA,MAAM,IAAI,IAAI,EAAE;CACpDa,QAAAA,WAAW,GAAGpG,EAAE,CAACqG,UAAU,CACvBF,SAAS,EACTX,MAAM,EACNK,SAAS,EACTI,cAAc,EACdP,YACJ,CAAC,CAAA;CACL,OAAC,MAAM,IAAIH,MAAM,IAAI,IAAI,EAAE;CACvBa,QAAAA,WAAW,GAAGpG,EAAE,CAACqG,UAAU,CACvBF,SAAS,EACTX,MAAM,EACNK,SAAS,EACTH,YACJ,CAAC,CAAA;CACL,OAAC,MAAM;SACHU,WAAW,GAAGpG,EAAE,CAACqG,UAAU,CAACF,SAAS,EAAEX,MAAM,EAAEE,YAAY,CAAC,CAAA;CAChE,OAAA;OAEA,IAAIH,MAAM,IAAI,IAAI,EAAE;CAChBa,QAAAA,WAAW,GAAG,UAAU,CAAA;CAC5B,OAAA;CACA,MAAA,IAAIE,OAAO,GAAGH,SAAS,CAACxK,IAAI,GAAG,CAAC,CAAA;CAEhC,MAAA,IAAIqK,QAAQ,EAAE;CACVrF,QAAAA,MAAM,CAACxD,WAAW,CAACiJ,WAAW,CAAC,CAAA;CAC/BE,QAAAA,OAAO,IAAI,CAAC,CAAA;CAChB,OAAC,MAAM;CACH,QAAA,IAAItG,EAAE,CAACuG,UAAU,EAAE,EAAE;CACjB5F,UAAAA,MAAM,CAAC3C,gBAAgB,CAACgC,EAAE,CAACwG,IAAI,CAAC,CAAA;CAChC7F,UAAAA,MAAM,CAAC/D,WAAW,CAAC,CAAC,CAAC,CAAA;CACrB+D,UAAAA,MAAM,CAACxD,WAAW,CAACiJ,WAAW,CAAC,CAAA;CAC/BE,UAAAA,OAAO,IAAI,CAAC,CAAA;CAChB,SAAC,MAAM;CACH3F,UAAAA,MAAM,CAAC3C,gBAAgB,CAACgC,EAAE,CAACwG,IAAI,CAAC,CAAA;CAChC7F,UAAAA,MAAM,CAAC/D,WAAW,CAACwJ,WAAW,CAAC,CAAA;CAC/BE,UAAAA,OAAO,IAAI,CAAC,CAAA;CAChB,SAAA;CACJ,OAAA;CAEA3F,MAAAA,MAAM,CAACD,MAAM,CAACyF,SAAS,CAAC,CAAA;CAExBxF,MAAAA,MAAM,CAAC1E,SAAS,CAACiK,SAAS,CAAC,CAAA;CAE3B,MAAA,OAAOI,OAAO,CAAA;CAClB,KAAA;CAAC,GAAA,CAAA,EAAA,CAAA;KAAAvK,GAAA,EAAA,YAAA;CAAAC,IAAAA,KAAA,EA1FD,SAAAyK,UAAkBC,CAAAA,GAAG,EAAE;CACnB,MAAA,IAAI5B,KAAK,GAAGhK,QAAQ,CAAC4L,GAAG,CAACC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;SACzC3B,OAAO,GAAGlK,QAAQ,CAAC4L,GAAG,CAACC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;CAC5C,MAAA,OAAO9B,GAAG,CAAC+B,WAAW,CAAC9B,KAAK,EAAEE,OAAO,CAAC,CAAA;CAC1C,KAAA;CAAC,GAAA,EAAA;KAAAjJ,GAAA,EAAA,aAAA;CAAAC,IAAAA,KAAA,EAED,SAAA6K,WAAmBH,CAAAA,GAAG,EAAE;CACpB,MAAA,IAAI5B,KAAK,GAAGhK,QAAQ,CAAC4L,GAAG,CAACC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;CACzC3B,QAAAA,OAAO,GAAGlK,QAAQ,CAAC4L,GAAG,CAACC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAA;CAChD,MAAA,OAAO9B,GAAG,CAAC+B,WAAW,CAAC9B,KAAK,EAAEE,OAAO,CAAC,CAAA;CAC1C,KAAA;CAAC,GAAA,EAAA;KAAAjJ,GAAA,EAAA,aAAA;CAAAC,IAAAA,KAAA,EAED,SAAA4K,WAAAA,CAAmB9B,KAAK,EAAEE,OAAO,EAAE;OAC/B,OAAO,IAAIH,GAAG,CAAC,CAAEC,KAAK,IAAI,EAAE,GAAIE,OAAO,MAAM,CAAC,CAAC,CAAA;CACnD,KAAA;CAAC,GAAA,EAAA;KAAAjJ,GAAA,EAAA,SAAA;CAAAC,IAAAA,KAAA,EAED,SAAA8K,OAAenG,CAAAA,MAAM,EAAE;CACnB,MAAA,IAAImE,KAAK,GAAGnE,MAAM,CAACpC,UAAU,EAAE;CAC3ByG,QAAAA,OAAO,GAAGrE,MAAM,CAACpC,UAAU,EAAE,CAAA;CACjC,MAAA,OAAOsG,GAAG,CAAC+B,WAAW,CAAC9B,KAAK,EAAEE,OAAO,CAAC,CAAA;CAC1C,KAAA;CAAC,GAAA,CAAA,CAAA,CAAA;CAAA,EAAA,OAAAH,GAAA,CAAA;CAAA,CAAA,EAAA;;CC1EL;CACA;CACA;CACA;CACA;CACA;CACA;CACA,SAASkC,gBAAgBA,CAAC/K,KAAK,EAAmB;CAAA,EAAA,IAAjBgL,QAAQ,GAAAlF,SAAA,CAAApI,MAAA,GAAA,CAAA,IAAAoI,SAAA,CAAA,CAAA,CAAA,KAAAC,SAAA,GAAAD,SAAA,CAAA,CAAA,CAAA,GAAG,IAAI,CAAA;GAC5C,IAAI9F,KAAK,IAAI+F,SAAS,EAAE;CACpB,IAAA,OAAOiF,QAAQ,GAAG,EAAE,GAAGjF,SAAS,CAAA;CACpC,GAAA;GACA,IAAI,OAAO/F,KAAK,KAAK,QAAQ,IAAIA,KAAK,YAAY6D,MAAM,EAAE;CACtD;CACA;CACA,IAAA,IAAM2F,MAAM,GAAGxJ,KAAK,CACfiL,KAAK,CAACpH,MAAM,CAACC,YAAY,CAACoD,YAAY,CAAC,CAAC,CACxCgE,MAAM,CAACC,OAAO,CAAC,CAAA;KACpB,IAAMC,KAAK,GAAG5B,MAAM,CAAC6B,GAAG,CAAC,UAAU5K,CAAC,EAAE;CAClC,MAAA,IAAM6K,UAAU,GAAG7K,CAAC,CAACwK,KAAK,CACtBpH,MAAM,CAACC,YAAY,CAACuD,sBAAsB,CAC9C,CAAC,CAAA;OACD,OAAAkE,cAAA,CAAAA,cAAA,CAAAA,cAAA,KACQD,UAAU,CAAC,CAAC,CAAC,GAAG;SAAEE,UAAU,EAAEF,UAAU,CAAC,CAAC,CAAA;QAAG,GAAG,EAAE,CAAA,EAClDA,UAAU,CAAC,CAAC,CAAC,GAAG;SAAEG,WAAW,EAAEH,UAAU,CAAC,CAAC,CAAA;QAAG,GAAG,EAAE,CAAA,EACnDA,UAAU,CAAC,CAAC,CAAC,GAAG;SAAEI,QAAQ,EAAEJ,UAAU,CAAC,CAAC,CAAA;QAAG,GAAG,EAAE,CAAA,CAAA;CAE5D,KAAC,CAAC,CAAA;CACF,IAAA,OAAON,QAAQ,GAAGI,KAAK,GAAGA,KAAK,CAAC,CAAC,CAAC,CAAA;CACtC,GAAC,MAAM;CACH;CACA;KACA,IAAI,CAAC9C,KAAK,CAACC,OAAO,CAACvI,KAAK,CAAC,IAAIgL,QAAQ,EAAE;OACnC,OAAO,CAACW,MAAM,CAACC,MAAM,CAAC,EAAE,EAAE5L,KAAK,CAAC,CAAC,CAAA;CACrC,KAAA;CACA;CACA;CACA,IAAA,OAAOA,KAAK,CAAA;CAChB,GAAA;CACJ,CAAA;;CAEA;CACA;CACA;CACA;CACA;CACA,SAAS6L,gBAAgBA,CAAC7L,KAAK,EAAE;GAC7B,IAAI,OAAOA,KAAK,KAAK,QAAQ,IAAIA,KAAK,YAAY6D,MAAM,EAAE;CACtD,IAAA,OAAO7D,KAAK,CAAA;CAChB,GAAA;CAEA,EAAA,IAAM8L,OAAO,GAAGjI,MAAM,CAACC,YAAY,CAACuD,sBAAsB,CAAC,CAAA;CAC3D,EAAA,IAAI,CAACiB,KAAK,CAACC,OAAO,CAACvI,KAAK,CAAC,EAAE;KACvBA,KAAK,GAAG,CAACA,KAAK,CAAC,CAAA;CACnB,GAAA;GACA,OAAOA,KAAK,CACPkL,MAAM,CAACC,OAAO,CAAC,CACfE,GAAG,CAAC,UAAU5K,CAAC,EAAE;CAAA,IAAA,IAAAsL,aAAA,EAAAC,cAAA,EAAAC,WAAA,CAAA;CACd,IAAA,IACIxL,CAAC,KAAKsF,SAAS,IACf,OAAOtF,CAAC,KAAK,QAAQ,IACrBA,CAAC,YAAYoD,MAAM,EACrB;CACE,MAAA,OAAOpD,CAAC,CAAA;CACZ,KAAA;KACA,OAAO,CAAA,CAAAsL,aAAA,GAACtL,CAAC,CAAC+K,UAAU,MAAAO,IAAAA,IAAAA,aAAA,KAAAA,KAAAA,CAAAA,GAAAA,aAAA,GAAI,EAAE,GAAAC,cAAA,GAAEvL,CAAC,CAACgL,WAAW,MAAA,IAAA,IAAAO,cAAA,KAAA,KAAA,CAAA,GAAAA,cAAA,GAAI,EAAE,EAAA,CAAAC,WAAA,GAAExL,CAAC,CAACiL,QAAQ,MAAAO,IAAAA,IAAAA,WAAA,KAAAA,KAAAA,CAAAA,GAAAA,WAAA,GAAI,EAAE,CAAC,CAC7DC,IAAI,CAACJ,OAAO,CAAC,CACbK,OAAO,CAAC,IAAIC,MAAM,CAAA1H,EAAAA,CAAAA,MAAA,CAAIoH,OAAO,EAAI,IAAA,CAAA,CAAC,EAAE,EAAE,CAAC,CAAA;IAC/C,CAAC,CACDI,IAAI,CAACrI,MAAM,CAACC,YAAY,CAACoD,YAAY,CAAC,CAAC,CAAA;CAChD,CAAA;;CAEA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,SAASmF,mBAAmBA,CAACrM,MAAK,EAAE;CAChC,EAAA,IAAI,CAACA,MAAK,CAACsM,mBAAmB,EAAE;CAC5BX,IAAAA,MAAM,CAACY,cAAc,CAACvM,MAAK,EAAE,qBAAqB,EAAE;CAAEA,MAAAA,KAAK,EAAE,IAAA;CAAK,KAAC,CAAC,CAAA;CACpE2L,IAAAA,MAAM,CAACY,cAAc,CAACvM,MAAK,EAAE,QAAQ,EAAE;OACnCA,KAAK,EAAE,SAAAA,KAAAA,GAAY;CACf,QAAA,IAAIsI,KAAK,CAACC,OAAO,CAAC,IAAI,CAAC,EAAE;WACrB,OAAO,IAAI,CAAC2C,MAAM,CAACC,OAAO,CAAC,CAACE,GAAG,CAAC,UAAAmB,CAAC,EAAA;CAAA,YAAA,OAC7BzB,gBAAgB,CAACyB,CAAC,EAAE,KAAK,CAAC,CAAA;CAAA,WAC9B,CAAC,CAAA;CACL,SAAC,MAAM;WACH,OAAOzB,gBAAgB,CAAC,IAAI,CAAC,CAAA;CACjC,SAAA;CACJ,OAAA;CACJ,KAAC,CAAC,CAAA;CACF;CACA;CACA;CACAY,IAAAA,MAAM,CAACY,cAAc,CAACvM,MAAK,EAAE,UAAU,EAAE;OACrCA,KAAK,EAAE,SAAAA,KAAAA,GAAY;SACf,OAAO6L,gBAAgB,CAAC7L,MAAK,CAAC,CAAA;CAClC,OAAA;CACJ,KAAC,CAAC,CAAA;CACN,GAAA;CACA,EAAA,OAAOA,MAAK,CAAA;CAChB,CAAA;CAEA,IAAMyM,SAAS,GAAG;CACdZ,EAAAA,gBAAgB,EAAEA,gBAAgB;CAClCa,EAAAA,qBAAqB,EAAE3B,gBAAgB;CACvCsB,EAAAA,mBAAmB,EAAEA,mBAAAA;CACzB,CAAC;;CChGD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,IAAMM,eAAe,GAAG;CACpB5K,EAAAA,GAAG,WAAAA,GAAC8F,CAAAA,MAAM,EAAEC,IAAI,EAAE9H,KAAK,EAAE;CACrB,IAAA,IAAIuJ,MAAM,CAAA;KACV,IACI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAACqD,QAAQ,CAAC9E,IAAI,CAAC,IAClCD,MAAM,CAAC7D,EAAE,IACT2F,mBAAmB,CAACkD,iBAAiB,CAAChF,MAAM,CAAC7D,EAAE,CAAC,EAClD;OACEuF,MAAM,GAAGI,mBAAmB,CAACC,kBAAkB,CAAC/B,MAAM,CAAC7D,EAAE,CAAC,CAAA;MAC7D,MAAM,IACH8D,IAAI,IAAIgF,mBAAmB,CAACC,OAAO,IACnCpD,mBAAmB,CAACkD,iBAAiB,CACjCC,mBAAmB,CAACC,OAAO,CAACjF,IAAI,CAAC,CAAC9D,EACtC,CAAC,EACH;CACEuF,MAAAA,MAAM,GAAGI,mBAAmB,CAACC,kBAAkB,CAC3CkD,mBAAmB,CAACC,OAAO,CAACjF,IAAI,CAAC,CAAC9D,EACtC,CAAC,CAAA;CACL,KAAC,MAAM;CACH6D,MAAAA,MAAM,CAACC,IAAI,CAAC,GAAG9H,KAAK,CAAA;CACpB,MAAA,OAAO,IAAI,CAAA;CACf,KAAA;KAEA6H,MAAM,CAACC,IAAI,CAAC,GAAGyB,MAAM,CAACyD,iBAAiB,CAAChN,KAAK,CAAC,CAAA;CAE9C,IAAA,OAAO,IAAI,CAAA;CACf,GAAA;CACJ,CAAC,CAAA;CAED,SAASiN,KAAKA,CAACvC,GAAG,EAAE;CAChB,EAAA,OAAOA,GAAG,CAACyB,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;CACnC,CAAA;CAEA,SAASe,SAASA,CAACC,UAAU,EAAExN,IAAI,EAAE;GACjC,OAAO2I,KAAK,CAAC8E,IAAI,CACb;CAAE1P,IAAAA,MAAM,EAAEyP,UAAU,CAACzP,MAAM,IAAIiC,IAAI,GAAG,CAAC,CAAA;IAAG;CAAE;GAC5C,UAAC0N,CAAC,EAAEC,KAAK,EAAA;KAAA,OAAKH,UAAU,CAACnI,KAAK,CAACsI,KAAK,EAAEA,KAAK,GAAG3N,IAAI,CAAC,CAAA;IAAC;IACvD,CAAA;CACL,CAAA;;CAEA,IAAI4N,SAAS,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;CACtDC,EAAAA,WAAW,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;GAC9DC,WAAS,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;CAAC,IAEzC9D,mBAAmB,gBAAA,YAAA;GACrB,SAAAA,mBAAAA,CAAYa,IAAI,EAAE;CAAApL,IAAAA,eAAA,OAAAuK,mBAAA,CAAA,CAAA;KACd,IAAI,CAACa,IAAI,GAAGA,IAAI,CAAA;KAChB,IAAI,CAACkD,KAAK,GAAG,KAAK,CAAA;CAClB,IAAA,IAAI,CAACC,SAAS,GAAGJ,SAAS,CAACK,OAAO,CAAC,IAAI,CAACpD,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;CACnD,IAAA,IAAI,CAACqD,cAAc,GACf,CAAC,IAAI,CAACF,SAAS,IAAIF,WAAS,CAACG,OAAO,CAAC,IAAI,CAACpD,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;CACzD,IAAA,IAAI,CAACsD,WAAW,GAAGN,WAAW,CAACI,OAAO,CAAC,IAAI,CAACpD,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;CAC3D,GAAA;CAAC1K,EAAAA,YAAA,CAAA6J,mBAAA,EAAA,CAAA;KAAA5J,GAAA,EAAA,UAAA;KAAAC,KAAA,EAED,SAAA+N,QAAAA,GAAW;OACP,OAAO,IAAI,CAACJ,SAAS,CAAA;CACzB,KAAA;CAAC,GAAA,EAAA;KAAA5N,GAAA,EAAA,eAAA;KAAAC,KAAA,EAED,SAAAgO,aAAAA,GAAgB;OACZ,OAAO,IAAI,CAACH,cAAc,CAAA;CAC9B,KAAA;CAAC,GAAA,EAAA;KAAA9N,GAAA,EAAA,YAAA;KAAAC,KAAA,EAED,SAAAuK,UAAAA,GAAa;OACT,OAAO,IAAI,CAACuD,WAAW,CAAA;CAC3B,KAAA;CAAC,GAAA,EAAA;KAAA/N,GAAA,EAAA,mBAAA;CAAAC,IAAAA,KAAA,EAED,SAAAgN,iBAAkBhN,CAAAA,KAAK,EAAE;CACrB,MAAA,OAAOA,KAAK,CAAA;CAChB,KAAA;;CAEA;CACJ;CACA;CACA;CACA;CACA;CACA;CANI,GAAA,EAAA;KAAAD,GAAA,EAAA,MAAA;KAAAC,KAAA,EAmBA,SAAAiO,IAAKtJ,CAAAA,MAAM,EAAEjH,MAAM,EAAE+L,MAAM,EAAE;CACzB,MAAA,IAAI,IAAI,CAACyE,KAAK,IAAI,IAAI,CAACC,SAAS,EAAE;CAC9B,QAAA,IAAI,CAACzQ,MAAM,EAAE,OAAO,IAAI,CAAC0Q,YAAY,CAAA;SACrC,IAAI,IAAI,CAACD,SAAS,IAAIzQ,MAAM,EACxBd,GAAG,CAACyR,KAAK,CACL,0CAA0C,GACtC,IAAI,CAAC7D,IAAI,GACT,WAAW,GACX,IAAI,CAAC2D,SAAS,GACd,MAAM,GACNzQ,MACR,CAAC,CAAA;CACT,OAAA;OACA,OAAO,IAAI,CAAC4Q,SAAS,CAAC3J,MAAM,EAAEjH,MAAM,EAAE+L,MAAM,CAAC,CAAA;CACjD,KAAA;CAAC,GAAA,EAAA;KAAA1J,GAAA,EAAA,WAAA;CAAAC,IAAAA,KAAA,EAED,SAAAsO,SAAAA,CAAU3J,MAAM,EAAEjH,MAAM,EAAE;CACtB,MAAA,OAAOiH,MAAM,CAAClB,eAAe,CAAC/F,MAAM,CAAC,CAAA;CACzC,KAAA;CAAC,GAAA,EAAA;KAAAqC,GAAA,EAAA,uBAAA;CAAAC,IAAAA,KAAA,EAED,SAAAuO,qBAAAA,CAAsB5J,MAAM,EAAEjH,MAAM,EAAE;CAClC,MAAA,IAAI,CAACA,MAAM,EAAE,OAAO,EAAE,CAAA;CACtB,MAAA,IAAIiH,MAAM,CAAChC,SAAS,CAACjF,MAAM,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC8Q,OAAO,EAAE;CAC/C,QAAA,OAAO7J,MAAM,CAAClB,eAAe,CAAC/F,MAAM,CAAC,CAAA;CACzC,OAAC,MAAM;SACH,IAAIiB,GAAG,GAAGgG,MAAM,CAAClB,eAAe,CAAC/F,MAAM,GAAG,CAAC,CAAC,CAAA;CAC5CiH,QAAAA,MAAM,CAACrE,SAAS,CAAC,CAAC,CAAC,CAAA;CACnB,QAAA,OAAO3B,GAAG,CAAA;CACd,OAAA;CACJ,KAAA;CAAC,GAAA,EAAA;KAAAoB,GAAA,EAAA,yBAAA;CAAAC,IAAAA,KAAA,EAED,SAAAyO,uBAAAA,CAAwB9J,MAAM,EAAEjH,MAAM,EAAE;CACpC,MAAA,IAAI,CAACA,MAAM,EAAE,OAAO,EAAE,CAAA;CACtB,MAAA,IAAMiB,GAAG,GAAGgG,MAAM,CAACV,iBAAiB,CAACvG,MAAM,CAAC,CAAA;OAC5C,IACIiB,GAAG,CAACjB,MAAM,IACViB,GAAG,CAACA,GAAG,CAACjB,MAAM,GAAG,CAAC,CAAC,KAAKmG,MAAM,CAACC,YAAY,CAAC,IAAI,CAAC0K,OAAO,CAAC,EAC3D;CACE,QAAA,OAAO7P,GAAG,CAAA;CACd,OAAC,MAAM;SACH,OAAOA,GAAG,CAACqG,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;CAC3B,OAAA;CACJ,KAAA;CAAC,GAAA,EAAA;KAAAjF,GAAA,EAAA,OAAA;CAAAC,IAAAA,KAAA,EAED,SAAAsJ,KAAAA,CAAM3E,MAAM,EAAE6F,IAAI,EAAE;CAChB,MAAA,IAAIkE,IAAI,GAAGpG,KAAK,CAAC8E,IAAI,CAACtH,SAAS,CAAC,CAAA;OAChC,IAAI4I,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,IAAIA,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,IAAIA,IAAI,CAAC,CAAC,CAAC,KAAK3I,SAAS,EAAE;CAC7D,QAAA,OAAO,CAACpB,MAAM,CAAC3C,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAA;CACxC,OAAC,MAAM;SACH,IAAIsI,OAAO,GAAG,EAAE;CACZqE,UAAAA,SAAS,GAAGD,IAAI,CAAC1J,KAAK,CAAC,CAAC,CAAC;CACzB4J,UAAAA,IAAI,GAAGjK,MAAM,CAAC,OAAO,GAAG6F,IAAI,CAAC,CAAA;SACjC,IAAIlC,KAAK,CAACC,OAAO,CAACoG,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE;WAC7B,IAAIA,SAAS,CAAC,CAAC,CAAC,CAACjR,MAAM,GAAG,CAAC,EAAE;CACzB4M,YAAAA,OAAO,CAAC9B,IAAI,CAAC,CAAC,CAAC,CAAA;CACnB,WAAC,MAAM;aACH,IAAIqG,IAAI,GAAG,IAAI,CAAA;aACfF,SAAS,CAAC,CAAC,CAAC,CAACG,OAAO,CAAC,UAAUrO,CAAC,EAAEsO,CAAC,EAAE;eACjC,IAAIF,IAAI,CAACb,aAAa,EAAE,IAAIe,CAAC,GAAG,CAAC,EAAE;CAC/BpK,gBAAAA,MAAM,CAACxE,UAAU,CAAC+G,YAAY,CAAC,CAAA;CACnC,eAAA;CACA,cAAA,IAAI8H,YAAY,GAAG,CAACvO,CAAC,CAAC,CAACiE,MAAM,CAACiK,SAAS,CAAC3J,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;eACjD,IAAIiK,SAAS,GAAGL,IAAI,CAACM,KAAK,CAACvK,MAAM,EAAEqK,YAAY,CAAC,CAAA;CAChD1E,cAAAA,OAAO,CAAC9B,IAAI,CAACyG,SAAS,CAAC,CAAA;CAC3B,aAAC,CAAC,CAAA;CACN,WAAA;CACJ,SAAC,MAAM;WACH3E,OAAO,CAAC9B,IAAI,CAACoG,IAAI,CAACM,KAAK,CAACvK,MAAM,EAAEgK,SAAS,CAAC,CAAC,CAAA;CAC/C,SAAA;CACA,QAAA,OAAOrE,OAAO,CAAA;CAClB,OAAA;CACJ,KAAA;CAAC,GAAA,EAAA;KAAAvK,GAAA,EAAA,YAAA;KAAAC,KAAA,EAED,SAAAqK,UACI1F,CAAAA,MAAM,EACN3E,KAAK,EACLmP,OAAO,EAET;OAAA,IADEzF,YAAY,GAAA5D,SAAA,CAAApI,MAAA,GAAAoI,CAAAA,IAAAA,SAAA,CAAAC,CAAAA,CAAAA,KAAAA,SAAA,GAAAD,SAAA,CAAG,CAAA,CAAA,GAAA;CAAEsJ,QAAAA,oBAAoB,EAAE,KAAA;QAAO,CAAA;CAE9C,MAAA,IAAQA,oBAAoB,GAAK1F,YAAY,CAArC0F,oBAAoB,CAAA;OAC5B,IAAIC,KAAK,GAAG,IAAI;CACZC,QAAAA,MAAM,GAAGhH,KAAK,CAACC,OAAO,CAACvI,KAAK,CAAC,GAAGA,KAAK,GAAG,CAACA,KAAK,CAAC;CAC/CuP,QAAAA,KAAK,GAAG,CAAC,CAAA;CAEb,MAAA,KAAK,IAAIxR,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGuR,MAAM,CAAC5R,MAAM,EAAEK,CAAC,EAAE,EAAE;CACpC,QAAA,IAAIyR,UAAU,GAAGF,MAAM,CAACvR,CAAC,CAAC;CACtB0R,UAAAA,QAAQ,GAAGN,OAAO,CAACpR,CAAC,CAAC;CACrB2R,UAAAA,QAAQ,GAAG,KAAK;CAChBC,UAAAA,UAAU,GAAGF,QAAQ,CAAA;CACzB,QAAA,IAAID,UAAU,KAAK,IAAI,IAAIJ,oBAAoB,EAAE;CAC7CC,UAAAA,KAAK,GAAG,IAAI,CAAA;CAChB,SAAC,MAAM,IAAI,IAAI,CAACO,WAAW,EAAE;CACzBP,UAAAA,KAAK,GAAG,IAAI,CAACO,WAAW,CAACJ,UAAU,CAAC,CAAA;CACxC,SAAC,MAAM,IAAI,IAAI,CAACK,aAAa,EAAE;CAC3B,UAAA,IAAIC,KAAK,GAAG,IAAI,CAACD,aAAa,CAAC;CAC/BR,UAAAA,KAAK,GAAGG,UAAU,CAAC9R,MAAM,IAAIoS,KAAK,CAAA;WAClCH,UAAU,GAAGH,UAAU,CAAC9R,MAAM,CAAA;CAC9BgS,UAAAA,QAAQ,GAAG,IAAI,CAAA;CACnB,SAAC,MAAM,IAAI,IAAI,CAACvB,SAAS,EAAE;CACvBkB,UAAAA,KAAK,GAAGI,QAAQ,IAAI,IAAI,CAACtB,SAAS,CAAA;CACtC,SAAA;SAEA,IAAI,CAACkB,KAAK,EAAE;CACR,UAAA,IAAIU,MAAM,GACN,gCAAgC,GAChC,IAAI,CAACvF,IAAI,GACT,WAAW,GACXgF,UAAU,GACV,YAAY,GACZG,UAAU,CAAA;CACd,UAAA,IAAID,QAAQ,EAAE9S,GAAG,CAACA,GAAG,CAACmT,MAAM,CAAC,CAAC,KACzB,MAAM,IAAIlR,KAAK,CAACkR,MAAM,CAAC,CAAA;CAChC,SAAA;CACAR,QAAAA,KAAK,IAAIE,QAAQ,CAAA;CACrB,OAAA;CACA,MAAA,IAAI,IAAI,CAACzB,aAAa,EAAE,EAAE;SACtBuB,KAAK,IAAID,MAAM,CAAC5R,MAAM,GAAG4R,MAAM,CAAC5R,MAAM,GAAG,CAAC,GAAG,CAAC,CAAA;CAClD,OAAA;;CAEA;OACA,IAAI4M,OAAO,GAAGiF,KAAK,CAAA;OACnB,IAAIA,KAAK,GAAG,CAAC,EAAE;CACX5K,QAAAA,MAAM,CAACxE,UAAU,CAAC,IAAI,CAACqO,OAAO,CAAC,CAAA;CAC/BlE,QAAAA,OAAO,EAAE,CAAA;CACb,OAAA;CACA,MAAA,OAAOA,OAAO,CAAA;CAClB,KAAA;CAAC,GAAA,CAAA,EAAA,CAAA;KAAAvK,GAAA,EAAA,iBAAA;CAAAC,IAAAA,KAAA,EA1ID,SAAAgQ,eAAuBzI,CAAAA,GAAG,EAAE;CAAA,MAAA,IAAA0I,OAAA,CAAA;OACxB,IACI,CAAC1I,GAAG,CAAC2I,iBAAiB,IACtBvG,mBAAmB,CAACkD,iBAAiB,CAAC,CAAAoD,CAAAA,OAAA,GAAA1I,GAAG,CAACvD,EAAE,MAAA,IAAA,IAAAiM,OAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAANA,OAAA,CAAQzF,IAAI,KAAIjD,GAAG,CAACvD,EAAE,CAAC,EAC/D;CACE2H,QAAAA,MAAM,CAACY,cAAc,CAAChF,GAAG,EAAE,mBAAmB,EAAE;CAAEvH,UAAAA,KAAK,EAAE,IAAA;CAAK,SAAC,CAAC,CAAA;CAChE;CACA,QAAA,OAAO,IAAIyI,KAAK,CAAClB,GAAG,EAAEoF,eAAe,CAAC,CAAA;CAC1C,OAAA;CACA,MAAA,OAAOpF,GAAG,CAAA;CACd,KAAA;CAAC,GAAA,EAAA;KAAAxH,GAAA,EAAA,mBAAA;CAAAC,IAAAA,KAAA,EAkID,SAAA6M,iBAAyBrC,CAAAA,IAAI,EAAE;OAC3B,IAAIA,IAAI,IAAI2F,WAAW,EAAE;SACrB,OACIA,WAAW,CAAC3F,IAAI,CAAC,CAACwC,iBAAiB,KACnCrD,mBAAmB,CAACyG,SAAS,CAACpD,iBAAiB,CAAA;CAEvD,OAAA;CACA;OACA,OAAOxC,IAAI,KAAKzE,SAAS,CAAA;CAC7B,KAAA;CAAC,GAAA,EAAA;KAAAhG,GAAA,EAAA,oBAAA;CAAAC,IAAAA,KAAA,EAED,SAAA4J,kBAA0BY,CAAAA,IAAI,EAAE;CAC5B,MAAA,IAAIxG,EAAE,GAAGmM,WAAW,CAAC3F,IAAI,CAAC,CAAA;OAC1B,IAAIxG,EAAE,KAAK+B,SAAS,EAAE;SAClB,IAAIyE,IAAI,IAAI,IAAI,EAAE;CACd;CACA;WACAzN,aAAa,CAACsR,KAAK,CAAC,iBAAiB,EAAE7D,IAAI,EAAE,YAAY,CAAC,CAAA;CAC1DxG,UAAAA,EAAE,GAAGmM,WAAW,CAAC,IAAI,CAAC,CAAA;CAC1B,SAAC,MAAM,IAAI3F,IAAI,IAAI,IAAI,EAAE;WACrBzN,aAAa,CAACsR,KAAK,CAAC,iBAAiB,EAAE7D,IAAI,EAAE,YAAY,CAAC,CAAA;CAC1DxG,UAAAA,EAAE,GAAGmM,WAAW,CAAC,IAAI,CAAC,CAAA;CAC1B,SAAC,MAAM;WACHpT,aAAa,CAACsR,KAAK,CAAC,iBAAiB,EAAE7D,IAAI,EAAE,YAAY,CAAC,CAAA;CAC1DxG,UAAAA,EAAE,GAAGmM,WAAW,CAAC,IAAI,CAAC,CAAA;CAC1B,SAAA;CACJ,OAAA;CACA,MAAA,OAAOnM,EAAE,CAAA;CACb,KAAA;CAAC,GAAA,EAAA;KAAAjE,GAAA,EAAA,gBAAA;CAAAC,IAAAA,KAAA,EAED,SAAAqQ,cAAsB7F,CAAAA,IAAI,EAAE;CACxB,MAAA,OAAO,IAAI8F,kBAAkB,CAAC9F,IAAI,CAAC,CAAA;CACvC,KAAA;CAAC,GAAA,CAAA,CAAA,CAAA;CAAA,EAAA,OAAAb,mBAAA,CAAA;CAAA,CAAA,EAAA,CAAA;CAAA,IAGC4G,yBAAyB,0BAAAC,oBAAA,EAAA;GAAA/K,SAAA,CAAA8K,yBAAA,EAAAC,oBAAA,CAAA,CAAA;CAAA,EAAA,IAAA9K,MAAA,GAAAC,YAAA,CAAA4K,yBAAA,CAAA,CAAA;GAC3B,SAAAA,yBAAAA,CAAY/F,IAAI,EAAE;CAAApL,IAAAA,eAAA,OAAAmR,yBAAA,CAAA,CAAA;CAAA,IAAA,OAAA7K,MAAA,CAAAO,IAAA,CAAA,IAAA,EACRuE,IAAI,CAAA,CAAA;CACd,GAAA;CAAC1K,EAAAA,YAAA,CAAAyQ,yBAAA,EAAA,CAAA;KAAAxQ,GAAA,EAAA,WAAA;CAAAC,IAAAA,KAAA,EAED,SAAAsO,SAAAA,CAAU3J,MAAM,EAAEjH,MAAM,EAAE;CACtB,MAAA,OAAOiH,MAAM,CAAClB,eAAe,CAAC/F,MAAM,CAAC,CAAA;CACzC,KAAA;CAAC,GAAA,EAAA;KAAAqC,GAAA,EAAA,YAAA;KAAAC,KAAA,EAED,SAAAqK,UAAW1F,CAAAA,MAAM,EAAE3E,KAAK,EAAE0J,YAAY,EAAE;CACpC,MAAA,IAAMY,OAAO,GAAAmG,IAAA,CAAAC,eAAA,CAAAH,yBAAA,CAAAH,SAAA,CAAA,EAAA,OAAA,EAAA,IAAA,CAAA,CAAAnK,IAAA,CAAetB,IAAAA,EAAAA,MAAM,EAAE,aAAa,EAAE3E,KAAK,CAAC,CAAA;CAEzD,MAAA,OAAAyQ,IAAA,CAAAC,eAAA,CAAAH,yBAAA,CAAAH,SAAA,CAAA,EAAA,YAAA,EAAA,IAAA,CAAA,CAAAnK,IAAA,CAAA,IAAA,EAAwBtB,MAAM,EAAE3E,KAAK,EAAEsK,OAAO,EAAEZ,YAAY,CAAA,CAAA;CAChE,KAAA;CAAC,GAAA,CAAA,CAAA,CAAA;CAAA,EAAA,OAAA6G,yBAAA,CAAA;CAAA,CAAA,CAbmC5G,mBAAmB,CAAA,CAAA;CAAA,IAgBrDgH,2BAA2B,0BAAAC,qBAAA,EAAA;GAAAnL,SAAA,CAAAkL,2BAAA,EAAAC,qBAAA,CAAA,CAAA;CAAA,EAAA,IAAAtK,OAAA,GAAAX,YAAA,CAAAgL,2BAAA,CAAA,CAAA;GAC7B,SAAAA,2BAAAA,CAAYnG,IAAI,EAAE;CAAApL,IAAAA,eAAA,OAAAuR,2BAAA,CAAA,CAAA;CAAA,IAAA,OAAArK,OAAA,CAAAL,IAAA,CAAA,IAAA,EACRuE,IAAI,CAAA,CAAA;CACd,GAAA;CAAC1K,EAAAA,YAAA,CAAA6Q,2BAAA,EAAA,CAAA;KAAA5Q,GAAA,EAAA,WAAA;CAAAC,IAAAA,KAAA,EAED,SAAAsO,SAAAA,CAAU3J,MAAM,EAAEjH,MAAM,EAAE;CACtB,MAAA,OAAOiH,MAAM,CAACV,iBAAiB,CAACvG,MAAM,CAAC,CAAA;CAC3C,KAAA;CAAC,GAAA,EAAA;KAAAqC,GAAA,EAAA,YAAA;KAAAC,KAAA,EAED,SAAAqK,UAAW1F,CAAAA,MAAM,EAAE3E,KAAK,EAAE0J,YAAY,EAAE;CACpC,MAAA,IAAMY,OAAO,GAAAmG,IAAA,CAAAC,eAAA,CAAAC,2BAAA,CAAAP,SAAA,CAAA,EAAA,OAAA,EAAA,IAAA,CAAA,CAAAnK,IAAA,CAAetB,IAAAA,EAAAA,MAAM,EAAE,YAAY,EAAE3E,KAAK,CAAC,CAAA;CAExD,MAAA,OAAAyQ,IAAA,CAAAC,eAAA,CAAAC,2BAAA,CAAAP,SAAA,CAAA,EAAA,YAAA,EAAA,IAAA,CAAA,CAAAnK,IAAA,CAAA,IAAA,EAAwBtB,MAAM,EAAE3E,KAAK,EAAEsK,OAAO,EAAEZ,YAAY,CAAA,CAAA;CAChE,KAAA;CAAC,GAAA,CAAA,CAAA,CAAA;CAAA,EAAA,OAAAiH,2BAAA,CAAA;CAAA,CAAA,CAbqChH,mBAAmB,CAAA,CAAA;CAAA,IAgBvDkH,oBAAoB,0BAAAC,qBAAA,EAAA;GAAArL,SAAA,CAAAoL,oBAAA,EAAAC,qBAAA,CAAA,CAAA;CAAA,EAAA,IAAAlK,OAAA,GAAAjB,YAAA,CAAAkL,oBAAA,CAAA,CAAA;GACtB,SAAAA,oBAAAA,CAAYrG,IAAI,EAAE;CAAApL,IAAAA,eAAA,OAAAyR,oBAAA,CAAA,CAAA;CAAA,IAAA,OAAAjK,OAAA,CAAAX,IAAA,CAAA,IAAA,EACRuE,IAAI,CAAA,CAAA;CACd,GAAA;CAAC1K,EAAAA,YAAA,CAAA+Q,oBAAA,EAAA,CAAA;KAAA9Q,GAAA,EAAA,YAAA;KAAAC,KAAA,EAED,SAAAqK,UAAAA,CAAW1F,MAAM,EAAE3E,KAAK,EAAEyJ,MAAM,EAAEQ,cAAc,EAAqB;CAAA,MAAA,IAAnBP,YAAY,GAAA5D,SAAA,CAAApI,MAAA,GAAA,CAAA,IAAAoI,SAAA,CAAA,CAAA,CAAA,KAAAC,SAAA,GAAAD,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE,CAAA;CAC/D,MAAA,IAAI/H,CAAC,CAAA;CACL,MAAA,IAAIgT,YAAY,CAAA;CAChB,MAAA,IAAAC,qBAAA,GAAoCtH,YAAY,CAA1CuH,kBAAkB;CAAlBA,QAAAA,kBAAkB,GAAAD,qBAAA,KAAG,KAAA,CAAA,GAAA,IAAI,GAAAA,qBAAA,CAAA;OAC/BhR,KAAK,GAAGA,KAAK,KAAK,IAAI,IAAIA,KAAK,KAAK+F,SAAS,GAAG,EAAE,GAAG/F,KAAK,CAAA;CAC1D,MAAA,IAAIiK,cAAc,EAAE;CAChB,QAAA,IAAIiH,YAAY,GAAG,IAAI,GAAG,EAAE;WACxBC,MAAM,GAAGnR,KAAK,CAACtC,MAAM;CACrBwE,UAAAA,WAAW,GAAG,EAAE,CAAA;;CAEpB;SACA,IAAIkP,YAAY,GAAG,CAAC,CAAA;SACpB,KAAKrT,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGoT,MAAM,EAAEpT,CAAC,EAAE,EAAE;CACzB,UAAA,IAAMsT,YAAY,GAAGlG,OAAO,CAACnL,KAAK,CAACjC,CAAC,CAAC,CAAC+D,UAAU,GAAG,CAAC,CAAC,CAAA;CACrDsP,UAAAA,YAAY,IAAIpR,KAAK,CAACjC,CAAC,CAAC,CAAC+D,UAAU,IAAIuP,YAAY,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;WAC5D,IAAIC,gBAAe,GAAG,CAAC,CAAA;CACvB,UAAA,IAAIL,kBAAkB,EAAE;CACpBK,YAAAA,gBAAe,GAAG/T,IAAI,CAACgU,IAAI,CACvBvR,KAAK,CAACjC,CAAC,CAAC,CAAC+D,UAAU,GAAGoP,YAC1B,CAAC,CAAA;CACL,WAAA;CACA;WACAE,YAAY,IAAIE,gBAAe,GAAG,CAAC,CAAA;CACvC,SAAA;SAEAP,YAAY,GAAG,IAAIrK,iBAAiB,CAChC0K,YAAY,EACZzM,MAAM,CAACjF,cACX,CAAC,CAAA;SAED,KAAK3B,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGoT,MAAM,EAAEpT,CAAC,EAAE,EAAE;CACzB,UAAA,IAAMsT,aAAY,GAAGlG,OAAO,CAACnL,KAAK,CAACjC,CAAC,CAAC,CAAC+D,UAAU,GAAG,CAAC,CAAC,CAAA;CAErDI,UAAAA,WAAW,CAACsG,IAAI,CAACuI,YAAY,CAACpR,IAAI,CAAC,CAAA;CACnC,UAAA,IAAI6R,WAAW,GAAGxR,KAAK,CAACjC,CAAC,CAAC;CACtB0T,YAAAA,WAAW,GAAG,IAAIrM,gBAAgB,CAACoM,WAAW,CAAC,CAAA;WAEnD,IAAIF,eAAe,GAAG,CAAC,CAAA;CACvB,UAAA,IAAIL,kBAAkB,EAAE;aACpBK,eAAe,GAAG/T,IAAI,CAACgU,IAAI,CACvBE,WAAW,CAAC9R,IAAI,GAAGuR,YACvB,CAAC,CAAA;CACL,WAAA;CAEA,UAAA,KAAK,IAAIQ,CAAC,GAAG,CAAC,EAAEC,aAAa,GAAG,CAAC,EAAED,CAAC,GAAGJ,eAAe,EAAEI,CAAC,EAAE,EAAE;CACzD,YAAA,IAAME,eAAe,GAAGF,CAAC,KAAKJ,eAAe,GAAG,CAAC,CAAA;CAEjD,YAAA,IAAIO,WAAW,GAAGF,aAAa,GAAGF,WAAW,CAAC9R,IAAI,CAAA;CAClD,YAAA,IAAIsR,kBAAkB,EAAE;eACpBY,WAAW,GAAGF,aAAa,GAAGT,YAAY,CAAA;CAC9C,aAAA;CACA,YAAA,IAAIU,eAAe,EAAE;eACjBC,WAAW,GAAGJ,WAAW,CAAC9R,IAAI,CAAA;CAClC,aAAA;CACA,YAAA,IAAImS,UAAU,GAAG,IAAI1M,gBAAgB,CACjCqM,WAAW,CAAC1M,SAAS,CAAC4M,aAAa,EAAEE,WAAW,CACpD,CAAC,CAAA;CACDF,YAAAA,aAAa,GAAGE,WAAW,CAAA;CAC3Bd,YAAAA,YAAY,CAACnQ,WAAW,CAAC,MAAM,CAAC,CAAA;CAChCmQ,YAAAA,YAAY,CAACnQ,WAAW,CAAC,MAAM,CAAC,CAAA;CAEhC,YAAA,IAAMmR,cAAc,GAAGH,eAAe,IAAIP,aAAY,CAAA;CAEtDN,YAAAA,YAAY,CAAC5P,WAAW,CACpB2Q,UAAU,CAACnS,IAAI,IAAIoS,cAAc,GAAG,CAAC,GAAG,CAAC,CAC7C,CAAC,CAAA;CACDhB,YAAAA,YAAY,CAACrM,MAAM,CAACoN,UAAU,CAAC,CAAA;CAE/B,YAAA,IAAIC,cAAc,EAAE;CAChBhB,cAAAA,YAAY,CAACrQ,SAAS,CAAC,IAAI,CAAC8N,OAAO,CAAC,CAAA;CACxC,aAAA;CACJ,WAAA;CACJ,SAAA;CAEA7J,QAAAA,MAAM,CAAC/D,WAAW,CAAC,MAAM,CAAC,CAAA;CAC1B+D,QAAAA,MAAM,CAAC/D,WAAW,CAAC,MAAM,CAAC,CAAA;SAC1B+D,MAAM,CAACxD,WAAW,CAACe,WAAW,CAACxE,MAAM,GAAG,CAAC,CAAC,CAAA;CAC1C,QAAA,KAAKK,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGmE,WAAW,CAACxE,MAAM,EAAEK,CAAC,EAAE,EAAE;CACrC4G,UAAAA,MAAM,CAACxD,WAAW,CAACe,WAAW,CAACnE,CAAC,CAAC,CAAC,CAAA;CACtC,SAAA;CACA4G,QAAAA,MAAM,CAACD,MAAM,CAACqM,YAAY,CAAC,CAAA;CAC3BpM,QAAAA,MAAM,CAAC/D,WAAW,CAAC,MAAM,CAAC,CAAA;CAC1B+D,QAAAA,MAAM,CAAC/D,WAAW,CAAC,MAAM,CAAC,CAAA;CAC1B+D,QAAAA,MAAM,CAACxD,WAAW,CAAC,GAAG,CAAC,CAAA;CAEvB,QAAA,OAAO,UAAU,CAAA;CACrB,OAAC,MAAM;CACH,QAAA,IAAI6Q,UAAU,GAAGhS,KAAK,CAAC,CAAC,CAAC,CAAA;CACzB+Q,QAAAA,YAAY,GAAG,IAAI3L,gBAAgB,CAAC4M,UAAU,CAAC,CAAA;CAC/CrN,QAAAA,MAAM,CAACD,MAAM,CAACqM,YAAY,CAAC,CAAA;SAC3B,OAAAN,IAAA,CAAAC,eAAA,CAAAG,oBAAA,CAAAT,SAAA,uBAAAnK,IAAA,CAAA,IAAA,EACItB,MAAM,EACNqN,UAAU,EACV,CAACjB,YAAY,CAACpR,IAAI,CAAC,EACnB+J,YAAY,CAAA,CAAA;CAEpB,OAAA;CACJ,KAAA;CAAC,GAAA,EAAA;KAAA3J,GAAA,EAAA,WAAA;CAAAC,IAAAA,KAAA,EAED,SAAAsO,SAAAA,CAAU3J,MAAM,EAAEjH,MAAM,EAAE;OACtB,IAAIA,MAAM,IAAI,UAAU,EAAE;CACtB,QAAA,IAAIuU,YAAY,GAAGpJ,GAAG,CAACiC,OAAO,CAACnG,MAAM,CAAC;CAClCwM,UAAAA,MAAM,GAAG,EAAE,CAAA;CAEf,QAAA,IAAIc,YAAY,CAAC/I,EAAE,CAAC,UAAU,CAAC,EAAE;CAC7B,UAAA,IAAIgJ,UAAU,GAAGvN,MAAM,CAACtC,UAAU,EAAE;CAChC8P,YAAAA,WAAW,GAAG,CAAC;CACfC,YAAAA,OAAO,GAAG,EAAE,CAAA;WAChB,IAAIF,UAAU,GAAG,GAAG,EAAE;CAClB;aACAC,WAAW,GAAGD,UAAU,GAAG,CAAC,CAAA;aAC5B,IAAInU,CAAC,GAAG,CAAC,CAAA;CACT,YAAA,OAAOA,CAAC,EAAE,GAAGoU,WAAW,EAAE;eACtBC,OAAO,CAAC5J,IAAI,CAAC7D,MAAM,CAACtC,UAAU,EAAE,CAAC,CAAA;CACrC,aAAA;CACJ,WAAC,MAAM;CACH+P,YAAAA,OAAO,GAAG,EAAE,CAAA;CAChB,WAAA;WAEA,IAAMC,eAAe,GAAG,UAAU,CAAA;WAClC,IAAMC,oBAAoB,GAAG,UAAU,CAAA;CAEvC,UAAA,IAAMC,uBAAuB,GAAG,SAA1BA,uBAAuBA,CAAG5N,MAAM,EAAI;CACtC,YAAA,IAAM6N,OAAO,GAAG3J,GAAG,CAACiC,OAAO,CAACnG,MAAM,CAAC,CAAA;CACnC,YAAA,IAAI6N,OAAO,CAACtJ,EAAE,CAACmJ,eAAe,CAAC,EAAE;CAC7B,cAAA,IAAMH,WAAU,GAAGvN,MAAM,CAACtC,UAAU,EAAE,CAAA;CACtC,cAAA,IAAMhD,MAAM,GAAGsF,MAAM,CAACI,SAAS,CAC3BJ,MAAM,CAAClF,MAAM,EACbkF,MAAM,CAAClF,MAAM,GAAGyS,WACpB,CAAC,CAAA;CACDvN,cAAAA,MAAM,CAACrE,SAAS,CAAC4R,WAAU,CAAC,CAAA;CAC5B,cAAA,OAAO7S,MAAM,CAAA;cAChB,MAAM,IAAImT,OAAO,CAACtJ,EAAE,CAACoJ,oBAAoB,CAAC,EAAE;CACzC;CACA,cAAA,IAAI3N,MAAM,CAACtC,UAAU,EAAE,KAAK,CAAC,EAAE;iBAC3B,MAAMxD,KAAK,CACP,8CACJ,CAAC,CAAA;CACL,eAAA;CACA,cAAA,OAAO,IAAI,CAAA;CACf,aAAA;aAEA,MAAMA,KAAK,CAAC,yBAAyB,CAAC,CAAA;YACzC,CAAA;;CAED;CACA,UAAA,IAAIuT,OAAO,CAAC1U,MAAM,GAAG,CAAC,EAAE;CACpB;CACA0U,YAAAA,OAAO,GAAGA,OAAO,CAAC/G,GAAG,CAAC,UAAAoH,CAAC,EAAA;CAAA,cAAA,OAAIA,CAAC,GAAG9N,MAAM,CAAClF,MAAM,CAAA;cAAC,CAAA,CAAA;CAC7C2S,YAAAA,OAAO,CAAC5J,IAAI,CAAC7D,MAAM,CAAChF,IAAI,CAAC,CAAA;;CAEzB;CACAwR,YAAAA,MAAM,GAAGjE,SAAS,CAACkF,OAAO,EAAE,CAAC,CAAC,CAAC/G,GAAG,CAAC,UAAAqH,KAAK,EAAI;eACxC,IAAMC,SAAS,GAAG,EAAE,CAAA;CACpB,cAAA,IAAAC,MAAA,GAAAC,cAAA,CAAsBH,KAAK,EAAA,CAAA,CAAA;CAApB/O,gBAAAA,KAAK,GAAAiP,MAAA,CAAA,CAAA,CAAA;CAAEvN,gBAAAA,IAAI,GAAAuN,MAAA,CAAA,CAAA,CAAA,CAAA;CAClB;CACA,cAAA,IAAME,WAAW,GAAG,IAAI1N,gBAAgB,CACpCT,MAAM,CAACtF,MAAM,EACbsF,MAAM,CAACjF,cAAc,EACrB;CACIiE,gBAAAA,KAAK,EAAEA,KAAK;CACZ0B,gBAAAA,IAAI,EAAEA,IAAI;iBACVW,MAAM,EAAErB,MAAM,CAACqB,MAAAA;CACnB,eACJ,CAAC,CAAA;eAED,IAAI+M,SAAS,GAAG,CAAC,CAAA;CACjB,cAAA,OAAO,CAACD,WAAW,CAAClP,GAAG,EAAE,EAAE;CACvB,gBAAA,IAAMoP,GAAG,GAAGT,uBAAuB,CAACO,WAAW,CAAC,CAAA;iBAChD,IAAIE,GAAG,KAAK,IAAI,EAAE;CACd,kBAAA,MAAA;CACJ,iBAAA;CACAL,gBAAAA,SAAS,CAACnK,IAAI,CAACwK,GAAG,CAAC,CAAA;iBACnBD,SAAS,IAAIC,GAAG,CAAClR,UAAU,CAAA;CAC/B,eAAA;;CAEA;CACA6C,cAAAA,MAAM,CAAClF,MAAM,GAAGqT,WAAW,CAACrT,MAAM,CAAA;;CAElC;CACA,cAAA,IAAIkT,SAAS,CAACjV,MAAM,KAAK,CAAC,EAAE;iBACxB,OAAOiV,SAAS,CAAC,CAAC,CAAC,CAAA;CACvB,eAAA;eAEA,IAAIG,WAAW,CAAC9M,MAAM,EAAE;CACpB;CACA,gBAAA,OAAO2M,SAAS,CAAA;CACpB,eAAC,MAAM;CACH;CACA,gBAAA,IAAMM,WAAW,GAAG,IAAI3T,WAAW,CAACyT,SAAS,CAAC,CAAA;CAC9C,gBAAA,IAAMG,MAAM,GAAG,IAAIrV,UAAU,CAACoV,WAAW,CAAC,CAAA;CAC1CN,gBAAAA,SAAS,CAACQ,MAAM,CAAC,UAAC1T,MAAM,EAAEJ,MAAM,EAAK;mBACjC6T,MAAM,CAACnR,GAAG,CAAC,IAAIlE,UAAU,CAACwB,MAAM,CAAC,EAAEI,MAAM,CAAC,CAAA;CAC1C,kBAAA,OAAOA,MAAM,GAAGJ,MAAM,CAACyC,UAAU,CAAA;kBACpC,EAAE,CAAC,CAAC,CAAA;CAEL,gBAAA,OAAOmR,WAAW,CAAA;CACtB,eAAA;CACJ,aAAC,CAAC,CAAA;CACN,WAAA;CACA;gBACK;CACD,YAAA,OAAO,CAACtO,MAAM,CAACf,GAAG,EAAE,EAAE;CAClB,cAAA,IAAMvE,MAAM,GAAGkT,uBAAuB,CAAC5N,MAAM,CAAC,CAAA;eAC9C,IAAItF,MAAM,KAAK,IAAI,EAAE;CACjB,gBAAA,MAAA;CACJ,eAAA;CACA8R,cAAAA,MAAM,CAAC3I,IAAI,CAACnJ,MAAM,CAAC,CAAA;CACvB,aAAA;CACJ,WAAA;CACJ,SAAC,MAAM;CACH,UAAA,MAAM,IAAIR,KAAK,CACX,kDACJ,CAAC,CAAA;CACL,SAAA;CACA,QAAA,OAAOsS,MAAM,CAAA;CACjB,OAAC,MAAM;CACH,QAAA,IAAIiC,KAAK,CAAA;CACT;CACZ;CACA;CACA;CACA;CACYA,QAAAA,KAAK,GAAGzO,MAAM,CAACI,SAAS,CAACJ,MAAM,CAAClF,MAAM,EAAEkF,MAAM,CAAClF,MAAM,GAAG/B,MAAM,CAAC,CAAA;CAC/DiH,QAAAA,MAAM,CAACrE,SAAS,CAAC5C,MAAM,CAAC,CAAA;SACxB,OAAO,CAAC0V,KAAK,CAAC,CAAA;CAClB,OAAA;CACJ,KAAA;CAAC,GAAA,CAAA,CAAA,CAAA;CAAA,EAAA,OAAAvC,oBAAA,CAAA;CAAA,CAAA,CAxO8BlH,mBAAmB,CAAA,CAAA;CAAA,IA2OhD0J,iBAAiB,0BAAAC,qBAAA,EAAA;GAAA7N,SAAA,CAAA4N,iBAAA,EAAAC,qBAAA,CAAA,CAAA;CAAA,EAAA,IAAAC,OAAA,GAAA5N,YAAA,CAAA0N,iBAAA,CAAA,CAAA;CACnB,EAAA,SAAAA,oBAAc;CAAA,IAAA,IAAAzN,KAAA,CAAA;CAAAxG,IAAAA,eAAA,OAAAiU,iBAAA,CAAA,CAAA;CACVzN,IAAAA,KAAA,GAAA2N,OAAA,CAAAtN,IAAA,OAAM,IAAI,CAAA,CAAA;KACVL,KAAA,CAAKuI,SAAS,GAAG,EAAE,CAAA;KACnBvI,KAAA,CAAK4I,OAAO,GAAGpH,aAAa,CAAA;CAAC,IAAA,OAAAxB,KAAA,CAAA;CACjC,GAAA;CAAC9F,EAAAA,YAAA,CAAAuT,iBAAA,EAAA,CAAA;KAAAtT,GAAA,EAAA,WAAA;CAAAC,IAAAA,KAAA,EAED,SAAAsO,SAAAA,CAAU3J,MAAM,EAAEjH,MAAM,EAAE;OACtB,OAAOiH,MAAM,CAAClB,eAAe,CAAC/F,MAAM,CAAC,CAAC8V,IAAI,EAAE,CAAA;CAChD,KAAA;CAAC,GAAA,CAAA,CAAA,CAAA;CAAA,EAAA,OAAAH,iBAAA,CAAA;CAAA,CAAA,CAT2B9C,yBAAyB,CAAA,CAAA;CAAA,IAYnDkD,UAAU,0BAAAC,sBAAA,EAAA;GAAAjO,SAAA,CAAAgO,UAAA,EAAAC,sBAAA,CAAA,CAAA;CAAA,EAAA,IAAAC,OAAA,GAAAhO,YAAA,CAAA8N,UAAA,CAAA,CAAA;CACZ,EAAA,SAAAA,aAAc;CAAA,IAAA,IAAA5M,MAAA,CAAA;CAAAzH,IAAAA,eAAA,OAAAqU,UAAA,CAAA,CAAA;CACV5M,IAAAA,MAAA,GAAA8M,OAAA,CAAA1N,IAAA,OAAM,IAAI,CAAA,CAAA;KACVY,MAAA,CAAKsH,SAAS,GAAG,EAAE,CAAA;KACnBtH,MAAA,CAAK2H,OAAO,GAAGpH,aAAa,CAAA;CAAC,IAAA,OAAAP,MAAA,CAAA;CACjC,GAAA;CAAC/G,EAAAA,YAAA,CAAA2T,UAAA,EAAA,CAAA;KAAA1T,GAAA,EAAA,WAAA;CAAAC,IAAAA,KAAA,EAED,SAAAsO,SAAAA,CAAU3J,MAAM,EAAEjH,MAAM,EAAE;OACtB,OAAOiH,MAAM,CAAClB,eAAe,CAAC/F,MAAM,CAAC,CAAC8V,IAAI,EAAE,CAAA;CAChD,KAAA;CAAC,GAAA,CAAA,CAAA,CAAA;CAAA,EAAA,OAAAC,UAAA,CAAA;CAAA,CAAA,CAToBlD,yBAAyB,CAAA,CAAA;CAAA,IAY5CqD,SAAS,0BAAAC,sBAAA,EAAA;GAAApO,SAAA,CAAAmO,SAAA,EAAAC,sBAAA,CAAA,CAAA;CAAA,EAAA,IAAAC,OAAA,GAAAnO,YAAA,CAAAiO,SAAA,CAAA,CAAA;CACX,EAAA,SAAAA,YAAc;CAAA,IAAA,IAAAG,MAAA,CAAA;CAAA3U,IAAAA,eAAA,OAAAwU,SAAA,CAAA,CAAA;CACVG,IAAAA,MAAA,GAAAD,OAAA,CAAA7N,IAAA,OAAM,IAAI,CAAA,CAAA;KACV8N,MAAA,CAAK5F,SAAS,GAAG,CAAC,CAAA;KAClB4F,MAAA,CAAKvF,OAAO,GAAGpH,aAAa,CAAA;KAC5B2M,MAAA,CAAK7F,KAAK,GAAG,IAAI,CAAA;KACjB6F,MAAA,CAAK3F,YAAY,GAAG,EAAE,CAAA;CAAC,IAAA,OAAA2F,MAAA,CAAA;CAC3B,GAAA;GAAC,OAAAjU,YAAA,CAAA8T,SAAA,CAAA,CAAA;CAAA,CAAA,CAPmBrD,yBAAyB,CAAA,CAAA;CAAA,IAU3CyD,YAAY,0BAAAC,qBAAA,EAAA;GAAAxO,SAAA,CAAAuO,YAAA,EAAAC,qBAAA,CAAA,CAAA;CAAA,EAAA,IAAAC,OAAA,GAAAvO,YAAA,CAAAqO,YAAA,CAAA,CAAA;CACd,EAAA,SAAAA,eAAc;CAAA,IAAA,IAAAG,MAAA,CAAA;CAAA/U,IAAAA,eAAA,OAAA4U,YAAA,CAAA,CAAA;CACVG,IAAAA,MAAA,GAAAD,OAAA,CAAAjO,IAAA,OAAM,IAAI,CAAA,CAAA;KACVkO,MAAA,CAAKhG,SAAS,GAAG,CAAC,CAAA;KAClBgG,MAAA,CAAK/J,WAAW,GAAG,CAAC,CAAA;KACpB+J,MAAA,CAAK3F,OAAO,GAAGrH,YAAY,CAAA;KAC3BgN,MAAA,CAAKjG,KAAK,GAAG,IAAI,CAAA;CAAC,IAAA,OAAAiG,MAAA,CAAA;CACtB,GAAA;CAACrU,EAAAA,YAAA,CAAAkU,YAAA,EAAA,CAAA;KAAAjU,GAAA,EAAA,WAAA;CAAAC,IAAAA,KAAA,EAED,SAAAsO,SAAU3J,CAAAA,MAAM,EAAE;CACd,MAAA,OAAOkE,GAAG,CAACiC,OAAO,CAACnG,MAAM,CAAC,CAAC3E,KAAK,CAAA;CACpC,KAAA;CAAC,GAAA,EAAA;KAAAD,GAAA,EAAA,YAAA;KAAAC,KAAA,EAED,SAAAqK,UAAW1F,CAAAA,MAAM,EAAE3E,KAAK,EAAE0J,YAAY,EAAE;CACpC,MAAA,OAAA+G,IAAA,CAAAC,eAAA,CAAAsD,YAAA,CAAA5D,SAAA,CAAA,EAAA,YAAA,EAAA,IAAA,CAAA,CAAAnK,IAAA,CAAA,IAAA,EACItB,MAAM,EACN3E,KAAK,EAAAyQ,IAAA,CAAAC,eAAA,CAAAsD,YAAA,CAAA5D,SAAA,CAAAnK,EAAAA,OAAAA,EAAAA,IAAAA,CAAAA,CAAAA,IAAA,CACOtB,IAAAA,EAAAA,MAAM,EAAE,YAAY,EAAE3E,KAAK,GACvC0J,YAAY,CAAA,CAAA;CAEpB,KAAA;CAAC,GAAA,CAAA,CAAA,CAAA;CAAA,EAAA,OAAAsK,YAAA,CAAA;CAAA,CAAA,CApBsBrK,mBAAmB,CAAA,CAAA;CAAA,IAuBxCyK,SAAS,0BAAAC,sBAAA,EAAA;GAAA5O,SAAA,CAAA2O,SAAA,EAAAC,sBAAA,CAAA,CAAA;CAAA,EAAA,IAAAC,OAAA,GAAA3O,YAAA,CAAAyO,SAAA,CAAA,CAAA;GACX,SAAAA,SAAAA,CAAYpU,KAAK,EAAE;CAAA,IAAA,IAAAuU,MAAA,CAAA;CAAAnV,IAAAA,eAAA,OAAAgV,SAAA,CAAA,CAAA;CACfG,IAAAA,MAAA,GAAAD,OAAA,CAAArO,IAAA,CAAM,IAAA,EAAA,IAAI,EAAEjG,KAAK,CAAA,CAAA;KACjBuU,MAAA,CAAKpG,SAAS,GAAG,EAAE,CAAA;KACnBoG,MAAA,CAAK/F,OAAO,GAAGpH,aAAa,CAAA;CAC5B;KACAmN,MAAA,CAAKnG,YAAY,GAAG,EAAE,CAAA;CAAC,IAAA,OAAAmG,MAAA,CAAA;CAC3B,GAAA;GAAC,OAAAzU,YAAA,CAAAsU,SAAA,CAAA,CAAA;CAAA,CAAA,CAPmB7D,yBAAyB,CAAA,CAAA;CAAA,IAU3CiE,aAAa,0BAAAC,sBAAA,EAAA;GAAAhP,SAAA,CAAA+O,aAAA,EAAAC,sBAAA,CAAA,CAAA;CAAA,EAAA,IAAAC,OAAA,GAAA/O,YAAA,CAAA6O,aAAA,CAAA,CAAA;CACf,EAAA,SAAAA,gBAAc;CAAA,IAAA,IAAAG,MAAA,CAAA;CAAAvV,IAAAA,eAAA,OAAAoV,aAAA,CAAA,CAAA;CACVG,IAAAA,MAAA,GAAAD,OAAA,CAAAzO,IAAA,OAAM,IAAI,CAAA,CAAA;KACV0O,MAAA,CAAKxG,SAAS,GAAG,EAAE,CAAA;KACnBwG,MAAA,CAAKnG,OAAO,GAAGpH,aAAa,CAAA;CAAC,IAAA,OAAAuN,MAAA,CAAA;CACjC,GAAA;CAAC7U,EAAAA,YAAA,CAAA0U,aAAA,EAAA,CAAA;KAAAzU,GAAA,EAAA,WAAA;CAAAC,IAAAA,KAAA,EAED,SAAAsO,SAAAA,CAAU3J,MAAM,EAAEjH,MAAM,EAAE;CACtB,MAAA,IAAMkX,SAAS,GAAG/Q,MAAM,CAACC,YAAY,CAACoD,YAAY,CAAC,CAAA;CACnD,MAAA,IAAI2N,EAAE,GAAGlQ,MAAM,CAAClB,eAAe,CAAC/F,MAAM,CAAC,CAAA;OACvCmX,EAAE,GAAGA,EAAE,CAAC1I,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAA;OACtC,IAAI0I,EAAE,CAACjH,OAAO,CAACgH,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE;CAC9B;CACA,QAAA,IAAME,OAAO,GAAGD,EAAE,CAAC5J,KAAK,CAAC2J,SAAS,CAAC,CAAA;CACnCC,QAAAA,EAAE,GAAGC,OAAO,CAACzJ,GAAG,CAAC,UAAAwJ,EAAE,EAAA;WAAA,OAAKA,EAAE,KAAK,EAAE,GAAG,IAAI,GAAGE,MAAM,CAACF,EAAE,CAAC,CAAA;CAAA,SAAC,CAAC,CAAA;CAC3D,OAAC,MAAM;CACHA,QAAAA,EAAE,GAAG,CAACA,EAAE,KAAK,EAAE,GAAG,IAAI,GAAGE,MAAM,CAACF,EAAE,CAAC,CAAC,CAAA;CACxC,OAAA;CAEA,MAAA,OAAOA,EAAE,CAAA;CACb,KAAA;CAAC,GAAA,EAAA;KAAA9U,GAAA,EAAA,aAAA;CAAAC,IAAAA,KAAA,EAED,SAAAgV,WAAYhV,CAAAA,KAAK,EAAE;CACf,MAAA,IAAIA,KAAK,KAAK,IAAI,EAAE,OAAO,EAAE,CAAA;CAE7B,MAAA,IAAI0K,GAAG,GAAG7G,MAAM,CAAC7D,KAAK,CAAC,CAAA;CACvB,MAAA,IAAI0K,GAAG,CAAChN,MAAM,GAAG,IAAI,CAACyQ,SAAS,EAAE;CAC7B;SACA,IAAM8G,UAAU,GAAGjV,KAAK,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;;CAEpC;CACA,QAAA,IAAMkV,MAAM,GAAG3X,IAAI,CAAC4X,KAAK,CAAC5X,IAAI,CAAC6X,GAAG,CAACpV,KAAK,CAAC,CAAC,CAAA;;CAE1C;CACA;CACA;CACA;CACA;CACA;CACA;SACA,IAAMqV,cAAc,GAAGH,MAAM,GAAG,CAAC,CAAC,IAAIA,MAAM,IAAI,EAAE,GAAGD,UAAU,CAAA;CAC/D,QAAA,IAAII,cAAc,EAAE;WAChB,IAAMC,SAAS,GAAGtV,KAAK,CAACuV,aAAa,CAAC,EAAE,GAAGN,UAAU,CAAC,CAAA;CACtD,UAAA,IAAIK,SAAS,CAAC5X,MAAM,IAAI,EAAE,EAAE,OAAO4X,SAAS,CAAA;CAC5C;CACA,UAAA,OAAOtV,KAAK,CAACuV,aAAa,CACtB,EAAE,IAAID,SAAS,CAAC5X,MAAM,GAAG,EAAE,CAAC,GAAGuX,UACnC,CAAC,CAAA;CACL,SAAC,MAAM;WACH,IAAMK,UAAS,GAAGtV,KAAK,CAACwV,OAAO,CAAC,EAAE,GAAGP,UAAU,CAAC,CAAA;CAChD,UAAA,IAAIK,UAAS,CAAC5X,MAAM,IAAI,EAAE,EAAE,OAAO4X,UAAS,CAAA;CAC5C;CACA,UAAA,OAAOtV,KAAK,CAACwV,OAAO,CAAC,EAAE,GAAGP,UAAU,IAAIK,UAAS,CAAC5X,MAAM,GAAG,EAAE,CAAC,CAAC,CAAA;CACnE,SAAA;CACJ,OAAA;CACA,MAAA,OAAOgN,GAAG,CAAA;CACd,KAAA;CAAC,GAAA,EAAA;KAAA3K,GAAA,EAAA,YAAA;KAAAC,KAAA,EAED,SAAAqK,UAAW1F,CAAAA,MAAM,EAAE3E,KAAK,EAAE0J,YAAY,EAAE;CAAA,MAAA,IAAA+L,MAAA,GAAA,IAAA,CAAA;CACpC,MAAA,IAAM9W,GAAG,GAAG2J,KAAK,CAACC,OAAO,CAACvI,KAAK,CAAC,GAC1BA,KAAK,CAACqL,GAAG,CAAC,UAAAwJ,EAAE,EAAA;CAAA,QAAA,OAAIY,MAAI,CAACT,WAAW,CAACH,EAAE,CAAC,CAAA;QAAC,CAAA,GACrC,CAAC,IAAI,CAACG,WAAW,CAAChV,KAAK,CAAC,CAAC,CAAA;CAC/B,MAAA,OAAAyQ,IAAA,CAAAC,eAAA,CAAA8D,aAAA,CAAApE,SAAA,CAAAnK,EAAAA,YAAAA,EAAAA,IAAAA,CAAAA,CAAAA,IAAA,CAAwBtB,IAAAA,EAAAA,MAAM,EAAEhG,GAAG,EAAE+K,YAAY,CAAA,CAAA;CACrD,KAAA;CAAC,GAAA,CAAA,CAAA,CAAA;CAAA,EAAA,OAAA8K,aAAA,CAAA;CAAA,CAAA,CA/DuBjE,yBAAyB,CAAA,CAAA;CAAA,IAkE/CmF,QAAQ,0BAAAC,sBAAA,EAAA;GAAAlQ,SAAA,CAAAiQ,QAAA,EAAAC,sBAAA,CAAA,CAAA;CAAA,EAAA,IAAAC,QAAA,GAAAjQ,YAAA,CAAA+P,QAAA,CAAA,CAAA;CACV,EAAA,SAAAA,WAAc;CAAA,IAAA,IAAAG,MAAA,CAAA;CAAAzW,IAAAA,eAAA,OAAAsW,QAAA,CAAA,CAAA;CACVG,IAAAA,MAAA,GAAAD,QAAA,CAAA3P,IAAA,OAAM,IAAI,CAAA,CAAA;KACV4P,MAAA,CAAK1H,SAAS,GAAG,EAAE,CAAA;KACnB0H,MAAA,CAAKrH,OAAO,GAAGpH,aAAa,CAAA;CAAC,IAAA,OAAAyO,MAAA,CAAA;CACjC,GAAA;GAAC,OAAA/V,YAAA,CAAA4V,QAAA,CAAA,CAAA;CAAA,CAAA,CALkBnF,yBAAyB,CAAA,CAAA;CAAA,IAQ1CuF,mBAAmB,0BAAAC,qBAAA,EAAA;GAAAtQ,SAAA,CAAAqQ,mBAAA,EAAAC,qBAAA,CAAA,CAAA;CAAA,EAAA,IAAAC,QAAA,GAAArQ,YAAA,CAAAmQ,mBAAA,CAAA,CAAA;CACrB,EAAA,SAAAA,sBAAc;CAAA,IAAA,IAAAG,MAAA,CAAA;CAAA7W,IAAAA,eAAA,OAAA0W,mBAAA,CAAA,CAAA;CACVG,IAAAA,MAAA,GAAAD,QAAA,CAAA/P,IAAA,OAAM,IAAI,CAAA,CAAA;KACVgQ,MAAA,CAAK9H,SAAS,GAAG,CAAC,CAAA;KAClB8H,MAAA,CAAKzH,OAAO,GAAGrH,YAAY,CAAA;KAC3B8O,MAAA,CAAK/H,KAAK,GAAG,IAAI,CAAA;KACjB+H,MAAA,CAAK7H,YAAY,GAAG,GAAG,CAAA;CAAC,IAAA,OAAA6H,MAAA,CAAA;CAC5B,GAAA;CAACnW,EAAAA,YAAA,CAAAgW,mBAAA,EAAA,CAAA;KAAA/V,GAAA,EAAA,WAAA;CAAAC,IAAAA,KAAA,EAED,SAAAsO,SAAU3J,CAAAA,MAAM,EAAE;CACd,MAAA,OAAOoQ,MAAM,CAACpQ,MAAM,CAACtB,SAAS,EAAE,CAAC,CAAA;CACrC,KAAA;CAAC,GAAA,EAAA;KAAAtD,GAAA,EAAA,YAAA;KAAAC,KAAA,EAED,SAAAqK,UAAW1F,CAAAA,MAAM,EAAE3E,KAAK,EAAE0J,YAAY,EAAE;CACpC,MAAA,OAAA+G,IAAA,CAAAC,eAAA,CAAAoF,mBAAA,CAAA1F,SAAA,CAAA,EAAA,YAAA,EAAA,IAAA,CAAA,CAAAnK,IAAA,CAAA,IAAA,EACItB,MAAM,EACN3E,KAAK,EAAAyQ,IAAA,CAAAC,eAAA,CAAAoF,mBAAA,CAAA1F,SAAA,CAAAnK,EAAAA,OAAAA,EAAAA,IAAAA,CAAAA,CAAAA,IAAA,CACOtB,IAAAA,EAAAA,MAAM,EAAE,OAAO,EAAE3E,KAAK,GAClC0J,YAAY,CAAA,CAAA;CAEpB,KAAA;CAAC,GAAA,CAAA,CAAA,CAAA;CAAA,EAAA,OAAAoM,mBAAA,CAAA;CAAA,CAAA,CApB6BnM,mBAAmB,CAAA,CAAA;CAAA,IAuB/CuM,mBAAmB,0BAAAC,qBAAA,EAAA;GAAA1Q,SAAA,CAAAyQ,mBAAA,EAAAC,qBAAA,CAAA,CAAA;CAAA,EAAA,IAAAC,QAAA,GAAAzQ,YAAA,CAAAuQ,mBAAA,CAAA,CAAA;CACrB,EAAA,SAAAA,sBAAc;CAAA,IAAA,IAAAG,OAAA,CAAA;CAAAjX,IAAAA,eAAA,OAAA8W,mBAAA,CAAA,CAAA;CACVG,IAAAA,OAAA,GAAAD,QAAA,CAAAnQ,IAAA,OAAM,IAAI,CAAA,CAAA;KACVoQ,OAAA,CAAKlI,SAAS,GAAG,CAAC,CAAA;KAClBkI,OAAA,CAAK7H,OAAO,GAAGrH,YAAY,CAAA;KAC3BkP,OAAA,CAAKnI,KAAK,GAAG,IAAI,CAAA;KACjBmI,OAAA,CAAKjI,YAAY,GAAG,GAAG,CAAA;CAAC,IAAA,OAAAiI,OAAA,CAAA;CAC5B,GAAA;CAACvW,EAAAA,YAAA,CAAAoW,mBAAA,EAAA,CAAA;KAAAnW,GAAA,EAAA,WAAA;CAAAC,IAAAA,KAAA,EAED,SAAAsO,SAAU3J,CAAAA,MAAM,EAAE;CACd,MAAA,OAAOoQ,MAAM,CAACpQ,MAAM,CAACpB,UAAU,EAAE,CAAC,CAAA;CACtC,KAAA;CAAC,GAAA,EAAA;KAAAxD,GAAA,EAAA,YAAA;KAAAC,KAAA,EAED,SAAAqK,UAAW1F,CAAAA,MAAM,EAAE3E,KAAK,EAAE0J,YAAY,EAAE;CACpC,MAAA,OAAA+G,IAAA,CAAAC,eAAA,CAAAwF,mBAAA,CAAA9F,SAAA,CAAA,EAAA,YAAA,EAAA,IAAA,CAAA,CAAAnK,IAAA,CAAA,IAAA,EACItB,MAAM,EACN3E,KAAK,EAAAyQ,IAAA,CAAAC,eAAA,CAAAwF,mBAAA,CAAA9F,SAAA,CAAAnK,EAAAA,OAAAA,EAAAA,IAAAA,CAAAA,CAAAA,IAAA,CACOtB,IAAAA,EAAAA,MAAM,EAAE,QAAQ,EAAE3E,KAAK,GACnC0J,YAAY,CAAA,CAAA;CAEpB,KAAA;CAAC,GAAA,CAAA,CAAA,CAAA;CAAA,EAAA,OAAAwM,mBAAA,CAAA;CAAA,CAAA,CApB6BvM,mBAAmB,CAAA,CAAA;CAAA,IAuB/C2M,aAAa,0BAAAC,sBAAA,EAAA;GAAA9Q,SAAA,CAAA6Q,aAAA,EAAAC,sBAAA,CAAA,CAAA;CAAA,EAAA,IAAAC,QAAA,GAAA7Q,YAAA,CAAA2Q,aAAA,CAAA,CAAA;CACf,EAAA,SAAAA,gBAAc;CAAA,IAAA,IAAAG,OAAA,CAAA;CAAArX,IAAAA,eAAA,OAAAkX,aAAA,CAAA,CAAA;CACVG,IAAAA,OAAA,GAAAD,QAAA,CAAAvQ,IAAA,OAAM,IAAI,CAAA,CAAA;KACVwQ,OAAA,CAAKtI,SAAS,GAAG,EAAE,CAAA;KACnBsI,OAAA,CAAKjI,OAAO,GAAGpH,aAAa,CAAA;CAAC,IAAA,OAAAqP,OAAA,CAAA;CACjC,GAAA;CAAC3W,EAAAA,YAAA,CAAAwW,aAAA,EAAA,CAAA;KAAAvW,GAAA,EAAA,WAAA;CAAAC,IAAAA,KAAA,EAED,SAAAsO,SAAAA,CAAU3J,MAAM,EAAEjH,MAAM,EAAE;CACtB,MAAA,IAAMkX,SAAS,GAAG/Q,MAAM,CAACC,YAAY,CAACoD,YAAY,CAAC,CAAA;OACnD,IAAIgC,EAAE,GAAGvE,MAAM,CAAClB,eAAe,CAAC/F,MAAM,CAAC,CAAC8V,IAAI,EAAE,CAAA;OAE9CtK,EAAE,GAAGA,EAAE,CAACiD,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAA;OAEtC,IAAIjD,EAAE,CAAC0E,OAAO,CAACgH,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE;CAC9B;CACA,QAAA,IAAM8B,kBAAkB,GAAGxN,EAAE,CAAC+B,KAAK,CAAC2J,SAAS,CAAC,CAAA;CAC9C1L,QAAAA,EAAE,GAAGwN,kBAAkB,CAACrL,GAAG,CAAC,UAAAnC,EAAE,EAAA;WAAA,OAAKA,EAAE,KAAK,EAAE,GAAG,IAAI,GAAG6L,MAAM,CAAC7L,EAAE,CAAC,CAAA;CAAA,SAAC,CAAC,CAAA;CACtE,OAAC,MAAM;CACHA,QAAAA,EAAE,GAAG,CAACA,EAAE,KAAK,EAAE,GAAG,IAAI,GAAG6L,MAAM,CAAC7L,EAAE,CAAC,CAAC,CAAA;CACxC,OAAA;CAEA,MAAA,OAAOA,EAAE,CAAA;CACb,KAAA;CAAC,GAAA,EAAA;KAAAnJ,GAAA,EAAA,aAAA;CAAAC,IAAAA,KAAA,EAED,SAAAgV,WAAYhV,CAAAA,KAAK,EAAE;OACf,OAAOA,KAAK,KAAK,IAAI,GAAG,EAAE,GAAG6D,MAAM,CAAC7D,KAAK,CAAC,CAAA;CAC9C,KAAA;CAAC,GAAA,EAAA;KAAAD,GAAA,EAAA,YAAA;KAAAC,KAAA,EAED,SAAAqK,UAAW1F,CAAAA,MAAM,EAAE3E,KAAK,EAAE0J,YAAY,EAAE;CAAA,MAAA,IAAAiN,OAAA,GAAA,IAAA,CAAA;CACpC,MAAA,IAAMhY,GAAG,GAAG2J,KAAK,CAACC,OAAO,CAACvI,KAAK,CAAC,GAC1BA,KAAK,CAACqL,GAAG,CAAC,UAAAnC,EAAE,EAAA;CAAA,QAAA,OAAIyN,OAAI,CAAC3B,WAAW,CAAC9L,EAAE,CAAC,CAAA;QAAC,CAAA,GACrC,CAAC,IAAI,CAAC8L,WAAW,CAAChV,KAAK,CAAC,CAAC,CAAA;CAC/B,MAAA,OAAAyQ,IAAA,CAAAC,eAAA,CAAA4F,aAAA,CAAAlG,SAAA,CAAAnK,EAAAA,YAAAA,EAAAA,IAAAA,CAAAA,CAAAA,IAAA,CAAwBtB,IAAAA,EAAAA,MAAM,EAAEhG,GAAG,EAAE+K,YAAY,CAAA,CAAA;CACrD,KAAA;CAAC,GAAA,CAAA,CAAA,CAAA;CAAA,EAAA,OAAA4M,aAAA,CAAA;CAAA,CAAA,CAjCuB/F,yBAAyB,CAAA,CAAA;CAAA,IAoC/CqG,UAAU,0BAAAC,qBAAA,EAAA;GAAApR,SAAA,CAAAmR,UAAA,EAAAC,qBAAA,CAAA,CAAA;CAAA,EAAA,IAAAC,QAAA,GAAAnR,YAAA,CAAAiR,UAAA,CAAA,CAAA;CACZ,EAAA,SAAAA,aAAc;CAAA,IAAA,IAAAG,OAAA,CAAA;CAAA3X,IAAAA,eAAA,OAAAwX,UAAA,CAAA,CAAA;CACVG,IAAAA,OAAA,GAAAD,QAAA,CAAA7Q,IAAA,OAAM,IAAI,CAAA,CAAA;KACV8Q,OAAA,CAAKlH,aAAa,GAAG,EAAE,CAAA;KACvBkH,OAAA,CAAKvI,OAAO,GAAGpH,aAAa,CAAA;CAAC,IAAA,OAAA2P,OAAA,CAAA;CACjC,GAAA;CAACjX,EAAAA,YAAA,CAAA8W,UAAA,EAAA,CAAA;KAAA7W,GAAA,EAAA,WAAA;CAAAC,IAAAA,KAAA,EAED,SAAAsO,SAAAA,CAAU3J,MAAM,EAAEjH,MAAM,EAAE;OACtB,OAAOiH,MAAM,CAACV,iBAAiB,CAACvG,MAAM,CAAC,CAAC8V,IAAI,EAAE,CAAA;CAClD,KAAA;CAAC,GAAA,CAAA,CAAA,CAAA;CAAA,EAAA,OAAAoD,UAAA,CAAA;CAAA,CAAA,CAToBjG,2BAA2B,CAAA,CAAA;CAAA,IAY9CqG,QAAQ,0BAAAC,sBAAA,EAAA;GAAAxR,SAAA,CAAAuR,QAAA,EAAAC,sBAAA,CAAA,CAAA;CAAA,EAAA,IAAAC,QAAA,GAAAvR,YAAA,CAAAqR,QAAA,CAAA,CAAA;CACV,EAAA,SAAAA,WAAc;CAAA,IAAA,IAAAG,OAAA,CAAA;CAAA/X,IAAAA,eAAA,OAAA4X,QAAA,CAAA,CAAA;CACVG,IAAAA,OAAA,GAAAD,QAAA,CAAAjR,IAAA,OAAM,IAAI,CAAA,CAAA;KACVkR,OAAA,CAAKtH,aAAa,GAAG,KAAK,CAAA;KAC1BsH,OAAA,CAAK3I,OAAO,GAAGpH,aAAa,CAAA;CAAC,IAAA,OAAA+P,OAAA,CAAA;CACjC,GAAA;CAACrX,EAAAA,YAAA,CAAAkX,QAAA,EAAA,CAAA;KAAAjX,GAAA,EAAA,WAAA;CAAAC,IAAAA,KAAA,EAED,SAAAsO,SAAAA,CAAU3J,MAAM,EAAEjH,MAAM,EAAE;OACtB,OAAOuP,KAAK,CAACtI,MAAM,CAACV,iBAAiB,CAACvG,MAAM,CAAC,CAAC,CAAA;CAClD,KAAA;CAAC,GAAA,CAAA,CAAA,CAAA;CAAA,EAAA,OAAAsZ,QAAA,CAAA;CAAA,CAAA,CATkBrG,2BAA2B,CAAA,CAAA;CAAA,IAY5CyG,UAAU,0BAAAC,sBAAA,EAAA;GAAA5R,SAAA,CAAA2R,UAAA,EAAAC,sBAAA,CAAA,CAAA;CAAA,EAAA,IAAAC,QAAA,GAAA3R,YAAA,CAAAyR,UAAA,CAAA,CAAA;CACZ,EAAA,SAAAA,aAAc;CAAA,IAAA,IAAAG,OAAA,CAAA;CAAAnY,IAAAA,eAAA,OAAAgY,UAAA,CAAA,CAAA;CACVG,IAAAA,OAAA,GAAAD,QAAA,CAAArR,IAAA,OAAM,IAAI,CAAA,CAAA;KACVsR,OAAA,CAAKpJ,SAAS,GAAG,IAAI,CAAA;KACrBoJ,OAAA,CAAK/I,OAAO,GAAGpH,aAAa,CAAA;CAAC,IAAA,OAAAmQ,OAAA,CAAA;CACjC,GAAA;CAACzX,EAAAA,YAAA,CAAAsX,UAAA,EAAA,CAAA;KAAArX,GAAA,EAAA,mBAAA;KAAAC,KAAA;CAWD;CACA;CACA;KACA,SAAAgN,iBAAAA,CAAkBhN,KAAK,EAAE;CACrB,MAAA,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;CAC3BA,QAAAA,KAAK,GAAG,IAAI6D,MAAM,CAAC7D,KAAK,CAAC,CAAA;CAC7B,OAAA;OACA,IAAIA,KAAK,IAAI+F,SAAS,EAAE;CACpB,QAAA,IAAIsC,OAAA,CAAOrI,KAAK,CAAA,KAAK,QAAQ,EAAE;CAC3B,UAAA,OAAOyM,SAAS,CAACJ,mBAAmB,CAACrM,KAAK,CAAC,CAAA;CAC/C,SAAC,MAAM;CACH,UAAA,MAAM,IAAInB,KAAK,CACX,+CACJ,CAAC,CAAA;CACL,SAAA;CACJ,OAAA;CACA,MAAA,OAAOmB,KAAK,CAAA;CAChB,KAAA;;CAEA;CAAA,GAAA,EAAA;KAAAD,GAAA,EAAA,aAAA;CAAAC,IAAAA,KAAA,EACA,SAAA4P,WAAY5P,CAAAA,KAAK,EAAE;CACf,MAAA,IAAIsI,KAAK,CAACC,OAAO,CAACvI,KAAK,CAAC,EAAE;CACtB;CACA;CACA;CACA;CAAA,QAAA,IAAAwX,SAAA,GAAAC,0BAAA,CACsBzX,KAAK,CAAA;WAAA0X,KAAA,CAAA;CAAA,QAAA,IAAA;WAA3B,KAAAF,SAAA,CAAAG,CAAA,EAAAD,EAAAA,CAAAA,CAAAA,KAAA,GAAAF,SAAA,CAAAI,CAAA,EAAAC,EAAAA,IAAA,GAA6B;CAAA,YAAA,IAAlBC,OAAO,GAAAJ,KAAA,CAAA1X,KAAA,CAAA;CACd,YAAA,IAAMsL,UAAU,GAAGK,MAAM,CAACoM,IAAI,CAACD,OAAO,CAAC,CAAChJ,OAAO,CAC3C,UAAA/O,GAAG,EAAA;eAAA,OAAIC,KAAK,CAACD,GAAG,CAAC,CAAA;CAAA,aACrB,CAAC,CAAA;aACD,IAAI,CAACqX,UAAU,CAACY,qBAAqB,CAAC1M,UAAU,CAAC,EAAE,OAAO,KAAK,CAAA;CACnE,WAAA;CAAC,SAAA,CAAA,OAAA2M,GAAA,EAAA;WAAAT,SAAA,CAAA/E,CAAA,CAAAwF,GAAA,CAAA,CAAA;CAAA,SAAA,SAAA;CAAAT,UAAAA,SAAA,CAAAU,CAAA,EAAA,CAAA;CAAA,SAAA;QACJ,MAAM,IAAI,OAAOlY,KAAK,KAAK,QAAQ,IAAIA,KAAK,YAAY6D,MAAM,EAAE;CAC7D;CACA;CACA;CACA;CACA;CACA;CACA;CACA,QAAA,IAAM2F,MAAM,GAAGxJ,KAAK,CAACiL,KAAK,CAACpH,MAAM,CAACC,YAAY,CAACoD,YAAY,CAAC,CAAC,CAAA;CAAC,QAAA,IAAAiR,UAAA,GAAAV,0BAAA,CAEzCjO,MAAM,CAAA;WAAA4O,MAAA,CAAA;CAAA,QAAA,IAAA;WAA3B,KAAAD,UAAA,CAAAR,CAAA,EAAAS,EAAAA,CAAAA,CAAAA,MAAA,GAAAD,UAAA,CAAAP,CAAA,EAAAC,EAAAA,IAAA,GAA6B;CAAA,YAAA,IAApBQ,QAAQ,GAAAD,MAAA,CAAApY,KAAA,CAAA;CACb,YAAA,IAAMsL,WAAU,GAAG+M,QAAQ,CAACpN,KAAK,CAC7BpH,MAAM,CAACC,YAAY,CAACuD,sBAAsB,CAC9C,CAAC,CAAA;aACD,IAAI,CAAC+P,UAAU,CAACY,qBAAqB,CAAC1M,WAAU,CAAC,EAAE,OAAO,KAAK,CAAA;CACnE,WAAA;CAAC,SAAA,CAAA,OAAA2M,GAAA,EAAA;WAAAE,UAAA,CAAA1F,CAAA,CAAAwF,GAAA,CAAA,CAAA;CAAA,SAAA,SAAA;CAAAE,UAAAA,UAAA,CAAAD,CAAA,EAAA,CAAA;CAAA,SAAA;CACL,OAAA;CACA,MAAA,OAAO,IAAI,CAAA;CACf,KAAA;CAAC,GAAA,EAAA;KAAAnY,GAAA,EAAA,WAAA;CAAAC,IAAAA,KAAA,EAED,SAAAsO,SAAAA,CAAU3J,MAAM,EAAEjH,MAAM,EAAE;OACtB,IAAMgG,MAAM,GAAG,IAAI,CAAC+K,uBAAuB,CAAC9J,MAAM,EAAEjH,MAAM,CAAC,CAAA;CAC3D,MAAA,OAAO+O,SAAS,CAACC,qBAAqB,CAAChJ,MAAM,CAAC,CAAA;CAClD,KAAA;CAAC,GAAA,EAAA;KAAA3D,GAAA,EAAA,YAAA;KAAAC,KAAA,EAED,SAAAqK,UAAW1F,CAAAA,MAAM,EAAE3E,KAAK,EAAE0J,YAAY,EAAE;CACpC,MAAA,OAAA+G,IAAA,CAAAC,eAAA,CAAA0G,UAAA,CAAAhH,SAAA,CAAAnK,EAAAA,YAAAA,EAAAA,IAAAA,CAAAA,CAAAA,IAAA,OACItB,MAAM,EACN8H,SAAS,CAACZ,gBAAgB,CAAC7L,KAAK,CAAC,EACjC0J,YAAY,CAAA,CAAA;CAEpB,KAAA;CAAC,GAAA,CAAA,EAAA,CAAA;KAAA3J,GAAA,EAAA,uBAAA;CAAAC,IAAAA,KAAA,EAxED,SAAAgY,qBAA6B1M,CAAAA,UAAU,EAAE;CACrC,MAAA,KAAK,IAAIvN,CAAC,IAAIuN,UAAU,EAAE;CACtB,QAAA,IAAIgN,GAAG,GAAGhN,UAAU,CAACvN,CAAC,CAAC,CAAA;CACvB;CACA,QAAA,IAAIua,GAAG,CAAC5a,MAAM,GAAG,EAAE,EAAE,OAAO,KAAK,CAAA;CACrC,OAAA;CACA,MAAA,OAAO,IAAI,CAAA;CACf,KAAA;CAAC,GAAA,CAAA,CAAA,CAAA;CAAA,EAAA,OAAA0Z,UAAA,CAAA;CAAA,CAAA,CAdoBzG,2BAA2B,CAAA,CAAA;CAAA,IAkF9C4H,WAAW,0BAAAC,sBAAA,EAAA;GAAA/S,SAAA,CAAA8S,WAAA,EAAAC,sBAAA,CAAA,CAAA;CAAA,EAAA,IAAAC,QAAA,GAAA9S,YAAA,CAAA4S,WAAA,CAAA,CAAA;CACb,EAAA,SAAAA,cAAc;CAAA,IAAA,IAAAG,OAAA,CAAA;CAAAtZ,IAAAA,eAAA,OAAAmZ,WAAA,CAAA,CAAA;CACVG,IAAAA,OAAA,GAAAD,QAAA,CAAAxS,IAAA,OAAM,IAAI,CAAA,CAAA;KACVyS,OAAA,CAAK7I,aAAa,GAAG,EAAE,CAAA;KACvB6I,OAAA,CAAKlK,OAAO,GAAGpH,aAAa,CAAA;CAAC,IAAA,OAAAsR,OAAA,CAAA;CACjC,GAAA;CAAC5Y,EAAAA,YAAA,CAAAyY,WAAA,EAAA,CAAA;KAAAxY,GAAA,EAAA,WAAA;CAAAC,IAAAA,KAAA,EAED,SAAAsO,SAAAA,CAAU3J,MAAM,EAAEjH,MAAM,EAAE;OACtB,OAAOiH,MAAM,CAACV,iBAAiB,CAACvG,MAAM,CAAC,CAAC8V,IAAI,EAAE,CAAA;CAClD,KAAA;CAAC,GAAA,CAAA,CAAA,CAAA;CAAA,EAAA,OAAA+E,WAAA,CAAA;CAAA,CAAA,CATqB5H,2BAA2B,CAAA,CAAA;CAAA,IAY/CgI,UAAU,0BAAAC,qBAAA,EAAA;GAAAnT,SAAA,CAAAkT,UAAA,EAAAC,qBAAA,CAAA,CAAA;CAAA,EAAA,IAAAC,QAAA,GAAAlT,YAAA,CAAAgT,UAAA,CAAA,CAAA;CACZ,EAAA,SAAAA,aAAc;CAAA,IAAA,IAAAG,OAAA,CAAA;CAAA1Z,IAAAA,eAAA,OAAAuZ,UAAA,CAAA,CAAA;CACVG,IAAAA,OAAA,GAAAD,QAAA,CAAA5S,IAAA,OAAM,IAAI,CAAA,CAAA;KACV6S,OAAA,CAAK3K,SAAS,GAAG,CAAC,CAAA;KAClB2K,OAAA,CAAKtK,OAAO,GAAGrH,YAAY,CAAA;KAC3B2R,OAAA,CAAK5K,KAAK,GAAG,IAAI,CAAA;KACjB4K,OAAA,CAAK1K,YAAY,GAAG,CAAC,CAAA;CAAC,IAAA,OAAA0K,OAAA,CAAA;CAC1B,GAAA;CAAChZ,EAAAA,YAAA,CAAA6Y,UAAA,EAAA,CAAA;KAAA5Y,GAAA,EAAA,WAAA;CAAAC,IAAAA,KAAA,EAED,SAAAsO,SAAU3J,CAAAA,MAAM,EAAE;CACd,MAAA,OAAOA,MAAM,CAACxB,SAAS,EAAE,CAAA;CAC7B,KAAA;CAAC,GAAA,EAAA;KAAApD,GAAA,EAAA,YAAA;KAAAC,KAAA,EAED,SAAAqK,UAAW1F,CAAAA,MAAM,EAAE3E,KAAK,EAAE0J,YAAY,EAAE;CACpC,MAAA,OAAA+G,IAAA,CAAAC,eAAA,CAAAiI,UAAA,CAAAvI,SAAA,CAAA,EAAA,YAAA,EAAA,IAAA,CAAA,CAAAnK,IAAA,CAAA,IAAA,EACItB,MAAM,EACN3E,KAAK,EAAAyQ,IAAA,CAAAC,eAAA,CAAAiI,UAAA,CAAAvI,SAAA,CAAAnK,EAAAA,OAAAA,EAAAA,IAAAA,CAAAA,CAAAA,IAAA,CACOtB,IAAAA,EAAAA,MAAM,EAAE,OAAO,EAAE3E,KAAK,GAClC0J,YAAY,CAAA,CAAA;CAEpB,KAAA;CAAC,GAAA,CAAA,CAAA,CAAA;CAAA,EAAA,OAAAiP,UAAA,CAAA;CAAA,CAAA,CApBoBhP,mBAAmB,CAAA,CAAA;CAAA,IAuBtCoP,eAAe,0BAAAC,qBAAA,EAAA;GAAAvT,SAAA,CAAAsT,eAAA,EAAAC,qBAAA,CAAA,CAAA;CAAA,EAAA,IAAAC,QAAA,GAAAtT,YAAA,CAAAoT,eAAA,CAAA,CAAA;CACjB,EAAA,SAAAA,kBAAc;CAAA,IAAA,IAAAG,OAAA,CAAA;CAAA9Z,IAAAA,eAAA,OAAA2Z,eAAA,CAAA,CAAA;CACVG,IAAAA,OAAA,GAAAD,QAAA,CAAAhT,IAAA,OAAM,IAAI,CAAA,CAAA;KACViT,OAAA,CAAK/K,SAAS,GAAG,IAAI,CAAA;KACrB+K,OAAA,CAAK1K,OAAO,GAAGrH,YAAY,CAAA;KAC3B+R,OAAA,CAAKC,UAAU,GAAG,IAAI,CAAA;CAAC,IAAA,OAAAD,OAAA,CAAA;CAC3B,GAAA;CAACpZ,EAAAA,YAAA,CAAAiZ,eAAA,EAAA,CAAA;KAAAhZ,GAAA,EAAA,WAAA;KAAAC,KAAA,EAED,SAAAsO,SAAU3J,CAAAA,MAAM,EAAEyU,QAAQ,EAAE3P,MAAM,EAAE;OAChC,IAAI2P,QAAQ,IAAI,GAAG,EAAE;SACjB,OAAO,EAAE,CAAC;CACd,OAAC,MAAM;CACH,QAAA,IAAIC,WAAW,GAAGD,QAAQ,IAAI,UAAU;CACpCE,UAAAA,QAAQ,GAAG,EAAE;CACbrL,UAAAA,IAAI,GAAG,CAAC,CAAA;;CAEZ;CACA,QAAA,OAAO,IAAI,EAAE;CACT,UAAA,IAAI1G,GAAG,GAAGsB,GAAG,CAACiC,OAAO,CAACnG,MAAM,CAAC;CACzBjH,YAAAA,MAAM,GAAG,IAAI,CAAA;CACjBuQ,UAAAA,IAAI,IAAI,CAAC,CAAA;CAET,UAAA,IAAI1G,GAAG,CAAC2B,EAAE,CAAC,UAAU,CAAC,EAAE;aACpBvE,MAAM,CAACtC,UAAU,EAAE,CAAA;CACnB,YAAA,MAAA;YACH,MAAM,IAAI,CAACgX,WAAW,IAAIpL,IAAI,IAAImL,QAAQ,EAAE;CACzC,YAAA,MAAA;YACH,MAAM,IAAI7R,GAAG,CAAC2B,EAAE,CAAC,UAAU,CAAC,EAAE;CAC3BxL,YAAAA,MAAM,GAAGiH,MAAM,CAACtC,UAAU,EAAE,CAAA;CAC5B4L,YAAAA,IAAI,IAAI,CAAC,CAAA;aACT,IAAIsL,UAAU,GAAG,IAAI;CACjBC,cAAAA,MAAM,GAAG,CAAC;eACVC,KAAK,GAAG/b,MAAM,IAAI,UAAU,CAAA;CAEhC,YAAA,IAAI+b,KAAK,EAAE;eACP,IAAIC,KAAK,GAAG,CAAC,CAAA;;CAEb;CACA,cAAA,OAAO,CAAC,EAAE;CACN,gBAAA,IAAIC,CAAC,GAAGhV,MAAM,CAACpC,UAAU,EAAE,CAAA;iBAC3B,IAAIoX,CAAC,IAAI,MAAM,EAAE;CACb;CACA,kBAAA,IAAIC,EAAE,GAAGjV,MAAM,CAACpC,UAAU,EAAE,CAAA;CAE5B,kBAAA,IAAI2P,UAAU,GAAGvN,MAAM,CAACtC,UAAU,EAAE,CAAA;CACpCsC,kBAAAA,MAAM,CAACrE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAA;mBAEpB,IAAIsZ,EAAE,IAAI,MAAM,EAAE;qBACd,IAAI1H,UAAU,KAAK,CAAC,EAAE;CAClB;CACAwH,sBAAAA,KAAK,EAAE,CAAA;uBACP,IAAIA,KAAK,GAAG,CAAC,EAAE;CACX;CACA/U,wBAAAA,MAAM,CAACrE,SAAS,CAAC,CAAC,CAAC,CAAA;CACnB2N,wBAAAA,IAAI,IAAI,CAAC,CAAA;CACT,wBAAA,MAAA;CACJ,uBAAC,MAAM;CACH;CACAuL,wBAAAA,MAAM,IAAI,CAAC,CAAA;CACf,uBAAA;CACJ,qBAAC,MAAM;CACH;CACAA,sBAAAA,MAAM,IAAI,CAAC,CAAA;CACf,qBAAA;CACJ,mBAAC,MAAM,IAAII,EAAE,IAAI,MAAM,EAAE;CACrB;CACAJ,oBAAAA,MAAM,IAAI,CAAC,CAAA;qBAEX,IAAItH,UAAU,IAAI,UAAU,EAAE;CAC1B;CACAwH,sBAAAA,KAAK,EAAE,CAAA;CACX,qBAAA;CACJ,mBAAC,MAAM;CACH;CACAF,oBAAAA,MAAM,IAAI,CAAC,CAAA;CACX7U,oBAAAA,MAAM,CAACrE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAA;CACxB,mBAAA;CACJ,iBAAC,MAAM;CACH;CACAkZ,kBAAAA,MAAM,IAAI,CAAC,CAAA;CACf,iBAAA;CACJ,eAAA;CACJ,aAAC,MAAM;CACHA,cAAAA,MAAM,GAAG9b,MAAM,CAAA;CACnB,aAAA;CAEA,YAAA,IAAI8b,MAAM,EAAE;eACR7U,MAAM,CAACrE,SAAS,CAACmZ,KAAK,GAAG,CAACD,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;eACzCD,UAAU,GAAG5U,MAAM,CAACM,IAAI,CAACuU,MAAM,CAAC,CAAC;CACjCvL,cAAAA,IAAI,IAAIuL,MAAM,CAAA;CACd,cAAA,IAAIC,KAAK,EAAE9U,MAAM,CAACrE,SAAS,CAAC,CAAC,CAAC,CAAA;eAE9B,IAAIuZ,KAAK,GAAG/P,YAAY,CAACgQ,KAAK,CAACP,UAAU,EAAE9P,MAAM,CAAC,CAAA;CAClD6P,cAAAA,QAAQ,CAAC9Q,IAAI,CAACqR,KAAK,CAAC,CAAA;CACxB,aAAA;CACA,YAAA,IAAI,CAACR,WAAW,IAAIpL,IAAI,IAAImL,QAAQ,EAAE;CAClC,cAAA,MAAA;CACJ,aAAA;CACJ,WAAA;CACJ,SAAA;CACA,QAAA,OAAOE,QAAQ,CAAA;CACnB,OAAA;CACJ,KAAA;CAAC,GAAA,EAAA;KAAAvZ,GAAA,EAAA,YAAA;KAAAC,KAAA,EAED,SAAAqK,UAAAA,CAAW1F,MAAM,EAAE3E,KAAK,EAAEyJ,MAAM,EAAEC,YAAY,EAAE;OAC5C,IAAIY,OAAO,GAAG,CAAC,CAAA;CAEf,MAAA,IAAItK,KAAK,EAAE;CACP,QAAA,KAAK,IAAIjC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGiC,KAAK,CAACtC,MAAM,EAAEK,CAAC,EAAE,EAAE;CACnC,UAAA,IAAIgc,IAAI,GAAG/Z,KAAK,CAACjC,CAAC,CAAC,CAAA;CACnB0S,UAAAA,IAAA,CAAAC,eAAA,CAAAqI,eAAA,CAAA3I,SAAA,CAAAnK,EAAAA,OAAAA,EAAAA,IAAAA,CAAAA,CAAAA,IAAA,CAAYtB,IAAAA,EAAAA,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAA,CAAA;CACpC8L,UAAAA,IAAA,CAAAC,eAAA,CAAAqI,eAAA,CAAA3I,SAAA,CAAAnK,EAAAA,OAAAA,EAAAA,IAAAA,CAAAA,CAAAA,IAAA,CAAYtB,IAAAA,EAAAA,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAA,CAAA;CACpC8L,UAAAA,IAAA,CAAAC,eAAA,CAAAqI,eAAA,CAAA3I,SAAA,CAAAnK,EAAAA,OAAAA,EAAAA,IAAAA,CAAAA,CAAAA,IAAA,CAAYtB,IAAAA,EAAAA,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAA,CAAA;CAExC2F,UAAAA,OAAO,IAAIR,YAAY,CAACR,KAAK,CACzByQ,IAAI,EACJpV,MAAM,EACN8E,MAAM,EACNC,YACJ,CAAC,CAAA;CAED+G,UAAAA,IAAA,CAAAC,eAAA,CAAAqI,eAAA,CAAA3I,SAAA,CAAAnK,EAAAA,OAAAA,EAAAA,IAAAA,CAAAA,CAAAA,IAAA,CAAYtB,IAAAA,EAAAA,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAA,CAAA;CACpC8L,UAAAA,IAAA,CAAAC,eAAA,CAAAqI,eAAA,CAAA3I,SAAA,CAAAnK,EAAAA,OAAAA,EAAAA,IAAAA,CAAAA,CAAAA,IAAA,CAAYtB,IAAAA,EAAAA,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAA,CAAA;CACpC8L,UAAAA,IAAA,CAAAC,eAAA,CAAAqI,eAAA,CAAA3I,SAAA,CAAAnK,EAAAA,OAAAA,EAAAA,IAAAA,CAAAA,CAAAA,IAAA,CAAYtB,IAAAA,EAAAA,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAA,CAAA;CACxC2F,UAAAA,OAAO,IAAI,EAAE,CAAA;CACjB,SAAA;CACJ,OAAA;CACAmG,MAAAA,IAAA,CAAAC,eAAA,CAAAqI,eAAA,CAAA3I,SAAA,CAAAnK,EAAAA,OAAAA,EAAAA,IAAAA,CAAAA,CAAAA,IAAA,CAAYtB,IAAAA,EAAAA,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAA,CAAA;CACpC8L,MAAAA,IAAA,CAAAC,eAAA,CAAAqI,eAAA,CAAA3I,SAAA,CAAAnK,EAAAA,OAAAA,EAAAA,IAAAA,CAAAA,CAAAA,IAAA,CAAYtB,IAAAA,EAAAA,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAA,CAAA;CACpC8L,MAAAA,IAAA,CAAAC,eAAA,CAAAqI,eAAA,CAAA3I,SAAA,CAAAnK,EAAAA,OAAAA,EAAAA,IAAAA,CAAAA,CAAAA,IAAA,CAAYtB,IAAAA,EAAAA,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAA,CAAA;CACxC2F,MAAAA,OAAO,IAAI,CAAC,CAAA;CAEZ,MAAA,OAAAmG,IAAA,CAAAC,eAAA,CAAAqI,eAAA,CAAA3I,SAAA,CAAAnK,EAAAA,YAAAA,EAAAA,IAAAA,CAAAA,CAAAA,IAAA,CAAwBtB,IAAAA,EAAAA,MAAM,EAAE3E,KAAK,EAAE,CAACsK,OAAO,CAAC,EAAEZ,YAAY,CAAA,CAAA;CAClE,KAAA;CAAC,GAAA,CAAA,CAAA,CAAA;CAAA,EAAA,OAAAqP,eAAA,CAAA;CAAA,CAAA,CArIyBpP,mBAAmB,CAAA,CAAA;CAAA,IAwI3CqQ,WAAW,0BAAAC,qBAAA,EAAA;GAAAxU,SAAA,CAAAuU,WAAA,EAAAC,qBAAA,CAAA,CAAA;CAAA,EAAA,IAAAC,QAAA,GAAAvU,YAAA,CAAAqU,WAAA,CAAA,CAAA;CACb,EAAA,SAAAA,cAAc;CAAA,IAAA,IAAAG,OAAA,CAAA;CAAA/a,IAAAA,eAAA,OAAA4a,WAAA,CAAA,CAAA;CACVG,IAAAA,OAAA,GAAAD,QAAA,CAAAjU,IAAA,OAAM,IAAI,CAAA,CAAA;KACVkU,OAAA,CAAKhM,SAAS,GAAG,CAAC,CAAA;KAClBgM,OAAA,CAAK/P,WAAW,GAAG,CAAC,CAAA;KACpB+P,OAAA,CAAK3L,OAAO,GAAGrH,YAAY,CAAA;KAC3BgT,OAAA,CAAKjM,KAAK,GAAG,IAAI,CAAA;KACjBiM,OAAA,CAAK/L,YAAY,GAAG,CAAC,CAAA;CAAC,IAAA,OAAA+L,OAAA,CAAA;CAC1B,GAAA;CAACra,EAAAA,YAAA,CAAAka,WAAA,EAAA,CAAA;KAAAja,GAAA,EAAA,WAAA;CAAAC,IAAAA,KAAA,EAED,SAAAsO,SAAU3J,CAAAA,MAAM,EAAE;CACd,MAAA,OAAOA,MAAM,CAAC1B,SAAS,EAAE,CAAA;CAC7B,KAAA;CAAC,GAAA,EAAA;KAAAlD,GAAA,EAAA,YAAA;KAAAC,KAAA,EAED,SAAAqK,UAAW1F,CAAAA,MAAM,EAAE3E,KAAK,EAAE0J,YAAY,EAAE;CACpC,MAAA,OAAA+G,IAAA,CAAAC,eAAA,CAAAsJ,WAAA,CAAA5J,SAAA,CAAA,EAAA,YAAA,EAAA,IAAA,CAAA,CAAAnK,IAAA,CAAA,IAAA,EACItB,MAAM,EACN3E,KAAK,EAAAyQ,IAAA,CAAAC,eAAA,CAAAsJ,WAAA,CAAA5J,SAAA,CAAAnK,EAAAA,OAAAA,EAAAA,IAAAA,CAAAA,CAAAA,IAAA,CACOtB,IAAAA,EAAAA,MAAM,EAAE,OAAO,EAAE3E,KAAK,GAClC0J,YAAY,CAAA,CAAA;CAEpB,KAAA;CAAC,GAAA,CAAA,CAAA,CAAA;CAAA,EAAA,OAAAsQ,WAAA,CAAA;CAAA,CAAA,CArBqBrQ,mBAAmB,CAAA,CAAA;CAAA,IAwBvCyQ,SAAS,0BAAAC,sBAAA,EAAA;GAAA5U,SAAA,CAAA2U,SAAA,EAAAC,sBAAA,CAAA,CAAA;CAAA,EAAA,IAAAC,QAAA,GAAA3U,YAAA,CAAAyU,SAAA,CAAA,CAAA;CACX,EAAA,SAAAA,YAAc;CAAA,IAAA,IAAAG,OAAA,CAAA;CAAAnb,IAAAA,eAAA,OAAAgb,SAAA,CAAA,CAAA;CACVG,IAAAA,OAAA,GAAAD,QAAA,CAAArU,IAAA,OAAM,IAAI,CAAA,CAAA;KACVsU,OAAA,CAAK1K,aAAa,GAAG,IAAI,CAAA;KACzB0K,OAAA,CAAK/L,OAAO,GAAGpH,aAAa,CAAA;CAAC,IAAA,OAAAmT,OAAA,CAAA;CACjC,GAAA;CAACza,EAAAA,YAAA,CAAAsa,SAAA,EAAA,CAAA;KAAAra,GAAA,EAAA,WAAA;CAAAC,IAAAA,KAAA,EAED,SAAAsO,SAAAA,CAAU3J,MAAM,EAAEjH,MAAM,EAAE;OACtB,OAAOuP,KAAK,CAACtI,MAAM,CAACV,iBAAiB,CAACvG,MAAM,CAAC,CAAC,CAAA;CAClD,KAAA;CAAC,GAAA,CAAA,CAAA,CAAA;CAAA,EAAA,OAAA0c,SAAA,CAAA;CAAA,CAAA,CATmBzJ,2BAA2B,CAAA,CAAA;CAAA,IAY7C6J,SAAS,0BAAAC,sBAAA,EAAA;GAAAhV,SAAA,CAAA+U,SAAA,EAAAC,sBAAA,CAAA,CAAA;CAAA,EAAA,IAAAC,QAAA,GAAA/U,YAAA,CAAA6U,SAAA,CAAA,CAAA;CACX,EAAA,SAAAA,YAAc;CAAA,IAAA,IAAAG,OAAA,CAAA;CAAAvb,IAAAA,eAAA,OAAAob,SAAA,CAAA,CAAA;CACVG,IAAAA,OAAA,GAAAD,QAAA,CAAAzU,IAAA,OAAM,IAAI,CAAA,CAAA;KACV0U,OAAA,CAAKxM,SAAS,GAAG,EAAE,CAAA;KACnBwM,OAAA,CAAKnM,OAAO,GAAGpH,aAAa,CAAA;CAAC,IAAA,OAAAuT,OAAA,CAAA;CACjC,GAAA;CAAC7a,EAAAA,YAAA,CAAA0a,SAAA,EAAA,CAAA;KAAAza,GAAA,EAAA,WAAA;CAAAC,IAAAA,KAAA,EAED,SAAAsO,SAAAA,CAAU3J,MAAM,EAAEjH,MAAM,EAAE;OACtB,OAAOuP,KAAK,CAACtI,MAAM,CAAClB,eAAe,CAAC/F,MAAM,CAAC,CAAC,CAAA;CAChD,KAAA;CAAC,GAAA,CAAA,CAAA,CAAA;CAAA,EAAA,OAAA8c,SAAA,CAAA;CAAA,CAAA,CATmBjK,yBAAyB,CAAA,CAAA;CAAA,IAY3CqK,mBAAmB,0BAAAC,sBAAA,EAAA;GAAApV,SAAA,CAAAmV,mBAAA,EAAAC,sBAAA,CAAA,CAAA;CAAA,EAAA,IAAAC,QAAA,GAAAnV,YAAA,CAAAiV,mBAAA,CAAA,CAAA;CACrB,EAAA,SAAAA,sBAAc;CAAA,IAAA,IAAAG,OAAA,CAAA;CAAA3b,IAAAA,eAAA,OAAAwb,mBAAA,CAAA,CAAA;CACVG,IAAAA,OAAA,GAAAD,QAAA,CAAA7U,IAAA,OAAM,IAAI,CAAA,CAAA;KACV8U,OAAA,CAAK5M,SAAS,GAAG,IAAI,CAAA;KACrB4M,OAAA,CAAKrN,KAAK,GAAG,IAAI,CAAA;KACjBqN,OAAA,CAAKvM,OAAO,GAAGpH,aAAa,CAAA;CAAC,IAAA,OAAA2T,OAAA,CAAA;CACjC,GAAA;CAACjb,EAAAA,YAAA,CAAA8a,mBAAA,EAAA,CAAA;KAAA7a,GAAA,EAAA,WAAA;CAAAC,IAAAA,KAAA,EAED,SAAAsO,SAAAA,CAAU3J,MAAM,EAAEjH,MAAM,EAAE;OACtB,OAAOuP,KAAK,CAACtI,MAAM,CAACV,iBAAiB,CAACvG,MAAM,CAAC,CAAC,CAAA;CAClD,KAAA;CAAC,GAAA,CAAA,CAAA,CAAA;CAAA,EAAA,OAAAkd,mBAAA,CAAA;CAAA,CAAA,CAV6BjK,2BAA2B,CAAA,CAAA;CAAA,IAavDqK,aAAa,0BAAAC,sBAAA,EAAA;GAAAxV,SAAA,CAAAuV,aAAA,EAAAC,sBAAA,CAAA,CAAA;CAAA,EAAA,IAAAC,QAAA,GAAAvV,YAAA,CAAAqV,aAAA,CAAA,CAAA;CACf,EAAA,SAAAA,gBAAc;CAAA,IAAA,IAAAG,OAAA,CAAA;CAAA/b,IAAAA,eAAA,OAAA4b,aAAA,CAAA,CAAA;CACVG,IAAAA,OAAA,GAAAD,QAAA,CAAAjV,IAAA,OAAM,IAAI,CAAA,CAAA;KACVkV,OAAA,CAAKhN,SAAS,GAAG,IAAI,CAAA;KACrBgN,OAAA,CAAK3M,OAAO,GAAGpH,aAAa,CAAA;CAAC,IAAA,OAAA+T,OAAA,CAAA;CACjC,GAAA;CAACrb,EAAAA,YAAA,CAAAkb,aAAA,EAAA,CAAA;KAAAjb,GAAA,EAAA,WAAA;CAAAC,IAAAA,KAAA,EAED,SAAAsO,SAAAA,CAAU3J,MAAM,EAAEjH,MAAM,EAAE;OACtB,OAAOuP,KAAK,CAACtI,MAAM,CAACV,iBAAiB,CAACvG,MAAM,CAAC,CAAC,CAAA;CAClD,KAAA;CAAC,GAAA,CAAA,CAAA,CAAA;CAAA,EAAA,OAAAsd,aAAA,CAAA;CAAA,CAAA,CATuBrK,2BAA2B,CAAA,CAAA;CAAA,IAYjDyK,aAAa,0BAAAC,sBAAA,EAAA;GAAA5V,SAAA,CAAA2V,aAAA,EAAAC,sBAAA,CAAA,CAAA;CAAA,EAAA,IAAAC,QAAA,GAAA3V,YAAA,CAAAyV,aAAA,CAAA,CAAA;CACf,EAAA,SAAAA,gBAAc;CAAA,IAAA,IAAAG,OAAA,CAAA;CAAAnc,IAAAA,eAAA,OAAAgc,aAAA,CAAA,CAAA;CACVG,IAAAA,OAAA,GAAAD,QAAA,CAAArV,IAAA,OAAM,IAAI,CAAA,CAAA;KACVsV,OAAA,CAAKpN,SAAS,GAAG,CAAC,CAAA;KAClBoN,OAAA,CAAK/M,OAAO,GAAGrH,YAAY,CAAA;KAC3BoU,OAAA,CAAKrN,KAAK,GAAG,IAAI,CAAA;KACjBqN,OAAA,CAAKnN,YAAY,GAAG,CAAC,CAAA;CAAC,IAAA,OAAAmN,OAAA,CAAA;CAC1B,GAAA;CAACzb,EAAAA,YAAA,CAAAsb,aAAA,EAAA,CAAA;KAAArb,GAAA,EAAA,WAAA;CAAAC,IAAAA,KAAA,EAED,SAAAsO,SAAU3J,CAAAA,MAAM,EAAE;CACd,MAAA,OAAOA,MAAM,CAACpC,UAAU,EAAE,CAAA;CAC9B,KAAA;CAAC,GAAA,EAAA;KAAAxC,GAAA,EAAA,YAAA;KAAAC,KAAA,EAED,SAAAqK,UAAW1F,CAAAA,MAAM,EAAE3E,KAAK,EAAE0J,YAAY,EAAE;CACpC,MAAA,OAAA+G,IAAA,CAAAC,eAAA,CAAA0K,aAAA,CAAAhL,SAAA,CAAA,EAAA,YAAA,EAAA,IAAA,CAAA,CAAAnK,IAAA,CAAA,IAAA,EACItB,MAAM,EACN3E,KAAK,EAAAyQ,IAAA,CAAAC,eAAA,CAAA0K,aAAA,CAAAhL,SAAA,CAAAnK,EAAAA,OAAAA,EAAAA,IAAAA,CAAAA,CAAAA,IAAA,CACOtB,IAAAA,EAAAA,MAAM,EAAE,QAAQ,EAAE3E,KAAK,GACnC0J,YAAY,CAAA,CAAA;CAEpB,KAAA;CAAC,GAAA,CAAA,CAAA,CAAA;CAAA,EAAA,OAAA0R,aAAA,CAAA;CAAA,CAAA,CApBuBzR,mBAAmB,CAAA,CAAA;CAAA,IAuBzC6R,YAAY,0BAAAC,sBAAA,EAAA;GAAAhW,SAAA,CAAA+V,YAAA,EAAAC,sBAAA,CAAA,CAAA;CAAA,EAAA,IAAAC,QAAA,GAAA/V,YAAA,CAAA6V,YAAA,CAAA,CAAA;CACd,EAAA,SAAAA,eAAc;CAAA,IAAA,IAAAG,OAAA,CAAA;CAAAvc,IAAAA,eAAA,OAAAoc,YAAA,CAAA,CAAA;CACVG,IAAAA,OAAA,GAAAD,QAAA,CAAAzV,IAAA,OAAM,IAAI,CAAA,CAAA;KACV0V,OAAA,CAAKxN,SAAS,GAAG,CAAC,CAAA;KAClBwN,OAAA,CAAKnN,OAAO,GAAGrH,YAAY,CAAA;KAC3BwU,OAAA,CAAKzN,KAAK,GAAG,IAAI,CAAA;KACjByN,OAAA,CAAKvN,YAAY,GAAG,CAAC,CAAA;CAAC,IAAA,OAAAuN,OAAA,CAAA;CAC1B,GAAA;CAAC7b,EAAAA,YAAA,CAAA0b,YAAA,EAAA,CAAA;KAAAzb,GAAA,EAAA,WAAA;CAAAC,IAAAA,KAAA,EAED,SAAAsO,SAAU3J,CAAAA,MAAM,EAAE;CACd,MAAA,OAAOA,MAAM,CAACtC,UAAU,EAAE,CAAA;CAC9B,KAAA;CAAC,GAAA,EAAA;KAAAtC,GAAA,EAAA,YAAA;KAAAC,KAAA,EAED,SAAAqK,UAAW1F,CAAAA,MAAM,EAAE3E,KAAK,EAAE0J,YAAY,EAAE;CACpC,MAAA,OAAA+G,IAAA,CAAAC,eAAA,CAAA8K,YAAA,CAAApL,SAAA,CAAA,EAAA,YAAA,EAAA,IAAA,CAAA,CAAAnK,IAAA,CAAA,IAAA,EACItB,MAAM,EACN3E,KAAK,EAAAyQ,IAAA,CAAAC,eAAA,CAAA8K,YAAA,CAAApL,SAAA,CAAAnK,EAAAA,OAAAA,EAAAA,IAAAA,CAAAA,CAAAA,IAAA,CACOtB,IAAAA,EAAAA,MAAM,EAAE,QAAQ,EAAE3E,KAAK,GACnC0J,YAAY,CAAA,CAAA;CAEpB,KAAA;CAAC,GAAA,CAAA,CAAA,CAAA;CAAA,EAAA,OAAA8R,YAAA,CAAA;CAAA,CAAA,CApBsB7R,mBAAmB,CAAA,CAAA;CAAA,IAuBxCiS,gBAAgB,0BAAAC,sBAAA,EAAA;GAAApW,SAAA,CAAAmW,gBAAA,EAAAC,sBAAA,CAAA,CAAA;CAAA,EAAA,IAAAC,QAAA,GAAAnW,YAAA,CAAAiW,gBAAA,CAAA,CAAA;CAClB,EAAA,SAAAA,mBAAc;CAAA,IAAA,IAAAG,OAAA,CAAA;CAAA3c,IAAAA,eAAA,OAAAwc,gBAAA,CAAA,CAAA;CACVG,IAAAA,OAAA,GAAAD,QAAA,CAAA7V,IAAA,OAAM,IAAI,CAAA,CAAA;KACV8V,OAAA,CAAK5N,SAAS,GAAG,EAAE,CAAA;KACnB4N,OAAA,CAAKvN,OAAO,GAAGrH,YAAY,CAAA;CAAC,IAAA,OAAA4U,OAAA,CAAA;CAChC,GAAA;CAACjc,EAAAA,YAAA,CAAA8b,gBAAA,EAAA,CAAA;KAAA7b,GAAA,EAAA,WAAA;CAAAC,IAAAA,KAAA,EAED,SAAAsO,SAAAA,CAAU3J,MAAM,EAAEjH,MAAM,EAAE;OACtB,IAAMgG,MAAM,GAAG,IAAI,CAAC6K,qBAAqB,CAAC5J,MAAM,EAAEjH,MAAM,CAAC,CAAA;CAEzD,MAAA,IAAMkX,SAAS,GAAG/Q,MAAM,CAACC,YAAY,CAACoD,YAAY,CAAC,CAAA;OACnD,IAAM8U,SAAS,GAAG,UAAU,CAAA;;CAE5B;CACA;CACA;CACA;CACA;CACA;CACA;;OAEA,IAAItY,MAAM,CAACkK,OAAO,CAACgH,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE;CAClC,QAAA,OAAOlR,MAAM,CAACyI,OAAO,CAAC6P,SAAS,EAAE,EAAE,CAAC,CAAA;CACxC,OAAC,MAAM;SACH,OAAOtY,MAAM,CACRuH,KAAK,CAAC2J,SAAS,CAAC,CAChBvJ,GAAG,CAAC,UAAA4Q,GAAG,EAAA;CAAA,UAAA,OAAIA,GAAG,CAAC9P,OAAO,CAAC6P,SAAS,EAAE,EAAE,CAAC,CAAA;UAAC,CAAA,CAAA;CAC/C,OAAA;CACJ,KAAA;CAAC,GAAA,CAAA,CAAA,CAAA;CAAA,EAAA,OAAAJ,gBAAA,CAAA;CAAA,CAAA,CA5B0BrL,yBAAyB,CAAA,CAAA;CAAA,IA+BlD2L,iBAAiB,0BAAAC,uBAAA,EAAA;GAAA1W,SAAA,CAAAyW,iBAAA,EAAAC,uBAAA,CAAA,CAAA;CAAA,EAAA,IAAAC,QAAA,GAAAzW,YAAA,CAAAuW,iBAAA,CAAA,CAAA;CACnB,EAAA,SAAAA,oBAAc;CAAA,IAAA,IAAAG,OAAA,CAAA;CAAAjd,IAAAA,eAAA,OAAA8c,iBAAA,CAAA,CAAA;CACVG,IAAAA,OAAA,GAAAD,QAAA,CAAAnW,IAAA,OAAM,IAAI,CAAA,CAAA;KACVoW,OAAA,CAAKlO,SAAS,GAAG,IAAI,CAAA;KACrBkO,OAAA,CAAK7N,OAAO,GAAGpH,aAAa,CAAA;CAAC,IAAA,OAAAiV,OAAA,CAAA;CACjC,GAAA;CAACvc,EAAAA,YAAA,CAAAoc,iBAAA,EAAA,CAAA;KAAAnc,GAAA,EAAA,WAAA;CAAAC,IAAAA,KAAA,EAED,SAAAsO,SAAAA,CAAU3J,MAAM,EAAEjH,MAAM,EAAE;CACtB,MAAA,OAAOiH,MAAM,CAAClB,eAAe,CAAC/F,MAAM,CAAC,CAAA;CACzC,KAAA;CAAC,GAAA,CAAA,CAAA,CAAA;CAAA,EAAA,OAAAwe,iBAAA,CAAA;CAAA,CAAA,CAT2B3L,yBAAyB,CAAA,CAAA;CAAA,IAYnD+L,YAAY,0BAAAC,qBAAA,EAAA;GAAA9W,SAAA,CAAA6W,YAAA,EAAAC,qBAAA,CAAA,CAAA;CAAA,EAAA,IAAAC,QAAA,GAAA7W,YAAA,CAAA2W,YAAA,CAAA,CAAA;CACd,EAAA,SAAAA,eAAc;CAAA,IAAA,IAAAG,OAAA,CAAA;CAAArd,IAAAA,eAAA,OAAAkd,YAAA,CAAA,CAAA;CACVG,IAAAA,OAAA,GAAAD,QAAA,CAAAvW,IAAA,OAAM,IAAI,CAAA,CAAA;KACVwW,OAAA,CAAKtO,SAAS,GAAG,IAAI,CAAA;KACrBsO,OAAA,CAAKjO,OAAO,GAAGrH,YAAY,CAAA;KAC3BsV,OAAA,CAAKtD,UAAU,GAAG,IAAI,CAAA;CAAC,IAAA,OAAAsD,OAAA,CAAA;CAC3B,GAAA;GAAC,OAAA3c,YAAA,CAAAwc,YAAA,CAAA,CAAA;CAAA,CAAA,CANsBzL,oBAAoB,CAAA,CAAA;CAAA,IASzCP,kBAAkB,0BAAAoM,sBAAA,EAAA;GAAAjX,SAAA,CAAA6K,kBAAA,EAAAoM,sBAAA,CAAA,CAAA;CAAA,EAAA,IAAAC,QAAA,GAAAhX,YAAA,CAAA2K,kBAAA,CAAA,CAAA;GACpB,SAAAA,kBAAAA,CAAYtM,EAAE,EAAE;CAAA,IAAA,IAAA4Y,OAAA,CAAA;CAAAxd,IAAAA,eAAA,OAAAkR,kBAAA,CAAA,CAAA;CACZsM,IAAAA,OAAA,GAAAD,QAAA,CAAA1W,IAAA,OAAMjC,EAAE,CAAA,CAAA;KACR4Y,OAAA,CAAKzO,SAAS,GAAG,IAAI,CAAA;KACrByO,OAAA,CAAKpO,OAAO,GAAG,CAAC,CAAA;KAChBoO,OAAA,CAAKzD,UAAU,GAAG,IAAI,CAAA;KACtByD,OAAA,CAAKjP,SAAS,GAAG,IAAI,CAAA;KACrBiP,OAAA,CAAK/O,cAAc,GAAG,KAAK,CAAA;KAC3B+O,OAAA,CAAK9O,WAAW,GAAG,IAAI,CAAA;CAAC,IAAA,OAAA8O,OAAA,CAAA;CAC5B,GAAA;CAAC9c,EAAAA,YAAA,CAAAwQ,kBAAA,EAAA,CAAA;KAAAvQ,GAAA,EAAA,MAAA;KAAAC,KAAA,EAED,SAAAiO,IAAKtJ,CAAAA,MAAM,EAAEjH,MAAM,EAAE+L,MAAM,EAAE;CACzB,MAAA,IAAMoT,WAAW,GAAG,IAAI,CAACvO,SAAS,CAAC3J,MAAM,EAAEjH,MAAM,EAAE+L,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;OAC7D,IAAMqT,gBAAgB,GAAG,IAAI1X,gBAAgB,CAACyX,WAAW,EAAE,IAAI,CAAC,CAAA;OAChE,IAAM7Y,EAAE,GAAG2F,mBAAmB,CAACC,kBAAkB,CAAC,IAAI,CAACY,IAAI,CAAC,CAAA;OAE5D,IAAIhB,MAAM,GAAG,EAAE,CAAA;CACf,MAAA,IAAIxF,EAAE,CAAC+J,QAAQ,EAAE,IAAIrQ,MAAM,GAAGsG,EAAE,CAACmK,SAAS,IAAI,CAACnK,EAAE,CAACmV,UAAU,EAAE;CAC1D,QAAA,IAAI4D,KAAK,GAAGrf,MAAM,GAAGsG,EAAE,CAACmK,SAAS;CAC7BpQ,UAAAA,CAAC,GAAG,CAAC,CAAA;CACT,QAAA,OAAOA,CAAC,EAAE,GAAGgf,KAAK,EAAE;CAChBvT,UAAAA,MAAM,CAAChB,IAAI,CAACxE,EAAE,CAACiK,IAAI,CAAC6O,gBAAgB,EAAE9Y,EAAE,CAACmK,SAAS,EAAE1E,MAAM,CAAC,CAAC,CAAA;CAChE,SAAA;CACJ,OAAC,MAAM;SACH,IAAI9K,GAAG,GAAGqF,EAAE,CAACiK,IAAI,CAAC6O,gBAAgB,EAAEpf,MAAM,EAAE+L,MAAM,CAAC,CAAA;CACnD,QAAA,IAAI,CAACzF,EAAE,CAAC+J,QAAQ,EAAE,IAAIN,WAAS,CAACG,OAAO,CAAC5J,EAAE,CAACwG,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE;CACpDhB,UAAAA,MAAM,GAAG7K,GAAG,CAAA;CACZ,UAAA,IAAI,OAAOA,GAAG,KAAK,QAAQ,EAAE;aACzB6K,MAAM,GAAG7K,GAAG,CAACsM,KAAK,CAACpH,MAAM,CAACC,YAAY,CAACoD,YAAY,CAAC,CAAC,CAAA;CACzD,WAAA;CACJ,SAAC,MAAM,IAAIlD,EAAE,CAACwG,IAAI,IAAI,IAAI,EAAE;CACxBhB,UAAAA,MAAM,GAAG7K,GAAG,CAAA;CAChB,SAAC,MAAM,IAAIqF,EAAE,CAACwG,IAAI,IAAI,IAAI,IAAIxG,EAAE,CAACwG,IAAI,IAAI,IAAI,EAAE;CAC3ChB,UAAAA,MAAM,GAAG7K,GAAG,CAAA;CAChB,SAAC,MAAM;CACH2J,UAAAA,KAAK,CAACC,OAAO,CAAC5J,GAAG,CAAC,GAAI6K,MAAM,GAAG7K,GAAG,GAAI6K,MAAM,CAAChB,IAAI,CAAC7J,GAAG,CAAC,CAAA;CAC1D,SAAA;CACJ,OAAA;CAEA,MAAA,OAAO6K,MAAM,CAAA;CACjB,KAAA;CAAC,GAAA,CAAA,CAAA,CAAA;CAAA,EAAA,OAAA8G,kBAAA,CAAA;CAAA,CAAA,CAxC4BO,oBAAoB,CAAA,CAAA;CAAA,IA2C/CmM,eAAe,0BAAAC,sBAAA,EAAA;GAAAxX,SAAA,CAAAuX,eAAA,EAAAC,sBAAA,CAAA,CAAA;CAAA,EAAA,IAAAC,QAAA,GAAAvX,YAAA,CAAAqX,eAAA,CAAA,CAAA;CACjB,EAAA,SAAAA,kBAAc;CAAA,IAAA,IAAAG,OAAA,CAAA;CAAA/d,IAAAA,eAAA,OAAA4d,eAAA,CAAA,CAAA;CACVG,IAAAA,OAAA,GAAAD,QAAA,CAAAjX,IAAA,OAAM,IAAI,CAAA,CAAA;KACVkX,OAAA,CAAKhP,SAAS,GAAG,IAAI,CAAA;KACrBgP,OAAA,CAAK3O,OAAO,GAAGrH,YAAY,CAAA;KAC3BgW,OAAA,CAAKhE,UAAU,GAAG,IAAI,CAAA;CAAC,IAAA,OAAAgE,OAAA,CAAA;CAC3B,GAAA;GAAC,OAAArd,YAAA,CAAAkd,eAAA,CAAA,CAAA;CAAA,CAAA,CANyBnM,oBAAoB,CAAA,CAAA;CAAA,IAS5CuM,eAAe,0BAAAC,sBAAA,EAAA;GAAA5X,SAAA,CAAA2X,eAAA,EAAAC,sBAAA,CAAA,CAAA;CAAA,EAAA,IAAAC,QAAA,GAAA3X,YAAA,CAAAyX,eAAA,CAAA,CAAA;CACjB,EAAA,SAAAA,kBAAc;CAAA,IAAA,IAAAG,OAAA,CAAA;CAAAne,IAAAA,eAAA,OAAAge,eAAA,CAAA,CAAA;CACVG,IAAAA,OAAA,GAAAD,QAAA,CAAArX,IAAA,OAAM,IAAI,CAAA,CAAA;KACVsX,OAAA,CAAKpP,SAAS,GAAG,IAAI,CAAA;KACrBoP,OAAA,CAAK/O,OAAO,GAAGrH,YAAY,CAAA;KAC3BoW,OAAA,CAAKpE,UAAU,GAAG,IAAI,CAAA;CAAC,IAAA,OAAAoE,OAAA,CAAA;CAC3B,GAAA;GAAC,OAAAzd,YAAA,CAAAsd,eAAA,CAAA,CAAA;CAAA,CAAA,CANyBvM,oBAAoB,CAAA,CAAA;CAAA,IAS5C2M,iBAAiB,0BAAAC,sBAAA,EAAA;GAAAhY,SAAA,CAAA+X,iBAAA,EAAAC,sBAAA,CAAA,CAAA;CAAA,EAAA,IAAAC,QAAA,GAAA/X,YAAA,CAAA6X,iBAAA,CAAA,CAAA;CACnB,EAAA,SAAAA,oBAAc;CAAA,IAAA,IAAAG,OAAA,CAAA;CAAAve,IAAAA,eAAA,OAAAoe,iBAAA,CAAA,CAAA;CACVG,IAAAA,OAAA,GAAAD,QAAA,CAAAzX,IAAA,OAAM,IAAI,CAAA,CAAA;KACV0X,OAAA,CAAKxP,SAAS,GAAG,IAAI,CAAA;KACrBwP,OAAA,CAAKnP,OAAO,GAAGrH,YAAY,CAAA;KAC3BwW,OAAA,CAAKxE,UAAU,GAAG,IAAI,CAAA;CAAC,IAAA,OAAAwE,OAAA,CAAA;CAC3B,GAAA;GAAC,OAAA7d,YAAA,CAAA0d,iBAAA,CAAA,CAAA;CAAA,CAAA,CAN2B3M,oBAAoB,CAAA,CAAA;CAAA,IAS9C+M,gBAAgB,0BAAAC,sBAAA,EAAA;GAAApY,SAAA,CAAAmY,gBAAA,EAAAC,sBAAA,CAAA,CAAA;CAAA,EAAA,IAAAC,QAAA,GAAAnY,YAAA,CAAAiY,gBAAA,CAAA,CAAA;CAClB,EAAA,SAAAA,mBAAc;CAAA,IAAA,IAAAG,OAAA,CAAA;CAAA3e,IAAAA,eAAA,OAAAwe,gBAAA,CAAA,CAAA;CACVG,IAAAA,OAAA,GAAAD,QAAA,CAAA7X,IAAA,OAAM,IAAI,CAAA,CAAA;KACV8X,OAAA,CAAK5P,SAAS,GAAG,IAAI,CAAA;KACrB4P,OAAA,CAAKvP,OAAO,GAAGrH,YAAY,CAAA;KAC3B4W,OAAA,CAAK5E,UAAU,GAAG,IAAI,CAAA;CAAC,IAAA,OAAA4E,OAAA,CAAA;CAC3B,GAAA;GAAC,OAAAje,YAAA,CAAA8d,gBAAA,CAAA,CAAA;CAAA,CAAA,CAN0B/M,oBAAoB,CASnD,CAAA;CACA,IAAIV,WAAW,GAAG;CACd6N,EAAAA,EAAE,EAAE,IAAI3K,iBAAiB,EAAE;CAC3B4K,EAAAA,EAAE,EAAE,IAAIrK,SAAS,EAAE;CACnBsK,EAAAA,EAAE,EAAE,IAAIlK,YAAY,EAAE;CACtBmK,EAAAA,EAAE,EAAE,IAAI1K,UAAU,EAAE;CACpB2K,EAAAA,EAAE,EAAE,IAAIhK,SAAS,EAAE;CACnBiK,EAAAA,EAAE,EAAE,IAAI7J,aAAa,EAAE;CACvB8J,EAAAA,EAAE,EAAE,IAAI5I,QAAQ,EAAE;CAClB6I,EAAAA,EAAE,EAAE,IAAIzI,mBAAmB,EAAE;CAC7B0I,EAAAA,EAAE,EAAE,IAAItI,mBAAmB,EAAE;CAC7BuI,EAAAA,EAAE,EAAE,IAAInI,aAAa,EAAE;CACvBoI,EAAAA,EAAE,EAAE,IAAI9H,UAAU,EAAE;CACpB+H,EAAAA,EAAE,EAAE,IAAI3H,QAAQ,EAAE;CAClB4H,EAAAA,EAAE,EAAE,IAAIxB,eAAe,EAAE;CACzByB,EAAAA,EAAE,EAAE,IAAIrB,iBAAiB,EAAE;CAC3BsB,EAAAA,EAAE,EAAE,IAAIlB,gBAAgB,EAAE;CAC1BmB,EAAAA,EAAE,EAAE,IAAI/B,eAAe,EAAE;CACzBgC,EAAAA,EAAE,EAAE,IAAI5H,UAAU,EAAE;CACpB6H,EAAAA,EAAE,EAAE,IAAI1G,WAAW,EAAE;CACrB2G,EAAAA,EAAE,EAAE,IAAIvG,UAAU,EAAE;CACpBwG,EAAAA,EAAE,EAAE,IAAIpG,eAAe,EAAE;CACzBqG,EAAAA,EAAE,EAAE,IAAIpF,WAAW,EAAE;CACrBqF,EAAAA,EAAE,EAAE,IAAIjF,SAAS,EAAE;CACnBkF,EAAAA,EAAE,EAAE,IAAI9E,SAAS,EAAE;CACnB+E,EAAAA,EAAE,EAAE,IAAI3E,mBAAmB,EAAE;CAC7B4E,EAAAA,EAAE,EAAE,IAAI5D,gBAAgB,EAAE;CAC1B6D,EAAAA,EAAE,EAAE,IAAIjE,YAAY,EAAE;CACtBkE,EAAAA,EAAE,EAAE,IAAIpD,YAAY,EAAE;CACtBqD,EAAAA,EAAE,EAAE,IAAIzD,iBAAiB,EAAE;CAC3B0D,EAAAA,EAAE,EAAE,IAAIxE,aAAa,EAAE;GACvByE,EAAE,EAAE,IAAI7E,aAAa,EAAC;CAC1B,CAAC;;CC/yC2D,IAEtDlO,mBAAmB,gBAAA,YAAA;CACrB;GACA,SAAAA,mBAAAA,CAAYgT,gBAAgB,EAAE;CAAA1gB,IAAAA,eAAA,OAAA0N,mBAAA,CAAA,CAAA;KAC1B,IAAI,CAACgT,gBAAgB,GAAGA,gBAAgB,CAAA;KACxC,IAAI,CAACC,aAAa,GACdjT,mBAAmB,CAACkT,sBAAsB,CAACF,gBAAgB,CAAC,CAAA;CACpE,GAAA;CAAChgB,EAAAA,YAAA,CAAAgN,mBAAA,EAAA,CAAA;KAAA/M,GAAA,EAAA,qBAAA;KAAAC,KAAA;CAgVD;KACA,SAAAigB,mBAAAA,CAAoBC,OAAO,EAAE;OACzB,OAAOpT,mBAAmB,CAACmT,mBAAmB,CAC1CC,OAAO,EACP,IAAI,CAACH,aACT,CAAC,CAAA;CACL,KAAA;CAAC,GAAA,CAAA,EAAA,CAAA;KAAAhgB,GAAA,EAAA,cAAA;CAAAC,IAAAA,KAAA,EApVD,SAAAmgB,YAAoBC,CAAAA,MAAM,EAAE;OACxB,IAAIA,MAAM,CAACxS,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE;CAC5B,QAAA,OAAOwS,MAAM,CAAA;CACjB,OAAA;CACA,MAAA,IAAIA,MAAM,CAAC1iB,MAAM,KAAK,CAAC,IAAI0iB,MAAM,KAAKA,MAAM,CAACC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE;CACnE,QAAA,IAAI9Y,GAAG,GAAG6Y,MAAM,CAACrX,WAAW,EAAE,CAAA;SAC9B,OAAO,GAAG,GAAGxB,GAAG,CAACoD,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,GAAGpD,GAAG,CAACoD,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAA;CACtE,OAAA;CACJ,KAAA;CAAC,GAAA,EAAA;KAAA5K,GAAA,EAAA,gBAAA;CAAAC,IAAAA,KAAA,EAED,SAAAsgB,cAAsB/Y,CAAAA,GAAG,EAAE;OACvB,IAAIA,GAAG,CAACqG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE;CACzB,QAAA,OAAOrG,GAAG,CAAA;CACd,OAAA;CACA,MAAA,OAAOA,GAAG,CAACoD,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAACwB,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;CAChD,KAAA;CAAC,GAAA,EAAA;KAAApM,GAAA,EAAA,iBAAA;CAAAC,IAAAA,KAAA,EAED,SAAAugB,eAAuBhZ,CAAAA,GAAG,EAAE;CACxB,MAAA,IAAMiZ,YAAY,GAAG1hB,QAAQ,CACzB,IAAI,GAAGgO,mBAAmB,CAACwT,cAAc,CAAC/Y,GAAG,CACjD,CAAC,CAAA;CACD,MAAA,OAAOiZ,YAAY,CAAA;CACvB,KAAA;CAAC,GAAA,EAAA;KAAAzgB,GAAA,EAAA,sBAAA;CAAAC,IAAAA,KAAA,EAED,SAAAygB,oBAA4BjZ,CAAAA,IAAI,EAAE;CAC9B,MAAA,IAAMuS,IAAI,GAAGjN,mBAAmB,CAACC,OAAO,CAACvF,IAAI,CAAC,CAAA;OAC9C,IAAIuS,IAAI,IAAIhU,SAAS,EAAE;CACnB,QAAA,OAAO,IAAI,CAACwa,eAAe,CAACxG,IAAI,CAACxS,GAAG,CAAC,CAAA;CACzC,OAAC,MAAM;CACH,QAAA,OAAOxB,SAAS,CAAA;CACpB,OAAA;CACJ,KAAA;;CAEA;CACA;CACA;CAAA,GAAA,EAAA;KAAAhG,GAAA,EAAA,cAAA;CAAAC,IAAAA,KAAA,EACA,SAAA0gB,YAAoBR,CAAAA,OAAO,EAAE;OACzB,IAAMS,cAAc,GAAG,EAAE,CAAA;OACzBhV,MAAM,CAACoM,IAAI,CAACmI,OAAO,CAAC,CAACpR,OAAO,CAAC,UAAAvH,GAAG,EAAI;CAChC,QAAA,IAAMqZ,IAAI,GAAGjV,MAAM,CAACC,MAAM,CAAC,EAAE,EAAEsU,OAAO,CAAC3Y,GAAG,CAAC,CAAC,CAAA;CAC5C,QAAA,IAAIqZ,IAAI,CAAC5c,EAAE,IAAI,IAAI,EAAE;WACjB,IAAM6c,aAAa,GAAG,EAAE,CAAA;CACxBlV,UAAAA,MAAM,CAACoM,IAAI,CAAC6I,IAAI,CAACE,KAAK,CAAC,CAAChS,OAAO,CAAC,UAAAxB,KAAK,EAAI;CACrCuT,YAAAA,aAAa,CAACrY,IAAI,CACdsE,mBAAmB,CAAC4T,YAAY,CAACE,IAAI,CAACE,KAAK,CAACxT,KAAK,CAAC,CACtD,CAAC,CAAA;CACL,WAAC,CAAC,CAAA;WACFsT,IAAI,CAACE,KAAK,GAAGD,aAAa,CAAA;CAC9B,SAAC,MAAM;CACH;CACAD,UAAAA,IAAI,CAACE,KAAK,GAAGnV,MAAM,CAACoM,IAAI,CAAC6I,IAAI,CAACE,KAAK,CAAC,CAACzV,GAAG,CAAC,UAAAiC,KAAK,EAAI;CAC9C,YAAA,IAAMyM,IAAI,GAAG6G,IAAI,CAACE,KAAK,CAACxT,KAAK,CAAC,CAAA;CAC9B,YAAA,IAAIyM,IAAI,CAACgH,WAAW,CAACvZ,IAAI,IAAI,QAAQ,EAAE;CACnC,cAAA,OAAOuS,IAAI,CAAC5N,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;CACjC,aAAA;CACA,YAAA,OAAO4N,IAAI,CAAA;CACf,WAAC,CAAC,CAAA;CACN,SAAA;CACA4G,QAAAA,cAAc,CAACpZ,GAAG,CAAC,GAAGqZ,IAAI,CAAA;CAC9B,OAAC,CAAC,CAAA;CACF,MAAA,OAAOD,cAAc,CAAA;CACzB,KAAA;;CAEA;CACA;CACA;CAAA,GAAA,EAAA;KAAA5gB,GAAA,EAAA,eAAA;CAAAC,IAAAA,KAAA,EACA,SAAAghB,aAAqBd,CAAAA,OAAO,EAAE;OAC1B,IAAIe,YAAY,GAAG,EAAE,CAAA;OACrBtV,MAAM,CAACoM,IAAI,CAACmI,OAAO,CAAC,CAACpR,OAAO,CAAC,UAAAvH,GAAG,EAAI;CAChC,QAAA,IAAMqZ,IAAI,GAAGjV,MAAM,CAACC,MAAM,CAAC,EAAE,EAAEsU,OAAO,CAAC3Y,GAAG,CAAC,CAAC,CAAA;CAC5C,QAAA,IAAIqZ,IAAI,CAAC5c,EAAE,IAAI,IAAI,EAAE;WACjB,IAAIkd,WAAW,GAAG,EAAE,CAAA;CACpBvV,UAAAA,MAAM,CAACoM,IAAI,CAAC6I,IAAI,CAACE,KAAK,CAAC,CAAChS,OAAO,CAAC,UAAAxB,KAAK,EAAI;CACrC4T,YAAAA,WAAW,CAAC1Y,IAAI,CACZsE,mBAAmB,CAACkU,aAAa,CAACJ,IAAI,CAACE,KAAK,CAACxT,KAAK,CAAC,CACvD,CAAC,CAAA;CACL,WAAC,CAAC,CAAA;WACFsT,IAAI,CAACE,KAAK,GAAGI,WAAW,CAAA;CAC5B,SAAA;CACA,QAAA,IAAIC,aAAa,GAAGrU,mBAAmB,CAACqT,YAAY,CAAC5Y,GAAG,CAAC,CAAA;CACzD,QAAA,IAAI6Z,KAAK,GAAGtU,mBAAmB,CAACxF,UAAU,CAAC6Z,aAAa,CAAC,CAAA;SACzD,IAAI3Z,IAAI,GAAGD,GAAG,CAAA;CACd,QAAA,IAAI6Z,KAAK,EAAE;WACP5Z,IAAI,GAAG4Z,KAAK,CAAC5Z,IAAI,CAAA;CACrB,SAAA;CACAyZ,QAAAA,YAAY,CAACzZ,IAAI,CAAC,GAAGoZ,IAAI,CAAA;CAC7B,OAAC,CAAC,CAAA;CACF,MAAA,OAAOK,YAAY,CAAA;CACvB,KAAA;;CAEA;CACJ;CACA;CACA;CACA;CACA;CACA;CANI,GAAA,EAAA;KAAAlhB,GAAA,EAAA,mBAAA;CAAAC,IAAAA,KAAA,EAOA,SAAAqhB,iBAAyBnB,CAAAA,OAAO,EAAE;CAC9B,MAAA,IAAMoB,cAAc,GAAG3X,mBAAmB,CAACqG,eAAe,CAAC;CACvDuR,QAAAA,MAAM,EAAE,EAAC;CACb,OAAC,CAAC,CAAA;OAEF5V,MAAM,CAACoM,IAAI,CAACmI,OAAO,CAAC,CAACpR,OAAO,CAAC,UAAAvH,GAAG,EAAI;CAChC,QAAA,IAAMqZ,IAAI,GAAGV,OAAO,CAAC3Y,GAAG,CAAC,CAAA;CACzB,QAAA,IAAM4Z,aAAa,GAAGrU,mBAAmB,CAACqT,YAAY,CAAC5Y,GAAG,CAAC,CAAA;CAC3D,QAAA,IAAM6Z,KAAK,GAAGtU,mBAAmB,CAACxF,UAAU,CAAC6Z,aAAa,CAAC,CAAA;SAC3D,IAAIK,WAAW,GAAGja,GAAG,CAAA;CAErB,QAAA,IAAI6Z,KAAK,EAAE;WACPI,WAAW,GAAGJ,KAAK,CAAC5Z,IAAI,CAAA;CAExB,UAAA,IAAI4Z,KAAK,CAACpd,EAAE,IAAI,IAAI,EAAE;CAClB;aACAsd,cAAc,CAACC,MAAM,CAACC,WAAW,CAAC,GAAGZ,IAAI,CAAC5c,EAAE,CAAA;CAChD,WAAA;CACJ,SAAA;CAEA,QAAA,IAAI4c,IAAI,CAACE,KAAK,KAAK/a,SAAS,EAAE;CAC1B;CACAub,UAAAA,cAAc,CAACE,WAAW,CAAC,GAAG,IAAI,CAAA;WAElC,IAAIZ,IAAI,CAACa,YAAY,EAAE;aACnBH,cAAc,CAACE,WAAW,CAAC,GAAG;eAC1BC,YAAY,EAAEb,IAAI,CAACa,YAAAA;cACtB,CAAA;CACL,WAAC,MAAM,IAAIb,IAAI,CAACc,WAAW,EAAE;aACzBJ,cAAc,CAACE,WAAW,CAAC,GAAG;eAC1BE,WAAW,EAAEd,IAAI,CAACc,WAAAA;cACrB,CAAA;CACL,WAAA;CACJ,SAAC,MAAM;CACH,UAAA,IAAId,IAAI,CAAC5c,EAAE,KAAK,IAAI,EAAE;CAClB;aACA,IAAM2d,aAAa,GAAG,EAAE,CAAA;CAExBhW,YAAAA,MAAM,CAACoM,IAAI,CAAC6I,IAAI,CAACE,KAAK,CAAC,CAAChS,OAAO,CAAC,UAAAxB,KAAK,EAAI;CACrCqU,cAAAA,aAAa,CAACnZ,IAAI,CACdsE,mBAAmB,CAACuU,iBAAiB,CACjCT,IAAI,CAACE,KAAK,CAACxT,KAAK,CACpB,CACJ,CAAC,CAAA;CACL,aAAC,CAAC,CAAA;CAEFgU,YAAAA,cAAc,CAACE,WAAW,CAAC,GAAGG,aAAa,CAAA;CAC/C,WAAC,MAAM;CACHL,YAAAA,cAAc,CAACE,WAAW,CAAC,GAAGZ,IAAI,CAACE,KAAK,CAAA;CAC5C,WAAA;WAEA,IAAIQ,cAAc,CAACE,WAAW,CAAC,CAAC9jB,MAAM,KAAK,CAAC,EAAE;aAC1C,IAAMwK,MAAM,GAAGoZ,cAAc,CAACE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAA;CAC7C,YAAA,IACItZ,MAAM,IACNG,OAAA,CAAOH,MAAM,CAAA,KAAK,QAAQ,IAC1B,CAACA,MAAM,CAACxK,MAAM,EAChB;CACE4jB,cAAAA,cAAc,CAACE,WAAW,CAAC,GAAGxZ,YAAY,CACtCsZ,cAAc,CAACE,WAAW,CAAC,EAC3BtZ,MACJ,CAAC,CAAA;CACL,aAAC,MAAM;CACHoZ,cAAAA,cAAc,CAACE,WAAW,CAAC,GAAGtZ,MAAM,CAAA;CACxC,aAAA;CACJ,WAAA;CACJ,SAAA;CACJ,OAAC,CAAC,CAAA;CAEF,MAAA,OAAOoZ,cAAc,CAAA;CACzB,KAAA;CAAC,GAAA,EAAA;KAAAvhB,GAAA,EAAA,mBAAA;CAAAC,IAAAA,KAAA,EAED,SAAA4hB,iBAAyBC,CAAAA,YAAY,EAAE;OACnC,IAAI7hB,KAAK,GAAG6hB,YAAY,CAAA;CACxB,MAAA,IAAI,CAACvZ,KAAK,CAACC,OAAO,CAACvI,KAAK,CAAC,EAAE;SACvBA,KAAK,GAAG,CAACA,KAAK,CAAC,CAAA;CACnB,OAAC,MAAM;CACH,QAAA,IAAM8hB,sBAAsB,GAAGD,YAAY,CAACE,IAAI,CAC5C,UAAAhI,IAAI,EAAA;WAAA,OAAIA,IAAI,KAAKhU,SAAS,CAAA;CAAA,SAC9B,CAAC,CAAA;CACD,QAAA,IAAI+b,sBAAsB,EAAE;CACxB,UAAA,MAAM,IAAIjjB,KAAK,CACX,+FACJ,CAAC,CAAA;CACL,SAAA;CACJ,OAAA;CAEAmB,MAAAA,KAAK,GAAGA,KAAK,CAACqL,GAAG,CAAC,UAAA+V,KAAK,EAAA;CAAA,QAAA,OACnBA,KAAK,CAACL,WAAW,CAACvZ,IAAI,IAAI,QAAQ,GAAG3D,MAAM,CAACud,KAAK,CAAC,GAAGA,KAAK,CAAA;CAAA,OAC9D,CAAC,CAAA;CAED,MAAA,OAAOphB,KAAK,CAAA;CAChB,KAAA;;CAEA;CAAA,GAAA,EAAA;KAAAD,GAAA,EAAA,qBAAA;CAAAC,IAAAA,KAAA,EACA,SAAAigB,mBAA2BC,CAAAA,OAAO,EAAyC;CAAA,MAAA,IAAvCnT,OAAO,GAAAjH,SAAA,CAAApI,MAAA,GAAAoI,CAAAA,IAAAA,SAAA,CAAAC,CAAAA,CAAAA,KAAAA,SAAA,GAAAD,SAAA,CAAGgH,CAAAA,CAAAA,GAAAA,mBAAmB,CAACC,OAAO,CAAA;OACrE,IAAIiV,gBAAgB,GAAG,EAAE,CAAA;OACzBrW,MAAM,CAACoM,IAAI,CAACmI,OAAO,CAAC,CAACpR,OAAO,CAAC,UAAA0S,WAAW,EAAI;CACxC;SACA,IAAIha,IAAI,GAAGga,WAAW,CAAA;CACtB,QAAA,IAAIJ,KAAK,GAAGrU,OAAO,CAACvF,IAAI,CAAC,CAAA;CACzB,QAAA,IAAI4Z,KAAK,EAAE;CACP,UAAA,IAAIa,SAAS,GAAG/B,OAAO,CAACsB,WAAW,CAAC,CAAA;WAEpC,IAAIS,SAAS,KAAKlc,SAAS,EAAE;CACzB;CACA,YAAA,OAAA;CACJ,WAAA;CACA;CACA,UAAA,IAAImc,QAAQ,GAAGvY,mBAAmB,CAACqG,eAAe,CAAC;aAC/ChM,EAAE,EAAEod,KAAK,CAACpd,EAAAA;CACd,WAAC,CAAC,CAAA;CACFke,UAAAA,QAAQ,CAACpB,KAAK,GAAGZ,OAAO,CAACsB,WAAW,CAAC,CAAA;WAErC,IAAIS,SAAS,KAAK,IAAI,EAAE;CACpB,YAAA,IAAIb,KAAK,CAACpd,EAAE,IAAI,IAAI,EAAE;eAClB,IAAIkc,OAAO,CAACqB,MAAM,IAAIrB,OAAO,CAACqB,MAAM,CAACC,WAAW,CAAC,EAAE;iBAC/CU,QAAQ,CAACle,EAAE,GAAGkc,OAAO,CAACqB,MAAM,CAACC,WAAW,CAAC,CAAA;CAC7C,eAAC,MAAM;CACH5kB,gBAAAA,GAAG,CAACyR,KAAK,CACL,mCAAmC,EACnCmT,WACJ,CAAC,CAAA;CACL,eAAA;CACJ,aAAA;aAEA,IAAIxd,EAAE,GAAG2F,mBAAmB,CAACC,kBAAkB,CAC3CsY,QAAQ,CAACle,EACb,CAAC,CAAA;aAEDke,QAAQ,CAACpB,KAAK,GAAGhU,mBAAmB,CAAC8U,iBAAiB,CAClDM,QAAQ,CAACpB,KACb,CAAC,CAAA;CAED,YAAA,IAAIM,KAAK,CAACpd,EAAE,IAAI,IAAI,EAAE;eAClB,IAAIme,eAAe,GAAG,EAAE,CAAA;CACxB,cAAA,KACI,IAAIC,YAAY,GAAG,CAAC,EACpBA,YAAY,GAAGF,QAAQ,CAACpB,KAAK,CAACpjB,MAAM,EACpC0kB,YAAY,EAAE,EAChB;CACE,gBAAA,IAAMC,aAAa,GAAGH,QAAQ,CAACpB,KAAK,CAACsB,YAAY,CAAC,CAAA;iBAClDD,eAAe,CAAC3Z,IAAI,CAChBsE,mBAAmB,CAACmT,mBAAmB,CACnCoC,aAAa,EACbtV,OACJ,CACJ,CAAC,CAAA;CACL,eAAA;eACAmV,QAAQ,CAACpB,KAAK,GAAGqB,eAAe,CAAA;CACpC,aAAA;aAEA,IAAI,CAACne,EAAE,CAAC+J,QAAQ,EAAE,IAAI/J,EAAE,CAACmK,SAAS,EAAE;eAChC+T,QAAQ,CAACpB,KAAK,GAAGoB,QAAQ,CAACpB,KAAK,CAACzV,GAAG,CAAC,UAAArL,KAAK,EAAI;CACzC,gBAAA,IAAIA,KAAK,CAACtC,MAAM,GAAGsG,EAAE,CAACmK,SAAS,EAAE;CAC7BvR,kBAAAA,GAAG,CAAC0lB,IAAI,CAAA,mBAAA,CAAA5d,MAAA,CACgB1E,KAAK,EAAA0E,MAAAA,CAAAA,CAAAA,MAAA,CAAO8c,WAAW,iCAAA9c,MAAA,CAA8BV,EAAE,CAACmK,SAAS,CACzF,CAAC,CAAA;mBACD,OAAOnO,KAAK,CAACgF,KAAK,CAAC,CAAC,EAAEhB,EAAE,CAACmK,SAAS,CAAC,CAAA;CACvC,iBAAC,MAAM;CACH,kBAAA,OAAOnO,KAAK,CAAA;CAChB,iBAAA;CACJ,eAAC,CAAC,CAAA;CACN,aAAA;CACJ,WAAA;WAEA,IAAIuH,GAAG,GAAGuF,mBAAmB,CAACwT,cAAc,CAACc,KAAK,CAAC7Z,GAAG,CAAC,CAAA;CACvDya,UAAAA,gBAAgB,CAACza,GAAG,CAAC,GAAG2a,QAAQ,CAAA;CACpC,SAAC,MAAM;CACH,UAAA,IAAMK,cAAc,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;WAC1C,IAAIA,cAAc,CAAC3U,OAAO,CAACpG,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE;CACpC5K,YAAAA,GAAG,CAAC0lB,IAAI,CACJ,yBAAyB,EACzB9a,IAAI,EACJ,GAAG,EACH0Y,OAAO,CAAC1Y,IAAI,CAChB,CAAC,CAAA;CACL,WAAA;CACJ,SAAA;CACJ,OAAC,CAAC,CAAA;CACF,MAAA,OAAOwa,gBAAgB,CAAA;CAC3B,KAAA;CAAC,GAAA,EAAA;KAAAjiB,GAAA,EAAA,KAAA;KAAAC,KAAA,EAED,SAAAic,GAAAA,GAAa;CACT,MAAA,IAAIA,GAAG,GAAG,OAAO,GAAG1e,IAAI,CAACC,KAAK,CAAC,CAAC,GAAGD,IAAI,CAACilB,MAAM,EAAE,GAAG,CAAC,CAAC,CAAA;OACrD,KAAK,IAAIlV,KAAK,GAAG,CAAC,EAAEA,KAAK,GAAG,EAAE,EAAEA,KAAK,EAAE,EAAE;CACrC2O,QAAAA,GAAG,GAAGA,GAAG,GAAG1e,IAAI,CAACC,KAAK,CAACD,IAAI,CAACilB,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA;CAC9C,OAAA;CACA,MAAA,OAAOvG,GAAG,CAAA;CACd,KAAA;;CAEA;CAAA,GAAA,EAAA;KAAAlc,GAAA,EAAA,MAAA;KAAAC,KAAA,EACA,SAAAyiB,IAAAA,GAAc;CACV,MAAA,IAAIC,GAAG,GAAG,IAAIC,IAAI,EAAE,CAAA;CACpB,MAAA,OAAOD,GAAG,CAACE,WAAW,EAAE,CAACzW,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAACnH,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;CAC1D,KAAA;CAAC,GAAA,EAAA;KAAAjF,GAAA,EAAA,MAAA;KAAAC,KAAA,EAED,SAAA6iB,IAAAA,GAAc;CACV,MAAA,IAAIH,GAAG,GAAG,IAAIC,IAAI,EAAE,CAAA;CACpB,MAAA,OAAOD,GAAG,CAACE,WAAW,EAAE,CAACzW,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAACnH,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;CAC5D,KAAA;CAAC,GAAA,EAAA;KAAAjF,GAAA,EAAA,UAAA;KAAAC,KAAA,EAED,SAAA8iB,QAAAA,GAAkB;CACd;CACA,MAAA,IAAIJ,GAAG,GAAG,IAAIC,IAAI,EAAE,CAAA;OACpB,OAAOD,GAAG,CAACE,WAAW,EAAE,CAACzW,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAA;CACpD,KAAA;CAAC,GAAA,EAAA;KAAApM,GAAA,EAAA,kBAAA;KAAAC,KAAA,EAED,SAAA+iB,gBAAAA,GAA0B;CACtBjW,MAAAA,mBAAmB,CAACC,OAAO,GAAG,EAAE,CAAA;CAChCpB,MAAAA,MAAM,CAACoM,IAAI,CAACjL,mBAAmB,CAACxF,UAAU,CAAC,CAACwH,OAAO,CAAC,UAAAvH,GAAG,EAAI;CACvD,QAAA,IAAIyb,IAAI,GAAGlW,mBAAmB,CAACxF,UAAU,CAACC,GAAG,CAAC,CAAA;CAC9C,QAAA,IAAIyb,IAAI,CAACtb,OAAO,IAAI,YAAY,EAAE;WAC9BoF,mBAAmB,CAACC,OAAO,CAACiW,IAAI,CAACxb,IAAI,CAAC,GAAGwb,IAAI,CAAA;CACjD,SAAA;CACJ,OAAC,CAAC,CAAA;CACN,KAAA;CAAC,GAAA,EAAA;KAAAjjB,GAAA,EAAA,wBAAA;CAAAC,IAAAA,KAAA,EAED,SAAAggB,sBAA8B1Y,CAAAA,UAAU,EAAE;OACtC,IAAMyF,OAAO,GAAG,EAAE,CAAA;OAClBpB,MAAM,CAACoM,IAAI,CAACzQ,UAAU,CAAC,CAACwH,OAAO,CAAC,UAAAvH,GAAG,EAAI;CACnC,QAAA,IAAIyb,IAAI,GAAG1b,UAAU,CAACC,GAAG,CAAC,CAAA;CAC1B,QAAA,IAAIyb,IAAI,CAACtb,OAAO,IAAI,YAAY,EAAE;CAC9BqF,UAAAA,OAAO,CAACiW,IAAI,CAACxb,IAAI,CAAC,GAAGwb,IAAI,CAAA;CAC7B,SAAA;CACJ,OAAC,CAAC,CAAA;CACF,MAAA,OAAOjW,OAAO,CAAA;CAClB,KAAA;CAAC,GAAA,EAAA;KAAAhN,GAAA,EAAA,iBAAA;KAAAC,KAAA,EAED,SAAAijB,eAAAA,GAAyB;CACrBnW,MAAAA,mBAAmB,CAACoW,kBAAkB,GAAG,EAAE,CAAA;CAC3CvX,MAAAA,MAAM,CAACoM,IAAI,CAACjL,mBAAmB,CAACqW,kBAAkB,CAAC,CAACrU,OAAO,CAAC,UAAAmN,GAAG,EAAI;CAC/D,QAAA,IAAIzU,IAAI,GAAGsF,mBAAmB,CAACqW,kBAAkB,CAAClH,GAAG,CAAC,CAAA;CACtDnP,QAAAA,mBAAmB,CAACoW,kBAAkB,CAAC1b,IAAI,CAAC,GAAGyU,GAAG,CAAA;CACtD,OAAC,CAAC,CAAA;CACN,KAAA;CAAC,GAAA,CAAA,CAAA,CAAA;CAAA,EAAA,OAAAnP,mBAAA,CAAA;CAAA,CAWL,EAAA,CAAA;CACA;CACAA,mBAAmB,CAACqW,kBAAkB,GAAG;CACrC,EAAA,2BAA2B,EAAE,SAAS;CACtC,EAAA,6BAA6B,EAAE,iBAAiB;CAChD,EAAA,6BAA6B,EAAE,gCAAgC;CAC/D,EAAA,6BAA6B,EAAE,mBAAmB;CAClD,EAAA,2BAA2B,EAAE,SAAS;CACtC,EAAA,6BAA6B,EAAE,iBAAiB;CAChD,EAAA,6BAA6B,EAAE,gBAAgB;CAC/C,EAAA,6BAA6B,EAAE,sBAAsB;CACrD,EAAA,6BAA6B,EAAE,gCAAgC;CAC/D,EAAA,6BAA6B,EAAE,SAAS;CACxC,EAAA,6BAA6B,EAAE,kBAAkB;CACjD,EAAA,2BAA2B,EAAE,uBAAuB;CACpD,EAAA,4BAA4B,EAAE,sBAAsB;CACpD,EAAA,4BAA4B,EAAE,SAAS;CACvC,EAAA,8BAA8B,EAAE,qBAAqB;CACrD,EAAA,8BAA8B,EAAE,kBAAkB;CAClD,EAAA,8BAA8B,EAAE,+BAA+B;CAC/D,EAAA,8BAA8B,EAAE,cAAc;CAC9C,EAAA,4BAA4B,EAAE,uBAAuB;CACrD,EAAA,+BAA+B,EAAE,aAAa;CAC9C,EAAA,+BAA+B,EAAE,YAAY;CAC7C,EAAA,+BAA+B,EAAE,iBAAiB;CAClD,EAAA,6BAA6B,EAAE,UAAU;CACzC,EAAA,6BAA6B,EAAE,kBAAkB;CACjD,EAAA,+BAA+B,EAAE,iCAAA;CACrC,CAAC,CAAA;CAEDrW,mBAAmB,CAACxF,UAAU,GAAGA,UAAU,CAAA;CAE3CwF,mBAAmB,CAACiW,gBAAgB,EAAE,CAAA;CACtCjW,mBAAmB,CAACmW,eAAe,EAAE;;CCvXrC,IAAMxV,SAAS,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;CAEtD,IAAM2V,eAAe,GAAG;CACpB,EAAA,EAAE,EAAE,YAAY;CAChB,EAAA,UAAU,EAAE,YAAY;CACxB,EAAA,WAAW,EAAE,WAAW;CACxB,EAAA,YAAY,EAAE,QAAQ;CACtB,EAAA,YAAY,EAAE,YAAY;CAC1B,EAAA,YAAY,EAAE,YAAY;CAC1B,EAAA,YAAY,EAAE,YAAY;CAC1B,EAAA,YAAY,EAAE,YAAY;CAC1B,EAAA,YAAY,EAAE,YAAY;CAC1B,EAAA,YAAY,EAAE,YAAY;CAC1B,EAAA,YAAY,EAAE,YAAY;CAC1B,EAAA,YAAY,EAAE,YAAY;CAC1B,EAAA,YAAY,EAAE,SAAS;CACvB,EAAA,eAAe,EAAE,YAAY;CAC7B,EAAA,gBAAgB,EAAE,WAAW;CAC7B,EAAA,gBAAgB,EAAE,aAAa;CAC/B,EAAA,iBAAiB,EAAE,QAAQ;CAC3B,EAAA,iBAAiB,EAAE,YAAY;CAC/B,EAAA,iBAAiB,EAAE,YAAY;CAC/B,EAAA,iBAAiB,EAAE,YAAY;CAC/B,EAAA,iBAAiB,EAAE,YAAY;CAC/B,EAAA,iBAAiB,EAAE,YAAY;CAC/B,EAAA,iBAAiB,EAAE,YAAY;CAC/B,EAAA,iBAAiB,EAAE,YAAY;CAC/B,EAAA,iBAAiB,EAAE,YAAY;CAC/B,EAAA,iBAAiB,EAAE,QAAQ;CAC3B,EAAA,iBAAiB,EAAE,aAAa;CAChC,EAAA,iBAAiB,EAAE,SAAS;CAC5B,EAAA,gBAAgB,EAAE,WAAW;CAC7B,EAAA,YAAY,EAAE,OAAO;CACrBC,EAAAA,OAAO,EAAE,SAAS;CAClB,EAAA,cAAc,EAAE,KAAK;CACrB,EAAA,aAAa,EAAE,QAAQ;CACvBC,EAAAA,GAAG,EAAE,KAAA;CACT,CAAC,CAAA;CAED,IAAMC,oBAAoB,GAAG,CACzB,wBAAwB,EACxB,wBAAwB,EACxB,wBAAwB,EACxB,wBAAwB,EACxB,wBAAwB,EACxB,wBAAwB,EACxB,wBAAwB,EACxB,wBAAwB,EACxB,wBAAwB,EACxB,wBAAwB,EACxB,wBAAwB,EACxB,wBAAwB,EACxB,qBAAqB,EACrB,uBAAuB,EACvB,yBAAyB,EACzB,yBAAyB,EACzB,yBAAyB,EACzB,yBAAyB,EACzB,yBAAyB,EACzB,yBAAyB,CAC5B,CAAA;CAAC,IAEIzZ,YAAY,gBAAA,YAAA;CAAA,EAAA,SAAAA,YAAA,GAAA;CAAA1K,IAAAA,eAAA,OAAA0K,YAAA,CAAA,CAAA;CAAA,GAAA;CAAAhK,EAAAA,YAAA,CAAAgK,YAAA,EAAA,IAAA,EAAA,CAAA;KAAA/J,GAAA,EAAA,MAAA;KAAAC,KAAA,EACd,SAAAiO,IACIuV,CAAAA,YAAY,EACZ/Z,MAAM,EACNga,YAAY,EAGd;CAAA,MAAA,IAFEC,QAAQ,GAAA5d,SAAA,CAAApI,MAAA,GAAA,CAAA,IAAAoI,SAAA,CAAA,CAAA,CAAA,KAAAC,SAAA,GAAAD,SAAA,CAAA,CAAA,CAAA,GAAG,IAAI,CAAA;CAAA,MAAA,IACf6d,oBAAoB,GAAA7d,SAAA,CAAApI,MAAA,GAAA,CAAA,IAAAoI,SAAA,CAAA,CAAA,CAAA,KAAAC,SAAA,GAAAD,SAAA,CAAA,CAAA,CAAA,GAAG,KAAK,CAAA;CAE5BlJ,MAAAA,GAAG,CAAC0lB,IAAI,CAAC,uDAAuD,CAAC,CAAA;CACjE,MAAA,OAAO,IAAI,CAACxI,KAAK,CAAC0J,YAAY,EAAE/Z,MAAM,EAAE;CACpCga,QAAAA,YAAY,EAAEA,YAAY;CAC1BC,QAAAA,QAAQ,EAAEA,QAAQ;CAClBC,QAAAA,oBAAoB,EAAEA,oBAAAA;CAC1B,OAAC,CAAC,CAAA;CACN,KAAA;CAAC,GAAA,EAAA;KAAA5jB,GAAA,EAAA,SAAA;CAAAC,IAAAA,KAAA,EAED,SAAA8K,OAAAA,CACI0Y,YAAY,EACZ/Z,MAAM,EAGR;CAAA,MAAA,IAFEia,QAAQ,GAAA5d,SAAA,CAAApI,MAAA,GAAA,CAAA,IAAAoI,SAAA,CAAA,CAAA,CAAA,KAAAC,SAAA,GAAAD,SAAA,CAAA,CAAA,CAAA,GAAG,IAAI,CAAA;CAAA,MAAA,IACf6d,oBAAoB,GAAA7d,SAAA,CAAApI,MAAA,GAAA,CAAA,IAAAoI,SAAA,CAAA,CAAA,CAAA,KAAAC,SAAA,GAAAD,SAAA,CAAA,CAAA,CAAA,GAAG,KAAK,CAAA;CAE5BlJ,MAAAA,GAAG,CAAC0lB,IAAI,CAAC,0DAA0D,CAAC,CAAA;CACpE,MAAA,OAAO,IAAI,CAACsB,QAAQ,CAACJ,YAAY,EAAE/Z,MAAM,EAAE;CACvCia,QAAAA,QAAQ,EAAEA,QAAQ;CAClBC,QAAAA,oBAAoB,EAAEA,oBAAAA;CAC1B,OAAC,CAAC,CAAA;CACN,KAAA;CAAC,GAAA,EAAA;KAAA5jB,GAAA,EAAA,OAAA;CAAAC,IAAAA,KAAA,EAED,SAAA8Z,KAAAA,CACI0J,YAAY,EACZ/Z,MAAM,EAMR;OAAA,IALE5D,OAAO,GAAAC,SAAA,CAAApI,MAAA,GAAAoI,CAAAA,IAAAA,SAAA,CAAAC,CAAAA,CAAAA,KAAAA,SAAA,GAAAD,SAAA,CAAG,CAAA,CAAA,GAAA;CACN2d,QAAAA,YAAY,EAAE,KAAK;CACnBC,QAAAA,QAAQ,EAAE,IAAI;CACdC,QAAAA,oBAAoB,EAAE,KAAA;QACzB,CAAA;CAED,MAAA,IAAQF,YAAY,GAAe5d,OAAO,CAAlC4d,YAAY;SAAEC,QAAQ,GAAK7d,OAAO,CAApB6d,QAAQ,CAAA;OAC9B,IAAIV,IAAI,GAAG,EAAE,CAAA;OACb,IAAI;CACA,QAAA,OAAO,CAACQ,YAAY,CAAC5f,GAAG,EAAE,EAAE;WACxB,IAAMigB,QAAQ,GAAG/Z,YAAY,CAAC8Z,QAAQ,CAClCJ,YAAY,EACZ/Z,MAAM,EACN5D,OACJ,CAAC,CAAA;WACD,IAAMie,cAAc,GAAGD,QAAQ,CAACtc,GAAG,CAAC0B,aAAa,EAAE,CAAA;WACnD,IAAI6a,cAAc,KAAK,UAAU,EAAE;CAC/B,YAAA,IAAID,QAAQ,CAACra,MAAM,CAAC9L,MAAM,GAAG,CAAC,EAAE;CAC5B,cAAA,IAAIqmB,MAAM,GAAGF,QAAQ,CAACra,MAAM,CAAC,CAAC,CAAC,CAAA;CAC/Bua,cAAAA,MAAM,GAAGA,MAAM,CAAC5X,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC6X,WAAW,EAAE,CAAA;eACnD,IAAID,MAAM,IAAIX,eAAe,EAAE;CAC3BW,gBAAAA,MAAM,GAAGX,eAAe,CAACW,MAAM,CAAC,CAAA;iBAChCP,YAAY,CAACrd,UAAU,CAAC,IAAID,WAAW,CAAC6d,MAAM,CAAC,CAAC,CAAA;gBACnD,MAAM,IAAIN,YAAY,EAAE;CACrB7mB,gBAAAA,GAAG,CAAC0lB,IAAI,CAAA,6BAAA,CAAA5d,MAAA,CAC0Bqf,MAAM,kCACxC,CAAC,CAAA;CACL,eAAC,MAAM;CACH,gBAAA,MAAMllB,KAAK,CAAA6F,6BAAAA,CAAAA,MAAA,CAA+Bqf,MAAM,CAAE,CAAC,CAAA;CACvD,eAAA;CACJ,aAAA;CACA,YAAA,IAAIF,QAAQ,CAACra,MAAM,CAAC9L,MAAM,GAAG,CAAC,EAAE;CAC5B,cAAA,IAAI+lB,YAAY,EAAE;iBACd7mB,GAAG,CAAC0lB,IAAI,CACJ,8FAA8F,EAC9FuB,QAAQ,CAACra,MACb,CAAC,CAAA;CACL,eAAC,MAAM;iBACH,MAAM3K,KAAK,oDAAA6F,MAAA,CAC4Cmf,QAAQ,CAACra,MAAM,CACtE,CAAC,CAAA;CACL,eAAA;CACJ,aAAA;CACAqa,YAAAA,QAAQ,CAACra,MAAM,GAAG,CAAC,YAAY,CAAC,CAAC;CACrC,WAAA;;CAEAwZ,UAAAA,IAAI,CAACc,cAAc,CAAC,GAAGna,mBAAmB,CAACqG,eAAe,CAAC;CACvDhM,YAAAA,EAAE,EAAE6f,QAAQ,CAAC7f,EAAE,CAACwG,IAAAA;CACpB,WAAC,CAAC,CAAA;WACFwY,IAAI,CAACc,cAAc,CAAC,CAAChD,KAAK,GAAG+C,QAAQ,CAACra,MAAM,CAAA;CAE5C,UAAA,IAAIka,QAAQ,IAAIA,QAAQ,KAAKI,cAAc,EAAE;CACzC,YAAA,MAAA;CACJ,WAAA;CACJ,SAAA;CACA,QAAA,OAAOd,IAAI,CAAA;QACd,CAAC,OAAO/K,GAAG,EAAE;CACV,QAAA,IAAIwL,YAAY,EAAE;CACd7mB,UAAAA,GAAG,CAAC0lB,IAAI,CAAC,OAAO,EAAErK,GAAG,CAAC,CAAA;CACtB,UAAA,OAAO+K,IAAI,CAAA;CACf,SAAA;CACA,QAAA,MAAM/K,GAAG,CAAA;CACb,OAAA;CACJ,KAAA;CAAC,GAAA,EAAA;KAAAlY,GAAA,EAAA,kBAAA;CAAAC,IAAAA,KAAA,EAED,SAAA+J,gBAAwBN,CAAAA,MAAM,EAAE;OAC5B,IACIA,MAAM,IAAI3C,sBAAsB,IAChC2C,MAAM,IAAI1C,wBAAsB,IAChC0C,MAAM,IAAIxC,mBAAmB,EAC/B;CACE,QAAA,OAAOwC,MAAM,CAAA;CACjB,OAAC,MAAM;CACH,QAAA,OAAO1C,wBAAsB,CAAA;CACjC,OAAA;CACJ,KAAA;CAAC,GAAA,EAAA;KAAAhH,GAAA,EAAA,gBAAA;CAAAC,IAAAA,KAAA,EAED,SAAAiK,cAAsBR,CAAAA,MAAM,EAAE;OAC1B,OAAO8Z,oBAAoB,CAAC3V,OAAO,CAACnE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA;CACrD,KAAA;CAAC,GAAA,EAAA;KAAA1J,GAAA,EAAA,UAAA;CAAAC,IAAAA,KAAA,EAED,SAAAikB,QACI5kB,CAAAA,MAAM,EAOR;OAAA,IANEwG,OAAO,GAAAC,SAAA,CAAApI,MAAA,GAAAoI,CAAAA,IAAAA,SAAA,CAAAC,CAAAA,CAAAA,KAAAA,SAAA,GAAAD,SAAA,CAAG,CAAA,CAAA,GAAA;CACN2d,QAAAA,YAAY,EAAE,KAAK;CACnBC,QAAAA,QAAQ,EAAE,IAAI;CACdC,QAAAA,oBAAoB,EAAE,KAAK;CAC3B3d,QAAAA,MAAM,EAAE,KAAA;QACX,CAAA;OAED,IAAIrB,MAAM,GAAG,IAAIS,gBAAgB,CAAC/F,MAAM,EAAE,IAAI,EAAE;WACxC2G,MAAM,EAAEH,OAAO,CAACG,MAAAA;CACpB,SAAC,CAAC;CACF6D,QAAAA,SAAS,GAAG9C,wBAAsB,CAAA;OACtCpC,MAAM,CAACW,KAAK,EAAE,CAAA;CACdX,MAAAA,MAAM,CAACrE,SAAS,CAAC,GAAG,CAAC,CAAA;OACrB,IAAIqE,MAAM,CAAClB,eAAe,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE;CACtC,QAAA,MAAM,IAAI5E,KAAK,CAAC,gDAAgD,CAAC,CAAA;CACrE,OAAA;OAEA,IAAIqlB,EAAE,GAAGpa,YAAY,CAAC8Z,QAAQ,CAACjf,MAAM,EAAEkF,SAAS,CAAC,CAAA;OACjD,IAAIqa,EAAE,CAAC3c,GAAG,CAAC0B,aAAa,EAAE,KAAK,UAAU,EAAE;CACvC,QAAA,MAAM,IAAIpK,KAAK,CACX,kEACJ,CAAC,CAAA;CACL,OAAA;CAEA,MAAA,IAAIslB,UAAU,GAAGD,EAAE,CAAC1a,MAAM,CAAC,CAAC,CAAC,CAAA;;CAE7B;CACA,MAAA,IAAI4a,UAAU,GAAGzf,MAAM,CAACM,IAAI,CAACkf,UAAU,CAAC,CAAA;OACxC,IAAIE,UAAU,GAAGva,YAAY,CAACgQ,KAAK,CAACsK,UAAU,EAAEva,SAAS,EAAEhE,OAAO,CAAC,CAAA;;CAEnE;OACA,IAAIye,UAAU,GAAGD,UAAU,CAAC,UAAU,CAAC,CAACvD,KAAK,CAAC,CAAC,CAAC,CAAA;;CAEhD;OACA,IAAIwD,UAAU,KAAKtd,+BAA+B,EAAE;CAChDrC,QAAAA,MAAM,GAAG,IAAIyB,wBAAwB,CAACzB,MAAM,EAAE;WAC1CqB,MAAM,EAAEH,OAAO,CAACG,MAAAA;CACpB,SAAC,CAAC,CAAA;CACN,OAAA;CAEAse,MAAAA,UAAU,GAAGxa,YAAY,CAACC,gBAAgB,CAACua,UAAU,CAAC,CAAA;OACtD,IAAIC,OAAO,GAAGza,YAAY,CAACgQ,KAAK,CAACnV,MAAM,EAAE2f,UAAU,EAAEze,OAAO,CAAC,CAAA;CAE7D,MAAA,IAAI2e,SAAS,GAAG,IAAIC,SAAS,CAACJ,UAAU,CAAC,CAAA;OACzCG,SAAS,CAACxB,IAAI,GAAGuB,OAAO,CAAA;CAExB,MAAA,OAAOC,SAAS,CAAA;CACpB,KAAA;CAAC,GAAA,EAAA;KAAAzkB,GAAA,EAAA,gBAAA;CAAAC,IAAAA,KAAA,EAED,SAAA0kB,cAAsB/f,CAAAA,MAAM,EAAEggB,SAAS,EAAE3gB,EAAE,EAAEwF,MAAM,EAAEC,MAAM,EAAEC,YAAY,EAAE;CACvE,MAAA,IAAInC,GAAG,GAAGsB,GAAG,CAAC4B,UAAU,CAACka,SAAS,CAAC,CAAA;CAEnCpd,MAAAA,GAAG,CAAC+B,KAAK,CAAC3E,MAAM,EAAEX,EAAE,EAAEwF,MAAM,EAAEC,MAAM,EAAEC,YAAY,CAAC,CAAA;CACvD,KAAA;CAAC,GAAA,EAAA;KAAA3J,GAAA,EAAA,OAAA;KAAAC,KAAA,EAED,SAAAsJ,KAAAA,CAAasb,WAAW,EAAEC,SAAS,EAAEpb,MAAM,EAAEC,YAAY,EAAE;OACvD,IAAIY,OAAO,GAAG,CAAC,CAAA;OAEf,IAAIwa,UAAU,GAAGnZ,MAAM,CAACoM,IAAI,CAAC6M,WAAW,CAAC,CAACG,IAAI,EAAE,CAAA;CAChDD,MAAAA,UAAU,CAAChW,OAAO,CAAC,UAAU6V,SAAS,EAAE;CACpC,QAAA,IAAIpd,GAAG,GAAGsB,GAAG,CAAC4B,UAAU,CAACka,SAAS,CAAC;CAC/BK,UAAAA,SAAS,GAAGJ,WAAW,CAACD,SAAS,CAAC;WAClCpb,MAAM,GAAGyb,SAAS,CAAChhB,EAAE;WACrBwF,MAAM,GAAGwb,SAAS,CAAClE,KAAK,CAAA;CAE5BxW,QAAAA,OAAO,IAAI/C,GAAG,CAAC+B,KAAK,CAChBub,SAAS,EACTtb,MAAM,EACNC,MAAM,EACNC,MAAM,EACNC,YACJ,CAAC,CAAA;CACL,OAAC,CAAC,CAAA;CAEF,MAAA,OAAOY,OAAO,CAAA;CAClB,KAAA;CAAC,GAAA,EAAA;KAAAvK,GAAA,EAAA,UAAA;CAAAC,IAAAA,KAAA,EAED,SAAA4jB,QAAAA,CACIjf,MAAM,EACN8E,MAAM,EAKR;OAAA,IAJE5D,OAAO,GAAAC,SAAA,CAAApI,MAAA,GAAAoI,CAAAA,IAAAA,SAAA,CAAAC,CAAAA,CAAAA,KAAAA,SAAA,GAAAD,SAAA,CAAG,CAAA,CAAA,GAAA;CACN4d,QAAAA,QAAQ,EAAE,IAAI;CACdC,QAAAA,oBAAoB,EAAE,KAAA;QACzB,CAAA;CAED,MAAA,IAAQD,QAAQ,GAA2B7d,OAAO,CAA1C6d,QAAQ;SAAEC,oBAAoB,GAAK9d,OAAO,CAAhC8d,oBAAoB,CAAA;OACtC,IAAI3Z,QAAQ,GAAGP,MAAM,IAAI3C,sBAAsB,GAAG,IAAI,GAAG,KAAK;SAC1DpH,cAAc,GACV+J,MAAM,IAAI3C,sBAAsB,IAChC2C,MAAM,IAAI1C,wBAAsB,GAC1B,IAAI,GACJ,KAAK,CAAA;CAEnB,MAAA,IAAImD,SAAS,GAAGvF,MAAM,CAACjF,cAAc,CAAA;CACrCiF,MAAAA,MAAM,CAAC1E,SAAS,CAACP,cAAc,CAAC,CAAA;CAChC,MAAA,IAAI6H,GAAG,GAAGsB,GAAG,CAACiC,OAAO,CAACnG,MAAM,CAAC,CAAA;OAE7B,IAAI+e,QAAQ,KAAKnc,GAAG,CAAC0B,aAAa,EAAE,IAAIya,QAAQ,KAAK,IAAI,EAAE;SACvD,IAAI,CAACC,oBAAoB,EAAE;WACvB,OAAO;CAAEpc,YAAAA,GAAG,EAAEA,GAAG;CAAEvD,YAAAA,EAAE,EAAE,CAAC;CAAEwF,YAAAA,MAAM,EAAE,CAAA;YAAG,CAAA;CACzC,SAAA;CACJ,OAAA;OAEA,IAAI9L,MAAM,GAAG,IAAI;CACbsG,QAAAA,EAAE,GAAG,IAAI;SACTuF,MAAM,CAAA;CAEV,MAAA,IAAIS,QAAQ,EAAE;CACVtM,QAAAA,MAAM,GAAGiH,MAAM,CAACtC,UAAU,EAAE,CAAA;CAC5B,QAAA,IAAI4iB,WAAW,GAAGnb,YAAY,CAACob,SAAS,CAAC3d,GAAG,CAAC,CAAA;CAC7C,QAAA,IAAI0d,WAAW,EAAE;WACb1b,MAAM,GAAG0b,WAAW,CAACjhB,EAAE,CAAA;CAC3B,SAAC,MAAM;CACH;WACA,IAAItG,MAAM,IAAI,UAAU,EAAE;CACtB6L,YAAAA,MAAM,GAAG,IAAI,CAAA;CACjB,WAAC,MAAM,IAAIhC,GAAG,CAAC6B,cAAc,EAAE,EAAE;CAC7BG,YAAAA,MAAM,GAAG,IAAI,CAAA;CACjB,WAAC,MAAM,IAAIA,MAAM,IAAI,IAAI,EAAE;CACvBA,YAAAA,MAAM,GAAG,IAAI,CAAA;CACjB,WAAC,MAAM,IAAIhC,GAAG,CAAC8B,gBAAgB,EAAE,EAAE;CAC/BE,YAAAA,MAAM,GAAG,IAAI,CAAA;CACjB,WAAC,MAAM;CACHA,YAAAA,MAAM,GAAG,IAAI,CAAA;CACjB,WAAA;CACJ,SAAA;CACAvF,QAAAA,EAAE,GAAG2F,mBAAmB,CAACC,kBAAkB,CAACL,MAAM,CAAC,CAAA;CACvD,OAAC,MAAM;CACHA,QAAAA,MAAM,GAAG5E,MAAM,CAACZ,MAAM,EAAE,CAAA;CAExB,QAAA,IACIwF,MAAM,KAAK,IAAI,IACfO,YAAY,CAACob,SAAS,CAAC3d,GAAG,CAAC,IAC3BuC,YAAY,CAACob,SAAS,CAAC3d,GAAG,CAAC,CAACvD,EAAE,EAChC;WACEuF,MAAM,GAAGO,YAAY,CAACob,SAAS,CAAC3d,GAAG,CAAC,CAACvD,EAAE,CAAA;CAEvCA,UAAAA,EAAE,GAAG2F,mBAAmB,CAAC0G,cAAc,CAAC9G,MAAM,CAAC,CAAA;CACnD,SAAC,MAAM;CACHvF,UAAAA,EAAE,GAAG2F,mBAAmB,CAACC,kBAAkB,CAACL,MAAM,CAAC,CAAA;CACvD,SAAA;CAEA,QAAA,IAAIvF,EAAE,CAACuG,UAAU,EAAE,EAAE;CACjB5F,UAAAA,MAAM,CAACrE,SAAS,CAAC,CAAC,CAAC,CAAA;CACnB5C,UAAAA,MAAM,GAAGiH,MAAM,CAACtC,UAAU,EAAE,CAAA;CAChC,SAAC,MAAM;CACH3E,UAAAA,MAAM,GAAGiH,MAAM,CAACpC,UAAU,EAAE,CAAA;CAChC,SAAA;CACJ,OAAA;OAEA,IAAIiH,MAAM,GAAG,EAAE,CAAA;CACf,MAAA,IAAIxF,EAAE,CAAC+J,QAAQ,EAAE,IAAIrQ,MAAM,GAAGsG,EAAE,CAACmK,SAAS,IAAI,CAACnK,EAAE,CAACmV,UAAU,EAAE;CAC1D,QAAA,IAAI4D,KAAK,GAAGrf,MAAM,GAAGsG,EAAE,CAACmK,SAAS;CAC7BpQ,UAAAA,CAAC,GAAG,CAAC,CAAA;CACT,QAAA,OAAOA,CAAC,EAAE,GAAGgf,KAAK,EAAE;CAChBvT,UAAAA,MAAM,CAAChB,IAAI,CAACxE,EAAE,CAACiK,IAAI,CAACtJ,MAAM,EAAEX,EAAE,CAACmK,SAAS,EAAE1E,MAAM,CAAC,CAAC,CAAA;CACtD,SAAA;CACJ,OAAC,MAAM;SACH,IAAI9K,GAAG,GAAGqF,EAAE,CAACiK,IAAI,CAACtJ,MAAM,EAAEjH,MAAM,EAAE+L,MAAM,CAAC,CAAA;CACzC,QAAA,IAAI,CAACzF,EAAE,CAAC+J,QAAQ,EAAE,IAAIN,SAAS,CAACG,OAAO,CAAC5J,EAAE,CAACwG,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE;CACpDhB,UAAAA,MAAM,GAAG7K,GAAG,CAAA;CACZ,UAAA,IAAI,OAAOA,GAAG,KAAK,QAAQ,EAAE;aACzB6K,MAAM,GAAG7K,GAAG,CAACsM,KAAK,CAACpH,MAAM,CAACC,YAAY,CAACoD,YAAY,CAAC,CAAC,CAAA;CACzD,WAAA;CACJ,SAAC,MAAM,IAAIlD,EAAE,CAACwG,IAAI,IAAI,IAAI,EAAE;CACxBhB,UAAAA,MAAM,GAAG7K,GAAG,CAAA;CAChB,SAAC,MAAM,IAAIqF,EAAE,CAACwG,IAAI,IAAI,IAAI,IAAIxG,EAAE,CAACwG,IAAI,IAAI,IAAI,EAAE;CAC3ChB,UAAAA,MAAM,GAAG7K,GAAG,CAAA;CAChB,SAAC,MAAM;CACH2J,UAAAA,KAAK,CAACC,OAAO,CAAC5J,GAAG,CAAC,GAAI6K,MAAM,GAAG7K,GAAG,GAAI6K,MAAM,CAAChB,IAAI,CAAC7J,GAAG,CAAC,CAAA;CAC1D,SAAA;CACJ,OAAA;CACAgG,MAAAA,MAAM,CAAC1E,SAAS,CAACiK,SAAS,CAAC,CAAA;CAE3B,MAAA,IAAMib,MAAM,GAAGxb,mBAAmB,CAACqG,eAAe,CAAC;CAC/CzI,QAAAA,GAAG,EAAEA,GAAG;CACRvD,QAAAA,EAAE,EAAEA,EAAAA;CACR,OAAC,CAAC,CAAA;OACFmhB,MAAM,CAAC3b,MAAM,GAAGA,MAAM,CAAA;CACtB,MAAA,OAAO2b,MAAM,CAAA;CACjB,KAAA;CAAC,GAAA,EAAA;KAAAplB,GAAA,EAAA,WAAA;CAAAC,IAAAA,KAAA,EAED,SAAAklB,SAAiB3d,CAAAA,GAAG,EAAE;OAClB,OAAOuF,mBAAmB,CAACxF,UAAU,CAACC,GAAG,CAACjD,QAAQ,EAAE,CAAC,CAAA;CACzD,KAAA;CAAC,GAAA,CAAA,CAAA,CAAA;CAAA,EAAA,OAAAwF,YAAA,CAAA;CAAA,CAAA,EAAA;;CCnXL,IAAM/C,sBAAsB,GAAG,qBAAqB,CAAA;CAAC,IAE/C0d,SAAS,gBAAA,YAAA;GACX,SAAAA,SAAAA,CAAYW,IAAI,EAAE;CAAAhmB,IAAAA,eAAA,OAAAqlB,SAAA,CAAA,CAAA;KACd,IAAI,CAACW,IAAI,GAAGA,IAAI,CAAA;CAChB,IAAA,IAAI,CAACpC,IAAI,GAAG,EAAE,CAAA;CAClB,GAAA;CAACljB,EAAAA,YAAA,CAAA2kB,SAAA,EAAA,CAAA;KAAA1kB,GAAA,EAAA,WAAA;KAAAC,KAAA,EAED,SAAAqlB,SAAU9d,CAAAA,GAAG,EAAEvD,EAAE,EAAEwF,MAAM,EAAE;CACvB,MAAA,IAAI,IAAI,CAACwZ,IAAI,CAACzb,GAAG,CAAC,EAAE;CAChB;SACA,IAAI,CAACyb,IAAI,CAACzb,GAAG,CAAC,CAACuZ,KAAK,GAAGtX,MAAM,CAAA;CACjC,OAAC,MAAM;SACH,IAAI,CAACwZ,IAAI,CAACzb,GAAG,CAAC,GAAGoC,mBAAmB,CAACqG,eAAe,CAAC;CAAEhM,UAAAA,EAAE,EAAEA,EAAAA;CAAG,SAAC,CAAC,CAAA;SAChE,IAAI,CAACgf,IAAI,CAACzb,GAAG,CAAC,CAACuZ,KAAK,GAAGtX,MAAM,CAAA;CACjC,OAAA;CACJ,KAAA;CAAC,GAAA,EAAA;KAAAzJ,GAAA,EAAA,OAAA;KAAAC,KAAA,EAED,SAAAsJ,KAAAA,GAAsD;OAAA,IAAhDI,YAAY,GAAA5D,SAAA,CAAApI,MAAA,GAAAoI,CAAAA,IAAAA,SAAA,CAAAC,CAAAA,CAAAA,KAAAA,SAAA,GAAAD,SAAA,CAAG,CAAA,CAAA,GAAA;CAAEsJ,QAAAA,oBAAoB,EAAE,KAAA;QAAO,CAAA;OAChD,IAAIkW,UAAU,GAAGve,sBAAsB,CAAA;OACvC,IAAIwe,UAAU,GAAG,IAAI7e,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;CAClD6e,MAAAA,UAAU,CAAChlB,gBAAgB,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;CACnCglB,MAAAA,UAAU,CAACvjB,gBAAgB,CAAC,MAAM,CAAC,CAAA;CAEnC,MAAA,IAAIoiB,UAAU,GAAG,IAAI1d,iBAAiB,CAAC,IAAI,CAAC,CAAA;CAC5C,MAAA,IAAI,CAAC,IAAI,CAAC0e,IAAI,CAAC,UAAU,CAAC,EAAE;CACxB,QAAA,IAAI,CAACA,IAAI,CAAC,UAAU,CAAC,GAAG;CACpBphB,UAAAA,EAAE,EAAE,IAAI;WACR8c,KAAK,EAAE,CAAC/Z,sBAAsB,CAAA;UACjC,CAAA;CACL,OAAA;CACA+C,MAAAA,YAAY,CAACR,KAAK,CAAC,IAAI,CAAC8b,IAAI,EAAEhB,UAAU,EAAEkB,UAAU,EAAE5b,YAAY,CAAC,CAAA;CACnEI,MAAAA,YAAY,CAAC4a,cAAc,CACvBa,UAAU,EACV,UAAU,EACV,IAAI,EACJnB,UAAU,CAACzkB,IAAI,EACf2lB,UAAU,EACV5b,YACJ,CAAC,CAAA;CACD6b,MAAAA,UAAU,CAAC7gB,MAAM,CAAC0f,UAAU,CAAC,CAAA;CAE7B,MAAA,IAAIva,SAAS,GAAG,IAAI,CAACub,IAAI,CAAC,UAAU,CAAC,CAACtE,KAAK,CAAC,CAAC,CAAC,CAAA;CAC9ChX,MAAAA,YAAY,CAACR,KAAK,CAAC,IAAI,CAAC0Z,IAAI,EAAEuC,UAAU,EAAE1b,SAAS,EAAEH,YAAY,CAAC,CAAA;CAClE,MAAA,OAAO6b,UAAU,CAACxgB,SAAS,EAAE,CAAA;CACjC,KAAA;CAAC,GAAA,CAAA,CAAA,CAAA;CAAA,EAAA,OAAA0f,SAAA,CAAA;CAAA,CAAA,EAAA;;ACjDsB,KAErBe,QAAQ,gBAAA,YAAA;CACV;CACJ;CACA;CACA;CACA;CACA;CACA;CACA;CACA;;CAKI,EAAA,SAAAA,WAA0B;CAAA,IAAA,IAAd3f,OAAO,GAAAC,SAAA,CAAApI,MAAA,GAAA,CAAA,IAAAoI,SAAA,CAAA,CAAA,CAAA,KAAAC,SAAA,GAAAD,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE,CAAA;CAAA1G,IAAAA,eAAA,OAAAomB,QAAA,CAAA,CAAA;CACpB,IAAA,IAAI,CAACC,OAAO,GAAG5f,OAAO,CAAC4f,OAAO,CAAA;CAC9B,IAAA,IAAI,CAACC,gBAAgB,GAAG7f,OAAO,CAAC6f,gBAAgB,CAAA;CACpD,GAAA;CAAC5lB,EAAAA,YAAA,CAAA0lB,QAAA,EAAA,CAAA;KAAAzlB,GAAA,EAAA,SAAA;CAAAC,IAAAA,KAAA,EAuBD,SAAA2lB,OAAQC,CAAAA,QAAQ,EAA4B;CAAA,MAAA,IAA1BC,UAAU,GAAA/f,SAAA,CAAApI,MAAA,GAAA,CAAA,IAAAoI,SAAA,CAAA,CAAA,CAAA,KAAAC,SAAA,GAAAD,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE,CAAA;OAAA,IAAEggB,OAAO,GAAAhgB,SAAA,CAAApI,MAAA,GAAAoI,CAAAA,GAAAA,SAAA,MAAAC,SAAA,CAAA;CACtC,MAAA,IAAIggB,YAAY,GAAGP,QAAQ,CAACO,YAAY,CAACH,QAAQ,CAAC,CAAA;CAClD,MAAA,IAAII,OAAO,GAAGR,QAAQ,CAACS,eAAe,CAACL,QAAQ,CAAC,CAAA;OAChD,IAAIM,GAAG,GAAG,IAAI,CAACT,OAAO,GAAG,GAAG,GAAGO,OAAO,GAAGJ,QAAQ,CAAA;OACjD,IAAIO,cAAc,GAAG,IAAI,CAAA;OACzBxa,MAAM,CAACoM,IAAI,CAAC8N,UAAU,CAAC,CAAC/W,OAAO,CAAC,UAAAsX,SAAS,EAAI;CACzC,QAAA,IAAID,cAAc,EAAE;CAChBD,UAAAA,GAAG,IAAI,GAAG,CAAA;CACVC,UAAAA,cAAc,GAAG,KAAK,CAAA;CAC1B,SAAC,MAAM;CACHD,UAAAA,GAAG,IAAI,GAAG,CAAA;CACd,SAAA;SACAA,GAAG,IAAIE,SAAS,GAAG,GAAG,GAAGC,kBAAkB,CAACR,UAAU,CAACO,SAAS,CAAC,CAAC,CAAA;CACtE,OAAC,CAAC,CAAA;CACF,MAAA,SAASE,cAAcA,CAACC,OAAO,EAAEC,MAAM,EAAE;CACrC,QAAA,IAAIb,OAAO,GAAG,IAAIc,cAAc,EAAE,CAAA;CAClCd,QAAAA,OAAO,CAACe,IAAI,CAAC,KAAK,EAAER,GAAG,CAAC,CAAA;SACxBP,OAAO,CAACI,YAAY,GAAGA,YAAY,CAAA;SACnCJ,OAAO,CAACgB,MAAM,GAAG,YAAM;CACnBJ,UAAAA,OAAO,CAACZ,OAAO,CAACiB,QAAQ,CAAC,CAAA;UAC5B,CAAA;CACDjB,QAAAA,OAAO,CAACkB,UAAU,GAAG,IAAI,CAACnB,gBAAgB,CAAA;CAC1CC,QAAAA,OAAO,CAACmB,OAAO,GAAG,UAAAzY,KAAK,EAAI;CACvBzR,UAAAA,GAAG,CAACyR,KAAK,CAACsX,OAAO,CAACiB,QAAQ,CAAC,CAAA;WAC3BJ,MAAM,CAACnY,KAAK,CAAC,CAAA;UAChB,CAAA;CACDsX,QAAAA,OAAO,CAACoB,IAAI,CAACjB,OAAO,CAAC,CAAA;CACzB,OAAA;OACA,IAAIkB,OAAO,GAAG,IAAIC,OAAO,CAACX,cAAc,CAACY,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;CACpD,MAAA,OAAOF,OAAO,CAAA;CAClB,KAAA;CAAC,GAAA,EAAA;KAAAjnB,GAAA,EAAA,UAAA;KAAAC,KAAA,EAED,SAAAmnB,QAAAA,GAAW;CACP,MAAA,OAAO,IAAI,CAACxB,OAAO,CAAC,UAAU,CAAC,CAAA;CACnC,KAAA;CAAC,GAAA,EAAA;KAAA5lB,GAAA,EAAA,SAAA;CAAAC,IAAAA,KAAA,EAED,SAAAonB,OAAQC,CAAAA,SAAS,EAAE;CACf,MAAA,OAAO,IAAI,CAAC1B,OAAO,CAAC,SAAS,EAAE;CAAE2B,QAAAA,SAAS,EAAED,SAAAA;CAAU,OAAC,CAAC,CAAA;CAC5D,KAAA;CAAC,GAAA,EAAA;KAAAtnB,GAAA,EAAA,QAAA;CAAAC,IAAAA,KAAA,EAED,SAAAunB,MAAOC,CAAAA,gBAAgB,EAAE;CACrB,MAAA,OAAO,IAAI,CAAC7B,OAAO,CAAC,QAAQ,EAAE;CAAE8B,QAAAA,gBAAgB,EAAED,gBAAAA;CAAiB,OAAC,CAAC,CAAA;CACzE,KAAA;CAAC,GAAA,EAAA;KAAAznB,GAAA,EAAA,WAAA;CAAAC,IAAAA,KAAA,EAED,SAAA0nB,SAAAA,CAAUF,gBAAgB,EAAEG,iBAAiB,EAAE;CAC3C,MAAA,OAAO,IAAI,CAAChC,OAAO,CAAC,WAAW,EAAE;CAC7B8B,QAAAA,gBAAgB,EAAED,gBAAgB;CAClCI,QAAAA,iBAAiB,EAAED,iBAAAA;CACvB,OAAC,CAAC,CAAA;CACN,KAAA;CAAC,GAAA,EAAA;KAAA5nB,GAAA,EAAA,UAAA;KAAAC,KAAA,EAED,SAAA6nB,QAASL,CAAAA,gBAAgB,EAAEG,iBAAiB,EAAEG,cAAc,EAAE;CAC1D,MAAA,OAAO,IAAI,CAACnC,OAAO,CAAC,MAAM,EAAE;CACxBoC,QAAAA,WAAW,EAAE,MAAM;CACnBC,QAAAA,QAAQ,EAAER,gBAAgB;CAC1BS,QAAAA,SAAS,EAAEN,iBAAiB;CAC5BO,QAAAA,SAAS,EAAEJ,cAAc;CACzBK,QAAAA,WAAW,EAAE,mBAAA;CACjB,OAAC,CAAC,CAAA;CACN,KAAA;CAAC,GAAA,EAAA;KAAApoB,GAAA,EAAA,OAAA;KAAAC,KAAA,EAED,SAAAooB,KAAAA,GAAQ;OACJ,IAAIC,gBAAgB,GAChB,qDAAqD,CAAA;CACzD,MAAA,IAAIC,WAAW,GAAG;CAAE7C,QAAAA,OAAO,EAAE4C,gBAAAA;QAAkB,CAAA;CAE/C,MAAA,IAAI7C,QAAQ,CAAC8C,WAAW,CAAC,CAACnB,QAAQ,EAAE,CAACoB,IAAI,CAAC,UAAAC,SAAS,EAAI;CACnDA,QAAAA,SAAS,CAAC1Z,OAAO,CAAC,UAAA2Z,OAAO,EAAI;CACzB7rB,UAAAA,GAAG,CAACA,GAAG,CAAC6rB,OAAO,CAAC,CAAA;CACpB,SAAC,CAAC,CAAA;CACN,OAAC,CAAC,CAAA;CACN,KAAA;CAAC,GAAA,CAAA,EAAA,CAAA;KAAA1oB,GAAA,EAAA,cAAA;CAAAC,IAAAA,KAAA,EA5FD,SAAA+lB,YAAoBH,CAAAA,QAAQ,EAAE;CAC1B,MAAA,IAAM8C,KAAK,GAAG;CACVC,QAAAA,IAAI,EAAE,aAAA;QACT,CAAA;OACD,OAAOD,KAAK,CAAC9C,QAAQ,CAAC,GAAG8C,KAAK,CAAC9C,QAAQ,CAAC,GAAG,MAAM,CAAA;CACrD,KAAA;;CAEA;CAAA,GAAA,EAAA;KAAA7lB,GAAA,EAAA,iBAAA;CAAAC,IAAAA,KAAA,EACA,SAAAimB,eAAuBL,CAAAA,QAAQ,EAAE;CAC7B,MAAA,IAAMgD,QAAQ,GAAG;CACbD,QAAAA,IAAI,EAAE,EAAA;QACT,CAAA;OACD,OAAOhd,MAAM,CAACoM,IAAI,CAAC6Q,QAAQ,CAAC,CAAChb,OAAO,CAACgY,QAAQ,CAAC,IAAI,CAAC,CAAC,GAC9CgD,QAAQ,CAAChD,QAAQ,CAAC,GAClB,KAAK,CAAA;CACf,KAAA;CAAC,GAAA,EAAA;KAAA7lB,GAAA,EAAA,aAAA;CAAAC,IAAAA,KAAA,EAED,SAAA6oB,WAAmBC,CAAAA,KAAK,EAAE;CACtB,MAAA,OAAOA,KAAK,CAACvrB,IAAI,CAACC,KAAK,CAACD,IAAI,CAACilB,MAAM,EAAE,GAAGsG,KAAK,CAACprB,MAAM,CAAC,CAAC,CAAA;CAC1D,KAAA;CAAC,GAAA,CAAA,CAAA,CAAA;CAAA,EAAA,OAAA8nB,QAAA,CAAA;CAAA,CAAA;;CCxCL;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CAAA,IAEMuD,MAAM,gBAAA,YAAA;CAAA,EAAA,SAAAA,MAAA,GAAA;CAAA3pB,IAAAA,eAAA,OAAA2pB,MAAA,CAAA,CAAA;CAAA,GAAA;CAAAjpB,EAAAA,YAAA,CAAAipB,MAAA,EAAA,IAAA,EAAA,CAAA;KAAAhpB,GAAA,EAAA,kBAAA;KAAAC,KAAA,EACR,SAAAgpB,gBAAAA,GAA0B;CACtB;CACA,MAAA,OAAO,CAAC,QAAQ,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAA;CACpC,KAAA;CAAC,GAAA,EAAA;KAAAjpB,GAAA,EAAA,cAAA;CAAAC,IAAAA,KAAA,EAED,SAAAipB,YAAoBC,CAAAA,QAAQ,EAAE;OAC1B,OAAOH,MAAM,CAACI,OAAO,CAACJ,MAAM,CAACK,YAAY,CAACF,QAAQ,CAAC,CAAC,CAAA;CACxD,KAAA;CAAC,GAAA,EAAA;KAAAnpB,GAAA,EAAA,cAAA;CAAAC,IAAAA,KAAA,EAED,SAAAqpB,YAAoBC,CAAAA,GAAG,EAAE;OACrB,OAAOP,MAAM,CAACQ,YAAY,CAACR,MAAM,CAACS,OAAO,CAACF,GAAG,CAAC,CAAC,CAAA;CACnD,KAAA;CAAC,GAAA,EAAA;KAAAvpB,GAAA,EAAA,cAAA;CAAAC,IAAAA,KAAA,EAED,SAAAopB,YAAoBF,CAAAA,QAAQ,EAAE;OAC1B,OAAO,CACFA,QAAQ,CAAC,CAAC,CAAC,GAAG,KAAK,GAAI,OAAO;CAAE;OAChCA,QAAQ,CAAC,CAAC,CAAC,GAAG,KAAK,GAAI,OAAO,GAAG,GAAG;CAAE;OACtCA,QAAQ,CAAC,CAAC,CAAC,GAAG,KAAK,GAAI,OAAO,GAAG,GAAG;QACxC,CAAA;CACL,KAAA;CAAC,GAAA,EAAA;KAAAnpB,GAAA,EAAA,cAAA;CAAAC,IAAAA,KAAA,EAED,SAAAupB,YAAoBE,CAAAA,GAAG,EAAE;OACrB,OAAO,CACFA,GAAG,CAAC,CAAC,CAAC,GAAG,OAAO,GAAI,KAAK;CAAE;OAC3B,CAACA,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,OAAO,GAAI,KAAK;CAAE;OACnC,CAACA,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,OAAO,GAAI,KAAK;QACrC,CAAA;CACL,KAAA;CAAC,GAAA,EAAA;KAAA1pB,GAAA,EAAA,SAAA;CAAAC,IAAAA,KAAA,EAED,SAAAwpB,OAAeF,CAAAA,GAAG,EAAE;OAChB,OAAOP,MAAM,CAACW,OAAO,CAACX,MAAM,CAACY,OAAO,CAACL,GAAG,CAAC,CAAC,CAAA;CAC9C,KAAA;CAAC,GAAA,EAAA;KAAAvpB,GAAA,EAAA,iBAAA;CAAAC,IAAAA,KAAA,EAED,SAAA4pB,eAAuBhS,CAAAA,CAAC,EAAE;OACtB,IAAIA,CAAC,IAAI,qBAAqB,EAAE;SAC5B,OAAO,KAAK,GAAGA,CAAC,CAAA;CACpB,OAAC,MAAM;SACH,OAAO,KAAK,GAAGra,IAAI,CAACssB,GAAG,CAACjS,CAAC,EAAE,oBAAoB,CAAC,GAAG,KAAK,CAAA;CAC5D,OAAA;CACJ,KAAA;CAAC,GAAA,EAAA;KAAA7X,GAAA,EAAA,oBAAA;CAAAC,IAAAA,KAAA,EAED,SAAA8pB,kBAA0BlS,CAAAA,CAAC,EAAE;OACzB,IAAIA,CAAC,IAAI,kBAAkB,EAAE;SACzB,OAAOA,CAAC,GAAG,KAAK,CAAA;CACpB,OAAC,MAAM;CACH,QAAA,OAAOra,IAAI,CAACssB,GAAG,CAAC,CAACjS,CAAC,GAAG,KAAK,IAAI,KAAK,EAAE,GAAG,CAAC,CAAA;CAC7C,OAAA;CACJ,KAAA;CAAC,GAAA,EAAA;KAAA7X,GAAA,EAAA,SAAA;CAAAC,IAAAA,KAAA,EAED,SAAA2pB,OAAeL,CAAAA,GAAG,EAAE;OAChB,IAAIS,CAAC,GAAGhB,MAAM,CAACe,kBAAkB,CAACR,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;OACzC,IAAIU,CAAC,GAAGjB,MAAM,CAACe,kBAAkB,CAACR,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;OACzC,IAAIW,CAAC,GAAGlB,MAAM,CAACe,kBAAkB,CAACR,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;CACzC,MAAA,OAAO,CACH,qBAAqB,GAAGS,CAAC,GACrB,qBAAqB,GAAGC,CAAC,GACzB,qBAAqB,GAAGC,CAAC,EAC7B,qBAAqB,GAAGF,CAAC,GACrB,qBAAqB,GAAGC,CAAC,GACzB,sBAAsB,GAAGC,CAAC,EAC9B,sBAAsB,GAAGF,CAAC,GACtB,qBAAqB,GAAGC,CAAC,GACzB,oBAAoB,GAAGC,CAAC,CAC/B,CAAA;CACL,KAAA;CAAC,GAAA,EAAA;KAAAlqB,GAAA,EAAA,SAAA;CAAAC,IAAAA,KAAA,EAED,SAAA0pB,OAAeQ,CAAAA,GAAG,EAAE;CAChB,MAAA,IAAIC,UAAU,GAAGpB,MAAM,CAACC,gBAAgB,EAAE,CAAA;OAC1C,IAAIoB,CAAC,GAAGF,GAAG,CAAC,CAAC,CAAC,GAAGC,UAAU,CAAC,CAAC,CAAC,CAAA;OAC9B,IAAIE,CAAC,GAAGH,GAAG,CAAC,CAAC,CAAC,GAAGC,UAAU,CAAC,CAAC,CAAC,CAAA;OAC9B,IAAIG,CAAC,GAAGJ,GAAG,CAAC,CAAC,CAAC,GAAGC,UAAU,CAAC,CAAC,CAAC,CAAA;CAC9BC,MAAAA,CAAC,GAAGrB,MAAM,CAACwB,IAAI,CAACH,CAAC,CAAC,CAAA;CAClBC,MAAAA,CAAC,GAAGtB,MAAM,CAACwB,IAAI,CAACF,CAAC,CAAC,CAAA;CAClBC,MAAAA,CAAC,GAAGvB,MAAM,CAACwB,IAAI,CAACD,CAAC,CAAC,CAAA;OAClB,OAAO,CAAC,GAAG,GAAGD,CAAC,GAAG,EAAE,EAAE,GAAG,IAAID,CAAC,GAAGC,CAAC,CAAC,EAAE,GAAG,IAAIA,CAAC,GAAGC,CAAC,CAAC,CAAC,CAAA;CACvD,KAAA;CAAC,GAAA,EAAA;KAAAvqB,GAAA,EAAA,SAAA;CAAAC,IAAAA,KAAA,EAED,SAAAmpB,OAAeM,CAAAA,GAAG,EAAE;OAChB,OAAOV,MAAM,CAACyB,OAAO,CAACzB,MAAM,CAAC0B,OAAO,CAAChB,GAAG,CAAC,CAAC,CAAA;CAC9C,KAAA;CAAC,GAAA,EAAA;KAAA1pB,GAAA,EAAA,SAAA;CAAAC,IAAAA,KAAA,EAED,SAAAyqB,OAAehB,CAAAA,GAAG,EAAE;OAChB,IAAIiB,CAAC,GAAG,CAACjB,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,GAAG,CAAA;OAC3B,IAAIkB,CAAC,GAAGD,CAAC,GAAGjB,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAA;OACxB,IAAImB,CAAC,GAAGF,CAAC,GAAGjB,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAA;CACxB,MAAA,IAAIU,UAAU,GAAGpB,MAAM,CAACC,gBAAgB,EAAE,CAAA;CAC1C,MAAA,OAAO,CACHmB,UAAU,CAAC,CAAC,CAAC,GAAGpB,MAAM,CAAC8B,OAAO,CAACF,CAAC,CAAC,EACjCR,UAAU,CAAC,CAAC,CAAC,GAAGpB,MAAM,CAAC8B,OAAO,CAACH,CAAC,CAAC,EACjCP,UAAU,CAAC,CAAC,CAAC,GAAGpB,MAAM,CAAC8B,OAAO,CAACD,CAAC,CAAC,CACpC,CAAA;CACL,KAAA;CAAC,GAAA,EAAA;KAAA7qB,GAAA,EAAA,SAAA;CAAAC,IAAAA,KAAA,EAED,SAAAwqB,OAAeN,CAAAA,GAAG,EAAE;OAChB,IAAIY,EAAE,GAAG,MAAM,GAAGZ,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,GAAGA,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,GAAGA,GAAG,CAAC,CAAC,CAAC,CAAA;OAC5D,IAAIa,EAAE,GAAG,CAAC,MAAM,GAAGb,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,GAAGA,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,GAAGA,GAAG,CAAC,CAAC,CAAC,CAAA;OAC7D,IAAIc,EAAE,GAAG,MAAM,GAAGd,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,GAAGA,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,GAAGA,GAAG,CAAC,CAAC,CAAC,CAAA;;CAE1D;OACA,IAAIe,gBAAgB,GAAG1tB,IAAI,CAAC2tB,GAAG,CAACJ,EAAE,EAAEC,EAAE,CAAC,CAAA;OACvCE,gBAAgB,GAAG1tB,IAAI,CAAC2tB,GAAG,CAACD,gBAAgB,EAAED,EAAE,CAAC,CAAA;OACjD,IAAIC,gBAAgB,GAAG,CAAC,EAAE;CACtBH,QAAAA,EAAE,IAAIG,gBAAgB,CAAA;CACtBF,QAAAA,EAAE,IAAIE,gBAAgB,CAAA;CACtBD,QAAAA,EAAE,IAAIC,gBAAgB,CAAA;CAC1B,OAAA;;CAEA;OACA,OAAO,CACHlC,MAAM,CAACa,eAAe,CAACkB,EAAE,CAAC,EAC1B/B,MAAM,CAACa,eAAe,CAACmB,EAAE,CAAC,EAC1BhC,MAAM,CAACa,eAAe,CAACoB,EAAE,CAAC,CAC7B,CAAA;CACL,KAAA;CAAC,GAAA,EAAA;KAAAjrB,GAAA,EAAA,MAAA;CAAAC,IAAAA,KAAA,EAED,SAAAuqB,IAAY3S,CAAAA,CAAC,EAAE;OACX,IAAIA,CAAC,IAAI,sBAAsB,EAAE;CAC7B,QAAA,OAAOra,IAAI,CAACssB,GAAG,CAACjS,CAAC,EAAE,iBAAiB,CAAC,CAAA;CACzC,OAAC,MAAM;SACH,OAAQ,KAAK,GAAG,KAAK,GAAIA,CAAC,GAAG,GAAG,GAAG,IAAI,CAAA;CAC3C,OAAA;CACJ,KAAA;CAAC,GAAA,EAAA;KAAA7X,GAAA,EAAA,SAAA;CAAAC,IAAAA,KAAA,EAED,SAAA6qB,OAAejT,CAAAA,CAAC,EAAE;OACd,IAAIA,CAAC,IAAI,oBAAoB,EAAE;CAC3B,QAAA,OAAOA,CAAC,GAAGA,CAAC,GAAGA,CAAC,CAAA;CACpB,OAAC,MAAM;SACH,OAAQ,KAAK,GAAG,KAAK,IAAKA,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,CAAA;CAC7C,OAAA;CACJ,KAAA;CAAC,GAAA,CAAA,CAAA,CAAA;CAAA,EAAA,OAAAmR,MAAA,CAAA;CAAA,CAAA,EAAA;;CC7IL,SAASoC,aAAaA,CAACjL,OAAO,EAAE;CAC5B,EAAA,IAAMkL,+BAA+B,GAAG,IAAIvtB,UAAU,CAAC,CAAC,CAAC,CAAA;CACzDutB,EAAAA,+BAA+B,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;CAEtC,EAAA,IAAMC,iBAAiB,GACnBnL,OAAO,CAACoL,KAAK,CAACD,iBAAiB,IAC/BnL,OAAO,CAACoL,KAAK,CAACD,iBAAiB,CAACvK,KAAK,IACrCZ,OAAO,CAACoL,KAAK,CAACD,iBAAiB,CAACvK,KAAK,CAAC,CAAC,CAAC,GAClCZ,OAAO,CAACoL,KAAK,CAACD,iBAAiB,CAACvK,KAAK,CAAC,CAAC,CAAC,GACxC,qBAAqB,CAAA;GAE/BZ,OAAO,CAACoL,KAAK,GAAG;KACZC,uBAAuB,EAAErL,OAAO,CAACsL,WAAW;KAC5CC,0BAA0B,EAAEvL,OAAO,CAACwL,cAAc;CAClDC,IAAAA,yBAAyB,EAAE,WAAW;CACtCN,IAAAA,iBAAiB,EAAjBA,iBAAiB;CACjBO,IAAAA,sBAAsB,EAClB,kEAAkE;KACtEC,0BAA0B,EAAET,+BAA+B,CAAC/rB,MAAAA;IAC/D,CAAA;GAED,IAAMysB,aAAa,GAAGhf,mBAAmB,CAACmT,mBAAmB,CACzDC,OAAO,CAACoL,KACZ,CAAC,CAAA;CACD,EAAA,IAAM9G,SAAS,GAAG,IAAIC,SAAS,CAACqH,aAAa,CAAC,CAAA;GAC9CtH,SAAS,CAACxB,IAAI,GAAGlW,mBAAmB,CAACmT,mBAAmB,CAACC,OAAO,CAAC,CAAA;CACjE,EAAA,OAAOsE,SAAS,CAAA;CACpB,CAAA;CAEA,SAASuH,eAAeA,CAAC7L,OAAO,EAAE;CAC9B,EAAA,OAAO8L,MAAM,CAAC5e,IAAI,CAAC+d,aAAa,CAACjL,OAAO,CAAC,CAAC5W,KAAK,EAAE,CAAC,CAAA;CACtD,CAAA;CAEA,SAAS2iB,aAAaA,CAAC/L,OAAO,EAAE;CAC5B,EAAA,IAAM7gB,MAAM,GAAG0sB,eAAe,CAAC7L,OAAO,CAAC,CAAA;CACvC,EAAA,OAAO,IAAIgM,IAAI,CAAC,CAAC7sB,MAAM,CAAC,EAAE;CAAEmL,IAAAA,IAAI,EAAE,mBAAA;CAAoB,GAAC,CAAC,CAAA;CAC5D;;CCvCgE,IAE3C2hB,cAAc,gBAAA,YAAA;GAC/B,SAAAA,cAAAA,CAAYC,QAAQ,EAAgB;CAAA,IAAA,IAAdvmB,OAAO,GAAAC,SAAA,CAAApI,MAAA,GAAA,CAAA,IAAAoI,SAAA,CAAA,CAAA,CAAA,KAAAC,SAAA,GAAAD,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE,CAAA;CAAA1G,IAAAA,eAAA,OAAA+sB,cAAA,CAAA,CAAA;CAC9B,IAAA,IAAI,CAACtmB,OAAO,GAAGwmB,IAAI,CAACC,KAAK,CAACD,IAAI,CAACE,SAAS,CAAC1mB,OAAO,CAAC,CAAC,CAAA;CAClD,IAAA,IAAI2mB,CAAC,GAAG,IAAI,CAAC3mB,OAAO,CAAA;CAEpB2mB,IAAAA,CAAC,CAACC,YAAY,GAAG5mB,OAAO,CAAC4mB,YAAY,IAAI,aAAa,CAAA;CACtDD,IAAAA,CAAC,CAACE,qBAAqB,GACnB7mB,OAAO,CAAC6mB,qBAAqB,IAAI,aAAa,CAAA;CAClDF,IAAAA,CAAC,CAACG,iBAAiB,GACf9mB,OAAO,CAAC8mB,iBAAiB,IAAI,yBAAyB,CAAA;CAC1DH,IAAAA,CAAC,CAACI,YAAY,GAAG/mB,OAAO,CAAC+mB,YAAY,IAAI,IAAI,CAAA;CAC7CJ,IAAAA,CAAC,CAACK,gBAAgB,GAAGhnB,OAAO,CAACgnB,gBAAgB,IAAI,GAAG,CAAA;CACpDL,IAAAA,CAAC,CAACM,kBAAkB,GAAGjnB,OAAO,CAACinB,kBAAkB,IAAI,GAAG,CAAA;CAExD,IAAA,IAAIrK,IAAI,GAAG3V,mBAAmB,CAAC2V,IAAI,EAAE,CAAA;CACrC,IAAA,IAAII,IAAI,GAAG/V,mBAAmB,CAAC+V,IAAI,EAAE,CAAA;CAErC2J,IAAAA,CAAC,CAACO,UAAU,GAAGlnB,OAAO,CAACknB,UAAU,IAAItK,IAAI,CAAA;CACzC+J,IAAAA,CAAC,CAACQ,UAAU,GAAGnnB,OAAO,CAACmnB,UAAU,IAAInK,IAAI,CAAA;CACzC2J,IAAAA,CAAC,CAACS,WAAW,GAAGpnB,OAAO,CAAConB,WAAW,IAAIxK,IAAI,CAAA;CAC3C+J,IAAAA,CAAC,CAACU,WAAW,GAAGrnB,OAAO,CAACqnB,WAAW,IAAIrK,IAAI,CAAA;KAE3C2J,CAAC,CAACd,cAAc,GAAG7lB,OAAO,CAAC6lB,cAAc,IAAI5e,mBAAmB,CAACmP,GAAG,EAAE,CAAA;KACtEuQ,CAAC,CAAC5E,iBAAiB,GACf/hB,OAAO,CAAC+hB,iBAAiB,IAAI9a,mBAAmB,CAACmP,GAAG,EAAE,CAAA;CAE1DuQ,IAAAA,CAAC,CAACW,wBAAwB,GAAGtnB,OAAO,CAACsnB,wBAAwB,IAAI,EAAE,CAAA;CACnEX,IAAAA,CAAC,CAACY,mCAAmC,GACjCvnB,OAAO,CAACunB,mCAAmC,IAAI,EAAE,CAAA;CACrDZ,IAAAA,CAAC,CAACa,qBAAqB,GAAGxnB,OAAO,CAACwnB,qBAAqB,IAAI,EAAE,CAAA;CAE7Db,IAAAA,CAAC,CAACc,aAAa,GAAGznB,OAAO,CAACynB,aAAa,IAAI,sBAAsB,CAAA;KACjEd,CAAC,CAACe,oBAAoB,GAAG,UAAU,CAAA;CAEnC,IAAA,IAAI,CAACC,kBAAkB,GAAGpB,QAAQ,CAAC;KACnC,IAAI,CAACqB,iBAAiB,GAAG,IAAI,CAACD,kBAAkB,CAAC,CAAC,CAAC,CAAA;KACnD,IAAI,CAACtN,OAAO,GAAG;CACXqB,MAAAA,MAAM,EAAE,IAAI,CAACkM,iBAAiB,CAAClM,MAAM;CACrC+J,MAAAA,KAAK,EAAE,IAAI,CAACmC,iBAAiB,CAACnC,KAAAA;MACjC,CAAA;KAED,IAAI,CAACoC,MAAM,EAAE,CAAA;CACjB,GAAA;CAAC5tB,EAAAA,YAAA,CAAAqsB,cAAA,EAAA,CAAA;KAAApsB,GAAA,EAAA,iBAAA;CAAAC,IAAAA,KAAA,EAED,SAAA2tB,eAAgB/M,CAAAA,IAAI,EAAE;CAAA,MAAA,IAAAhb,KAAA,GAAA,IAAA,CAAA;OAClB+F,MAAM,CAACoM,IAAI,CAAC6I,IAAI,CAAC,CAAC9R,OAAO,CAAC,UAAA/O,GAAG,EAAA;SAAA,OAAK6F,KAAI,CAACsa,OAAO,CAACngB,GAAG,CAAC,GAAG6gB,IAAI,CAAC7gB,GAAG,CAAC,CAAA;CAAA,OAAC,CAAC,CAAA;CACrE,KAAA;CAAC,GAAA,EAAA;KAAAA,GAAA,EAAA,qBAAA;CAAAC,IAAAA,KAAA,EAED,SAAA4tB,mBAAoBC,CAAAA,IAAI,EAAE;CAAA,MAAA,IAAAhnB,MAAA,GAAA,IAAA,CAAA;CACtBgnB,MAAAA,IAAI,CAAC/e,OAAO,CACR,UAAAvH,GAAG,EAAA;CAAA,QAAA,OAAKV,MAAI,CAACqZ,OAAO,CAAC3Y,GAAG,CAAC,GAAGV,MAAI,CAAC4mB,iBAAiB,CAAClmB,GAAG,CAAC,IAAI,EAAE,CAAA;CAAA,OACjE,CAAC,CAAA;CACL,KAAA;CAAC,GAAA,EAAA;KAAAxH,GAAA,EAAA,mBAAA;CAAAC,IAAAA,KAAA,EAED,SAAA8tB,iBAAkBD,CAAAA,IAAI,EAAE;CAAA,MAAA,IAAA9Z,MAAA,GAAA,IAAA,CAAA;CACpB8Z,MAAAA,IAAI,CAAC/e,OAAO,CAAC,UAAAvH,GAAG,EAAA;CAAA,QAAA,OAAKwM,MAAI,CAACmM,OAAO,CAAC3Y,GAAG,CAAC,GAAGwM,MAAI,CAAClO,OAAO,CAAC0B,GAAG,CAAC,IAAI,EAAE,CAAA;CAAA,OAAC,CAAC,CAAA;CACtE,KAAA;CAAC,GAAA,EAAA;KAAAxH,GAAA,EAAA,QAAA;KAAAC,KAAA,EAED,SAAA0tB,MAAAA,GAAS;CACL;CACA,MAAA,IAAI,CAACE,mBAAmB,CAAC,CACrB,iBAAiB,EACjB,wBAAwB,EACxB,WAAW,EACX,SAAS,EACT,WAAW,EACX,aAAa,EACb,WAAW,EACX,kBAAkB,EAClB,YAAY,EACZ,YAAY,EACZ,kBAAkB,EAClB,SAAS,CACZ,CAAC,CAAA;CAEF,MAAA,IAAI,CAACE,iBAAiB,CAAC,CACnB,cAAc,EACd,kBAAkB,EAClB,oBAAoB,EACpB,uBAAuB,EACvB,mBAAmB,EACnB,cAAc,EACd,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,aAAa,EACb,sBAAsB,EACtB,gBAAgB,EAChB,mBAAmB,CACtB,CAAC,CAAA;CACN,KAAA;CAAC,GAAA,CAAA,EAAA,CAAA;KAAA/tB,GAAA,EAAA,aAAA;CAAAC,IAAAA,KAAA,EAED,SAAA+tB,WAAmB7N,CAAAA,OAAO,EAAE;CACxB;OACA,OAAOmM,IAAI,CAACC,KAAK,CAACD,IAAI,CAACE,SAAS,CAACrM,OAAO,CAAC,CAAC,CAAA;CAC9C,KAAA;CAAC,GAAA,CAAA,CAAA,CAAA;CAAA,EAAA,OAAAiM,cAAA,CAAA;CAAA,CAAA,EAAA;;CCjGyC,IAEzB6B,aAAa,0BAAAC,eAAA,EAAA;GAAAxoB,SAAA,CAAAuoB,aAAA,EAAAC,eAAA,CAAA,CAAA;CAAA,EAAA,IAAAvoB,MAAA,GAAAC,YAAA,CAAAqoB,aAAA,CAAA,CAAA;GAC9B,SAAAA,aAAAA,CAAY5B,QAAQ,EAAgB;CAAA,IAAA,IAAAxmB,KAAA,CAAA;CAAA,IAAA,IAAdC,OAAO,GAAAC,SAAA,CAAApI,MAAA,GAAA,CAAA,IAAAoI,SAAA,CAAA,CAAA,CAAA,KAAAC,SAAA,GAAAD,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE,CAAA;CAAA1G,IAAAA,eAAA,OAAA4uB,aAAA,CAAA,CAAA;CAC9BpoB,IAAAA,KAAA,GAAAF,MAAA,CAAAO,IAAA,CAAMmmB,IAAAA,EAAAA,QAAQ,EAAEvmB,OAAO,CAAA,CAAA;CACvB,IAAA,IAAI2mB,CAAC,GAAG5mB,KAAA,CAAKC,OAAO,CAAA;CAEpB2mB,IAAAA,CAAC,CAAC0B,YAAY,GAAGroB,OAAO,CAACqoB,YAAY,IAAI,EAAE,CAAA;CAC3C1B,IAAAA,CAAC,CAAC2B,kBAAkB,GAAGtoB,OAAO,CAACsoB,kBAAkB,IAAI,EAAE,CAAA;CACvD3B,IAAAA,CAAC,CAAC4B,kBAAkB,GAAGvoB,OAAO,CAACuoB,kBAAkB,IAAI,EAAE,CAAA;CAAC,IAAA,OAAAxoB,KAAA,CAAA;CAC5D,GAAA;;CAEA;CACA;CAAA9F,EAAAA,YAAA,CAAAkuB,aAAA,EAAA,CAAA;KAAAjuB,GAAA,EAAA,QAAA;KAAAC,KAAA,EACA,SAAA0tB,MAAAA,GAAS;CACLjd,MAAAA,IAAA,CAAAC,eAAA,CAAAsd,aAAA,CAAA5d,SAAA,mBAAAnK,IAAA,CAAA,IAAA,CAAA,CAAA;OAEA,IAAI,CAAC0nB,eAAe,CAAC;CACjBU,QAAAA,SAAS,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC;CACjCC,QAAAA,qBAAqB,EAAE,IAAI;CAC3BC,QAAAA,cAAc,EAAE,GAAA;CACpB,OAAC,CAAC,CAAA;OAEF,IAAI,CAACX,mBAAmB,CAAC,CACrB,aAAa,EACb,UAAU,EACV,qBAAqB,EACrB,4BAA4B,EAC5B,gBAAgB,EAChB,MAAM,EACN,SAAS,EACT,iBAAiB,EACjB,2BAA2B,EAC3B,YAAY,EACZ,SAAS,CACZ,CAAC,CAAA;OAEF,IAAI,CAACE,iBAAiB,CAAC,CACnB,cAAc,EACd,oBAAoB,EACpB,oBAAoB,CACvB,CAAC,CAAA;;CAEF;CACA;CACA;CACA;CACA,MAAA,IAAI,IAAI,CAACL,iBAAiB,CAACe,8BAA8B,EAAE;CACvD,QAAA,IAAI,CAACtO,OAAO,CAACsO,8BAA8B,GACvCrC,cAAc,CAAC4B,WAAW,CACtB,IAAI,CAACN,iBAAiB,CAACe,8BAC3B,CAAC,CAAA;CACT,OAAA;CACA,MAAA,IAAI,IAAI,CAACf,iBAAiB,CAACgB,gCAAgC,EAAE;CACzD,QAAA,IAAI,CAACvO,OAAO,CAACuO,gCAAgC,GACzCtC,cAAc,CAAC4B,WAAW,CACtB,IAAI,CAACN,iBAAiB,CAACgB,gCAC3B,CAAC,CAAA;CACT,OAAA;;CAEA;CACA,MAAA,IAAI,CAACvO,OAAO,CAACwO,SAAS,GAAG,IAAIpvB,WAAW,CACpC,IAAI,CAACmuB,iBAAiB,CAACiB,SAAS,CAAC5sB,UACrC,CAAC,CAAA;CACL,KAAA;CAAC,GAAA,CAAA,CAAA,CAAA;CAAA,EAAA,OAAAksB,aAAA,CAAA;CAAA,CAAA,CA9DsC7B,cAAc,CAAA;;CCHb,IAEvBwC,YAAY,0BAAAC,cAAA,EAAA;GAAAnpB,SAAA,CAAAkpB,YAAA,EAAAC,cAAA,CAAA,CAAA;CAAA,EAAA,IAAAlpB,MAAA,GAAAC,YAAA,CAAAgpB,YAAA,CAAA,CAAA;GAC7B,SAAAA,YAAAA,CAAYvC,QAAQ,EAAgB;CAAA,IAAA,IAAdvmB,OAAO,GAAAC,SAAA,CAAApI,MAAA,GAAA,CAAA,IAAAoI,SAAA,CAAA,CAAA,CAAA,KAAAC,SAAA,GAAAD,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE,CAAA;CAAA1G,IAAAA,eAAA,OAAAuvB,YAAA,CAAA,CAAA;CAAA,IAAA,OAAAjpB,MAAA,CAAAO,IAAA,CACxBmmB,IAAAA,EAAAA,QAAQ,EAAEvmB,OAAO,CAAA,CAAA;CAC3B,GAAA;CAAC/F,EAAAA,YAAA,CAAA6uB,YAAA,EAAA,CAAA;KAAA5uB,GAAA,EAAA,QAAA;KAAAC,KAAA,EAED,SAAA0tB,MAAAA,GAAS;CACLjd,MAAAA,IAAA,CAAAC,eAAA,CAAAie,YAAA,CAAAve,SAAA,mBAAAnK,IAAA,CAAA,IAAA,CAAA,CAAA;CACA,MAAA,IAAI,CAAC2nB,mBAAmB,CAAC,CACrB,cAAc,EACd,aAAa,EACb,eAAe,EACf,qBAAqB,EACrB,kBAAkB,EAClB,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACd,kBAAkB,EAClB,mBAAmB,EACnB,sBAAsB,EACtB,iCAAiC,EACjC,sBAAsB,CACzB,CAAC,CAAA;CACN,KAAA;CAAC,GAAA,CAAA,CAAA,CAAA;CAAA,EAAA,OAAAe,YAAA,CAAA;CAAA,CAAA,CAtBqCX,aAAa,CAAA;;CCAD,IAEhDa,UAAU,gBAAA,YAAA;GACZ,SAAAA,UAAAA,CAAYzC,QAAQ,EAAE;CAAAhtB,IAAAA,eAAA,OAAAyvB,UAAA,CAAA,CAAA;CAClB,IAAA,IAAI,CAACzC,QAAQ,GAAGA,QAAQ,CAAC;CACzB,IAAA,IAAI,CAAClM,OAAO,GAAGna,SAAS,CAAC;CAC7B,GAAA;CAACjG,EAAAA,YAAA,CAAA+uB,UAAA,EAAA,CAAA;KAAA9uB,GAAA,EAAA,WAAA;KAAAC,KAAA,EAoED,SAAA8uB,SAAAA,GAAY;CACR,MAAA,OAAO,0BAA0B,CAAA;CACrC,KAAA;CAAC,GAAA,CAAA,EAAA,CAAA;KAAA/uB,GAAA,EAAA,wBAAA;CAAAC,IAAAA,KAAA,EApED,SAAA+uB,sBAA8B3C,CAAAA,QAAQ,EAAE;CACpC;CACA,MAAA,IAAI4C,WAAW,CAAA;CACf5C,MAAAA,QAAQ,CAACtd,OAAO,CAAC,UAAUoR,OAAO,EAAE;CAChC,QAAA,IAAI,CAACA,OAAO,CAACsL,WAAW,EAAE;CACtB,UAAA,OAAOzlB,SAAS,CAAA;CACpB,SAAA;SACA,IAAI,CAACipB,WAAW,EAAE;WACdA,WAAW,GAAG9O,OAAO,CAACsL,WAAW,CAAA;CACrC,SAAA;CACA,QAAA,IAAItL,OAAO,CAACsL,WAAW,KAAKwD,WAAW,EAAE;WACrCpyB,GAAG,CAACyR,KAAK,CACL,6BAA6B,EAC7B6R,OAAO,CAACsL,WAAW,EACnBwD,WACJ,CAAC,CAAA;CACD,UAAA,OAAOjpB,SAAS,CAAA;CACpB,SAAA;CACJ,OAAC,CAAC,CAAA;CACF,MAAA,OAAOipB,WAAW,CAAA;CACtB,KAAA;CAAC,GAAA,EAAA;KAAAjvB,GAAA,EAAA,0BAAA;CAAAC,IAAAA,KAAA,EAED,SAAAivB,wBAAgCD,CAAAA,WAAW,EAAE;OACzCA,WAAW,GAAGA,WAAW,CAAC7iB,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;CAClD,MAAA,IAAI+iB,KAAK,GAAGpiB,mBAAmB,CAACoW,kBAAkB,CAAA;OAClD,IAAIiM,cAAc,GAAG,EAAE,CAAA;CACvBA,MAAAA,cAAc,CAACD,KAAK,CAACE,OAAO,CAAC,GAAGC,iBAAiB,CAAA;CACjDF,MAAAA,cAAc,CAACD,KAAK,CAACI,oBAAoB,CAAC,GAAGC,iBAAiB,CAAA;CAC9DJ,MAAAA,cAAc,CAACD,KAAK,CAACM,OAAO,CAAC,GAAGC,iBAAiB,CAAA;CACjDN,MAAAA,cAAc,CAACD,KAAK,CAACQ,eAAe,CAAC,GAAGC,yBAAyB,CAAA;CACjER,MAAAA,cAAc,CAACD,KAAK,CAACU,8BAA8B,CAAC,GAChDD,yBAAyB,CAAA;CAC7BR,MAAAA,cAAc,CAACD,KAAK,CAACW,eAAe,CAAC,GAAGC,yBAAyB,CAAA;CACjEX,MAAAA,cAAc,CAACD,KAAK,CAACa,8BAA8B,CAAC,GAChDD,yBAAyB,CAAA;CAC7BX,MAAAA,cAAc,CAACD,KAAK,CAACc,gBAAgB,CAAC,GAAGC,0BAA0B,CAAA;CACnEd,MAAAA,cAAc,CAACD,KAAK,CAACgB,QAAQ,CAAC,GAAGC,kBAAkB,CAAA;CACnDhB,MAAAA,cAAc,CAACD,KAAK,CAACkB,gBAAgB,CAAC,GAAGD,kBAAkB,CAAA;CAC3DhB,MAAAA,cAAc,CAACD,KAAK,CAACmB,+BAA+B,CAAC,GACjDF,kBAAkB,CAAA;CACtBhB,MAAAA,cAAc,CAACD,KAAK,CAACoB,YAAY,CAAC,GAAGC,kBAAkB,CAAA;CACvDpB,MAAAA,cAAc,CAACD,KAAK,CAACsB,6BAA6B,CAAC,GAAGC,aAAa,CAAA;OACnE,OAAOtB,cAAc,CAACH,WAAW,CAAC,CAAA;CACtC,KAAA;CAAC,GAAA,EAAA;KAAAjvB,GAAA,EAAA,yBAAA;CAAAC,IAAAA,KAAA,EAED,SAAA0wB,uBAA+B1B,CAAAA,WAAW,EAAE;CACxC,MAAA,IAAME,KAAK,GAAGpiB,mBAAmB,CAACoW,kBAAkB,CAAA;CACpD,MAAA,IAAMyN,oBAAoB,GAAG,CACzBzB,KAAK,CAACW,eAAe,EACrBX,KAAK,CAACa,8BAA8B,EACpCb,KAAK,CAACQ,eAAe,EACrBR,KAAK,CAACU,8BAA8B,EACpCV,KAAK,CAACc,gBAAgB,EACtBd,KAAK,CAACkB,gBAAgB,EACtBlB,KAAK,CAACmB,+BAA+B,EACrCnB,KAAK,CAACoB,YAAY,EAClBpB,KAAK,CAACI,oBAAoB,CAC7B,CAAA;OACD,OAAOqB,oBAAoB,CAAC/iB,OAAO,CAACohB,WAAW,CAAC,KAAK,CAAC,CAAC,CAAA;CAC3D,KAAA;CAAC,GAAA,EAAA;KAAAjvB,GAAA,EAAA,qBAAA;KAAAC,KAAA,EAED,SAAA4wB,mBAAAA,GAA8C;CAAA,MAAA,IAAnB/b,EAAE,GAAA/O,SAAA,CAAApI,MAAA,GAAAoI,CAAAA,IAAAA,SAAA,CAAAC,CAAAA,CAAAA,KAAAA,SAAA,GAAAD,SAAA,CAAG,CAAA,CAAA,GAAA,IAAI,CAACoa,OAAO,CAAA;CACxC,MAAA,IAAM8O,WAAW,GAAGna,EAAE,CAAC2W,WAAW,CAACrf,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;CAC3D,MAAA,OAAO0iB,UAAU,CAAC6B,uBAAuB,CAAC1B,WAAW,CAAC,CAAA;CAC1D,KAAA;CAAC,GAAA,EAAA;KAAAjvB,GAAA,EAAA,oBAAA;CAAAC,IAAAA,KAAA,EAMD,SAAA6wB,kBAA0BzE,CAAAA,QAAQ,EAAE;CAChC,MAAA,IAAI4C,WAAW,GAAGH,UAAU,CAACE,sBAAsB,CAAC3C,QAAQ,CAAC,CAAA;CAC7D,MAAA,IAAI0E,eAAe,GAAGjC,UAAU,CAACI,wBAAwB,CAACD,WAAW,CAAC,CAAA;OAEtE,IAAI,CAAC8B,eAAe,EAAE;CAClBl0B,QAAAA,GAAG,CAACyR,KAAK,CAAC,yBAAyB,EAAE2gB,WAAW,CAAC,CAAA;CACjD,QAAA,OAAOjpB,SAAS,CAAA;CACpB,OAAA;CACA,MAAA,IAAIgrB,UAAU,GAAG,IAAID,eAAe,CAAC1E,QAAQ,CAAC,CAAA;OAC9C2E,UAAU,CAACjC,SAAS,EAAE,CAAA;OACtB,OAAOiC,UAAU,CAAC7Q,OAAO,CAAA;CAC7B,KAAA;CAAC,GAAA,CAAA,CAAA,CAAA;CAAA,EAAA,OAAA2O,UAAA,CAAA;CAAA,CAAA,EAAA,CAAA;CAAA,IAGCmC,eAAe,0BAAAC,WAAA,EAAA;GAAAxrB,SAAA,CAAAurB,eAAA,EAAAC,WAAA,CAAA,CAAA;CAAA,EAAA,IAAAvrB,MAAA,GAAAC,YAAA,CAAAqrB,eAAA,CAAA,CAAA;CAAA,EAAA,SAAAA,eAAA,GAAA;CAAA5xB,IAAAA,eAAA,OAAA4xB,eAAA,CAAA,CAAA;CAAA,IAAA,OAAAtrB,MAAA,CAAAwJ,KAAA,CAAA,IAAA,EAAApJ,SAAA,CAAA,CAAA;CAAA,GAAA;CAAAhG,EAAAA,YAAA,CAAAkxB,eAAA,EAAA,CAAA;KAAAjxB,GAAA,EAAA,WAAA;KAAAC,KAAA,EACjB,SAAA8uB,SAAAA,GAAY;OACR,IAAI,CAACoC,mBAAmB,EAAE,CAAA;OAC1B,IAAI,CAACC,mBAAmB,EAAE,CAAA;CAC9B,KAAA;CAAC,GAAA,EAAA;KAAApxB,GAAA,EAAA,qBAAA;KAAAC,KAAA,EA4BD,SAAAkxB,mBAAAA,GAAsB;CAClB,MAAA,IACI,IAAI,CAAC9E,QAAQ,CAAC1uB,MAAM,KAAK,CAAC,IAC1BmxB,UAAU,CAAC+B,mBAAmB,CAAC,IAAI,CAACxE,QAAQ,CAAC,CAAC,CAAC,CAAC,EAClD;CACE;SACA,IAAI,CAAClM,OAAO,GAAG,IAAI,CAACkM,QAAQ,CAAC,CAAC,CAAC,CAAA;CAC/B,QAAA,OAAA;CACJ,OAAA;OACA,IAAI,CAACgF,UAAU,GAAG,IAAIzC,YAAY,CAAC,IAAI,CAACvC,QAAQ,CAAC,CAAA;CACjD,MAAA,IAAI,CAAClM,OAAO,GAAG,IAAI,CAACkR,UAAU,CAAClR,OAAO,CAAA;CACtC,MAAA,IAAIrL,EAAE,GAAG,IAAI,CAACqL,OAAO,CAAA;CACrB;CACA;CACA;CACA,MAAA,IAAImR,gBAAgB,GAAG,IAAI,CAACjF,QAAQ,CAAC,CAAC,CAAC,CAAA;CACvCvX,MAAAA,EAAE,CAACyc,cAAc,GAAG,IAAI,CAAClF,QAAQ,CAAC1uB,MAAM,CAAA;;CAExC;CACAmX,MAAAA,EAAE,CAAC2W,WAAW,GAAG6F,gBAAgB,CAAC7F,WAAW,CAAA;CAC7C3W,MAAAA,EAAE,CAAC0c,IAAI,GAAGF,gBAAgB,CAACE,IAAI,CAAA;CAC/B1c,MAAAA,EAAE,CAAC2c,OAAO,GAAGH,gBAAgB,CAACG,OAAO,CAAA;CACrC3c,MAAAA,EAAE,CAAC4c,aAAa,GAAGJ,gBAAgB,CAACI,aAAa,CAAA;CACjD5c,MAAAA,EAAE,CAAC6c,mBAAmB,GAAGL,gBAAgB,CAACK,mBAAmB,CAAA;CAC7D7c,MAAAA,EAAE,CAAC8c,YAAY,GAAGN,gBAAgB,CAACM,YAAY,IAAI,GAAG,CAAA;CACtD9c,MAAAA,EAAE,CAAC+c,gBAAgB,GAAGP,gBAAgB,CAACO,gBAAgB,IAAI,GAAG,CAAA;CAC9D;;CAEA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,MAAA,IAAIC,iBAAiB,GAAGR,gBAAgB,CAACS,oBAAoB,CAAA;OAC7D,IAAIC,SAAS,GAAGV,gBAAgB,CAACW,uBAAuB,CAAChtB,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;OACpE,IAAIitB,YAAY,GAAGZ,gBAAgB,CAACW,uBAAuB,CAAChtB,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;OACvE,IAAIktB,QAAQ,GAAGlB,eAAe,CAACmB,gBAAgB,CAC3CJ,SAAS,EACTE,YACJ,CAAC,CAAA;OACD,IAAIG,oBAAoB,GAAG,EAAE,CAAA;CAC7B,MAAA,IAAI,CAAChG,QAAQ,CAACtd,OAAO,CAAC,UAAUoR,OAAO,EAAE;SACrC,IAAImS,QAAQ,GAAGnS,OAAO,CAAC4R,oBAAoB,CAAC9sB,KAAK,EAAE,CAAA;SACnD,IAAIstB,cAAc,GAAGtB,eAAe,CAACuB,YAAY,CAC7CF,QAAQ,EACRR,iBACJ,CAAC,CAAA;SACD,IAAIW,QAAQ,GAAGxB,eAAe,CAACyB,OAAO,CAACH,cAAc,EAAEJ,QAAQ,CAAC,CAAA;SAChEE,oBAAoB,CAAC5pB,IAAI,CAAC,CAACgqB,QAAQ,EAAEtS,OAAO,CAAC,CAAC,CAAA;CAClD,OAAC,CAAC,CAAA;CACFkS,MAAAA,oBAAoB,CAACrN,IAAI,CAAC,UAAU4F,CAAC,EAAEC,CAAC,EAAE;SACtC,OAAOA,CAAC,CAAC,CAAC,CAAC,GAAGD,CAAC,CAAC,CAAC,CAAC,CAAA;CACtB,OAAC,CAAC,CAAA;;CAEF;CACA,MAAA,IAAI9V,EAAE,CAAC4c,aAAa,KAAK,EAAE,EAAE;CACzB70B,QAAAA,GAAG,CAACyR,KAAK,CACL,mCAAmC,GAC/BxK,MAAM,CAAC,IAAI,CAACqc,OAAO,CAACuR,aAAa,CACzC,CAAC,CAAA;CACL,OAAA;OACA,IAAIJ,gBAAgB,CAAC9P,MAAM,IAAI,CAAC8P,gBAAgB,CAAC9P,MAAM,CAACmN,SAAS,EAAE;CAC/D9xB,QAAAA,GAAG,CAAC0lB,IAAI,CAAC,0CAA0C,CAAC,CAAA;SACpDzN,EAAE,CAAC0M,MAAM,GAAG;CAAEmN,UAAAA,SAAS,EAAE,IAAA;UAAM,CAAA;CACnC,OAAC,MAAM;SACH7Z,EAAE,CAAC0M,MAAM,GAAG;CAAEmN,UAAAA,SAAS,EAAE2C,gBAAgB,CAAC9P,MAAM,CAACmN,SAAAA;UAAW,CAAA;CAChE,OAAA;CACA,MAAA,IAAI3b,SAAS,GAAGse,gBAAgB,CAAC3C,SAAS,CAAC5sB,UAAU,CAAA;OACrD+S,EAAE,CAAC6Z,SAAS,GAAG,IAAIpvB,WAAW,CAACuV,EAAE,CAACyc,cAAc,GAAGve,SAAS,CAAC,CAAA;OAC7D,IAAI2f,KAAK,GAAG,CAAC,CAAA;CACbN,MAAAA,oBAAoB,CAACtjB,OAAO,CAAC,UAAU6jB,IAAI,EAAE;CACzC,QAAA,IAAIzS,OAAO,GAAGyS,IAAI,CAAC,CAAC,CAAC,CAAA;SACrB,IAAIC,MAAM,GAAG,IAAI5vB,WAAW,CAACkd,OAAO,CAACwO,SAAS,CAAC,CAAA;CAC/C,QAAA,IAAImE,SAAS,GAAG,IAAI7vB,WAAW,CAC3B6R,EAAE,CAAC6Z,SAAS,EACZgE,KAAK,GAAG3f,SAAS,EACjBA,SAAS,GAAG,CAChB,CAAC,CAAA;SACD,IAAI;CACA8f,UAAAA,SAAS,CAAC9wB,GAAG,CAAC6wB,MAAM,CAAC,CAAA;UACxB,CAAC,OAAOngB,CAAC,EAAE;WACR,IAAIA,CAAC,YAAYqgB,UAAU,EAAE;CACzB,YAAA,IAAMC,OAAO,GACT,uCAAuC,GAAA,YAAA,CAAAruB,MAAA,CAC1BqO,SAAS,EAAA,IAAA,CAAI,GAAArO,iBAAAA,CAAAA,MAAA,CACRmQ,EAAE,CAACyc,cAAc,EAAI,IAAA,CAAA,GAAA,OAAA,CAAA5sB,MAAA,CAC/BiuB,IAAI,EAAA,IAAA,CAAI,GAAAjuB,yBAAAA,CAAAA,MAAA,CACUwb,OAAO,CAACwO,SAAS,CAAChxB,MAAM,CAAE,CAAA;CACxDd,YAAAA,GAAG,CAACyR,KAAK,CAAC0kB,OAAO,CAAC,CAAA;CACtB,WAAA;CACJ,SAAA;CACAL,QAAAA,KAAK,EAAE,CAAA;CACX,OAAC,CAAC,CAAA;CAEF,MAAA,IAAI7d,EAAE,CAACyc,cAAc,GAAG,CAAC,EAAE;CACvB;CACA10B,QAAAA,GAAG,CAACyR,KAAK,CACL,gEACJ,CAAC,CAAA;CACL,OAAA;CACA,MAAA,IAAA2kB,qBAAA,GAAAngB,cAAA,CAA4Buf,oBAAoB,CAAC,CAAC,CAAC,EAAA,CAAA,CAAA;CAA9Ca,QAAAA,SAAS,GAAAD,qBAAA,CAAA,CAAA,CAAA;CAAEE,QAAAA,QAAQ,GAAAF,qBAAA,CAAA,CAAA,CAAA,CAAA;OACxB,IAAIG,SAAS,GAAGf,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;;CAE1C;CACA;CACA;CACA;OACA,IAAMgB,oBAAoB,GAAG71B,IAAI,CAAC6X,GAAG,CAAC+d,SAAS,GAAGF,SAAS,CAAC,CAAA;OAE5Dpe,EAAE,CAAC2Z,8BAA8B,GAAG;CAChC6E,QAAAA,wBAAwB,EAAE;WACtBrB,uBAAuB,EAAEkB,QAAQ,CAAClB,uBAAAA;UACrC;CACDsB,QAAAA,qBAAqB,EAAE;WACnBC,YAAY,EAAEL,QAAQ,CAACK,YAAY;CACnCH,UAAAA,oBAAoB,EAAEA,oBAAoB;CAC1CI,UAAAA,cAAc,EAAEJ,oBAAAA;CACpB,SAAA;QACH,CAAA;OAEDve,EAAE,CAAC4e,wBAAwB,GAAG;SAC1B7L,iBAAiB,EAAEsL,QAAQ,CAACtL,iBAAiB;CAC7C8L,QAAAA,0BAA0B,EAAE,EAAA;QAC/B,CAAA;;CAED;OACA7e,EAAE,CAAC4Z,gCAAgC,GAAG,EAAE,CAAA;;CAExC;CACA;CACA2D,MAAAA,oBAAoB,CAACtjB,OAAO,CAAC,UAAU6jB,IAAI,EAAE;CACzC,QAAA,IAAMzS,OAAO,GAAGyS,IAAI,CAAC,CAAC,CAAC,CAAA;CAEvB9d,QAAAA,EAAE,CAAC4Z,gCAAgC,CAACjmB,IAAI,CAAC;CACrCmrB,UAAAA,qBAAqB,EAAE;aACnB7B,oBAAoB,EAAE5R,OAAO,CAAC4R,oBAAAA;YACjC;CACD8B,UAAAA,mBAAmB,EAAE;aACjBC,YAAY,EAAE3T,OAAO,CAAC2T,YAAY;aAClCC,WAAW,EAAE5T,OAAO,CAAC4T,WAAAA;CACzB,WAAA;CACJ,SAAC,CAAC,CAAA;CAEFjf,QAAAA,EAAE,CAAC4e,wBAAwB,CAACC,0BAA0B,CAAClrB,IAAI,CAAC;WACxDurB,qBAAqB,EAAE7T,OAAO,CAACsL,WAAW;WAC1CwI,wBAAwB,EAAE9T,OAAO,CAACwL,cAAAA;CACtC,SAAC,CAAC,CAAA;CACN,OAAC,CAAC,CAAA;CAEF,MAAA,IAAIuI,YAAY,GAAGnnB,mBAAmB,CAACmP,GAAG,EAAE,CAAA;CAC5C,MAAA,IAAI,CAACiE,OAAO,CAACgU,6BAA6B,GAAG;CACzCC,QAAAA,wBAAwB,EAAEF,YAAAA;QAC7B,CAAA;CACD,MAAA,IAAI,CAAC/T,OAAO,CAACkU,sBAAsB,GAAG,CAClC;CACID,QAAAA,wBAAwB,EAAEF,YAAY;CACtCI,QAAAA,qBAAqB,EAAE,OAAO;CAC9BC,QAAAA,sBAAsB,EAAE,OAAO;CAAE;CACjCC,QAAAA,yBAAyB,EAAE,sBAAA;CAC/B,OAAC,CACJ,CAAA;CACL,KAAA;CAAC,GAAA,EAAA;KAAAx0B,GAAA,EAAA,qBAAA;KAAAC,KAAA,EAED,SAAAmxB,mBAAAA,GAAsB;CAClB,MAAA,IAAItc,EAAE,GAAG,IAAI,CAACqL,OAAO,CAAA;CAErB,MAAA,IAAI,CAACrL,EAAE,CAACyc,cAAc,EAAE;CACpB10B,QAAAA,GAAG,CAACyR,KAAK,CAAC,wCAAwC,CAAC,CAAA;CACnD,QAAA,OAAA;CACJ,OAAA;CAEA,MAAA,IAAI,CAACwG,EAAE,CAAC6c,mBAAmB,EAAE;CACzB;SACA7c,EAAE,CAAC6c,mBAAmB,GAAG,CAAC,CAAA;CAC9B,OAAA;OAEA,IAAI,CAAC7c,EAAE,CAAC2f,OAAO,IAAI3f,EAAE,CAAC2f,OAAO,KAAK,EAAE,EAAE;CAClC;SACA3f,EAAE,CAAC2f,OAAO,GAAG,aAAa,CAAA;CAC9B,OAAA;CAEA,MAAA,IAAIC,iBAAiB,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;OAClC,IAAIA,iBAAiB,CAAC7mB,OAAO,CAACiH,EAAE,CAAC6f,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE;SACjD,OAAO7f,EAAE,CAAC6f,UAAU,CAAA;CACxB,OAAA;CAEA,MAAA,IAAI,CAAC7f,EAAE,CAAC8f,oBAAoB,EAAE;SAC1B9f,EAAE,CAAC8f,oBAAoB,GAAG,UAAU,CAAA;CACxC,OAAA;CAEA,MAAA,IAAI,CAAC9f,EAAE,CAAC2Z,8BAA8B,EAAE;CACpC5xB,QAAAA,GAAG,CAACyR,KAAK,CACL,sEACJ,CAAC,CAAA;CACL,OAAA;;CAEA;CACA,MAAA,IAAIwG,EAAE,CAAC+f,gBAAgB,KAAK,UAAU,EAAE;CACpC/f,QAAAA,EAAE,CAAC2Z,8BAA8B,CAACqG,oBAAoB,GAAG;CACrDC,UAAAA,sBAAsB,EAAE;CACpBC,YAAAA,SAAS,EAAE,SAAS;CACpBC,YAAAA,sBAAsB,EAAE,KAAK;CAC7BC,YAAAA,WAAW,EAAE,UAAA;YAChB;CACDC,UAAAA,eAAe,EAAE,GAAA;UACpB,CAAA;CACL,OAAA;CAEA,MAAA,IAAIC,gBAAgB,GAAGtgB,EAAE,CAAC+c,gBAAgB,IAAI,CAAC,CAAA;CAC/C,MAAA,IAAIwD,YAAY,GAAGvgB,EAAE,CAAC8c,YAAY,IAAI,CAAC,CAAA;CACvC9c,MAAAA,EAAE,CAAC2Z,8BAA8B,CAAC6G,gCAAgC,GAAG;CACjEzD,QAAAA,gBAAgB,EAAEuD,gBAAgB;CAClCxD,QAAAA,YAAY,EAAEyD,YAAY;CAC1BE,QAAAA,WAAW,EAAE,IAAA;QAChB,CAAA;OACD,IAAIC,WAAW,GAAG,CAAC,CAAA;CACnB,MAAA,IAAI,CAACnJ,QAAQ,CAACtd,OAAO,CAAC,UAAAoR,OAAO,EAAI;CAC7B,QAAA,IAAIrL,EAAE,CAACyc,cAAc,KAAK,CAAC,EACvBzc,EAAE,CAAC4Z,gCAAgC,GAAG,CAClC5Z,EAAE,CAAC4Z,gCAAgC,CACtC,CAAA;SACL5Z,EAAE,CAAC4Z,gCAAgC,CAC/B8G,WAAW,GAAG,CAAC,CAClB,CAACC,oBAAoB,GAAG;CACrBC,UAAAA,wBAAwB,EAAE,CAAC;CAC3BC,UAAAA,OAAO,EAAE,CAAC;CACVC,UAAAA,qBAAqB,EAAEJ,WAAW;CAClCK,UAAAA,oBAAoB,EAAEL,WAAAA;UACzB,CAAA;SACD,IAAIM,SAAS,GAAG3V,OAAO,CAAC4V,eAAe,GAAG5V,OAAO,CAAC6V,eAAe,CAAA;CACjE,QAAA,IAAI,CAACn3B,KAAK,CAACi3B,SAAS,CAAC,EAAE;WACnB,IAAIG,oBAAoB,GACpBnhB,EAAE,CAAC4Z,gCAAgC,CAAC8G,WAAW,GAAG,CAAC,CAAC,CAC/CC,oBAAoB,CAAA;WAC7BQ,oBAAoB,CAACC,wBAAwB,GAAGJ,SAAS,CAAA;WACzDG,oBAAoB,CAACE,sBAAsB,GAAGL,SAAS,CAAA;CAC3D,SAAA;CAEAN,QAAAA,WAAW,EAAE,CAAA;CACjB,OAAC,CAAC,CAAA;;CAEF;CACA;CACA;CACA,MAAA,IAAI1gB,EAAE,CAACgf,YAAY,IAAIhf,EAAE,CAACif,WAAW,EAAE;CACnC;SACA,IAAI,CAACxrB,KAAK,CAACC,OAAO,CAACsM,EAAE,CAACgf,YAAY,CAAC,EAAE;CACjChf,UAAAA,EAAE,CAACgf,YAAY,GAAG,CAAChf,EAAE,CAACgf,YAAY,CAAC,CAAA;CACvC,SAAA;SACA,IAAI,CAACvrB,KAAK,CAACC,OAAO,CAACsM,EAAE,CAACif,WAAW,CAAC,EAAE;CAChCjf,UAAAA,EAAE,CAACif,WAAW,GAAG,CAACjf,EAAE,CAACif,WAAW,CAAC,CAAA;CACrC,SAAA;CACJ,OAAA;OACA,IAAI,CAACjf,EAAE,CAACgf,YAAY,IAAI,CAAChf,EAAE,CAACif,WAAW,EAAE;CACrC;CACAjf,QAAAA,EAAE,CAACgf,YAAY,GAAG,EAAE,CAAC;SACrBhf,EAAE,CAACif,WAAW,GAAG,EAAE,CAAA;CACnB;SACA,IAAIjf,EAAE,CAAC4Z,gCAAgC,EAAE;CACrC,UAAA,IAAI0H,IAAI,GAAG;CAAEC,YAAAA,MAAM,EAAE,CAAC;CAAEC,YAAAA,KAAK,EAAE,CAAC;CAAE71B,YAAAA,KAAK,EAAE,CAAA;YAAG,CAAA;CAC5CqU,UAAAA,EAAE,CAAC4Z,gCAAgC,CAAC3f,OAAO,CAAC,UACxCwnB,eAAe,EACjB;aACE,IAAIA,eAAe,CAACC,WAAW,EAAE;CAC7B,cAAA,IAAIC,EAAE,GACFF,eAAe,CAAC1C,mBAAmB,CAACC,YAAY,CAAA;CACpD,cAAA,IAAI4C,EAAE,GACFH,eAAe,CAAC1C,mBAAmB,CAACE,WAAW,CAAA;CACnD,cAAA,IAAIwC,eAAe,CAAC1C,mBAAmB,IAAI4C,EAAE,IAAIC,EAAE,EAAE;CACjD,gBAAA,IAAInuB,KAAK,CAACC,OAAO,CAACiuB,EAAE,CAAC,EAAE;CACnBA,kBAAAA,EAAE,GAAGA,EAAE,CAAC,CAAC,CAAC,CAAA;CACd,iBAAA;CACA,gBAAA,IAAIluB,KAAK,CAACC,OAAO,CAACkuB,EAAE,CAAC,EAAE;CACnBA,kBAAAA,EAAE,GAAGA,EAAE,CAAC,CAAC,CAAC,CAAA;CACd,iBAAA;CACAN,gBAAAA,IAAI,CAACC,MAAM,IAAIrhB,MAAM,CAACyhB,EAAE,CAAC,CAAA;CACzBL,gBAAAA,IAAI,CAACE,KAAK,IAAIthB,MAAM,CAAC0hB,EAAE,CAAC,CAAA;iBACxBN,IAAI,CAAC31B,KAAK,EAAE,CAAA;CAChB,eAAA;CACJ,aAAA;CACJ,WAAC,CAAC,CAAA;CACF,UAAA,IAAI21B,IAAI,CAAC31B,KAAK,GAAG,CAAC,EAAE;CAChBqU,YAAAA,EAAE,CAACgf,YAAY,CAACrrB,IAAI,CAAC3E,MAAM,CAACsyB,IAAI,CAACC,MAAM,GAAGD,IAAI,CAAC31B,KAAK,CAAC,CAAC,CAAA;CACtDqU,YAAAA,EAAE,CAACif,WAAW,CAACtrB,IAAI,CAAC3E,MAAM,CAACsyB,IAAI,CAACE,KAAK,GAAGF,IAAI,CAAC31B,KAAK,CAAC,CAAC,CAAA;CACxD,WAAA;CACJ,SAAA;CACJ,OAAA;CACA;CACA,MAAA,IAAIqU,EAAE,CAACgf,YAAY,CAACn2B,MAAM,KAAK,CAAC,EAAE;CAC9BmX,QAAAA,EAAE,CAACgf,YAAY,GAAG,CAAC,GAAG,CAAC,CAAA;CAC3B,OAAA;CACA,MAAA,IAAIhf,EAAE,CAACif,WAAW,CAACp2B,MAAM,KAAK,CAAC,EAAE;CAC7BmX,QAAAA,EAAE,CAACif,WAAW,GAAG,CAAC,GAAG,CAAC,CAAA;CAC1B,OAAA;CACJ,KAAA;CAAC,GAAA,CAAA,EAAA,CAAA;KAAA/zB,GAAA,EAAA,kBAAA;CAAAC,IAAAA,KAAA,EApUD,SAAAmyB,gBAAAA,CAAwBxH,CAAC,EAAEC,CAAC,EAAE;CAC1B,MAAA,IAAI8L,EAAE,GAAG/L,CAAC,CAAC,CAAC,CAAC;CACTgM,QAAAA,EAAE,GAAGhM,CAAC,CAAC,CAAC,CAAC;CACTiM,QAAAA,EAAE,GAAGjM,CAAC,CAAC,CAAC,CAAC;CACTkM,QAAAA,EAAE,GAAGjM,CAAC,CAAC,CAAC,CAAC;CACTkM,QAAAA,EAAE,GAAGlM,CAAC,CAAC,CAAC,CAAC;CACTmM,QAAAA,EAAE,GAAGnM,CAAC,CAAC,CAAC,CAAC,CAAA;OACb,IAAIoM,GAAG,GAAG,EAAE,CAAA;OACZA,GAAG,CAAC,CAAC,CAAC,GAAGL,EAAE,GAAGI,EAAE,GAAGH,EAAE,GAAGE,EAAE,CAAA;OAC1BE,GAAG,CAAC,CAAC,CAAC,GAAGJ,EAAE,GAAGC,EAAE,GAAGH,EAAE,GAAGK,EAAE,CAAA;OAC1BC,GAAG,CAAC,CAAC,CAAC,GAAGN,EAAE,GAAGI,EAAE,GAAGH,EAAE,GAAGE,EAAE,CAAA;CAC1B,MAAA,OAAOG,GAAG,CAAA;CACd,KAAA;CAAC,GAAA,EAAA;KAAAj3B,GAAA,EAAA,cAAA;CAAAC,IAAAA,KAAA,EAED,SAAAuyB,YAAAA,CAAoB5H,CAAC,EAAEC,CAAC,EAAE;OACtB,IAAIoM,GAAG,GAAG,EAAE,CAAA;CACZA,MAAAA,GAAG,CAAC,CAAC,CAAC,GAAGrM,CAAC,CAAC,CAAC,CAAC,GAAGC,CAAC,CAAC,CAAC,CAAC,CAAA;CACpBoM,MAAAA,GAAG,CAAC,CAAC,CAAC,GAAGrM,CAAC,CAAC,CAAC,CAAC,GAAGC,CAAC,CAAC,CAAC,CAAC,CAAA;CACpBoM,MAAAA,GAAG,CAAC,CAAC,CAAC,GAAGrM,CAAC,CAAC,CAAC,CAAC,GAAGC,CAAC,CAAC,CAAC,CAAC,CAAA;CACpB,MAAA,OAAOoM,GAAG,CAAA;CACd,KAAA;CAAC,GAAA,EAAA;KAAAj3B,GAAA,EAAA,SAAA;CAAAC,IAAAA,KAAA,EAED,SAAAyyB,OAAAA,CAAe9H,CAAC,EAAEC,CAAC,EAAE;CACjB,MAAA,OAAOD,CAAC,CAAC,CAAC,CAAC,GAAGC,CAAC,CAAC,CAAC,CAAC,GAAGD,CAAC,CAAC,CAAC,CAAC,GAAGC,CAAC,CAAC,CAAC,CAAC,GAAGD,CAAC,CAAC,CAAC,CAAC,GAAGC,CAAC,CAAC,CAAC,CAAC,CAAA;CAClD,KAAA;CAAC,GAAA,CAAA,CAAA,CAAA;CAAA,EAAA,OAAAoG,eAAA,CAAA;CAAA,CAAA,CA9ByBnC,UAAU,CAAA,CAAA;CAAA,IA6UlCY,iBAAiB,0BAAAwH,gBAAA,EAAA;GAAAxxB,SAAA,CAAAgqB,iBAAA,EAAAwH,gBAAA,CAAA,CAAA;CAAA,EAAA,IAAA3wB,OAAA,GAAAX,YAAA,CAAA8pB,iBAAA,CAAA,CAAA;CAAA,EAAA,SAAAA,iBAAA,GAAA;CAAArwB,IAAAA,eAAA,OAAAqwB,iBAAA,CAAA,CAAA;CAAA,IAAA,OAAAnpB,OAAA,CAAA4I,KAAA,CAAA,IAAA,EAAApJ,SAAA,CAAA,CAAA;CAAA,GAAA;CAAAhG,EAAAA,YAAA,CAAA2vB,iBAAA,EAAA,CAAA;KAAA1vB,GAAA,EAAA,WAAA;KAAAC,KAAA,EACnB,SAAA8uB,SAAAA,GAAY;CACRre,MAAAA,IAAA,CAAAC,eAAA,CAAA+e,iBAAA,CAAArf,SAAA,sBAAAnK,IAAA,CAAA,IAAA,CAAA,CAAA;CACA;CACA;CACA,MAAA,IAAI,CAACia,OAAO,CAACsL,WAAW,GAAG,gCAAgC,CAAA;CAC3D;CACJ,KAAA;CAAC,GAAA,EAAA;KAAAzrB,GAAA,EAAA,qBAAA;KAAAC,KAAA,EAED,SAAAmxB,mBAAAA,GAAsB;CAClB1gB,MAAAA,IAAA,CAAAC,eAAA,CAAA+e,iBAAA,CAAArf,SAAA,gCAAAnK,IAAA,CAAA,IAAA,CAAA,CAAA;CACA,MAAA,IAAI4O,EAAE,GAAG,IAAI,CAACqL,OAAO,CAAA;CAErB,MAAA,IACI,CAACrL,EAAE,CAACwZ,SAAS,IACb,CAACxZ,EAAE,CAACwZ,SAAS,CAACtN,WAAW,IACzBlM,EAAE,CAACwZ,SAAS,CAACtN,WAAW,CAACvZ,IAAI,IAAI,OAAO,IACxCqN,EAAE,CAACwZ,SAAS,CAAC3wB,MAAM,IAAI,CAAC,EAC1B;SACEmX,EAAE,CAACwZ,SAAS,GAAG,CAAC,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;CAC3D,OAAA;CAEAxZ,MAAAA,EAAE,CAAC2Z,8BAA8B,CAAC0I,wBAAwB,GAAG;SACzDC,SAAS,EAAEtiB,EAAE,CAACwZ,SAAS;CACvB+I,QAAAA,iBAAiB,EAAE,YAAY;CAC/BC,QAAAA,oBAAoB,EAAE,QAAQ;CAC9BC,QAAAA,+BAA+B,EAAE,MAAM;CACvCC,QAAAA,qBAAqB,EAAE,WAAW;CAClCC,QAAAA,mBAAmB,EAAE,SAAA;QACxB,CAAA;CACL,KAAA;CAAC,GAAA,CAAA,CAAA,CAAA;CAAA,EAAA,OAAA/H,iBAAA,CAAA;CAAA,CAAA,CA9B2BuB,eAAe,CAAA,CAAA;CAAA,IAiCzCrB,yBAAyB,0BAAA8H,iBAAA,EAAA;GAAAhyB,SAAA,CAAAkqB,yBAAA,EAAA8H,iBAAA,CAAA,CAAA;CAAA,EAAA,IAAA7wB,OAAA,GAAAjB,YAAA,CAAAgqB,yBAAA,CAAA,CAAA;CAAA,EAAA,SAAAA,yBAAA,GAAA;CAAAvwB,IAAAA,eAAA,OAAAuwB,yBAAA,CAAA,CAAA;CAAA,IAAA,OAAA/oB,OAAA,CAAAsI,KAAA,CAAA,IAAA,EAAApJ,SAAA,CAAA,CAAA;CAAA,GAAA;CAAAhG,EAAAA,YAAA,CAAA6vB,yBAAA,EAAA,CAAA;KAAA5vB,GAAA,EAAA,WAAA;KAAAC,KAAA,EAC3B,SAAA8uB,SAAAA,GAAY;CACRre,MAAAA,IAAA,CAAAC,eAAA,CAAAif,yBAAA,CAAAvf,SAAA,sBAAAnK,IAAA,CAAA,IAAA,CAAA,CAAA;CACJ,KAAA;CAAC,GAAA,CAAA,CAAA,CAAA;CAAA,EAAA,OAAA0pB,yBAAA,CAAA;CAAA,CAAA,CAHmCqB,eAAe,CAAA,CAAA;CAAA,IAMjDlB,yBAAyB,0BAAA4H,iBAAA,EAAA;GAAAjyB,SAAA,CAAAqqB,yBAAA,EAAA4H,iBAAA,CAAA,CAAA;CAAA,EAAA,IAAAnkB,OAAA,GAAA5N,YAAA,CAAAmqB,yBAAA,CAAA,CAAA;CAAA,EAAA,SAAAA,yBAAA,GAAA;CAAA1wB,IAAAA,eAAA,OAAA0wB,yBAAA,CAAA,CAAA;CAAA,IAAA,OAAAvc,OAAA,CAAArE,KAAA,CAAA,IAAA,EAAApJ,SAAA,CAAA,CAAA;CAAA,GAAA;CAAAhG,EAAAA,YAAA,CAAAgwB,yBAAA,EAAA,CAAA;KAAA/vB,GAAA,EAAA,WAAA;KAAAC,KAAA,EAC3B,SAAA8uB,SAAAA,GAAY;CACRre,MAAAA,IAAA,CAAAC,eAAA,CAAAof,yBAAA,CAAA1f,SAAA,sBAAAnK,IAAA,CAAA,IAAA,CAAA,CAAA;CACJ,KAAA;CAAC,GAAA,CAAA,CAAA,CAAA;CAAA,EAAA,OAAA6pB,yBAAA,CAAA;CAAA,CAAA,CAHmCkB,eAAe,CAAA,CAAA;CAAA,IAMjDf,0BAA0B,0BAAA0H,iBAAA,EAAA;GAAAlyB,SAAA,CAAAwqB,0BAAA,EAAA0H,iBAAA,CAAA,CAAA;CAAA,EAAA,IAAAhkB,OAAA,GAAAhO,YAAA,CAAAsqB,0BAAA,CAAA,CAAA;CAAA,EAAA,SAAAA,0BAAA,GAAA;CAAA7wB,IAAAA,eAAA,OAAA6wB,0BAAA,CAAA,CAAA;CAAA,IAAA,OAAAtc,OAAA,CAAAzE,KAAA,CAAA,IAAA,EAAApJ,SAAA,CAAA,CAAA;CAAA,GAAA;CAAAhG,EAAAA,YAAA,CAAAmwB,0BAAA,EAAA,CAAA;KAAAlwB,GAAA,EAAA,WAAA;KAAAC,KAAA,EAC5B,SAAA8uB,SAAAA,GAAY;CACRre,MAAAA,IAAA,CAAAC,eAAA,CAAAuf,0BAAA,CAAA7f,SAAA,sBAAAnK,IAAA,CAAA,IAAA,CAAA,CAAA;CACJ,KAAA;CAAC,GAAA,CAAA,CAAA,CAAA;CAAA,EAAA,OAAAgqB,0BAAA,CAAA;CAAA,CAAA,CAHoCe,eAAe,CAAA,CAAA;CAAA,IAMlD3B,iBAAiB,0BAAAuI,iBAAA,EAAA;GAAAnyB,SAAA,CAAA4pB,iBAAA,EAAAuI,iBAAA,CAAA,CAAA;CAAA,EAAA,IAAA9jB,OAAA,GAAAnO,YAAA,CAAA0pB,iBAAA,CAAA,CAAA;CAAA,EAAA,SAAAA,iBAAA,GAAA;CAAAjwB,IAAAA,eAAA,OAAAiwB,iBAAA,CAAA,CAAA;CAAA,IAAA,OAAAvb,OAAA,CAAA5E,KAAA,CAAA,IAAA,EAAApJ,SAAA,CAAA,CAAA;CAAA,GAAA;CAAAhG,EAAAA,YAAA,CAAAuvB,iBAAA,EAAA,CAAA;KAAAtvB,GAAA,EAAA,WAAA;KAAAC,KAAA,EACnB,SAAA8uB,SAAAA,GAAY;CACRre,MAAAA,IAAA,CAAAC,eAAA,CAAA2e,iBAAA,CAAAjf,SAAA,sBAAAnK,IAAA,CAAA,IAAA,CAAA,CAAA;CACA;CACA,MAAA,IAAIipB,KAAK,GAAGpiB,mBAAmB,CAACoW,kBAAkB,CAAA;CAClD;CACA,MAAA,IAAI,CAAChD,OAAO,CAACsL,WAAW,GAAG0D,KAAK,CAACQ,eAAe,CAAA;CACpD,KAAA;CAAC,GAAA,CAAA,CAAA,CAAA;CAAA,EAAA,OAAAL,iBAAA,CAAA;CAAA,CAAA,CAP2B2B,eAAe,CAAA,CAAA;CAAA,IAUzCb,kBAAkB,0BAAA0H,iBAAA,EAAA;GAAApyB,SAAA,CAAA0qB,kBAAA,EAAA0H,iBAAA,CAAA,CAAA;CAAA,EAAA,IAAA3jB,OAAA,GAAAvO,YAAA,CAAAwqB,kBAAA,CAAA,CAAA;CAAA,EAAA,SAAAA,kBAAA,GAAA;CAAA/wB,IAAAA,eAAA,OAAA+wB,kBAAA,CAAA,CAAA;CAAA,IAAA,OAAAjc,OAAA,CAAAhF,KAAA,CAAA,IAAA,EAAApJ,SAAA,CAAA,CAAA;CAAA,GAAA;CAAAhG,EAAAA,YAAA,CAAAqwB,kBAAA,EAAA,CAAA;KAAApwB,GAAA,EAAA,WAAA;KAAAC,KAAA,EACpB,SAAA8uB,SAAAA,GAAY;CACRre,MAAAA,IAAA,CAAAC,eAAA,CAAAyf,kBAAA,CAAA/f,SAAA,sBAAAnK,IAAA,CAAA,IAAA,CAAA,CAAA;CACA;CACA,MAAA,IAAIipB,KAAK,GAAGpiB,mBAAmB,CAACoW,kBAAkB,CAAA;CAClD;CACA,MAAA,IAAI,CAAChD,OAAO,CAACsL,WAAW,GAAG0D,KAAK,CAACkB,gBAAgB,CAAA;CACrD,KAAA;CAAC,GAAA,CAAA,CAAA,CAAA;CAAA,EAAA,OAAAD,kBAAA,CAAA;CAAA,CAAA,CAP4Ba,eAAe,CAAA,CAAA;CAAA,IAU1CT,kBAAkB,0BAAAuH,iBAAA,EAAA;GAAAryB,SAAA,CAAA8qB,kBAAA,EAAAuH,iBAAA,CAAA,CAAA;CAAA,EAAA,IAAAxjB,OAAA,GAAA3O,YAAA,CAAA4qB,kBAAA,CAAA,CAAA;CAAA,EAAA,SAAAA,kBAAA,GAAA;CAAAnxB,IAAAA,eAAA,OAAAmxB,kBAAA,CAAA,CAAA;CAAA,IAAA,OAAAjc,OAAA,CAAApF,KAAA,CAAA,IAAA,EAAApJ,SAAA,CAAA,CAAA;CAAA,GAAA;CAAAhG,EAAAA,YAAA,CAAAywB,kBAAA,EAAA,CAAA;KAAAxwB,GAAA,EAAA,WAAA;KAAAC,KAAA,EACpB,SAAA8uB,SAAAA,GAAY;CACRre,MAAAA,IAAA,CAAAC,eAAA,CAAA6f,kBAAA,CAAAngB,SAAA,sBAAAnK,IAAA,CAAA,IAAA,CAAA,CAAA;CACJ,KAAA;CAAC,GAAA,CAAA,CAAA,CAAA;CAAA,EAAA,OAAAsqB,kBAAA,CAAA;CAAA,CAAA,CAH4BS,eAAe,CAAA,CAAA;CAAA,IAM1CzB,iBAAiB,0BAAAwI,iBAAA,EAAA;GAAAtyB,SAAA,CAAA8pB,iBAAA,EAAAwI,iBAAA,CAAA,CAAA;CAAA,EAAA,IAAArjB,OAAA,GAAA/O,YAAA,CAAA4pB,iBAAA,CAAA,CAAA;CAAA,EAAA,SAAAA,iBAAA,GAAA;CAAAnwB,IAAAA,eAAA,OAAAmwB,iBAAA,CAAA,CAAA;CAAA,IAAA,OAAA7a,OAAA,CAAAxF,KAAA,CAAA,IAAA,EAAApJ,SAAA,CAAA,CAAA;CAAA,GAAA;CAAAhG,EAAAA,YAAA,CAAAyvB,iBAAA,EAAA,CAAA;KAAAxvB,GAAA,EAAA,WAAA;KAAAC,KAAA,EACnB,SAAA8uB,SAAAA,GAAY;CACRre,MAAAA,IAAA,CAAAC,eAAA,CAAA6e,iBAAA,CAAAnf,SAAA,sBAAAnK,IAAA,CAAA,IAAA,CAAA,CAAA;CACA,MAAA,IAAI4O,EAAE,GAAG,IAAI,CAACuX,QAAQ,CAAC,CAAC,CAAC,CAAA;CACzB,MAAA,IAAIvX,EAAE,CAAC4c,aAAa,KAAK,EAAE,EAAE;SACzB70B,GAAG,CAACyR,KAAK,CACL,mCAAmC,GAAGxK,MAAM,CAACgR,EAAE,CAAC4c,aAAa,CACjE,CAAC,CAAA;CACL,OAAA;CACJ,KAAA;CAAC,GAAA,CAAA,CAAA,CAAA;CAAA,EAAA,OAAAlC,iBAAA,CAAA;CAAA,CAAA,CAT2ByB,eAAe,CAAA,CAAA;CAAA,IAYzCP,aAAa,0BAAAuH,YAAA,EAAA;GAAAvyB,SAAA,CAAAgrB,aAAA,EAAAuH,YAAA,CAAA,CAAA;CAAA,EAAA,IAAApiB,QAAA,GAAAjQ,YAAA,CAAA8qB,aAAA,CAAA,CAAA;CAAA,EAAA,SAAAA,aAAA,GAAA;CAAArxB,IAAAA,eAAA,OAAAqxB,aAAA,CAAA,CAAA;CAAA,IAAA,OAAA7a,QAAA,CAAA1G,KAAA,CAAA,IAAA,EAAApJ,SAAA,CAAA,CAAA;CAAA,GAAA;CAAAhG,EAAAA,YAAA,CAAA2wB,aAAA,EAAA,CAAA;KAAA1wB,GAAA,EAAA,WAAA;KAAAC,KAAA,EACf,SAAA8uB,SAAAA,GAAY;OACR,IAAI,CAAC5O,OAAO,GAAG,IAAI,CAACkM,QAAQ,CAAC,CAAC,CAAC,CAAC;CACpC,KAAA;CAAC,GAAA,CAAA,CAAA,CAAA;CAAA,EAAA,OAAAqE,aAAA,CAAA;CAAA,CAAA,CAHuB5B,UAAU,CAAA;;CChgBI,IAErByB,cAAY,0BAAA1B,cAAA,EAAA;GAAAnpB,SAAA,CAAA6qB,YAAA,EAAA1B,cAAA,CAAA,CAAA;CAAA,EAAA,IAAAlpB,MAAA,GAAAC,YAAA,CAAA2qB,YAAA,CAAA,CAAA;GAC7B,SAAAA,YAAAA,CAAYlE,QAAQ,EAA2C;KAAA,IAAzCvmB,OAAO,GAAAC,SAAA,CAAApI,MAAA,GAAAoI,CAAAA,IAAAA,SAAA,CAAAC,CAAAA,CAAAA,KAAAA,SAAA,GAAAD,SAAA,CAAG,CAAA,CAAA,GAAA;CAAEmyB,MAAAA,mBAAmB,EAAE,IAAA;MAAM,CAAA;CAAA74B,IAAAA,eAAA,OAAAkxB,YAAA,CAAA,CAAA;CAAA,IAAA,OAAA5qB,MAAA,CAAAO,IAAA,CACnDmmB,IAAAA,EAAAA,QAAQ,EAAEvmB,OAAO,CAAA,CAAA;CAC3B,GAAA;CAAC/F,EAAAA,YAAA,CAAAwwB,YAAA,EAAA,CAAA;KAAAvwB,GAAA,EAAA,QAAA;KAAAC,KAAA,EAED,SAAA0tB,MAAAA,GAAS;CACLjd,MAAAA,IAAA,CAAAC,eAAA,CAAA4f,YAAA,CAAAlgB,SAAA,mBAAAnK,IAAA,CAAA,IAAA,CAAA,CAAA;OAEA,IAAI,CAAC0nB,eAAe,CAAC;CACjBnC,QAAAA,WAAW,EAAE1e,mBAAmB,CAACoW,kBAAkB,CAACoN,YAAY;CAChE4H,QAAAA,QAAQ,EAAE,KAAK;CACfC,QAAAA,eAAe,EAAE,GAAG;CACpBC,QAAAA,yBAAyB,EAAE,aAAa;CACxC3G,QAAAA,aAAa,EAAE,GAAG;CAClB4G,QAAAA,UAAU,EAAE,GAAG;CACfC,QAAAA,OAAO,EAAE,GAAG;CACZ5G,QAAAA,mBAAmB,EAAE,GAAG;CACxBpD,QAAAA,qBAAqB,EAAE,IAAI;CAC3BiK,QAAAA,gBAAgB,EAAE,QAAQ;CAC1BrK,QAAAA,YAAY,EAAE,cAAA;CAClB,OAAC,CAAC,CAAA;CAEF,MAAA,IAAI+F,YAAY,GAAGnnB,mBAAmB,CAACmP,GAAG,EAAE,CAAA;CAC5C,MAAA,IAAI,CAACiE,OAAO,CAACgU,6BAA6B,GAAG;CACzCC,QAAAA,wBAAwB,EAAEF,YAAAA;QAC7B,CAAA;CACD,MAAA,IAAI,CAAC/T,OAAO,CAACkU,sBAAsB,GAAG,CAClC;CACID,QAAAA,wBAAwB,EAAEF,YAAY;CACtCI,QAAAA,qBAAqB,EAAE,OAAO;CAC9BC,QAAAA,sBAAsB,EAAE,OAAO;CAAE;CACjCC,QAAAA,yBAAyB,EAAE,yBAAA;CAC/B,OAAC,EACD;CACIJ,QAAAA,wBAAwB,EAAEF,YAAY;CACtCI,QAAAA,qBAAqB,EAAE,OAAO;CAC9BC,QAAAA,sBAAsB,EAAE,OAAO;CAAE;CACjCC,QAAAA,yBAAyB,EAAE,sBAAA;CAC/B,OAAC,CACJ,CAAA;CAED,MAAA,IAAI,CAACrU,OAAO,CAACsY,eAAe,GAAG,EAAE,CAAA;;CAEjC;CACA;CACA;CACA;CACA;CACA;CACA,MAAA,IAAI,IAAI,CAAC/K,iBAAiB,CAACgG,wBAAwB,EAAE;CACjD,QAAA,IAAI,CAACvT,OAAO,CAACuT,wBAAwB,GAAGtH,cAAc,CAAC4B,WAAW,CAC9D,IAAI,CAACN,iBAAiB,CAACgG,wBAC3B,CAAC,CAAA;CACL,OAAC,MAAM;SACH,IAAMC,0BAA0B,GAAG,EAAE,CAAA;CAErC,QAAA,KAAK,IAAI31B,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG,IAAI,CAACyvB,kBAAkB,CAAC9vB,MAAM,EAAEK,CAAC,EAAE,EAAE;WACrD21B,0BAA0B,CAAClrB,IAAI,CAAC;aAC5BurB,qBAAqB,EACjB,IAAI,CAACvG,kBAAkB,CAACzvB,CAAC,CAAC,CAACytB,WAAW;CAC1CwI,YAAAA,wBAAwB,EACpB,IAAI,CAACxG,kBAAkB,CAACzvB,CAAC,CAAC,CAAC2tB,cAAAA;CACnC,WAAC,CAAC,CAAA;CACN,SAAA;CAEA,QAAA,IAAI,CAACxL,OAAO,CAACuT,wBAAwB,GAAG;CACpC7L,UAAAA,iBAAiB,EAAE,IAAI,CAAC6F,iBAAiB,CAAC7F,iBAAiB;CAC3DH,UAAAA,gBAAgB,EAAE,IAAI,CAACgG,iBAAiB,CAAChG,gBAAgB;CACzDiM,UAAAA,0BAA0B,EAA1BA,0BAAAA;UACH,CAAA;CACL,OAAA;CAEA,MAAA,IAAI,CAAC,IAAI,CAAC7tB,OAAO,CAACoyB,mBAAmB,EAAE;CACnC;SACA,OAAO,IAAI,CAAC/X,OAAO,CAACsO,8BAA8B,CAC7C8E,qBAAqB,CAACF,oBAAoB,CAAA;CACnD,OAAA;CAEA,MAAA,IACI,IAAI,CAAClT,OAAO,CAACsO,8BAA8B,CACtC6G,gCAAgC,EACvC;CACE;CACA,QAAA,OAAO,IAAI,CAACnV,OAAO,CAACsO,8BAA8B,CAC7C6G,gCAAgC,CAAA;CACzC,OAAA;;CAEA;CACA,MAAA,IAAI,CAACnV,OAAO,CAACwO,SAAS,GAAG3oB,SAAS,CAAA;CAClC,MAAA,IAAI,CAACma,OAAO,CAACoR,cAAc,GAAG,CAAC,CAAA;CAE/B,MAAA,IAAI,CAACpR,OAAO,CAACuO,gCAAgC,GAAG,EAAE,CAAA;CACtD,KAAA;;CAEA;CACJ;CACA;CACA;CACA;CACA;CALI,GAAA,EAAA;KAAA1uB,GAAA,EAAA,mBAAA;CAAAC,IAAAA,KAAA,EAMA,SAAAy4B,iBAAkBnH,CAAAA,cAAc,EAAE;CAC9B,MAAA,IAAMpR,OAAO,GAAG,IAAI,CAACA,OAAO,CAAA;OAC5BA,OAAO,CAACoR,cAAc,GAAGA,cAAc,CAAA;CAEvCpR,MAAAA,OAAO,CAACwO,SAAS,GAAG,IAAIpvB,WAAW,CAC/B4gB,OAAO,CAACqR,IAAI,GAAGrR,OAAO,CAACsR,OAAO,GAAGF,cACrC,CAAC,CAAA;CACL,KAAA;;CAEA;CACJ;CACA;CACA;CACA;CACA;CALI,GAAA,EAAA;KAAAvxB,GAAA,EAAA,kBAAA;KAAAC,KAAA,EAMA,SAAA04B,gBAAAA,GAAmB;OACf,IAAI,IAAI,CAACC,WAAW,EAAE;SAClBC,OAAO,CAACtW,IAAI,CAAA,yHAEZ,CAAC,CAAA;CACL,OAAA;CAEA,MAAA,IAAMpC,OAAO,GAAG,IAAI,CAACA,OAAO,CAAA;CAC5B,MAAA,IAAM2Y,iBAAiB,GAAG3Y,OAAO,CAACwO,SAAS,CAAA;CAC3C,MAAA,IAAMoK,0BAA0B,GAAG,IAAIj7B,UAAU,CAACg7B,iBAAiB,CAAC,CAAA;CACpE,MAAA,IAAME,kBAAkB,GAAG/7B,QAAQ,CAACE,IAAI,CAAC47B,0BAA0B,CAAC,CAAA;CAEpE5Y,MAAAA,OAAO,CAACwO,SAAS,GAAGqK,kBAAkB,CAAC15B,MAAM,CAAA;OAE7C,IAAI,CAACs5B,WAAW,GAAG,IAAI,CAAA;CAC3B,KAAA;;CAEA;CACJ;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CAXI,GAAA,EAAA;KAAA54B,GAAA,EAAA,wBAAA;KAAAC,KAAA,EAYA,SAAAg5B,sBAAAA,CACIC,OAAO,EACPC,SAAS,EACTC,sBAAsB,EACtBC,sBAAsB,EACxB;CACE,MAAA,IAAI,IAAI,CAAClZ,OAAO,CAACoR,cAAc,KAAK,CAAC,EAAE;CACnC,QAAA,MAAM,IAAIzyB,KAAK,CACX,yGACJ,CAAC,CAAA;CACL,OAAA;CAEA,MAAA,IAAI,CAACw6B,iCAAiC,CAClCH,SAAS,EACTC,sBACJ,CAAC,CAAA;CACD,MAAA,IAAMG,uBAAuB,GAAG,IAAI,CAACC,mBAAmB,CAACN,OAAO,CAAC,CAAA;CACjE,MAAA,IAAI,CAACO,4BAA4B,CAC7BF,uBAAuB,EACvBF,sBACJ,CAAC,CAAA;CACL,KAAA;CAAC,GAAA,EAAA;KAAAr5B,GAAA,EAAA,mCAAA;CAAAC,IAAAA,KAAA,EAED,SAAAq5B,iCAAAA,CAAkCH,SAAS,EAAEO,YAAY,EAAE;CACvD,MAAA,IAAMvZ,OAAO,GAAG,IAAI,CAACA,OAAO,CAAA;CAC5B,MAAA,IAAMwZ,cAAc,GAAGxZ,OAAO,CAACuO,gCAAgC,CAAC/wB,MAAM,CAAA;OACtE,IAAMi8B,WAAW,GAAGzZ,OAAO,CAACqR,IAAI,GAAGrR,OAAO,CAACsR,OAAO,CAAA;CAClD,MAAA,IAAMoI,UAAU,GAAGF,cAAc,GAAGC,WAAW,CAAA;CAE/C,MAAA,IAAME,kBAAkB,GAAG,IAAIh8B,UAAU,CACrCqiB,OAAO,CAACwO,SAAS,EACjBkL,UAAU,EACVV,SAAS,CAACx7B,MAAM,GAAGi8B,WACvB,CAAC,CAAA;CAED,MAAA,IAAMG,aAAa,GAAG,IAAI,CAACC,iBAAiB,EAAE,CAAA;CAE9C,MAAA,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGd,SAAS,CAACx7B,MAAM,EAAEs8B,CAAC,EAAE,EAAE;CACvC,QAAA,IAAMC,QAAQ,GAAGf,SAAS,CAACc,CAAC,CAAC,CAAA;CAE7B,QAAA,KAAK,IAAIj8B,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGk8B,QAAQ,CAACv8B,MAAM,EAAEK,CAAC,EAAE,EAAE;CACtC,UAAA,IAAIk8B,QAAQ,CAACl8B,CAAC,CAAC,KAAK07B,YAAY,EAAE;aAC9BI,kBAAkB,CAACG,CAAC,GAAGL,WAAW,GAAG57B,CAAC,CAAC,GAAG+7B,aAAa,CAAA;CAC3D,WAAA;CACJ,SAAA;CACJ,OAAA;CACJ,KAAA;CAAC,GAAA,EAAA;KAAA/5B,GAAA,EAAA,mBAAA;KAAAC,KAAA,EAED,SAAA+5B,iBAAAA,GAAoB;CAChB,MAAA,IAAI,IAAI,CAAC7Z,OAAO,CAACqY,gBAAgB,KAAK,YAAY,EAAE;CAChD,QAAA,OAAO,GAAG,CAAA;CACd,OAAA;CAEA,MAAA,OAAO,CAAC,CAAA;CACZ,KAAA;;CAEA;CACJ;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CATI,GAAA,EAAA;KAAAx4B,GAAA,EAAA,YAAA;KAAAC,KAAA,EAUA,SAAAk6B,UAAWjB,CAAAA,OAAO,EAAEx7B,SAAS,EAAE27B,sBAAsB,EAAE;CACnD,MAAA,IAAI,IAAI,CAAClZ,OAAO,CAACoR,cAAc,KAAK,CAAC,EAAE;CACnC,QAAA,MAAM,IAAIzyB,KAAK,CACX,yGACJ,CAAC,CAAA;CACL,OAAA;CAEA,MAAA,IAAI,CAACs7B,oBAAoB,CAAC18B,SAAS,CAAC,CAAA;CACpC,MAAA,IAAM67B,uBAAuB,GAAG,IAAI,CAACC,mBAAmB,CAACN,OAAO,CAAC,CAAA;CACjE,MAAA,IAAI,CAACO,4BAA4B,CAC7BF,uBAAuB,EACvBF,sBACJ,CAAC,CAAA;CACL,KAAA;CAAC,GAAA,EAAA;KAAAr5B,GAAA,EAAA,sBAAA;CAAAC,IAAAA,KAAA,EAED,SAAAm6B,oBAAqB18B,CAAAA,SAAS,EAAE;CAC5B,MAAA,IAAMyiB,OAAO,GAAG,IAAI,CAACA,OAAO,CAAA;CAE5B,MAAA,IAAMwZ,cAAc,GAAGxZ,OAAO,CAACuO,gCAAgC,CAAC/wB,MAAM,CAAA;OACtE,IAAMi8B,WAAW,GAAGzZ,OAAO,CAACqR,IAAI,GAAGrR,OAAO,CAACsR,OAAO,CAAA;CAClD,MAAA,IAAMoI,UAAU,GAAGF,cAAc,GAAGC,WAAW,CAAA;CAE/C,MAAA,IAAME,kBAAkB,GAAG,IAAIh8B,UAAU,CACrCqiB,OAAO,CAACwO,SAAS,EACjBkL,UAAU,EACVn8B,SAAS,CAACC,MACd,CAAC,CAAA;CAED,MAAA,KAAK,IAAIK,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGN,SAAS,CAACC,MAAM,EAAEK,CAAC,EAAE,EAAE;CACvC87B,QAAAA,kBAAkB,CAAC97B,CAAC,CAAC,GAAGN,SAAS,CAACM,CAAC,CAAC,CAAA;CACxC,OAAA;CACJ,KAAA;CAAC,GAAA,EAAA;KAAAgC,GAAA,EAAA,8BAAA;CAAAC,IAAAA,KAAA,EAED,SAAAw5B,4BAAAA,CACIF,uBAAuB,EACvBF,sBAAsB,EACxB;CACE,MAAA,IAAM3K,gCAAgC,GAClC,IAAI,CAACvO,OAAO,CAACuO,gCAAgC,CAAA;CAEjD,MAAA,IAAMgF,wBAAwB,GAC1B,IAAI,CAAChG,iBAAiB,CAACgG,wBAAwB,CAAA;CAEnD,MAAA,KAAK,IAAI11B,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGq7B,sBAAsB,CAAC17B,MAAM,EAAEK,CAAC,EAAE,EAAE;CACpD,QAAA,IAAMw3B,WAAW,GAAG6D,sBAAsB,CAACr7B,CAAC,CAAC,CAAA;SAE7C,IAAMq8B,wBAAwB,GAAG,EAAE,CAAA;CAEnCA,QAAAA,wBAAwB,CAACzG,qBAAqB,GAC1CxH,cAAc,CAAC4B,WAAW,CACtB,IAAI,CAACN,iBAAiB,CAACgB,gCAAgC,CACnD8G,WAAW,GAAG,CAAC,CAClB,CAAC5B,qBACN,CAAC,CAAA;;CAEL;CACA;SACA,IACI,CAAC,IAAI,CAACzT,OAAO,CAACsO,8BAA8B,CACvC6E,wBAAwB,EAC/B;CACE+G,UAAAA,wBAAwB,CAAC/G,wBAAwB,GAC7ClH,cAAc,CAAC4B,WAAW,CACtB,IAAI,CAACN,iBAAiB,CAACgB,gCAAgC,CACnD8G,WAAW,GAAG,CAAC,CAClB,CAAClC,wBACN,CAAC,CAAA;CACT,SAAA;SAEA+G,wBAAwB,CAAC5E,oBAAoB,GAAG;CAC5CI,UAAAA,oBAAoB,EAAE,CAAC0D,uBAAuB,EAAE/D,WAAW,CAAA;UAC9D,CAAA;SAED6E,wBAAwB,CAACC,6BAA6B,GAAG;CACrDf,UAAAA,uBAAuB,EAAvBA,uBAAAA;UACH,CAAA;CAED,QAAA,IAAIvF,qBAAqB,GAAA,KAAA,CAAA,CAAA;CACzB,QAAA,IAAIC,wBAAwB,GAAA,KAAA,CAAA,CAAA;CAC5B,QAAA,IAAIsG,qBAAqB,GAAA,KAAA,CAAA,CAAA;CAEzB,QAAA,IAAI7G,wBAAwB,EAAE;WAC1B,IAAM8G,2BAA2B,GAC7B9G,wBAAwB,CAACC,0BAA0B,CAC/C6B,WAAW,GAAG,CAAC,CAClB,CAAA;WAELxB,qBAAqB,GACjBwG,2BAA2B,CAACxG,qBAAqB,CAAA;WACrDC,wBAAwB,GACpBuG,2BAA2B,CAACvG,wBAAwB,CAAA;CAExD,UAAA,IAAInF,UAAU,CAAC6B,uBAAuB,CAACqD,qBAAqB,CAAC,EAAE;CAC3DuG,YAAAA,qBAAqB,GAAG/E,WAAW,CAAA;CACvC,WAAA;CACJ,SAAC,MAAM;CACHxB,UAAAA,qBAAqB,GAAG,IAAI,CAACtG,iBAAiB,CAACjC,WAAW,CAAA;CAC1DwI,UAAAA,wBAAwB,GACpB,IAAI,CAACvG,iBAAiB,CAAC/B,cAAc,CAAA;CACzC4O,UAAAA,qBAAqB,GAAG/E,WAAW,CAAA;CACvC,SAAA;CAEA,QAAA,IAAI+E,qBAAqB,EAAE;WACvBF,wBAAwB,CAACI,uBAAuB,GAAG;CAC/CC,YAAAA,mBAAmB,EAAE;CACjB1G,cAAAA,qBAAqB,EAArBA,qBAAqB;CACrBC,cAAAA,wBAAwB,EAAxBA,wBAAwB;CACxBsG,cAAAA,qBAAqB,EAArBA,qBAAqB;CACrBI,cAAAA,8BAA8B,EAAE;CAC5B3F,gBAAAA,SAAS,EAAE,QAAQ;CACnBC,gBAAAA,sBAAsB,EAAE,KAAK;CAC7BC,gBAAAA,WAAW,EACP,6CAAA;CACR,eAAA;cACH;CACD0F,YAAAA,sBAAsB,EAAE;CACpB5F,cAAAA,SAAS,EAAE,QAAQ;CACnBC,cAAAA,sBAAsB,EAAE,KAAK;CAC7BC,cAAAA,WAAW,EAAE,cAAA;CACjB,aAAA;YACH,CAAA;CACL,SAAC,MAAM;WACHmF,wBAAwB,CAACI,uBAAuB,GAAG;CAC/CC,YAAAA,mBAAmB,EAAE;CACjB1G,cAAAA,qBAAqB,EAArBA,qBAAqB;CACrBC,cAAAA,wBAAwB,EAAxBA,wBAAwB;CACxB0G,cAAAA,8BAA8B,EAAE;CAC5B3F,gBAAAA,SAAS,EAAE,QAAQ;CACnBC,gBAAAA,sBAAsB,EAAE,KAAK;CAC7BC,gBAAAA,WAAW,EACP,6CAAA;CACR,eAAA;cACH;CACD0F,YAAAA,sBAAsB,EAAE;CACpB5F,cAAAA,SAAS,EAAE,QAAQ;CACnBC,cAAAA,sBAAsB,EAAE,KAAK;CAC7BC,cAAAA,WAAW,EAAE,cAAA;CACjB,aAAA;YACH,CAAA;CACL,SAAA;CAEAxG,QAAAA,gCAAgC,CAACjmB,IAAI,CAAC4xB,wBAAwB,CAAC,CAAA;CACnE,OAAA;CACJ,KAAA;CAAC,GAAA,EAAA;KAAAr6B,GAAA,EAAA,qBAAA;CAAAC,IAAAA,KAAA,EAED,SAAAu5B,mBAAoBN,CAAAA,OAAO,EAAE;CACzB,MAAA,IACI,CAACA,OAAO,CAAC2B,YAAY,IACrB,CAAC3B,OAAO,CAAC4B,qCAAqC,IAC9C,CAAC5B,OAAO,CAAC6B,iCAAiC,IAC1C,CAAC7B,OAAO,CAAC8B,oBAAoB,EAC/B;SACE,MAAM,IAAIl8B,KAAK,CAAA,mDAEf,CAAC,CAAA;CACL,OAAA;;CAEA;CACA;OACAo6B,OAAO,CAAC8B,oBAAoB,GACxB9B,OAAO,CAAC8B,oBAAoB,CAAChyB,WAAW,EAAE,CAAA;;CAE9C;OACA,QAAQkwB,OAAO,CAAC8B,oBAAoB;CAChC,QAAA,KAAK,WAAW,CAAA;CAChB,QAAA,KAAK,eAAe;CAChB,UAAA,IAAI,CAAC9B,OAAO,CAAC+B,oBAAoB,EAAE;aAC/B,MAAM,IAAIn8B,KAAK,CAAA,6GAGf,CAAC,CAAA;CACL,WAAA;CAEA,UAAA,MAAA;CACJ,QAAA,KAAK,QAAQ;CACT,UAAA,MAAA;CACJ,QAAA;WACI,MAAM,IAAIA,KAAK,CAAA6F,uBAAAA,CAAAA,MAAA,CACau0B,OAAO,CAAC8B,oBAAoB,EAAA,WAAA,CACxD,CAAC,CAAA;CACT,OAAA;;CAEA;;CAEA,MAAA,IAAMvC,eAAe,GAAG,IAAI,CAACtY,OAAO,CAACsY,eAAe,CAAA;CAEpD,MAAA,IAAMuC,oBAAoB,GAAG9B,OAAO,CAAC8B,oBAAoB,CAAA;CAEzD,MAAA,IAAME,qBAAqB,GAAG;SAC1BJ,qCAAqC,EACjC5B,OAAO,CAAC4B,qCAAqC;SACjDK,aAAa,EAAE,CAAC1C,eAAe,CAAC96B,MAAM,GAAG,CAAC,EAAE4G,QAAQ,EAAE;SACtDs2B,YAAY,EAAE3B,OAAO,CAAC2B,YAAY;CAClCG,QAAAA,oBAAoB,EAApBA,oBAAoB;SACpBI,6BAA6B,EACzBlC,OAAO,CAACkC,6BAA6B;SACzCL,iCAAiC,EAC7B7B,OAAO,CAAC6B,iCAAAA;QACf,CAAA;CAED,MAAA,IACIC,oBAAoB,KAAK,WAAW,IACpCA,oBAAoB,KAAK,eAAe,EAC1C;CACEE,QAAAA,qBAAqB,CAACD,oBAAoB,GACtC/B,OAAO,CAAC+B,oBAAoB,CAAA;CACpC,OAAA;CAEAxC,MAAAA,eAAe,CAAChwB,IAAI,CAACyyB,qBAAqB,CAAC,CAAA;OAE3C,OAAOA,qBAAqB,CAACC,aAAa,CAAA;CAC9C,KAAA;CAAC,GAAA,CAAA,CAAA,CAAA;CAAA,EAAA,OAAA5K,YAAA,CAAA;CAAA,CAAA,CAraqCtC,aAAa,CAAA;;CCLN,IAE5BoN,aAAa,0BAAAnN,eAAA,EAAA;GAAAxoB,SAAA,CAAA21B,aAAA,EAAAnN,eAAA,CAAA,CAAA;CAAA,EAAA,IAAAvoB,MAAA,GAAAC,YAAA,CAAAy1B,aAAA,CAAA,CAAA;GAC9B,SAAAA,aAAAA,CAAYhP,QAAQ,EAAgB;CAAA,IAAA,IAAdvmB,OAAO,GAAAC,SAAA,CAAApI,MAAA,GAAA,CAAA,IAAAoI,SAAA,CAAA,CAAA,CAAA,KAAAC,SAAA,GAAAD,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE,CAAA;CAAA1G,IAAAA,eAAA,OAAAg8B,aAAA,CAAA,CAAA;CAAA,IAAA,OAAA11B,MAAA,CAAAO,IAAA,CACxBmmB,IAAAA,EAAAA,QAAQ,EAAEvmB,OAAO,CAAA,CAAA;CAC3B,GAAA;;CAEA;CACA;CAAA/F,EAAAA,YAAA,CAAAs7B,aAAA,EAAA,CAAA;KAAAr7B,GAAA,EAAA,QAAA;KAAAC,KAAA,EACA,SAAA0tB,MAAAA,GAAS;CACLjd,MAAAA,IAAA,CAAAC,eAAA,CAAA0qB,aAAA,CAAAhrB,SAAA,mBAAAnK,IAAA,CAAA,IAAA,CAAA,CAAA;OAEA,IAAI,CAAC0nB,eAAe,CAAC;CACjB;CAAA,OACH,CAAC,CAAA;CAEF,MAAA,IAAI,CAACC,mBAAmB,CAAC,EAAE,CAAC,CAAA;CAChC,KAAA;CAAC,GAAA,CAAA,CAAA,CAAA;CAAA,EAAA,OAAAwN,aAAA,CAAA;CAAA,CAAA,CAfsCjP,cAAc,CAAA;;CCFI,IAExCkP,gBAAgB,0BAAApN,eAAA,EAAA;GAAAxoB,SAAA,CAAA41B,gBAAA,EAAApN,eAAA,CAAA,CAAA;CAAA,EAAA,IAAAvoB,MAAA,GAAAC,YAAA,CAAA01B,gBAAA,CAAA,CAAA;GACjC,SAAAA,gBAAAA,CAAYjP,QAAQ,EAAgB;CAAA,IAAA,IAAdvmB,OAAO,GAAAC,SAAA,CAAApI,MAAA,GAAA,CAAA,IAAAoI,SAAA,CAAA,CAAA,CAAA,KAAAC,SAAA,GAAAD,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE,CAAA;CAAA1G,IAAAA,eAAA,OAAAi8B,gBAAA,CAAA,CAAA;CAAA,IAAA,OAAA31B,MAAA,CAAAO,IAAA,CACxBmmB,IAAAA,EAAAA,QAAQ,EAAEvmB,OAAO,CAAA,CAAA;CAC3B,GAAA;;CAEA;CACA;CAAA/F,EAAAA,YAAA,CAAAu7B,gBAAA,EAAA,CAAA;KAAAt7B,GAAA,EAAA,QAAA;KAAAC,KAAA,EACA,SAAA0tB,MAAAA,GAAS;CACLjd,MAAAA,IAAA,CAAAC,eAAA,CAAA2qB,gBAAA,CAAAjrB,SAAA,mBAAAnK,IAAA,CAAA,IAAA,CAAA,CAAA;OAEA,IAAI,CAAC0nB,eAAe,CAAC;CACjBnC,QAAAA,WAAW,EAAE1e,mBAAmB,CAACoW,kBAAkB,CAACoY,UAAU;CAC9DpD,QAAAA,QAAQ,EAAE,IAAI;CACdqD,QAAAA,SAAS,EAAE,WAAA;CACf,OAAC,CAAC,CAAA;CAEF,MAAA,IAAI,CAAC3N,mBAAmB,CAAC,EAAE,CAAC,CAAA;CAChC,KAAA;CAAC,GAAA,CAAA,CAAA,CAAA;CAAA,EAAA,OAAAyN,gBAAA,CAAA;CAAA,CAAA,CAjByClP,cAAc,CAAA;;CCHjB,IAEtBqP,wBAAwB,gBAAA,YAAA;GACzC,SAAAA,wBAAAA,CAAYC,gBAAgB,EAAE;CAAAr8B,IAAAA,eAAA,OAAAo8B,wBAAA,CAAA,CAAA;KAC1B,IAAI,CAACC,gBAAgB,GAAGA,gBAAgB,CAAA;KAExC,IAAMC,2BAA2B,GAAG,EAAE,CAAA;KACtC,IAAMC,yCAAyC,GAAG,EAAE,CAAA;KAEpD,IAAI,CAACD,2BAA2B,GAAGA,2BAA2B,CAAA;KAC9D,IAAI,CAACC,yCAAyC,GAC1CA,yCAAyC,CAAA;KAE7C,IAAI,CAACC,kBAAkB,GAAG;CACtBC,MAAAA,gBAAgB,EAAE,iBAAiB;CACnCN,MAAAA,SAAS,EAAE,OAAO;CAClBO,MAAAA,uBAAuB,EAAE;CACrB/G,QAAAA,SAAS,EAAE,QAAQ;CACnBC,QAAAA,sBAAsB,EAAE,KAAK;CAC7BC,QAAAA,WAAW,EAAE,sBAAA;QAChB;CACD7d,MAAAA,UAAU,EAAE,iBAAA;MACf,CAAA;KAED,IAAI,CAAC2kB,OAAO,GAAG;CACXD,MAAAA,uBAAuB,EAAE;CACrB/G,QAAAA,SAAS,EAAE,QAAQ;CACnBC,QAAAA,sBAAsB,EAAE,KAAK;CAC7BC,QAAAA,WAAW,EAAE,4BAAA;QAChB;CACD+G,MAAAA,mBAAmB,EAAE,UAAU;CAC/BC,MAAAA,8BAA8B,EAAE,EAAE;CAClCC,MAAAA,cAAc,EAAE,UAAU;CAC1BC,MAAAA,gBAAgB,EAAE,YAAY;CAC9BC,MAAAA,wCAAwC,EAAE,EAAE;CAC5C7N,MAAAA,cAAc,EAAE,CAAC;CACjBoN,MAAAA,yCAAyC,EAAzCA,yCAAyC;CACzCU,MAAAA,kCAAkC,EAAE;CAChCrH,QAAAA,sBAAsB,EAAE,SAAS;CACjCsH,QAAAA,gBAAgB,EAAE,sBAAsB;CACxCC,QAAAA,mBAAmB,EAAE,GAAG;CACxBC,QAAAA,mCAAmC,EAC/B,oCAAA;QACP;CACDC,MAAAA,uBAAuB,EAAE;CACrBC,QAAAA,eAAe,EAAE,MAAM;CACvBC,QAAAA,kBAAkB,EAAE,MAAA;QACvB;CACDC,MAAAA,eAAe,EAAE,CACb;CACIf,QAAAA,gBAAgB,EAAE,iBAAiB;CACnCN,QAAAA,SAAS,EAAE,MAAM;SACjBO,uBAAuB,EAAE9zB,YAAY,CAAC;CAClC+sB,UAAAA,SAAS,EAAE,QAAQ;CACnBC,UAAAA,sBAAsB,EAAE,KAAK;CAC7BC,UAAAA,WAAW,EAAE,0CAAA;CACjB,SAAC,CAAC;SACF4H,mBAAmB,EAAE70B,YAAY,CAAC;CAC9B+sB,UAAAA,SAAS,EAAE,KAAK;CAChBC,UAAAA,sBAAsB,EAAE,SAAS;CACjCC,UAAAA,WAAW,EAAE,SAAA;CACjB,SAAC,CAAC;SACF2H,eAAe,EAAE50B,YAAY,CAAC;CAC1B6zB,UAAAA,gBAAgB,EAAE,iBAAiB;CACnCN,UAAAA,SAAS,EAAE,MAAM;WACjBO,uBAAuB,EAAE9zB,YAAY,CAAC;CAClC+sB,YAAAA,SAAS,EAAE,QAAQ;CACnBC,YAAAA,sBAAsB,EAAE,KAAK;CAC7BC,YAAAA,WAAW,EAAE,qBAAA;CACjB,WAAC,CAAC;WACF4H,mBAAmB,EAAE70B,YAAY,CAAC;CAC9B+sB,YAAAA,SAAS,EAAE,IAAI;CACfC,YAAAA,sBAAsB,EAAE,WAAW;CACnCC,YAAAA,WAAW,EAAE,eAAA;YAChB,CAAA;UACJ,CAAA;CACL,OAAC,EACD,IAAI,CAAC2G,kBAAkB,EACvB;CACIC,QAAAA,gBAAgB,EAAE,iBAAiB;CACnCN,QAAAA,SAAS,EAAE,MAAM;SACjBO,uBAAuB,EAAE9zB,YAAY,CAAC;CAClC+sB,UAAAA,SAAS,EAAE,QAAQ;CACnBC,UAAAA,sBAAsB,EAAE,KAAK;CAC7BC,UAAAA,WAAW,EAAE,oBAAA;CACjB,SAAC,CAAC;SACF4H,mBAAmB,EAAE70B,YAAY,CAAC;CAC9B+sB,UAAAA,SAAS,EAAE,GAAG;CACdC,UAAAA,sBAAsB,EAAE,SAAS;CACjCC,UAAAA,WAAW,EAAE,mBAAA;UAChB,CAAA;CACL,OAAC,EACD;CACI4G,QAAAA,gBAAgB,EAAE,UAAU;CAC5BN,QAAAA,SAAS,EAAE,WAAW;CACtBO,QAAAA,uBAAuB,EAAE;CACrB/G,UAAAA,SAAS,EAAE,QAAQ;CACnBC,UAAAA,sBAAsB,EAAE,KAAK;CAC7BC,UAAAA,WAAW,EAAE,eAAA;UAChB;CACD+G,QAAAA,mBAAmB,EAAE,UAAU;CAC/BY,QAAAA,eAAe,EAAE;CACbf,UAAAA,gBAAgB,EAAE,UAAU;CAC5BN,UAAAA,SAAS,EAAE,WAAW;CACtBO,UAAAA,uBAAuB,EAAE;CACrB/G,YAAAA,SAAS,EAAE,QAAQ;CACnBC,YAAAA,sBAAsB,EAAE,KAAK;CAC7BC,YAAAA,WAAW,EAAE,qBAAA;YAChB;CACD+G,UAAAA,mBAAmB,EAAE,UAAU;CAC/BY,UAAAA,eAAe,EAAElB,2BAAAA;CACrB,SAAA;QACH,CAAA;MAER,CAAA;CACL,GAAA;CAAC57B,EAAAA,YAAA,CAAA07B,wBAAA,EAAA,CAAA;KAAAz7B,GAAA,EAAA,UAAA;CAAAC,IAAAA,KAAA,EAED,SAAA88B,QAAA,GAAW,EAAC;CAAC,GAAA,EAAA;KAAA/8B,GAAA,EAAA,aAAA;CAAAC,IAAAA,KAAA,EAEb,SAAA+8B,WAAYC,CAAAA,iCAAiC,EAAgB;CAAA,MAAA,IAAdn3B,OAAO,GAAAC,SAAA,CAAApI,MAAA,GAAA,CAAA,IAAAoI,SAAA,CAAA,CAAA,CAAA,KAAAC,SAAA,GAAAD,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE,CAAA;OACvD,IAAID,OAAO,CAACuR,UAAU,EAAE;CACpB,QAAA,IAAI,CAACwkB,kBAAkB,CAACxkB,UAAU,GAAGvR,OAAO,CAACuR,UAAU,CAAA;CAC3D,OAAA;;CAEA;CACA,MAAA,IAAM6lB,wBAAwB,GAAG30B,KAAK,CAACC,OAAO,CAC1Cy0B,iCACJ,CAAC,GACKA,iCAAiC,GACjC,CAACA,iCAAiC,CAAC,CAAA;;CAEzC;CACA,MAAA,IAAI,CAACE,2BAA2B,CAACD,wBAAwB,EAAEp3B,OAAO,CAAC,CAAA;OAEnE,OAAO,IAAI,CAACk2B,OAAO,CAAA;CACvB,KAAA;CAAC,GAAA,EAAA;KAAAh8B,GAAA,EAAA,6BAAA;CAAAC,IAAAA,KAAA,EAED,SAAAk9B,2BAA4BD,CAAAA,wBAAwB,EAAgB;CAAA,MAAA,IAAdp3B,OAAO,GAAAC,SAAA,CAAApI,MAAA,GAAA,CAAA,IAAAoI,SAAA,CAAA,CAAA,CAAA,KAAAC,SAAA,GAAAD,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE,CAAA;CAC9D,MAAA,IACI61B,yCAAyC,GAEzC,IAAI,CAFJA,yCAAyC;SACzCD,2BAA2B,GAC3B,IAAI,CADJA,2BAA2B,CAAA;CAG/B,MAAA,IAAQyB,qCAAqC,GAAKt3B,OAAO,CAAjDs3B,qCAAqC,CAAA;OAE7C,IACIF,wBAAwB,CAACv/B,MAAM,GAAG,CAAC,IACnCy/B,qCAAqC,KAAKp3B,SAAS,EACrD;SACE,MAAM,IAAIlH,KAAK,CAAA6F,4CAAAA,CAAAA,MAAA,CACkCu4B,wBAAwB,CAACv/B,MAAM,EAAA,sFAAA,CAChF,CAAC,CAAA;CACL,OAAA;CAEA,MAAA,IAAQ0/B,wBAAwB,GAAK,IAAI,CAAC3B,gBAAgB,CAAlD2B,wBAAwB,CAAA;OAEhC,IAAI,CAACA,wBAAwB,EAAE;CAC3B,QAAA,OAAA;CACJ,OAAA;OAEA,IAAIR,eAAe,GAAG,EAAE,CAAA;CAExBQ,MAAAA,wBAAwB,CAACtuB,OAAO,CAAC,UAAAuuB,KAAK,EAAI;SACtCT,eAAe,GAAGA,eAAe,CAACl4B,MAAM,CAAC24B,KAAK,CAACN,WAAW,EAAE,CAAC,CAAA;CACjE,OAAC,CAAC,CAAA;OAEF,IAAMO,kBAAkB,GAAG,EAAE,CAAA;;CAE7B;CACA;CACA;CACAF,MAAAA,wBAAwB,CAACtuB,OAAO,CAAC,UAAAyuB,gBAAgB,EAAI;CACjDA,QAAAA,gBAAgB,CAACC,kBAAkB,CAAC1uB,OAAO,CAAC,UAAA2uB,WAAW,EAAI;CACvD,UAAA,IAAQzJ,wBAAwB,GAC5ByJ,WAAW,CAACC,qBAAqB,CAD7B1J,wBAAwB,CAAA;CAGhC,UAAA,IAAI,CAACsJ,kBAAkB,CAAC1wB,QAAQ,CAAConB,wBAAwB,CAAC,EAAE;aACxD0H,2BAA2B,CAAClzB,IAAI,CAAC;CAC7BqzB,cAAAA,gBAAgB,EAAE,UAAU;CAC5BN,cAAAA,SAAS,EAAE,OAAO;eAClBmC,qBAAqB,EAAED,WAAW,CAACC,qBAAAA;CACvC,aAAC,CAAC,CAAA;CAEF,YAAA,IAAIC,uBAAuB,CAAA;CAE3B,YAAA,IAAIV,wBAAwB,CAACv/B,MAAM,KAAK,CAAC,EAAE;CACvC;CACAigC,cAAAA,uBAAuB,GAAGV,wBAAwB,CAAC,CAAC,CAAC,CAAA;CACzD,aAAC,MAAM;CACH,cAAA,IAAMrV,iBAAiB,GACnBuV,qCAAqC,CACjCnJ,wBAAwB,CAC3B,CAAA;CAEL2J,cAAAA,uBAAuB,GAAGV,wBAAwB,CAACW,IAAI,CACnD,UAAAC,GAAG,EAAA;CAAA,gBAAA,OAAIA,GAAG,CAACjW,iBAAiB,KAAKA,iBAAiB,CAAA;CAAA,eACtD,CAAC,CAAA;CACL,aAAA;;CAEA;CACpB;CACA;CACA;CACA;aACoB+T,yCAAyC,CAACnzB,IAAI,CAAC;eAC3Cif,gBAAgB,EACZkW,uBAAuB,CAAClW,gBAAgB;CAC5CgM,cAAAA,wBAAwB,EAAE;iBACtB7L,iBAAiB,EACb+V,uBAAuB,CAAC/V,iBAAiB;iBAC7C8V,qBAAqB,EACjBD,WAAW,CAACC,qBAAAA;CACpB,eAAA;CACJ,aAAC,CAAC,CAAA;CAEFJ,YAAAA,kBAAkB,CAAC90B,IAAI,CAACwrB,wBAAwB,CAAC,CAAA;CACrD,WAAA;CACJ,SAAC,CAAC,CAAA;CACN,OAAC,CAAC,CAAA;CAEF,MAAA,IAAM8J,kBAAkB,GAAG;CACvBjC,QAAAA,gBAAgB,EAAE,UAAU;CAC5BN,QAAAA,SAAS,EAAE,WAAW;CACtBO,QAAAA,uBAAuB,EAAE;CACrB/G,UAAAA,SAAS,EAAE,QAAQ;CACnBC,UAAAA,sBAAsB,EAAE,KAAK;WAC7BC,WAAW,EAAE,sBAAsB;UACtC;;CACD+G,QAAAA,mBAAmB,EAAE,UAAU;CAC/BY,QAAAA,eAAe,EAAfA,eAAAA;QACH,CAAA;OAED,IAAI,CAACb,OAAO,CAACa,eAAe,CAACp0B,IAAI,CAACs1B,kBAAkB,CAAC,CAAA;CACzD,KAAA;CAAC,GAAA,CAAA,CAAA,CAAA;CAAA,EAAA,OAAAtC,wBAAA,CAAA;CAAA,CAAA,EAAA;;KCzOgBuC,uBAAuB,gBAAA,YAAA;GACxC,SAAAA,uBAAAA,CAAYP,kBAAkB,EAAE;CAAAp+B,IAAAA,eAAA,OAAA2+B,uBAAA,CAAA,CAAA;KAC5B,IAAI,CAACP,kBAAkB,GAAGA,kBAAkB,CAAA;CAChD,GAAA;CAAC19B,EAAAA,YAAA,CAAAi+B,uBAAA,EAAA,CAAA;KAAAh+B,GAAA,EAAA,aAAA;KAAAC,KAAA,EAED,SAAA+8B,WAAAA,GAAc;CAAA,MAAA,IAAAn3B,KAAA,GAAA,IAAA,CAAA;CACV,MAAA,IAAQ43B,kBAAkB,GAAK,IAAI,CAA3BA,kBAAkB,CAAA;;CAE1B;OACA,IAAIQ,iBAAiB,GAAG,EAAE,CAAA;CAE1BR,MAAAA,kBAAkB,CAAC1uB,OAAO,CAAC,UAAAmvB,iBAAiB,EAAI;CAC5CD,QAAAA,iBAAiB,CAACx1B,IAAI,CAClB5C,KAAI,CAACs4B,mBAAmB,CAACD,iBAAiB,CAAClB,WAAW,EAAE,CAC5D,CAAC,CAAA;CACL,OAAC,CAAC,CAAA;CAEF,MAAA,OAAOiB,iBAAiB,CAAA;CAC5B,KAAA;CAAC,GAAA,EAAA;KAAAj+B,GAAA,EAAA,qBAAA;CAAAC,IAAAA,KAAA,EAED,SAAAk+B,mBAAoBC,CAAAA,sBAAsB,EAAE;OACxC,OAAO;CACHtC,QAAAA,gBAAgB,EAAE,UAAU;CAC5BN,QAAAA,SAAS,EAAE,WAAW;CACtBO,QAAAA,uBAAuB,EAAE;CACrB/G,UAAAA,SAAS,EAAE,QAAQ;CACnBC,UAAAA,sBAAsB,EAAE,KAAK;CAC7BC,UAAAA,WAAW,EAAE,mBAAA;UAChB;CACD+G,QAAAA,mBAAmB,EAAE,UAAU;SAC/BY,eAAe,EAAAwB,kBAAA,CAAMD,sBAAsB,CAAA;QAC9C,CAAA;CACL,KAAA;CAAC,GAAA,CAAA,CAAA,CAAA;CAAA,EAAA,OAAAJ,uBAAA,CAAA;CAAA,CAAA,EAAA;;CChCL,IAAMM,OAAO,GAAG,SAAVA,OAAOA,CAAa7xB,CAAC,EAAE;GACzB,OAAOlE,KAAK,CAACC,OAAO,CAACiE,CAAC,CAAC,GAAGA,CAAC,GAAG,CAACA,CAAC,CAAC,CAAA;CACrC,CAAC,CAAA;CAED,IAAM8xB,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAGC,eAAe,EAAI;GACzC,OAAO,UAAAxB,WAAW,EAAI;CAClB,IAAA,OACIA,WAAW,CAACjB,uBAAuB,CAAC7G,WAAW,KAAKsJ,eAAe,CAAA;IAE1E,CAAA;CACL,CAAC,CAAA;CAED,IAAMC,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAGC,WAAW,EAAI;GACrC,OAAO,UAAA1B,WAAW,EAAI;CAClB,IAAA,OAAOA,WAAW,IAAIA,WAAW,CAAC2B,WAAW,KAAKD,WAAW,CAAA;IAChE,CAAA;CACL,CAAC;;CCPD,IAAME,SAAO,GAAG;CAAE3J,EAAAA,sBAAsB,EAAE,KAAK;CAAED,EAAAA,SAAS,EAAE,QAAA;CAAS,CAAC,CAAA;CACtE,IAAM6J,cAAY,GAAG;CAAE5J,EAAAA,sBAAsB,EAAE,KAAK;CAAED,EAAAA,SAAS,EAAE,WAAA;CAAY,CAAC,CAAA;CAC9E,IAAM8J,kBAAgB,GAAG;CAAE7J,EAAAA,sBAAsB,EAAE,KAAK;CAAED,EAAAA,SAAS,EAAE,QAAA;CAAS,CAAC,CAAA;CAE/E,IAAM+J,gBAAc,GAAG,SAAjBA,cAAcA,CAAIh2B,KAAK,EAAEi2B,IAAI,EAAEC,OAAO,EAAK;CAC7C,EAAA,IAAQlD,uBAAuB,GAAKhzB,KAAK,CAAjCgzB,uBAAuB,CAAA;GAC/B,IAAI,CAACA,uBAAuB,EAAE,OAAA;CAC9B,EAAA,IAAQ9G,sBAAsB,GAAgB8G,uBAAuB,CAA7D9G,sBAAsB;KAAED,SAAS,GAAK+G,uBAAuB,CAArC/G,SAAS,CAAA;GACzC,OACKC,sBAAsB,IAAI+J,IAAI,CAAC/J,sBAAsB,IAClDD,SAAS,IAAIgK,IAAI,CAAChK,SAAS,IAC9BiK,OAAO,IACJhK,sBAAsB,IAAIgK,OAAO,CAAChK,sBAAsB,IACxDD,SAAS,IAAIiK,OAAO,CAACjK,SAAU,CAAA;CAE3C,CAAC,CAAA;CAED,SAASkK,sBAAoBA,CACzBC,IAAI,EACJC,QAAQ,EACRzB,qBAAqB,EACrB0B,SAAS,EACX;CACE,EAAA,IAAM1wB,IAAI,GAAG0wB,SAAS,CAACC,gCAAgC,CAACH,IAAI,CAAC,CAAA;GAC7DxwB,IAAI,CAACgvB,qBAAqB,GAAGA,qBAAqB,CAAA;GAElD,IAAMO,iBAAiB,GAAG,IAAImB,SAAS,CAACE,oBAAoB,CAAC5wB,IAAI,CAAC,CAAA;CAElE,EAAA,OAAOuvB,iBAAiB,CAAA;CAC5B,CAAA;CAEA,SAASC,qBAAmBA,CAACiB,QAAQ,EAAEI,QAAQ,EAAE7B,qBAAqB,EAAE;CACpE,EAAA,IAAM8B,YAAY,GAAGD,QAAQ,CAACJ,QAAQ,CAAC,CAAA;CACvC,EAAA,IAAMC,SAAS,GACXK,mBAAiB,CAACC,qCAAqC,CAACP,QAAQ,CAAC,CAAA;CACrE,EAAA,IACI,CAACK,YAAY,IACb,CAACA,YAAY,CAAC5e,IAAI,IAClB,CAAC4e,YAAY,CAAC5e,IAAI,CAACljB,MAAM,IACzB,CAAC0hC,SAAS,EACZ;CACE,IAAA,OAAA;CACJ,GAAA;;CAEA;CACA;GACA,IAAMO,YAAY,GAAGH,YAAY,CAAC5e,IAAI,CAACvV,GAAG,CAAC,UAAA6zB,IAAI,EAAI;KAC/C,OAAOD,sBAAoB,CACvBC,IAAI,EACJC,QAAQ,EACRzB,qBAAqB,EACrB0B,SACJ,CAAC,CAAA;CACL,GAAC,CAAC,CAAA;CAEF,EAAA,OAAO,IAAIrB,uBAAuB,CAAC4B,YAAY,CAAC,CAAA;CACpD,CAAA;CAAC,IAEoBF,mBAAiB,gBAAA,YAAA;CAClC,EAAA,SAAAA,oBAAc;CAAArgC,IAAAA,eAAA,OAAAqgC,iBAAA,CAAA,CAAA;CAAC,GAAA;CAAC3/B,EAAAA,YAAA,CAAA2/B,iBAAA,EAAA,IAAA,EAAA,CAAA;KAAA1/B,GAAA,EAAA,yBAAA;CAAAC,IAAAA,KAAA,EAEhB,SAAA4/B,uBAA+BC,CAAAA,gBAAgB,EAAE;CAC7C,MAAA,IAAQjD,eAAe,GAAKiD,gBAAgB,CAApCjD,eAAe,CAAA;CAEvB,MAAA,IAAMkD,kBAAkB,GAAGzB,OAAO,CAACzB,eAAe,CAAC,CAAA;CACnD,MAAA,IAAMmD,YAAY,GAAGD,kBAAkB,CAAClC,IAAI,CAAC,UAAA90B,KAAK,EAAA;CAAA,QAAA,OAC9Cg2B,gBAAc,CAACh2B,KAAK,EAAE61B,SAAO,CAAC,CAAA;CAAA,OAClC,CAAC,CAAA;CACD,MAAA,IAAMqB,iBAAiB,GACnBF,kBAAkB,CAAC50B,MAAM,CAAC,UAAApC,KAAK,EAAA;CAAA,QAAA,OAC3Bg2B,gBAAc,CAACh2B,KAAK,EAAE81B,cAAY,EAAEC,kBAAgB,CAAC,CAAA;QACzD,CAAC,IAAI,EAAE,CAAA;CACX,MAAA,IAAMoB,QAAQ,GAAGH,kBAAkB,CAAClC,IAAI,CACpC,UAAA90B,KAAK,EAAA;CAAA,QAAA,OAAIA,KAAK,CAACyyB,SAAS,KAAK,KAAK,CAAA;CAAA,OACtC,CAAC,CAAA;CACD,MAAA,IAAM2E,WAAW,GAAG7B,OAAO,CAAC4B,QAAQ,CAACrD,eAAe,CAAC,CAACgB,IAAI,CACtD,UAAA90B,KAAK,EAAA;CAAA,QAAA,OAAIA,KAAK,CAACyyB,SAAS,KAAK,QAAQ,CAAA;CAAA,OACzC,CAAC,CAAA;CACD,MAAA,IAAQmC,qBAAqB,GAAKwC,WAAW,CAACtD,eAAe,CAArDc,qBAAqB,CAAA;CAC7B,MAAA,IAAQ1J,wBAAwB,GAC5B0J,qBAAqB,CADjB1J,wBAAwB;SAAEsG,qBAAqB,GACnDoD,qBAAqB,CADSpD,qBAAqB,CAAA;CAGvD,MAAA,IAAM6F,YAAY,GAAG;CACjBC,QAAAA,cAAc,EAAEpM,wBAAwB;SACxCqM,UAAU,EAAE/F,qBAAqB,IAAI,CAAC;CACtCgG,QAAAA,QAAQ,EAAE,IAAI;SACdC,OAAO,EAAER,YAAY,GACf/3B,YAAY,CAAC+3B,YAAY,CAAClD,mBAAmB,CAAC,GAC9C92B,SAAS;CACfy6B,QAAAA,YAAY,EAAER,iBAAiB,CAAC30B,GAAG,CAAC,UAAAo1B,GAAG,EAAI;CACvC,UAAA,OAAOz4B,YAAY,CAACy4B,GAAG,CAAC5D,mBAAmB,CAAC,CAAA;UAC/C,CAAA;QACJ,CAAA;OACD,IAAIsD,YAAY,CAACI,OAAO,EAAE;CACtBJ,QAAAA,YAAY,CAACO,WAAW,GAAGP,YAAY,CAACI,OAAO,CAACtL,WAAW,CAAA;CAC/D,OAAA;OACA,IAAM0L,WAAW,GACbR,YAAY,CAACK,YAAY,IAAIL,YAAY,CAACK,YAAY,CAAC,CAAC,CAAC,CAAA;CAC7D,MAAA,IAAIG,WAAW,EAAE;CACbR,QAAAA,YAAY,CAACS,QAAQ,GAChBD,WAAW,CAAC,CAAC,CAAC,IAAIA,WAAW,CAAC,CAAC,CAAC,CAAC1L,WAAW,IAC7C0L,WAAW,CAAC1L,WAAW,CAAA;CAC/B,OAAA;OACA,OAAO;CACHkL,QAAAA,YAAY,EAAZA,YAAY;CACZJ,QAAAA,YAAY,EAAZA,YAAY;CACZC,QAAAA,iBAAiB,EAAjBA,iBAAiB;CACjBC,QAAAA,QAAQ,EAARA,QAAQ;CACRC,QAAAA,WAAW,EAAXA,WAAW;CACXxC,QAAAA,qBAAqB,EAArBA,qBAAqB;CACrB1J,QAAAA,wBAAwB,EAAxBA,wBAAwB;CACxBsG,QAAAA,qBAAqB,EAArBA,qBAAAA;QACH,CAAA;CACL,KAAA;CAAC,GAAA,EAAA;KAAAv6B,GAAA,EAAA,gBAAA;KAAAC,KAAA,EAED,SAAA6gC,cAAsBC,CAAAA,SAAS,EAAEC,gBAAgB,EAAEl7B,OAAO,EAAE;CACxD;CACA;;OAEA,IAAIm7B,oBAAoB,GAAG,EAAE,CAAA;OAC7B,IAAMC,YAAY,GAAGt1B,MAAM,CAACoM,IAAI,CAAC+oB,SAAS,CAAC,CAAC,CAAC,CAAC,CAAA;OAC9C,IAAI,CAACG,YAAY,EAAE;CACf,QAAA,MAAM,IAAIpiC,KAAK,CAAC,2BAA2B,CAAC,CAAA;CAChD,OAAA;;CAEA;CACR;CACA;CACA;CACA;CACA;OACQ,IAAMqiC,mBAAmB,GAAGH,gBAAgB,CAACn5B,GAAG,CAC5C,qBAAqB,EACrBq5B,YACJ,CAAC,CAAA;;CAED;;CAEA;CACA;CACA;CACA,MAAA,IAAQzZ,gBAAgB,GAAwB0Z,mBAAmB,CAA3D1Z,gBAAgB;SAAEG,iBAAiB,GAAKuZ,mBAAmB,CAAzCvZ,iBAAiB,CAAA;;CAE3C;OACAhc,MAAM,CAACoM,IAAI,CAAC+oB,SAAS,CAAC,CAAChyB,OAAO,CAAC,UAAAqyB,OAAO,EAAI;SACtC,IAAMC,eAAe,GAAGL,gBAAgB,CAACn5B,GAAG,CACxC,iBAAiB,EACjBu5B,OACJ,CAAC,CAAA;SACD,IAAM5L,WAAW,GAAGwL,gBAAgB,CAACn5B,GAAG,CAAC,aAAa,EAAEu5B,OAAO,CAAC,CAAA;CAChE,QAAA,IAAM5B,QAAQ,GAAGuB,SAAS,CAACK,OAAO,CAAC,CAAA;CACnC,QAAA,IAAME,SAAS,GAAG11B,MAAM,CAACoM,IAAI,CAACwnB,QAAQ,CAAC,CAAA;CAEvC,QAAA,IAAM7B,qBAAqB,GAAG;WAC1B3J,qBAAqB,EAAEqN,eAAe,CAACpS,WAAW;WAClDgF,wBAAwB,EAAEoN,eAAe,CAACtZ,cAAAA;UAC7C,CAAA;SAED,IACI+G,UAAU,CAAC6B,uBAAuB,CAAC0Q,eAAe,CAACpS,WAAW,CAAC,EACjE;WACE0O,qBAAqB,CAACpD,qBAAqB,GAAG/E,WAAW,CAAA;CAC7D,SAAA;;CAEA;SACA,IAAMyI,iBAAiB,GAAG,EAAE,CAAA;CAE5BqD,QAAAA,SAAS,CAACvyB,OAAO,CAAC,UAAAqwB,QAAQ,EAAI;WAC1B,IAAMr2B,KAAK,GAAGo1B,qBAAmB,CAC7BiB,QAAQ,EACRI,QAAQ,EACR7B,qBACJ,CAAC,CAAA;CACD,UAAA,IAAI50B,KAAK,EAAE;CACPk1B,YAAAA,iBAAiB,CAACx1B,IAAI,CAACM,KAAK,CAAC,CAAA;CACjC,WAAA;CACJ,SAAC,CAAC,CAAA;CAEFk4B,QAAAA,oBAAoB,GAChBA,oBAAoB,CAACt8B,MAAM,CAACs5B,iBAAiB,CAAC,CAAA;CACtD,OAAC,CAAC,CAAA;CAEF,MAAA,IAAMyB,kBAAiB,GAAG,IAAIjE,wBAAwB,CAClD;CAAE4B,QAAAA,wBAAwB,EAAE4D,oBAAAA;QAAsB,EAClDn7B,OACJ,CAAC,CAAA;;CAED;CACA;CACA;CACA,MAAA,IAAMulB,+BAA+B,GAAG,IAAIvtB,UAAU,CAAC,CAAC,CAAC,CAAA;CACzDutB,MAAAA,+BAA+B,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;CAEtC,MAAA,IAAMuS,uBAAuB,GAAG;CAC5BlW,QAAAA,gBAAgB,EAAED,gBAAgB;CAClCI,QAAAA,iBAAiB,EAAED,iBAAAA;CACnB;CACA;QACH,CAAA;;CAED,MAAA,IAAM2D,KAAK,GAAG;CACVO,QAAAA,0BAA0B,EAAE;CACxB/K,UAAAA,KAAK,EAAE,CAACsK,+BAA+B,CAAC/rB,MAAM,CAAC;CAC/C2E,UAAAA,EAAE,EAAE,IAAA;UACP;CACD;CACA;CACAqnB,QAAAA,iBAAiB,EAAE;WACfvK,KAAK,EAAE,CAAC,qBAAqB,CAAC;CAC9B9c,UAAAA,EAAE,EAAE,IAAA;UACP;CACD4nB,QAAAA,sBAAsB,EAAE;CACpB9K,UAAAA,KAAK,EAAE,CAAChU,mBAAmB,CAACmP,GAAG,EAAE,CAAC;CAAE;CACpCjY,UAAAA,EAAE,EAAE,IAAA;UACP;CACD2nB,QAAAA,yBAAyB,EAAE;WACvB7K,KAAK,EAAE,CAAC,OAAO,CAAC;CAChB9c,UAAAA,EAAE,EAAE,IAAA;CACR,SAAA;QACH,CAAA;CAED,MAAA,IAAMud,MAAM,GAAG;CACXmN,QAAAA,SAAS,EAAE,IAAA;QACd,CAAA;OAEDiP,uBAAuB,CAACrS,KAAK,GAAGA,KAAK,CAAA;OACrCqS,uBAAuB,CAACpc,MAAM,GAAGA,MAAM,CAAA;OAEvC,IAAM+f,MAAM,GAAG,IAAIjG,gBAAgB,CAAC,CAACsC,uBAAuB,CAAC,CAAC,CAAA;CAE9D,MAAA,IAAMZ,WAAW,GAAG0C,kBAAiB,CAAC1C,WAAW,CAC7CY,uBACJ,CAAC,CAAA;;CAED;CACA2D,MAAAA,MAAM,CAACphB,OAAO,GAAGvU,MAAM,CAACC,MAAM,CAAC01B,MAAM,CAACphB,OAAO,EAAE6c,WAAW,CAAC,CAAA;CAC3DuE,MAAAA,MAAM,CAACphB,OAAO,CAACoL,KAAK,GAAGA,KAAK,CAAA;CAE5B,MAAA,OAAOgW,MAAM,CAAA;CACjB,KAAA;;CAEA;CACJ;CACA;CACA;CACA;CACA;CACA;CANI,GAAA,EAAA;KAAAvhC,GAAA,EAAA,mBAAA;CAAAC,IAAAA,KAAA,EAOA,SAAAuhC,iBAAyBrhB,CAAAA,OAAO,EAAc;CAAA,MAAA,IAAZshB,KAAK,GAAA17B,SAAA,CAAApI,MAAA,GAAA,CAAA,IAAAoI,SAAA,CAAA,CAAA,CAAA,KAAAC,SAAA,GAAAD,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE,CAAA;CACxC;CACA,MAAA,IAAIoa,OAAO,CAACuc,uBAAuB,CAACE,kBAAkB,KAAK,MAAM,EAAE;CAC/D,QAAA,MAAM,IAAI99B,KAAK,CACX,6DACJ,CAAC,CAAA;CACL,OAAA;OAEA,IAAM4iC,MAAM,GAAG,sBAAsB,CAAA;OACrC,IAAMC,KAAK,GAAG,mBAAmB,CAAA;OACjC,IAAMC,mBAAmB,GAAG,qBAAqB,CAAA;;CAEjD;CACA,MAAA,IAAMC,yBAAyB,GAAGvD,OAAO,CAACne,OAAO,CAAC0c,eAAe,CAAC,CAACgB,IAAI,CACnEU,iBAAiB,CAACmD,MAAM,CAC5B,CAAC,CAAA;;CAED;CACA,MAAA,IAAMzD,iBAAiB,GAAGK,OAAO,CAC7BuD,yBAAyB,CAAChF,eAC9B,CAAC,CAAC1xB,MAAM,CAACozB,iBAAiB,CAACoD,KAAK,CAAC,CAAC,CAAA;;CAElC;OACA,IAAMG,eAAe,GAAG,EAAE,CAAA;CAE1B,MAAA,IAAMC,sBAAsB,GACxBrC,iBAAiB,CAACsC,wCAAwC,CAAA;OAE9D,IAAMC,qBAAqB,GAAG,EAAE,CAAA;OAEhCr2B,MAAM,CAACoM,IAAI,CAAC+pB,sBAAsB,CAAC,CAAChzB,OAAO,CAAC,UAAA/O,GAAG,EAAI;CAC/CiiC,QAAAA,qBAAqB,CAACx5B,IAAI,CAACs5B,sBAAsB,CAAC/hC,GAAG,CAAC,CAAC,CAAA;CACvD8hC,QAAAA,eAAe,CAAC9hC,GAAG,CAAC,GAAG,EAAE,CAAA;CAC7B,OAAC,CAAC,CAAA;CAEFi+B,MAAAA,iBAAiB,CAAClvB,OAAO,CAAC,UAAAyuB,gBAAgB,EAAI;CAC1C,QAAA,IAAM0E,+BAA+B,GAAG5D,OAAO,CAC3Cd,gBAAgB,CAACX,eACrB,CAAC,CAAA;CAED,QAAA,IAAMsF,uBAAuB,GACzBD,+BAA+B,CAACrE,IAAI,CAChC,UAAAb,WAAW,EAAA;CAAA,UAAA,OACPA,WAAW,CAACjB,uBAAuB,CAAC7G,WAAW,KAC/C0M,mBAAmB,CAAA;CAAA,SAC3B,CAAC,CAAA;CAEL,QAAA,IAAMQ,uBAAuB,GAAGD,uBAAuB,CAACE,SAAS,CAAA;SAEjE,IAAMhD,SAAS,GAAGoC,KAAK,CAACa,YAAY,GAC9Bb,KAAK,CAACa,YAAY,CACd9E,gBAAgB,EAChBrd,OAAO,EACP8hB,qBACJ,CAAC,GACDA,qBAAqB,CAACpE,IAAI,CAAC,UAAA0E,EAAE,EAAA;CAAA,UAAA,OACzBA,EAAE,CAACC,oCAAoC,CACnCJ,uBACJ,CAAC,CAAA;CAAA,SACL,CAAC,CAAA;CAEP,QAAA,IAAI/C,SAAS,EAAE;CACX,UAAA,IAAM3B,WAAW,GACb2B,SAAS,CAACoD,kBAAkB,CAACjF,gBAAgB,CAAC,CAAA;WAElD3E,OAAO,CAACh8B,GAAG,CAAA8H,MAAAA,CAAAA,MAAA,CAAQ06B,SAAS,CAACD,QAAQ,EAAA,MAAA,CAAM,CAAC,CAAA;CAC5CvG,UAAAA,OAAO,CAACh8B,GAAG,CAAC6gC,WAAW,CAAC,CAAA;WAExBoE,eAAe,CAACzC,SAAS,CAACD,QAAQ,CAAC,CAAC32B,IAAI,CAACi1B,WAAW,CAAC,CAAA;CACzD,SAAA;CACJ,OAAC,CAAC,CAAA;;CAEF;CACA;CACA,MAAA,OAAOoE,eAAe,CAAA;CAC1B,KAAA;CAAC,GAAA,EAAA;KAAA9hC,GAAA,EAAA,cAAA;CAAAC,IAAAA,KAAA,EAED,SAAAyiC,YAAoBrD,CAAAA,SAAS,EAAE;OAC3BK,iBAAiB,CAACsC,wCAAwC,CACtD3C,SAAS,CAACsD,eAAe,CAC5B,GAAGtD,SAAS,CAAA;OACbK,iBAAiB,CAACC,qCAAqC,CACnDN,SAAS,CAACD,QAAQ,CACrB,GAAGC,SAAS,CAAA;OACbK,iBAAiB,CAACkD,uBAAuB,CAACvD,SAAS,CAACD,QAAQ,CAAC,GACzDC,SAAS,CAACsD,eAAe,CAAA;CACjC,KAAA;CAAC,GAAA,CAAA,CAAA,CAAA;CAAA,EAAA,OAAAjD,iBAAA,CAAA;CAAA,CAAA,EAAA,CAAA;AAGLA,oBAAiB,CAACkD,uBAAuB,GAAG,EAAE,CAAA;AAC9ClD,oBAAiB,CAACsC,wCAAwC,GAAG,EAAE,CAAA;AAC/DtC,oBAAiB,CAACC,qCAAqC,GAAG,EAAE;;CC3Vd,IAEzBzB,iBAAiB,gBAAA,YAAA;GAClC,SAAAA,iBAAAA,CAAY2E,KAAK,EAAE;CAAAxjC,IAAAA,eAAA,OAAA6+B,iBAAA,CAAA,CAAA;CACf,IAAA,IAAI,CAACP,qBAAqB,GAAGkF,KAAK,CAAClF,qBAAqB,CAAA;KACxD,IAAI,CAACkF,KAAK,GAAGA,KAAK,CAAA;CACtB,GAAA;CAAC9iC,EAAAA,YAAA,CAAAm+B,iBAAA,EAAA,CAAA;KAAAl+B,GAAA,EAAA,gBAAA;CAAAC,IAAAA,KAAA,EAED,SAAA6iC,cAAe1E,CAAAA,sBAAsB,EAAE;CACnC,MAAA,OAAA,EAAA,CAAAz5B,MAAA,CAAA05B,kBAAA,CACO,IAAI,CAAC0E,iBAAiB,EAAE,CAAA,EAAA1E,kBAAA,CACxB,IAAI,CAAC2E,eAAe,EAAE,CAAA,EAAA3E,kBAAA,CACtB,IAAI,CAAC4E,oBAAoB,EAAE,CAAA,EAAA5E,kBAAA,CAC3BD,sBAAsB,CAAA,CAAA,CAAA;CAEjC,KAAA;CAAC,GAAA,EAAA;KAAAp+B,GAAA,EAAA,mBAAA;KAAAC,KAAA,EAED,SAAA8iC,iBAAAA,GAAoB;CAChB,MAAA,IAAMG,2BAA2B,GAAK,IAAI,CAACL,KAAK,CAA1CK,2BAA2B,CAAA;CAEjC,MAAA,OAAO,CACH;CACIpH,QAAAA,gBAAgB,EAAE,iBAAiB;CACnCN,QAAAA,SAAS,EAAE,MAAM;CACjBO,QAAAA,uBAAuB,EAAE;CACrB/G,UAAAA,SAAS,EAAE,QAAQ;CACnBC,UAAAA,sBAAsB,EAAE,KAAK;CAC7BC,UAAAA,WAAW,EAAE,qBAAA;UAChB;SACDmN,SAAS,EAAEa,2BAA2B,IAAI,gBAAA;CAC9C,OAAC,EACD;CACIpH,QAAAA,gBAAgB,EAAE,iBAAiB;CACnCN,QAAAA,SAAS,EAAE,QAAQ;CACnBO,QAAAA,uBAAuB,EAAE;CACrB/G,UAAAA,SAAS,EAAE,QAAQ;CACnBC,UAAAA,sBAAsB,EAAE,KAAK;CAC7BC,UAAAA,WAAW,EAAE,4BAAA;UAChB;CACDiO,QAAAA,GAAG,EAAEp2B,mBAAmB,CAACmP,GAAG,EAAC;CACjC,OAAC,CACJ,CAAA;CACL,KAAA;CAAC,GAAA,EAAA;KAAAlc,GAAA,EAAA,iBAAA;KAAAC,KAAA,EAED,SAAA+iC,eAAAA,GAAkB;CACd,MAAA,IAAIxC,OAAO,GAAG,IAAI,CAACqC,KAAK,CAACrC,OAAO,CAAA;OAEhC,IAAI,CAACA,OAAO,EAAE;CACV,QAAA,OAAO,EAAE,CAAA;CACb,OAAA;CAEA,MAAA,IAAQxL,SAAS,GAA0CwL,OAAO,CAA1DxL,SAAS;SAAEC,sBAAsB,GAAkBuL,OAAO,CAA/CvL,sBAAsB;SAAEC,WAAW,GAAKsL,OAAO,CAAvBtL,WAAW,CAAA;CAEtD,MAAA,OAAO,CACH;CACI4G,QAAAA,gBAAgB,EAAE,UAAU;CAC5BN,QAAAA,SAAS,EAAE,MAAM;SACjBO,uBAAuB,EAAE9zB,YAAY,CAAC;CAClC+sB,UAAAA,SAAS,EAAE,QAAQ;CACnBC,UAAAA,sBAAsB,EAAE,KAAK;CAC7BC,UAAAA,WAAW,EAAE,SAAA;CACjB,SAAC,CAAC;SACF4H,mBAAmB,EAAE70B,YAAY,CAAC;CAC9B+sB,UAAAA,SAAS,EAATA,SAAS;CAAE;CACXC,UAAAA,sBAAsB,EAAtBA,sBAAsB;CAAE;WACxBC,WAAW,EAAXA,WAAW;UACd,CAAA;CACL,OAAC,CACJ,CAAA;CACL,KAAA;CAAC,GAAA,EAAA;KAAAl1B,GAAA,EAAA,sBAAA;KAAAC,KAAA,EAED,SAAAgjC,oBAAAA,GAAuB;OACnB,IAAIxC,YAAY,GAAG,IAAI,CAACoC,KAAK,CAACpC,YAAY,IAAI,EAAE,CAAA;CAEhD,MAAA,OAAOA,YAAY,CAACn1B,GAAG,CAAC,UAAAs1B,WAAW,EAAI;CACnC,QAAA,IAAQ5L,SAAS,GACb4L,WAAW,CADP5L,SAAS;WAAEC,sBAAsB,GACrC2L,WAAW,CADI3L,sBAAsB;WAAEC,WAAW,GAClD0L,WAAW,CAD4B1L,WAAW,CAAA;SAEtD,OAAO;CACH4G,UAAAA,gBAAgB,EAAE,UAAU;CAC5BN,UAAAA,SAAS,EAAE,MAAM;WACjBO,uBAAuB,EAAE9zB,YAAY,CAAC;CAClC+sB,YAAAA,SAAS,EAAE,WAAW;CACtBC,YAAAA,sBAAsB,EAAE,KAAK;CAC7BC,YAAAA,WAAW,EAAE,cAAA;CACjB,WAAC,CAAC;WACF4H,mBAAmB,EAAE70B,YAAY,CAAC;CAC9B+sB,YAAAA,SAAS,EAATA,SAAS;CAAE;CACXC,YAAAA,sBAAsB,EAAtBA,sBAAsB;CAAE;aACxBC,WAAW,EAAXA,WAAW;YACd,CAAA;UACJ,CAAA;CACL,OAAC,CAAC,CAAA;CACN,KAAA;CAAC,GAAA,CAAA,CAAA,CAAA;CAAA,EAAA,OAAAgJ,iBAAA,CAAA;CAAA,CAAA,EAAA;;CC3FL,IAAMkF,OAAO,GAAG;CACZpO,EAAAA,SAAS,EAAE,IAAI;CACfC,EAAAA,sBAAsB,EAAE,MAAM;CAC9BuH,EAAAA,mBAAmB,EAAE,KAAK;CAC1BtH,EAAAA,WAAW,EAAE,YAAA;CACjB,CAAC,CAAA;CAED,IAAMmO,QAAQ,GAAG;CACbrO,EAAAA,SAAS,EAAE,KAAK;CAChBC,EAAAA,sBAAsB,EAAE,MAAM;CAC9BuH,EAAAA,mBAAmB,EAAE,KAAK;CAC1BtH,EAAAA,WAAW,EAAE,kBAAA;CACjB,CAAC,CAAA;CAED,IAAMoO,OAAO,GAAG;CACZtO,EAAAA,SAAS,EAAE,GAAG;CACdC,EAAAA,sBAAsB,EAAE,MAAM;CAC9BuH,EAAAA,mBAAmB,EAAE,KAAK;CAC1BtH,EAAAA,WAAW,EAAE,IAAA;CACjB,CAAC,CAAA;CAED,IAAMqO,QAAQ,GAAGD,OAAO,CAAA;CAExB,IAAME,cAAc,GAAG;CACnBC,EAAAA,EAAE,EAAEH,OAAO;CACXI,EAAAA,EAAE,EAAEN,OAAO;CACXO,EAAAA,GAAG,EAAEN,QAAQ;CACb,EAAA,QAAQ,EAAEA,QAAQ;CAClB,EAAA,QAAQ,EAAEE,QAAAA;CACd,CAAC,CAAA;;CAED;CACA;CACA;CACA;CACA,IAAMK,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAGC,KAAK,EAAI;CAC9B,EAAA,IAAI,CAACA,KAAK,EAAE,OAAOP,OAAO,CAAA;CAC1B,EAAA,IAAMQ,KAAK,GAAGD,KAAK,CAACh2B,OAAO,CAAC,GAAG,CAAC,CAAA;CAChC,EAAA,IAAMk2B,QAAQ,GAAGD,KAAK,KAAK,CAAC,CAAC,GAAGD,KAAK,GAAGA,KAAK,CAACj5B,SAAS,CAAC,CAAC,EAAEk5B,KAAK,CAAC,CAAA;GACjE,IAAME,UAAU,GAAGR,cAAc,CAACK,KAAK,CAAC,IAAIL,cAAc,CAACO,QAAQ,CAAC,CAAA;GACpE,IAAI,CAACC,UAAU,EAAE;CACbnnC,IAAAA,GAAG,CAACyR,KAAK,CAAC,mBAAmB,EAAEu1B,KAAK,CAAC,CAAA;CACrC,IAAA,OAAOT,OAAO,CAAA;CAClB,GAAA;CACA,EAAA,OAAOY,UAAU,CAAA;CACrB,CAAC,CAAA;CAEDJ,gBAAgB,CAACJ,cAAc,GAAGA,cAAc;;CChDK,IAEhCS,QAAM,0BAAAC,kBAAA,EAAA;GAAAx+B,SAAA,CAAAu+B,MAAA,EAAAC,kBAAA,CAAA,CAAA;CAAA,EAAA,IAAAv+B,MAAA,GAAAC,YAAA,CAAAq+B,MAAA,CAAA,CAAA;CAAA,EAAA,SAAAA,MAAA,GAAA;CAAA5kC,IAAAA,eAAA,OAAA4kC,MAAA,CAAA,CAAA;CAAA,IAAA,OAAAt+B,MAAA,CAAAwJ,KAAA,CAAA,IAAA,EAAApJ,SAAA,CAAA,CAAA;CAAA,GAAA;CAAAhG,EAAAA,YAAA,CAAAkkC,MAAA,EAAA,CAAA;KAAAjkC,GAAA,EAAA,aAAA;KAAAC,KAAA,EACvB,SAAA+8B,WAAAA,GAAc;CACV,MAAA,IAAAmH,WAAA,GAMI,IAAI,CAACtB,KAAK;SALVuB,MAAM,GAAAD,WAAA,CAANC,MAAM;SACNC,MAAM,GAAAF,WAAA,CAANE,MAAM;SAAAC,gBAAA,GAAAH,WAAA,CACNI,IAAI;CAAJA,QAAAA,IAAI,GAAAD,gBAAA,KAAG,KAAA,CAAA,GAAA,IAAI,GAAAA,gBAAA;SACX7R,QAAQ,GAAA0R,WAAA,CAAR1R,QAAQ;SACRkL,qBAAqB,GAAAwG,WAAA,CAArBxG,qBAAqB,CAAA;CAGzB,MAAA,OAAO,IAAI,CAACmF,cAAc,CAAC,CACvB;CACIhH,QAAAA,gBAAgB,EAAE,UAAU;CAC5BN,QAAAA,SAAS,EAAE,KAAK;CAChBO,QAAAA,uBAAuB,EAAE;CACrB/G,UAAAA,SAAS,EAAE,QAAQ;CACnBC,UAAAA,sBAAsB,EAAE,KAAK;CAC7BC,UAAAA,WAAW,EAAE,QAAA;UAChB;CACDsP,QAAAA,qBAAqB,EAAE;CACnBC,UAAAA,4BAA4B,EAAEb,gBAAgB,CAACW,IAAI,CAAC;CACpDG,UAAAA,YAAY,EAAEjS,QAAAA;UACjB;CACDoK,QAAAA,eAAe,EAAE;CACbf,UAAAA,gBAAgB,EAAE,eAAe;CACjCN,UAAAA,SAAS,EAAE,QAAQ;CACnBmD,UAAAA,WAAW,EAAE,UAAU;CACvBgG,UAAAA,WAAW,EAAE,CAACP,MAAM,CAAC33B,CAAC,EAAE23B,MAAM,CAACQ,CAAC,EAAEP,MAAM,CAAC53B,CAAC,EAAE43B,MAAM,CAACO,CAAC,CAAC;CACrD/H,UAAAA,eAAe,EAAE;CACbf,YAAAA,gBAAgB,EAAE,eAAe;CACjCN,YAAAA,SAAS,EAAE,OAAO;CAClBmC,YAAAA,qBAAqB,EAArBA,qBAAAA;CACJ,WAAA;CACJ,SAAA;CACJ,OAAC,CACJ,CAAC,CAAA;CACN,KAAA;CAAC,GAAA,CAAA,CAAA,CAAA;CAAA,EAAA,OAAAsG,MAAA,CAAA;CAAA,CAAA,CApC+B/F,iBAAiB,CAAA;;ACHrD,yBAAe,yBAAyB;;CCKxC,IAAMx/B,QAAM,GAAG,QAAQ,CAAA;CAEO,IAExBulC,QAAM,gBAAA,YAAA;CACR,EAAA,SAAAA,SAAc;CAAA5kC,IAAAA,eAAA,OAAA4kC,MAAA,CAAA,CAAA;CAAC,GAAA;;CAEf;CAAAlkC,EAAAA,YAAA,CAAAkkC,MAAA,EAAA,IAAA,EAAA,CAAA;KAAAjkC,GAAA,EAAA,oBAAA;CAAAC,IAAAA,KAAA,EACA,SAAAwiC,kBAA0B3C,CAAAA,gBAAgB,EAAE;CACxC,MAAA,IAAA+E,qBAAA,GACInF,mBAAiB,CAACG,uBAAuB,CAACC,gBAAgB,CAAC;SADvDM,YAAY,GAAAyE,qBAAA,CAAZzE,YAAY;SAAEF,QAAQ,GAAA2E,qBAAA,CAAR3E,QAAQ;SAAEC,WAAW,GAAA0E,qBAAA,CAAX1E,WAAW,CAAA;CAG3C,MAAA,IAAM2E,KAAK,GAAAt5B,cAAA,CAAAA,cAAA,KACJ40B,YAAY,CAAA,EAAA,EAAA,EAAA;CACfziC,QAAAA,MAAM,EAAEuiC,QAAQ,CAACsE,qBAAqB,CAACE,YAAY;SACnDtF,QAAQ,EAAE6E,MAAM,CAAC7E,QAAQ;CACzB2F,QAAAA,OAAO,EAAE;WACLnhC,KAAK,EAAE,EAAE;WACTC,GAAG,EAAE,EAAE;CACPmhC,UAAAA,OAAO,EAAE;CACLC,YAAAA,QAAQ,EAAE,KAAK;CACfC,YAAAA,kBAAkB,EAAE,KAAK;CACzBC,YAAAA,kBAAkB,EAAE,IAAI;CACxBC,YAAAA,mBAAmB,EAAE,IAAI;CACzBC,YAAAA,cAAc,EAAE,IAAA;CACpB,WAAA;CACJ,SAAA;QACH,CAAA,CAAA;CAAC,MAAA,IAAAC,qBAAA,GAAAxyB,cAAA,CAOEqtB,WAAW,CAACwE,WAAW,EAAA,CAAA,CAAA,CAAA;CAJvBG,MAAAA,KAAK,CAACC,OAAO,CAACnhC,KAAK,CAAC6I,CAAC,GAAA64B,qBAAA,CAAA,CAAA,CAAA,CAAA;CACrBR,MAAAA,KAAK,CAACC,OAAO,CAACnhC,KAAK,CAACghC,CAAC,GAAAU,qBAAA,CAAA,CAAA,CAAA,CAAA;CACrBR,MAAAA,KAAK,CAACC,OAAO,CAAClhC,GAAG,CAAC4I,CAAC,GAAA64B,qBAAA,CAAA,CAAA,CAAA,CAAA;CACnBR,MAAAA,KAAK,CAACC,OAAO,CAAClhC,GAAG,CAAC+gC,CAAC,GAAAU,qBAAA,CAAA,CAAA,CAAA,CAAA;CAGvB,MAAA,OAAOR,KAAK,CAAA;CAChB,KAAA;CAAC,GAAA,EAAA;KAAA9kC,GAAA,EAAA,kCAAA;CAAAC,IAAAA,KAAA,EAED,SAAAq/B,gCAAwCH,CAAAA,IAAI,EAAE;CAC1C,MAAA,IAAQ4F,OAAO,GAA4B5F,IAAI,CAAvC4F,OAAO;SAAEvE,OAAO,GAAmBrB,IAAI,CAA9BqB,OAAO;SAAEC,YAAY,GAAKtB,IAAI,CAArBsB,YAAY,CAAA;CACtC,MAAA,IAAM2D,MAAM,GAAGW,OAAO,CAACnhC,KAAK,CAAA;CAC5B,MAAA,IAAMygC,MAAM,GAAGU,OAAO,CAAClhC,GAAG,CAAA;CAC1B,MAAA,IAAM4uB,QAAQ,GAAG0M,IAAI,CAACxhC,MAAM,CAAA;OAE5B,IAAMulC,2BAA2B,GAAG,gCAAgC,CAAA;OAEpE,OAAO;CACHkB,QAAAA,MAAM,EAANA,MAAM;CACNC,QAAAA,MAAM,EAANA,MAAM;CACN5R,QAAAA,QAAQ,EAARA,QAAQ;CACRyQ,QAAAA,2BAA2B,EAA3BA,2BAA2B;CAC3B1C,QAAAA,OAAO,EAAPA,OAAO;SACPC,YAAY,EAAEA,YAAY,IAAI,EAAA;QACjC,CAAA;CACL,KAAA;CAAC,GAAA,CAAA,CAAA,CAAA;CAAA,EAAA,OAAAwD,MAAA,CAAA;CAAA,CAAA,EAAA,CAAA;AAGLA,SAAM,CAAC7E,QAAQ,GAAG1gC,QAAM,CAAA;AACxBulC,SAAM,CAACtB,eAAe,GAAGjkC,QAAM,CAAA;AAC/BulC,SAAM,CAAC1E,oBAAoB,GAAGgG,QAAY,CAAA;AAC1CtB,SAAM,CAACzB,oCAAoC,GAAG,UAAAgD,kBAAkB,EAAI;CAChE,EAAA,IAAI,CAACA,kBAAkB,CAAC34B,QAAQ,CAAC,GAAG,CAAC,EAAE;CACnC,IAAA,OAAO,KAAK,CAAA;CAChB,GAAA;CAEA,EAAA,IAAA44B,qBAAA,GAAoCD,kBAAkB,CAACt6B,KAAK,CAAC,GAAG,CAAC;KAAAw6B,sBAAA,GAAA5yB,cAAA,CAAA2yB,qBAAA,EAAA,CAAA,CAAA;CAA1DE,IAAAA,eAAe,GAAAD,sBAAA,CAAA,CAAA,CAAA;CAAEtG,IAAAA,QAAQ,GAAAsG,sBAAA,CAAA,CAAA,CAAA,CAAA;GAEhC,IAAIC,eAAe,KAAKC,iBAAiB,EAAE;CACvC,IAAA,OAAO,KAAK,CAAA;CAChB,GAAA;GAEA,OAAOxG,QAAQ,KAAK1gC,QAAM,CAAA;CAC9B,CAAC,CAAA;AAEDghC,oBAAiB,CAACgD,YAAY,CAACuB,QAAM,CAAC;;CC7EtC;CACA;CACA;CACA;CACA;CACA;CACA;CACA,SAAS4B,cAAYA,CAACC,MAAM,EAAE;GAC1B,IAAMC,SAAS,GAAG,EAAE,CAAA;CAEpBD,EAAAA,MAAM,CAAC/2B,OAAO,CAAC,UAAAi3B,KAAK,EAAI;KACpBD,SAAS,CAACt9B,IAAI,CAACu9B,KAAK,CAAC,CAAC,CAAC,IAAIA,KAAK,CAACv5B,CAAC,CAAC,CAAA;KACnCs5B,SAAS,CAACt9B,IAAI,CAACu9B,KAAK,CAAC,CAAC,CAAC,IAAIA,KAAK,CAACpB,CAAC,CAAC,CAAA;CACnC,IAAA,IAAIoB,KAAK,CAAC,CAAC,CAAC,KAAKhgC,SAAS,IAAIggC,KAAK,CAACC,CAAC,KAAKjgC,SAAS,EAAE;OACjD+/B,SAAS,CAACt9B,IAAI,CAACu9B,KAAK,CAAC,CAAC,CAAC,IAAIA,KAAK,CAACC,CAAC,CAAC,CAAA;CACvC,KAAA;CACJ,GAAC,CAAC,CAAA;CAEF,EAAA,OAAOF,SAAS,CAAA;CACpB,CAAA;CAAC,IAEoBG,UAAQ,0BAAAhC,kBAAA,EAAA;GAAAx+B,SAAA,CAAAwgC,QAAA,EAAAhC,kBAAA,CAAA,CAAA;CAAA,EAAA,IAAAv+B,MAAA,GAAAC,YAAA,CAAAsgC,QAAA,CAAA,CAAA;CAAA,EAAA,SAAAA,QAAA,GAAA;CAAA7mC,IAAAA,eAAA,OAAA6mC,QAAA,CAAA,CAAA;CAAA,IAAA,OAAAvgC,MAAA,CAAAwJ,KAAA,CAAA,IAAA,EAAApJ,SAAA,CAAA,CAAA;CAAA,GAAA;CAAAhG,EAAAA,YAAA,CAAAmmC,QAAA,EAAA,CAAA;KAAAlmC,GAAA,EAAA,aAAA;KAAAC,KAAA,EACzB,SAAA+8B,WAAAA,GAAc;CACV,MAAA,IAAAmH,WAAA,GAQI,IAAI,CAACtB,KAAK;SAPViD,MAAM,GAAA3B,WAAA,CAAN2B,MAAM;SACNK,IAAI,GAAAhC,WAAA,CAAJgC,IAAI;SAAAC,oBAAA,GAAAjC,WAAA,CACJkC,QAAQ;CAARA,QAAAA,QAAQ,GAAAD,oBAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,oBAAA;SAChBzI,qBAAqB,GAAAwG,WAAA,CAArBxG,qBAAqB;SAAA2I,qBAAA,GAAAnC,WAAA,CACrBoC,uBAAuB;CAAvBA,QAAAA,uBAAuB,GAAAD,qBAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,qBAAA;SAC/BE,SAAS,GAAArC,WAAA,CAATqC,SAAS;SAAAlC,gBAAA,GAAAH,WAAA,CACTI,IAAI;CAAJA,QAAAA,IAAI,GAAAD,gBAAA,KAAG,KAAA,CAAA,GAAA,IAAI,GAAAA,gBAAA,CAAA;CAGf,MAAA,IAAMK,WAAW,GAAGkB,cAAY,CAACC,MAAM,CAAC,CAAA;;CAExC;CACA,MAAA,OAAO,IAAI,CAAChD,cAAc,CAAC,CACvB;CACIhH,QAAAA,gBAAgB,EAAE,UAAU;CAC5BN,QAAAA,SAAS,EAAE,KAAK;CAChBO,QAAAA,uBAAuB,EAAE;CACrB/G,UAAAA,SAAS,EAAE,WAAW;CACtBC,UAAAA,sBAAsB,EAAE,KAAK;CAC7BC,UAAAA,WAAW,EAAE,WAAA;UAChB;CACDsP,QAAAA,qBAAqB,EAAE;CACnBC,UAAAA,4BAA4B,EAAEb,gBAAgB,CAACW,IAAI,CAAC;CACpDG,UAAAA,YAAY,EAAE8B,SAAAA;UACjB;CACD3J,QAAAA,eAAe,EAAE;CACbf,UAAAA,gBAAgB,EAAE,eAAe;CACjCN,UAAAA,SAAS,EAAE+K,uBAAuB,GAAG,UAAU,GAAG,QAAQ;CAC1D5H,UAAAA,WAAW,EAAE,UAAU;CACvBgG,UAAAA,WAAW,EAAXA,WAAW;CACX9H,UAAAA,eAAe,EAAE0J,uBAAuB,GAClCvgC,SAAS,GACT;CACI81B,YAAAA,gBAAgB,EAAE,eAAe;CACjCN,YAAAA,SAAS,EAAE,OAAO;CAClBmC,YAAAA,qBAAqB,EAArBA,qBAAAA;CACJ,WAAA;CACV,SAAA;CACJ,OAAC,EACD;CACI;CACA7B,QAAAA,gBAAgB,EAAE,UAAU;CAC5BN,QAAAA,SAAS,EAAE,KAAK;CAChBO,QAAAA,uBAAuB,EAAE;CACrB/G,UAAAA,SAAS,EAAE,QAAQ;CACnBC,UAAAA,sBAAsB,EAAE,KAAK;WAC7BC,WAAW,EAAE,MAAM;UACtB;;CACDsP,QAAAA,qBAAqB,EAAE;CACnBC,UAAAA,4BAA4B,EAAEb,gBAAgB,CAACyC,QAAQ,CAAC;CACxD3B,UAAAA,YAAY,EAAEyB,IAAAA;UACjB;CACDtJ,QAAAA,eAAe,EAAE;CACbf,UAAAA,gBAAgB,EAAE,eAAe;CACjCN,UAAAA,SAAS,EAAE+K,uBAAuB,GAAG,UAAU,GAAG,QAAQ;CAC1D5H,UAAAA,WAAW,EAAE,UAAU;CACvBgG,UAAAA,WAAW,EAAXA,WAAW;CACX9H,UAAAA,eAAe,EAAE0J,uBAAuB,GAClCvgC,SAAS,GACT;CACI81B,YAAAA,gBAAgB,EAAE,eAAe;CACjCN,YAAAA,SAAS,EAAE,OAAO;CAClBmC,YAAAA,qBAAqB,EAArBA,qBAAAA;CACJ,WAAA;CACV,SAAA;CACJ,OAAC,CACJ,CAAC,CAAA;CACN,KAAA;CAAC,GAAA,CAAA,CAAA,CAAA;CAAA,EAAA,OAAAuI,QAAA,CAAA;CAAA,CAAA,CAtEiChI,iBAAiB,CAAA;;CCtBL,IAE5CuI,WAAW,gBAAA,YAAA;CACb,EAAA,SAAAA,cAAc;CAAApnC,IAAAA,eAAA,OAAAonC,WAAA,CAAA,CAAA;CAAC,GAAA;CAAC1mC,EAAAA,YAAA,CAAA0mC,WAAA,EAAA,IAAA,EAAA,CAAA;KAAAzmC,GAAA,EAAA,oBAAA;CAAAC,IAAAA,KAAA,EAEhB,SAAAwiC,kBAA0B3C,CAAAA,gBAAgB,EAAE;CACxC,MAAA,IAAA+E,qBAAA,GACInF,mBAAiB,CAACG,uBAAuB,CAACC,gBAAgB,CAAC;SADvDM,YAAY,GAAAyE,qBAAA,CAAZzE,YAAY;SAAED,WAAW,GAAA0E,qBAAA,CAAX1E,WAAW;SAAED,QAAQ,GAAA2E,qBAAA,CAAR3E,QAAQ,CAAA;CAG3C,MAAA,IAAM4E,KAAK,GAAAt5B,cAAA,CAAAA,cAAA,KACJ40B,YAAY,CAAA,EAAA,EAAA,EAAA;SACfhB,QAAQ,EAAEqH,WAAW,CAACrH,QAAQ;CAC9B2F,QAAAA,OAAO,EAAE;CACLe,UAAAA,MAAM,EAAE,EAAE;CACVd,UAAAA,OAAO,EAAE;CACL0B,YAAAA,MAAM,EAAE,KAAK;CACbzB,YAAAA,QAAQ,EAAE,KAAK;CACfC,YAAAA,kBAAkB,EAAE,KAAK;CACzBC,YAAAA,kBAAkB,EAAE,IAAI;CACxBC,YAAAA,mBAAmB,EAAE,IAAI;CACzBC,YAAAA,cAAc,EAAE,IAAA;CACpB,WAAA;UACH;CACDsB,QAAAA,WAAW,EAAE;WACTR,IAAI,EAAEjG,QAAQ,GAAGA,QAAQ,CAACsE,qBAAqB,CAACE,YAAY,GAAG,CAAA;UAClE;CACDkC,QAAAA,KAAK,EAAE5gC,SAAS;CAChB6gC,QAAAA,WAAW,EAAE,IAAA;QAChB,CAAA,CAAA;CACD,MAAA,IAAQlC,WAAW,GAAKxE,WAAW,CAA3BwE,WAAW,CAAA;CACnB,MAAA,KAAK,IAAI3mC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG2mC,WAAW,CAAChnC,MAAM,EAAEK,CAAC,IAAI,CAAC,EAAE;CAC5C8mC,QAAAA,KAAK,CAACC,OAAO,CAACe,MAAM,CAACr9B,IAAI,CAAC;CACtBgE,UAAAA,CAAC,EAAEk4B,WAAW,CAAC3mC,CAAC,CAAC;CACjB4mC,UAAAA,CAAC,EAAED,WAAW,CAAC3mC,CAAC,GAAG,CAAC,CAAA;CACxB,SAAC,CAAC,CAAA;CACN,OAAA;CAEA,MAAA,OAAO8mC,KAAK,CAAA;CAChB,KAAA;CAAC,GAAA,EAAA;KAAA9kC,GAAA,EAAA,kCAAA;CAAAC,IAAAA,KAAA,EAED,SAAAq/B,gCAAwCH,CAAAA,IAAI,EAAE;CAC1C,MAAA,IAAQ4F,OAAO,GAA8C5F,IAAI,CAAzD4F,OAAO;SAAEvE,OAAO,GAAqCrB,IAAI,CAAhDqB,OAAO;SAAEC,YAAY,GAAuBtB,IAAI,CAAvCsB,YAAY;SAAAqG,iBAAA,GAAuB3H,IAAI,CAAzBwH,WAAW;CAAXA,QAAAA,WAAW,GAAAG,iBAAA,KAAA,KAAA,CAAA,GAAG,EAAE,GAAAA,iBAAA,CAAA;CACxD,MAAA,IAAQhB,MAAM,GAAKf,OAAO,CAAlBe,MAAM,CAAA;CACd,MAAA,IAAAiB,iBAAA,GAAoCJ,WAAW,CAAvCR,IAAI;CAAJA,QAAAA,IAAI,GAAAY,iBAAA,KAAG,KAAA,CAAA,GAAA,CAAC,GAAAA,iBAAA;SAAAC,qBAAA,GAAoBL,WAAW,CAA7BH,SAAS;CAATA,QAAAA,SAAS,GAAAQ,qBAAA,KAAG,KAAA,CAAA,GAAA,CAAC,GAAAA,qBAAA,CAAA;OAE/B,IAAM9D,2BAA2B,GAC7B,qCAAqC,CAAA;OAEzC,OAAO;CACH4C,QAAAA,MAAM,EAANA,MAAM;CACNK,QAAAA,IAAI,EAAJA,IAAI;CACJK,QAAAA,SAAS,EAATA,SAAS;CACTtD,QAAAA,2BAA2B,EAA3BA,2BAA2B;CAC3B1C,QAAAA,OAAO,EAAPA,OAAO;SACPC,YAAY,EAAEA,YAAY,IAAI,EAAA;QACjC,CAAA;CACL,KAAA;CAAC,GAAA,CAAA,CAAA,CAAA;CAAA,EAAA,OAAAgG,WAAA,CAAA;CAAA,CAAA,EAAA,CAAA;CAGLA,WAAW,CAACrH,QAAQ,GAAG,aAAa,CAAA;CACpCqH,WAAW,CAAC9D,eAAe,GAAG,aAAa,CAAA;CAC3C8D,WAAW,CAAClH,oBAAoB,GAAG0H,UAAc,CAAA;CACjDR,WAAW,CAACjE,oCAAoC,GAAG,UAAAgD,kBAAkB,EAAI;CACrE,EAAA,IAAI,CAACA,kBAAkB,CAAC34B,QAAQ,CAAC,GAAG,CAAC,EAAE;CACnC,IAAA,OAAO,KAAK,CAAA;CAChB,GAAA;CAEA,EAAA,IAAA44B,qBAAA,GAAoCD,kBAAkB,CAACt6B,KAAK,CAAC,GAAG,CAAC;KAAAw6B,sBAAA,GAAA5yB,cAAA,CAAA2yB,qBAAA,EAAA,CAAA,CAAA;CAA1DE,IAAAA,eAAe,GAAAD,sBAAA,CAAA,CAAA,CAAA;CAAEtG,IAAAA,QAAQ,GAAAsG,sBAAA,CAAA,CAAA,CAAA,CAAA;GAEhC,IAAIC,eAAe,KAAKC,iBAAiB,EAAE;CACvC,IAAA,OAAO,KAAK,CAAA;CAChB,GAAA;CAEA,EAAA,OAAOxG,QAAQ,KAAKqH,WAAW,CAACrH,QAAQ,CAAA;CAC5C,CAAC,CAAA;AAEDM,oBAAiB,CAACgD,YAAY,CAAC+D,WAAW,CAAC;;CC5EU,IAEhCS,eAAa,0BAAAhD,kBAAA,EAAA;GAAAx+B,SAAA,CAAAwhC,aAAA,EAAAhD,kBAAA,CAAA,CAAA;CAAA,EAAA,IAAAv+B,MAAA,GAAAC,YAAA,CAAAshC,aAAA,CAAA,CAAA;CAAA,EAAA,SAAAA,aAAA,GAAA;CAAA7nC,IAAAA,eAAA,OAAA6nC,aAAA,CAAA,CAAA;CAAA,IAAA,OAAAvhC,MAAA,CAAAwJ,KAAA,CAAA,IAAA,EAAApJ,SAAA,CAAA,CAAA;CAAA,GAAA;CAAAhG,EAAAA,YAAA,CAAAmnC,aAAA,EAAA,CAAA;KAAAlnC,GAAA,EAAA,aAAA;KAAAC,KAAA,EAC9B,SAAA+8B,WAAAA,GAAc;CACV,MAAA,IAAAmH,WAAA,GAOI,IAAI,CAACtB,KAAK;SANVsE,QAAQ,GAAAhD,WAAA,CAARgD,QAAQ;SACRC,SAAS,GAAAjD,WAAA,CAATiD,SAAS;SACTC,cAAc,GAAAlD,WAAA,CAAdkD,cAAc;SACdC,eAAe,GAAAnD,WAAA,CAAfmD,eAAe;SACf/C,IAAI,GAAAJ,WAAA,CAAJI,IAAI;SACJ5G,qBAAqB,GAAAwG,WAAA,CAArBxG,qBAAqB,CAAA;CAGzB,MAAA,OAAO,IAAI,CAACmF,cAAc,CAAC,CACvB;CACIhH,QAAAA,gBAAgB,EAAE,UAAU;CAC5BN,QAAAA,SAAS,EAAE,KAAK;CAChBO,QAAAA,uBAAuB,EAAE;CACrB/G,UAAAA,SAAS,EAAE,QAAQ;CACnBC,UAAAA,sBAAsB,EAAE,KAAK;CAC7BC,UAAAA,WAAW,EAAE,WAAA;UAChB;CACDsP,QAAAA,qBAAqB,EAAE;CACnBC,UAAAA,4BAA4B,EAAEb,gBAAgB,CAACW,IAAI,CAAC;CACpDG,UAAAA,YAAY,EAAE2C,cAAAA;UACjB;CACDxK,QAAAA,eAAe,EAAE;CACbf,UAAAA,gBAAgB,EAAE,eAAe;CACjCN,UAAAA,SAAS,EAAE,QAAQ;CACnBmD,UAAAA,WAAW,EAAE,UAAU;WACvBgG,WAAW,EAAE,CACTwC,QAAQ,CAAC/C,MAAM,CAAC33B,CAAC,EACjB06B,QAAQ,CAAC/C,MAAM,CAACQ,CAAC,EACjBuC,QAAQ,CAAC9C,MAAM,CAAC53B,CAAC,EACjB06B,QAAQ,CAAC9C,MAAM,CAACO,CAAC,CACpB;CACD/H,UAAAA,eAAe,EAAE;CACbf,YAAAA,gBAAgB,EAAE,eAAe;CACjCN,YAAAA,SAAS,EAAE,OAAO;CAClBmC,YAAAA,qBAAqB,EAArBA,qBAAAA;CACJ,WAAA;CACJ,SAAA;CACJ,OAAC,EACD;CACI7B,QAAAA,gBAAgB,EAAE,UAAU;CAC5BN,QAAAA,SAAS,EAAE,KAAK;CAChBO,QAAAA,uBAAuB,EAAE;CACrB/G,UAAAA,SAAS,EAAE,QAAQ;CACnBC,UAAAA,sBAAsB,EAAE,KAAK;CAC7BC,UAAAA,WAAW,EAAE,YAAA;UAChB;CACDsP,QAAAA,qBAAqB,EAAE;CACnBC,UAAAA,4BAA4B,EAAEb,gBAAgB,CAACW,IAAI,CAAC;CACpDG,UAAAA,YAAY,EAAE4C,eAAAA;UACjB;CACDzK,QAAAA,eAAe,EAAE;CACbf,UAAAA,gBAAgB,EAAE,eAAe;CACjCN,UAAAA,SAAS,EAAE,QAAQ;CACnBmD,UAAAA,WAAW,EAAE,UAAU;WACvBgG,WAAW,EAAE,CACTyC,SAAS,CAAChD,MAAM,CAAC33B,CAAC,EAClB26B,SAAS,CAAChD,MAAM,CAACQ,CAAC,EAClBwC,SAAS,CAAC/C,MAAM,CAAC53B,CAAC,EAClB26B,SAAS,CAAC/C,MAAM,CAACO,CAAC,CACrB;CACD/H,UAAAA,eAAe,EAAE;CACbf,YAAAA,gBAAgB,EAAE,eAAe;CACjCN,YAAAA,SAAS,EAAE,OAAO;CAClBmC,YAAAA,qBAAqB,EAArBA,qBAAAA;CACJ,WAAA;CACJ,SAAA;CACJ,OAAC,CACJ,CAAC,CAAA;CACN,KAAA;CAAC,GAAA,CAAA,CAAA,CAAA;CAAA,EAAA,OAAAuJ,aAAA,CAAA;CAAA,CAAA,CAvEsChJ,iBAAiB,CAAA;;CCC5D,IAAMqJ,eAAa,GAAG,eAAe,CAAA;CACrC,IAAMC,WAAS,GAAG,WAAW,CAAA;CAC7B,IAAMC,YAAU,GAAG,YAAY,CAAA;CAC/B,IAAM7I,SAAO,GAAG,QAAQ,CAAA;CACxB,IAAMC,cAAY,GAAG,QAAQ,CAAA;CAAC,IAExBqI,eAAa,gBAAA,YAAA;CACf,EAAA,SAAAA,gBAAc;CAAA7nC,IAAAA,eAAA,OAAA6nC,aAAA,CAAA,CAAA;CAAC,GAAA;;CAEf;CAAAnnC,EAAAA,YAAA,CAAAmnC,aAAA,EAAA,IAAA,EAAA,CAAA;KAAAlnC,GAAA,EAAA,oBAAA;CAAAC,IAAAA,KAAA,EACA,SAAAwiC,kBAA0B3C,CAAAA,gBAAgB,EAAE;CAAA,MAAA,IAAA4H,MAAA,CAAA;CACxC,MAAA,IAAQ7K,eAAe,GAAKiD,gBAAgB,CAApCjD,eAAe,CAAA;OAEvB,IAAMmD,YAAY,GAAG1B,OAAO,CAACzB,eAAe,CAAC,CAACgB,IAAI,CAC9C,UAAA90B,KAAK,EAAA;CAAA,QAAA,OAAIA,KAAK,CAACgzB,uBAAuB,CAAC/G,SAAS,KAAK4J,SAAO,CAAA;CAAA,OAChE,CAAC,CAAA;OAED,IAAMqB,iBAAiB,GAAG3B,OAAO,CAACzB,eAAe,CAAC,CAAC1xB,MAAM,CACrD,UAAApC,KAAK,EAAA;CAAA,QAAA,OAAIA,KAAK,CAACgzB,uBAAuB,CAAC/G,SAAS,KAAK6J,cAAY,CAAA;CAAA,OACrE,CAAC,CAAA;OAED,IAAM8I,gBAAgB,GAAGrJ,OAAO,CAACzB,eAAe,CAAC,CAACgB,IAAI,CAClD,UAAA90B,KAAK,EAAA;CAAA,QAAA,OAAIA,KAAK,CAACgzB,uBAAuB,CAAC7G,WAAW,KAAKsS,WAAS,CAAA;CAAA,OACpE,CAAC,CAAA;CAED,MAAA,IAAMI,mBAAmB,GAAGtJ,OAAO,CAC/BqJ,gBAAgB,CAAC9K,eACrB,CAAC,CAACgB,IAAI,CAAC,UAAA90B,KAAK,EAAA;CAAA,QAAA,OAAIA,KAAK,CAACyyB,SAAS,KAAK,QAAQ,CAAA;QAAC,CAAA,CAAA;OAE7C,IAAMqM,iBAAiB,GAAGvJ,OAAO,CAACzB,eAAe,CAAC,CAACgB,IAAI,CACnD,UAAA90B,KAAK,EAAA;CAAA,QAAA,OAAIA,KAAK,CAACgzB,uBAAuB,CAAC7G,WAAW,KAAKuS,YAAU,CAAA;CAAA,OACrE,CAAC,CAAA;CAED,MAAA,IAAMK,oBAAoB,GAAGxJ,OAAO,CAChCuJ,iBAAiB,CAAChL,eACtB,CAAC,CAACgB,IAAI,CAAC,UAAA90B,KAAK,EAAA;CAAA,QAAA,OAAIA,KAAK,CAACyyB,SAAS,KAAK,QAAQ,CAAA;QAAC,CAAA,CAAA;CAE7C,MAAA,IAAQmC,qBAAqB,GAAKiK,mBAAmB,CAAC/K,eAAe,CAA7Dc,qBAAqB,CAAA;CAC7B,MAAA,IAAQ1J,wBAAwB,GAC5B0J,qBAAqB,CADjB1J,wBAAwB;SAAEsG,qBAAqB,GACnDoD,qBAAqB,CADSpD,qBAAqB,CAAA;;CAGvD;;OAEA,IAAMwN,eAAe,GAAGjkC,MAAM,CAC1B6jC,gBAAgB,CAACnD,qBAAqB,CAACE,YAC3C,CAAC,CAAA;OAED,IAAMsD,gBAAgB,GAAGlkC,MAAM,CAC3B+jC,iBAAiB,CAACrD,qBAAqB,CAACE,YAC5C,CAAC,CAAA;CAED,MAAA,IAAMuD,WAAW,GAAG;CAChBx7B,QAAAA,CAAC,EAAEjP,IAAI,CAAC0qC,GAAG,CACPN,mBAAmB,CAACjD,WAAW,CAAC,CAAC,CAAC,EAClCiD,mBAAmB,CAACjD,WAAW,CAAC,CAAC,CAAC,EAClCmD,oBAAoB,CAACnD,WAAW,CAAC,CAAC,CAAC,EACnCmD,oBAAoB,CAACnD,WAAW,CAAC,CAAC,CACtC,CAAC;CACDC,QAAAA,CAAC,EAAEpnC,IAAI,CAAC0qC,GAAG,CACPN,mBAAmB,CAACjD,WAAW,CAAC,CAAC,CAAC,EAClCiD,mBAAmB,CAACjD,WAAW,CAAC,CAAC,CAAC,EAClCmD,oBAAoB,CAACnD,WAAW,CAAC,CAAC,CAAC,EACnCmD,oBAAoB,CAACnD,WAAW,CAAC,CAAC,CACtC,CAAA;QACH,CAAA;OAED,IAAMG,KAAK,IAAA4C,MAAA,GAAA;CACPrH,QAAAA,cAAc,EAAEpM,wBAAwB;SACxCqM,UAAU,EAAE/F,qBAAqB,IAAI,CAAC;SACtC6E,QAAQ,EAAE8H,aAAa,CAAC9H,QAAQ;CAChCsH,QAAAA,MAAM,EAAE,KAAK;CACb3B,QAAAA,OAAO,EAAE;CACLnhC,UAAAA,KAAK,EAAE;CACH6I,YAAAA,CAAC,EAAEm7B,mBAAmB,CAACjD,WAAW,CAAC,CAAC,CAAC;CACrCC,YAAAA,CAAC,EAAEgD,mBAAmB,CAACjD,WAAW,CAAC,CAAC,CAAC;CACrCQ,YAAAA,kBAAkB,EAAE,KAAK;CACzBC,YAAAA,mBAAmB,EAAE,KAAK;CAC1BsB,YAAAA,MAAM,EAAE,KAAK;CACbyB,YAAAA,SAAS,EAAE,KAAK;CAChB56B,YAAAA,KAAK,EAAE,CAAA;YACV;CACD1J,UAAAA,GAAG,EAAE;CACD4I,YAAAA,CAAC,EAAEm7B,mBAAmB,CAACjD,WAAW,CAAC,CAAC,CAAC;CACrCC,YAAAA,CAAC,EAAEgD,mBAAmB,CAACjD,WAAW,CAAC,CAAC,CAAC;CACrCQ,YAAAA,kBAAkB,EAAE,KAAK;CACzBC,YAAAA,mBAAmB,EAAE,KAAK;CAC1BsB,YAAAA,MAAM,EAAE,KAAK;CACbyB,YAAAA,SAAS,EAAE,KAAK;CAChB56B,YAAAA,KAAK,EAAE,CAAA;YACV;CACD66B,UAAAA,kBAAkB,EAAE;CAChB37B,YAAAA,CAAC,EAAEq7B,oBAAoB,CAACnD,WAAW,CAAC,CAAC,CAAC;CACtCC,YAAAA,CAAC,EAAEkD,oBAAoB,CAACnD,WAAW,CAAC,CAAC,CAAC;CACtCQ,YAAAA,kBAAkB,EAAE,KAAK;CACzBC,YAAAA,mBAAmB,EAAE,KAAK;CAC1BsB,YAAAA,MAAM,EAAE,KAAK;CACbyB,YAAAA,SAAS,EAAE,KAAK;CAChB56B,YAAAA,KAAK,EAAE,CAAA;YACV;CACD86B,UAAAA,gBAAgB,EAAE;CACd57B,YAAAA,CAAC,EAAEq7B,oBAAoB,CAACnD,WAAW,CAAC,CAAC,CAAC;CACtCC,YAAAA,CAAC,EAAEkD,oBAAoB,CAACnD,WAAW,CAAC,CAAC,CAAC;CACtCQ,YAAAA,kBAAkB,EAAE,KAAK;CACzBC,YAAAA,mBAAmB,EAAE,KAAK;CAC1BsB,YAAAA,MAAM,EAAE,KAAK;CACbyB,YAAAA,SAAS,EAAE,KAAK;CAChB56B,YAAAA,KAAK,EAAE,CAAA;YACV;CACDy3B,UAAAA,OAAO,EAAE;CACLmD,YAAAA,SAAS,EAAE,KAAK;CAChBlD,YAAAA,QAAQ,EAAE,IAAI;CACdyB,YAAAA,MAAM,EAAE,KAAK;CACbxB,YAAAA,kBAAkB,EAAE,KAAK;CACzBC,YAAAA,kBAAkB,EAAE,IAAI;CACxBC,YAAAA,mBAAmB,EAAE,IAAI;CACzBC,YAAAA,cAAc,EAAE,IAAI;CACpB54B,YAAAA,CAAC,EAAEw7B,WAAW,CAACx7B,CAAC,GAAG,EAAE;CACrBm4B,YAAAA,CAAC,EAAEqD,WAAW,CAACrD,CAAC,GAAG,EAAA;CACvB,WAAA;UACH;CACDiC,QAAAA,WAAW,EAAE,KAAK;CAClByB,QAAAA,UAAU,EAAE,KAAK;CACjBP,QAAAA,eAAe,EAAfA,eAAe;CACfC,QAAAA,gBAAgB,EAAhBA,gBAAAA;CAAgB,OAAA,EAAAO,eAAA,CAAAb,MAAA,EACN,UAAA,EAAA,eAAe,GAAAa,eAAA,CAAAb,MAAA,EAAA,UAAA,EACf,eAAe,CAAAa,EAAAA,eAAA,CAAAb,MAAA,EAAA,SAAA,EAChB,IAAI,CAAAa,EAAAA,eAAA,CAAAb,MAAA,aACJ1H,YAAY,GACfA,YAAY,CAAClD,mBAAmB,GAChC92B,SAAS,CAAA,EAAAuiC,eAAA,CAAAb,MAAA,EACDzH,cAAAA,EAAAA,iBAAiB,CAAC30B,GAAG,CAAC,UAAAo1B,GAAG,EAAA;SAAA,OAAIA,GAAG,CAAC5D,mBAAmB,CAAA;QAAC,CAAA,CAAA,EAAA4K,MAAA,CACtE,CAAA;CAED,MAAA,OAAO5C,KAAK,CAAA;CAChB,KAAA;CAAC,GAAA,EAAA;KAAA9kC,GAAA,EAAA,kCAAA;CAAAC,IAAAA,KAAA,EAED,SAAAq/B,gCAAwCH,CAAAA,IAAI,EAAE;CAC1C,MAAA,IAAAqJ,aAAA,GACIrJ,IAAI,CAAC4F,OAAO;SADRnhC,KAAK,GAAA4kC,aAAA,CAAL5kC,KAAK;SAAEC,GAAG,GAAA2kC,aAAA,CAAH3kC,GAAG;SAAEukC,kBAAkB,GAAAI,aAAA,CAAlBJ,kBAAkB;SAAEC,gBAAgB,GAAAG,aAAA,CAAhBH,gBAAgB,CAAA;CAExD,MAAA,IAAQL,gBAAgB,GACpB7I,IAAI,CADA6I,gBAAgB;SAAED,eAAe,GACrC5I,IAAI,CADkB4I,eAAe;SAAEvH,OAAO,GAC9CrB,IAAI,CADmCqB,OAAO;SAAEC,YAAY,GAC5DtB,IAAI,CAD4CsB,YAAY,CAAA;OAGhE,IAAMyC,2BAA2B,GAC7B,uCAAuC,CAAA;OAE3C,OAAO;CACHiE,QAAAA,QAAQ,EAAE;CACN/C,UAAAA,MAAM,EAAExgC,KAAK;CACbygC,UAAAA,MAAM,EAAExgC,GAAAA;UACX;CACDujC,QAAAA,SAAS,EAAE;CACPhD,UAAAA,MAAM,EAAEgE,kBAAkB;CAC1B/D,UAAAA,MAAM,EAAEgE,gBAAAA;UACX;CACDhB,QAAAA,cAAc,EAAEU,eAAe;CAC/BT,QAAAA,eAAe,EAAEU,gBAAgB;CACjC9E,QAAAA,2BAA2B,EAA3BA,2BAA2B;CAC3B1C,QAAAA,OAAO,EAAEA,OAAO;SAChBC,YAAY,EAAEA,YAAY,IAAI,EAAA;QACjC,CAAA;CACL,KAAA;CAAC,GAAA,CAAA,CAAA,CAAA;CAAA,EAAA,OAAAyG,aAAA,CAAA;CAAA,CAAA,EAAA,CAAA;AAGLA,gBAAa,CAAC9H,QAAQ,GAAGmI,eAAa,CAAA;AACtCL,gBAAa,CAACvE,eAAe,GAAG4E,eAAa,CAAA;AAC7CL,gBAAa,CAAC3H,oBAAoB,GAAGkJ,eAAmB,CAAA;AACxDvB,gBAAa,CAAC1E,oCAAoC,GAAG,UAAAgD,kBAAkB,EAAI;CACvE,EAAA,IAAI,CAACA,kBAAkB,CAAC34B,QAAQ,CAAC,GAAG,CAAC,EAAE;CACnC,IAAA,OAAO,KAAK,CAAA;CAChB,GAAA;CAEA,EAAA,IAAA44B,qBAAA,GAAoCD,kBAAkB,CAACt6B,KAAK,CAAC,GAAG,CAAC;KAAAw6B,sBAAA,GAAA5yB,cAAA,CAAA2yB,qBAAA,EAAA,CAAA,CAAA;CAA1DE,IAAAA,eAAe,GAAAD,sBAAA,CAAA,CAAA,CAAA;CAAEtG,IAAAA,QAAQ,GAAAsG,sBAAA,CAAA,CAAA,CAAA,CAAA;GAEhC,IAAIC,eAAe,KAAKC,iBAAiB,EAAE;CACvC,IAAA,OAAO,KAAK,CAAA;CAChB,GAAA;GAEA,OAAOxG,QAAQ,KAAKmI,eAAa,CAAA;CACrC,CAAC,CAAA;AAED7H,oBAAiB,CAACgD,YAAY,CAACwE,eAAa,CAAC;;CCtL7C;CACA;CACA;CACA;CACA;CACA;CACA;CACA,SAASrB,cAAYA,CAACC,MAAM,EAAE;GAC1B,IAAMC,SAAS,GAAG,EAAE,CAAA;CAEpBD,EAAAA,MAAM,CAAC/2B,OAAO,CAAC,UAAAi3B,KAAK,EAAI;CACpBD,IAAAA,SAAS,CAACt9B,IAAI,CAACu9B,KAAK,CAACv5B,CAAC,CAAC,CAAA;CACvBs5B,IAAAA,SAAS,CAACt9B,IAAI,CAACu9B,KAAK,CAACpB,CAAC,CAAC,CAAA;CAC3B,GAAC,CAAC,CAAA;CAEF,EAAA,OAAOmB,SAAS,CAAA;CACpB,CAAA;CAAC,IAEoB2C,SAAO,0BAAAxE,kBAAA,EAAA;GAAAx+B,SAAA,CAAAgjC,OAAA,EAAAxE,kBAAA,CAAA,CAAA;CAAA,EAAA,IAAAv+B,MAAA,GAAAC,YAAA,CAAA8iC,OAAA,CAAA,CAAA;CAAA,EAAA,SAAAA,OAAA,GAAA;CAAArpC,IAAAA,eAAA,OAAAqpC,OAAA,CAAA,CAAA;CAAA,IAAA,OAAA/iC,MAAA,CAAAwJ,KAAA,CAAA,IAAA,EAAApJ,SAAA,CAAA,CAAA;CAAA,GAAA;CAAAhG,EAAAA,YAAA,CAAA2oC,OAAA,EAAA,CAAA;KAAA1oC,GAAA,EAAA,aAAA;KAAAC,KAAA,EACxB,SAAA+8B,WAAAA,GAAc;CACV,MAAA,IAAAmH,WAAA,GAA0D,IAAI,CAACtB,KAAK;SAA5DiD,MAAM,GAAA3B,WAAA,CAAN2B,MAAM;SAAEnI,qBAAqB,GAAAwG,WAAA,CAArBxG,qBAAqB;SAAEwI,IAAI,GAAAhC,WAAA,CAAJgC,IAAI;SAAEE,QAAQ,GAAAlC,WAAA,CAARkC,QAAQ,CAAA;CAErD,MAAA,IAAM1B,WAAW,GAAGkB,cAAY,CAACC,MAAM,CAAC,CAAA;CAExC,MAAA,OAAO,IAAI,CAAChD,cAAc,CAAC,CACvB;CACIhH,QAAAA,gBAAgB,EAAE,UAAU;CAC5BN,QAAAA,SAAS,EAAE,KAAK;CAChBO,QAAAA,uBAAuB,EAAE;CACrB/G,UAAAA,SAAS,EAAE,QAAQ;CACnBC,UAAAA,sBAAsB,EAAE,KAAK;CAC7BC,UAAAA,WAAW,EAAE,MAAA;UAChB;CACDsP,QAAAA,qBAAqB,EAAE;CACnBC,UAAAA,4BAA4B,EAAEb,gBAAgB,CAACyC,QAAQ,CAAC;CACxD3B,UAAAA,YAAY,EAAEyB,IAAAA;UACjB;CACDtJ,QAAAA,eAAe,EAAE;CACbf,UAAAA,gBAAgB,EAAE,eAAe;CACjCN,UAAAA,SAAS,EAAE,QAAQ;CACnBmD,UAAAA,WAAW,EAAE,SAAS;CACtBgG,UAAAA,WAAW,EAAXA,WAAW;CACX9H,UAAAA,eAAe,EAAE;CACbf,YAAAA,gBAAgB,EAAE,eAAe;CACjCN,YAAAA,SAAS,EAAE,OAAO;CAClBmC,YAAAA,qBAAqB,EAArBA,qBAAAA;CACJ,WAAA;CACJ,SAAA;CACJ,OAAC,CACJ,CAAC,CAAA;CACN,KAAA;CAAC,GAAA,CAAA,CAAA,CAAA;CAAA,EAAA,OAAA+K,OAAA,CAAA;CAAA,CAAA,CAhCgCxK,iBAAiB,CAAA;;CChBtD,IAAMyK,eAAa,GAAG,eAAe,CAAA;CAEP,IAExBC,aAAa,gBAAA,YAAA;CACf,EAAA,SAAAA,gBAAc;CAAAvpC,IAAAA,eAAA,OAAAupC,aAAA,CAAA,CAAA;CAAC,GAAA;;CAEf;CAAA7oC,EAAAA,YAAA,CAAA6oC,aAAA,EAAA,IAAA,EAAA,CAAA;KAAA5oC,GAAA,EAAA,oBAAA;CAAAC,IAAAA,KAAA,EACA,SAAAwiC,kBAA0B3C,CAAAA,gBAAgB,EAAE;CACxC,MAAA,IAAA+E,qBAAA,GACInF,mBAAiB,CAACG,uBAAuB,CAACC,gBAAgB,CAAC;SADvDM,YAAY,GAAAyE,qBAAA,CAAZzE,YAAY;SAAEF,QAAQ,GAAA2E,qBAAA,CAAR3E,QAAQ;SAAEC,WAAW,GAAA0E,qBAAA,CAAX1E,WAAW,CAAA;CAG3C,MAAA,IAAQwE,WAAW,GAAKxE,WAAW,CAA3BwE,WAAW,CAAA;OAEnB,IAAMkE,SAAS,GAAG,CACd;CAAEp8B,QAAAA,CAAC,EAAEk4B,WAAW,CAAC,CAAC,CAAC;SAAEC,CAAC,EAAED,WAAW,CAAC,CAAC,CAAA;CAAE,OAAC,EACxC;CAAEl4B,QAAAA,CAAC,EAAEk4B,WAAW,CAAC,CAAC,CAAC;SAAEC,CAAC,EAAED,WAAW,CAAC,CAAC,CAAA;CAAE,OAAC,CAC3C,CAAA;OACD,IAAMmE,SAAS,GAAG,CACd;CAAEr8B,QAAAA,CAAC,EAAEk4B,WAAW,CAAC,CAAC,CAAC;SAAEC,CAAC,EAAED,WAAW,CAAC,CAAC,CAAA;CAAE,OAAC,EACxC;CAAEl4B,QAAAA,CAAC,EAAEk4B,WAAW,CAAC,CAAC,CAAC;SAAEC,CAAC,EAAED,WAAW,CAAC,CAAC,CAAA;CAAE,OAAC,CAC3C,CAAA;;CAED;;OAEA,IAAMoE,eAAe,GAAGvrC,IAAI,CAACwrC,IAAI,CAC7BxrC,IAAI,CAACssB,GAAG,CAACgf,SAAS,CAAC,CAAC,CAAC,CAACr8B,CAAC,GAAGq8B,SAAS,CAAC,CAAC,CAAC,CAACr8B,CAAC,EAAE,CAAC,CAAC,GACxCjP,IAAI,CAACssB,GAAG,CAACgf,SAAS,CAAC,CAAC,CAAC,CAAClE,CAAC,GAAGkE,SAAS,CAAC,CAAC,CAAC,CAAClE,CAAC,EAAE,CAAC,CACnD,CAAC,CAAA;CAED,MAAA,IAAMqE,kBAAkB,GAAG;CACvBx8B,QAAAA,CAAC,EAAE,CAACq8B,SAAS,CAAC,CAAC,CAAC,CAACr8B,CAAC,GAAGq8B,SAAS,CAAC,CAAC,CAAC,CAACr8B,CAAC,IAAIs8B,eAAe;CACtDnE,QAAAA,CAAC,EAAE,CAACkE,SAAS,CAAC,CAAC,CAAC,CAAClE,CAAC,GAAGkE,SAAS,CAAC,CAAC,CAAC,CAAClE,CAAC,IAAImE,eAAAA;QAC1C,CAAA;CAED,MAAA,IAAMG,mBAAmB,GAAGH,eAAe,GAAG,CAAC,CAAA;;CAE/C;CACA,MAAA,IAAMI,OAAO,GAAG;CACZ18B,QAAAA,CAAC,EAAEo8B,SAAS,CAAC,CAAC,CAAC,CAACp8B,CAAC,GAAGw8B,kBAAkB,CAACx8B,CAAC,GAAGy8B,mBAAmB;SAC9DtE,CAAC,EAAEiE,SAAS,CAAC,CAAC,CAAC,CAACjE,CAAC,GAAGqE,kBAAkB,CAACrE,CAAC,GAAGsE,mBAAAA;QAC9C,CAAA;;CAED;CACA,MAAA,IAAME,OAAO,GAAG;CACZ38B,QAAAA,CAAC,EAAEo8B,SAAS,CAAC,CAAC,CAAC,CAACp8B,CAAC,GAAGw8B,kBAAkB,CAACx8B,CAAC,GAAGy8B,mBAAmB;SAC9DtE,CAAC,EAAEiE,SAAS,CAAC,CAAC,CAAC,CAACjE,CAAC,GAAGqE,kBAAkB,CAACrE,CAAC,GAAGsE,mBAAAA;QAC9C,CAAA;CACD,MAAA,IAAMpE,KAAK,GAAAt5B,cAAA,CAAAA,cAAA,KACJ40B,YAAY,CAAA,EAAA,EAAA,EAAA;SACfhB,QAAQ,EAAEwJ,aAAa,CAACxJ,QAAQ;CAChCsH,QAAAA,MAAM,EAAE,KAAK;CACbC,QAAAA,WAAW,EAAE;WACTR,IAAI,EAAEjG,QAAQ,GAAGA,QAAQ,CAACsE,qBAAqB,CAACE,YAAY,GAAG,CAAA;UAClE;CACDK,QAAAA,OAAO,EAAE;CACLlhC,UAAAA,GAAG,EAAE;aACD4I,CAAC,EAAE08B,OAAO,CAAC18B,CAAC;aACZm4B,CAAC,EAAEuE,OAAO,CAACvE,CAAC;CACZuD,YAAAA,SAAS,EAAE,KAAK;CAChBzB,YAAAA,MAAM,EAAE,KAAA;YACX;CACD2C,UAAAA,eAAe,EAAE,CAAC;CAClBzlC,UAAAA,KAAK,EAAE;aACH6I,CAAC,EAAE28B,OAAO,CAAC38B,CAAC;aACZm4B,CAAC,EAAEwE,OAAO,CAACxE,CAAC;CACZuD,YAAAA,SAAS,EAAE,KAAK;CAChBzB,YAAAA,MAAM,EAAE,KAAA;YACX;CACD1B,UAAAA,OAAO,EAAE;CACLC,YAAAA,QAAQ,EAAE,KAAK;CACfC,YAAAA,kBAAkB,EAAE,KAAK;CACzBC,YAAAA,kBAAkB,EAAE,IAAI;CACxBC,YAAAA,mBAAmB,EAAE,IAAI;CACzBC,YAAAA,cAAc,EAAE,IAAA;CACpB,WAAA;UACH;CACDwB,QAAAA,WAAW,EAAE,IAAI;CACjByC,QAAAA,OAAO,EAAE,IAAA;QACZ,CAAA,CAAA;CAED,MAAA,OAAOxE,KAAK,CAAA;CAChB,KAAA;CAAC,GAAA,EAAA;KAAA9kC,GAAA,EAAA,kCAAA;CAAAC,IAAAA,KAAA,EAED,SAAAq/B,gCAAwCH,CAAAA,IAAI,EAAE;CAC1C,MAAA,IAAA2H,iBAAA,GAA6D3H,IAAI,CAAzDwH,WAAW;CAAXA,QAAAA,WAAW,GAAAG,iBAAA,KAAA,KAAA,CAAA,GAAG,EAAE,GAAAA,iBAAA;SAAE/B,OAAO,GAA4B5F,IAAI,CAAvC4F,OAAO;SAAEvE,OAAO,GAAmBrB,IAAI,CAA9BqB,OAAO;SAAEC,YAAY,GAAKtB,IAAI,CAArBsB,YAAY,CAAA;CACxD,MAAA,IAAQ78B,KAAK,GAAUmhC,OAAO,CAAtBnhC,KAAK;SAAEC,GAAG,GAAKkhC,OAAO,CAAflhC,GAAG,CAAA;CAClB,MAAA,IAAQsiC,IAAI,GAAKQ,WAAW,CAApBR,IAAI,CAAA;CAEZ,MAAA,IAAMoD,WAAW,GAAG/rC,IAAI,CAAC6X,GAAG,CAACzR,KAAK,CAAC6I,CAAC,GAAG5I,GAAG,CAAC4I,CAAC,CAAC,GAAG,CAAC,CAAA;CACjD,MAAA,IAAM+8B,WAAW,GAAGhsC,IAAI,CAAC6X,GAAG,CAACzR,KAAK,CAACghC,CAAC,GAAG/gC,GAAG,CAAC+gC,CAAC,CAAC,GAAG,CAAC,CAAA;OAEjD,IAAMkB,MAAM,GAAG,EAAE,CAAA;CAEjB,MAAA,IAAMzP,MAAM,GAAG;SAAE5pB,CAAC,EAAE,CAAC7I,KAAK,CAAC6I,CAAC,GAAG5I,GAAG,CAAC4I,CAAC,IAAI,CAAC;SAAEm4B,CAAC,EAAE,CAAChhC,KAAK,CAACghC,CAAC,GAAG/gC,GAAG,CAAC+gC,CAAC,IAAI,CAAA;QAAG,CAAA;OAErE,IAAI2E,WAAW,GAAGC,WAAW,EAAE;CAC3B;CACA;SACA1D,MAAM,CAACr9B,IAAI,CAAC;CAAEgE,UAAAA,CAAC,EAAE4pB,MAAM,CAAC5pB,CAAC,GAAG88B,WAAW;WAAE3E,CAAC,EAAEvO,MAAM,CAACuO,CAAAA;CAAE,SAAC,CAAC,CAAA;SACvDkB,MAAM,CAACr9B,IAAI,CAAC;CAAEgE,UAAAA,CAAC,EAAE4pB,MAAM,CAAC5pB,CAAC,GAAG88B,WAAW;WAAE3E,CAAC,EAAEvO,MAAM,CAACuO,CAAAA;CAAE,SAAC,CAAC,CAAA;CACvD;SACAkB,MAAM,CAACr9B,IAAI,CAAC;WAAEgE,CAAC,EAAE4pB,MAAM,CAAC5pB,CAAC;CAAEm4B,UAAAA,CAAC,EAAEvO,MAAM,CAACuO,CAAC,GAAG4E,WAAAA;CAAY,SAAC,CAAC,CAAA;SACvD1D,MAAM,CAACr9B,IAAI,CAAC;WAAEgE,CAAC,EAAE4pB,MAAM,CAAC5pB,CAAC;CAAEm4B,UAAAA,CAAC,EAAEvO,MAAM,CAACuO,CAAC,GAAG4E,WAAAA;CAAY,SAAC,CAAC,CAAA;CAC3D,OAAC,MAAM;CACH;CACA;SACA1D,MAAM,CAACr9B,IAAI,CAAC;WAAEgE,CAAC,EAAE4pB,MAAM,CAAC5pB,CAAC;CAAEm4B,UAAAA,CAAC,EAAEvO,MAAM,CAACuO,CAAC,GAAG4E,WAAAA;CAAY,SAAC,CAAC,CAAA;SACvD1D,MAAM,CAACr9B,IAAI,CAAC;WAAEgE,CAAC,EAAE4pB,MAAM,CAAC5pB,CAAC;CAAEm4B,UAAAA,CAAC,EAAEvO,MAAM,CAACuO,CAAC,GAAG4E,WAAAA;CAAY,SAAC,CAAC,CAAA;CACvD;SACA1D,MAAM,CAACr9B,IAAI,CAAC;CAAEgE,UAAAA,CAAC,EAAE4pB,MAAM,CAAC5pB,CAAC,GAAG88B,WAAW;WAAE3E,CAAC,EAAEvO,MAAM,CAACuO,CAAAA;CAAE,SAAC,CAAC,CAAA;SACvDkB,MAAM,CAACr9B,IAAI,CAAC;CAAEgE,UAAAA,CAAC,EAAE4pB,MAAM,CAAC5pB,CAAC,GAAG88B,WAAW;WAAE3E,CAAC,EAAEvO,MAAM,CAACuO,CAAAA;CAAE,SAAC,CAAC,CAAA;CAC3D,OAAA;OAEA,IAAM1B,2BAA2B,GAC7B,uCAAuC,CAAA;OAE3C,OAAO;CACHiD,QAAAA,IAAI,EAAJA,IAAI;CACJL,QAAAA,MAAM,EAANA,MAAM;CACN5C,QAAAA,2BAA2B,EAA3BA,2BAA2B;CAC3B1C,QAAAA,OAAO,EAAPA,OAAO;SACPC,YAAY,EAAEA,YAAY,IAAI,EAAA;QACjC,CAAA;CACL,KAAA;CAAC,GAAA,CAAA,CAAA,CAAA;CAAA,EAAA,OAAAmI,aAAA,CAAA;CAAA,CAAA,EAAA,CAAA;CAGLA,aAAa,CAACxJ,QAAQ,GAAGuJ,eAAa,CAAA;CACtCC,aAAa,CAACjG,eAAe,GAAGgG,eAAa,CAAA;CAC7CC,aAAa,CAACrJ,oBAAoB,GAAGkK,SAAa,CAAA;CAClDb,aAAa,CAACpG,oCAAoC,GAAG,UAAAgD,kBAAkB,EAAI;CACvE,EAAA,IAAI,CAACA,kBAAkB,CAAC34B,QAAQ,CAAC,GAAG,CAAC,EAAE;CACnC,IAAA,OAAO,KAAK,CAAA;CAChB,GAAA;CAEA,EAAA,IAAA44B,qBAAA,GAAoCD,kBAAkB,CAACt6B,KAAK,CAAC,GAAG,CAAC;KAAAw6B,sBAAA,GAAA5yB,cAAA,CAAA2yB,qBAAA,EAAA,CAAA,CAAA;CAA1DE,IAAAA,eAAe,GAAAD,sBAAA,CAAA,CAAA,CAAA;CAAEtG,IAAAA,QAAQ,GAAAsG,sBAAA,CAAA,CAAA,CAAA,CAAA;GAEhC,IAAIC,eAAe,KAAKC,iBAAiB,EAAE;CACvC,IAAA,OAAO,KAAK,CAAA;CAChB,GAAA;GAEA,OAAOxG,QAAQ,KAAKuJ,eAAa,CAAA;CACrC,CAAC,CAAA;AAEDjJ,oBAAiB,CAACgD,YAAY,CAACkG,aAAa,CAAC;;CClJ7C;CACA;CACA;CACA;CACA;CACA;CACA;CACA,SAAS/C,cAAYA,CAACC,MAAM,EAAE;GAC1B,IAAMC,SAAS,GAAG,EAAE,CAAA;CAEpBD,EAAAA,MAAM,CAAC/2B,OAAO,CAAC,UAAAi3B,KAAK,EAAI;CACpBD,IAAAA,SAAS,CAACt9B,IAAI,CAACu9B,KAAK,CAACv5B,CAAC,CAAC,CAAA;CACvBs5B,IAAAA,SAAS,CAACt9B,IAAI,CAACu9B,KAAK,CAACpB,CAAC,CAAC,CAAA;CAC3B,GAAC,CAAC,CAAA;CAEF,EAAA,OAAOmB,SAAS,CAAA;CACpB,CAAA;CAAC,IAEoB2D,QAAM,0BAAAxF,kBAAA,EAAA;GAAAx+B,SAAA,CAAAgkC,MAAA,EAAAxF,kBAAA,CAAA,CAAA;CAAA,EAAA,IAAAv+B,MAAA,GAAAC,YAAA,CAAA8jC,MAAA,CAAA,CAAA;CAAA,EAAA,SAAAA,MAAA,GAAA;CAAArqC,IAAAA,eAAA,OAAAqqC,MAAA,CAAA,CAAA;CAAA,IAAA,OAAA/jC,MAAA,CAAAwJ,KAAA,CAAA,IAAA,EAAApJ,SAAA,CAAA,CAAA;CAAA,GAAA;CAAAhG,EAAAA,YAAA,CAAA2pC,MAAA,EAAA,CAAA;KAAA1pC,GAAA,EAAA,aAAA;KAAAC,KAAA,EACvB,SAAA+8B,WAAAA,GAAc;CACV,MAAA,IAAAmH,WAAA,GAQI,IAAI,CAACtB,KAAK;SAPViD,MAAM,GAAA3B,WAAA,CAAN2B,MAAM;SACNnI,qBAAqB,GAAAwG,WAAA,CAArBxG,qBAAqB;SAAA2I,qBAAA,GAAAnC,WAAA,CACrBoC,uBAAuB;CAAvBA,QAAAA,uBAAuB,GAAAD,qBAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,qBAAA;SAC/BE,SAAS,GAAArC,WAAA,CAATqC,SAAS;SACTL,IAAI,GAAAhC,WAAA,CAAJgC,IAAI;SAAAC,oBAAA,GAAAjC,WAAA,CACJkC,QAAQ;CAARA,QAAAA,QAAQ,GAAAD,oBAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,oBAAA;SAAA9B,gBAAA,GAAAH,WAAA,CAChBI,IAAI;CAAJA,QAAAA,IAAI,GAAAD,gBAAA,KAAG,KAAA,CAAA,GAAA,IAAI,GAAAA,gBAAA,CAAA;;CAGf;CACA;CACA;CACA;CACA,MAAA,IAAMK,WAAW,GAAGkB,cAAY,CAACC,MAAM,CAAC,CAAA;;CAExC;;CAEA,MAAA,OAAO,IAAI,CAAChD,cAAc,CAAC,CACvB;CACIhH,QAAAA,gBAAgB,EAAE,UAAU;CAC5BN,QAAAA,SAAS,EAAE,KAAK;CAChBO,QAAAA,uBAAuB,EAAE;CACrB/G,UAAAA,SAAS,EAAE,QAAQ;CACnBC,UAAAA,sBAAsB,EAAE,KAAK;WAC7BC,WAAW,EAAE,WAAW;UAC3B;;CACDsP,QAAAA,qBAAqB,EAAE;CACnBC,UAAAA,4BAA4B,EAAEb,gBAAgB,CAACW,IAAI,CAAC;CACpDG,UAAAA,YAAY,EAAE8B,SAAAA;UACjB;CACD3J,QAAAA,eAAe,EAAE;CACbf,UAAAA,gBAAgB,EAAE,eAAe;CACjCN,UAAAA,SAAS,EAAE+K,uBAAuB,GAAG,UAAU,GAAG,QAAQ;CAC1D5H,UAAAA,WAAW,EAAE,QAAQ;CACrBgG,UAAAA,WAAW,EAAXA,WAAW;CACX9H,UAAAA,eAAe,EAAE0J,uBAAuB,GAClCvgC,SAAS,GACT;CACI81B,YAAAA,gBAAgB,EAAE,eAAe;CACjCN,YAAAA,SAAS,EAAE,OAAO;CAClBmC,YAAAA,qBAAqB,EAArBA,qBAAAA;CACJ,WAAA;CACV,SAAA;CACJ,OAAC,EACD;CACI;CACA7B,QAAAA,gBAAgB,EAAE,UAAU;CAC5BN,QAAAA,SAAS,EAAE,KAAK;CAChBO,QAAAA,uBAAuB,EAAE;CACrB/G,UAAAA,SAAS,EAAE,QAAQ;CACnBC,UAAAA,sBAAsB,EAAE,KAAK;WAC7BC,WAAW,EAAE,MAAM;UACtB;;CACDsP,QAAAA,qBAAqB,EAAE;CACnBC,UAAAA,4BAA4B,EAAEb,gBAAgB,CAACyC,QAAQ,CAAC;CACxD3B,UAAAA,YAAY,EAAEyB,IAAAA;UACjB;CACDtJ,QAAAA,eAAe,EAAE;CACbf,UAAAA,gBAAgB,EAAE,eAAe;CACjCN,UAAAA,SAAS,EAAE+K,uBAAuB,GAAG,UAAU,GAAG,QAAQ;CAC1D5H,UAAAA,WAAW,EAAE,QAAQ;CACrBgG,UAAAA,WAAW,EAAXA,WAAW;CACX9H,UAAAA,eAAe,EAAE0J,uBAAuB,GAClCvgC,SAAS,GACT;CACI81B,YAAAA,gBAAgB,EAAE,eAAe;CACjCN,YAAAA,SAAS,EAAE,OAAO;CAClBmC,YAAAA,qBAAqB,EAArBA,qBAAAA;CACJ,WAAA;CACV,SAAA;CACJ,OAAC,CACJ,CAAC,CAAA;CACN,KAAA;CAAC,GAAA,CAAA,CAAA,CAAA;CAAA,EAAA,OAAA+L,MAAA,CAAA;CAAA,CAAA,CA3E+BxL,iBAAiB,CAAA;;CCjBrD,IAAMyL,SAAS,GAAG,WAAW,CAAA;CAAC,IAExBC,SAAS,gBAAA,YAAA;CACX,EAAA,SAAAA,YAAc;CAAAvqC,IAAAA,eAAA,OAAAuqC,SAAA,CAAA,CAAA;CAAC,GAAA;;CAEf;CAAA7pC,EAAAA,YAAA,CAAA6pC,SAAA,EAAA,IAAA,EAAA,CAAA;KAAA5pC,GAAA,EAAA,oBAAA;CAAAC,IAAAA,KAAA,EACA,SAAAwiC,kBAA0B3C,CAAAA,gBAAgB,EAAE;CACxC,MAAA,IAAA+E,qBAAA,GACInF,mBAAiB,CAACG,uBAAuB,CAACC,gBAAgB,CAAC;SADvDM,YAAY,GAAAyE,qBAAA,CAAZzE,YAAY;SAAEF,QAAQ,GAAA2E,qBAAA,CAAR3E,QAAQ;SAAEC,WAAW,GAAA0E,qBAAA,CAAX1E,WAAW,CAAA;CAG3C,MAAA,IAAQwE,WAAW,GAAKxE,WAAW,CAA3BwE,WAAW,CAAA;CAEnB,MAAA,IAAMtO,MAAM,GAAG;CAAE5pB,QAAAA,CAAC,EAAEk4B,WAAW,CAAC,CAAC,CAAC;SAAEC,CAAC,EAAED,WAAW,CAAC,CAAC,CAAA;QAAG,CAAA;CACvD,MAAA,IAAM9gC,GAAG,GAAG;CAAE4I,QAAAA,CAAC,EAAEk4B,WAAW,CAAC,CAAC,CAAC;SAAEC,CAAC,EAAED,WAAW,CAAC,CAAC,CAAA;QAAG,CAAA;CAEpD,MAAA,IAAMG,KAAK,GAAAt5B,cAAA,CAAAA,cAAA,KACJ40B,YAAY,CAAA,EAAA,EAAA,EAAA;SACfhB,QAAQ,EAAEwK,SAAS,CAACxK,QAAQ;CAC5BsH,QAAAA,MAAM,EAAE,KAAK;CACbC,QAAAA,WAAW,EAAE;WACTR,IAAI,EAAEjG,QAAQ,GACRA,QAAQ,CAACsE,qBAAqB,CAACE,YAAY,GAC3C,CAAC;CACP;CACAmF,UAAAA,MAAM,EAAE,CAAC;CACTrD,UAAAA,SAAS,EAAE,CAAA;UACd;CACDzB,QAAAA,OAAO,EAAE;CACLlhC,UAAAA,GAAG,EAAA2H,cAAA,CAAAA,cAAA,KACI3H,GAAG,CAAA,EAAA,EAAA,EAAA;CACNskC,YAAAA,SAAS,EAAE,KAAK;CAChBzB,YAAAA,MAAM,EAAE,KAAA;YACX,CAAA;CACD2C,UAAAA,eAAe,EAAE,CAAC;CAClBzlC,UAAAA,KAAK,EAAA4H,cAAA,CAAAA,cAAA,KACE6qB,MAAM,CAAA,EAAA,EAAA,EAAA;CACT8R,YAAAA,SAAS,EAAE,KAAK;CAChBzB,YAAAA,MAAM,EAAE,KAAA;YACX,CAAA;CACD1B,UAAAA,OAAO,EAAE;CACLC,YAAAA,QAAQ,EAAE,KAAK;CACfC,YAAAA,kBAAkB,EAAE,KAAK;CACzBC,YAAAA,kBAAkB,EAAE,IAAI;CACxBC,YAAAA,mBAAmB,EAAE,IAAI;CACzBC,YAAAA,cAAc,EAAE,IAAA;CACpB,WAAA;UACH;CACDwB,QAAAA,WAAW,EAAE,IAAI;CACjByC,QAAAA,OAAO,EAAE,IAAA;QACZ,CAAA,CAAA;CAED,MAAA,OAAOxE,KAAK,CAAA;CAChB,KAAA;;CAEA;CACJ;CACA;CACA;CACA;CACA;CALI,GAAA,EAAA;KAAA9kC,GAAA,EAAA,kCAAA;CAAAC,IAAAA,KAAA,EAMA,SAAAq/B,gCAAwCH,CAAAA,IAAI,EAAE;CAC1C,MAAA,IAAA2H,iBAAA,GAA6D3H,IAAI,CAAzDwH,WAAW;CAAXA,QAAAA,WAAW,GAAAG,iBAAA,KAAA,KAAA,CAAA,GAAG,EAAE,GAAAA,iBAAA;SAAE/B,OAAO,GAA4B5F,IAAI,CAAvC4F,OAAO;SAAEvE,OAAO,GAAmBrB,IAAI,CAA9BqB,OAAO;SAAEC,YAAY,GAAKtB,IAAI,CAArBsB,YAAY,CAAA;CACxD,MAAA,IAAepK,MAAM,GAAU0O,OAAO,CAA9BnhC,KAAK;SAAUC,GAAG,GAAKkhC,OAAO,CAAflhC,GAAG,CAAA;CAC1B,MAAA,IAAQsiC,IAAI,GAA4CQ,WAAW,CAA3DR,IAAI;SAAA2D,qBAAA,GAA4CnD,WAAW,CAArDN,QAAQ;CAARA,QAAAA,QAAQ,GAAAyD,qBAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,qBAAA;SAAAC,iBAAA,GAA0BpD,WAAW,CAAnCpC,IAAI;CAAJA,QAAAA,IAAI,GAAAwF,iBAAA,KAAG,KAAA,CAAA,GAAA,IAAI,GAAAA,iBAAA;SAAEF,MAAM,GAAKlD,WAAW,CAAtBkD,MAAM,CAAA;OAEnD,IAAMrD,SAAS,GAAG,CAAC,GAAGhpC,IAAI,CAACwsC,EAAE,GAAGH,MAAM,CAAA;OACtC,IAAM/D,MAAM,GAAG,EAAE,CAAA;CAEjBA,MAAAA,MAAM,CAACr9B,IAAI,CAAC4tB,MAAM,CAAC,CAAA;CACnByP,MAAAA,MAAM,CAACr9B,IAAI,CAAC5E,GAAG,CAAC,CAAA;OAEhB,IAAMq/B,2BAA2B,GAAG,mCAAmC,CAAA;OAEvE,OAAO;CACHiD,QAAAA,IAAI,EAAJA,IAAI;CACJE,QAAAA,QAAQ,EAARA,QAAQ;CACRG,QAAAA,SAAS,EAATA,SAAS;CACTjC,QAAAA,IAAI,EAAJA,IAAI;CACJsF,QAAAA,MAAM,EAANA,MAAM;CACN/D,QAAAA,MAAM,EAANA,MAAM;CACN5C,QAAAA,2BAA2B,EAA3BA,2BAA2B;CAC3B1C,QAAAA,OAAO,EAAPA,OAAO;SACPC,YAAY,EAAEA,YAAY,IAAI,EAAA;QACjC,CAAA;CACL,KAAA;CAAC,GAAA,CAAA,CAAA,CAAA;CAAA,EAAA,OAAAmJ,SAAA,CAAA;CAAA,CAAA,EAAA,CAAA;CAGLA,SAAS,CAACxK,QAAQ,GAAGuK,SAAS,CAAA;CAC9BC,SAAS,CAACjH,eAAe,GAAGgH,SAAS,CAAA;CACrCC,SAAS,CAACrK,oBAAoB,GAAG0K,QAAY,CAAA;CAC7CL,SAAS,CAACpH,oCAAoC,GAAG,UAAAgD,kBAAkB,EAAI;CACnE,EAAA,IAAI,CAACA,kBAAkB,CAAC34B,QAAQ,CAAC,GAAG,CAAC,EAAE;CACnC,IAAA,OAAO,KAAK,CAAA;CAChB,GAAA;CAEA,EAAA,IAAA44B,qBAAA,GAAoCD,kBAAkB,CAACt6B,KAAK,CAAC,GAAG,CAAC;KAAAw6B,sBAAA,GAAA5yB,cAAA,CAAA2yB,qBAAA,EAAA,CAAA,CAAA;CAA1DE,IAAAA,eAAe,GAAAD,sBAAA,CAAA,CAAA,CAAA;CAAEtG,IAAAA,QAAQ,GAAAsG,sBAAA,CAAA,CAAA,CAAA,CAAA;GAEhC,IAAIC,eAAe,KAAKC,iBAAiB,EAAE;CACvC,IAAA,OAAO,KAAK,CAAA;CAChB,GAAA;GAEA,OAAOxG,QAAQ,KAAKuK,SAAS,CAAA;CACjC,CAAC,CAAA;AAEDjK,oBAAiB,CAACgD,YAAY,CAACkH,SAAS,CAAC;;CC3Gc,IAElCM,OAAK,0BAAAhG,kBAAA,EAAA;GAAAx+B,SAAA,CAAAwkC,KAAA,EAAAhG,kBAAA,CAAA,CAAA;CAAA,EAAA,IAAAv+B,MAAA,GAAAC,YAAA,CAAAskC,KAAA,CAAA,CAAA;CAAA,EAAA,SAAAA,KAAA,GAAA;CAAA7qC,IAAAA,eAAA,OAAA6qC,KAAA,CAAA,CAAA;CAAA,IAAA,OAAAvkC,MAAA,CAAAwJ,KAAA,CAAA,IAAA,EAAApJ,SAAA,CAAA,CAAA;CAAA,GAAA;CAAAhG,EAAAA,YAAA,CAAAmqC,KAAA,EAAA,CAAA;KAAAlqC,GAAA,EAAA,aAAA;KAAAC,KAAA,EACtB,SAAA+8B,WAAAA,GAAc;CACV,MAAA,IAAAmH,WAAA,GAII,IAAI,CAACtB,KAAK;SAHViD,MAAM,GAAA3B,WAAA,CAAN2B,MAAM;SACNnI,qBAAqB,GAAAwG,WAAA,CAArBxG,qBAAqB;SAAA2I,qBAAA,GAAAnC,WAAA,CACrBoC,uBAAuB;CAAvBA,QAAAA,uBAAuB,GAAAD,qBAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,qBAAA,CAAA;CAGnC,MAAA,IAAM3B,WAAW,GAAG4B,uBAAuB,GACrC,CAACT,MAAM,CAAC,CAAC,CAAC,CAACr5B,CAAC,EAAEq5B,MAAM,CAAC,CAAC,CAAC,CAAClB,CAAC,EAAEkB,MAAM,CAAC,CAAC,CAAC,CAACG,CAAC,CAAC,GACvC,CAACH,MAAM,CAAC,CAAC,CAAC,CAACr5B,CAAC,EAAEq5B,MAAM,CAAC,CAAC,CAAC,CAAClB,CAAC,CAAC,CAAA;CAChC;CACA,MAAA,IAAIkB,MAAM,CAACnoC,MAAM,IAAI,CAAC,EAAE;SACpBgnC,WAAW,CAACl8B,IAAI,CAACq9B,MAAM,CAAC,CAAC,CAAC,CAACr5B,CAAC,CAAC,CAAA;SAC7Bk4B,WAAW,CAACl8B,IAAI,CAACq9B,MAAM,CAAC,CAAC,CAAC,CAAClB,CAAC,CAAC,CAAA;CAC7B,QAAA,IAAI2B,uBAAuB,EAAE5B,WAAW,CAACl8B,IAAI,CAACq9B,MAAM,CAAC,CAAC,CAAC,CAACG,CAAC,CAAC,CAAA;CAC9D,OAAA;CACA,MAAA,OAAO,IAAI,CAACnD,cAAc,CAAC,CACvB;CACIhH,QAAAA,gBAAgB,EAAE,UAAU;CAC5BN,QAAAA,SAAS,EAAE,KAAK;CAChBO,QAAAA,uBAAuB,EAAE;CACrB/G,UAAAA,SAAS,EAAE,QAAQ;CACnBC,UAAAA,sBAAsB,EAAE,KAAK;CAC7BC,UAAAA,WAAW,EAAE,QAAA;UAChB;CACD;CACA2H,QAAAA,eAAe,EAAE;CACbf,UAAAA,gBAAgB,EAAE,eAAe;CACjCN,UAAAA,SAAS,EAAE+K,uBAAuB,GAAG,UAAU,GAAG,QAAQ;CAC1D5H,UAAAA,WAAW,EAAE,OAAO;CACpBgG,UAAAA,WAAW,EAAXA,WAAW;CACX9H,UAAAA,eAAe,EAAE0J,uBAAuB,GAClCvgC,SAAS,GACT;CACI81B,YAAAA,gBAAgB,EAAE,eAAe;CACjCN,YAAAA,SAAS,EAAE,OAAO;CAClBmC,YAAAA,qBAAqB,EAArBA,qBAAAA;CACJ,WAAA;CACV,SAAA;CACJ,OAAC,CACJ,CAAC,CAAA;CACN,KAAA;CAAC,GAAA,CAAA,CAAA,CAAA;CAAA,EAAA,OAAAuM,KAAA,CAAA;CAAA,CAAA,CA1C8BhM,iBAAiB,CAAA;;CCCpD,IAAMiM,gBAAc,GAAG,eAAe,CAAA;CACtC,IAAMC,qBAAmB,GAAG,qBAAqB,CAAA;CAAC,IAE5CC,eAAa,gBAAA,YAAA;CACf,EAAA,SAAAA,gBAAc;CAAAhrC,IAAAA,eAAA,OAAAgrC,aAAA,CAAA,CAAA;CAAC,GAAA;CAACtqC,EAAAA,YAAA,CAAAsqC,aAAA,EAAA,IAAA,EAAA,CAAA;KAAArqC,GAAA,EAAA,oBAAA;CAAAC,IAAAA,KAAA,EAEhB,SAAAwiC,kBAA0B3C,CAAAA,gBAAgB,EAAE;CACxC,MAAA,IAAA+E,qBAAA,GACInF,mBAAiB,CAACG,uBAAuB,CAACC,gBAAgB,CAAC;SADvDM,YAAY,GAAAyE,qBAAA,CAAZzE,YAAY;SAAED,WAAW,GAAA0E,qBAAA,CAAX1E,WAAW;SAAEH,YAAY,GAAA6E,qBAAA,CAAZ7E,YAAY,CAAA;CAG/C,MAAA,IAAMsK,IAAI,GAAGtK,YAAY,CAAClD,mBAAmB,CAAC5H,WAAW,CAAA;CAEzD,MAAA,IAAQyP,WAAW,GAAKxE,WAAW,CAA3BwE,WAAW,CAAA;CAEnB,MAAA,IAAMG,KAAK,GAAAt5B,cAAA,CAAAA,cAAA,KACJ40B,YAAY,CAAA,EAAA,EAAA,EAAA;SACfhB,QAAQ,EAAEiL,aAAa,CAACjL,QAAQ;CAChCsH,QAAAA,MAAM,EAAE,KAAK;CACb3B,QAAAA,OAAO,EAAE;CACLnhC,UAAAA,KAAK,EAAE;CACH6I,YAAAA,CAAC,EAAEk4B,WAAW,CAAC,CAAC,CAAC;CACjBC,YAAAA,CAAC,EAAED,WAAW,CAAC,CAAC,CAAC;CACjBwD,YAAAA,SAAS,EAAE,IAAI;CACfzB,YAAAA,MAAM,EAAE,KAAA;YACX;CACD;CACA;CACA7iC,UAAAA,GAAG,EAAE;CACD4I,YAAAA,CAAC,EACGk4B,WAAW,CAAChnC,MAAM,IAAI,CAAC,GACjBgnC,WAAW,CAAC,CAAC,CAAC,GACdA,WAAW,CAAC,CAAC,CAAC,GAAG,EAAE;CAC7BC,YAAAA,CAAC,EACGD,WAAW,CAAChnC,MAAM,IAAI,CAAC,GACjBgnC,WAAW,CAAC,CAAC,CAAC,GACdA,WAAW,CAAC,CAAC,CAAC,GAAG,EAAE;CAC7BwD,YAAAA,SAAS,EAAE,IAAI;CACfzB,YAAAA,MAAM,EAAE,KAAA;YACX;CACD1B,UAAAA,OAAO,EAAE;CACLC,YAAAA,QAAQ,EAAE,KAAK;CACfC,YAAAA,kBAAkB,EAAE,KAAK;CACzBC,YAAAA,kBAAkB,EAAE,IAAI;CACxBC,YAAAA,mBAAmB,EAAE,IAAI;CACzBC,YAAAA,cAAc,EAAE,IAAA;CACpB,WAAA;UACH;CACDwB,QAAAA,WAAW,EAAE,IAAI;CACjByD,QAAAA,IAAI,EAAJA,IAAI;CACJhB,QAAAA,OAAO,EAAE,IAAA;QACZ,CAAA,CAAA;CAED,MAAA,OAAOxE,KAAK,CAAA;CAChB,KAAA;CAAC,GAAA,EAAA;KAAA9kC,GAAA,EAAA,kCAAA;CAAAC,IAAAA,KAAA,EAED,SAAAq/B,gCAAwCH,CAAAA,IAAI,EAAE;CAC1C,MAAA,IAAM2G,MAAM,GAAG,CAAC3G,IAAI,CAAC4F,OAAO,CAACnhC,KAAK,EAAEu7B,IAAI,CAAC4F,OAAO,CAAClhC,GAAG,CAAC,CAAA;CAErD,MAAA,IAAM28B,OAAO,GAAmBrB,IAAI,CAA9BqB,OAAO;SAAEC,YAAY,GAAKtB,IAAI,CAArBsB,YAAY,CAAA;CAE3B,MAAA,IAAM8J,6BAA6B,GAAG;CAClCzE,QAAAA,MAAM,EAANA,MAAM;CACN5C,QAAAA,2BAA2B,EAAyC,uCAAA;SACpEzC,YAAY,EAAEA,YAAY,IAAI,EAAA;QACjC,CAAA;;CAED;OACA,IAAI,CAACD,OAAO,IAAIA,OAAO,CAACxL,SAAS,KAAKoV,qBAAmB,EAAE;CACvD5J,QAAAA,OAAO,GAAG;CACNxL,UAAAA,SAAS,EAAEoV,qBAAmB;CAC9BnV,UAAAA,sBAAsB,EAAE,MAAM;WAC9BC,WAAW,EAAEiK,IAAI,CAACmL,IAAAA;UACrB,CAAA;CACL,OAAA;OAEAC,6BAA6B,CAAC/J,OAAO,GAAGA,OAAO,CAAA;CAE/C,MAAA,OAAO+J,6BAA6B,CAAA;CACxC,KAAA;CAAC,GAAA,CAAA,CAAA,CAAA;CAAA,EAAA,OAAAF,aAAA,CAAA;CAAA,CAAA,EAAA,CAAA;AAGLA,gBAAa,CAACjL,QAAQ,GAAG+K,gBAAc,CAAA;AACvCE,gBAAa,CAAC1H,eAAe,GAAGwH,gBAAc,CAAA;AAC9CE,gBAAa,CAAC9K,oBAAoB,GAAGiL,OAAW,CAAA;AAChDH,gBAAa,CAAC7H,oCAAoC,GAAG,UAAAgD,kBAAkB,EAAI;CACvE,EAAA,IAAI,CAACA,kBAAkB,CAAC34B,QAAQ,CAAC,GAAG,CAAC,EAAE;CACnC,IAAA,OAAO,KAAK,CAAA;CAChB,GAAA;CAEA,EAAA,IAAA44B,qBAAA,GAAoCD,kBAAkB,CAACt6B,KAAK,CAAC,GAAG,CAAC;KAAAw6B,sBAAA,GAAA5yB,cAAA,CAAA2yB,qBAAA,EAAA,CAAA,CAAA;CAA1DE,IAAAA,eAAe,GAAAD,sBAAA,CAAA,CAAA,CAAA;CAAEtG,IAAAA,QAAQ,GAAAsG,sBAAA,CAAA,CAAA,CAAA,CAAA;GAEhC,IAAIC,eAAe,KAAKC,iBAAiB,EAAE;CACvC,IAAA,OAAO,KAAK,CAAA;CAChB,GAAA;GAEA,OAAOxG,QAAQ,KAAK+K,gBAAc,CAAA;CACtC,CAAC,CAAA;AAEDzK,oBAAiB,CAACgD,YAAY,CAAC2H,eAAa,CAAC;;CCpG7C,SAASI,MAAI,CAAC,CAAC,EAAE;CACjB,EAAE,IAAI,MAAM,GAAG,IAAI,KAAK,CAAC,CAAC,EAAC;CAC3B,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE;CACzB,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,EAAC;CACjB,GAAG;CACH,EAAE,OAAO,MAAM;CACf,CAAC;AACD;CACA,IAAA,MAAc,GAAGA;;;;;;;;;CCHjB;CACA;KACA,UAAc,GAAG,UAAU,GAAG,EAAE;CAChC,EAAE,OAAO,GAAG,IAAI,IAAI,KAAKC,UAAQ,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC;CAC/E,EAAC;AACD;CACA,SAASA,UAAQ,EAAE,GAAG,EAAE;CACxB,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,WAAW,IAAI,OAAO,GAAG,CAAC,WAAW,CAAC,QAAQ,KAAK,UAAU,IAAI,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC;CAC7G,CAAC;AACD;CACA;CACA,SAAS,YAAY,EAAE,GAAG,EAAE;CAC5B,EAAE,OAAO,OAAO,GAAG,CAAC,WAAW,KAAK,UAAU,IAAI,OAAO,GAAG,CAAC,KAAK,KAAK,UAAU,IAAIA,UAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;CAC9G;;CCpBA,IAAI,IAAI,GAAGjuC,OAAqB;CAChC,IAAI,QAAQ,GAAGE,WAAoB;AACnC;CACA,IAAI,cAAc,KAAK,CAAC,OAAO,YAAY,MAAM,WAAW,EAAC;AAC7D;CACA,SAAS,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE;CAC1B,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACpB,CAAC;AACD;CACA,SAAS,KAAK,GAAG;CACjB,EAAE,IAAI,MAAM,GAAG,IAAI,CAAC,OAAM;CAC1B,EAAE,IAAI,KAAK,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,EAAC;CACtC,EAAE,IAAI,EAAC;CACP,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;CAChC,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAC;CACvC,GAAG;CACH,EAAE,KAAK,CAAC,IAAI,CAAC,UAAU,EAAC;CACxB,EAAE,IAAI,MAAM,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,EAAC;CACtC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;CACjC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;CAC3B,GAAG;CACH,EAAE,OAAO,MAAM;CACf,CAAC;AACD;CACA,SAAS,kBAAkB,CAAC,KAAK,EAAE,SAAS,EAAE;CAC9C,EAAE,IAAI,SAAS,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,EAAC;CAC1D,EAAE,GAAG,SAAS,GAAG,CAAC,EAAE;CACpB,IAAI,SAAS,GAAG,UAAU,GAAG,MAAK;CAClC,GAAG;CACH,EAAE,IAAI,UAAU,IAAI,KAAK,KAAK,SAAS,EAAC;AACxC;CACA,EAAE,GAAG,SAAS,KAAK,CAAC,CAAC,EAAE;CACvB;CACA,IAAI,IAAI,IAAI;CACZ,MAAM,WAAW,CAAC,SAAS,CAAC;AAC5B,WAAW,CAAC,SAAS,CAAC;AACtB,cAAc,CAAC,KAAK,CAAC;AACrB;AACA;AACA;AACA;AACA;AACA,uBAAuB,CAAC,SAAS,CAAC;AAClC;AACA;AACA,2BAA2B,CAAC,SAAS,CAAC,iBAAiB,CAAC,SAAS,CAAC,QAAO;CACzE,IAAI,IAAI,SAAS,GAAG,IAAI,QAAQ,CAAC,IAAI,EAAC;CACtC,IAAI,OAAO,SAAS,EAAE;CACtB,GAAG,MAAM,GAAG,SAAS,KAAK,CAAC,EAAE;CAC7B;CACA,IAAI,IAAI,IAAI;CACZ,MAAM,WAAW,CAAC,SAAS,CAAC;AAC5B;AACA;AACA;AACA,WAAW,CAAC,SAAS,CAAC;AACtB,cAAc,CAAC,KAAK,CAAC;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,CAAC,SAAS,CAAC;AAChC,YAAY,CAAC,SAAS,CAAC;AACvB;AACA,qBAAqB,CAAC,SAAS,CAAC;AAChC;AACA;AACA,kCAAkC,CAAC,SAAS,CAAC;AAC7C,QAAQ,EAAE,UAAU,GAAG,4BAA4B,GAAG,wBAAwB,CAAC;CAC/E;AACA,oBAAoB,CAAC,SAAS,CAAC;AAC/B,QAAQ,EAAE,UAAU,GAAG,8BAA8B,GAAG,0BAA0B,CAAC,CAAC;AACpF;AACA,2BAA2B,CAAC,SAAS,CAAC,uBAAuB,CAAC,SAAS,CAAC,SAAQ;CAChF,IAAI,IAAI,SAAS,GAAG,IAAI,QAAQ,CAAC,cAAc,EAAE,IAAI,EAAC;CACtD,IAAI,OAAO,SAAS,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;CACnD,GAAG;AACH;CACA,EAAE,IAAI,IAAI,GAAG,CAAC,cAAc,EAAC;AAC7B;CACA;CACA,EAAE,IAAI,OAAO,GAAG,IAAI,CAAC,SAAS,EAAC;CAC/B,EAAE,IAAI,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,EAAE,OAAO,GAAG,CAAC,CAAC,EAAE,EAAC;CACtD,EAAE,IAAI,SAAS,GAAG,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;CAC3D,QAAQ,OAAO,cAAc,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC;CAC7C,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,EAAC;CAClB,EAAE,IAAI,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;CACzC,MAAM,OAAO,GAAG,CAAC,CAAC;CAClB,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAC;CAChB,EAAE,IAAI,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;CAC1C,MAAM,OAAO,GAAG,CAAC,CAAC;CAClB,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAC;CAChB,EAAE,IAAI,CAAC,IAAI;CACX,IAAI,WAAW,CAAC,SAAS,CAAC,KAAK,GAAG,QAAQ,GAAG,GAAG,GAAG,SAAS,GAAG,iBAAiB;CAChF,MAAM,cAAc,GAAG,QAAQ,GAAG,GAAG;CACrC,MAAM,eAAe,GAAG,SAAS,GAAG,GAAG;CACvC,MAAM,kBAAkB;CACxB,IAAI,YAAY,CAAC,SAAS,CAAC,YAAY;CACvC,IAAI,eAAe,CAAC,KAAK,CAAC,GAAG;CAC7B,IAAI,kBAAkB,CAAC,SAAS,EAAC;AACjC;CACA;CACA,EAAE,IAAI,CAAC,IAAI,CAAC,mDAAmD,CAAC,SAAS,CAAC;AAC1E,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,EAAE,OAAO,aAAa,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;CAC1E,KAAK,EAAC;AACN;CACA;CACA,EAAE,GAAG,SAAS,KAAK,CAAC,EAAE;CACtB,IAAI,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAC;CAChC,GAAG,MAAM;CACT,IAAI,IAAI,CAAC,IAAI,CAAC,2CAA2C,EAAC;CAC1D,IAAI,GAAG,SAAS,GAAG,CAAC,EAAE;CACtB,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,WAAW,EAAC;CAClD,MAAM,GAAG,SAAS,KAAK,CAAC,EAAE;CAC1B,QAAQ,IAAI,CAAC,IAAI,CAAC,2EAA2E,EAAC;CAC9F,OAAO,MAAM,GAAG,SAAS,KAAK,CAAC,EAAE;CACjC,QAAQ,IAAI,CAAC,IAAI;CACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,EAAC;CACN,OAAO;CACP,KAAK,MAAM;CACX,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,EAAC;CAC1B,KAAK;CACL,GAAG;AACH;CACA;CACA,EAAE,IAAI,CAAC,IAAI;CACX,qBAAqB,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,EAAC;CAC9D,EAAE,GAAG,UAAU,EAAE;CACjB,IAAI,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC,MAAM,EAAC;CACvD,GAAG,MAAM;CACT,IAAI,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,MAAM,EAAC;CACnD,GAAG;AACH;CACA;CACA,EAAE,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAC;CACxE,EAAE,GAAG,UAAU,EAAE;CACjB,IAAI,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC,IAAI,EAAC;CACrD,GAAG,MAAM;CACT,IAAI,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,IAAI,EAAC;CACjD,GAAG;AACH;CACA;CACA,EAAE,IAAI,CAAC,IAAI;CACX,IAAI,uBAAuB,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,WAAW,CAAC,SAAS,CAAC,GAAG,EAAC;AACxF;CACA;CACA,EAAE,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,eAAe,CAAC,SAAS,CAAC,aAAa;CACxG,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;CAC5B,MAAM,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;CAC5F,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG;CACpB,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;CAC5B,MAAM,OAAO,cAAc,CAAC,CAAC,GAAG,GAAG;CACnC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,gBAAgB,EAAC;AAClC;CACA;CACA,EAAE,IAAI,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,EAAE,EAAC;CAC7E,EAAE,IAAI,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,EAAE,EAAC;CAC9E,EAAE,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,0BAA0B,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAC;CAClI,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,EAAE;CACjC,IAAI,IAAI,CAAC,IAAI;CACb,aAAa,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC;AACnC,IAAI,CAAC,CAAC,CAAC;AACP,KAAK,CAAC,CAAC,CAAC;AACR,EAAE,CAAC,CAAC,CAAC,MAAM,EAAC;CACZ,GAAG;CACH,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,aAAa;CACjD,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;CAC5B,MAAM,OAAO,GAAG,CAAC,CAAC;CAClB,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG;CACpB,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;CAC5B,MAAM,OAAO,GAAG,CAAC,CAAC;CAClB,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,EAAC;AACxB;CACA;CACA,EAAE,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ;CAC7E,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;CAC5B,MAAM,OAAO,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG;CACvC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG;CACpB,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;CAC5B,MAAM,OAAO,GAAG,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG;CACxC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,mCAAmC,EAAC;CACrD,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,EAAE;CACjC,IAAI,IAAI,CAAC,IAAI;CACb,aAAa,CAAC,CAAC,CAAC;AAChB,IAAI,CAAC,CAAC,CAAC;AACP;AACA,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AAChB,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;AAClB;AACA,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;AACjB;AACA,EAAE,CAAC,CAAC,CAAC;AACL,EAAE,EAAC;CACH,GAAG;CACH,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,aAAa;CACjD,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;CAC5B,MAAM,OAAO,GAAG,GAAG,CAAC;CACpB,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG;CACpB,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;CAC5B,MAAM,OAAO,GAAG,GAAG,CAAC;CACpB,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,EAAC;AACxB;CACA;CACA,EAAE,IAAI,MAAM,GAAG,IAAI,KAAK,CAAC,SAAS,EAAC;CACnC,EAAE,IAAI,OAAO,GAAG,IAAI,KAAK,CAAC,SAAS,EAAC;CACpC,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,EAAE;CACjC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,IAAG;CAC3B,IAAI,OAAO,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,IAAG;CAC5B,GAAG;CACH,EAAE,IAAI,CAAC,IAAI,CAAC,2BAA2B,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI;CACzE,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,eAAe,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;CACxG,IAAI,4CAA4C,CAAC,SAAS,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,gBAAgB,EAAC;AACjI;CACA;CACA,EAAE,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,+BAA+B,EAAC;CAC3F,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,EAAE;CACjC,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,KAAK,EAAC;CACrJ,GAAG;CACH,EAAE,IAAI,CAAC,IAAI,CAAC,8DAA8D,EAAC;AAC3E;CACA;CACA,EAAE,IAAI,CAAC,IAAI,CAAC,4BAA4B,CAAC,SAAS,CAAC,wCAAwC,CAAC,SAAS,CAAC,QAAQ;CAC9G,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;CAC5B,MAAM,OAAO,QAAQ,CAAC,CAAC,CAAC,GAAG;CAC3B,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG;CACpB,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;CAC5B,MAAM,OAAO,SAAS,CAAC,CAAC,CAAC,GAAG;CAC5B,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,EAAC;AAC7B;CACA;CACA,EAAE,IAAI,SAAS,GAAG,IAAI,QAAQ,CAAC,WAAW,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAC;CACrE,EAAE,OAAO,SAAS,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;CACrD,CAAC;AACD;CACA,SAAS,UAAU,CAAC,IAAI,EAAE;CAC1B,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE;CACrB,IAAI,OAAO,QAAQ;CACnB,GAAG;CACH,EAAE,GAAG,cAAc,EAAE;CACrB,IAAI,OAAO,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;CAC/C,MAAM,KAAK,uBAAuB;CAClC,QAAQ,OAAO,SAAS;CACxB,MAAM,KAAK,uBAAuB;CAClC,QAAQ,OAAO,SAAS;CACxB,MAAM,KAAK,oBAAoB;CAC/B,QAAQ,OAAO,MAAM;CACrB,MAAM,KAAK,qBAAqB;CAChC,QAAQ,OAAO,OAAO;CACtB,MAAM,KAAK,qBAAqB;CAChC,QAAQ,OAAO,OAAO;CACtB,MAAM,KAAK,qBAAqB;CAChC,QAAQ,OAAO,OAAO;CACtB,MAAM,KAAK,sBAAsB;CACjC,QAAQ,OAAO,QAAQ;CACvB,MAAM,KAAK,sBAAsB;CACjC,QAAQ,OAAO,QAAQ;CACvB,MAAM,KAAK,4BAA4B;CACvC,QAAQ,OAAO,eAAe;CAC9B,MAAM,KAAK,wBAAwB;CACnC,QAAQ,OAAO,UAAU;CACzB,MAAM,KAAK,yBAAyB;CACpC,QAAQ,OAAO,WAAW;CAC1B,KAAK;CACL,GAAG;CACH,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;CAC1B,IAAI,OAAO,OAAO;CAClB,GAAG;CACH,EAAE,OAAO,SAAS;CAClB,CAAC;AACD;CACA,IAAI,mBAAmB,GAAG;CAC1B,EAAE,SAAS,CAAC,EAAE;CACd,EAAE,SAAS,CAAC,EAAE;CACd,EAAE,MAAM,CAAC,EAAE;CACX,EAAE,OAAO,CAAC,EAAE;CACZ,EAAE,OAAO,CAAC,EAAE;CACZ,EAAE,OAAO,CAAC,EAAE;CACZ,EAAE,QAAQ,CAAC,EAAE;CACb,EAAE,QAAQ,CAAC,EAAE;CACb,EAAE,OAAO,CAAC,EAAE;CACZ,EAAE,eAAe,CAAC,EAAE;CACpB,EAAE,UAAU,EAAE,EAAE;CAChB,EAAE,WAAW,EAAE,EAAE;CACjB,EAAE,QAAQ,CAAC,EAAE;CACb,EAAE,SAAS,CAAC,EAAE;CACd,CAAC;AACD;CACA,CAKA;CACA,SAAS,kBAAkB,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE;CACzD,EAAE,GAAG,IAAI,KAAK,SAAS,EAAE;CACzB,IAAI,IAAI,IAAI,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC,EAAC;CAC3C,IAAI,OAAO,IAAI,CAAC,EAAE,CAAC;CACnB,GAAG,MAAM,GAAG,OAAO,IAAI,KAAK,QAAQ,EAAE;CACtC,IAAI,IAAI,GAAG,CAAC,IAAI,EAAC;CACjB,GAAG;CACH,EAAE,GAAG,KAAK,KAAK,SAAS,EAAE;CAC1B,IAAI,KAAK,GAAG,EAAE,IAAI,CAAC,MAAM,GAAE;CAC3B,GAAG;CACH,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,OAAM;CACtB,EAAE,GAAG,MAAM,KAAK,SAAS,EAAE;CAC3B,IAAI,MAAM,GAAG,IAAI,KAAK,CAAC,CAAC,EAAC;CACzB,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE;CACpC,MAAM,MAAM,CAAC,CAAC,CAAC,GAAG,GAAE;CACpB,MAAM,EAAE,IAAI,KAAK,CAAC,CAAC,EAAC;CACpB,KAAK;CACL,GAAG;CACH,EAAE,GAAG,MAAM,KAAK,SAAS,EAAE;CAC3B,IAAI,MAAM,GAAG,EAAC;CACd,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE;CAC3B,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;CACxB,QAAQ,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,EAAC;CACxC,OAAO;CACP,KAAK;CACL,GAAG;CACH,EAAE,IAAI,KAAK,GAAG,UAAU,CAAC,IAAI,EAAC;CAC9B,EAAE,IAAI,SAAS,GAAG,mBAAmB,CAAC,KAAK,EAAC;CAC5C,EAAE,MAAM,SAAS,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,EAAE;CACjC,IAAI,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAC;CACjE,GAAG;CACH,EAAE,IAAI,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,EAAC;CAC3B,EAAE,OAAO,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC;CAC1C,CAAC;AACD;CACA,IAAA,OAAc,GAAG,mBAAA;;;;CC5VjB;CACA;CACA;CACA;CACA;CACA;CACA;CACe,uBAAUiuB,EAAAA,CAAC,EAAEC,CAAC,EAAE;CAC3B,EAAA,OAAO,CACHD,CAAC,CAAC,CAAC,CAAC,GAAGC,CAAC,CAAC,CAAC,CAAC,GAAGD,CAAC,CAAC,CAAC,CAAC,GAAGC,CAAC,CAAC,CAAC,CAAC,EACzBD,CAAC,CAAC,CAAC,CAAC,GAAGC,CAAC,CAAC,CAAC,CAAC,GAAGD,CAAC,CAAC,CAAC,CAAC,GAAGC,CAAC,CAAC,CAAC,CAAC,EACzBD,CAAC,CAAC,CAAC,CAAC,GAAGC,CAAC,CAAC,CAAC,CAAC,GAAGD,CAAC,CAAC,CAAC,CAAC,GAAGC,CAAC,CAAC,CAAC,CAAC,CAC5B,CAAA;CACL;;CCbA,IAAM8f,2BAA2B,GAAG;CAChC;CACJ;CACA;CACA;CACA;CACIC,EAAAA,CAAC,EAAE,SAAAA,CAAAC,CAAAA,GAAG,EAAI;CACN,IAAA,OAAO,CAACA,GAAG,CAAC,CAAC,CAAC,EAAEA,GAAG,CAAC,CAAC,CAAC,EAAEA,GAAG,CAAC,CAAC,CAAC,EAAE,CAACA,GAAG,CAAC,CAAC,CAAC,EAAE,CAACA,GAAG,CAAC,CAAC,CAAC,EAAE,CAACA,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;IAC7D;CACD;CACJ;CACA;CACA;CACA;CACInqC,EAAAA,CAAC,EAAE,SAAAA,CAAAmqC,CAAAA,GAAG,EAAI;CACN,IAAA,OAAO,CAAC,CAACA,GAAG,CAAC,CAAC,CAAC,EAAE,CAACA,GAAG,CAAC,CAAC,CAAC,EAAE,CAACA,GAAG,CAAC,CAAC,CAAC,EAAEA,GAAG,CAAC,CAAC,CAAC,EAAEA,GAAG,CAAC,CAAC,CAAC,EAAEA,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;IAC7D;CACD;CACJ;CACA;CACA;CACA;CACIC,EAAAA,EAAE,EAAE,SAAAA,EAAAD,CAAAA,GAAG,EAAI;CACP,IAAA,OAAO,CAAC,CAACA,GAAG,CAAC,CAAC,CAAC,EAAE,CAACA,GAAG,CAAC,CAAC,CAAC,EAAE,CAACA,GAAG,CAAC,CAAC,CAAC,EAAE,CAACA,GAAG,CAAC,CAAC,CAAC,EAAE,CAACA,GAAG,CAAC,CAAC,CAAC,EAAE,CAACA,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;CACjE,GAAA;CACJ,CAAC;;CCvBD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACe,uCAAUnqC,CAAC,EAAEsO,CAAC,EAAE+7B,KAAK,EAAE;CAClC,EAAA,IAAMC,QAAQ,GAAGxtC,IAAI,CAACytC,GAAG,CAACF,KAAK,CAAC,CAAA;CAChC,EAAA,IAAMG,QAAQ,GAAG1tC,IAAI,CAAC2tC,GAAG,CAACJ,KAAK,CAAC,CAAA;CAChC,EAAA,IAAMK,gBAAgB,GAAG,GAAG,GAAGJ,QAAQ,CAAA;CACvC,EAAA,IAAMK,KAAK,GAAGr8B,CAAC,CAAC,CAAC,CAAC,GAAGtO,CAAC,CAAC,CAAC,CAAC,GAAGsO,CAAC,CAAC,CAAC,CAAC,GAAGtO,CAAC,CAAC,CAAC,CAAC,GAAGsO,CAAC,CAAC,CAAC,CAAC,GAAGtO,CAAC,CAAC,CAAC,CAAC,CAAA;GACrD,IAAM4qC,IAAI,GAAG,EAAE,CAAA;CACf,EAAA,IAAMC,GAAG,GAAGC,cAAc,CAACx8B,CAAC,EAAEtO,CAAC,CAAC,CAAA;GAEhC,KAAK,IAAI1C,CAAC,GAAG,CAAC,EAAEA,CAAC,IAAI,CAAC,EAAEA,CAAC,EAAE,EAAE;KACzBstC,IAAI,CAACttC,CAAC,CAAC,GACH0C,CAAC,CAAC1C,CAAC,CAAC,GAAGgtC,QAAQ,GACfO,GAAG,CAACvtC,CAAC,CAAC,GAAGktC,QAAQ,GACjBl8B,CAAC,CAAChR,CAAC,CAAC,GAAGqtC,KAAK,GAAGD,gBAAgB,CAAA;CAEnCE,IAAAA,IAAI,CAACttC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;CACjB,GAAA;CAEA,EAAA,OAAOstC,IAAI,CAAA;CACf;;CC1BA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACe,sCAAUT,EAAAA,GAAG,EAAEE,KAAK,EAAE;CACjC,EAAA,IAAMU,CAAC,GAAG,CAACZ,GAAG,CAAC,CAAC,CAAC,EAAEA,GAAG,CAAC,CAAC,CAAC,EAAEA,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;CAClC,EAAA,IAAMa,CAAC,GAAG,CAACb,GAAG,CAAC,CAAC,CAAC,EAAEA,GAAG,CAAC,CAAC,CAAC,EAAEA,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;CAClC,EAAA,IAAMc,GAAG,GAAGH,cAAc,CAACC,CAAC,EAAEC,CAAC,CAAC,CAAA;GAEhC,IAAME,IAAI,GAAGC,4BAA4B,CAACJ,CAAC,EAAEE,GAAG,EAAEZ,KAAK,CAAC,CAAA;GACxD,IAAMe,IAAI,GAAGD,4BAA4B,CAACH,CAAC,EAAEC,GAAG,EAAEZ,KAAK,CAAC,CAAA;GAExD,OAAApmC,EAAAA,CAAAA,MAAA,CAAA05B,kBAAA,CAAWuN,IAAI,CAAAvN,EAAAA,kBAAA,CAAKyN,IAAI,CAAA,CAAA,CAAA;CAC5B;;CClBA,IAAMC,YAAY,GAAG;CACjBnB,EAAAA,CAAC,EAADA,CAAC;CACDlqC,EAAAA,CAAC,EAADA,CAAAA;CACJ,CAAC,CAAA;;CAID;CACA;CACA;CACA;CACA;CACA;CACA,SAASkqC,CAACA,CAACoB,MAAM,EAAE;CACf,EAAA,IAAAC,aAAA,GAAAn5B,cAAA,CAAqBk5B,MAAM,CAACE,KAAK,EAAA,CAAA,CAAA;CAA1BC,IAAAA,IAAI,GAAAF,aAAA,CAAA,CAAA,CAAA;CAAEG,IAAAA,IAAI,GAAAH,aAAA,CAAA,CAAA,CAAA,CAAA;CAEjB,EAAA,IAAMtoC,MAAM,GAAG0oC,SAAO,CAAC,IAAIvuC,UAAU,CAACquC,IAAI,GAAGC,IAAI,CAAC,EAAE,CAACD,IAAI,EAAEC,IAAI,CAAC,CAAC,CAAA;GAEjE,KAAK,IAAIpuC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGmuC,IAAI,EAAEnuC,CAAC,EAAE,EAAE;KAC3B,KAAK,IAAI2T,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGy6B,IAAI,EAAEz6B,CAAC,EAAE,EAAE;CAC3BhO,MAAAA,MAAM,CAAC3B,GAAG,CAAChE,CAAC,EAAE2T,CAAC,EAAEq6B,MAAM,CAACnkC,GAAG,CAAC7J,CAAC,EAAEouC,IAAI,GAAG,CAAC,GAAGz6B,CAAC,CAAC,CAAC,CAAA;CACjD,KAAA;CACJ,GAAA;CAEA,EAAA,OAAOhO,MAAM,CAAA;CACjB,CAAA;;CAEA;CACA;CACA;CACA;CACA;CACA;CACA,SAASjD,CAACA,CAACsrC,MAAM,EAAE;CACf,EAAA,IAAAM,cAAA,GAAAx5B,cAAA,CAAqBk5B,MAAM,CAACE,KAAK,EAAA,CAAA,CAAA;CAA1BC,IAAAA,IAAI,GAAAG,cAAA,CAAA,CAAA,CAAA;CAAEF,IAAAA,IAAI,GAAAE,cAAA,CAAA,CAAA,CAAA,CAAA;CAEjB,EAAA,IAAM3oC,MAAM,GAAG0oC,SAAO,CAAC,IAAIvuC,UAAU,CAACquC,IAAI,GAAGC,IAAI,CAAC,EAAE,CAACD,IAAI,EAAEC,IAAI,CAAC,CAAC,CAAA;GAEjE,KAAK,IAAIz6B,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGy6B,IAAI,EAAEz6B,CAAC,EAAE,EAAE;KAC3B,KAAK,IAAI3T,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGmuC,IAAI,EAAEnuC,CAAC,EAAE,EAAE;CAC3B2F,MAAAA,MAAM,CAAC3B,GAAG,CAAChE,CAAC,EAAE2T,CAAC,EAAEq6B,MAAM,CAACnkC,GAAG,CAACskC,IAAI,GAAG,CAAC,GAAGnuC,CAAC,EAAE2T,CAAC,CAAC,CAAC,CAAA;CACjD,KAAA;CACJ,GAAA;CAEA,EAAA,OAAOhO,MAAM,CAAA;CACjB;;CC7CA;CACA;CACA;CACA;CACA;CACA;CACe,yBAAA,EAAUqoC,MAAM,EAAE;CAC7B,EAAA,IAAAC,aAAA,GAAAn5B,cAAA,CAAqBk5B,MAAM,CAACE,KAAK,EAAA,CAAA,CAAA;CAA1BC,IAAAA,IAAI,GAAAF,aAAA,CAAA,CAAA,CAAA;CAAEG,IAAAA,IAAI,GAAAH,aAAA,CAAA,CAAA,CAAA,CAAA;;CAEjB;;CAEA,EAAA,IAAItoC,MAAM,GAAG0oC,SAAO,CAAC,IAAIvuC,UAAU,CAACquC,IAAI,GAAGC,IAAI,CAAC,EAAE,CAACA,IAAI,EAAED,IAAI,CAAC,CAAC,CAAA;GAE/D,IAAII,gBAAgB,GAAG5oC,MAAM,CAACuoC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;GAE1C,KAAK,IAAIluC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGmuC,IAAI,EAAEnuC,CAAC,EAAE,EAAE;KAC3B,KAAK,IAAI2T,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGy6B,IAAI,EAAEz6B,CAAC,EAAE,EAAE;CAC3BhO,MAAAA,MAAM,CAAC3B,GAAG,CAAC2P,CAAC,EAAE46B,gBAAgB,GAAGvuC,CAAC,EAAEguC,MAAM,CAACnkC,GAAG,CAAC7J,CAAC,EAAE2T,CAAC,CAAC,CAAC,CAAA;CACzD,KAAA;CACJ,GAAA;;CAEA;;CAEA,EAAA,OAAOhO,MAAM,CAAA;CACjB;;CC1BA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACe,SAAS6oC,WAAWA,CAAC5hB,CAAC,EAAEC,CAAC,EAAE4hB,OAAO,EAAE;CAC/C,EAAA,IAAMC,IAAI,GAAGlvC,IAAI,CAAC6X,GAAG,CAACuV,CAAC,CAAC,CAAA;CACxB,EAAA,IAAM+hB,IAAI,GAAGnvC,IAAI,CAAC6X,GAAG,CAACwV,CAAC,CAAC,CAAA;GACxB,IAAM+hB,IAAI,GAAGpvC,IAAI,CAAC6X,GAAG,CAACuV,CAAC,GAAGC,CAAC,CAAC,CAAA;GAC5B,IAAID,CAAC,KAAKC,CAAC,EAAE;CACT;CACA,IAAA,OAAO,IAAI,CAAA;CACf,GAAC,MAAM,IAAID,CAAC,KAAK,CAAC,IAAIC,CAAC,KAAK,CAAC,IAAI6hB,IAAI,GAAGC,IAAI,GAAGF,OAAO,GAAGA,OAAO,EAAE;CAC9D;CACA;KACA,OAAOG,IAAI,GAAGH,OAAO,CAAA;CACzB,GAAC,MAAM;CACH;CACA,IAAA,OAAOG,IAAI,GAAGpvC,IAAI,CAAC2tB,GAAG,CAACuhB,IAAI,GAAGC,IAAI,EAAE33B,MAAM,CAAC63B,SAAS,CAAC,GAAGJ,OAAO,CAAA;CACnE,GAAA;CACJ;;;;;;;;;;;;;CCtBA,IAAMlc,cAAY,GAAG;CACjBuc,EAAAA,oBAAoB,EAApBA,sBAAoB;CACpBtL,EAAAA,iBAAiB,EAAjBA,mBAAAA;CACJ,CAAC,CAAA;;CAID;CACA;CACA;CACA;CACA;CACA;CACA;;CAEA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,SAASsL,sBAAoBA,CACzBC,MAAM,EACNC,SAAS,EAEX;GAAA,IADElnC,OAAO,GAAAC,SAAA,CAAApI,MAAA,GAAAoI,CAAAA,IAAAA,SAAA,CAAAC,CAAAA,CAAAA,KAAAA,SAAA,GAAAD,SAAA,CAAG,CAAA,CAAA,GAAA;CAAEmyB,IAAAA,mBAAmB,EAAE,IAAA;IAAM,CAAA;CAEvC,EAAA,IAAQ6I,SAAS,GAAeiM,SAAS,CAAjCjM,SAAS;KAAEkM,QAAQ,GAAKD,SAAS,CAAtBC,QAAQ,CAAA;;CAE3B;CACA,EAAA,IAAMC,MAAM,GAAGH,MAAM,CAAC,CAAC,CAAC,CAAA;CAExB,EAAA,IAAMI,IAAI,GAAG;KACT1gC,CAAC,EAAEygC,MAAM,CAACE,OAAO;KACjBxI,CAAC,EAAEsI,MAAM,CAACf,IAAI;KACdlG,CAAC,EAAE8G,MAAM,CAACpvC,MAAAA;IACb,CAAA;GAEDwvC,IAAI,CAACE,EAAE,GAAGF,IAAI,CAAC1gC,CAAC,GAAG0gC,IAAI,CAACvI,CAAC,CAAA;CAEzB,EAAA,IAAM0I,WAAW,GAAGC,YAAY,CAACC,GAAG,EAAEP,QAAQ,CAAC,CAAA;GAE/C,IAAI,CAACK,WAAW,EAAE;CACd,IAAA,MAAM,IAAIxuC,KAAK,CAAC,wBAAwB,CAAC,CAAA;CAC7C,GAAA;GAEA,IAAM2uC,YAAY,GAAGP,MAAM,CAAC9L,OAAO,CAACv0B,QAAQ,CAAC,QAAQ,CAAC,CAAA;GACtD,IAAM2gC,GAAG,GAAGE,sBAAoB,CAACX,MAAM,EAAEU,YAAY,EAAE3nC,OAAO,CAAC,CAAA;GAE/D,IAAA6nC,qBAAA,GACIC,4BAA4B,CAAC7M,SAAS,EAAEgM,MAAM,EAAEE,QAAQ,CAAC;KADrDY,0BAA0B,GAAAF,qBAAA,CAA1BE,0BAA0B;KAAEC,eAAe,GAAAH,qBAAA,CAAfG,eAAe,CAAA;GAGnD,IAAIvc,cAAc,GAAG,CAAC,CAAA;CAEtB,EAAA,KAAK,IAAIvzB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG6vC,0BAA0B,CAAClwC,MAAM,EAAEK,CAAC,EAAE,EAAE;CACxDuzB,IAAAA,cAAc,IAAIsc,0BAA0B,CAAC7vC,CAAC,CAAC,CAACL,MAAM,CAAA;CAC1D,GAAA;CAEA6vC,EAAAA,GAAG,CAAC9U,iBAAiB,CAACnH,cAAc,CAAC,CAAA;CAErC,EAAA,KAAK,IAAIvzB,EAAC,GAAG,CAAC,EAAEA,EAAC,GAAG8vC,eAAe,CAACnwC,MAAM,EAAEK,EAAC,EAAE,EAAE;CAC7C,IAAA,IAAM07B,YAAY,GAAGoU,eAAe,CAAC9vC,EAAC,CAAC,CAAA;CACvC,IAAA,IAAM+vC,uBAAuB,GAAGF,0BAA0B,CAAC7vC,EAAC,CAAC,CAAA;;CAE7D;KACA,IAAMq7B,sBAAsB,GAAG0U,uBAAuB,CAACziC,GAAG,CAAC,UAAArC,OAAO,EAAI;OAClE,OAAOA,OAAO,GAAG,CAAC,CAAA;CACtB,KAAC,CAAC,CAAA;CAEF,IAAA,IAAM+kC,OAAO,GAAGf,QAAQ,CAACvT,YAAY,CAAC,CAAA;CAEtC8T,IAAAA,GAAG,CAACrT,UAAU,CACV6T,OAAO,EACPC,iCAAiC,CAC7BvU,YAAY,EACZqU,uBAAuB,EACvBhN,SAAS,EACTgM,MAAM,EACNI,IACJ,CAAC,EACD9T,sBACJ,CAAC,CAAA;CACL,GAAA;GAEAmU,GAAG,CAAC7U,gBAAgB,EAAE,CAAA;CAEtB,EAAA,IAAMuV,OAAO,GAAGhiB,aAAa,CAACshB,GAAG,CAACrtB,OAAO,CAAC,CAAA;CAE1C,EAAA,OAAO+tB,OAAO,CAAA;CAClB,CAAA;CAEA,SAASD,iCAAiCA,CACtCvU,YAAY,EACZyU,gBAAgB,EAChBpN,SAAS,EACTgM,MAAM,EACNI,IAAI,EACN;CACE,EAAA,IAAMzvC,SAAS,GAAG,IAAII,UAAU,CAACqvC,IAAI,CAACE,EAAE,GAAGc,gBAAgB,CAACxwC,MAAM,CAAC,CAAA;GAEnE,IAAIywC,cAAc,GAAG,CAAC,CAAA;CAEtB,EAAA,KAAK,IAAIpwC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGmwC,gBAAgB,CAACxwC,MAAM,EAAEK,CAAC,EAAE,EAAE;CAC9C,IAAA,IAAM20B,KAAK,GAAGwb,gBAAgB,CAACnwC,CAAC,CAAC,CAAA;CAEjC,IAAA,IAAMojC,OAAO,GAAG2L,MAAM,CAACpa,KAAK,CAAC,CAACyO,OAAO,CAAA;CACrC,IAAA,IAAMiN,wBAAwB,GAAGtN,SAAS,CAACK,OAAO,CAAC,CAAA;KAEnD,IAAMkN,cAAc,GAChBD,wBAAwB,CAACE,KAAK,CAAC1tB,IAAI,CAAC6Y,YAAY,CAAC,CAACh8B,SAAS,CAAA;CAE/D,IAAA,KAAK,IAAI8wC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGF,cAAc,CAAC3wC,MAAM,EAAE6wC,CAAC,EAAE,EAAE;CAC5C9wC,MAAAA,SAAS,CAAC0wC,cAAc,CAAC,GAAGE,cAAc,CAACE,CAAC,CAAC,CAAA;CAC7CJ,MAAAA,cAAc,EAAE,CAAA;CACpB,KAAA;CACJ,GAAA;CAEA,EAAA,OAAO1wC,SAAS,CAAA;CACpB,CAAA;CAEA,SAASkwC,4BAA4BA,CAAC7M,SAAS,EAAEgM,MAAM,EAAEE,QAAQ,EAAE;GAC/D,IAAMa,eAAe,GAAG,EAAE,CAAA;GAC1B,IAAMD,0BAA0B,GAAG,EAAE,CAAA;CAErC,EAAA,KAAK,IAAI7vC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGivC,QAAQ,CAACtvC,MAAM,EAAEK,CAAC,EAAE,EAAE;CACtC,IAAA,IAAIivC,QAAQ,CAACjvC,CAAC,CAAC,EAAE;CACb8vC,MAAAA,eAAe,CAACrlC,IAAI,CAACzK,CAAC,CAAC,CAAA;CACvB6vC,MAAAA,0BAA0B,CAACplC,IAAI,CAAC,EAAE,CAAC,CAAA;CACvC,KAAA;CACJ,GAAA;CAEA,EAAA,KAAK,IAAIw9B,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG8G,MAAM,CAACpvC,MAAM,EAAEsoC,CAAC,EAAE,EAAE;CACpC,IAAA,IAAM7E,OAAO,GAAG2L,MAAM,CAAC9G,CAAC,CAAC,CAAC7E,OAAO,CAAA;CACjC,IAAA,IAAMiN,wBAAwB,GAAGtN,SAAS,CAACK,OAAO,CAAC,CAAA;CAEnD,IAAA,KAAK,IAAIpjC,GAAC,GAAG,CAAC,EAAEA,GAAC,GAAG8vC,eAAe,CAACnwC,MAAM,EAAEK,GAAC,EAAE,EAAE;CAC7C,MAAA,IAAMywC,MAAM,GAAGX,eAAe,CAAC9vC,GAAC,CAAC,CAAA;CAEjC,MAAA,IACIqwC,wBAAwB,IACxBA,wBAAwB,CAACE,KAAK,IAC9BF,wBAAwB,CAACE,KAAK,CAAC1tB,IAAI,IACnCwtB,wBAAwB,CAACE,KAAK,CAAC1tB,IAAI,CAAC4tB,MAAM,CAAC,IAC3CJ,wBAAwB,CAACE,KAAK,CAAC1tB,IAAI,CAAC4tB,MAAM,CAAC,CAAC/wC,SAAS,EACvD;CACEmwC,QAAAA,0BAA0B,CAAC7vC,GAAC,CAAC,CAACyK,IAAI,CAACw9B,CAAC,CAAC,CAAA;CACzC,OAAA;CACJ,KAAA;CACJ,GAAA;GAEA,OAAO;CACH4H,IAAAA,0BAA0B,EAA1BA,0BAA0B;CAC1BC,IAAAA,eAAe,EAAfA,eAAAA;IACH,CAAA;CACL,CAAA;CAEA,SAASP,YAAYA,CAACC,GAAG,EAAEP,QAAQ,EAAE;GACjC,IAAIK,WAAW,GAAG,CAAC,CAAA;CAEnB,EAAA,KAAK,IAAItvC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGivC,QAAQ,CAACtvC,MAAM,EAAEK,CAAC,EAAE,EAAE;CACtC,IAAA,IAAIivC,QAAQ,CAACjvC,CAAC,CAAC,EAAE;CACbsvC,MAAAA,WAAW,EAAE,CAAA;CACjB,KAAA;CACJ,GAAA;CAEA,EAAA,OAAOA,WAAW,CAAA;CACtB,CAAA;;CAEA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,SAASI,sBAAoBA,CAACX,MAAM,EAAEU,YAAY,EAAE3nC,OAAO,EAAE;GACzD,IAAMumB,QAAQ,GAAG,EAAE,CAAA;CAEnB,EAAA,IAAIohB,YAAY,EAAE;CACd,IAAA,IAAMiB,KAAK,GAAG3B,MAAM,CAAC,CAAC,CAAC,CAAA;KACvB,IAAMjwB,WAAW,GAAG4xB,KAAK,CAAC7tB,IAAI,CAACxiB,SAAS,CAACiB,MAAM,CAAA;CAE/C,IAAA,IAAMqvC,SAAS,GAAG5kC,YAAY,CAACma,QAAQ,CAACpH,WAAW,CAAC,CAAA;KACpD,IAAMqD,OAAO,GAAGpT,mBAAmB,CAACuU,iBAAiB,CAACqtB,SAAS,CAAC1rB,IAAI,CAAC,CAAA;KAErE9C,OAAO,CAACoL,KAAK,GAAGxe,mBAAmB,CAACkU,aAAa,CAAC0tB,SAAS,CAACtpB,IAAI,CAAC,CAAA;CAEjEgH,IAAAA,QAAQ,CAAC5jB,IAAI,CAAC0X,OAAO,CAAC,CAAA;CAC1B,GAAC,MAAM;CACH,IAAA,KAAK,IAAIniB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG+uC,MAAM,CAACpvC,MAAM,EAAEK,CAAC,EAAE,EAAE;CACpC,MAAA,IAAM0wC,MAAK,GAAG3B,MAAM,CAAC/uC,CAAC,CAAC,CAAA;OACvB,IAAM8e,YAAW,GAAG4xB,MAAK,CAAC7tB,IAAI,CAACxiB,SAAS,CAACiB,MAAM,CAAA;CAC/C,MAAA,IAAMqvC,UAAS,GAAG5kC,YAAY,CAACma,QAAQ,CAACpH,YAAW,CAAC,CAAA;OACpD,IAAMqD,QAAO,GAAGpT,mBAAmB,CAACuU,iBAAiB,CACjDqtB,UAAS,CAAC1rB,IACd,CAAC,CAAA;OAED9C,QAAO,CAACoL,KAAK,GAAGxe,mBAAmB,CAACkU,aAAa,CAAC0tB,UAAS,CAACtpB,IAAI,CAAC,CAAA;CACjEgH,MAAAA,QAAQ,CAAC5jB,IAAI,CAAC0X,QAAO,CAAC,CAAA;CAC1B,KAAA;CACJ,GAAA;CAEA,EAAA,IAAMyuB,UAAU,GAAG9f,UAAU,CAACgC,kBAAkB,CAACzE,QAAQ,CAAC,CAAA;GAE1D,OAAO,IAAIwiB,cAAsB,CAAC,CAACD,UAAU,CAAC,EAAE9oC,OAAO,CAAC,CAAA;CAC5D,CAAA;;CAEA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,SAAS07B,mBAAiBA,CAACsN,QAAQ,EAAEhyB,WAAW,EAAEkkB,gBAAgB,EAAE;CAChE,EAAA,IAAM2N,SAAS,GAAG5kC,YAAY,CAACma,QAAQ,CAACpH,WAAW,CAAC,CAAA;GACpD,IAAMqD,OAAO,GAAGpT,mBAAmB,CAACuU,iBAAiB,CAACqtB,SAAS,CAAC1rB,IAAI,CAAC,CAAA;GACrE9C,OAAO,CAACoL,KAAK,GAAGxe,mBAAmB,CAACkU,aAAa,CAAC0tB,SAAS,CAACtpB,IAAI,CAAC,CAAA;GACjE,IAAMupB,UAAU,GAAG9f,UAAU,CAACgC,kBAAkB,CAAC,CAAC3Q,OAAO,CAAC,CAAC,CAAA;CAE3D,EAAA,IAAM4uB,gBAAgB,GAAG/N,gBAAgB,CAACn5B,GAAG,CACzC,kBAAkB,EAClBinC,QAAQ,CAAC,CAAC,CACd,CAAC,CAAA;GAED,IAAI,CAACC,gBAAgB,EAAE;CACnBlW,IAAAA,OAAO,CAACtW,IAAI,CAAC,kDAAkD,CAAC,CAAA;CACpE,GAAA;CAEA,EAAA,IAAM0P,uBAAuB,GAAG1pB,KAAK,CAACC,OAAO,CAACumC,gBAAgB,CAACC,UAAU,CAAC,GAAArqC,EAAAA,CAAAA,MAAA,CAAA05B,kBAAA,CAChE0Q,gBAAgB,CAACC,UAAU,CAAA3Q,EAAAA,kBAAA,CAAK0Q,gBAAgB,CAACE,aAAa,CAClE,CAAA,GAAA,CACIF,gBAAgB,CAACC,UAAU,CAACviC,CAAC,EAC7BsiC,gBAAgB,CAACC,UAAU,CAACpK,CAAC,EAC7BmK,gBAAgB,CAACC,UAAU,CAAC/I,CAAC,EAC7B8I,gBAAgB,CAACE,aAAa,CAACxiC,CAAC,EAChCsiC,gBAAgB,CAACE,aAAa,CAACrK,CAAC,EAChCmK,gBAAgB,CAACE,aAAa,CAAChJ,CAAC,CACnC,CAAA;;CAEP;CACA,EAAA,IAAMiJ,iBAAiB,GAAGC,sBAAoB,CAACld,uBAAuB,CAAC,CAAA;CAEvE,EAAA,IAAMxD,8BAA8B,GAChCmgB,UAAU,CAACngB,8BAA8B,CAAA;CAE7C,EAAA,IAAM2gB,6BAA6B,GAC/B3gB,8BAA8B,CAAC6E,wBAAwB,GACjD7E,8BAA8B,CAAC6E,wBAAwB,CAClDrB,uBAAuB,GAC5BjsB,SAAS,CAAA;GAEnB,IAAM4zB,WAAW,GAAGgV,UAAU,CAACnd,OAAO,GAAGmd,UAAU,CAACpd,IAAI,CAAA;CACxD,EAAA,IAAM6d,WAAW,GAAGC,oBAAkB,CAACV,UAAU,CAAC,CAAA;CAClD,EAAA,IAAMlxC,SAAS,GAAG6xC,iBAAe,CAACX,UAAU,CAAC,CAAA;CAE7C,EAAA,IAAMlgB,gCAAgC,GAClCkgB,UAAU,CAAClgB,gCAAgC,CAAA;GAE/C,IAAMqS,SAAS,GAAG,EAAE,CAAA;GAEpB,IAAIyO,OAAO,GAAG,IAAI,CAAA;CAElB,EAAA,KAAK,IAAIxxC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG0wB,gCAAgC,CAAC/wB,MAAM,EAAEK,CAAC,EAAE,EAAE;CAC9D,IAAA,IAAMyxC,wBAAwB,GAAG/gB,gCAAgC,CAAC1wB,CAAC,CAAC,CAAA;KAEpE,IAAM0xC,wBAAwB,GAC1BN,6BAA6B,IAC7BK,wBAAwB,CAACnc,wBAAwB,CAC5CrB,uBAAuB,CAAA;KAEhC,IAAM0d,YAAY,GAAGtD,SAAO,CACxB,IAAIvuC,UAAU,CAACJ,SAAS,CAAC4B,MAAM,EAAEtB,CAAC,GAAG47B,WAAW,EAAEA,WAAW,CAAC,EAC9D,CAACgV,UAAU,CAACpd,IAAI,EAAEod,UAAU,CAACnd,OAAO,CACxC,CAAC,CAAA;KAED,IAAMme,iBAAiB,GAAGC,8BAA4B,CAClDF,YAAY,EACZD,wBAAwB,EACxBR,iBACJ,CAAC,CAAA;KAED,IAAI,CAACU,iBAAiB,EAAE;CACpB/W,MAAAA,OAAO,CAACtW,IAAI,CACR,8HACJ,CAAC,CAAA;CACDitB,MAAAA,OAAO,GAAG,KAAK,CAAA;CACf,MAAA,MAAA;CACJ,KAAA;KAEA,IAAM9V,YAAY,GACd+V,wBAAwB,CAACnV,6BAA6B,CACjDf,uBAAuB,GAAG,CAAC,CAAA;CAEpC,IAAA,IAAImB,mBAAmB,GAAA,KAAA,CAAA,CAAA;KACvB,IACIjM,8BAA8B,CAACgM,uBAAuB,IACtDhM,8BAA8B,CAACgM,uBAAuB,CACjDC,mBAAmB,EAC1B;OACEA,mBAAmB,GACfjM,8BAA8B,CAACgM,uBAAuB,CACjDC,mBAAmB,CAAC18B,CAAC,CAAC,CAAA;CACnC,KAAC,MAAM;CACH08B,MAAAA,mBAAmB,GACf+U,wBAAwB,CAAChV,uBAAuB,CAC3CC,mBAAmB,CAAA;CAChC,KAAA;KAEA,IAAM0G,OAAO,GAAG0O,uBAAuB,CACnCpV,mBAAmB,EACnBoU,QAAQ,EACR9N,gBACJ,CAAC,CAAA;KAED+O,gCAAgC,CAC5BhP,SAAS,EACTK,OAAO,EACP1H,YAAY,EACZkW,iBACJ,CAAC,CAAA;CACL,GAAA;GAEA,IAAI,CAACJ,OAAO,EAAE;CACV,IAAA,OAAA;CACJ,GAAA;GAEA,OAAO;CAAEzO,IAAAA,SAAS,EAATA,SAAS;CAAEsO,IAAAA,WAAW,EAAXA,WAAAA;IAAa,CAAA;CACrC,CAAA;;CAEA;CACA;CACA;CACA;CACA;CACA;CACA,SAASE,iBAAeA,CAACX,UAAU,EAAE;CACjC,EAAA,IAAMoB,OAAO,GAAGpB,UAAU,CAACpW,gBAAgB,CAAA;GAE3C,IAAIwX,OAAO,KAAK,QAAQ,EAAE;CACtB,IAAA,OAAO/yC,QAAQ,CAACG,MAAM,CAACwxC,UAAU,CAACjgB,SAAS,CAAC,CAAA;CAChD,GAAA;GAEA,IAAMjxB,SAAS,GAAG,IAAII,UAAU,CAAC8wC,UAAU,CAACjgB,SAAS,CAAC,CAAA;CAEtD,EAAA,IAAMuZ,GAAG,GAAG0G,UAAU,CAACqB,sBAAsB,CAAA;CAC7C,EAAA,IAAMC,cAAc,GAChBxyC,SAAS,CAACmgC,IAAI,CAAC,UAAA50B,OAAO,EAAA;CAAA,IAAA,OAAIA,OAAO,KAAK,CAAC,IAAIA,OAAO,KAAKi/B,GAAG,CAAA;CAAA,GAAA,CAAC,KAC3DliC,SAAS,CAAA;GAEb,IAAI,CAACkqC,cAAc,EAAE;CACjBrzC,IAAAA,GAAG,CAAC0lB,IAAI,CACJ,sEACJ,CAAC,CAAA;CACD,IAAA,OAAA;CACJ,GAAA;CAEA1lB,EAAAA,GAAG,CAAC0lB,IAAI,CACJ,oEACJ,CAAC,CAAA;CAED,EAAA,OAAO7kB,SAAS,CAAA;CACpB,CAAA;;CAEA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,SAASqyC,gCAAgCA,CACrChP,SAAS,EACTK,OAAO,EACP1H,YAAY,EACZyW,WAAW,EACb;CACE,EAAA,IAAI,CAACpP,SAAS,CAACK,OAAO,CAAC,EAAE;CACrBL,IAAAA,SAAS,CAACK,OAAO,CAAC,GAAG,EAAE,CAAA;CACvBL,IAAAA,SAAS,CAACK,OAAO,CAAC,CAACmN,KAAK,GAAG,EAAE,CAAA;KAC7BxN,SAAS,CAACK,OAAO,CAAC,CAACmN,KAAK,CAAC1tB,IAAI,GAAG,EAAE,CAAA;IACrC,MAAM,IAAI,CAACkgB,SAAS,CAACK,OAAO,CAAC,CAACmN,KAAK,EAAE;CAClCxN,IAAAA,SAAS,CAACK,OAAO,CAAC,CAACmN,KAAK,GAAG,EAAE,CAAA;KAC7BxN,SAAS,CAACK,OAAO,CAAC,CAACmN,KAAK,CAAC1tB,IAAI,GAAG,EAAE,CAAA;IACrC,MAAM,IAAI,CAACkgB,SAAS,CAACK,OAAO,CAAC,CAACmN,KAAK,CAAC1tB,IAAI,EAAE;KACvCkgB,SAAS,CAACK,OAAO,CAAC,CAACmN,KAAK,CAAC1tB,IAAI,GAAG,EAAE,CAAA;CACtC,GAAA;CAEAkgB,EAAAA,SAAS,CAACK,OAAO,CAAC,CAACmN,KAAK,CAAC1tB,IAAI,CAAC6Y,YAAY,CAAC,GAAG,EAAE,CAAA;CAEhD,EAAA,IAAM0W,UAAU,GAAGrP,SAAS,CAACK,OAAO,CAAC,CAACmN,KAAK,CAAC1tB,IAAI,CAAC6Y,YAAY,CAAC,CAAA;GAE9D0W,UAAU,CAAC1yC,SAAS,GAAG,IAAII,UAAU,CAACqyC,WAAW,CAACtvB,IAAI,CAACljB,MAAM,CAAC,CAAA;CAE9D,EAAA,IAAM0yC,eAAe,GAAGD,UAAU,CAAC1yC,SAAS,CAAA;CAE5C,EAAA,IAAA4yC,kBAAA,GAAAx9B,cAAA,CAAqBq9B,WAAW,CAACjE,KAAK,EAAA,CAAA,CAAA,CAAA;CAA/BC,IAAImE,kBAAA,CAAA,CAAA,CAAA,CAAA;CAAElE,IAAIkE,kBAAA,CAAA,CAAA,EAAA;CAEjB,EAAA,KAAK,IAAI9B,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG6B,eAAe,CAAC1yC,MAAM,EAAE6wC,CAAC,EAAE,EAAE;CAC7C,IAAA,IAAI2B,WAAW,CAACtvB,IAAI,CAAC2tB,CAAC,CAAC,EAAE;CACrB6B,MAAAA,eAAe,CAAC7B,CAAC,CAAC,GAAG,CAAC,CAAA;CAC1B,KAAC,MAAM;CACH6B,MAAAA,eAAe,CAAC7B,CAAC,CAAC,GAAG,CAAC,CAAA;CAC1B,KAAA;CACJ,GAAA;CACJ,CAAA;;CAEA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,SAASsB,uBAAuBA,CAC5BpV,mBAAmB,EACnBoU,QAAQ,EACR9N,gBAAgB,EAClB;CACE,EAAA,IAAQ/M,wBAAwB,GAC5ByG,mBAAmB,CADfzG,wBAAwB;KAAEsG,qBAAqB,GACnDG,mBAAmB,CADWH,qBAAqB,CAAA;GAGvD,OAAOA,qBAAqB,GACtBgW,6BAA2B,CACvBtc,wBAAwB,EACxBsG,qBAAqB,EACrBuU,QAAQ,EACR9N,gBACJ,CAAC,GACDwP,+CAA6C,CACzCvc,wBAAwB,EACxB6a,QAAQ,EACR9N,gBACJ,CAAC,CAAA;CACX,CAAA;;CAEA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,SAASwP,+CAA6CA,CAClDnQ,cAAc,EACdyO,QAAQ,EACR9N,gBAAgB,EAClB;CACE,EAAA,OAAO8N,QAAQ,CAACjR,IAAI,CAAC,UAAAuD,OAAO,EAAI;KAC5B,IAAMC,eAAe,GAAGL,gBAAgB,CAACn5B,GAAG,CACxC,iBAAiB,EACjBu5B,OACJ,CAAC,CAAA;KACD,IAAI,CAACC,eAAe,EAAE;CAClB,MAAA,OAAA;CACJ,KAAA;CAEA,IAAA,OAAOA,eAAe,CAACtZ,cAAc,KAAKsY,cAAc,CAAA;CAC5D,GAAC,CAAC,CAAA;CACN,CAAA;;CAEA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,SAASkQ,6BAA2BA,CAChClQ,cAAc,EACd7K,WAAW,EACXsZ,QAAQ,EACR9N,gBAAgB,EAClB;GACE,IAAMI,OAAO,GAAG0N,QAAQ,CAACjR,IAAI,CAAC,UAAAuD,OAAO,EAAI;KACrC,IAAMC,eAAe,GAAGL,gBAAgB,CAACn5B,GAAG,CACxC,iBAAiB,EACjBu5B,OACJ,CAAC,CAAA;KACD,IAAI,CAACC,eAAe,EAAE;CAClB,MAAA,OAAA;CACJ,KAAA;CAEA,IAAA,IAAMoP,kBAAkB,GAAGz7B,MAAM,CAACosB,OAAO,CAACl2B,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;CAE7D,IAAA;CACI;OACAm2B,eAAe,CAACtZ,cAAc,KAAKsY,cAAc,IACjDoQ,kBAAkB,KAAKjb,WAAW,GAAG,CAAA;CAAC,MAAA;CAE9C,GAAC,CAAC,CAAA;CAEF,EAAA,OAAO4L,OAAO,CAAA;CAClB,CAAA;;CAEA;CACA;CACA;CACA;CACA;CACA;CACA,SAAS+N,sBAAoBA,CAACtE,GAAG,EAAE;GAC/B,IAAM6F,YAAY,GAAG,EAAE,CAAA;;CAEvB;CACA;CACA;;CAEAA,EAAAA,YAAY,CAAC,CAAC,CAAC,GAAG7F,GAAG,CAAA;GACrB6F,YAAY,CAAC,CAAC,CAAC,GAAGC,2BAAO,CAAC/F,CAAC,CAACC,GAAG,CAAC,CAAA;GAChC6F,YAAY,CAAC,CAAC,CAAC,GAAGC,2BAAO,CAACjwC,CAAC,CAACmqC,GAAG,CAAC,CAAA;GAEhC,IAAM+F,KAAK,GAAGC,6BAA6B,CAAChG,GAAG,EAAErtC,IAAI,CAACwsC,EAAE,GAAG,CAAC,CAAC,CAAA;CAE7D0G,EAAAA,YAAY,CAAC,CAAC,CAAC,GAAGE,KAAK,CAAA;GACvBF,YAAY,CAAC,CAAC,CAAC,GAAGC,2BAAO,CAAC/F,CAAC,CAACgG,KAAK,CAAC,CAAA;GAClCF,YAAY,CAAC,CAAC,CAAC,GAAGC,2BAAO,CAACjwC,CAAC,CAACkwC,KAAK,CAAC,CAAA;GAElCF,YAAY,CAAC,CAAC,CAAC,GAAGG,6BAA6B,CAAChG,GAAG,EAAErtC,IAAI,CAACwsC,EAAE,CAAC,CAAA;CAC7D0G,EAAAA,YAAY,CAAC,CAAC,CAAC,GAAGG,6BAA6B,CAAChG,GAAG,EAAE,GAAG,GAAGrtC,IAAI,CAACwsC,EAAE,CAAC,CAAA;CAEnE,EAAA,OAAO0G,YAAY,CAAA;CACvB,CAAA;;CAEA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,SAASb,8BAA4BA,CAACM,WAAW,EAAEtF,GAAG,EAAE6F,YAAY,EAAE;GAClE,IAAII,UAAU,CAACjG,GAAG,EAAE6F,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE;CAClC;CACA,IAAA,OAAOP,WAAW,CAAA;IACrB,MAAM,IAAIW,UAAU,CAACjG,GAAG,EAAE6F,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE;CACzC;CACA,IAAA,OAAO3E,YAAY,CAACrrC,CAAC,CAACyvC,WAAW,CAAC,CAAA;IACrC,MAAM,IAAIW,UAAU,CAACjG,GAAG,EAAE6F,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE;CACzC;CACA,IAAA,OAAO3E,YAAY,CAACnB,CAAC,CAACuF,WAAW,CAAC,CAAA;IACrC,MAAM,IAAIW,UAAU,CAACjG,GAAG,EAAE6F,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE;CACzC;KACA,OAAOK,gBAAgB,CAACZ,WAAW,CAAC,CAAA;IACvC,MAAM,IAAIW,UAAU,CAACjG,GAAG,EAAE6F,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE;CACzC;KACA,OAAO3E,YAAY,CAACnB,CAAC,CAACmG,gBAAgB,CAACZ,WAAW,CAAC,CAAC,CAAA;IACvD,MAAM,IAAIW,UAAU,CAACjG,GAAG,EAAE6F,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE;CACzC;KACA,OAAO3E,YAAY,CAACrrC,CAAC,CAACqwC,gBAAgB,CAACZ,WAAW,CAAC,CAAC,CAAA;IACvD,MAAM,IAAIW,UAAU,CAACjG,GAAG,EAAE6F,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE;CACzC;CACA,IAAA,OAAOK,gBAAgB,CAACA,gBAAgB,CAACZ,WAAW,CAAC,CAAC,CAAA;IACzD,MAAM,IAAIW,UAAU,CAACjG,GAAG,EAAE6F,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE;CACzC;KACA,OAAOK,gBAAgB,CACnBA,gBAAgB,CAACA,gBAAgB,CAACZ,WAAW,CAAC,CAClD,CAAC,CAAA;CACL,GAAA;CACJ,CAAA;CAEA,IAAMa,EAAE,GAAG,IAAI,CAAA;;CAEf;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,SAASF,UAAUA,CAACG,IAAI,EAAEC,IAAI,EAAE;GAC5B,OACI1zC,IAAI,CAAC6X,GAAG,CAAC47B,IAAI,CAAC,CAAC,CAAC,GAAGC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAGF,EAAE,IAChCxzC,IAAI,CAAC6X,GAAG,CAAC47B,IAAI,CAAC,CAAC,CAAC,GAAGC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAGF,EAAE,IAChCxzC,IAAI,CAAC6X,GAAG,CAAC47B,IAAI,CAAC,CAAC,CAAC,GAAGC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAGF,EAAE,IAChCxzC,IAAI,CAAC6X,GAAG,CAAC47B,IAAI,CAAC,CAAC,CAAC,GAAGC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAGF,EAAE,IAChCxzC,IAAI,CAAC6X,GAAG,CAAC47B,IAAI,CAAC,CAAC,CAAC,GAAGC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAGF,EAAE,IAChCxzC,IAAI,CAAC6X,GAAG,CAAC47B,IAAI,CAAC,CAAC,CAAC,GAAGC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAGF,EAAE,CAAA;CAExC,CAAA;CAEA,SAAS1B,oBAAkBA,CAACV,UAAU,EAAE;GACpC,IAAM/tB,IAAI,GAAG,EAAE,CAAA;CAEf,EAAA,IAAMswB,eAAe,GAAGvC,UAAU,CAACnW,eAAe,CAAA;CAElD,EAAA,IAAIlwB,KAAK,CAACC,OAAO,CAAC2oC,eAAe,CAAC,EAAE;CAChC,IAAA,KAAK,IAAI1C,MAAM,GAAG,CAAC,EAAEA,MAAM,GAAG0C,eAAe,CAACxzC,MAAM,EAAE8wC,MAAM,EAAE,EAAE;CAC5D5tB,MAAAA,IAAI,CAACpY,IAAI,CAAC0oC,eAAe,CAAC1C,MAAM,CAAC,CAAC,CAAA;CACtC,KAAA;CACJ,GAAC,MAAM;CACH;CACA5tB,IAAAA,IAAI,CAACpY,IAAI,CAAC0oC,eAAe,CAAC,CAAA;CAC9B,GAAA;GAEA,OAAO;CACHC,IAAAA,iBAAiB,EACbxC,UAAU,CAAClb,wBAAwB,CAAC7L,iBAAiB;CACzDhH,IAAAA,IAAI,EAAJA,IAAAA;IACH,CAAA;CACL;;CCxnBA;CACA;CACA;CACA;CACA;CACO,IAAIwwB,SAAO,GAAG,QAAQ,CAAC;CACvB,IAAI,UAAU,GAAG,OAAO,YAAY,KAAK,WAAW,GAAG,YAAY,GAAG,KAAK,CAAC;CAC5E,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;CAiChC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,GAAG,YAAY;CAC1C,EAAE,IAAI,CAAC,GAAG,CAAC;CACX,MAAM,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC;AAC3B;CACA,EAAE,OAAO,CAAC,EAAE,EAAE;CACd,IAAI,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;CACrC,GAAG;AACH;CACA,EAAE,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;CACtB,CAAC;;CChDD;CACA;CACA;CACA;AACA;CACA;CACA;CACA;CACA;CACA;AACA;CACO,SAAS,MAAM,GAAG;CACzB,EAAE,IAAI,GAAG,GAAG,IAAIC,UAAmB,CAAC,CAAC,CAAC,CAAC;AACvC;CACA,EAAE,IAAIA,UAAmB,IAAI,YAAY,EAAE;CAC3C,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;CACf,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;CACf,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;CACf,GAAG;AACH;CACA,EAAE,OAAO,GAAG,CAAC;CACb,CAAC;CACD;CACA;CACA;CACA;CACA;CACA;AACA;CACO,SAAS,KAAK,CAAC,CAAC,EAAE;CACzB,EAAE,IAAI,GAAG,GAAG,IAAIA,UAAmB,CAAC,CAAC,CAAC,CAAC;CACvC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;CAChB,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;CAChB,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;CAChB,EAAE,OAAO,GAAG,CAAC;CACb,CAAC;CACD;CACA;CACA;CACA;CACA;CACA;AACA;CACO,SAAS,MAAM,CAAC,CAAC,EAAE;CAC1B,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;CACf,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;CACf,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;CACf,EAAE,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;CAC7B,CAAC;CACD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;CACO,SAAS,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;CACpC,EAAE,IAAI,GAAG,GAAG,IAAIA,UAAmB,CAAC,CAAC,CAAC,CAAC;CACvC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;CACb,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;CACb,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;CACb,EAAE,OAAO,GAAG,CAAC;CACb,CAAC;CACD;CACA;CACA;CACA;CACA;CACA;CACA;AACA;CACO,SAAS,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE;CAC7B,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;CAChB,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;CAChB,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;CAChB,EAAE,OAAO,GAAG,CAAC;CACb,CAAC;CACD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;CACO,SAAS,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;CAClC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;CACb,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;CACb,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;CACb,EAAE,OAAO,GAAG,CAAC;CACb,CAAC;CACD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;CACO,SAAS,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE;CAC/B,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;CACvB,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;CACvB,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;CACvB,EAAE,OAAO,GAAG,CAAC;CACb,CAAC;CACD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;CACO,SAASC,UAAQ,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE;CACpC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;CACvB,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;CACvB,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;CACvB,EAAE,OAAO,GAAG,CAAC;CACb,CAAC;CACD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;CACO,SAAS,QAAQ,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE;CACpC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;CACvB,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;CACvB,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;CACvB,EAAE,OAAO,GAAG,CAAC;CACb,CAAC;CACD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;CACO,SAAS,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE;CAClC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;CACvB,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;CACvB,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;CACvB,EAAE,OAAO,GAAG,CAAC;CACb,CAAC;CACD;CACA;CACA;CACA;CACA;CACA;CACA;AACA;CACO,SAAS,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE;CAC7B,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAC3B,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAC3B,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAC3B,EAAE,OAAO,GAAG,CAAC;CACb,CAAC;CACD;CACA;CACA;CACA;CACA;CACA;CACA;AACA;CACO,SAAS,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE;CAC9B,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAC5B,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAC5B,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAC5B,EAAE,OAAO,GAAG,CAAC;CACb,CAAC;CACD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;CACO,SAAS,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE;CAC/B,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAChC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAChC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAChC,EAAE,OAAO,GAAG,CAAC;CACb,CAAC;CACD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;CACO,SAAS,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE;CAC/B,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAChC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAChC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAChC,EAAE,OAAO,GAAG,CAAC;CACb,CAAC;CACD;CACA;CACA;CACA;CACA;CACA;CACA;AACA;CACO,SAAS,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE;CAC9B,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAC5B,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAC5B,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAC5B,EAAE,OAAO,GAAG,CAAC;CACb,CAAC;CACD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;CACO,SAAS,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE;CACjC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;CACpB,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;CACpB,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;CACpB,EAAE,OAAO,GAAG,CAAC;CACb,CAAC;CACD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;CACO,SAAS,WAAW,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE;CAC9C,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;CAC/B,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;CAC/B,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;CAC/B,EAAE,OAAO,GAAG,CAAC;CACb,CAAC;CACD;CACA;CACA;CACA;CACA;CACA;CACA;AACA;CACO,SAAS,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE;CAC/B,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;CACtB,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;CACtB,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;CACtB,EAAE,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;CAC7B,CAAC;CACD;CACA;CACA;CACA;CACA;CACA;CACA;AACA;CACO,SAAS,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE;CACtC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;CACtB,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;CACtB,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;CACtB,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;CAC/B,CAAC;CACD;CACA;CACA;CACA;CACA;CACA;AACA;CACO,SAAS,aAAa,CAAC,CAAC,EAAE;CACjC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;CACf,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;CACf,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;CACf,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;CAC/B,CAAC;CACD;CACA;CACA;CACA;CACA;CACA;CACA;AACA;CACO,SAAS,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE;CAC/B,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACjB,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACjB,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACjB,EAAE,OAAO,GAAG,CAAC;CACb,CAAC;CACD;CACA;CACA;CACA;CACA;CACA;CACA;AACA;CACO,SAAS,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE;CAChC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;CACtB,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;CACtB,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;CACtB,EAAE,OAAO,GAAG,CAAC;CACb,CAAC;CACD;CACA;CACA;CACA;CACA;CACA;CACA;AACA;CACO,SAASxiB,WAAS,CAAC,GAAG,EAAE,CAAC,EAAE;CAClC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;CACf,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;CACf,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;CACf,EAAE,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAClC;CACA,EAAE,IAAI,GAAG,GAAG,CAAC,EAAE;CACf;CACA,IAAI,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;CAC7B,GAAG;AACH;CACA,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;CACtB,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;CACtB,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;CACtB,EAAE,OAAO,GAAG,CAAC;CACb,CAAC;CACD;CACA;CACA;CACA;CACA;CACA;CACA;AACA;CACO,SAAS,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE;CAC1B,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;CACjD,CAAC;CACD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;CACO,SAASyiB,OAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE;CACjC,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;CACf,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;CACf,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;CAChB,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;CACf,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;CACf,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;CAChB,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;CAC7B,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;CAC7B,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;CAC7B,EAAE,OAAO,GAAG,CAAC;CACb,CAAC;CACD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;CACO,SAAS,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;CACnC,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;CAChB,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;CAChB,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;CAChB,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;CAChC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;CAChC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;CAChC,EAAE,OAAO,GAAG,CAAC;CACb,CAAC;CACD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;CACO,SAAS,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;CAC5C,EAAE,IAAI,YAAY,GAAG,CAAC,GAAG,CAAC,CAAC;CAC3B,EAAE,IAAI,OAAO,GAAG,YAAY,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;CAC/C,EAAE,IAAI,OAAO,GAAG,YAAY,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;CAC3C,EAAE,IAAI,OAAO,GAAG,YAAY,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;CACvC,EAAE,IAAI,OAAO,GAAG,YAAY,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;CAC3C,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;CAC7E,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;CAC7E,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;CAC7E,EAAE,OAAO,GAAG,CAAC;CACb,CAAC;CACD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;CACO,SAAS,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;CAC3C,EAAE,IAAI,aAAa,GAAG,CAAC,GAAG,CAAC,CAAC;CAC5B,EAAE,IAAI,qBAAqB,GAAG,aAAa,GAAG,aAAa,CAAC;CAC5D,EAAE,IAAI,YAAY,GAAG,CAAC,GAAG,CAAC,CAAC;CAC3B,EAAE,IAAI,OAAO,GAAG,qBAAqB,GAAG,aAAa,CAAC;CACtD,EAAE,IAAI,OAAO,GAAG,CAAC,GAAG,CAAC,GAAG,qBAAqB,CAAC;CAC9C,EAAE,IAAI,OAAO,GAAG,CAAC,GAAG,YAAY,GAAG,aAAa,CAAC;CACjD,EAAE,IAAI,OAAO,GAAG,YAAY,GAAG,CAAC,CAAC;CACjC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;CAC7E,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;CAC7E,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;CAC7E,EAAE,OAAO,GAAG,CAAC;CACb,CAAC;CACD;CACA;CACA;CACA;CACA;CACA;CACA;AACA;CACO,SAAS,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE;CACnC,EAAE,KAAK,GAAG,KAAK,IAAI,GAAG,CAAC;CACvB,EAAE,IAAI,CAAC,GAAGC,MAAe,EAAE,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC;CAC5C,EAAE,IAAI,CAAC,GAAGA,MAAe,EAAE,GAAG,GAAG,GAAG,GAAG,CAAC;CACxC,EAAE,IAAI,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;CAC9C,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;CAChC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;CAChC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;CACrB,EAAE,OAAO,GAAG,CAAC;CACb,CAAC;CACD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;CACO,SAAS,aAAa,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE;CACzC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACd,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACd,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;CACf,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;CAClD,EAAE,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC;CACf,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;CACxD,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;CACxD,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;CACzD,EAAE,OAAO,GAAG,CAAC;CACb,CAAC;CACD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;CACO,SAAS,aAAa,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE;CACzC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACd,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACd,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;CACf,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;CAC1C,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;CAC1C,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;CAC1C,EAAE,OAAO,GAAG,CAAC;CACb,CAAC;CACD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;CACO,SAAS,aAAa,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE;CACzC;CACA,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;CACf,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;CACf,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;CACf,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;CAChB,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACd,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACd,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;CACf;AACA;CACA,EAAE,IAAI,GAAG,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC;CAC3B,MAAM,GAAG,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC;CAC3B,MAAM,GAAG,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC5B;CACA,EAAE,IAAI,IAAI,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG;CAChC,MAAM,IAAI,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG;CAChC,MAAM,IAAI,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC;AACjC;CACA,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;CAClB,EAAE,GAAG,IAAI,EAAE,CAAC;CACZ,EAAE,GAAG,IAAI,EAAE,CAAC;CACZ,EAAE,GAAG,IAAI,EAAE,CAAC;AACZ;CACA,EAAE,IAAI,IAAI,CAAC,CAAC;CACZ,EAAE,IAAI,IAAI,CAAC,CAAC;CACZ,EAAE,IAAI,IAAI,CAAC,CAAC;AACZ;CACA,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC;CAC1B,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC;CAC1B,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC;CAC1B,EAAE,OAAO,GAAG,CAAC;CACb,CAAC;CACD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;CACO,SAAS,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE;CACxC,EAAE,IAAI,CAAC,GAAG,EAAE;CACZ,MAAM,CAAC,GAAG,EAAE,CAAC;AACb;CACA,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;CACrB,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;CACrB,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACrB;CACA,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;CACd,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;CACrD,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACrD;CACA,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;CACvB,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;CACvB,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;CACvB,EAAE,OAAO,GAAG,CAAC;CACb,CAAC;CACD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;CACO,SAAS,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE;CACxC,EAAE,IAAI,CAAC,GAAG,EAAE;CACZ,MAAM,CAAC,GAAG,EAAE,CAAC;AACb;CACA,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;CACrB,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;CACrB,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACrB;CACA,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;CACrD,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;CACd,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACrD;CACA,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;CACvB,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;CACvB,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;CACvB,EAAE,OAAO,GAAG,CAAC;CACb,CAAC;CACD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;CACO,SAAS,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE;CACxC,EAAE,IAAI,CAAC,GAAG,EAAE;CACZ,MAAM,CAAC,GAAG,EAAE,CAAC;AACb;CACA,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;CACrB,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;CACrB,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACrB;CACA,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;CACrD,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;CACrD,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACd;CACA,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;CACvB,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;CACvB,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;CACvB,EAAE,OAAO,GAAG,CAAC;CACb,CAAC;CACD;CACA;CACA;CACA;CACA;CACA;AACA;CACO,SAAS,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE;CAC5B,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;CACf,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;CACf,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;CACf,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;CACf,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;CACf,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;CACf,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;CACnD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;CACnD,MAAM,GAAG,GAAG,IAAI,GAAG,IAAI;CACvB,MAAM,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC;CACtC,EAAE,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;CACtD,CAAC;CACD;CACA;CACA;CACA;CACA;CACA;AACA;CACO,SAAS,IAAI,CAAC,GAAG,EAAE;CAC1B,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;CACf,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;CACf,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;CACf,EAAE,OAAO,GAAG,CAAC;CACb,CAAC;CACD;CACA;CACA;CACA;CACA;CACA;AACA;CACO,SAAS,GAAG,CAAC,CAAC,EAAE;CACvB,EAAE,OAAO,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;CAC1D,CAAC;CACD;CACA;CACA;CACA;CACA;CACA;CACA;AACA;CACO,SAAS,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE;CAClC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;CACzD,CAAC;CACD;CACA;CACA;CACA;CACA;CACA;CACA;AACA;CACO,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE;CAC7B,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;CACf,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;CACf,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;CAChB,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;CACf,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;CACf,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;CAChB,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,IAAIC,SAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,IAAIA,SAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,IAAIA,SAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;CACrQ,CAAC;CACD;CACA;CACA;CACA;AACA;CACO,IAAI,GAAG,GAAGH,UAAQ,CAAC;CAC1B;CACA;CACA;CACA;AACA;CACO,IAAI,GAAG,GAAG,QAAQ,CAAC;CAC1B;CACA;CACA;CACA;AACA;CACO,IAAI,GAAG,GAAG,MAAM,CAAC;CACxB;CACA;CACA;CACA;AACA;CACO,IAAI,IAAI,GAAG,QAAQ,CAAC;CAC3B;CACA;CACA;CACA;AACA;CACO,IAAI,OAAO,GAAG,eAAe,CAAC;CACrC;CACA;CACA;CACA;AACA;CACO,IAAI,GAAG,GAAG,MAAM,CAAC;CACxB;CACA;CACA;CACA;AACA;CACO,IAAI,MAAM,GAAG,aAAa,CAAC;CAClC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;CACO,IAAI,OAAO,GAAG,YAAY;CACjC,EAAE,IAAI,GAAG,GAAG,MAAM,EAAE,CAAC;CACrB,EAAE,OAAO,UAAU,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE;CACtD,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC;AACb;CACA,IAAI,IAAI,CAAC,MAAM,EAAE;CACjB,MAAM,MAAM,GAAG,CAAC,CAAC;CACjB,KAAK;AACL;CACA,IAAI,IAAI,CAAC,MAAM,EAAE;CACjB,MAAM,MAAM,GAAG,CAAC,CAAC;CACjB,KAAK;AACL;CACA,IAAI,IAAI,KAAK,EAAE;CACf,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;CACtD,KAAK,MAAM;CACX,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;CACnB,KAAK;AACL;CACA,IAAI,KAAK,CAAC,GAAG,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,MAAM,EAAE;CACzC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;CACpB,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;CACxB,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;CACxB,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;CACxB,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;CACpB,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;CACxB,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;CACxB,KAAK;AACL;CACA,IAAI,OAAO,CAAC,CAAC;CACb,GAAG,CAAC;CACJ,CAAC,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CChxBH;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,SAASzvC,MAAMA,CAACxC,MAAM,EAAEqyC,cAAc,EAAExF,IAAI,EAAEC,IAAI,EAAE;CAChD,EAAA,IAAMwF,WAAW,GAAGzF,IAAI,GAAGC,IAAI,CAAA;CAE/B,EAAA,IAAMyF,MAAM,GAAGC,YAAY,EAAE,CAAA;GAC7B,IAAIC,aAAa,GAAG,EAAE,CAAA;GAEtB,KAAK,IAAIpf,KAAK,GAAG,CAAC,EAAEA,KAAK,GAAGgf,cAAc,EAAEhf,KAAK,EAAE,EAAE;CACjD,IAAA,IAAMqf,WAAW,GAAGJ,WAAW,GAAGjf,KAAK,CAAA;CAEvCof,IAAAA,aAAa,CAACtpC,IAAI,CACdwpC,WAAW,CAAC3yC,MAAM,EAAE0yC,WAAW,EAAE7F,IAAI,EAAEC,IAAI,EAAEyF,MAAM,CACvD,CAAC,CAAA;CACL,GAAA;CAEA,EAAA,OAAOE,aAAa,CAAA;CACxB,CAAA;CAEA,SAASE,WAAWA,CAAC3yC,MAAM,EAAE0yC,WAAW,EAAE7F,IAAI,EAAEC,IAAI,EAAEyF,MAAM,EAAE;CAC1D;GACA,IAAIK,QAAQ,GAAG,EAAE,CAAA;GAEjB,KAAK,IAAIzG,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGU,IAAI,EAAEV,CAAC,EAAE,EAAE;CAC3B,IAAA,IAAM0G,SAAS,GAAG1G,CAAC,GAAGW,IAAI,CAAA;CAC1B,IAAA,IAAMgG,QAAQ,GAAG,IAAIt0C,UAAU,CAACwB,MAAM,EAAE0yC,WAAW,GAAGG,SAAS,EAAE/F,IAAI,CAAC,CAAA;KAEtE,IAAIpuC,CAAC,GAAG,CAAC,CAAA;CAET,IAAA,OAAOA,CAAC,GAAGo0C,QAAQ,CAACz0C,MAAM,EAAE;CACxB,MAAA,IAAM00C,gBAAgB,GAAGC,mBAAmB,CAACF,QAAQ,EAAEp0C,CAAC,CAAC,CAAA;CAEzD,MAAA,IAAIq0C,gBAAgB,EAAE;CAClB;CACAH,QAAAA,QAAQ,CAACzpC,IAAI,CAAC4pC,gBAAgB,GAAG,CAAC,CAAC,CAAA;CACnC;SACA,IAAME,UAAU,GAAGH,QAAQ,CAACntC,KAAK,CAACjH,CAAC,EAAEA,CAAC,GAAGq0C,gBAAgB,CAAC,CAAA;SAE1DH,QAAQ,GAAA,EAAA,CAAAvtC,MAAA,CAAA05B,kBAAA,CAAO6T,QAAQ,CAAA7T,EAAAA,kBAAA,CAAKkU,UAAU,CAAC,CAAA,CAAA;CAEvCv0C,QAAAA,CAAC,IAAIq0C,gBAAgB,CAAA;CACzB,OAAA;CAEA,MAAA,IAAIr0C,CAAC,IAAIo0C,QAAQ,CAACz0C,MAAM,EAAE;CACtB,QAAA,MAAA;CACJ,OAAA;;CAEA;CACA,MAAA,IAAM60C,kBAAkB,GAAGC,qBAAqB,CAACL,QAAQ,EAAEp0C,CAAC,CAAC,CAAA;CAE7D,MAAA,IAAIw0C,kBAAkB,EAAE;CACpB;CACAN,QAAAA,QAAQ,CAACzpC,IAAI,CAAC,GAAG,GAAG+pC,kBAAkB,CAAC,CAAA;CACvCN,QAAAA,QAAQ,CAACzpC,IAAI,CAAC2pC,QAAQ,CAACp0C,CAAC,CAAC,CAAC,CAAA;CAE1BA,QAAAA,CAAC,IAAIw0C,kBAAkB,CAAA;CAC3B,OAAA;CACJ,KAAA;CACJ,GAAA;GAEA,IAAME,YAAY,GAAG,EAAE,CAAA;CAEvB,EAAA,IAAMC,UAAU,GACZT,QAAQ,CAACv0C,MAAM,GAAG,CAAC,KAAK,CAAC,GAAGu0C,QAAQ,CAACv0C,MAAM,GAAGu0C,QAAQ,CAACv0C,MAAM,GAAG,CAAC,CAAA;GAErE,IAAMi1C,kBAAkB,GAAG,IAAIrzC,WAAW,CAACmzC,YAAY,GAAGC,UAAU,CAAC,CAAA;;CAErE;GACA,IAAME,UAAU,GAAG,IAAIC,WAAW,CAACF,kBAAkB,EAAE,CAAC,EAAE,EAAE,CAAC,CAAA;CAE7D,EAAA,KAAK,IAAI50C,EAAC,GAAG,CAAC,EAAEA,EAAC,GAAG60C,UAAU,CAACl1C,MAAM,EAAEK,EAAC,EAAE,EAAE;CACxC60C,IAAAA,UAAU,CAAC70C,EAAC,CAAC,GAAG6zC,MAAM,CAAC7zC,EAAC,CAAC,CAAA;CAC7B,GAAA;CAEA,EAAA,KAAK,IAAIA,GAAC,GAAG,CAAC,EAAEA,GAAC,GAAG60C,UAAU,CAACl1C,MAAM,EAAEK,GAAC,EAAE,EAAE;CACxCk0C,IAAAA,QAAQ,CAACzpC,IAAI,CAACoqC,UAAU,CAAC70C,GAAC,CAAC,CAAC,CAAA;CAChC,GAAA;;CAEA;GACA,IAAM+0C,QAAQ,GAAG,IAAIj1C,UAAU,CAAC80C,kBAAkB,EAAE,EAAE,CAAC,CAAA;CAEvD,EAAA,KAAK,IAAI50C,GAAC,GAAG,CAAC,EAAEA,GAAC,GAAGk0C,QAAQ,CAACv0C,MAAM,EAAEK,GAAC,EAAE,EAAE;CACtC+0C,IAAAA,QAAQ,CAAC/0C,GAAC,CAAC,GAAGk0C,QAAQ,CAACl0C,GAAC,CAAC,CAAA;CAC7B,GAAA;CAEA,EAAA,OAAO40C,kBAAkB,CAAA;CAC7B,CAAA;CAEA,SAASd,YAAYA,GAAG;CACpB,EAAA,IAAMkB,YAAY,GAAG,IAAIF,WAAW,CAAC,EAAE,CAAC,CAAA;CAExCE,EAAAA,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;CACpBA,EAAAA,YAAY,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;;CAErB;CACA,EAAA,OAAOA,YAAY,CAAA;CACvB,CAAA;CAEA,SAASV,mBAAmBA,CAACF,QAAQ,EAAEp0C,CAAC,EAAE;CACtC,EAAA,KAAK,IAAIi8B,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGmY,QAAQ,CAACz0C,MAAM,GAAGK,CAAC,EAAEi8B,CAAC,EAAE,EAAE;CAC1C,IAAA,IACImY,QAAQ,CAACp0C,CAAC,GAAGi8B,CAAC,CAAC,KAAKmY,QAAQ,CAACp0C,CAAC,GAAGi8B,CAAC,GAAG,CAAC,CAAC,IACvCmY,QAAQ,CAACp0C,CAAC,GAAGi8B,CAAC,GAAG,CAAC,CAAC,KAAKmY,QAAQ,CAACp0C,CAAC,GAAGi8B,CAAC,GAAG,CAAC,CAAC,EAC7C;CACE,MAAA,OAAOA,CAAC,CAAA;CACZ,KAAA;KAEA,IAAIA,CAAC,KAAK,GAAG,EAAE;CACX,MAAA,OAAOA,CAAC,CAAA;CACZ,KAAA;CACJ,GAAA;CACA,EAAA,OAAOmY,QAAQ,CAACz0C,MAAM,GAAGK,CAAC,CAAA;CAC9B,CAAA;CAEA,SAASy0C,qBAAqBA,CAACL,QAAQ,EAAEp0C,CAAC,EAAE;CACxC,EAAA,IAAMgD,KAAK,GAAGoxC,QAAQ,CAACp0C,CAAC,CAAC,CAAA;CACzB,EAAA,KAAK,IAAIi8B,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGmY,QAAQ,CAACz0C,MAAM,GAAGK,CAAC,EAAEi8B,CAAC,EAAE,EAAE;KAC1C,IAAImY,QAAQ,CAACp0C,CAAC,GAAGi8B,CAAC,CAAC,KAAKj5B,KAAK,EAAE;CAC3B,MAAA,OAAOi5B,CAAC,CAAA;CACZ,KAAA;KAEA,IAAIA,CAAC,KAAK,GAAG,EAAE;CACX,MAAA,OAAOA,CAAC,CAAA;CACZ,KAAA;CACJ,GAAA;CAEA,EAAA,OAAOmY,QAAQ,CAACz0C,MAAM,GAAGK,CAAC,CAAA;CAC9B,CAAA;CAEA,SAASoG,MAAMA,CAAC6uC,gBAAgB,EAAE9G,IAAI,EAAEC,IAAI,EAAE;CAC1C,EAAA,IAAM1uC,SAAS,GAAG,IAAII,UAAU,CAACquC,IAAI,GAAGC,IAAI,GAAG6G,gBAAgB,CAACt1C,MAAM,CAAC,CAAA;CACvE,EAAA,IAAM2B,MAAM,GAAG5B,SAAS,CAAC4B,MAAM,CAAA;CAC/B,EAAA,IAAMsyC,WAAW,GAAGzF,IAAI,GAAGC,IAAI,CAAA;CAE/B,EAAA,KAAK,IAAIpuC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGi1C,gBAAgB,CAACt1C,MAAM,EAAEK,CAAC,EAAE,EAAE;CAC9C,IAAA,IAAMk1C,eAAe,GAAGD,gBAAgB,CAACj1C,CAAC,CAAC,CAAA;CAE3C,IAAA,IAAMm1C,cAAc,GAAG,IAAIr1C,UAAU,CACjCwB,MAAM,EACNtB,CAAC,GAAG4zC,WAAW,EACfA,WACJ,CAAC,CAAA;CAEDwB,IAAAA,WAAW,CAACF,eAAe,EAAEC,cAAc,CAAC,CAAA;CAChD,GAAA;CAEA,EAAA,OAAOz1C,SAAS,CAAA;CACpB,CAAA;CAEA,SAAS01C,WAAWA,CAACF,eAAe,EAAEx1C,SAAS,EAAE;CAC7C;GACA,IAAMm0C,MAAM,GAAG,IAAIiB,WAAW,CAACI,eAAe,EAAE,CAAC,EAAE,EAAE,CAAC,CAAA;CAEtD,EAAA,IAAIrB,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;KACjBh1C,GAAG,CAACyR,KAAK,CAAA,8JAAA,CAAA3J,MAAA,CAC0JktC,MAAM,CAAC,CAAC,CAAC,EAAA,iBAAA,CAC5K,CAAC,CAAA;CAED,IAAA,OAAA;CACJ,GAAA;CAEA,EAAA,IAAIA,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE;CAClBh1C,IAAAA,GAAG,CAACyR,KAAK,CACL,6FACJ,CAAC,CAAA;CAED,IAAA,OAAA;CACJ,GAAA;GAEA,IAAM+kC,UAAU,GAAG,IAAIv1C,UAAU,CAACo1C,eAAe,EAAE,EAAE,CAAC,CAAA;GAEtD,IAAI9E,cAAc,GAAG,CAAC,CAAA;GACtB,IAAIpwC,CAAC,GAAG,CAAC,CAAA;CAET,EAAA,OAAOowC,cAAc,GAAG1wC,SAAS,CAACC,MAAM,EAAE;CACtC,IAAA,IAAM21C,SAAS,GAAGD,UAAU,CAACr1C,CAAC,CAAC,CAAA;KAE/B,IAAIs1C,SAAS,KAAKttC,SAAS,EAAE;CACzB,MAAA,MAAA;CACJ,KAAA;KAEA,IAAIstC,SAAS,IAAI,GAAG,EAAE;CAClB;CACA,MAAA,IAAMC,CAAC,GAAGD,SAAS,GAAG,CAAC,CAAA;CACvB,MAAA,IAAME,IAAI,GAAGx1C,CAAC,GAAG,CAAC,CAAA;;CAElB;CACA,MAAA,KAAK,IAAIwwC,CAAC,GAAGgF,IAAI,EAAEhF,CAAC,GAAGgF,IAAI,GAAGD,CAAC,EAAE/E,CAAC,EAAE,EAAE;CAClC9wC,QAAAA,SAAS,CAAC0wC,cAAc,CAAC,GAAGiF,UAAU,CAAC7E,CAAC,CAAC,CAAA;CACzCJ,QAAAA,cAAc,EAAE,CAAA;CACpB,OAAA;OACApwC,CAAC,IAAIu1C,CAAC,GAAG,CAAC,CAAA;CACd,KAAA;KAEA,IAAID,SAAS,IAAI,GAAG,EAAE;CAClB,MAAA,IAAMC,EAAC,GAAG,GAAG,GAAGD,SAAS,CAAA;CACzB,MAAA,IAAME,KAAI,GAAGx1C,CAAC,GAAG,CAAC,CAAA;;CAElB;OACA,KAAK,IAAIwwC,EAAC,GAAG,CAAC,EAAEA,EAAC,GAAG+E,EAAC,EAAE/E,EAAC,EAAE,EAAE;CACxB9wC,QAAAA,SAAS,CAAC0wC,cAAc,CAAC,GAAGiF,UAAU,CAACG,KAAI,CAAC,CAAA;CAC5CpF,QAAAA,cAAc,EAAE,CAAA;CACpB,OAAA;CAEApwC,MAAAA,CAAC,IAAI,CAAC,CAAA;CACV,KAAA;CAEA,IAAA,IAAIA,CAAC,KAAKq1C,UAAU,CAAC11C,MAAM,EAAE;CACzB,MAAA,MAAA;CACJ,KAAA;CACJ,GAAA;CACJ;;;;;;;;;;;;;;;;;;;;;CClNA;EACA,IAAI,gBAAgB,GAAG,GAAG,CAAC;AAC3B;CACA;EACA,IAAI,cAAc,GAAG,2BAA2B,CAAC;AACjD;CACA;EACA,IAAI,gBAAgB,GAAG,gBAAgB,CAAC;AACxC;CACA;EACA,IAAI,OAAO,GAAG,oBAAoB;MAC9B,QAAQ,GAAG,gBAAgB;MAC3B,OAAO,GAAG,kBAAkB;MAC5B,OAAO,GAAG,eAAe;MACzB,QAAQ,GAAG,gBAAgB;MAC3B,OAAO,GAAG,mBAAmB;MAC7B,MAAM,GAAG,4BAA4B;MACrC,MAAM,GAAG,cAAc;MACvB,SAAS,GAAG,iBAAiB;MAC7B,SAAS,GAAG,iBAAiB;MAC7B,UAAU,GAAG,kBAAkB;MAC/B,SAAS,GAAG,iBAAiB;MAC7B,MAAM,GAAG,cAAc;MACvB,SAAS,GAAG,iBAAiB;MAC7B,SAAS,GAAG,iBAAiB;MAC7B,UAAU,GAAG,kBAAkB,CAAC;AACpC;EACA,IAAI,cAAc,GAAG,sBAAsB;MACvC,WAAW,GAAG,mBAAmB;MACjC,UAAU,GAAG,uBAAuB;MACpC,UAAU,GAAG,uBAAuB;MACpC,OAAO,GAAG,oBAAoB;MAC9B,QAAQ,GAAG,qBAAqB;MAChC,QAAQ,GAAG,qBAAqB;MAChC,QAAQ,GAAG,qBAAqB;MAChC,eAAe,GAAG,4BAA4B;MAC9C,SAAS,GAAG,sBAAsB;MAClC,SAAS,GAAG,sBAAsB,CAAC;AACvC;CACA;CACA;CACA;CACA;EACA,IAAI,YAAY,GAAG,qBAAqB,CAAC;AACzC;CACA;EACA,IAAI,OAAO,GAAG,MAAM,CAAC;AACrB;CACA;EACA,IAAI,YAAY,GAAG,6BAA6B,CAAC;AACjD;CACA;EACA,IAAI,QAAQ,GAAG,kBAAkB,CAAC;AAClC;CACA;EACA,IAAI,aAAa,GAAG,EAAE,CAAC;CACvB,CAAA,aAAa,CAAC,OAAO,CAAC,GAAG,aAAa,CAAC,QAAQ,CAAC;CAChD,CAAA,aAAa,CAAC,cAAc,CAAC,GAAG,aAAa,CAAC,WAAW,CAAC;CAC1D,CAAA,aAAa,CAAC,OAAO,CAAC,GAAG,aAAa,CAAC,OAAO,CAAC;CAC/C,CAAA,aAAa,CAAC,UAAU,CAAC,GAAG,aAAa,CAAC,UAAU,CAAC;CACrD,CAAA,aAAa,CAAC,OAAO,CAAC,GAAG,aAAa,CAAC,QAAQ,CAAC;CAChD,CAAA,aAAa,CAAC,QAAQ,CAAC,GAAG,aAAa,CAAC,MAAM,CAAC;CAC/C,CAAA,aAAa,CAAC,SAAS,CAAC,GAAG,aAAa,CAAC,SAAS,CAAC;CACnD,CAAA,aAAa,CAAC,SAAS,CAAC,GAAG,aAAa,CAAC,MAAM,CAAC;CAChD,CAAA,aAAa,CAAC,SAAS,CAAC,GAAG,aAAa,CAAC,SAAS,CAAC;CACnD,CAAA,aAAa,CAAC,QAAQ,CAAC,GAAG,aAAa,CAAC,eAAe,CAAC;EACxD,aAAa,CAAC,SAAS,CAAC,GAAG,aAAa,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;CAC3D,CAAA,aAAa,CAAC,QAAQ,CAAC,GAAG,aAAa,CAAC,OAAO,CAAC;CAChD,CAAA,aAAa,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC;AAClC;CACA;CACA,CAAA,IAAI,UAAU,GAAG,OAAO81C,cAAM,IAAI,QAAQ,IAAIA,cAAM,IAAIA,cAAM,CAAC,MAAM,KAAK,MAAM,IAAIA,cAAM,CAAC;AAC3F;CACA;CACA,CAAA,IAAI,QAAQ,GAAG,OAAO,IAAI,IAAI,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,IAAI,IAAI,CAAC;AACjF;CACA;EACA,IAAI,IAAI,GAAG,UAAU,IAAI,QAAQ,IAAI,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;AAC/D;CACA;CACA,CAAA,IAAI,WAAW,GAAiC,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC;AACxF;CACA;CACA,CAAA,IAAI,UAAU,GAAG,WAAW,IAAI,QAAa,IAAI,QAAQ,IAAI,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC;AAClG;CACA;EACA,IAAI,aAAa,GAAG,UAAU,IAAI,UAAU,CAAC,OAAO,KAAK,WAAW,CAAC;AACrE;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,CAAA,SAAS,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE;CAChC;CACA,GAAE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1B,OAAO,GAAG,CAAC;GACZ;AACD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,CAAA,SAAS,WAAW,CAAC,GAAG,EAAE,KAAK,EAAE;CACjC;CACA,GAAE,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACf,OAAO,GAAG,CAAC;GACZ;AACD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,CAAA,SAAS,SAAS,CAAC,KAAK,EAAE,QAAQ,EAAE;CACpC,GAAE,IAAI,KAAK,GAAG,CAAC,CAAC;QACV,MAAM,GAAG,KAAK,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;AACxC;CACA,GAAE,OAAO,EAAE,KAAK,GAAG,MAAM,EAAE;CAC3B,KAAI,IAAI,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,KAAK,EAAE;CACxD,OAAM,MAAM;OACP;KACF;IACD,OAAO,KAAK,CAAC;GACd;AACD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,CAAA,SAAS,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE;CAClC,GAAE,IAAI,KAAK,GAAG,CAAC,CAAC;CAChB,OAAM,MAAM,GAAG,MAAM,CAAC,MAAM;CAC5B,OAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;AAC5B;CACA,GAAE,OAAO,EAAE,KAAK,GAAG,MAAM,EAAE;MACvB,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;KACvC;IACD,OAAO,KAAK,CAAC;GACd;AACD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;EACA,SAAS,WAAW,CAAC,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE;CAC9D,GAAE,IAAI,KAAK,GAAG,CAAC,CAAC;QACV,MAAM,GAAG,KAAK,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;AACxC;CACA,GAAE,IAAI,SAAS,IAAI,MAAM,EAAE;CAC3B,KAAI,WAAW,GAAG,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;KAC9B;CACH,GAAE,OAAO,EAAE,KAAK,GAAG,MAAM,EAAE;CAC3B,KAAI,WAAW,GAAG,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;KACjE;IACD,OAAO,WAAW,CAAC;GACpB;AACD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,CAAA,SAAS,SAAS,CAAC,CAAC,EAAE,QAAQ,EAAE;CAChC,GAAE,IAAI,KAAK,GAAG,CAAC,CAAC;CAChB,OAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AACxB;CACA,GAAE,OAAO,EAAE,KAAK,GAAG,CAAC,EAAE;MAClB,MAAM,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;KACjC;IACD,OAAO,MAAM,CAAC;GACf;AACD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,CAAA,SAAS,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE;IAC7B,OAAO,MAAM,IAAI,IAAI,GAAG,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;GACjD;AACD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;EACA,SAAS,YAAY,CAAC,KAAK,EAAE;CAC7B;CACA;CACA,GAAE,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,IAAI,KAAK,IAAI,IAAI,IAAI,OAAO,KAAK,CAAC,QAAQ,IAAI,UAAU,EAAE;CAC5D,KAAI,IAAI;QACF,MAAM,GAAG,CAAC,EAAE,KAAK,GAAG,EAAE,CAAC,CAAC;CAC9B,MAAK,CAAC,OAAO,CAAC,EAAE,EAAE;KACf;IACD,OAAO,MAAM,CAAC;GACf;AACD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;EACA,SAAS,UAAU,CAAC,GAAG,EAAE;CACzB,GAAE,IAAI,KAAK,GAAG,CAAC,CAAC;QACV,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC/B;IACE,GAAG,CAAC,OAAO,CAAC,SAAS,KAAK,EAAE,GAAG,EAAE;MAC/B,MAAM,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;CACnC,IAAG,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;GACf;AACD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,CAAA,SAAS,OAAO,CAAC,IAAI,EAAE,SAAS,EAAE;IAChC,OAAO,SAAS,GAAG,EAAE;MACnB,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;CAChC,IAAG,CAAC;GACH;AACD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;EACA,SAAS,UAAU,CAAC,GAAG,EAAE;CACzB,GAAE,IAAI,KAAK,GAAG,CAAC,CAAC;QACV,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC/B;CACA,GAAE,GAAG,CAAC,OAAO,CAAC,SAAS,KAAK,EAAE;CAC9B,KAAI,MAAM,CAAC,EAAE,KAAK,CAAC,GAAG,KAAK,CAAC;CAC5B,IAAG,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;GACf;AACD;CACA;CACA,CAAA,IAAI,UAAU,GAAG,KAAK,CAAC,SAAS;CAChC,KAAI,SAAS,GAAG,QAAQ,CAAC,SAAS;CAClC,KAAI,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC;AACnC;CACA;CACA,CAAA,IAAI,UAAU,GAAG,IAAI,CAAC,oBAAoB,CAAC,CAAC;AAC5C;CACA;EACA,IAAI,UAAU,IAAI,WAAW;IAC3B,IAAI,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,IAAI,IAAI,UAAU,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;IACzF,OAAO,GAAG,IAAI,gBAAgB,GAAG,GAAG,IAAI,EAAE,CAAC;GAC5C,EAAE,CAAC,CAAC;AACL;CACA;CACA,CAAA,IAAI,YAAY,GAAG,SAAS,CAAC,QAAQ,CAAC;AACtC;CACA;CACA,CAAA,IAAI,cAAc,GAAG,WAAW,CAAC,cAAc,CAAC;AAChD;CACA;CACA;CACA;CACA;CACA;CACA,CAAA,IAAI,cAAc,GAAG,WAAW,CAAC,QAAQ,CAAC;AAC1C;CACA;CACA,CAAA,IAAI,UAAU,GAAG,MAAM,CAAC,GAAG;CAC3B,GAAE,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,MAAM,CAAC;CACjE,IAAG,OAAO,CAAC,wDAAwD,EAAE,OAAO,CAAC,GAAG,GAAG;CACnF,EAAC,CAAC;AACF;CACA;EACA,IAAI,MAAM,GAAG,aAAa,GAAG,IAAI,CAAC,MAAM,GAAG,SAAS;CACpD,KAAI,MAAM,GAAG,IAAI,CAAC,MAAM;CACxB,KAAI,UAAU,GAAG,IAAI,CAAC,UAAU;MAC5B,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC;CACzD,KAAI,YAAY,GAAG,MAAM,CAAC,MAAM;CAChC,KAAI,oBAAoB,GAAG,WAAW,CAAC,oBAAoB;CAC3D,KAAI,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;AAC/B;CACA;CACA,CAAA,IAAI,gBAAgB,GAAG,MAAM,CAAC,qBAAqB;MAC/C,cAAc,GAAG,MAAM,GAAG,MAAM,CAAC,QAAQ,GAAG,SAAS;MACrD,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC9C;CACA;CACA,CAAA,IAAI,QAAQ,GAAG,SAAS,CAAC,IAAI,EAAE,UAAU,CAAC;CAC1C,KAAI,GAAG,GAAG,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC;CAChC,KAAI,OAAO,GAAG,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC;CACxC,KAAI,GAAG,GAAG,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC;CAChC,KAAI,OAAO,GAAG,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC;MACpC,YAAY,GAAG,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AAC/C;CACA;CACA,CAAA,IAAI,kBAAkB,GAAG,QAAQ,CAAC,QAAQ,CAAC;CAC3C,KAAI,aAAa,GAAG,QAAQ,CAAC,GAAG,CAAC;CACjC,KAAI,iBAAiB,GAAG,QAAQ,CAAC,OAAO,CAAC;CACzC,KAAI,aAAa,GAAG,QAAQ,CAAC,GAAG,CAAC;CACjC,KAAI,iBAAiB,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;AAC1C;CACA;EACA,IAAI,WAAW,GAAG,MAAM,GAAG,MAAM,CAAC,SAAS,GAAG,SAAS;MACnD,aAAa,GAAG,WAAW,GAAG,WAAW,CAAC,OAAO,GAAG,SAAS,CAAC;AAClE;CACA;CACA;CACA;CACA;CACA;CACA;CACA;EACA,SAAS,IAAI,CAAC,OAAO,EAAE;CACvB,GAAE,IAAI,KAAK,GAAG,CAAC,CAAC;QACV,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;AAC5C;CACA,GAAE,IAAI,CAAC,KAAK,EAAE,CAAC;CACf,GAAE,OAAO,EAAE,KAAK,GAAG,MAAM,EAAE;CAC3B,KAAI,IAAI,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;CAC/B,KAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KAC9B;GACF;AACD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,CAAA,SAAS,SAAS,GAAG;CACrB,GAAE,IAAI,CAAC,QAAQ,GAAG,YAAY,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;GACxD;AACD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;EACA,SAAS,UAAU,CAAC,GAAG,EAAE;CACzB,GAAE,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;GACnD;AACD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;EACA,SAAS,OAAO,CAAC,GAAG,EAAE;CACtB,GAAE,IAAI,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC;IACzB,IAAI,YAAY,EAAE;CACpB,KAAI,IAAI,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;MACvB,OAAO,MAAM,KAAK,cAAc,GAAG,SAAS,GAAG,MAAM,CAAC;KACvD;CACH,GAAE,OAAO,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;GAC/D;AACD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;EACA,SAAS,OAAO,CAAC,GAAG,EAAE;CACtB,GAAE,IAAI,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC;CAC3B,GAAE,OAAO,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,SAAS,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;GAChF;AACD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,CAAA,SAAS,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE;CAC7B,GAAE,IAAI,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC;CAC3B,GAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY,IAAI,KAAK,KAAK,SAAS,IAAI,cAAc,GAAG,KAAK,CAAC;IAC3E,OAAO,IAAI,CAAC;GACb;AACD;CACA;CACA,CAAA,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,CAAC;CACjC,CAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,UAAU,CAAC;CACtC,CAAA,IAAI,CAAC,SAAS,CAAC,GAAG,GAAG,OAAO,CAAC;CAC7B,CAAA,IAAI,CAAC,SAAS,CAAC,GAAG,GAAG,OAAO,CAAC;CAC7B,CAAA,IAAI,CAAC,SAAS,CAAC,GAAG,GAAG,OAAO,CAAC;AAC7B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;EACA,SAAS,SAAS,CAAC,OAAO,EAAE;CAC5B,GAAE,IAAI,KAAK,GAAG,CAAC,CAAC;QACV,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;AAC5C;CACA,GAAE,IAAI,CAAC,KAAK,EAAE,CAAC;CACf,GAAE,OAAO,EAAE,KAAK,GAAG,MAAM,EAAE;CAC3B,KAAI,IAAI,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;CAC/B,KAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KAC9B;GACF;AACD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,CAAA,SAAS,cAAc,GAAG;CAC1B,GAAE,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;GACpB;AACD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;EACA,SAAS,eAAe,CAAC,GAAG,EAAE;CAC9B,GAAE,IAAI,IAAI,GAAG,IAAI,CAAC,QAAQ;QACpB,KAAK,GAAG,YAAY,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AACtC;CACA,GAAE,IAAI,KAAK,GAAG,CAAC,EAAE;MACb,OAAO,KAAK,CAAC;KACd;IACD,IAAI,SAAS,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;CAClC,GAAE,IAAI,KAAK,IAAI,SAAS,EAAE;CAC1B,KAAI,IAAI,CAAC,GAAG,EAAE,CAAC;CACf,IAAG,MAAM;MACL,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;KAC7B;IACD,OAAO,IAAI,CAAC;GACb;AACD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;EACA,SAAS,YAAY,CAAC,GAAG,EAAE;CAC3B,GAAE,IAAI,IAAI,GAAG,IAAI,CAAC,QAAQ;QACpB,KAAK,GAAG,YAAY,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AACtC;CACA,GAAE,OAAO,KAAK,GAAG,CAAC,GAAG,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;GAC/C;AACD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;EACA,SAAS,YAAY,CAAC,GAAG,EAAE;CAC3B,GAAE,OAAO,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;GAC9C;AACD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,CAAA,SAAS,YAAY,CAAC,GAAG,EAAE,KAAK,EAAE;CAClC,GAAE,IAAI,IAAI,GAAG,IAAI,CAAC,QAAQ;QACpB,KAAK,GAAG,YAAY,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AACtC;CACA,GAAE,IAAI,KAAK,GAAG,CAAC,EAAE;MACb,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;CAC5B,IAAG,MAAM;MACL,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;KACxB;IACD,OAAO,IAAI,CAAC;GACb;AACD;CACA;CACA,CAAA,SAAS,CAAC,SAAS,CAAC,KAAK,GAAG,cAAc,CAAC;CAC3C,CAAA,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,eAAe,CAAC;CAChD,CAAA,SAAS,CAAC,SAAS,CAAC,GAAG,GAAG,YAAY,CAAC;CACvC,CAAA,SAAS,CAAC,SAAS,CAAC,GAAG,GAAG,YAAY,CAAC;CACvC,CAAA,SAAS,CAAC,SAAS,CAAC,GAAG,GAAG,YAAY,CAAC;AACvC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;EACA,SAAS,QAAQ,CAAC,OAAO,EAAE;CAC3B,GAAE,IAAI,KAAK,GAAG,CAAC,CAAC;QACV,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;AAC5C;CACA,GAAE,IAAI,CAAC,KAAK,EAAE,CAAC;CACf,GAAE,OAAO,EAAE,KAAK,GAAG,MAAM,EAAE;CAC3B,KAAI,IAAI,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;CAC/B,KAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KAC9B;GACF;AACD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,CAAA,SAAS,aAAa,GAAG;IACvB,IAAI,CAAC,QAAQ,GAAG;MACd,MAAM,EAAE,IAAI,IAAI;CACpB,KAAI,KAAK,EAAE,KAAK,GAAG,IAAI,SAAS,CAAC;MAC7B,QAAQ,EAAE,IAAI,IAAI;CACtB,IAAG,CAAC;GACH;AACD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;EACA,SAAS,cAAc,CAAC,GAAG,EAAE;CAC7B,GAAE,OAAO,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC;GAC7C;AACD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;EACA,SAAS,WAAW,CAAC,GAAG,EAAE;CAC1B,GAAE,OAAO,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;GACvC;AACD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;EACA,SAAS,WAAW,CAAC,GAAG,EAAE;CAC1B,GAAE,OAAO,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;GACvC;AACD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,CAAA,SAAS,WAAW,CAAC,GAAG,EAAE,KAAK,EAAE;CACjC,GAAE,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACtC,OAAO,IAAI,CAAC;GACb;AACD;CACA;CACA,CAAA,QAAQ,CAAC,SAAS,CAAC,KAAK,GAAG,aAAa,CAAC;CACzC,CAAA,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,cAAc,CAAC;CAC9C,CAAA,QAAQ,CAAC,SAAS,CAAC,GAAG,GAAG,WAAW,CAAC;CACrC,CAAA,QAAQ,CAAC,SAAS,CAAC,GAAG,GAAG,WAAW,CAAC;CACrC,CAAA,QAAQ,CAAC,SAAS,CAAC,GAAG,GAAG,WAAW,CAAC;AACrC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;EACA,SAAS,KAAK,CAAC,OAAO,EAAE;IACtB,IAAI,CAAC,QAAQ,GAAG,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC;GACxC;AACD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,CAAA,SAAS,UAAU,GAAG;CACtB,GAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,SAAS,CAAC;GAC/B;AACD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;EACA,SAAS,WAAW,CAAC,GAAG,EAAE;IACxB,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC;GACrC;AACD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;EACA,SAAS,QAAQ,CAAC,GAAG,EAAE;IACrB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;GAC/B;AACD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;EACA,SAAS,QAAQ,CAAC,GAAG,EAAE;IACrB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;GAC/B;AACD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,CAAA,SAAS,QAAQ,CAAC,GAAG,EAAE,KAAK,EAAE;CAC9B,GAAE,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC;CAC5B,GAAE,IAAI,KAAK,YAAY,SAAS,EAAE;CAClC,KAAI,IAAI,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC;CAC/B,KAAI,IAAI,CAAC,GAAG,KAAK,KAAK,CAAC,MAAM,GAAG,gBAAgB,GAAG,CAAC,CAAC,EAAE;QACjD,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;QACzB,OAAO,IAAI,CAAC;OACb;MACD,KAAK,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC;KAC7C;IACD,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACtB,OAAO,IAAI,CAAC;GACb;AACD;CACA;CACA,CAAA,KAAK,CAAC,SAAS,CAAC,KAAK,GAAG,UAAU,CAAC;CACnC,CAAA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,WAAW,CAAC;CACxC,CAAA,KAAK,CAAC,SAAS,CAAC,GAAG,GAAG,QAAQ,CAAC;CAC/B,CAAA,KAAK,CAAC,SAAS,CAAC,GAAG,GAAG,QAAQ,CAAC;CAC/B,CAAA,KAAK,CAAC,SAAS,CAAC,GAAG,GAAG,QAAQ,CAAC;AAC/B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,CAAA,SAAS,aAAa,CAAC,KAAK,EAAE,SAAS,EAAE;CACzC;CACA;CACA,GAAE,IAAI,MAAM,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,WAAW,CAAC,KAAK,CAAC;CACpD,OAAM,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC;CACrC,OAAM,EAAE,CAAC;AACT;CACA,GAAE,IAAI,MAAM,GAAG,MAAM,CAAC,MAAM;CAC5B,OAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;AAC7B;CACA,GAAE,KAAK,IAAI,GAAG,IAAI,KAAK,EAAE;MACrB,IAAI,CAAC,SAAS,IAAI,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC;CACrD,SAAQ,EAAE,WAAW,KAAK,GAAG,IAAI,QAAQ,IAAI,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE;CACrE,OAAM,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;OAClB;KACF;IACD,OAAO,MAAM,CAAC;GACf;AACD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,CAAA,SAAS,WAAW,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE;CACzC,GAAE,IAAI,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;CAC7B,GAAE,IAAI,EAAE,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;SACzD,KAAK,KAAK,SAAS,IAAI,EAAE,GAAG,IAAI,MAAM,CAAC,CAAC,EAAE;CACjD,KAAI,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;KACrB;GACF;AACD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,CAAA,SAAS,YAAY,CAAC,KAAK,EAAE,GAAG,EAAE;CAClC,GAAE,IAAI,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IAC1B,OAAO,MAAM,EAAE,EAAE;CACnB,KAAI,IAAI,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;QAC7B,OAAO,MAAM,CAAC;OACf;KACF;IACD,OAAO,CAAC,CAAC,CAAC;GACX;AACD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,CAAA,SAAS,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE;CACpC,GAAE,OAAO,MAAM,IAAI,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC;GAC3D;AACD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,CAAA,SAAS,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE;IACxE,IAAI,MAAM,CAAC;IACX,IAAI,UAAU,EAAE;CAClB,KAAI,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;KAC7E;CACH,GAAE,IAAI,MAAM,KAAK,SAAS,EAAE;MACxB,OAAO,MAAM,CAAC;KACf;CACH,GAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;MACpB,OAAO,KAAK,CAAC;KACd;CACH,GAAE,IAAI,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IAC3B,IAAI,KAAK,EAAE;CACb,KAAI,MAAM,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;MAC/B,IAAI,CAAC,MAAM,EAAE;CACjB,OAAM,OAAO,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;OACjC;CACL,IAAG,MAAM;CACT,KAAI,IAAI,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC;UACnB,MAAM,GAAG,GAAG,IAAI,OAAO,IAAI,GAAG,IAAI,MAAM,CAAC;AACjD;CACA,KAAI,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE;CACzB,OAAM,OAAO,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;OACnC;CACL,KAAI,IAAI,GAAG,IAAI,SAAS,IAAI,GAAG,IAAI,OAAO,KAAK,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE;CACnE,OAAM,IAAI,YAAY,CAAC,KAAK,CAAC,EAAE;CAC/B,SAAQ,OAAO,MAAM,GAAG,KAAK,GAAG,EAAE,CAAC;SAC5B;QACD,MAAM,GAAG,eAAe,CAAC,MAAM,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC;QAC9C,IAAI,CAAC,MAAM,EAAE;CACnB,SAAQ,OAAO,WAAW,CAAC,KAAK,EAAE,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;SACtD;CACP,MAAK,MAAM;CACX,OAAM,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE;CAC/B,SAAQ,OAAO,MAAM,GAAG,KAAK,GAAG,EAAE,CAAC;SAC5B;CACP,OAAM,MAAM,GAAG,cAAc,CAAC,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;OACxD;KACF;CACH;CACA,GAAE,KAAK,KAAK,KAAK,GAAG,IAAI,KAAK,CAAC,CAAC;IAC7B,IAAI,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC/B,IAAI,OAAO,EAAE;MACX,OAAO,OAAO,CAAC;KAChB;IACD,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAC3B;IACE,IAAI,CAAC,KAAK,EAAE;CACd,KAAI,IAAI,KAAK,GAAG,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;KACtD;IACD,SAAS,CAAC,KAAK,IAAI,KAAK,EAAE,SAAS,QAAQ,EAAE,GAAG,EAAE;MAChD,IAAI,KAAK,EAAE;QACT,GAAG,GAAG,QAAQ,CAAC;CACrB,OAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;OACvB;CACL;MACI,WAAW,CAAC,MAAM,EAAE,GAAG,EAAE,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;CACjG,IAAG,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;GACf;AACD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;EACA,SAAS,UAAU,CAAC,KAAK,EAAE;CAC3B,GAAE,OAAO,QAAQ,CAAC,KAAK,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;GACnD;AACD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,CAAA,SAAS,cAAc,CAAC,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE;CACvD,GAAE,IAAI,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;CAChC,GAAE,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;GAC1E;AACD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;EACA,SAAS,UAAU,CAAC,KAAK,EAAE;CAC3B,GAAE,OAAO,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;GACnC;AACD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;EACA,SAAS,YAAY,CAAC,KAAK,EAAE;IAC3B,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE;MACvC,OAAO,KAAK,CAAC;KACd;CACH,GAAE,IAAI,OAAO,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,YAAY,CAAC,KAAK,CAAC,IAAI,UAAU,GAAG,YAAY,CAAC;IACrF,OAAO,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;GACtC;AACD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;EACA,SAAS,QAAQ,CAAC,MAAM,EAAE;CAC1B,GAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE;CAC5B,KAAI,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC;KAC3B;CACH,GAAE,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,KAAK,IAAI,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,EAAE;CAClC,KAAI,IAAI,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,GAAG,IAAI,aAAa,EAAE;CAClE,OAAM,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;OAClB;KACF;IACD,OAAO,MAAM,CAAC;GACf;AACD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,CAAA,SAAS,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE;IACnC,IAAI,MAAM,EAAE;CACd,KAAI,OAAO,MAAM,CAAC,KAAK,EAAE,CAAC;KACvB;CACH,GAAE,IAAI,MAAM,GAAG,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;CACrD,GAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACpB,OAAO,MAAM,CAAC;GACf;AACD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;EACA,SAAS,gBAAgB,CAAC,WAAW,EAAE;CACvC,GAAE,IAAI,MAAM,GAAG,IAAI,WAAW,CAAC,WAAW,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;CACnE,GAAE,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC;IACxD,OAAO,MAAM,CAAC;GACf;AACD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,CAAA,SAAS,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE;CACzC,GAAE,IAAI,MAAM,GAAG,MAAM,GAAG,gBAAgB,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC;CAC5E,GAAE,OAAO,IAAI,QAAQ,CAAC,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;GACnF;AACD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,CAAA,SAAS,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE;CAC1C,GAAE,IAAI,KAAK,GAAG,MAAM,GAAG,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;CAC1E,GAAE,OAAO,WAAW,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC;GAC7D;AACD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;EACA,SAAS,WAAW,CAAC,MAAM,EAAE;CAC7B,GAAE,IAAI,MAAM,GAAG,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;CAC3E,GAAE,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;IACpC,OAAO,MAAM,CAAC;GACf;AACD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,CAAA,SAAS,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE;CAC1C,GAAE,IAAI,KAAK,GAAG,MAAM,GAAG,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;CAC1E,GAAE,OAAO,WAAW,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC;GAC7D;AACD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;EACA,SAAS,WAAW,CAAC,MAAM,EAAE;CAC7B,GAAE,OAAO,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC;GAChE;AACD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,CAAA,SAAS,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE;CAC7C,GAAE,IAAI,MAAM,GAAG,MAAM,GAAG,gBAAgB,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC;CAChF,GAAE,OAAO,IAAI,UAAU,CAAC,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;GACrF;AACD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,CAAA,SAAS,SAAS,CAAC,MAAM,EAAE,KAAK,EAAE;CAClC,GAAE,IAAI,KAAK,GAAG,CAAC,CAAC;CAChB,OAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AAC7B;IACE,KAAK,KAAK,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;CACnC,GAAE,OAAO,EAAE,KAAK,GAAG,MAAM,EAAE;MACvB,KAAK,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;KAC9B;IACD,OAAO,KAAK,CAAC;GACd;AACD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;EACA,SAAS,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE;CACvD,GAAE,MAAM,KAAK,MAAM,GAAG,EAAE,CAAC,CAAC;AAC1B;CACA,GAAE,IAAI,KAAK,GAAG,CAAC,CAAC;CAChB,OAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;AAC5B;CACA,GAAE,OAAO,EAAE,KAAK,GAAG,MAAM,EAAE;CAC3B,KAAI,IAAI,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;AAC3B;MACI,IAAI,QAAQ,GAAG,UAAU;CAC7B,SAAQ,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC;CACjE,SAAQ,SAAS,CAAC;AAClB;CACA,KAAI,WAAW,CAAC,MAAM,EAAE,GAAG,EAAE,QAAQ,KAAK,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC;KAC3E;IACD,OAAO,MAAM,CAAC;GACf;AACD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,CAAA,SAAS,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE;CACrC,GAAE,OAAO,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC;GACvD;AACD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;EACA,SAAS,UAAU,CAAC,MAAM,EAAE;IAC1B,OAAO,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;GACjD;AACD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,CAAA,SAAS,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE;CAC9B,GAAE,IAAI,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC;CAC1B,GAAE,OAAO,SAAS,CAAC,GAAG,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,IAAI,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAC;QAChD,IAAI,CAAC,GAAG,CAAC;GACd;AACD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,CAAA,SAAS,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE;IAC9B,IAAI,KAAK,GAAG,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAClC,OAAO,YAAY,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,SAAS,CAAC;GAChD;AACD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,CAAA,IAAI,UAAU,GAAG,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;AAClF;CACA;CACA;CACA;CACA;CACA;CACA;CACA;EACA,IAAI,MAAM,GAAG,UAAU,CAAC;AACxB;CACA;CACA;CACA,CAAA,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,IAAI,QAAQ,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,WAAW;OACnE,GAAG,IAAI,MAAM,CAAC,IAAI,GAAG,CAAC,IAAI,MAAM,CAAC;OACjC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,UAAU,CAAC;OACnD,GAAG,IAAI,MAAM,CAAC,IAAI,GAAG,CAAC,IAAI,MAAM,CAAC;OACjC,OAAO,IAAI,MAAM,CAAC,IAAI,OAAO,CAAC,IAAI,UAAU,CAAC,EAAE;CACpD,GAAE,MAAM,GAAG,SAAS,KAAK,EAAE;MACvB,IAAI,MAAM,GAAG,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;UACnC,IAAI,GAAG,MAAM,IAAI,SAAS,GAAG,KAAK,CAAC,WAAW,GAAG,SAAS;UAC1D,UAAU,GAAG,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;AACvD;MACI,IAAI,UAAU,EAAE;CACpB,OAAM,QAAQ,UAAU;CACxB,SAAQ,KAAK,kBAAkB,EAAE,OAAO,WAAW,CAAC;CACpD,SAAQ,KAAK,aAAa,EAAE,OAAO,MAAM,CAAC;CAC1C,SAAQ,KAAK,iBAAiB,EAAE,OAAO,UAAU,CAAC;CAClD,SAAQ,KAAK,aAAa,EAAE,OAAO,MAAM,CAAC;CAC1C,SAAQ,KAAK,iBAAiB,EAAE,OAAO,UAAU,CAAC;SAC3C;OACF;MACD,OAAO,MAAM,CAAC;CAClB,IAAG,CAAC;GACH;AACD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;EACA,SAAS,cAAc,CAAC,KAAK,EAAE;CAC/B,GAAE,IAAI,MAAM,GAAG,KAAK,CAAC,MAAM;QACrB,MAAM,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;AACzC;CACA;CACA,GAAE,IAAI,MAAM,IAAI,OAAO,KAAK,CAAC,CAAC,CAAC,IAAI,QAAQ,IAAI,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE;CACpF,KAAI,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;CAC/B,KAAI,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;KAC5B;IACD,OAAO,MAAM,CAAC;GACf;AACD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;EACA,SAAS,eAAe,CAAC,MAAM,EAAE;CACjC,GAAE,OAAO,CAAC,OAAO,MAAM,CAAC,WAAW,IAAI,UAAU,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;CACzE,OAAM,UAAU,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;CACtC,OAAM,EAAE,CAAC;GACR;AACD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;EACA,SAAS,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE;CACxD,GAAE,IAAI,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC;CAChC,GAAE,QAAQ,GAAG;CACb,KAAI,KAAK,cAAc;CACvB,OAAM,OAAO,gBAAgB,CAAC,MAAM,CAAC,CAAC;AACtC;MACI,KAAK,OAAO,CAAC;CACjB,KAAI,KAAK,OAAO;CAChB,OAAM,OAAO,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC;AAC/B;CACA,KAAI,KAAK,WAAW;CACpB,OAAM,OAAO,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAC3C;CACA,KAAI,KAAK,UAAU,CAAC,CAAC,KAAK,UAAU,CAAC;MACjC,KAAK,OAAO,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,KAAK,QAAQ,CAAC;CAC/C,KAAI,KAAK,QAAQ,CAAC,CAAC,KAAK,eAAe,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,KAAK,SAAS;CACvE,OAAM,OAAO,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAC7C;CACA,KAAI,KAAK,MAAM;QACT,OAAO,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;AACjD;MACI,KAAK,SAAS,CAAC;CACnB,KAAI,KAAK,SAAS;CAClB,OAAM,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC;AAC9B;CACA,KAAI,KAAK,SAAS;CAClB,OAAM,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC;AACjC;CACA,KAAI,KAAK,MAAM;QACT,OAAO,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;AACjD;CACA,KAAI,KAAK,SAAS;CAClB,OAAM,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC;KAC9B;GACF;AACD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,CAAA,SAAS,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE;IAC9B,MAAM,GAAG,MAAM,IAAI,IAAI,GAAG,gBAAgB,GAAG,MAAM,CAAC;IACpD,OAAO,CAAC,CAAC,MAAM;OACZ,OAAO,KAAK,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;CACtD,MAAK,KAAK,GAAG,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,GAAG,MAAM,CAAC,CAAC;GACpD;AACD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;EACA,SAAS,SAAS,CAAC,KAAK,EAAE;CAC1B,GAAE,IAAI,IAAI,GAAG,OAAO,KAAK,CAAC;CAC1B,GAAE,OAAO,CAAC,IAAI,IAAI,QAAQ,IAAI,IAAI,IAAI,QAAQ,IAAI,IAAI,IAAI,QAAQ,IAAI,IAAI,IAAI,SAAS;SAChF,KAAK,KAAK,WAAW;CAC5B,QAAO,KAAK,KAAK,IAAI,CAAC,CAAC;GACtB;AACD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;EACA,SAAS,QAAQ,CAAC,IAAI,EAAE;IACtB,OAAO,CAAC,CAAC,UAAU,KAAK,UAAU,IAAI,IAAI,CAAC,CAAC;GAC7C;AACD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;EACA,SAAS,WAAW,CAAC,KAAK,EAAE;CAC5B,GAAE,IAAI,IAAI,GAAG,KAAK,IAAI,KAAK,CAAC,WAAW;CACvC,OAAM,KAAK,GAAG,CAAC,OAAO,IAAI,IAAI,UAAU,IAAI,IAAI,CAAC,SAAS,KAAK,WAAW,CAAC;AAC3E;CACA,GAAE,OAAO,KAAK,KAAK,KAAK,CAAC;GACxB;AACD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;EACA,SAAS,QAAQ,CAAC,IAAI,EAAE;CACxB,GAAE,IAAI,IAAI,IAAI,IAAI,EAAE;CACpB,KAAI,IAAI;CACR,OAAM,OAAO,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;CACrC,MAAK,CAAC,OAAO,CAAC,EAAE,EAAE;CAClB,KAAI,IAAI;CACR,OAAM,QAAQ,IAAI,GAAG,EAAE,EAAE;CACzB,MAAK,CAAC,OAAO,CAAC,EAAE,EAAE;KACf;IACD,OAAO,EAAE,CAAC;GACX;AACD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;EACA,SAAS,SAAS,CAAC,KAAK,EAAE;IACxB,OAAO,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;GACrC;AACD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,CAAA,SAAS,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE;CAC1B,GAAE,OAAO,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,CAAC,CAAC;GAChE;AACD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;EACA,SAAS,WAAW,CAAC,KAAK,EAAE;CAC5B;CACA,GAAE,OAAO,iBAAiB,CAAC,KAAK,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC;CACzE,MAAK,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,CAAC;GAC1F;AACD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,CAAA,IAAI,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;AAC5B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;EACA,SAAS,WAAW,CAAC,KAAK,EAAE;CAC5B,GAAE,OAAO,KAAK,IAAI,IAAI,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;GACtE;AACD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;EACA,SAAS,iBAAiB,CAAC,KAAK,EAAE;IAChC,OAAO,YAAY,CAAC,KAAK,CAAC,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC;GAClD;AACD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,CAAA,IAAI,QAAQ,GAAG,cAAc,IAAI,SAAS,CAAC;AAC3C;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;EACA,SAAS,UAAU,CAAC,KAAK,EAAE;CAC3B;CACA;CACA,GAAE,IAAI,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;IAC5D,OAAO,GAAG,IAAI,OAAO,IAAI,GAAG,IAAI,MAAM,CAAC;GACxC;AACD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;EACA,SAAS,QAAQ,CAAC,KAAK,EAAE;CACzB,GAAE,OAAO,OAAO,KAAK,IAAI,QAAQ;CACjC,KAAI,KAAK,GAAG,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,gBAAgB,CAAC;GAC7D;AACD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;EACA,SAAS,QAAQ,CAAC,KAAK,EAAE;CACzB,GAAE,IAAI,IAAI,GAAG,OAAO,KAAK,CAAC;CAC1B,GAAE,OAAO,CAAC,CAAC,KAAK,KAAK,IAAI,IAAI,QAAQ,IAAI,IAAI,IAAI,UAAU,CAAC,CAAC;GAC5D;AACD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;EACA,SAAS,YAAY,CAAC,KAAK,EAAE;IAC3B,OAAO,CAAC,CAAC,KAAK,IAAI,OAAO,KAAK,IAAI,QAAQ,CAAC;GAC5C;AACD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;EACA,SAAS,IAAI,CAAC,MAAM,EAAE;CACtB,GAAE,OAAO,WAAW,CAAC,MAAM,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AU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU;CACV;CACA,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU;CACV;CACA,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UA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","x_google_ignoreList":[0,1,2,3,6,46,47,48,57,58,60]} \ No newline at end of file diff --git a/adit/upload/static/vendor/dicom-web-anonymizer.js b/adit/upload/static/vendor/dicom-web-anonymizer.js new file mode 100644 index 00000000..4036d54f --- /dev/null +++ b/adit/upload/static/vendor/dicom-web-anonymizer.js @@ -0,0 +1,2 @@ +(function(O,D){typeof exports=="object"&&typeof module<"u"?module.exports=D(require("dcmjs")):typeof define=="function"&&define.amd?define(["dcmjs"],D):(O=typeof globalThis<"u"?globalThis:O||self,O.Anonymizer=D(O.dcmjs))})(this,function(O){"use strict";class D{constructor(){this.femaleFirstNames=["MARY","PATRICIA","LINDA","BARBARA","ELIZABETH","JENNIFER","MARIA","SUSAN","MARGARET","DOROTHY","LISA","NANCY","KAREN","BETTY","HELEN","SANDRA","DONNA","CAROL","RUTH","SHARON","MICHELLE","LAURA","SARAH","KIMBERLY","DEBORAH","JESSICA","SHIRLEY","CYNTHIA","ANGELA","MELISSA","BRENDA","AMY","ANNA","REBECCA","VIRGINIA","KATHLEEN","PAMELA","MARTHA","DEBRA","AMANDA","STEPHANIE","CAROLYN","CHRISTINE","MARIE","JANET","CATHERINE","FRANCES","ANN","JOYCE","DIANE","ALICE","JULIE","HEATHER","TERESA","DORIS","GLORIA","EVELYN","JEAN","CHERYL","MILDRED","KATHERINE","JOAN","ASHLEY","JUDITH","ROSE","JANICE","KELLY","NICOLE","JUDY","CHRISTINA","KATHY","THERESA","BEVERLY","DENISE","TAMMY","IRENE","JANE","LORI","RACHEL","MARILYN","ANDREA","KATHRYN","LOUISE","SARA","ANNE","JACQUELINE","WANDA","BONNIE","JULIA","RUBY","LOIS","TINA","PHYLLIS","NORMA","PAULA","DIANA","ANNIE","LILLIAN","EMILY","ROBIN","PEGGY","CRYSTAL","GLADYS","RITA","DAWN","CONNIE","FLORENCE","TRACY","EDNA","TIFFANY","CARMEN","ROSA","CINDY","GRACE","WENDY","VICTORIA","EDITH","KIM","SHERRY","SYLVIA","JOSEPHINE","THELMA","SHANNON","SHEILA","ETHEL","ELLEN","ELAINE","MARJORIE","CARRIE","CHARLOTTE","MONICA","ESTHER","PAULINE","EMMA","JUANITA","ANITA","RHONDA","HAZEL","AMBER","EVA","DEBBIE","APRIL","LESLIE","CLARA","LUCILLE","JAMIE","JOANNE","ELEANOR","VALERIE","DANIELLE","MEGAN","ALICIA","SUZANNE","MICHELE","GAIL","BERTHA","DARLENE","VERONICA","JILL","ERIN","GERALDINE","LAUREN","CATHY","JOANN","LORRAINE","LYNN","SALLY","REGINA","ERICA","BEATRICE","DOLORES","BERNICE","AUDREY","YVONNE","ANNETTE","JUNE","SAMANTHA","MARION","DANA","STACY","ANA","RENEE","IDA","VIVIAN","ROBERTA","HOLLY","BRITTANY","MELANIE","LORETTA","YOLANDA","JEANETTE","LAURIE","KATIE","KRISTEN","VANESSA","ALMA","SUE","ELSIE","BETH","JEANNE","VICKI","CARLA","TARA","ROSEMARY","EILEEN","TERRI","GERTRUDE","LUCY","TONYA","ELLA","STACEY","WILMA","GINA","KRISTIN","JESSIE","NATALIE","AGNES","VERA","WILLIE","CHARLENE","BESSIE","DELORES","MELINDA","PEARL","ARLENE","MAUREEN","COLLEEN","ALLISON","TAMARA","JOY","GEORGIA","CONSTANCE","LILLIE","CLAUDIA","JACKIE","MARCIA","TANYA","NELLIE","MINNIE","MARLENE","HEIDI","GLENDA","LYDIA","VIOLA","COURTNEY","MARIAN","STELLA","CAROLINE","DORA","JO","VICKIE","MATTIE","TERRY","MAXINE","IRMA","MABEL","MARSHA","MYRTLE","LENA","CHRISTY","DEANNA","PATSY","HILDA","GWENDOLYN","JENNIE","NORA","MARGIE","NINA","CASSANDRA","LEAH","PENNY","KAY","PRISCILLA","NAOMI","CAROLE","BRANDY","OLGA","BILLIE","DIANNE","TRACEY","LEONA","JENNY","FELICIA","SONIA","MIRIAM","VELMA","BECKY","BOBBIE","VIOLET","KRISTINA","TONI","MISTY","MAE","SHELLY","DAISY","RAMONA","SHERRI","ERIKA","KATRINA","CLAIRE","LINDSEY","LINDSAY","GENEVA","GUADALUPE","BELINDA","MARGARITA","SHERYL","CORA","FAYE","ADA","NATASHA","SABRINA","ISABEL","MARGUERITE","HATTIE","HARRIET","MOLLY","CECILIA","KRISTI","BRANDI","BLANCHE","SANDY","ROSIE","JOANNA","IRIS","EUNICE","ANGIE","INEZ","LYNDA","MADELINE","AMELIA","ALBERTA","GENEVIEVE","MONIQUE","JODI","JANIE","MAGGIE","KAYLA","SONYA","JAN","LEE","KRISTINE","CANDACE","FANNIE","MARYANN","OPAL","ALISON","YVETTE","MELODY","LUZ","SUSIE","OLIVIA","FLORA","SHELLEY","KRISTY","MAMIE","LULA","LOLA","VERNA","BEULAH","ANTOINETTE","CANDICE","JUANA","JEANNETTE","PAM","KELLI","HANNAH","WHITNEY","BRIDGET","KARLA","CELIA","LATOYA","PATTY","SHELIA","GAYLE","DELLA","VICKY","LYNNE","SHERI","MARIANNE","KARA","JACQUELYN","ERMA","BLANCA","MYRA","LETICIA","PAT","KRISTA","ROXANNE","ANGELICA","JOHNNIE","ROBYN","FRANCIS","ADRIENNE","ROSALIE","ALEXANDRA","BROOKE","BETHANY","SADIE","BERNADETTE","TRACI","JODY","KENDRA","JASMINE","NICHOLE","RACHAEL","CHELSEA","MABLE","ERNESTINE","MURIEL","MARCELLA","ELENA","KRYSTAL","ANGELINA","NADINE","KARI","ESTELLE","DIANNA","PAULETTE","LORA","MONA","DOREEN","ROSEMARIE","ANGEL","DESIREE","ANTONIA","HOPE","GINGER","JANIS","BETSY","CHRISTIE","FREDA","MERCEDES","MEREDITH","LYNETTE","TERI","CRISTINA","EULA","LEIGH","MEGHAN","SOPHIA","ELOISE","ROCHELLE","GRETCHEN","CECELIA","RAQUEL","HENRIETTA","ALYSSA","JANA","KELLEY","GWEN","KERRY","JENNA","TRICIA","LAVERNE","OLIVE","ALEXIS","TASHA","SILVIA","ELVIRA","CASEY","DELIA","SOPHIE","KATE","PATTI","LORENA","KELLIE","SONJA","LILA","LANA","DARLA","MAY","MINDY","ESSIE","MANDY","LORENE","ELSA","JOSEFINA","JEANNIE","MIRANDA","DIXIE","LUCIA","MARTA","FAITH","LELA","JOHANNA","SHARI","CAMILLE","TAMI","SHAWNA","ELISA","EBONY","MELBA","ORA","NETTIE","TABITHA","OLLIE","JAIME","WINIFRED","KRISTIE","MARINA","ALISHA","AIMEE","RENA","MYRNA","MARLA","TAMMIE","LATASHA","BONITA","PATRICE","RONDA","SHERRIE","ADDIE","FRANCINE","DELORIS","STACIE","ADRIANA","CHERI","SHELBY","ABIGAIL","CELESTE","JEWEL","CARA","ADELE","REBEKAH","LUCINDA","DORTHY","CHRIS","EFFIE","TRINA","REBA","SHAWN","SALLIE","AURORA","LENORA","ETTA","LOTTIE","KERRI","TRISHA","NIKKI","ESTELLA","FRANCISCA","JOSIE","TRACIE","MARISSA","KARIN","BRITTNEY","JANELLE","LOURDES","LAUREL","HELENE","FERN","ELVA","CORINNE","KELSEY","INA","BETTIE","ELISABETH","AIDA","CAITLIN","INGRID","IVA","EUGENIA","CHRISTA","GOLDIE","CASSIE","MAUDE","JENIFER","THERESE","FRANKIE","DENA","LORNA","JANETTE","LATONYA","CANDY","MORGAN","CONSUELO","TAMIKA","ROSETTA","DEBORA","CHERIE","POLLY","DINA","JEWELL","FAY","JILLIAN","DOROTHEA","NELL","TRUDY","ESPERANZA","PATRICA","KIMBERLEY","SHANNA","HELENA","CAROLINA","CLEO","STEFANIE","ROSARIO","OLA","JANINE","MOLLIE","LUPE","ALISA","LOU","MARIBEL","SUSANNE","BETTE","SUSANA","ELISE","CECILE","ISABELLE","LESLEY","JOCELYN","PAIGE","JONI","RACHELLE","LEOLA","DAPHNE","ALTA","ESTER","PETRA","GRACIELA","IMOGENE","JOLENE","KEISHA","LACEY","GLENNA","GABRIELA","KERI","URSULA","LIZZIE","KIRSTEN","SHANA","ADELINE","MAYRA","JAYNE","JACLYN","GRACIE","SONDRA","CARMELA","MARISA","ROSALIND","CHARITY","TONIA","BEATRIZ","MARISOL","CLARICE","JEANINE","SHEENA","ANGELINE","FRIEDA","LILY","ROBBIE","SHAUNA","MILLIE","CLAUDETTE","CATHLEEN","ANGELIA","GABRIELLE","AUTUMN","KATHARINE","SUMMER","JODIE","STACI","LEA","CHRISTI","JIMMIE","JUSTINE","ELMA","LUELLA","MARGRET","DOMINIQUE","SOCORRO","RENE","MARTINA","MARGO","MAVIS","CALLIE","BOBBI","MARITZA","LUCILE","LEANNE","JEANNINE","DEANA","AILEEN","LORIE","LADONNA","WILLA","MANUELA","GALE","SELMA","DOLLY","SYBIL","ABBY","LARA","DALE","IVY","DEE","WINNIE","MARCY","LUISA","JERI","MAGDALENA","OFELIA","MEAGAN","AUDRA","MATILDA","LEILA","CORNELIA","BIANCA","SIMONE","BETTYE","RANDI","VIRGIE","LATISHA","BARBRA","GEORGINA","ELIZA","LEANN","BRIDGETTE","RHODA","HALEY","ADELA","NOLA","BERNADINE","FLOSSIE","ILA","GRETA","RUTHIE","NELDA","MINERVA","LILLY","TERRIE","LETHA","HILARY","ESTELA","VALARIE","BRIANNA","ROSALYN","EARLINE","CATALINA","AVA","MIA","CLARISSA","LIDIA","CORRINE","ALEXANDRIA","CONCEPCION","TIA","SHARRON","RAE","DONA","ERICKA","JAMI","ELNORA","CHANDRA","LENORE","NEVA","MARYLOU","MELISA","TABATHA","SERENA","AVIS","ALLIE","SOFIA","JEANIE","ODESSA","NANNIE","HARRIETT","LORAINE","PENELOPE","MILAGROS","EMILIA","BENITA","ALLYSON","ASHLEE","TANIA","TOMMIE","ESMERALDA","KARINA","EVE","PEARLIE","ZELMA","MALINDA","NOREEN","TAMEKA","SAUNDRA","HILLARY","AMIE","ALTHEA","ROSALINDA","JORDAN","LILIA","ALANA","GAY","CLARE","ALEJANDRA","ELINOR","MICHAEL","LORRIE","JERRI","DARCY","EARNESTINE","CARMELLA","TAYLOR","NOEMI","MARCIE","LIZA","ANNABELLE","LOUISA","EARLENE","MALLORY","CARLENE","NITA","SELENA","TANISHA","KATY","JULIANNE","JOHN","LAKISHA","EDWINA","MARICELA","MARGERY","KENYA","DOLLIE","ROXIE","ROSLYN","KATHRINE","NANETTE","CHARMAINE","LAVONNE","ILENE","KRIS","TAMMI","SUZETTE","CORINE","KAYE","JERRY","MERLE","CHRYSTAL","LINA","DEANNE","LILIAN","JULIANA","ALINE","LUANN","KASEY","MARYANNE","EVANGELINE","COLETTE","MELVA","LAWANDA","YESENIA","NADIA","MADGE","KATHIE","EDDIE","OPHELIA","VALERIA","NONA","MITZI","MARI","GEORGETTE","CLAUDINE","FRAN","ALISSA","ROSEANN","LAKEISHA","SUSANNA","REVA","DEIDRE","CHASITY","SHEREE","CARLY","JAMES","ELVIA","ALYCE","DEIRDRE","GENA","BRIANA","ARACELI","KATELYN","ROSANNE","WENDI","TESSA","BERTA","MARVA","IMELDA","MARIETTA","MARCI","LEONOR","ARLINE","SASHA","MADELYN","JANNA","JULIETTE","DEENA","AURELIA","JOSEFA","AUGUSTA","LILIANA","YOUNG","CHRISTIAN","LESSIE","AMALIA","SAVANNAH","ANASTASIA","VILMA","NATALIA","ROSELLA","LYNNETTE","CORINA","ALFREDA","LEANNA","CAREY","AMPARO","COLEEN","TAMRA","AISHA","WILDA","KARYN","CHERRY","QUEEN","MAURA","MAI","EVANGELINA","ROSANNA","HALLIE","ERNA","ENID","MARIANA","LACY","JULIET","JACKLYN","FREIDA","MADELEINE","MARA","HESTER","CATHRYN","LELIA","CASANDRA","BRIDGETT","ANGELITA","JANNIE","DIONNE","ANNMARIE","KATINA","BERYL","PHOEBE","MILLICENT","KATHERYN","DIANN","CARISSA","MARYELLEN","LIZ","LAURI","HELGA","GILDA","ADRIAN","RHEA","MARQUITA","HOLLIE","TISHA","TAMERA","ANGELIQUE","FRANCESCA","BRITNEY","KAITLIN","LOLITA","FLORINE","ROWENA","REYNA","TWILA","FANNY","JANELL","INES","CONCETTA","BERTIE","ALBA","BRIGITTE","ALYSON","VONDA","PANSY","ELBA","NOELLE","LETITIA","KITTY","DEANN","BRANDIE","LOUELLA","LETA","FELECIA","SHARLENE","LESA","BEVERLEY","ROBERT","ISABELLA","HERMINIA","TERRA","CELINA"],this.maleFirstNames=["JAMES","JOHN","ROBERT","MICHAEL","WILLIAM","DAVID","RICHARD","CHARLES","JOSEPH","THOMAS","CHRISTOPHER","DANIEL","PAUL","MARK","DONALD","GEORGE","KENNETH","STEVEN","EDWARD","BRIAN","RONALD","ANTHONY","KEVIN","JASON","MATTHEW","GARY","TIMOTHY","JOSE","LARRY","JEFFREY","FRANK","SCOTT","ERIC","STEPHEN","ANDREW","RAYMOND","GREGORY","JOSHUA","JERRY","DENNIS","WALTER","PATRICK","PETER","HAROLD","DOUGLAS","HENRY","CARL","ARTHUR","RYAN","ROGER","JOE","JUAN","JACK","ALBERT","JONATHAN","JUSTIN","TERRY","GERALD","KEITH","SAMUEL","WILLIE","RALPH","LAWRENCE","NICHOLAS","ROY","BENJAMIN","BRUCE","BRANDON","ADAM","HARRY","FRED","WAYNE","BILLY","STEVE","LOUIS","JEREMY","AARON","RANDY","HOWARD","EUGENE","CARLOS","RUSSELL","BOBBY","VICTOR","MARTIN","ERNEST","PHILLIP","TODD","JESSE","CRAIG","ALAN","SHAWN","CLARENCE","SEAN","PHILIP","CHRIS","JOHNNY","EARL","JIMMY","ANTONIO","DANNY","BRYAN","TONY","LUIS","MIKE","STANLEY","LEONARD","NATHAN","DALE","MANUEL","RODNEY","CURTIS","NORMAN","ALLEN","MARVIN","VINCENT","GLENN","JEFFERY","TRAVIS","JEFF","CHAD","JACOB","LEE","MELVIN","ALFRED","KYLE","FRANCIS","BRADLEY","JESUS","HERBERT","FREDERICK","RAY","JOEL","EDWIN","DON","EDDIE","RICKY","TROY","RANDALL","BARRY","ALEXANDER","BERNARD","MARIO","LEROY","FRANCISCO","MARCUS","MICHEAL","THEODORE","CLIFFORD","MIGUEL","OSCAR","JAY","JIM","TOM","CALVIN","ALEX","JON","RONNIE","BILL","LLOYD","TOMMY","LEON","DEREK","WARREN","DARRELL","JEROME","FLOYD","LEO","ALVIN","TIM","WESLEY","GORDON","DEAN","GREG","JORGE","DUSTIN","PEDRO","DERRICK","DAN","LEWIS","ZACHARY","COREY","HERMAN","MAURICE","VERNON","ROBERTO","CLYDE","GLEN","HECTOR","SHANE","RICARDO","SAM","RICK","LESTER","BRENT","RAMON","CHARLIE","TYLER","GILBERT","GENE","MARC","REGINALD","RUBEN","BRETT","ANGEL","NATHANIEL","RAFAEL","LESLIE","EDGAR","MILTON","RAUL","BEN","CHESTER","CECIL","DUANE","FRANKLIN","ANDRE","ELMER","BRAD","GABRIEL","RON","MITCHELL","ROLAND","ARNOLD","HARVEY","JARED","ADRIAN","KARL","CORY","CLAUDE","ERIK","DARRYL","JAMIE","NEIL","JESSIE","CHRISTIAN","JAVIER","FERNANDO","CLINTON","TED","MATHEW","TYRONE","DARREN","LONNIE","LANCE","CODY","JULIO","KELLY","KURT","ALLAN","NELSON","GUY","CLAYTON","HUGH","MAX","DWAYNE","DWIGHT","ARMANDO","FELIX","JIMMIE","EVERETT","JORDAN","IAN","WALLACE","KEN","BOB","JAIME","CASEY","ALFREDO","ALBERTO","DAVE","IVAN","JOHNNIE","SIDNEY","BYRON","JULIAN","ISAAC","MORRIS","CLIFTON","WILLARD","DARYL","ROSS","VIRGIL","ANDY","MARSHALL","SALVADOR","PERRY","KIRK","SERGIO","MARION","TRACY","SETH","KENT","TERRANCE","RENE","EDUARDO","TERRENCE","ENRIQUE","FREDDIE","WADE","AUSTIN","STUART","FREDRICK","ARTURO","ALEJANDRO","JACKIE","JOEY","NICK","LUTHER","WENDELL","JEREMIAH","EVAN","JULIUS","DANA","DONNIE","OTIS","SHANNON","TREVOR","OLIVER","LUKE","HOMER","GERARD","DOUG","KENNY","HUBERT","ANGELO","SHAUN","LYLE","MATT","LYNN","ALFONSO","ORLANDO","REX","CARLTON","ERNESTO","CAMERON","NEAL","PABLO","LORENZO","OMAR","WILBUR","BLAKE","GRANT","HORACE","RODERICK","KERRY","ABRAHAM","WILLIS","RICKEY","JEAN","IRA","ANDRES","CESAR","JOHNATHAN","MALCOLM","RUDOLPH","DAMON","KELVIN","RUDY","PRESTON","ALTON","ARCHIE","MARCO","WM","PETE","RANDOLPH","GARRY","GEOFFREY","JONATHON","FELIPE","BENNIE","GERARDO","ED","DOMINIC","ROBIN","LOREN","DELBERT","COLIN","GUILLERMO","EARNEST","LUCAS","BENNY","NOEL","SPENCER","RODOLFO","MYRON","EDMUND","GARRETT","SALVATORE","CEDRIC","LOWELL","GREGG","SHERMAN","WILSON","DEVIN","SYLVESTER","KIM","ROOSEVELT","ISRAEL","JERMAINE","FORREST","WILBERT","LELAND","SIMON","GUADALUPE","CLARK","IRVING","CARROLL","BRYANT","OWEN","RUFUS","WOODROW","SAMMY","KRISTOPHER","MACK","LEVI","MARCOS","GUSTAVO","JAKE","LIONEL","MARTY","TAYLOR","ELLIS","DALLAS","GILBERTO","CLINT","NICOLAS","LAURENCE","ISMAEL","ORVILLE","DREW","JODY","ERVIN","DEWEY","AL","WILFRED","JOSH","HUGO","IGNACIO","CALEB","TOMAS","SHELDON","ERICK","FRANKIE","STEWART","DOYLE","DARREL","ROGELIO","TERENCE","SANTIAGO","ALONZO","ELIAS","BERT","ELBERT","RAMIRO","CONRAD","PAT","NOAH","GRADY","PHIL","CORNELIUS","LAMAR","ROLANDO","CLAY","PERCY","DEXTER","BRADFORD","MERLE","DARIN","AMOS","TERRELL","MOSES","IRVIN","SAUL","ROMAN","DARNELL","RANDAL","TOMMIE","TIMMY","DARRIN","WINSTON","BRENDAN","TOBY","VAN","ABEL","DOMINICK","BOYD","COURTNEY","JAN","EMILIO","ELIJAH","CARY","DOMINGO","SANTOS","AUBREY","EMMETT","MARLON","EMANUEL","JERALD","EDMOND","EMIL","DEWAYNE","WILL","OTTO","TEDDY","REYNALDO","BRET","MORGAN","JESS","TRENT","HUMBERTO","EMMANUEL","STEPHAN","LOUIE","VICENTE","LAMONT","STACY","GARLAND","MILES","MICAH","EFRAIN","BILLIE","LOGAN","HEATH","RODGER","HARLEY","DEMETRIUS","ETHAN","ELDON","ROCKY","PIERRE","JUNIOR","FREDDY","ELI","BRYCE","ANTOINE","ROBBIE","KENDALL","ROYCE","STERLING","MICKEY","CHASE","GROVER","ELTON","CLEVELAND","DYLAN","CHUCK","DAMIAN","REUBEN","STAN","AUGUST","LEONARDO","JASPER","RUSSEL","ERWIN","BENITO","HANS","MONTE","BLAINE","ERNIE","CURT","QUENTIN","AGUSTIN","MURRAY","JAMAL","DEVON","ADOLFO","HARRISON","TYSON","BURTON","BRADY","ELLIOTT","WILFREDO","BART","JARROD","VANCE","DENIS","DAMIEN","JOAQUIN","HARLAN","DESMOND","ELLIOT","DARWIN","ASHLEY","GREGORIO","BUDDY","XAVIER","KERMIT","ROSCOE","ESTEBAN","ANTON","SOLOMON","SCOTTY","NORBERT","ELVIN","WILLIAMS","NOLAN","CAREY","ROD","QUINTON","HAL","BRAIN","ROB","ELWOOD","KENDRICK","DARIUS","MOISES","SON","MARLIN","FIDEL","THADDEUS","CLIFF","MARCEL","ALI","JACKSON","RAPHAEL","BRYON","ARMAND","ALVARO","JEFFRY","DANE","JOESPH","THURMAN","NED","SAMMIE","RUSTY","MICHEL","MONTY","RORY","FABIAN","REGGIE","MASON","GRAHAM","KRIS","ISAIAH","VAUGHN","GUS","AVERY","LOYD","DIEGO","ALEXIS","ADOLPH","NORRIS","MILLARD","ROCCO","GONZALO","DERICK","RODRIGO","GERRY","STACEY","CARMEN","WILEY","RIGOBERTO","ALPHONSO","TY","SHELBY","RICKIE","NOE","VERN","BOBBIE","REED","JEFFERSON","ELVIS","BERNARDO","MAURICIO","HIRAM","DONOVAN","BASIL","RILEY","OLLIE","NICKOLAS","MAYNARD","SCOT","VINCE","QUINCY","EDDY","SEBASTIAN","FEDERICO","ULYSSES","HERIBERTO","DONNELL","COLE","DENNY","DAVIS","GAVIN","EMERY","WARD","ROMEO","JAYSON","DION","DANTE","CLEMENT","COY","ODELL","MAXWELL","JARVIS","BRUNO","ISSAC","MARY","DUDLEY","BROCK","SANFORD","COLBY","CARMELO","BARNEY","NESTOR","HOLLIS","STEFAN","DONNY","ART","LINWOOD","BEAU","WELDON","GALEN","ISIDRO","TRUMAN","DELMAR","JOHNATHON","SILAS","FREDERIC","DICK","KIRBY","IRWIN","CRUZ","MERLIN","MERRILL","CHARLEY","MARCELINO","LANE","HARRIS","CLEO","CARLO","TRENTON","KURTIS","HUNTER","AURELIO","WINFRED","VITO","COLLIN","DENVER","CARTER","LEONEL","EMORY","PASQUALE","MOHAMMAD","MARIANO","DANIAL","BLAIR","LANDON","DIRK","BRANDEN","ADAN","NUMBERS","CLAIR","BUFORD","GERMAN","BERNIE","WILMER","JOAN","EMERSON","ZACHERY","FLETCHER","JACQUES","ERROL","DALTON","MONROE","JOSUE","DOMINIQUE","EDWARDO","BOOKER","WILFORD","SONNY","SHELTON","CARSON","THERON","RAYMUNDO","DAREN","TRISTAN","HOUSTON","ROBBY","LINCOLN","JAME","GENARO","GALE","BENNETT","OCTAVIO","CORNELL","LAVERNE","HUNG","ARRON","ANTONY","HERSCHEL","ALVA","GIOVANNI","GARTH","CYRUS","CYRIL","RONNY","STEVIE","LON","FREEMAN","ERIN","DUNCAN","KENNITH","CARMINE","AUGUSTINE","YOUNG","ERICH","CHADWICK","WILBURN","RUSS","REID","MYLES","ANDERSON","MORTON","JONAS","FOREST","MITCHEL","MERVIN","ZANE","RICH","JAMEL","LAZARO","ALPHONSE","RANDELL","MAJOR","JOHNIE","JARRETT","BROOKS","ARIEL","ABDUL","DUSTY","LUCIANO","LINDSEY","TRACEY","SEYMOUR","SCOTTIE","EUGENIO","MOHAMMED","SANDY","VALENTIN","CHANCE","ARNULFO","LUCIEN","FERDINAND","THAD","EZRA","SYDNEY","ALDO","RUBIN","ROYAL","MITCH","EARLE","ABE","WYATT","MARQUIS","LANNY","KAREEM","JAMAR","BORIS","ISIAH","EMILE","ELMO","ARON","LEOPOLDO","EVERETTE","JOSEF","GAIL","ELOY","DORIAN","RODRICK","REINALDO","LUCIO","JERROD","WESTON","HERSHEL","BARTON","PARKER","LEMUEL","LAVERN","BURT","JULES","GIL","ELISEO","AHMAD","NIGEL","EFREN","ANTWAN","ALDEN","MARGARITO","COLEMAN","REFUGIO","DINO","OSVALDO","LES","DEANDRE","NORMAND","KIETH","IVORY","ANDREA","TREY","NORBERTO","NAPOLEON","JEROLD","FRITZ","ROSENDO","MILFORD","SANG","DEON","CHRISTOPER","ALFONZO","LYMAN","JOSIAH","BRANT","WILTON","RICO","JAMAAL","DEWITT","CAROL","BRENTON","YONG","OLIN","FOSTER","FAUSTINO","CLAUDIO","JUDSON","GINO","EDGARDO","BERRY","ALEC","TANNER","JARRED","DONN","TRINIDAD","TAD","SHIRLEY","PRINCE","PORFIRIO","ODIS","MARIA","LENARD","CHAUNCEY","CHANG","TOD","MEL","MARCELO","KORY","AUGUSTUS","KEVEN","HILARIO","BUD","SAL","ROSARIO","ORVAL","MAURO","DANNIE","ZACHARIAH","OLEN","ANIBAL","MILO","JED","FRANCES","THANH","DILLON","AMADO","NEWTON","CONNIE","LENNY","TORY","RICHIE","LUPE","HORACIO","BRICE","MOHAMED","DELMER","DARIO","REYES","DEE","MAC","JONAH","JERROLD","ROBT","HANK","SUNG","RUPERT","ROLLAND","KENTON","DAMION","CHI","ANTONE","WALDO","FREDRIC","BRADLY","QUINN","KIP","BURL","WALKER","TYREE","JEFFEREY","AHMED"],this.allFirstNames=this.femaleFirstNames.concat(this.maleFirstNames),this.lastNames=["SMITH","JOHNSON","WILLIAMS","JONES","BROWN","DAVIS","MILLER","WILSON","MOORE","TAYLOR","ANDERSON","THOMAS","JACKSON","WHITE","HARRIS","MARTIN","THOMPSON","GARCIA","MARTINEZ","ROBINSON","CLARK","RODRIGUEZ","LEWIS","LEE","WALKER","HALL","ALLEN","YOUNG","HERNANDEZ","KING","WRIGHT","LOPEZ","HILL","SCOTT","GREEN","ADAMS","BAKER","GONZALEZ","NELSON","CARTER","MITCHELL","PEREZ","ROBERTS","TURNER","PHILLIPS","CAMPBELL","PARKER","EVANS","EDWARDS","COLLINS","STEWART","SANCHEZ","MORRIS","ROGERS","REED","COOK","MORGAN","BELL","MURPHY","BAILEY","RIVERA","COOPER","RICHARDSON","COX","HOWARD","WARD","TORRES","PETERSON","GRAY","RAMIREZ","JAMES","WATSON","BROOKS","KELLY","SANDERS","PRICE","BENNETT","WOOD","BARNES","ROSS","HENDERSON","COLEMAN","JENKINS","PERRY","POWELL","LONG","PATTERSON","HUGHES","FLORES","WASHINGTON","BUTLER","SIMMONS","FOSTER","GONZALES","BRYANT","ALEXANDER","RUSSELL","GRIFFIN","DIAZ","HAYES","MYERS","FORD","HAMILTON","GRAHAM","SULLIVAN","WALLACE","WOODS","COLE","WEST","JORDAN","OWENS","REYNOLDS","FISHER","ELLIS","HARRISON","GIBSON","MCDONALD","CRUZ","MARSHALL","ORTIZ","GOMEZ","MURRAY","FREEMAN","WELLS","WEBB","SIMPSON","STEVENS","TUCKER","PORTER","HUNTER","HICKS","CRAWFORD","HENRY","BOYD","MASON","MORALES","KENNEDY","WARREN","DIXON","RAMOS","REYES","BURNS","GORDON","SHAW","HOLMES","RICE","ROBERTSON","HUNT","BLACK","DANIELS","PALMER","MILLS","NICHOLS","GRANT","KNIGHT","FERGUSON","ROSE","STONE","HAWKINS","DUNN","PERKINS","HUDSON","SPENCER","GARDNER","STEPHENS","PAYNE","PIERCE","BERRY","MATTHEWS","ARNOLD","WAGNER","WILLIS","RAY","WATKINS","OLSON","CARROLL","DUNCAN","SNYDER","HART","CUNNINGHAM","BRADLEY","LANE","ANDREWS","RUIZ","HARPER","FOX","RILEY","ARMSTRONG","CARPENTER","WEAVER","GREENE","LAWRENCE","ELLIOTT","CHAVEZ","SIMS","AUSTIN","PETERS","KELLEY","FRANKLIN","LAWSON","FIELDS","GUTIERREZ","RYAN","SCHMIDT","CARR","VASQUEZ","CASTILLO","WHEELER","CHAPMAN","OLIVER","MONTGOMERY","RICHARDS","WILLIAMSON","JOHNSTON","BANKS","MEYER","BISHOP","MCCOY","HOWELL","ALVAREZ","MORRISON","HANSEN","FERNANDEZ","GARZA","HARVEY","LITTLE","BURTON","STANLEY","NGUYEN","GEORGE","JACOBS","REID","KIM","FULLER","LYNCH","DEAN","GILBERT","GARRETT","ROMERO","WELCH","LARSON","FRAZIER","BURKE","HANSON","DAY","MENDOZA","MORENO","BOWMAN","MEDINA","FOWLER","BREWER","HOFFMAN","CARLSON","SILVA","PEARSON","HOLLAND","DOUGLAS","FLEMING","JENSEN","VARGAS","BYRD","DAVIDSON","HOPKINS","MAY","TERRY","HERRERA","WADE","SOTO","WALTERS","CURTIS","NEAL","CALDWELL","LOWE","JENNINGS","BARNETT","GRAVES","JIMENEZ","HORTON","SHELTON","BARRETT","OBRIEN","CASTRO","SUTTON","GREGORY","MCKINNEY","LUCAS","MILES","CRAIG","RODRIQUEZ","CHAMBERS","HOLT","LAMBERT","FLETCHER","WATTS","BATES","HALE","RHODES","PENA","BECK","NEWMAN","HAYNES","MCDANIEL","MENDEZ","BUSH","VAUGHN","PARKS","DAWSON","SANTIAGO","NORRIS","HARDY","LOVE","STEELE","CURRY","POWERS","SCHULTZ","BARKER","GUZMAN","PAGE","MUNOZ","BALL","KELLER","CHANDLER","WEBER","LEONARD","WALSH","LYONS","RAMSEY","WOLFE","SCHNEIDER","MULLINS","BENSON","SHARP","BOWEN","DANIEL","BARBER","CUMMINGS","HINES","BALDWIN","GRIFFITH","VALDEZ","HUBBARD","SALAZAR","REEVES","WARNER","STEVENSON","BURGESS","SANTOS","TATE","CROSS","GARNER","MANN","MACK","MOSS","THORNTON","DENNIS","MCGEE","FARMER","DELGADO","AGUILAR","VEGA","GLOVER","MANNING","COHEN","HARMON","RODGERS","ROBBINS","NEWTON","TODD","BLAIR","HIGGINS","INGRAM","REESE","CANNON","STRICKLAND","TOWNSEND","POTTER","GOODWIN","WALTON","ROWE","HAMPTON","ORTEGA","PATTON","SWANSON","JOSEPH","FRANCIS","GOODMAN","MALDONADO","YATES","BECKER","ERICKSON","HODGES","RIOS","CONNER","ADKINS","WEBSTER","NORMAN","MALONE","HAMMOND","FLOWERS","COBB","MOODY","QUINN","BLAKE","MAXWELL","POPE","FLOYD","OSBORNE","PAUL","MCCARTHY","GUERRERO","LINDSEY","ESTRADA","SANDOVAL","GIBBS","TYLER","GROSS","FITZGERALD","STOKES","DOYLE","SHERMAN","SAUNDERS","WISE","COLON","GILL","ALVARADO","GREER","PADILLA","SIMON","WATERS","NUNEZ","BALLARD","SCHWARTZ","MCBRIDE","HOUSTON","CHRISTENSEN","KLEIN","PRATT","BRIGGS","PARSONS","MCLAUGHLIN","ZIMMERMAN","FRENCH","BUCHANAN","MORAN","COPELAND","ROY","PITTMAN","BRADY","MCCORMICK","HOLLOWAY","BROCK","POOLE","FRANK","LOGAN","OWEN","BASS","MARSH","DRAKE","WONG","JEFFERSON","PARK","MORTON","ABBOTT","SPARKS","PATRICK","NORTON","HUFF","CLAYTON","MASSEY","LLOYD","FIGUEROA","CARSON","BOWERS","ROBERSON","BARTON","TRAN","LAMB","HARRINGTON","CASEY","BOONE","CORTEZ","CLARKE","MATHIS","SINGLETON","WILKINS","CAIN","BRYAN","UNDERWOOD","HOGAN","MCKENZIE","COLLIER","LUNA","PHELPS","MCGUIRE","ALLISON","BRIDGES","WILKERSON","NASH","SUMMERS","ATKINS","WILCOX","PITTS","CONLEY","MARQUEZ","BURNETT","RICHARD","COCHRAN","CHASE","DAVENPORT","HOOD","GATES","CLAY","AYALA","SAWYER","ROMAN","VAZQUEZ","DICKERSON","HODGE","ACOSTA","FLYNN","ESPINOZA","NICHOLSON","MONROE","WOLF","MORROW","KIRK","RANDALL","ANTHONY","WHITAKER","OCONNOR","SKINNER","WARE","MOLINA","KIRBY","HUFFMAN","BRADFORD","CHARLES","GILMORE","DOMINGUEZ","ONEAL","BRUCE","LANG","COMBS","KRAMER","HEATH","HANCOCK","GALLAGHER","GAINES","SHAFFER","SHORT","WIGGINS","MATHEWS","MCCLAIN","FISCHER","WALL","SMALL","MELTON","HENSLEY","BOND","DYER","CAMERON","GRIMES","CONTRERAS","CHRISTIAN","WYATT","BAXTER","SNOW","MOSLEY","SHEPHERD","LARSEN","HOOVER","BEASLEY","GLENN","PETERSEN","WHITEHEAD","MEYERS","KEITH","GARRISON","VINCENT","SHIELDS","HORN","SAVAGE","OLSEN","SCHROEDER","HARTMAN","WOODARD","MUELLER","KEMP","DELEON","BOOTH","PATEL","CALHOUN","WILEY","EATON","CLINE","NAVARRO","HARRELL","LESTER","HUMPHREY","PARRISH","DURAN","HUTCHINSON","HESS","DORSEY","BULLOCK","ROBLES","BEARD","DALTON","AVILA","VANCE","RICH","BLACKWELL","YORK","JOHNS","BLANKENSHIP","TREVINO","SALINAS","CAMPOS","PRUITT","MOSES","CALLAHAN","GOLDEN","MONTOYA","HARDIN","GUERRA","MCDOWELL","CAREY","STAFFORD","GALLEGOS","HENSON","WILKINSON","BOOKER","MERRITT","MIRANDA","ATKINSON","ORR","DECKER","HOBBS","PRESTON","TANNER","KNOX","PACHECO","STEPHENSON","GLASS","ROJAS","SERRANO","MARKS","HICKMAN","ENGLISH","SWEENEY","STRONG","PRINCE","MCCLURE","CONWAY","WALTER","ROTH","MAYNARD","FARRELL","LOWERY","HURST","NIXON","WEISS","TRUJILLO","ELLISON","SLOAN","JUAREZ","WINTERS","MCLEAN","RANDOLPH","LEON","BOYER","VILLARREAL","MCCALL","GENTRY","CARRILLO","KENT","AYERS","LARA","SHANNON","SEXTON","PACE","HULL","LEBLANC","BROWNING","VELASQUEZ","LEACH","CHANG","HOUSE","SELLERS","HERRING","NOBLE","FOLEY","BARTLETT","MERCADO","LANDRY","DURHAM","WALLS","BARR","MCKEE","BAUER","RIVERS","EVERETT","BRADSHAW","PUGH","VELEZ","RUSH","ESTES","DODSON","MORSE","SHEPPARD","WEEKS","CAMACHO","BEAN","BARRON","LIVINGSTON","MIDDLETON","SPEARS","BRANCH","BLEVINS","CHEN","KERR","MCCONNELL","HATFIELD","HARDING","ASHLEY","SOLIS","HERMAN","FROST","GILES","BLACKBURN","WILLIAM","PENNINGTON","WOODWARD","FINLEY","MCINTOSH","KOCH","BEST","SOLOMON","MCCULLOUGH","DUDLEY","NOLAN","BLANCHARD","RIVAS","BRENNAN","MEJIA","KANE","BENTON","JOYCE","BUCKLEY","HALEY","VALENTINE","MADDOX","RUSSO","MCKNIGHT","BUCK","MOON","MCMILLAN","CROSBY","BERG","DOTSON","MAYS","ROACH","CHURCH","CHAN","RICHMOND","MEADOWS","FAULKNER","ONEILL","KNAPP","KLINE","BARRY","OCHOA","JACOBSON","GAY","AVERY","HENDRICKS","HORNE","SHEPARD","HEBERT","CHERRY","CARDENAS","MCINTYRE","WHITNEY","WALLER","HOLMAN","DONALDSON","CANTU","TERRELL","MORIN","GILLESPIE","FUENTES","TILLMAN","SANFORD","BENTLEY","PECK","KEY","SALAS","ROLLINS","GAMBLE","DICKSON","BATTLE","SANTANA","CABRERA","CERVANTES","HOWE","HINTON","HURLEY","SPENCE","ZAMORA","YANG","MCNEIL","SUAREZ","CASE","PETTY","GOULD","MCFARLAND","SAMPSON","CARVER","BRAY","ROSARIO","MACDONALD","STOUT","HESTER","MELENDEZ","DILLON","FARLEY","HOPPER","GALLOWAY","POTTS","BERNARD","JOYNER","STEIN","AGUIRRE","OSBORN","MERCER","BENDER","FRANCO","ROWLAND","SYKES","BENJAMIN","TRAVIS","PICKETT","CRANE","SEARS","MAYO","DUNLAP","HAYDEN","WILDER","MCKAY","COFFEY","MCCARTY","EWING","COOLEY","VAUGHAN","BONNER","COTTON","HOLDER","STARK","FERRELL","CANTRELL","FULTON","LYNN","LOTT","CALDERON","ROSA","POLLARD","HOOPER","BURCH","MULLEN","FRY","RIDDLE","LEVY","DAVID","DUKE","ODONNELL","GUY","MICHAEL","BRITT","FREDERICK","DAUGHERTY","BERGER","DILLARD","ALSTON","JARVIS","FRYE","RIGGS","CHANEY","ODOM","DUFFY","FITZPATRICK","VALENZUELA","MERRILL","MAYER","ALFORD","MCPHERSON","ACEVEDO","DONOVAN","BARRERA","ALBERT","COTE","REILLY","COMPTON","RAYMOND","MOONEY","MCGOWAN","CRAFT","CLEVELAND","CLEMONS","WYNN","NIELSEN","BAIRD","STANTON","SNIDER","ROSALES","BRIGHT","WITT","STUART","HAYS","HOLDEN","RUTLEDGE","KINNEY","CLEMENTS","CASTANEDA","SLATER","HAHN","EMERSON","CONRAD","BURKS","DELANEY","PATE","LANCASTER","SWEET","JUSTICE","TYSON","SHARPE","WHITFIELD","TALLEY","MACIAS","IRWIN","BURRIS","RATLIFF","MCCRAY","MADDEN","KAUFMAN","BEACH","GOFF","CASH","BOLTON","MCFADDEN","LEVINE","GOOD","BYERS","KIRKLAND","KIDD","WORKMAN","CARNEY","DALE","MCLEOD","HOLCOMB","ENGLAND","FINCH","HEAD","BURT","HENDRIX","SOSA","HANEY","FRANKS","SARGENT","NIEVES","DOWNS","RASMUSSEN","BIRD","HEWITT","LINDSAY","LE","FOREMAN","VALENCIA","ONEIL","DELACRUZ","VINSON","DEJESUS","HYDE","FORBES","GILLIAM","GUTHRIE","WOOTEN","HUBER","BARLOW","BOYLE","MCMAHON","BUCKNER","ROCHA","PUCKETT","LANGLEY","KNOWLES","COOKE","VELAZQUEZ","WHITLEY","NOEL","VANG"],this.streets=["JACKSON STREET","ROUTE 41","HILLCREST AVENUE","5TH STREET","RIDGE AVENUE","CREEKSIDE DRIVE","ORCHARD LANE","MECHANIC STREET","3RD STREET NORTH","CANTERBURY COURT","ASHLEY COURT","CYPRESS COURT","SCHOOL STREET","FRANKLIN STREET","RIVER STREET","COBBLESTONE COURT","DELAWARE AVENUE","5TH STREET WEST","4TH STREET NORTH","WILLOW LANE","MYRTLE STREET","CHESTNUT STREET","COURT STREET","FAIRVIEW ROAD","WINDING WAY","IVY LANE","8TH STREET","HARRISON AVENUE","AMHERST STREET","HUDSON STREET","FRONT STREET SOUTH","RAILROAD STREET","HAWTHORNE AVENUE","GRANT STREET","TANGLEWOOD DRIVE","DOGWOOD DRIVE","EDGEWOOD DRIVE","FAWN COURT","2ND STREET EAST","SUMMIT STREET","LAUREL DRIVE","ANN STREET","ELMWOOD AVENUE","CROSS STREET","WINDSOR COURT","RIVER ROAD","VIRGINIA AVENUE","FOREST AVENUE","HEATHER LANE","1ST STREET","2ND STREET NORTH","MYRTLE AVENUE","WOODLAND ROAD","8TH AVENUE","BROOKSIDE DRIVE","SMITH STREET","MAPLE LANE","STATE STREET","HAWTHORNE LANE","QUEEN STREET","OVERLOOK CIRCLE","4TH AVENUE","JEFFERSON STREET","HILLTOP ROAD","INVERNESS DRIVE","MAGNOLIA COURT","DOGWOOD LANE","HENRY STREET","SPRING STREET","FRANKLIN COURT","LOCUST STREET","YORK STREET","RIVERSIDE DRIVE","CEMETERY ROAD","MAIN STREET","HIGHLAND DRIVE","PINE STREET","LOIS LANE","CANTERBURY DRIVE","MAIN STREET EAST","HARRISON STREET","CLINTON STREET","MADISON AVENUE","2ND STREET WEST","SUMMIT AVENUE","WOODLAND AVENUE","CAMBRIDGE COURT","SHADY LANE","GEORGE STREET","LAUREL STREET","BRIARWOOD COURT","IVY COURT","LAFAYETTE AVENUE","YORK ROAD","VALLEY VIEW ROAD","CREEK ROAD","SYCAMORE LANE","PEARL STREET","11TH STREET","ROUTE 1"],this.cities=["MADRID","BENGALURU","AHMEDABAD","LOS ANGELES","BAKU","ALGIERS","SHIRAZ","DONGGUAN","QUITO","TORONTO","WUHAN","HONG KONG","MELBOURNE","MAPUTO","XI'AN","RECIFE","SANTA CRUZ DE LA SIERRA","SHANGHAI","MONTERREY","HAVANA","TAIPEI","ABIDJAN","KARACHI","TASHKENT","MUMBAI","SHIJIAZHUANG","JAKARTA","NANJING","HYDERABAD","XIAMEN","FAISALABAD","QUANZHOU","BOGOTA","KUALA LUMPUR","FOSHAN","BAGHDAD","ROSTOV-ON-DON","KAOHSIUNG","PHOENIX","SYDNEY","PESHAWAR","ADDIS ABABA","RIO DE JANEIRO","BARCELONA","SAPPORO","MONTEVIDEO","ASTANA","AHVAZ","TEHRAN","HEFEI"],this.countries=["UKRAINE","DJIBOUTI","COLOMBIA","ALGERIA","ERITREA","BELIZE","UNITED STATES OF AMERICA","POLAND","TOKELAU","JORDAN","RUSSIAN FEDERATION","GERMANY","BRITISH INDIAN OCEAN TERRITORY","SURINAME","NORTHERN MARIANA ISLANDS","FRENCH SOUTHERN TERRITORIES","MYANMAR","SWEDEN","JERSEY","ANGUILLA","UZBEKISTAN","CHINA","ISRAEL","MALI","SAINT VINCENT AND THE GRENADINES","ISLE OF MAN","SYRIAN ARAB REPUBLIC","IRAQ","SOMALIA","ESTONIA","KIRIBATI","NORFOLK ISLAND","COSTA RICA","KYRGYZSTAN","LAO PEOPLE'S DEMOCRATIC REPUBLIC","ISLE OF MAN","BOTSWANA","CANADA","FALKLAND ISLANDS (MALVINAS)","WALLIS AND FUTUNA","AFGHANISTAN","CHAD","SRI LANKA","LATVIA","ITALY","YEMEN"]}}class s{constructor(L){this.addressTag=O.data.DicomMetaDictionary.nameMap.PatientAddress.tag,this.regionTag=O.data.DicomMetaDictionary.nameMap.RegionOfResidence.tag,this.countryTag=O.data.DicomMetaDictionary.nameMap.CountryOfResidence.tag,this.anonymize=async(E,A)=>{const N=await this.valueFactories[A];if(N==null)return!1;if(E[A].Value.length>1){for(let R=0;R{const A=await this.getStreetAddress(E),N=await this.getStreetNumber(E),R=await this.getRegion(E);return`${N} ${A}, ${R}`},this.getStreetNumber=async E=>{const[A]=await this.randomizer.getIntsFromRanges(E,1e3);return`${A+1}`},this.getStreetAddress=async E=>{const[A]=await this.randomizer.getIntsFromRanges(E,this.lists.streets.length);return`${this.lists.streets[A]}`},this.getRegion=async E=>{const[A]=await this.randomizer.getIntsFromRanges(E,this.lists.cities.length);return`${this.lists.cities[A]}`},this.getCountry=async E=>{const[A]=await this.randomizer.getIntsFromRanges(E,this.lists.countries.length);return`${this.lists.countries[A]}`},this.randomizer=L,this.lists=new D,this.addressTag=O.data.DicomMetaDictionary.unpunctuateTag(this.addressTag),this.regionTag=O.data.DicomMetaDictionary.unpunctuateTag(this.regionTag),this.countryTag=O.data.DicomMetaDictionary.unpunctuateTag(this.countryTag),this.valueFactories={[this.addressTag]:this.getLegalAddress,[this.regionTag]:this.getRegion,[this.countryTag]:this.getCountry}}}class H{constructor(L){this.anonymize=async(E,A)=>E[A].vr!="DA"&&E[A].vr!="DT"?!1:(E[A].Value[0]==null||(E[A].vr=="DA"?await this.anonymizeDateAndTime(E,A):await this.anonymizeDatetime(E,A)),!0),this.anonymizeDateAndTime=(E,A)=>{const N=E[A].Value,R=this.checkTag(E,A),I=R.value,S=[],e=[];for(const[t,i]of this.zipLongest("",N,I)){const C=this.shiftDateTime(t+i);S.push(C.slice(0,8)),e.push(C.slice(8))}if(E[A].Value=S,R.tag!="")try{E[R.tag].Value=e}catch{console.log()}},this.anonymizeDatetime=(E,A)=>{const N=E[A].Value,R=[];for(const I of N){const S=this.shiftDateTime(I);R.push(S)}E[A].Value=R},this.shiftDateTime=E=>{const A="%Y%m%d%H".slice(0,E.length-2),N=this.parseDateTime(E),R=new Date(N.getTime()+this.offset);let I=this.formatDate(R,A);return I+=E.slice(I.length),I},this.parseDateTime=E=>{const A=E,N=Number(A.slice(0,4)),R=Number(A.slice(4,6))-1,I=Number(A.slice(6,8)),S=Number(A.slice(8,10)),e=Number(A.slice(10,12)),t=Number(A.slice(12,14)),i=Number(A.slice(15,A.length));return new Date(N,R,I,S,e,t,i)},this.formatDate=(E,A)=>{const N=(u,V)=>String(u).padStart(V,"0"),R=N(E.getFullYear(),4),I=N(E.getMonth()+1,2),S=N(E.getDate(),2),e=N(E.getHours(),2),t=N(E.getMinutes(),2),i=N(E.getSeconds(),2),C=N(E.getMilliseconds(),6);return A.replace("%Y",R).replace("%m",I).replace("%d",S).replace("%H",e).replace("%M",t).replace("%S",i).replace("%s",C)},this.zipLongest=(E="",...A)=>{const N=Math.max(...A.map(R=>R.length));return Array.from({length:N},(R,I)=>A.map(S=>S[I]!==void 0?S[I]:E))},this.checkTag=(E,A)=>{const R=O.data.DicomMetaDictionary.dictionary[O.data.DicomMetaDictionary.punctuateTag(A)].name.replace("Date","Time");if(typeof O.data.DicomMetaDictionary.nameMap[R]<"u"){let I=O.data.DicomMetaDictionary.nameMap[R].tag;return I=O.data.DicomMetaDictionary.unpunctuateTag(I),I in E?{value:E[I].Value,tag:I}:{value:"",tag:""}}else return{value:"",tag:""}},this.offset=L*60*60*1e3}}class M{constructor(L,E){this.anonymize=async(A,N)=>N==this.tag?(A[N].Value[0]=this.value,!0):!1,this.tag=L,this.value=E}}class r{constructor(L,E,A="",N=""){this.anonymize=async(R,I)=>this.keywords.includes(I)?(await this.replaceID(R,I),!0):I==this.issuerTag&&R[I].Value[0]!=""?(R[I].Value[0]="DICOM_ANONYMIZER",!0):!1,this.replaceID=async(R,I)=>{if(R[I].Value.length>1)for(let S=0;S{const S=(await this.randomizer.getIntsFromRanges(R,...this.indicesForRandomizer)).map(e=>this.alphabet[e]).join("");return this.idPrefix+S+this.idSuffix},this.keywords=E,this.randomizer=L,this.idPrefix=A,this.idSuffix=N,this.issuerTag=O.data.DicomMetaDictionary.nameMap.IssuerOfPatientID.tag,this.alphabet="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789",this.totalAffixesLength=this.idPrefix.length+this.idSuffix.length,this.indicesForRandomizer=new Array(12-this.totalAffixesLength).fill(this.alphabet.length)}}class Y{constructor(L){this.institutionName=O.data.DicomMetaDictionary.nameMap.InstitutionName.tag,this.institutionAddress=O.data.DicomMetaDictionary.nameMap.InstitutionAddress.tag,this.institutionalDepartmentName=O.data.DicomMetaDictionary.nameMap.InstitutionalDepartmentName.tag,this.anonymize=async(E,A)=>{const N=await this.valueFactories[A];if(N==null)return!1;if(E[A].Value.length>1){for(let R=0;R{const A=await this.addressAnonymizer.getRegion(E),N=await this.addressAnonymizer.getStreetAddress(E);return`${A}'S ${N} CLINIC`},this.anonymizeInstitutionAddress=async E=>{const A=await this.addressAnonymizer.getLegalAddress(E),N=await this.addressAnonymizer.getCountry(E);return`${A}, ${N}`},this.anonymizeDepartmentName=()=>Promise.resolve("RADIOLOGY"),this.addressAnonymizer=L,this.institutionName=O.data.DicomMetaDictionary.unpunctuateTag(this.institutionName),this.institutionAddress=O.data.DicomMetaDictionary.unpunctuateTag(this.institutionAddress),this.institutionalDepartmentName=O.data.DicomMetaDictionary.unpunctuateTag(this.institutionalDepartmentName),this.valueFactories={[this.institutionName]:this.anonymizeInstitutionName,[this.institutionAddress]:this.anonymizeInstitutionAddress,[this.institutionalDepartmentName]:this.anonymizeDepartmentName}}}class U{constructor(L){this.anonymize=async(E,A)=>{if(E[A].vr!="PN")return!1;let N="";if("00100040"in E&&(N=E["00100040"].Value[0]),E[A].Value.length>1)for(let R=0;RO.data.Tag.fromString(E).group()%2===1?(delete L[E],!0):!1}}class B{constructor(L=""){L==""?this.seed=this.generateRandomSeed():this.seed=L}async calculateSHADigestWeb(L){const E=await window.crypto.subtle.digest("SHA-1",L);return new Promise(A=>{A(new Uint8Array(E))})}calculateResult(L){let E=0;for(const A of L)E*=256,E+=A;return BigInt(E)}generateRandomSeed(){const L=new Uint8Array(20);return window.crypto.getRandomValues(L),Array.from(L,A=>A.toString(16).padStart(2,"0")).join("")}async toInt(L){const E=this.seed+String(L),N=new TextEncoder().encode(E),R=await this.calculateSHADigestWeb(N);return this.calculateResult(R)}async getIntsFromRanges(L,...E){let A=[],N=await this.toInt(L);const R=[];for(const I of E){const S=BigInt(I);R.push(Number(N%S)),N=N/S}return A=R,A}}class a{constructor(L){this.anonymize=async(E,A)=>{const N=O.data.DicomMetaDictionary.punctuateTag(A);if(E[A].vr!="UI"||E[A].Value[0]==null||O.data.DicomMetaDictionary.dictionary[N].name.endsWith("ClassUID")||O.data.DicomMetaDictionary.dictionary[N].name=="TransferSyntaxUID")return!1;if(E[A].Value.length>1)for(let R=0;Rthis.tags.includes(A)?(delete E[A],!0):!1,this.tags=L}}class n extends Error{constructor(L){const E=`Bad tag name '${L}'. Must be a well-known DICOM element name or a string in the form 'stuv,wxyz' where each character is a hexadecimal digit.`;super(E),Object.setPrototypeOf(this,n.prototype)}}class l{constructor(L=[]){this.protectedTags=[],this.keep=(E,A)=>!!this.protectedTags.includes(A);for(const E of L){let A=/^\(?([0-9A-F]{4}),?([0-9A-F]{4})\)?$/,N=E.match(A);if(N)this.protectedTags.push(N[1]+N[2]);else{A=/^[a-zA-Z]+$/;try{N=E.match(A);const R=O.data.DicomMetaDictionary.nameMap[N[0]];if(R)this.protectedTags.push(R.tag);else throw new n("invalidTag")}catch(R){R instanceof n?console.error(R.message):console.error("An unexpected error occurred:",R)}}}}}class c{constructor(L,E,A,N,R,I){this.anonymizePrivateTags=!0,this.dateOffsetHours=0,L&&(this.patientID=L),A&&(this.anonymizePrivateTags=A),this.randomizer=new B(I),this.setOffset(),this.addressAnonymizer=new s(this.randomizer),this.elementHandlers=[new G(["00101081","00102180","00101090","00101080","00100050","00102201","00102155","00102154","00101100","00102299"]).anonymize,new a(this.randomizer).anonymize,new U(this.randomizer).anonymize,new r(this.randomizer,["00080050","00101000","00402017","00100020","00400253","00402016","00401001","00400009","00081010","00200010"],N,R).anonymize,this.addressAnonymizer.anonymize,new Y(this.addressAnonymizer).anonymize,new M("00321033","").anonymize,new M("00380300","").anonymize],E&&this.elementHandlers.unshift(new l(E).keep),this.patientID&&this.elementHandlers.unshift(new M("00100020",this.patientID).anonymize),this.anonymizePrivateTags&&this.elementHandlers.push(new o().anonymize)}async setOffset(){const L=await this.randomizer.toInt("dateOffset"),E=62*24,A=730*24;this.dateOffsetHours=Number(-(L%(BigInt(A)-BigInt(E))+BigInt(E))),this.elementHandlers.push(new H(this.dateOffsetHours).anonymize)}async anonymize(L){await this.walk(L.meta,this.elementHandlers),await this.walk(L.dict,this.elementHandlers)}async walk(L,E){const A=Object.keys(L);for(const N of A){const R=L[N];if(await this.anonymizeElement(L,N,E),N in L&&R.vr=="SQ")for(let I=0;I Promise } | undefined;\n\n constructor(Randomizer: Randomizer) {\n this.randomizer = Randomizer;\n this.lists = new lists();\n\n this.addressTag = data.DicomMetaDictionary.unpunctuateTag(this.addressTag);\n this.regionTag = data.DicomMetaDictionary.unpunctuateTag(this.regionTag);\n this.countryTag = data.DicomMetaDictionary.unpunctuateTag(this.countryTag);\n // this._setupValueFactories();\n this.valueFactories = {\n [this.addressTag]: this.getLegalAddress,\n [this.regionTag]: this.getRegion,\n [this.countryTag]: this.getCountry,\n };\n }\n\n anonymize = async (dataset: dataSet, dataTag: string): Promise => {\n const valueFactory = await this.valueFactories[dataTag];\n\n if (valueFactory == undefined) {\n return false;\n }\n\n if (dataset[dataTag].Value.length > 1) {\n for (let i = 0; i < dataset[dataTag].Value.length; i++) {\n dataset[dataTag].Value[i] = await valueFactory(dataset[dataTag].Value[i]);\n }\n\n return true;\n } else if (dataset[dataTag].Value.length == 1) {\n const originalValue: string = dataset[dataTag].Value[0];\n dataset[dataTag].Value[0] = await valueFactory(originalValue);\n return true;\n } else {\n dataset[dataTag].Value[0] = await valueFactory(\"\");\n return true;\n }\n };\n\n getLegalAddress = async (originalValue: string): Promise => {\n const street: string = await this.getStreetAddress(originalValue);\n const streetNumber: string = await this.getStreetNumber(originalValue);\n const city: string = await this.getRegion(originalValue);\n\n return `${streetNumber} ${street}, ${city}`;\n };\n\n getStreetNumber = async (originalValue: string): Promise => {\n const [streetNumberIndex]: number[] = await this.randomizer.getIntsFromRanges(\n originalValue,\n 1000\n );\n const streetNumber: number = streetNumberIndex + 1;\n\n return `${streetNumber}`;\n };\n\n getStreetAddress = async (originalValue: string): Promise => {\n const [streetIndex]: number[] = await this.randomizer.getIntsFromRanges(\n originalValue,\n this.lists.streets.length\n );\n\n return `${this.lists.streets[streetIndex]}`;\n };\n\n getRegion = async (originalValue: string): Promise => {\n const [cityIndex]: number[] = await this.randomizer.getIntsFromRanges(\n originalValue,\n this.lists.cities.length\n );\n\n return `${this.lists.cities[cityIndex]}`;\n };\n\n getCountry = async (originalValue: string): Promise => {\n const [countryIndex]: number[] = await this.randomizer.getIntsFromRanges(\n originalValue,\n this.lists.countries.length\n );\n\n return `${this.lists.countries[countryIndex]}`;\n };\n}\n\nexport default AddressAnonymizer;\n","import { data, dataSet } from \"dcmjs\";\r\n\r\ntype returnarg = {\r\n value: string;\r\n tag: string;\r\n};\r\n\r\nclass DateTimeAnonymizer {\r\n private offset: number;\r\n\r\n constructor(dateOffsetHours: number) {\r\n this.offset = dateOffsetHours * 60 * 60 * 1000;\r\n }\r\n\r\n anonymize = async (dataset: dataSet, dataTag: string): Promise => {\r\n if (dataset[dataTag].vr != \"DA\" && dataset[dataTag].vr != \"DT\") {\r\n return false;\r\n }\r\n if (dataset[dataTag].Value[0] == undefined) {\r\n return true;\r\n }\r\n\r\n if (dataset[dataTag].vr == \"DA\") {\r\n await this.anonymizeDateAndTime(dataset, dataTag);\r\n } else {\r\n await this.anonymizeDatetime(dataset, dataTag);\r\n }\r\n\r\n return true;\r\n };\r\n\r\n anonymizeDateAndTime = (dataset: dataSet, dataTag: string): void => {\r\n const dates = dataset[dataTag].Value;\r\n const result: returnarg = this.checkTag(dataset, dataTag);\r\n\r\n const times: string = result.value;\r\n\r\n const newDates: string[] = [];\r\n const newTimes: string[] = [];\r\n\r\n for (const [date, time] of this.zipLongest(\"\", dates, times)) {\r\n const newDateTime = this.shiftDateTime(date + time);\r\n\r\n newDates.push(newDateTime.slice(0, 8));\r\n newTimes.push(newDateTime.slice(8));\r\n }\r\n\r\n dataset[dataTag].Value = newDates;\r\n if (result.tag != \"\") {\r\n try {\r\n dataset[result.tag].Value = newTimes;\r\n } catch {\r\n console.log();\r\n }\r\n }\r\n };\r\n\r\n anonymizeDatetime = (dataset: dataSet, dataTag: string): void => {\r\n const dateTimes = dataset[dataTag].Value;\r\n const newDateTimes: string[] = [];\r\n\r\n for (const dateTimeValue of dateTimes) {\r\n const newDateTimeString = this.shiftDateTime(dateTimeValue);\r\n newDateTimes.push(newDateTimeString);\r\n }\r\n dataset[dataTag].Value = newDateTimes;\r\n };\r\n\r\n shiftDateTime = (dateTimeValue: string): string => {\r\n const dateTimeFormat = \"%Y%m%d%H\".slice(0, dateTimeValue.length - 2);\r\n\r\n const oldDateTime = this.parseDateTime(dateTimeValue);\r\n const newDateTime = new Date(oldDateTime.getTime() + this.offset);\r\n let newDateTimeString = this.formatDate(newDateTime, dateTimeFormat);\r\n newDateTimeString += dateTimeValue.slice(newDateTimeString.length);\r\n\r\n return newDateTimeString;\r\n };\r\n\r\n parseDateTime = (dateTimeValue: string): Date => {\r\n // similar to pythons strptime() method\r\n const dateString = dateTimeValue;\r\n const year = Number(dateString.slice(0, 4));\r\n const month = Number(dateString.slice(4, 6)) - 1; // JavaScript months are zero-indexed (0 to 11)\r\n const day = Number(dateString.slice(6, 8));\r\n const hour = Number(dateString.slice(8, 10));\r\n const minute = Number(dateString.slice(10, 12));\r\n const second = Number(dateString.slice(12, 14));\r\n const milliseconds = Number(dateString.slice(15, dateString.length));\r\n\r\n return new Date(year, month, day, hour, minute, second, milliseconds);\r\n };\r\n\r\n formatDate = (date: Date, format: string): string => {\r\n const padZero = (value: number, length: number) =>\r\n String(value).padStart(length, \"0\");\r\n\r\n const year = padZero(date.getFullYear(), 4);\r\n const month = padZero(date.getMonth() + 1, 2); // Months are zero-indexed, so add 1\r\n const day = padZero(date.getDate(), 2);\r\n const hours = padZero(date.getHours(), 2);\r\n const minutes = padZero(date.getMinutes(), 2);\r\n const seconds = padZero(date.getSeconds(), 2);\r\n const milliseconds = padZero(date.getMilliseconds(), 6);\r\n\r\n return format\r\n .replace(\"%Y\", year)\r\n .replace(\"%m\", month)\r\n .replace(\"%d\", day)\r\n .replace(\"%H\", hours)\r\n .replace(\"%M\", minutes)\r\n .replace(\"%S\", seconds)\r\n .replace(\"%s\", milliseconds);\r\n };\r\n\r\n zipLongest = (fillValue = \"\", ...arr: string[]): string[][] => {\r\n const maxLength = Math.max(...arr.map((arr: string) => arr.length));\r\n\r\n return Array.from({ length: maxLength }, (_, index) => {\r\n return arr.map((arr: string[number]) =>\r\n arr[index] !== undefined ? arr[index] : fillValue\r\n );\r\n });\r\n };\r\n\r\n checkTag = (dataset: dataSet, dataTag: string): returnarg => {\r\n const tagName =\r\n data.DicomMetaDictionary.dictionary[\r\n data.DicomMetaDictionary.punctuateTag(dataTag)\r\n ].name;\r\n const timeName = tagName.replace(\"Date\", \"Time\");\r\n\r\n if (typeof data.DicomMetaDictionary.nameMap[timeName] !== \"undefined\") {\r\n let timeNameTag = data.DicomMetaDictionary.nameMap[timeName].tag;\r\n timeNameTag = data.DicomMetaDictionary.unpunctuateTag(timeNameTag);\r\n\r\n if (timeNameTag in dataset) {\r\n const timeElement = dataset[timeNameTag];\r\n const returnArg: returnarg = {\r\n value: timeElement.Value,\r\n tag: timeNameTag,\r\n };\r\n\r\n return returnArg;\r\n } else {\r\n const returnArg: returnarg = {\r\n value: \"\",\r\n tag: \"\",\r\n };\r\n return returnArg;\r\n }\r\n } else {\r\n const returnArg: returnarg = {\r\n value: \"\",\r\n tag: \"\",\r\n };\r\n return returnArg;\r\n }\r\n };\r\n}\r\n\r\nexport default DateTimeAnonymizer;\r\n","import { dataSet } from \"dcmjs\";\n\nclass FixedValueAnonymizer {\n private tag: string;\n private value: string;\n\n constructor(tag: string, value: string) {\n this.tag = tag;\n this.value = value;\n }\n\n anonymize = async (dataset: dataSet, dataTag: string): Promise => {\n if (dataTag == this.tag) {\n dataset[dataTag].Value[0] = this.value;\n\n return true;\n } else {\n return false;\n }\n };\n}\n\nexport default FixedValueAnonymizer;\n","import { data, dataSet } from \"dcmjs\";\nimport Randomizer from \"./randomizer\";\n\nclass IDAnonymizer {\n private keywords: string[];\n private randomizer: Randomizer;\n private idSuffix: string;\n private idPrefix: string;\n private issuerTag: string;\n private alphabet: string;\n private totalAffixesLength: number;\n private indicesForRandomizer: number[];\n\n constructor(Randomizer: Randomizer, keywords: string[], idPrefix = \"\", idSuffix = \"\") {\n this.keywords = keywords;\n this.randomizer = Randomizer;\n this.idPrefix = idPrefix;\n this.idSuffix = idSuffix;\n this.issuerTag = data.DicomMetaDictionary.nameMap[\"IssuerOfPatientID\"].tag;\n\n this.alphabet = \"ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789\";\n this.totalAffixesLength = this.idPrefix.length + this.idSuffix.length;\n this.indicesForRandomizer = new Array(12 - this.totalAffixesLength).fill(\n this.alphabet.length\n );\n }\n\n anonymize = async (dataset: dataSet, dataTag: string): Promise => {\n if (this.keywords.includes(dataTag)) {\n await this.replaceID(dataset, dataTag);\n\n return true;\n } else if (dataTag == this.issuerTag && dataset[dataTag].Value[0] != \"\") {\n dataset[dataTag].Value[0] = \"DICOM_ANONYMIZER\";\n return true;\n } else {\n return false;\n }\n };\n\n replaceID = async (dataset: dataSet, dataTag: string) => {\n if (dataset[dataTag].Value.length > 1) {\n for (let i = 0; i < dataset[dataTag].Value.length; i++) {\n dataset[dataTag].Value[i] = await this.newID(dataset[dataTag].Value[i]);\n }\n } else if (dataset[dataTag].Value.length == 1) {\n const originalValue = dataset[dataTag].Value[0];\n dataset[dataTag].Value[0] = await this.newID(originalValue);\n } else {\n dataset[dataTag].Value[0] = await this.newID(\"\");\n }\n };\n\n newID = async (originalValue: string) => {\n const indexes = await this.randomizer.getIntsFromRanges(\n originalValue,\n ...this.indicesForRandomizer\n );\n const idRoot: string = indexes.map((i) => this.alphabet[i]).join(\"\");\n\n return this.idPrefix + idRoot + this.idSuffix;\n };\n}\n\nexport default IDAnonymizer;\n","import { data, dataSet } from \"dcmjs\";\nimport AddressAnonymizer from \"./addressanonymizer\";\n\nclass InstitutionAnonymizer {\n private addressAnonymizer: AddressAnonymizer;\n\n institutionName: string = data.DicomMetaDictionary.nameMap[\"InstitutionName\"].tag; //0008,0080\n institutionAddress: string = data.DicomMetaDictionary.nameMap[\"InstitutionAddress\"].tag; //0008,0081\n institutionalDepartmentName: string =\n data.DicomMetaDictionary.nameMap[\"InstitutionalDepartmentName\"].tag; //0008,1040\n valueFactories; //: { [key: string]: (originalValue: string) => string };\n\n constructor(AddressAnonymizer: AddressAnonymizer) {\n this.addressAnonymizer = AddressAnonymizer;\n\n this.institutionName = data.DicomMetaDictionary.unpunctuateTag(this.institutionName);\n this.institutionAddress = data.DicomMetaDictionary.unpunctuateTag(this.institutionAddress);\n this.institutionalDepartmentName = data.DicomMetaDictionary.unpunctuateTag(\n this.institutionalDepartmentName\n );\n\n this.valueFactories = {\n [this.institutionName]: this.anonymizeInstitutionName,\n [this.institutionAddress]: this.anonymizeInstitutionAddress,\n [this.institutionalDepartmentName]: this.anonymizeDepartmentName,\n };\n }\n\n anonymize = async (dataset: dataSet, dataTag: string): Promise => {\n const valueFactory: (originalValue: string) => Promise = await this.valueFactories[\n dataTag\n ];\n if (valueFactory == undefined) {\n return false;\n }\n\n if (dataset[dataTag].Value.length > 1) {\n for (let i = 0; i < dataset[dataTag].Value.length; i++) {\n dataset[dataTag].Value[i] = await valueFactory(dataset[dataTag].Value[i]);\n }\n return true;\n } else if (dataset[dataTag].Value.length == 1) {\n const originalValue: string = dataset[dataTag].Value[0];\n dataset[dataTag].Value[0] = await valueFactory(originalValue);\n return true;\n } else {\n dataset[dataTag].Value[0] = await valueFactory(\"\");\n return true;\n }\n };\n\n anonymizeInstitutionName = async (originalValue: string): Promise => {\n const region = await this.addressAnonymizer.getRegion(originalValue);\n const streetAddress = await this.addressAnonymizer.getStreetAddress(originalValue);\n const returnString = `${region}'S ${streetAddress} CLINIC`;\n\n return returnString;\n };\n\n anonymizeInstitutionAddress = async (originalValue: string): Promise => {\n const fullAddress = await this.addressAnonymizer.getLegalAddress(originalValue);\n const country = await this.addressAnonymizer.getCountry(originalValue);\n\n const returnString = `${fullAddress}, ${country}`;\n\n return returnString;\n };\n\n anonymizeDepartmentName = (): Promise => {\n return Promise.resolve(\"RADIOLOGY\");\n };\n}\n\nexport default InstitutionAnonymizer;\n","import { dataSet } from \"dcmjs\";\r\nimport { lists } from \"./lists\";\r\nimport Randomizer from \"./randomizer\";\r\n\r\nclass PNAnonymizer {\r\n private randomizer: Randomizer;\r\n lists: lists;\r\n\r\n constructor(randomizer: Randomizer) {\r\n this.randomizer = randomizer;\r\n this.lists = new lists();\r\n }\r\n\r\n anonymize = async (dataset: dataSet, dataTag: string): Promise => {\r\n if (dataset[dataTag].vr != \"PN\") {\r\n return false;\r\n }\r\n\r\n let patientSex = \"\";\r\n if (\"00100040\" in dataset) {\r\n patientSex = dataset[\"00100040\"].Value[0]; //PatientSex\r\n }\r\n\r\n if (dataset[dataTag].Value.length > 1) {\r\n for (let i = 0; i < dataset[dataTag].Value.length; i++) {\r\n dataset[dataTag].Value[i].Alphabetic = await this.newPN(\r\n dataset[dataTag].Value[i].Alphabetic,\r\n patientSex\r\n );\r\n }\r\n } else if (dataset[dataTag].Value.length == 1) {\r\n const originalName = dataset[dataTag].Value[0].Alphabetic;\r\n\r\n dataset[dataTag].Value[0].Alphabetic = await this.newPN(originalName, patientSex);\r\n } else {\r\n dataset[dataTag].Value[0].Alphabetic = await this.newPN(\"\", patientSex);\r\n }\r\n\r\n return true;\r\n };\r\n\r\n async newPN(originalValue: string, sex = \"\") {\r\n let firstNames: string[];\r\n if (sex == \"F\") {\r\n firstNames = this.lists.femaleFirstNames;\r\n } else if (sex == \"M\") {\r\n firstNames = this.lists.maleFirstNames;\r\n } else {\r\n firstNames = this.lists.allFirstNames;\r\n }\r\n const lastNames = this.lists.lastNames;\r\n if (originalValue != undefined) {\r\n originalValue = originalValue.replaceAll(\"^\", \"\");\r\n }\r\n\r\n const indices = await this.randomizer.getIntsFromRanges(\r\n originalValue,\r\n this.lists.lastNames.length,\r\n firstNames.length,\r\n this.lists.allFirstNames.length\r\n );\r\n\r\n return `${lastNames[indices[0]]}^${firstNames[indices[1]]}^${\r\n this.lists.allFirstNames[indices[2]]\r\n }`;\r\n }\r\n}\r\n\r\nexport default PNAnonymizer;\r\n","import { data, dataSet } from \"dcmjs\";\n\nclass PrivatTagAnonymizer {\n anonymize = (dataset: dataSet, dataTag: string): boolean => {\n const currTag = data.Tag.fromString(dataTag);\n if (currTag.group() % 2 === 1) {\n delete dataset[dataTag];\n return true;\n } else {\n return false;\n }\n };\n}\n\nexport default PrivatTagAnonymizer;\n","// import { getRandomValues } from \"crypto\";\n// import crypto from \"crypto\";\n\nclass Randomizer {\n private seed: string;\n\n constructor(seed = \"\") {\n if (seed == \"\") {\n this.seed = this.generateRandomSeed();\n } else {\n this.seed = seed;\n }\n }\n\n // For Node work\n // private calculateMD5Digest(data: Uint8Array): Uint8Array {\n // const hash = crypto.createHash(\"md5\");\n // hash.update(data);\n // return hash.digest();\n // }\n private async calculateSHADigestWeb(array: Uint8Array): Promise {\n // if (typeof window !== \"undefined\") {\n const hashBuffer = await window.crypto.subtle.digest(\"SHA-1\", array);\n return new Promise((resolve) => {\n resolve(new Uint8Array(hashBuffer));\n });\n // } else {\n // const hash = crypto.createHash(\"sha256\");\n // hash.update(array);\n // const arr = new Uint8Array(hash.digest());\n // return new Promise((resolve) => {\n // resolve(arr);\n // });\n // }\n }\n // private async calculateSHADigestWeb(array: Uint8Array): Promise {\n // if (typeof window !== \"undefined\") {\n // const hashBuffer = await window.crypto.subtle.digest(\"SHA-256\", array);\n // return new Promise((resolve) => {\n // resolve(new Uint8Array(hashBuffer));\n // });\n // } else {\n // const hash = crypto.createHash(\"sha256\");\n // hash.update(array);\n // const arr = new Uint8Array(hash.digest());\n // return new Promise((resolve) => {\n // resolve(arr);\n // });\n // }\n // }\n\n private calculateResult(hash: Uint8Array): bigint {\n let result = 0;\n for (const byte of hash) {\n result *= 0x100;\n result += byte;\n }\n return BigInt(result);\n }\n\n private generateRandomSeed(): string {\n const randomValues = new Uint8Array(20);\n\n // if (typeof window !== \"undefined\") {\n // window.crypto.getRandomValues(randomValues); //-> use in browser env\n // } else {\n // getRandomValues(randomValues);\n // }\n window.crypto.getRandomValues(randomValues); //-> use in browser env\n\n const seed = Array.from(randomValues, (byte) => byte.toString(16).padStart(2, \"0\")).join(\"\");\n\n return seed;\n }\n\n // public toInt(originalValue: string, callback: (result: bigint) => void): void {\n // const message = this.seed + String(originalValue);\n // const encoder = new TextEncoder();\n // const encoded = encoder.encode(message);\n\n // if (typeof window !== \"undefined\") {\n // this.calculateSHADigestWeb(encoded).then((hashBuffer) => {\n // const hashed = hashBuffer;\n // const result = this.calculateResult(hashed);\n // callback(result);\n // });\n // } else {\n // // const hashed = this.calculateMD5Digest(encoded);\n // // const result = this.calculateResult(hashed);\n // // callback(result);\n // }\n // }\n public async toInt(originalValue: string): Promise {\n const message = this.seed + String(originalValue);\n const encoder = new TextEncoder();\n const encoded = encoder.encode(message);\n const hashed = await this.calculateSHADigestWeb(encoded);\n const result = this.calculateResult(hashed);\n\n return result;\n }\n public async getIntsFromRanges(originalValue: string, ...suprema: number[]): Promise {\n let result: bigint | number[] = [];\n let bigNumber = await this.toInt(originalValue);\n const arr: number[] = [];\n for (const x of suprema) {\n const s = BigInt(x);\n arr.push(Number(bigNumber % s));\n bigNumber = bigNumber / s;\n }\n\n result = arr;\n\n return result;\n }\n}\n\nexport default Randomizer;\n","import { data, dataSet } from \"dcmjs\";\nimport Randomizer from \"./randomizer\";\n\nclass UIAnonymizer {\n private randomizer: Randomizer;\n\n constructor(Randomizer: Randomizer) {\n this.randomizer = Randomizer;\n }\n\n anonymize = async (dataset: dataSet, dataTag: string): Promise => {\n const tag = data.DicomMetaDictionary.punctuateTag(dataTag);\n\n if (\n dataset[dataTag].vr != \"UI\" ||\n dataset[dataTag].Value[0] == undefined ||\n data.DicomMetaDictionary.dictionary[tag].name.endsWith(\"ClassUID\") ||\n data.DicomMetaDictionary.dictionary[tag].name == \"TransferSyntaxUID\"\n ) {\n return false;\n } else {\n if (dataset[dataTag].Value.length > 1) {\n for (let i = 0; i < dataset[dataTag].Value.length; i++) {\n dataset[dataTag].Value[i] = await this.newUI(dataset[dataTag].Value[i]);\n }\n } else if (dataset[dataTag].Value.length == 1) {\n const originalUI = dataset[dataTag].Value[0];\n dataset[dataTag].Value[0] = await this.newUI(originalUI);\n } else {\n dataset[dataTag].Value[0] = await this.newUI(\"\");\n }\n\n return true;\n }\n };\n\n async newUI(origUI: string) {\n const result = await this.randomizer.toInt(origUI);\n const number4String = BigInt(result);\n return `2.${BigInt(10 ** 39) + number4String}`;\n }\n}\n\nexport default UIAnonymizer;\n","import { dataSet } from \"dcmjs\";\n\nclass UnwantedElementStripper {\n private tags: string[];\n\n constructor(keywords: string[]) {\n this.tags = keywords;\n }\n\n anonymize = (dataset: dataSet, dataTag: string): boolean => {\n if (this.tags.includes(dataTag)) {\n delete dataset[dataTag];\n return true;\n } else {\n return false;\n }\n };\n}\n\nexport default UnwantedElementStripper;\n","import { dataSet, data } from \"dcmjs\";\n\nclass TagError extends Error {\n constructor(tag: string) {\n const message = `Bad tag name '${tag}'. Must be a well-known DICOM element name or a string in the form 'stuv,wxyz' where each character is a hexadecimal digit.`;\n super(message);\n\n // Set the prototype explicitly to ensure correct inheritance\n Object.setPrototypeOf(this, TagError.prototype);\n }\n}\n\nclass ValueKeeper {\n private protectedTags: string[] = [];\n\n constructor(keywords: string[] = []) {\n for (const tag of keywords) {\n let pattern = /^\\(?([0-9A-F]{4}),?([0-9A-F]{4})\\)?$/;\n let match = tag.match(pattern);\n if (match) {\n this.protectedTags.push(match[1] + match[2]);\n } else {\n pattern = /^[a-zA-Z]+$/;\n\n try {\n match = tag.match(pattern)!;\n const tempTag = data.DicomMetaDictionary.nameMap[match[0]];\n if (!tempTag) {\n throw new TagError(\"invalidTag\");\n } else {\n this.protectedTags.push(tempTag.tag);\n }\n } catch (error) {\n if (error instanceof TagError) {\n console.error(error.message);\n } else {\n // Handle other types of errors\n console.error(\"An unexpected error occurred:\", error);\n }\n }\n }\n }\n }\n\n keep = (_: dataSet, dataTag: string): boolean => {\n if (this.protectedTags.includes(dataTag)) {\n return true;\n } else {\n return false;\n }\n };\n}\n\nexport default ValueKeeper;\n","import { data, dataSet } from \"dcmjs\";\r\nimport AddressAnonymizer from \"./addressanonymizer\";\r\nimport DateTimeAnonymizer from \"./datetimeanonymizer\";\r\nimport FixedValueAnonymizer from \"./fixedvalueanonymizer\";\r\nimport IDAnonymizer from \"./idanonymizer\";\r\nimport InstitutionAnonymizer from \"./institutionanonymizer\";\r\nimport PNAnonymizer from \"./pnanonymizer\";\r\nimport PrivatTagAnonymizer from \"./privatetaganonymizer\";\r\nimport Randomizer from \"./randomizer\";\r\nimport UIAnonymizer from \"./uianonymizer\";\r\nimport UnwantedElementStripper from \"./unwantedelements\";\r\nimport ValueKeeper from \"./valuekeeper\";\r\n\r\ntype ElementHandler = (\r\n dataset: dataSet,\r\n tag: string\r\n) => boolean | Promise;\r\n\r\nexport default class Anonymizer {\r\n /**\r\n The main class responsible for anonymizing dcmjs datasets.\r\n New instances will anonymize instances differently, so when\r\n anonymizing instances from the same series, study, or patient,\r\n reuse an Anonymizer.\r\n \r\n */\r\n\r\n private patientID?: string;\r\n private anonymizePrivateTags?: boolean = true;\r\n private dateOffsetHours = 0;\r\n randomizer: Randomizer;\r\n addressAnonymizer: AddressAnonymizer;\r\n elementHandlers: ElementHandler[];\r\n\r\n constructor(\r\n patientID?: string,\r\n protectedTags?: string[],\r\n anonymizePrivateTags?: boolean,\r\n idPrefix?: string,\r\n idSuffix?: string,\r\n seed?: string\r\n ) {\r\n if (patientID) {\r\n this.patientID = patientID;\r\n }\r\n if (anonymizePrivateTags) {\r\n this.anonymizePrivateTags = anonymizePrivateTags;\r\n }\r\n\r\n this.randomizer = new Randomizer(seed);\r\n this.setOffset();\r\n\r\n this.addressAnonymizer = new AddressAnonymizer(this.randomizer);\r\n this.elementHandlers = [\r\n new UnwantedElementStripper([\r\n \"00101081\", //\"BranchOfService\",\r\n \"00102180\", //\"Occupation\",\r\n \"00101090\", //\"MedicalRecordLocator\",\r\n \"00101080\", //\"MilitaryRank\",\r\n \"00100050\", //\"PatientInsurancePlanCodeSequence\",\r\n \"00102201\", //\"PatientReligiousPreference\",\r\n \"00102155\", //\"PatientTelecomInformation\",\r\n \"00102154\", //\"PatientTelephoneNumbers\",\r\n \"00101100\", //\"ReferencedPatientPhotoSequence\",\r\n \"00102299\", //\"ResponsibleOrganization\"\r\n ]).anonymize,\r\n new UIAnonymizer(this.randomizer).anonymize,\r\n new PNAnonymizer(this.randomizer).anonymize,\r\n new IDAnonymizer(\r\n this.randomizer,\r\n [\r\n \"00080050\", //\"AccessionNumber\",\r\n \"00101000\", //\"OtherPatientIDs\",\r\n \"00402017\", //\"FillerOrderNumberImagingServiceRequest\",\r\n //\"FillerOrderNumberImagingServiceRequestRetired\", Retired\r\n //\"FillerOrderNumberProcedure\", Retired\r\n \"00100020\", //\"PatientID\",\r\n \"00400253\", //\"PerformedProcedureStepID\",\r\n \"00402016\", //\"PlacerOrderNumberImagingServiceRequest\",\r\n //\"PlacerOrderNumberImagingServiceRequestRetired\",Retired\r\n // \"PlacerOrderNumberProcedure\", Retired\r\n \"00401001\", //\"RequestedProcedureID\",\r\n \"00400009\", //\"ScheduledProcedureStepID\",\r\n \"00081010\", //\"StationName\",\r\n \"00200010\", //\"StudyID\"\r\n ],\r\n idPrefix,\r\n idSuffix\r\n ).anonymize,\r\n this.addressAnonymizer.anonymize,\r\n new InstitutionAnonymizer(this.addressAnonymizer).anonymize,\r\n new FixedValueAnonymizer(\"00321033\", \"\").anonymize, // RequestingService\r\n new FixedValueAnonymizer(\"00380300\", \"\").anonymize, // CurrentPatientLocation\r\n ];\r\n if (protectedTags) {\r\n this.elementHandlers.unshift(new ValueKeeper(protectedTags).keep);\r\n }\r\n if (this.patientID) {\r\n this.elementHandlers.unshift(\r\n new FixedValueAnonymizer(\"00100020\", this.patientID).anonymize\r\n );\r\n }\r\n if (this.anonymizePrivateTags) {\r\n this.elementHandlers.push(new PrivatTagAnonymizer().anonymize);\r\n }\r\n }\r\n async setOffset() {\r\n const res = await this.randomizer.toInt(\"dateOffset\");\r\n const minimumOffsetHours: number = 62 * 24;\r\n const maximumOffsetHours: number = 730 * 24;\r\n\r\n this.dateOffsetHours = Number(\r\n -(\r\n (res % (BigInt(maximumOffsetHours) - BigInt(minimumOffsetHours))) +\r\n BigInt(minimumOffsetHours)\r\n )\r\n );\r\n\r\n this.elementHandlers.push(\r\n new DateTimeAnonymizer(this.dateOffsetHours).anonymize\r\n );\r\n }\r\n\r\n async anonymize(dcmDict: data.DicomDict) {\r\n await this.walk(dcmDict.meta, this.elementHandlers);\r\n await this.walk(dcmDict.dict, this.elementHandlers);\r\n }\r\n\r\n async walk(dataset: dataSet, handler: ElementHandler[]) {\r\n const tagList = Object.keys(dataset);\r\n\r\n for (const tag of tagList) {\r\n const element = dataset[tag];\r\n\r\n await this.anonymizeElement(dataset, tag, handler);\r\n\r\n // If the element is a sequence, recursively walk through its items\r\n if (tag in dataset && element.vr == \"SQ\") {\r\n for (let i = 0; i < element.Value.length; i++) {\r\n const sequence = element.Value;\r\n for (const item of sequence) {\r\n this.walk(item, handler);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n async anonymizeElement(\r\n dataset: dataSet,\r\n tag: string,\r\n handler: ElementHandler[]\r\n ) {\r\n // Perform operations on the element\r\n\r\n for (const callback of handler) {\r\n const result = await callback(dataset, tag);\r\n\r\n if (result) {\r\n return;\r\n }\r\n }\r\n }\r\n}\r\n"],"names":["lists","AddressAnonymizer","Randomizer","data","dataset","dataTag","valueFactory","i","originalValue","street","streetNumber","city","streetNumberIndex","streetIndex","cityIndex","countryIndex","DateTimeAnonymizer","dateOffsetHours","dates","result","times","newDates","newTimes","date","time","newDateTime","dateTimes","newDateTimes","dateTimeValue","newDateTimeString","dateTimeFormat","oldDateTime","dateString","year","month","day","hour","minute","second","milliseconds","format","padZero","value","length","hours","minutes","seconds","fillValue","arr","maxLength","_","index","timeName","timeNameTag","FixedValueAnonymizer","tag","IDAnonymizer","keywords","idPrefix","idSuffix","idRoot","InstitutionAnonymizer","region","streetAddress","fullAddress","country","PNAnonymizer","randomizer","patientSex","originalName","sex","firstNames","lastNames","indices","PrivatTagAnonymizer","seed","array","hashBuffer","resolve","hash","byte","randomValues","message","encoded","hashed","suprema","bigNumber","x","s","UIAnonymizer","originalUI","origUI","number4String","UnwantedElementStripper","TagError","ValueKeeper","pattern","match","tempTag","error","Anonymizer","patientID","protectedTags","anonymizePrivateTags","res","minimumOffsetHours","maximumOffsetHours","dcmDict","handler","tagList","element","sequence","item","callback"],"mappings":"6PAAO,MAAMA,CAAM,CASjB,aAAc,CACZ,KAAK,iBAAmB,CACtB,OACA,WACA,QACA,UACA,YACA,WACA,QACA,QACA,WACA,UACA,OACA,QACA,QACA,QACA,QACA,SACA,QACA,QACA,OACA,SACA,WACA,QACA,QACA,WACA,UACA,UACA,UACA,UACA,SACA,UACA,SACA,MACA,OACA,UACA,WACA,WACA,SACA,SACA,QACA,SACA,YACA,UACA,YACA,QACA,QACA,YACA,UACA,MACA,QACA,QACA,QACA,QACA,UACA,SACA,QACA,SACA,SACA,OACA,SACA,UACA,YACA,OACA,SACA,SACA,OACA,SACA,QACA,SACA,OACA,YACA,QACA,UACA,UACA,SACA,QACA,QACA,OACA,OACA,SACA,UACA,SACA,UACA,SACA,OACA,OACA,aACA,QACA,SACA,QACA,OACA,OACA,OACA,UACA,QACA,QACA,QACA,QACA,UACA,QACA,QACA,QACA,UACA,SACA,OACA,OACA,SACA,WACA,QACA,OACA,UACA,SACA,OACA,QACA,QACA,QACA,WACA,QACA,MACA,SACA,SACA,YACA,SACA,UACA,SACA,QACA,QACA,SACA,WACA,SACA,YACA,SACA,SACA,UACA,OACA,UACA,QACA,SACA,QACA,QACA,MACA,SACA,QACA,SACA,QACA,UACA,QACA,SACA,UACA,UACA,WACA,QACA,SACA,UACA,UACA,OACA,SACA,UACA,WACA,OACA,OACA,YACA,SACA,QACA,QACA,WACA,OACA,QACA,SACA,QACA,WACA,UACA,UACA,SACA,SACA,UACA,OACA,WACA,SACA,OACA,QACA,MACA,QACA,MACA,SACA,UACA,QACA,WACA,UACA,UACA,UACA,WACA,SACA,QACA,UACA,UACA,OACA,MACA,QACA,OACA,SACA,QACA,QACA,OACA,WACA,SACA,QACA,WACA,OACA,QACA,OACA,SACA,QACA,OACA,UACA,SACA,UACA,QACA,OACA,SACA,WACA,SACA,UACA,UACA,QACA,SACA,UACA,UACA,UACA,SACA,MACA,UACA,YACA,SACA,UACA,SACA,SACA,QACA,SACA,SACA,UACA,QACA,SACA,QACA,QACA,WACA,SACA,SACA,WACA,OACA,KACA,SACA,SACA,QACA,SACA,OACA,QACA,SACA,SACA,OACA,UACA,SACA,QACA,QACA,YACA,SACA,OACA,SACA,OACA,YACA,OACA,QACA,MACA,YACA,QACA,SACA,SACA,OACA,SACA,SACA,SACA,QACA,QACA,UACA,QACA,SACA,QACA,QACA,SACA,SACA,WACA,OACA,QACA,MACA,SACA,QACA,SACA,SACA,QACA,UACA,SACA,UACA,UACA,SACA,YACA,UACA,YACA,SACA,OACA,OACA,MACA,UACA,UACA,SACA,aACA,SACA,UACA,QACA,UACA,SACA,SACA,UACA,QACA,QACA,SACA,OACA,SACA,QACA,OACA,QACA,WACA,SACA,UACA,YACA,UACA,OACA,QACA,SACA,QACA,QACA,MACA,MACA,WACA,UACA,SACA,UACA,OACA,SACA,SACA,SACA,MACA,QACA,SACA,QACA,UACA,SACA,QACA,OACA,OACA,QACA,SACA,aACA,UACA,QACA,YACA,MACA,QACA,SACA,UACA,UACA,QACA,QACA,SACA,QACA,SACA,QACA,QACA,QACA,QACA,QACA,WACA,OACA,YACA,OACA,SACA,OACA,UACA,MACA,SACA,UACA,WACA,UACA,QACA,UACA,WACA,UACA,YACA,SACA,UACA,QACA,aACA,QACA,OACA,SACA,UACA,UACA,UACA,UACA,QACA,YACA,SACA,WACA,QACA,UACA,WACA,SACA,OACA,UACA,SACA,WACA,OACA,OACA,SACA,YACA,QACA,UACA,UACA,OACA,SACA,QACA,QACA,WACA,QACA,WACA,WACA,UACA,OACA,WACA,OACA,QACA,SACA,SACA,SACA,WACA,WACA,UACA,SACA,YACA,SACA,OACA,SACA,OACA,QACA,QACA,SACA,UACA,QACA,SACA,QACA,SACA,SACA,QACA,QACA,SACA,OACA,QACA,SACA,SACA,QACA,OACA,OACA,QACA,MACA,QACA,QACA,QACA,SACA,OACA,WACA,UACA,UACA,QACA,QACA,QACA,QACA,OACA,UACA,QACA,UACA,OACA,SACA,QACA,QACA,QACA,MACA,SACA,UACA,QACA,QACA,WACA,UACA,SACA,SACA,QACA,OACA,QACA,QACA,SACA,UACA,SACA,UACA,QACA,UACA,QACA,WACA,UACA,SACA,UACA,QACA,SACA,UACA,UACA,QACA,OACA,QACA,UACA,UACA,SACA,QACA,QACA,QACA,OACA,QACA,SACA,SACA,SACA,OACA,SACA,QACA,SACA,QACA,UACA,YACA,QACA,SACA,UACA,QACA,WACA,UACA,UACA,SACA,SACA,OACA,OACA,UACA,SACA,MACA,SACA,YACA,OACA,UACA,SACA,MACA,UACA,UACA,SACA,SACA,QACA,UACA,UACA,UACA,OACA,QACA,UACA,UACA,QACA,SACA,WACA,SACA,UACA,SACA,SACA,QACA,OACA,SACA,MACA,UACA,WACA,OACA,QACA,YACA,UACA,YACA,SACA,SACA,WACA,OACA,WACA,UACA,MACA,SACA,SACA,OACA,QACA,MACA,UACA,UACA,QACA,SACA,QACA,SACA,WACA,SACA,UACA,QACA,OACA,WACA,QACA,SACA,OACA,QACA,QACA,WACA,UACA,SACA,SACA,QACA,SACA,WACA,OACA,SACA,SACA,UACA,QACA,UACA,QACA,QACA,SACA,SACA,SACA,UACA,SACA,WACA,UACA,QACA,UACA,UACA,UACA,UACA,SACA,WACA,SACA,OACA,SACA,SACA,SACA,YACA,WACA,UACA,YACA,SACA,YACA,SACA,QACA,QACA,MACA,UACA,SACA,UACA,OACA,SACA,UACA,YACA,UACA,OACA,UACA,QACA,QACA,SACA,QACA,UACA,SACA,SACA,WACA,QACA,SACA,QACA,UACA,QACA,UACA,OACA,QACA,QACA,QACA,OACA,OACA,OACA,MACA,MACA,SACA,QACA,QACA,OACA,YACA,SACA,SACA,QACA,UACA,QACA,WACA,SACA,SACA,SACA,QACA,SACA,UACA,SACA,WACA,QACA,QACA,YACA,QACA,QACA,QACA,OACA,YACA,UACA,MACA,QACA,SACA,QACA,UACA,QACA,SACA,QACA,SACA,SACA,UACA,UACA,UACA,UACA,WACA,MACA,MACA,WACA,QACA,UACA,aACA,aACA,MACA,UACA,MACA,OACA,SACA,OACA,SACA,UACA,SACA,OACA,UACA,SACA,UACA,SACA,OACA,QACA,QACA,SACA,SACA,SACA,WACA,UACA,WACA,WACA,SACA,SACA,UACA,SACA,QACA,SACA,YACA,SACA,MACA,UACA,QACA,UACA,SACA,SACA,UACA,UACA,OACA,SACA,YACA,SACA,QACA,QACA,MACA,QACA,YACA,SACA,UACA,SACA,QACA,QACA,aACA,WACA,SACA,QACA,SACA,OACA,YACA,SACA,UACA,UACA,UACA,OACA,SACA,UACA,OACA,WACA,OACA,UACA,SACA,WACA,UACA,QACA,SACA,QACA,SACA,WACA,UACA,YACA,UACA,QACA,OACA,QACA,UACA,SACA,OACA,QACA,QACA,WACA,OACA,SACA,SACA,UACA,QACA,QACA,QACA,WACA,aACA,UACA,QACA,UACA,UACA,QACA,QACA,SACA,QACA,UACA,UACA,OACA,QACA,OACA,YACA,WACA,OACA,SACA,UACA,WACA,UACA,OACA,SACA,UACA,SACA,QACA,QACA,QACA,QACA,UACA,OACA,SACA,UACA,UACA,UACA,QACA,QACA,QACA,QACA,SACA,WACA,QACA,SACA,SACA,QACA,UACA,QACA,WACA,QACA,UACA,SACA,UACA,UACA,QACA,YACA,SACA,SACA,WACA,YACA,QACA,UACA,UACA,WACA,SACA,UACA,SACA,QACA,SACA,SACA,QACA,QACA,QACA,QACA,SACA,QACA,QACA,MACA,aACA,UACA,SACA,OACA,OACA,UACA,OACA,SACA,UACA,SACA,YACA,OACA,SACA,UACA,QACA,WACA,WACA,WACA,SACA,SACA,WACA,SACA,QACA,SACA,YACA,WACA,QACA,UACA,YACA,MACA,QACA,QACA,QACA,SACA,OACA,WACA,SACA,QACA,SACA,YACA,YACA,UACA,UACA,SACA,UACA,SACA,QACA,QACA,QACA,SACA,OACA,WACA,SACA,OACA,WACA,SACA,QACA,QACA,OACA,SACA,UACA,QACA,QACA,UACA,UACA,OACA,UACA,WACA,OACA,WACA,SACA,WACA,WACA,QACA,QAAA,EAEF,KAAK,eAAiB,CACpB,QACA,OACA,SACA,UACA,UACA,QACA,UACA,UACA,SACA,SACA,cACA,SACA,OACA,OACA,SACA,SACA,UACA,SACA,SACA,QACA,SACA,UACA,QACA,QACA,UACA,OACA,UACA,OACA,QACA,UACA,QACA,QACA,OACA,UACA,SACA,UACA,UACA,SACA,QACA,SACA,SACA,UACA,QACA,SACA,UACA,QACA,OACA,SACA,OACA,QACA,MACA,OACA,OACA,SACA,WACA,SACA,QACA,SACA,QACA,SACA,SACA,QACA,WACA,WACA,MACA,WACA,QACA,UACA,OACA,QACA,OACA,QACA,QACA,QACA,QACA,SACA,QACA,QACA,SACA,SACA,SACA,UACA,QACA,SACA,SACA,SACA,UACA,OACA,QACA,QACA,OACA,QACA,WACA,OACA,SACA,QACA,SACA,OACA,QACA,UACA,QACA,QACA,OACA,OACA,OACA,UACA,UACA,SACA,OACA,SACA,SACA,SACA,SACA,QACA,SACA,UACA,QACA,UACA,SACA,OACA,OACA,QACA,MACA,SACA,SACA,OACA,UACA,UACA,QACA,UACA,YACA,MACA,OACA,QACA,MACA,QACA,QACA,OACA,UACA,QACA,YACA,UACA,QACA,QACA,YACA,SACA,UACA,WACA,WACA,SACA,QACA,MACA,MACA,MACA,SACA,OACA,MACA,SACA,OACA,QACA,QACA,OACA,QACA,SACA,UACA,SACA,QACA,MACA,QACA,MACA,SACA,SACA,OACA,OACA,QACA,SACA,QACA,UACA,MACA,QACA,UACA,QACA,SACA,UACA,SACA,UACA,QACA,OACA,SACA,QACA,UACA,MACA,OACA,SACA,QACA,QACA,UACA,QACA,UACA,OACA,OACA,WACA,QACA,QACA,QACA,YACA,SACA,SACA,QACA,SACA,OACA,MACA,UACA,QACA,QACA,WACA,QACA,QACA,OACA,UACA,MACA,WACA,SACA,SACA,SACA,QACA,SACA,OACA,OACA,SACA,OACA,SACA,QACA,OACA,SACA,YACA,SACA,WACA,UACA,MACA,SACA,SACA,SACA,SACA,QACA,OACA,QACA,QACA,OACA,QACA,SACA,MACA,UACA,OACA,MACA,SACA,SACA,UACA,QACA,SACA,UACA,SACA,MACA,UACA,MACA,MACA,QACA,QACA,UACA,UACA,OACA,OACA,UACA,SACA,QACA,SACA,QACA,SACA,UACA,UACA,QACA,OACA,SACA,OACA,WACA,WACA,QACA,OACA,SACA,SACA,QACA,OACA,OACA,WACA,OACA,UACA,WACA,UACA,UACA,OACA,SACA,SACA,WACA,SACA,YACA,SACA,OACA,OACA,SACA,UACA,WACA,OACA,SACA,OACA,SACA,OACA,UACA,SACA,SACA,OACA,QACA,SACA,OACA,QACA,SACA,SACA,QACA,OACA,OACA,OACA,UACA,UACA,MACA,UACA,UACA,UACA,OACA,QACA,UACA,OACA,SACA,QACA,QACA,SACA,WACA,QACA,UACA,SACA,SACA,OACA,MACA,SACA,QACA,YACA,UACA,UACA,QACA,SACA,OACA,UACA,QACA,SACA,QACA,KACA,OACA,WACA,QACA,WACA,WACA,SACA,SACA,UACA,KACA,UACA,QACA,QACA,UACA,QACA,YACA,UACA,QACA,QACA,OACA,UACA,UACA,QACA,SACA,UACA,YACA,SACA,SACA,QACA,UACA,SACA,QACA,YACA,MACA,YACA,SACA,WACA,UACA,UACA,SACA,QACA,YACA,QACA,SACA,UACA,SACA,OACA,QACA,UACA,QACA,aACA,OACA,OACA,SACA,UACA,OACA,SACA,QACA,SACA,QACA,SACA,WACA,QACA,UACA,WACA,SACA,UACA,OACA,OACA,QACA,QACA,KACA,UACA,OACA,OACA,UACA,QACA,QACA,UACA,QACA,UACA,UACA,QACA,SACA,UACA,UACA,WACA,SACA,QACA,OACA,SACA,SACA,SACA,MACA,OACA,QACA,OACA,YACA,QACA,UACA,OACA,QACA,SACA,WACA,QACA,QACA,OACA,UACA,QACA,QACA,OACA,QACA,UACA,SACA,SACA,QACA,SACA,UACA,UACA,OACA,MACA,OACA,WACA,OACA,WACA,MACA,SACA,SACA,OACA,UACA,SACA,SACA,SACA,SACA,UACA,SACA,SACA,OACA,UACA,OACA,OACA,QACA,WACA,OACA,SACA,OACA,QACA,WACA,WACA,UACA,QACA,UACA,SACA,QACA,UACA,QACA,QACA,SACA,SACA,QACA,QACA,SACA,SACA,YACA,QACA,QACA,QACA,SACA,SACA,SACA,MACA,QACA,UACA,SACA,UACA,QACA,WACA,SACA,QACA,SACA,QACA,YACA,QACA,QACA,SACA,SACA,OACA,SACA,WACA,SACA,SACA,QACA,SACA,OACA,QACA,SACA,QACA,OACA,UACA,UACA,SACA,QACA,QACA,SACA,WACA,QACA,SACA,QACA,UACA,WACA,OACA,SACA,QACA,QACA,SACA,UACA,SACA,UACA,SACA,SACA,SACA,WACA,QACA,SACA,SACA,SACA,UACA,QACA,UACA,SACA,UACA,QACA,WACA,QACA,QACA,MACA,UACA,MACA,QACA,MACA,SACA,WACA,SACA,SACA,MACA,SACA,QACA,WACA,QACA,SACA,MACA,UACA,UACA,QACA,SACA,SACA,SACA,OACA,SACA,UACA,MACA,SACA,QACA,SACA,QACA,OACA,SACA,SACA,QACA,SACA,OACA,SACA,SACA,MACA,QACA,OACA,QACA,SACA,SACA,SACA,UACA,QACA,UACA,SACA,UACA,QACA,SACA,SACA,QACA,YACA,WACA,KACA,SACA,SACA,MACA,OACA,SACA,OACA,YACA,QACA,WACA,WACA,QACA,UACA,QACA,QACA,QACA,WACA,UACA,OACA,QACA,SACA,OACA,YACA,WACA,UACA,YACA,UACA,OACA,QACA,QACA,QACA,QACA,OACA,QACA,SACA,OACA,QACA,UACA,MACA,QACA,UACA,SACA,QACA,QACA,OACA,SACA,QACA,UACA,QACA,UACA,SACA,SACA,SACA,SACA,QACA,MACA,UACA,OACA,SACA,QACA,SACA,SACA,SACA,YACA,QACA,WACA,OACA,QACA,QACA,OACA,SACA,UACA,UACA,YACA,OACA,SACA,OACA,QACA,UACA,SACA,SACA,UACA,UACA,OACA,SACA,SACA,SACA,SACA,QACA,WACA,WACA,UACA,SACA,QACA,SACA,OACA,UACA,OACA,UACA,QACA,SACA,SACA,SACA,SACA,OACA,UACA,UACA,WACA,UACA,QACA,SACA,SACA,QACA,YACA,UACA,SACA,UACA,QACA,UACA,SACA,SACA,WACA,QACA,UACA,UACA,QACA,UACA,OACA,SACA,OACA,UACA,UACA,UACA,UACA,OACA,QACA,SACA,WACA,OACA,WACA,QACA,QACA,QACA,QACA,SACA,MACA,UACA,OACA,SACA,UACA,UACA,YACA,QACA,QACA,WACA,UACA,OACA,OACA,QACA,WACA,SACA,QACA,SACA,UACA,SACA,OACA,OACA,QACA,SACA,WACA,UACA,QACA,SACA,UACA,SACA,QACA,QACA,QACA,UACA,UACA,SACA,UACA,UACA,UACA,WACA,QACA,WACA,SACA,UACA,SACA,YACA,OACA,OACA,SACA,OACA,QACA,QACA,QACA,QACA,MACA,QACA,UACA,QACA,SACA,QACA,QACA,QACA,QACA,OACA,OACA,WACA,WACA,QACA,OACA,OACA,SACA,UACA,WACA,QACA,SACA,SACA,UACA,SACA,SACA,SACA,SACA,OACA,QACA,MACA,SACA,QACA,QACA,QACA,SACA,QACA,YACA,UACA,UACA,OACA,UACA,MACA,UACA,UACA,QACA,QACA,SACA,OACA,WACA,WACA,SACA,QACA,UACA,UACA,OACA,OACA,aACA,UACA,QACA,SACA,QACA,SACA,OACA,SACA,SACA,QACA,UACA,OACA,OACA,SACA,WACA,UACA,SACA,OACA,UACA,QACA,OACA,SACA,SACA,OACA,WACA,MACA,UACA,SACA,WACA,OACA,QACA,SACA,WACA,QACA,MACA,MACA,UACA,OACA,WACA,QACA,UACA,MACA,MACA,UACA,QACA,QACA,SACA,YACA,OACA,SACA,OACA,MACA,UACA,QACA,SACA,QACA,SACA,SACA,QACA,OACA,SACA,OACA,UACA,QACA,UACA,SACA,QACA,QACA,MACA,MACA,QACA,UACA,OACA,OACA,OACA,SACA,UACA,SACA,SACA,MACA,SACA,QACA,UACA,SACA,QACA,MACA,OACA,SACA,QACA,WACA,OAAA,EAEF,KAAK,cAAgB,KAAK,iBAAiB,OAAO,KAAK,cAAc,EACrE,KAAK,UAAY,CACf,QACA,UACA,WACA,QACA,QACA,QACA,SACA,SACA,QACA,SACA,WACA,SACA,UACA,QACA,SACA,SACA,WACA,SACA,WACA,WACA,QACA,YACA,QACA,MACA,SACA,OACA,QACA,QACA,YACA,OACA,SACA,QACA,OACA,QACA,QACA,QACA,QACA,WACA,SACA,SACA,WACA,QACA,UACA,SACA,WACA,WACA,SACA,QACA,UACA,UACA,UACA,UACA,SACA,SACA,OACA,OACA,SACA,OACA,SACA,SACA,SACA,SACA,aACA,MACA,SACA,OACA,SACA,WACA,OACA,UACA,QACA,SACA,SACA,QACA,UACA,QACA,UACA,OACA,SACA,OACA,YACA,UACA,UACA,QACA,SACA,OACA,YACA,SACA,SACA,aACA,SACA,UACA,SACA,WACA,SACA,YACA,UACA,UACA,OACA,QACA,QACA,OACA,WACA,SACA,WACA,UACA,QACA,OACA,OACA,SACA,QACA,WACA,SACA,QACA,WACA,SACA,WACA,OACA,WACA,QACA,QACA,SACA,UACA,QACA,OACA,UACA,UACA,SACA,SACA,SACA,QACA,WACA,QACA,OACA,QACA,UACA,UACA,SACA,QACA,QACA,QACA,QACA,SACA,OACA,SACA,OACA,YACA,OACA,QACA,UACA,SACA,QACA,UACA,QACA,SACA,WACA,OACA,QACA,UACA,OACA,UACA,SACA,UACA,UACA,WACA,QACA,SACA,QACA,WACA,SACA,SACA,SACA,MACA,UACA,QACA,UACA,SACA,SACA,OACA,aACA,UACA,OACA,UACA,OACA,SACA,MACA,QACA,YACA,YACA,SACA,SACA,WACA,UACA,SACA,OACA,SACA,SACA,SACA,WACA,SACA,SACA,YACA,OACA,UACA,OACA,UACA,WACA,UACA,UACA,SACA,aACA,WACA,aACA,WACA,QACA,QACA,SACA,QACA,SACA,UACA,WACA,SACA,YACA,QACA,SACA,SACA,SACA,UACA,SACA,SACA,SACA,OACA,MACA,SACA,QACA,OACA,UACA,UACA,SACA,QACA,SACA,UACA,QACA,SACA,MACA,UACA,SACA,SACA,SACA,SACA,SACA,UACA,UACA,QACA,UACA,UACA,UACA,UACA,SACA,SACA,OACA,WACA,UACA,MACA,QACA,UACA,OACA,OACA,UACA,SACA,OACA,WACA,OACA,WACA,UACA,SACA,UACA,SACA,UACA,UACA,SACA,SACA,SACA,UACA,WACA,QACA,QACA,QACA,YACA,WACA,OACA,UACA,WACA,QACA,QACA,OACA,SACA,OACA,OACA,SACA,SACA,WACA,SACA,OACA,SACA,QACA,SACA,WACA,SACA,QACA,OACA,SACA,QACA,SACA,UACA,SACA,SACA,OACA,QACA,OACA,SACA,WACA,QACA,UACA,QACA,QACA,SACA,QACA,YACA,UACA,SACA,QACA,QACA,SACA,SACA,WACA,QACA,UACA,WACA,SACA,UACA,UACA,SACA,SACA,YACA,UACA,SACA,OACA,QACA,SACA,OACA,OACA,OACA,WACA,SACA,QACA,SACA,UACA,UACA,OACA,SACA,UACA,QACA,SACA,UACA,UACA,SACA,OACA,QACA,UACA,SACA,QACA,SACA,aACA,WACA,SACA,UACA,SACA,OACA,UACA,SACA,SACA,UACA,SACA,UACA,UACA,YACA,QACA,SACA,WACA,SACA,OACA,SACA,SACA,UACA,SACA,SACA,UACA,UACA,OACA,QACA,QACA,QACA,UACA,OACA,QACA,UACA,OACA,WACA,WACA,UACA,UACA,WACA,QACA,QACA,QACA,aACA,SACA,QACA,UACA,WACA,OACA,QACA,OACA,WACA,QACA,UACA,QACA,SACA,QACA,UACA,WACA,UACA,UACA,cACA,QACA,QACA,SACA,UACA,aACA,YACA,SACA,WACA,QACA,WACA,MACA,UACA,QACA,YACA,WACA,QACA,QACA,QACA,QACA,OACA,OACA,QACA,QACA,OACA,YACA,OACA,SACA,SACA,SACA,UACA,SACA,OACA,UACA,SACA,QACA,WACA,SACA,SACA,WACA,SACA,OACA,OACA,aACA,QACA,QACA,SACA,SACA,SACA,YACA,UACA,OACA,QACA,YACA,QACA,WACA,UACA,OACA,SACA,UACA,UACA,UACA,YACA,OACA,UACA,SACA,SACA,QACA,SACA,UACA,UACA,UACA,UACA,QACA,YACA,OACA,QACA,OACA,QACA,SACA,QACA,UACA,YACA,QACA,SACA,QACA,WACA,YACA,SACA,OACA,SACA,OACA,UACA,UACA,WACA,UACA,UACA,OACA,SACA,QACA,UACA,WACA,UACA,UACA,YACA,QACA,QACA,OACA,QACA,SACA,QACA,UACA,YACA,SACA,UACA,QACA,UACA,UACA,UACA,UACA,OACA,QACA,SACA,UACA,OACA,OACA,UACA,SACA,YACA,YACA,QACA,SACA,OACA,SACA,WACA,SACA,SACA,UACA,QACA,WACA,YACA,SACA,QACA,WACA,UACA,UACA,OACA,SACA,QACA,YACA,UACA,UACA,UACA,OACA,SACA,QACA,QACA,UACA,QACA,QACA,QACA,UACA,UACA,SACA,WACA,UACA,QACA,aACA,OACA,SACA,UACA,SACA,QACA,SACA,QACA,QACA,OACA,YACA,OACA,QACA,cACA,UACA,UACA,SACA,SACA,QACA,WACA,SACA,UACA,SACA,SACA,WACA,QACA,WACA,WACA,SACA,YACA,SACA,UACA,UACA,WACA,MACA,SACA,QACA,UACA,SACA,OACA,UACA,aACA,QACA,QACA,UACA,QACA,UACA,UACA,UACA,SACA,SACA,UACA,SACA,SACA,OACA,UACA,UACA,SACA,QACA,QACA,QACA,WACA,UACA,QACA,SACA,UACA,SACA,WACA,OACA,QACA,aACA,SACA,SACA,WACA,OACA,QACA,OACA,UACA,SACA,OACA,OACA,UACA,WACA,YACA,QACA,QACA,QACA,UACA,UACA,QACA,QACA,WACA,UACA,SACA,SACA,QACA,OACA,QACA,QACA,SACA,UACA,WACA,OACA,QACA,OACA,QACA,SACA,QACA,WACA,QACA,UACA,OACA,SACA,aACA,YACA,SACA,SACA,UACA,OACA,OACA,YACA,WACA,UACA,SACA,QACA,SACA,QACA,QACA,YACA,UACA,aACA,WACA,SACA,WACA,OACA,OACA,UACA,aACA,SACA,QACA,YACA,QACA,UACA,QACA,OACA,SACA,QACA,UACA,QACA,YACA,SACA,QACA,WACA,OACA,OACA,WACA,SACA,OACA,SACA,OACA,QACA,SACA,OACA,WACA,UACA,WACA,SACA,QACA,QACA,QACA,QACA,WACA,MACA,QACA,YACA,QACA,UACA,SACA,SACA,WACA,WACA,UACA,SACA,SACA,YACA,QACA,UACA,QACA,YACA,UACA,UACA,UACA,UACA,OACA,MACA,QACA,UACA,SACA,UACA,SACA,UACA,UACA,YACA,OACA,SACA,SACA,SACA,SACA,OACA,SACA,SACA,OACA,QACA,QACA,YACA,UACA,SACA,OACA,UACA,YACA,QACA,SACA,WACA,SACA,SACA,SACA,WACA,QACA,UACA,SACA,QACA,UACA,SACA,SACA,SACA,SACA,UACA,QACA,WACA,SACA,UACA,QACA,QACA,OACA,SACA,SACA,SACA,QACA,SACA,UACA,QACA,SACA,UACA,SACA,SACA,SACA,QACA,UACA,WACA,SACA,OACA,OACA,WACA,OACA,UACA,SACA,QACA,SACA,MACA,SACA,OACA,QACA,OACA,WACA,MACA,UACA,QACA,YACA,YACA,SACA,UACA,SACA,SACA,OACA,QACA,SACA,OACA,QACA,cACA,aACA,UACA,QACA,SACA,YACA,UACA,UACA,UACA,SACA,OACA,SACA,UACA,UACA,SACA,UACA,QACA,YACA,UACA,OACA,UACA,QACA,UACA,SACA,UACA,SACA,OACA,SACA,OACA,SACA,WACA,SACA,WACA,YACA,SACA,OACA,UACA,SACA,QACA,UACA,OACA,YACA,QACA,UACA,QACA,SACA,YACA,SACA,SACA,QACA,SACA,UACA,SACA,SACA,UACA,QACA,OACA,OACA,SACA,WACA,SACA,OACA,QACA,WACA,OACA,UACA,SACA,OACA,SACA,UACA,UACA,QACA,OACA,OACA,UACA,OACA,QACA,SACA,UACA,SACA,QACA,YACA,OACA,SACA,UACA,KACA,UACA,WACA,QACA,WACA,SACA,UACA,OACA,SACA,UACA,UACA,SACA,QACA,SACA,QACA,UACA,UACA,QACA,UACA,UACA,UACA,QACA,YACA,UACA,OACA,MAAA,EAEF,KAAK,QAAU,CACb,iBACA,WACA,mBACA,aACA,eACA,kBACA,eACA,kBACA,mBACA,mBACA,eACA,gBACA,gBACA,kBACA,eACA,oBACA,kBACA,kBACA,mBACA,cACA,gBACA,kBACA,eACA,gBACA,cACA,WACA,aACA,kBACA,iBACA,gBACA,qBACA,kBACA,mBACA,eACA,mBACA,gBACA,iBACA,aACA,kBACA,gBACA,eACA,aACA,iBACA,eACA,gBACA,aACA,kBACA,gBACA,eACA,aACA,mBACA,gBACA,gBACA,aACA,kBACA,eACA,aACA,eACA,iBACA,eACA,kBACA,aACA,mBACA,eACA,kBACA,iBACA,eACA,eACA,gBACA,iBACA,gBACA,cACA,kBACA,gBACA,cACA,iBACA,cACA,YACA,mBACA,mBACA,kBACA,iBACA,iBACA,kBACA,gBACA,kBACA,kBACA,aACA,gBACA,gBACA,kBACA,YACA,mBACA,YACA,mBACA,aACA,gBACA,eACA,cACA,SAAA,EAEF,KAAK,OAAS,CACZ,SACA,YACA,YACA,cACA,OACA,UACA,SACA,WACA,QACA,UACA,QACA,YACA,YACA,SACA,QACA,SACA,0BACA,WACA,YACA,SACA,SACA,UACA,UACA,WACA,SACA,eACA,UACA,UACA,YACA,SACA,aACA,WACA,SACA,eACA,SACA,UACA,gBACA,YACA,UACA,SACA,WACA,cACA,iBACA,YACA,UACA,aACA,SACA,QACA,SACA,OAAA,EAEF,KAAK,UAAY,CACf,UACA,WACA,WACA,UACA,UACA,SACA,2BACA,SACA,UACA,SACA,qBACA,UACA,iCACA,WACA,2BACA,8BACA,UACA,SACA,SACA,WACA,aACA,QACA,SACA,OACA,mCACA,cACA,uBACA,OACA,UACA,UACA,WACA,iBACA,aACA,aACA,mCACA,cACA,WACA,SACA,8BACA,oBACA,cACA,OACA,YACA,SACA,QACA,OAAA,CAEJ,CACF,CChpGA,MAAMC,CAAkB,CAStB,YAAYC,EAAwB,CALpC,KAAA,WAAqBC,OAAK,oBAAoB,QAAQ,eAAkB,IACxE,KAAA,UAAoBA,OAAK,oBAAoB,QAAQ,kBAAqB,IAC1E,KAAA,WAAqBA,OAAK,oBAAoB,QAAQ,mBAAsB,IAkBhE,KAAA,UAAA,MAAOC,EAAkBC,IAAsC,CACzE,MAAMC,EAAe,MAAM,KAAK,eAAeD,CAAO,EAEtD,GAAIC,GAAgB,KACX,MAAA,GAGT,GAAIF,EAAQC,CAAO,EAAE,MAAM,OAAS,EAAG,CAC5B,QAAAE,EAAI,EAAGA,EAAIH,EAAQC,CAAO,EAAE,MAAM,OAAQE,IACjDH,EAAQC,CAAO,EAAE,MAAME,CAAC,EAAI,MAAMD,EAAaF,EAAQC,CAAO,EAAE,MAAME,CAAC,CAAC,EAGnE,MAAA,EAAA,SACEH,EAAQC,CAAO,EAAE,MAAM,QAAU,EAAG,CAC7C,MAAMG,EAAwBJ,EAAQC,CAAO,EAAE,MAAM,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"} \ No newline at end of file diff --git a/adit/upload/static/vendor/dicomweb-client.js b/adit/upload/static/vendor/dicomweb-client.js new file mode 100644 index 00000000..98e3d68f --- /dev/null +++ b/adit/upload/static/vendor/dicomweb-client.js @@ -0,0 +1,1948 @@ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : + typeof define === 'function' && define.amd ? define(['exports'], factory) : + (factory((global.DICOMwebClient = {}))); +}(this, (function (exports) { 'use strict'; + + function _typeof(obj) { + "@babel/helpers - typeof"; + + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { + return typeof obj; + } : function (obj) { + return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }, _typeof(obj); + } + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); + } + } + function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { + writable: false + }); + return Constructor; + } + function _toConsumableArray(arr) { + return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); + } + function _arrayWithoutHoles(arr) { + if (Array.isArray(arr)) return _arrayLikeToArray(arr); + } + function _iterableToArray(iter) { + if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); + } + function _unsupportedIterableToArray(o, minLen) { + if (!o) return; + if (typeof o === "string") return _arrayLikeToArray(o, minLen); + var n = Object.prototype.toString.call(o).slice(8, -1); + if (n === "Object" && o.constructor) n = o.constructor.name; + if (n === "Map" || n === "Set") return Array.from(o); + if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); + } + function _arrayLikeToArray(arr, len) { + if (len == null || len > arr.length) len = arr.length; + for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; + return arr2; + } + function _nonIterableSpread() { + throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + function _toPrimitive(input, hint) { + if (typeof input !== "object" || input === null) return input; + var prim = input[Symbol.toPrimitive]; + if (prim !== undefined) { + var res = prim.call(input, hint || "default"); + if (typeof res !== "object") return res; + throw new TypeError("@@toPrimitive must return a primitive value."); + } + return (hint === "string" ? String : Number)(input); + } + function _toPropertyKey(arg) { + var key = _toPrimitive(arg, "string"); + return typeof key === "symbol" ? key : String(key); + } + + /** + * Converts a Uint8Array to a String. + * @param {Uint8Array} array that should be converted + * @param {Number} offset array offset in case only subset of array items should + be extracted (default: 0) + * @param {Number} limit maximum number of array items that should be extracted + (defaults to length of array) + * @returns {String} + */ + function uint8ArrayToString(arr) { + var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; + var limit = arguments.length > 2 ? arguments[2] : undefined; + var itemLimit = limit || arr.length - offset; + var str = ''; + for (var i = offset; i < offset + itemLimit; i++) { + str += String.fromCharCode(arr[i]); + } + return str; + } + + /** + * Converts a String to a Uint8Array. + * @param {String} str string that should be converted + * @returns {Uint8Array} + */ + function stringToUint8Array(str) { + var arr = new Uint8Array(str.length); + for (var i = 0, j = str.length; i < j; i++) { + arr[i] = str.charCodeAt(i); + } + return arr; + } + + /** + * Identifies the boundary in a multipart/related message header. + * @param {String} header message header + * @returns {String} boundary + */ + function identifyBoundary(header) { + var parts = header.split('\r\n'); + for (var i = 0; i < parts.length; i++) { + if (parts[i].substr(0, 2) === '--') { + return parts[i]; + } + } + return null; + } + + /** + * Checks whether a given token is contained by a message at a given offset. + * @param {Uint8Array} message message content + * @param {Uint8Array} token substring that should be present + * @param {Number} offset offset in message content from where search should start + * @returns {Boolean} whether message contains token at offset + */ + function containsToken(message, token) { + var offset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0; + if (offset + token.length > message.length) { + return false; + } + var index = offset; + for (var i = 0; i < token.length; i++) { + if (token[i] !== message[index]) { + return false; + } + index += 1; + } + return true; + } + + /** + * Finds a given token in a message at a given offset. + * @param {Uint8Array} message message content + * @param {Uint8Array} token substring that should be found + * @param {String} offset message body offset from where search should start + * @returns {Boolean} whether message has a part at given offset or not + */ + function findToken(message, token) { + var offset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0; + var maxSearchLength = arguments.length > 3 ? arguments[3] : undefined; + var searchLength = message.length; + if (maxSearchLength) { + searchLength = Math.min(offset + maxSearchLength, message.length); + } + for (var i = offset; i < searchLength; i++) { + // If the first value of the message matches + // the first value of the token, check if + // this is the full token. + if (message[i] === token[0]) { + if (containsToken(message, token, i)) { + return i; + } + } + } + return -1; + } + + /** + * Create a random GUID + * + * @return {string} + */ + function guid() { + function s4() { + return Math.floor((1 + Math.random()) * 0x10000).toString(16).substring(1); + } + return "".concat(s4() + s4(), "-").concat(s4(), "-").concat(s4(), "-").concat(s4(), "-").concat(s4()).concat(s4()).concat(s4()); + } + + /** + * @typedef {Object} MultipartEncodedData + * @property {ArrayBuffer} data The encoded Multipart Data + * @property {String} boundary The boundary used to divide pieces of the encoded data + */ + + /** + * Encode one or more DICOM datasets into a single body so it can be + * sent using the Multipart Content-Type. + * + * @param {ArrayBuffer[]} datasets Array containing each file to be encoded in the + multipart body, passed as ArrayBuffers. + * @param {String} [boundary] Optional string to define a boundary between each part + of the multipart body. If this is not specified, a random + GUID will be generated. + * @return {MultipartEncodedData} The Multipart encoded data returned as an Object. This + contains both the data itself, and the boundary string + used to divide it. + */ + function multipartEncode(datasets) { + var boundary = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : guid(); + var contentType = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'application/dicom'; + var contentTypeString = "Content-Type: ".concat(contentType); + var header = "\r\n--".concat(boundary, "\r\n").concat(contentTypeString, "\r\n\r\n"); + var footer = "\r\n--".concat(boundary, "--"); + var headerArray = stringToUint8Array(header); + var footerArray = stringToUint8Array(footer); + var headerLength = headerArray.length; + var footerLength = footerArray.length; + var length = 0; + + // Calculate the total length for the final array + var contentArrays = datasets.map(function (datasetBuffer) { + var contentArray = new Uint8Array(datasetBuffer); + var contentLength = contentArray.length; + length += headerLength + contentLength + footerLength; + return contentArray; + }); + + // Allocate the array + var multipartArray = new Uint8Array(length); + + // Set the initial header + multipartArray.set(headerArray, 0); + + // Write each dataset into the multipart array + var position = 0; + contentArrays.forEach(function (contentArray) { + multipartArray.set(headerArray, position); + multipartArray.set(contentArray, position + headerLength); + position += headerLength + contentArray.length; + }); + multipartArray.set(footerArray, position); + return { + data: multipartArray.buffer, + boundary: boundary + }; + } + + /** + * Decode a Multipart encoded ArrayBuffer and return the components as an Array. + * + * @param {ArrayBuffer} response Data encoded as a 'multipart/related' message + * @returns {Array} The content + */ + function multipartDecode(response) { + // Use the raw data if it is provided in an appropriate format + var message = ArrayBuffer.isView(response) ? response : new Uint8Array(response); + + /* Set a maximum length to search for the header boundaries, otherwise + findToken can run for a long time + */ + var maxSearchLength = 1000; + + // First look for the multipart mime header + var separator = stringToUint8Array('\r\n\r\n'); + var headerIndex = findToken(message, separator, 0, maxSearchLength); + if (headerIndex === -1) { + throw new Error('Response message has no multipart mime header'); + } + var header = uint8ArrayToString(message, 0, headerIndex); + var boundaryString = identifyBoundary(header); + if (!boundaryString) { + throw new Error('Header of response message does not specify boundary'); + } + var boundary = stringToUint8Array(boundaryString); + var boundaryLength = boundary.length; + var components = []; + var offset = boundaryLength; + + // Loop until we cannot find any more boundaries + var boundaryIndex; + while (boundaryIndex !== -1) { + // Search for the next boundary in the message, starting + // from the current offset position + boundaryIndex = findToken(message, boundary, offset); + + // If no further boundaries are found, stop here. + if (boundaryIndex === -1) { + break; + } + var headerTokenIndex = findToken(message, separator, offset, maxSearchLength); + if (headerTokenIndex === -1) { + throw new Error('Response message part has no mime header'); + } + offset = headerTokenIndex + separator.length; + + // Extract data from response message, excluding "\r\n" + var spacingLength = 2; + var data = response.slice(offset, boundaryIndex - spacingLength); + + // Add the data to the array of results + components.push(data); + + // Move the offset to the end of the current section, + // plus the identified boundary + offset = boundaryIndex + boundaryLength; + } + return components; + } + + function isObject(obj) { + return _typeof(obj) === 'object' && obj !== null; + } + function isEmptyObject(obj) { + return Object.keys(obj).length === 0 && obj.constructor === Object; + } + function areValidRequestHooks(requestHooks) { + var isValid = Array.isArray(requestHooks) && requestHooks.every(function (requestHook) { + return typeof requestHook === 'function' && requestHook.length === 2; + }); + if (!isValid) { + console.warn('Request hooks should have the following signature: ' + 'function requestHook(request, metadata) { return request; }'); + } + return isValid; + } + var getFirstResult = function getFirstResult(result) { + return result[0]; + }; + var MEDIATYPES = { + DICOM: 'application/dicom', + DICOM_JSON: 'application/dicom+json', + OCTET_STREAM: 'application/octet-stream', + PDF: 'application/pdf', + JPEG: 'image/jpeg', + PNG: 'image/png' + }; + + /** + * debugLog is a function that can be called with console.log arguments, and will + * be conditionally displayed, only when debug logging is enabled. + */ + var debugLog = function debugLog() {}; + + /** + * @typedef { import("../types/types").InstanceMetadata } InstanceMetadata + */ + + /** + * A callback with the request instance and metadata information + * of the currently request being executed that should necessarily + * return the given request optionally modified. + * @typedef {function} RequestHook + * @param {XMLHttpRequest} request - The original XMLHttpRequest instance. + * @param {object} metadata - The metadata used by the request. + */ + + /** + * Class for interacting with DICOMweb RESTful services. + */ + var DICOMwebClient = /*#__PURE__*/function () { + /** + * @constructor + * @param {Object} options + * @param {String} options.url - URL of the DICOMweb RESTful Service endpoint + * @param {String=} options.qidoURLPrefix - URL path prefix for QIDO-RS + * @param {String=} options.wadoURLPrefix - URL path prefix for WADO-RS + * @param {String=} options.stowURLPrefix - URL path prefix for STOW-RS + * @param {String=} options.username - Username + * @param {String=} options.password - Password + * @param {Object=} options.headers - HTTP headers + * @param {Array.=} options.requestHooks - Request hooks. + * @param {Object=} options.verbose - print to console request warnings and errors, default true + * @param {Object=} options.debug - print to the console debug level information/status updates. + * @param {boolean|String} options.singlepart - retrieve singlepart for the named types. + * The available types are: bulkdata, video, image. true means all. + */ + function DICOMwebClient(options) { + _classCallCheck(this, DICOMwebClient); + this.baseURL = options.url; + if (!this.baseURL) { + console.error('no DICOMweb base url provided - calls that require a URL will fail'); + } + if ('username' in options) { + this.username = options.username; + if (!('password' in options)) { + console.error('no password provided to authenticate with DICOMweb service'); + } + this.password = options.password; + } + if ('qidoURLPrefix' in options) { + debugLog("use URL prefix for QIDO-RS: ".concat(options.qidoURLPrefix)); + this.qidoURL = "".concat(this.baseURL, "/").concat(options.qidoURLPrefix); + } else { + this.qidoURL = this.baseURL; + } + if ('wadoURLPrefix' in options) { + debugLog("use URL prefix for WADO-RS: ".concat(options.wadoURLPrefix)); + this.wadoURL = "".concat(this.baseURL, "/").concat(options.wadoURLPrefix); + } else { + this.wadoURL = this.baseURL; + } + if ('stowURLPrefix' in options) { + debugLog("use URL prefix for STOW-RS: ".concat(options.stowURLPrefix)); + this.stowURL = "".concat(this.baseURL, "/").concat(options.stowURLPrefix); + } else { + this.stowURL = this.baseURL; + } + if (options.singlepart) { + debugLog('use singlepart', options.singlepart); + this.singlepart = options.singlepart === true ? 'bulkdata,video,image' : options.singlepart; + } else { + this.singlepart = ''; + } + if ('requestHooks' in options) { + this.requestHooks = options.requestHooks; + } + + // Headers to pass to requests. + this.headers = options.headers || {}; + + // Optional error interceptor callback to handle any failed request. + this.errorInterceptor = options.errorInterceptor || function () { + return undefined; + }; + + // Verbose - print to console request warnings and errors, default true + this.verbose = options.verbose !== false; + this.setDebug(options.debug); + } + + /** + * Allows setting the debug log information. + * Note this is different from verbose in that verbose is whether to include warning/error information, defaulting to true + * + * @param {boolean} debugLevel + * @param {function} debugLogFunction to call with the debug output arguments. + */ + _createClass(DICOMwebClient, [{ + key: "setDebug", + value: function setDebug() { + var debugLevel = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; + var debugLogFunction = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; + this.debugLevel = !!debugLevel; + debugLog = debugLogFunction || debugLevel ? console.log : function () {}; + } + /** + * Gets debug flag + * + * @returns true if debug logging is enabled + */ + }, { + key: "getDebug", + value: function getDebug() { + return this.debugLevel; + } + /** + * Sets verbose flag. + * + * @param {Boolean} verbose + */ + }, { + key: "setVerbose", + value: function setVerbose(verbose) { + this.verbose = verbose; + } + /** + * Gets verbose flag. + * + * @return {Boolean} verbose + */ + }, { + key: "getVerbose", + value: function getVerbose() { + return this.verbose; + } + }, { + key: "_httpRequest", + /** + * Performs an HTTP request. + * + * @param {String} url + * @param {String} method + * @param {Object} headers + * @param {Object} options + * @param {Array.} options.requestHooks - Request hooks. + * @param {XMLHttpRequest} [options.request] - if specified, the request to use, otherwise one will be created; useful for adding custom upload and abort listeners/objects + * @return {*} + * @private + */ + value: function _httpRequest(url, method) { + var _this = this; + var headers = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; + var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {}; + var errorInterceptor = this.errorInterceptor, + requestHooks = this.requestHooks; + return new Promise(function (resolve, reject) { + var request = options.request ? options.request : new XMLHttpRequest(); + request.open(method, url, true); + if ('responseType' in options) { + request.responseType = options.responseType; + } + if (_typeof(headers) === 'object') { + Object.keys(headers).forEach(function (key) { + request.setRequestHeader(key, headers[key]); + }); + } + + // now add custom headers from the user + // (e.g. access tokens) + var userHeaders = _this.headers; + Object.keys(userHeaders).forEach(function (key) { + request.setRequestHeader(key, userHeaders[key]); + }); + + // Event triggered when upload starts + request.onloadstart = function onloadstart() { + debugLog('upload started: ', url); + }; + + // Event triggered when upload ends + request.onloadend = function onloadend() { + debugLog('upload finished'); + }; + + // Handle response message + request.onreadystatechange = function () { + if (request.readyState === 4) { + if (request.status === 200) { + var contentType = request.getResponseHeader('Content-Type'); + // Automatically distinguishes between multipart and singlepart in an array buffer, and + // converts them into a consistent type. + if (contentType && contentType.indexOf('multipart') !== -1) { + resolve(multipartDecode(request.response)); + } else if (request.responseType === 'arraybuffer') { + resolve([request.response]); + } else { + resolve(request.response); + } + } else if (request.status === 202) { + if (_this.verbose) { + console.warn('some resources already existed: ', request); + } + resolve(request.response); + } else if (request.status === 204) { + if (_this.verbose) { + console.warn('empty response for request: ', request); + } + resolve([]); + } else { + var error = new Error('request failed'); + error.request = request; + error.response = request.response; + error.status = request.status; + if (_this.verbose) { + console.error('request failed: ', request); + console.error(error); + console.error(error.response); + } + errorInterceptor(error); + reject(error); + } + } + }; + + // Event triggered while download progresses + if ('progressCallback' in options) { + if (typeof options.progressCallback === 'function') { + request.onprogress = options.progressCallback; + } + } + if (requestHooks && areValidRequestHooks(requestHooks)) { + var combinedHeaders = Object.assign({}, headers, _this.headers); + var metadata = { + method: method, + url: url, + headers: combinedHeaders + }; + var pipeRequestHooks = function pipeRequestHooks(functions) { + return function (args) { + return functions.reduce(function (props, fn) { + return fn(props, metadata); + }, args); + }; + }; + var pipedRequest = pipeRequestHooks(requestHooks); + request = pipedRequest(request); + } + + // Add withCredentials to request if needed + if ('withCredentials' in options) { + if (options.withCredentials) { + request.withCredentials = true; + } + } + if ('data' in options) { + request.send(options.data); + } else { + request.send(); + } + }); + } + /** + * Performs an HTTP GET request. + * + * @param {String} url + * @param {Object} headers + * @param {Object} responseType + * @param {Function} progressCallback + * @return {*} + * @private + */ + }, { + key: "_httpGet", + value: function _httpGet(url, headers, responseType, progressCallback, withCredentials) { + return this._httpRequest(url, 'get', headers, { + responseType: responseType, + progressCallback: progressCallback, + withCredentials: withCredentials + }); + } + /** + * Performs an HTTP GET request that accepts a message with application/json + * media type. + * + * @param {String} url + * @param {Object} params + * @param {Function} progressCallback + * @return {*} + * @private + */ + }, { + key: "_httpGetApplicationJson", + value: function _httpGetApplicationJson(url) { + var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + var progressCallback = arguments.length > 2 ? arguments[2] : undefined; + var withCredentials = arguments.length > 3 ? arguments[3] : undefined; + var urlWithQueryParams = url; + if (_typeof(params) === 'object') { + if (!isEmptyObject(params)) { + urlWithQueryParams += DICOMwebClient._parseQueryParameters(params); + } + } + var headers = { + Accept: MEDIATYPES.DICOM_JSON + }; + var responseType = 'json'; + return this._httpGet(urlWithQueryParams, headers, responseType, progressCallback, withCredentials); + } + /** + * Performs an HTTP GET request that accepts a message with application/pdf + * media type. + * + * @param {String} url + * @param {Object} params + * @param {Function} progressCallback + * @return {*} + * @private + */ + }, { + key: "_httpGetApplicationPdf", + value: function _httpGetApplicationPdf(url) { + var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + var progressCallback = arguments.length > 2 ? arguments[2] : undefined; + var withCredentials = arguments.length > 3 ? arguments[3] : undefined; + var urlWithQueryParams = url; + if (_typeof(params) === 'object') { + if (!isEmptyObject(params)) { + urlWithQueryParams += DICOMwebClient._parseQueryParameters(params); + } + } + var headers = { + Accept: MEDIATYPES.PDF + }; + var responseType = 'json'; + return this._httpGet(urlWithQueryParams, headers, responseType, progressCallback, withCredentials); + } + /** + * Performs an HTTP GET request that accepts a message with an image + media type. + * + * @param {String} url + * @param {Object[]} mediaTypes + * @param {Object} params + * @param {Function} progressCallback + * @return {*} + * @private + */ + }, { + key: "_httpGetImage", + value: function _httpGetImage(url, mediaTypes) { + var params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; + var progressCallback = arguments.length > 3 ? arguments[3] : undefined; + var withCredentials = arguments.length > 4 ? arguments[4] : undefined; + var urlWithQueryParams = url; + if (_typeof(params) === 'object') { + if (!isEmptyObject(params)) { + urlWithQueryParams += DICOMwebClient._parseQueryParameters(params); + } + } + var supportedMediaTypes = ['image/', 'image/*', 'image/jpeg', 'image/jp2', 'image/gif', 'image/png']; + var acceptHeaderFieldValue = DICOMwebClient._buildAcceptHeaderFieldValue(mediaTypes, supportedMediaTypes); + var headers = { + Accept: acceptHeaderFieldValue + }; + var responseType = 'arraybuffer'; + return this._httpGet(urlWithQueryParams, headers, responseType, progressCallback, withCredentials); + } + /** + * Performs an HTTP GET request that accepts a message with a text + media type. + * + * @param {String} url + * @param {Object[]} mediaTypes + * @param {Object} params + * @param {Function} progressCallback + * @return {*} + * @private + */ + }, { + key: "_httpGetText", + value: function _httpGetText(url, mediaTypes) { + var params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; + var progressCallback = arguments.length > 3 ? arguments[3] : undefined; + var withCredentials = arguments.length > 4 ? arguments[4] : undefined; + var urlWithQueryParams = url; + if (_typeof(params) === 'object') { + if (!isEmptyObject(params)) { + urlWithQueryParams += DICOMwebClient._parseQueryParameters(params); + } + } + var supportedMediaTypes = ['text/', 'text/*', 'text/html', 'text/plain', 'text/rtf', 'text/xml']; + var acceptHeaderFieldValue = DICOMwebClient._buildAcceptHeaderFieldValue(mediaTypes, supportedMediaTypes); + var headers = { + Accept: acceptHeaderFieldValue + }; + var responseType = 'arraybuffer'; + return this._httpGet(urlWithQueryParams, headers, responseType, progressCallback, withCredentials); + } + /** + * Performs an HTTP GET request that accepts a message with a video + media type. + * + * @param {String} url + * @param {Object[]} mediaTypes + * @param {Object} params + * @param {Function} progressCallback + * @return {*} + * @private + */ + }, { + key: "_httpGetVideo", + value: function _httpGetVideo(url, mediaTypes) { + var params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; + var progressCallback = arguments.length > 3 ? arguments[3] : undefined; + var withCredentials = arguments.length > 4 ? arguments[4] : undefined; + var urlWithQueryParams = url; + if (_typeof(params) === 'object') { + if (!isEmptyObject(params)) { + urlWithQueryParams += DICOMwebClient._parseQueryParameters(params); + } + } + var supportedMediaTypes = ['video/', 'video/*', 'video/mpeg', 'video/mp4', 'video/H265']; + var acceptHeaderFieldValue = DICOMwebClient._buildAcceptHeaderFieldValue(mediaTypes, supportedMediaTypes); + var headers = { + Accept: acceptHeaderFieldValue + }; + var responseType = 'arraybuffer'; + return this._httpGet(urlWithQueryParams, headers, responseType, progressCallback, withCredentials); + } + /** + * Asserts that a given media type is valid. + * + * @params {String} mediaType media type + */ + }, { + key: "_httpGetMultipartImage", + /** + * Performs an HTTP GET request that accepts a multipart message with an image media type. + * + * @param {String} url - Unique resource locator + * @param {Object[]} mediaTypes - Acceptable media types and optionally the UIDs of the + corresponding transfer syntaxes + * @param {Array} byteRange - Start and end of byte range + * @param {Object} params - Additional HTTP GET query parameters + * @param {Boolean} rendered - Whether resource should be requested using rendered media types + * @param {Function} progressCallback + * @private + * @returns {Promise} Content of HTTP message body parts + */ + value: function _httpGetMultipartImage(url, mediaTypes, byteRange, params) { + var rendered = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false; + var progressCallback = arguments.length > 5 ? arguments[5] : undefined; + var withCredentials = arguments.length > 6 ? arguments[6] : undefined; + var headers = {}; + var supportedMediaTypes; + if (rendered) { + supportedMediaTypes = ['image/jpeg', 'image/gif', 'image/png', 'image/jp2']; + } else { + supportedMediaTypes = { + '1.2.840.10008.1.2.5': ['image/x-dicom-rle'], + '1.2.840.10008.1.2.4.50': ['image/jpeg'], + '1.2.840.10008.1.2.4.51': ['image/jpeg'], + '1.2.840.10008.1.2.4.57': ['image/jpeg'], + '1.2.840.10008.1.2.4.70': ['image/jpeg'], + '1.2.840.10008.1.2.4.80': ['image/x-jls', 'image/jls'], + '1.2.840.10008.1.2.4.81': ['image/x-jls', 'image/jls'], + '1.2.840.10008.1.2.4.90': ['image/jp2'], + '1.2.840.10008.1.2.4.91': ['image/jp2'], + '1.2.840.10008.1.2.4.92': ['image/jpx'], + '1.2.840.10008.1.2.4.93': ['image/jpx'] + }; + if (byteRange) { + headers.Range = DICOMwebClient._buildRangeHeaderFieldValue(byteRange); + } + } + headers.Accept = DICOMwebClient._buildMultipartAcceptHeaderFieldValue(mediaTypes, supportedMediaTypes); + return this._httpGet(url, headers, 'arraybuffer', progressCallback, withCredentials); + } + /** + * Performs an HTTP GET request that accepts a multipart message with a video media type. + * + * @param {String} url - Unique resource locator + * @param {Object[]} mediaTypes - Acceptable media types and optionally the UIDs of the + corresponding transfer syntaxes + * @param {Array} byteRange - Start and end of byte range + * @param {Object} params - Additional HTTP GET query parameters + * @param {Boolean} rendered - Whether resource should be requested using rendered media types + * @param {Function} progressCallback + * @private + * @returns {Promise} Content of HTTP message body parts + */ + }, { + key: "_httpGetMultipartVideo", + value: function _httpGetMultipartVideo(url, mediaTypes, byteRange, params) { + var rendered = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false; + var progressCallback = arguments.length > 5 ? arguments[5] : undefined; + var withCredentials = arguments.length > 6 ? arguments[6] : undefined; + var headers = {}; + var supportedMediaTypes; + if (rendered) { + supportedMediaTypes = ['video/', 'video/*', 'video/mpeg2', 'video/mp4', 'video/H265']; + } else { + supportedMediaTypes = { + '1.2.840.10008.1.2.4.100': ['video/mpeg2'], + '1.2.840.10008.1.2.4.101': ['video/mpeg2'], + '1.2.840.10008.1.2.4.102': ['video/mp4'], + '1.2.840.10008.1.2.4.103': ['video/mp4'], + '1.2.840.10008.1.2.4.104': ['video/mp4'], + '1.2.840.10008.1.2.4.105': ['video/mp4'], + '1.2.840.10008.1.2.4.106': ['video/mp4'] + }; + if (byteRange) { + headers.Range = DICOMwebClient._buildRangeHeaderFieldValue(byteRange); + } + } + headers.Accept = DICOMwebClient._buildMultipartAcceptHeaderFieldValue(mediaTypes, supportedMediaTypes); + return this._httpGet(url, headers, 'arraybuffer', progressCallback, withCredentials); + } + /** + * Performs an HTTP GET request that accepts a multipart message + * with a application/dicom media type. + * + * @param {String} url - Unique resource locator + * @param {Object[]} mediaTypes - Acceptable media types and optionally the UIDs of the + corresponding transfer syntaxes + * @param {Object} params - Additional HTTP GET query parameters + * @param {Function} progressCallback + * @private + * @returns {Promise} Content of HTTP message body parts + */ + }, { + key: "_httpGetMultipartApplicationDicom", + value: function _httpGetMultipartApplicationDicom(url, mediaTypes, params, progressCallback, withCredentials) { + var headers = {}; + var defaultMediaType = 'application/dicom'; + var supportedMediaTypes = { + '1.2.840.10008.1.2.1': [defaultMediaType], + '1.2.840.10008.1.2.5': [defaultMediaType], + '1.2.840.10008.1.2.4.50': [defaultMediaType], + '1.2.840.10008.1.2.4.51': [defaultMediaType], + '1.2.840.10008.1.2.4.57': [defaultMediaType], + '1.2.840.10008.1.2.4.70': [defaultMediaType], + '1.2.840.10008.1.2.4.80': [defaultMediaType], + '1.2.840.10008.1.2.4.81': [defaultMediaType], + '1.2.840.10008.1.2.4.90': [defaultMediaType], + '1.2.840.10008.1.2.4.91': [defaultMediaType], + '1.2.840.10008.1.2.4.92': [defaultMediaType], + '1.2.840.10008.1.2.4.93': [defaultMediaType], + '1.2.840.10008.1.2.4.100': [defaultMediaType], + '1.2.840.10008.1.2.4.101': [defaultMediaType], + '1.2.840.10008.1.2.4.102': [defaultMediaType], + '1.2.840.10008.1.2.4.103': [defaultMediaType], + '1.2.840.10008.1.2.4.104': [defaultMediaType], + '1.2.840.10008.1.2.4.105': [defaultMediaType], + '1.2.840.10008.1.2.4.106': [defaultMediaType] + }; + var acceptableMediaTypes = mediaTypes; + if (!mediaTypes) { + acceptableMediaTypes = [{ + mediaType: defaultMediaType + }]; + } + headers.Accept = DICOMwebClient._buildMultipartAcceptHeaderFieldValue(acceptableMediaTypes, supportedMediaTypes); + return this._httpGet(url, headers, 'arraybuffer', progressCallback, withCredentials); + } + /** + * Performs an HTTP GET request that accepts a multipart message + * with a application/octet-stream, OR any of the equivalencies for that (eg + * application/pdf etc) + * + * @param {String} url - Unique resource locator + * @param {Object[]} mediaTypes - Acceptable media types and optionally the UIDs of the + corresponding transfer syntaxes + * @param {Array} byteRange start and end of byte range + * @param {Object} params - Additional HTTP GET query parameters + * @param {Function} progressCallback + * @private + * @returns {Promise} Content of HTTP message body parts + */ + }, { + key: "_httpGetMultipartApplicationOctetStream", + value: function _httpGetMultipartApplicationOctetStream(url, mediaTypes, byteRange, params, progressCallback, withCredentials) { + var headers = {}; + var defaultMediaType = 'application/octet-stream'; + var supportedMediaTypes = { + '1.2.840.10008.1.2.1': _toConsumableArray(Object.values(MEDIATYPES)) + }; + var acceptableMediaTypes = mediaTypes; + if (!mediaTypes) { + acceptableMediaTypes = [{ + mediaType: defaultMediaType + }]; + } + if (byteRange) { + headers.Range = DICOMwebClient._buildRangeHeaderFieldValue(byteRange); + } + headers.Accept = DICOMwebClient._buildMultipartAcceptHeaderFieldValue(acceptableMediaTypes, supportedMediaTypes); + return this._httpGet(url, headers, 'arraybuffer', progressCallback, withCredentials); + } + /** + * Performs an HTTP POST request. + * + * @param {String} url - Unique resource locator + * @param {Object} headers - HTTP header fields + * @param {Array} data - Data that should be stored + * @param {Function} progressCallback + * @param {Function} progressCallback + * @param {XMLHttpRequest} request - if specified, the request to use, otherwise one will be created; useful for adding custom upload and abort listeners/objects + * @private + * @returns {Promise} Response + */ + }, { + key: "_httpPost", + value: function _httpPost(url, headers, data, progressCallback, withCredentials, request) { + return this._httpRequest(url, 'post', headers, { + data: data, + progressCallback: progressCallback, + withCredentials: withCredentials, + request: request + }); + } + /** + * Performs an HTTP POST request with content-type application/dicom+json. + * + * @param {String} url - Unique resource locator + * @param {Object} headers - HTTP header fields + * @param {Array} data - Data that should be stored + * @param {Function} progressCallback + * @private + * @returns {Promise} Response + */ + }, { + key: "_httpPostApplicationJson", + value: function _httpPostApplicationJson(url, data, progressCallback, withCredentials) { + var headers = { + 'Content-Type': MEDIATYPES.DICOM_JSON + }; + return this._httpPost(url, headers, data, progressCallback, withCredentials); + } + /** + * Parses media type and extracts its type and subtype. + * + * @param {String} mediaType - HTTP media type (e.g. image/jpeg) + * @private + * @returns {String[]} Media type and subtype + */ + }, { + key: "searchForStudies", + /** + * Searches for DICOM studies. + * + * @param {Object} options + * @param {Object} [options.queryParams] - HTTP query parameters + * @return {Object[]} Study representations (http://dicom.nema.org/medical/dicom/current/output/chtml/part18/sect_6.7.html#table_6.7.1-2) + */ + value: function searchForStudies() { + var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + debugLog('search for studies'); + var withCredentials = false; + var url = "".concat(this.qidoURL, "/studies"); + if ('queryParams' in options) { + url += DICOMwebClient._parseQueryParameters(options.queryParams); + } + if ('withCredentials' in options) { + if (options.withCredentials) { + withCredentials = options.withCredentials; + } + } + return this._httpGetApplicationJson(url, {}, false, withCredentials); + } + /** + * Retrieves metadata for a DICOM study. + * + * @param {Object} options + * @param {String} options.studyInstanceUID - Study Instance UID + * @returns {Promise} Metadata elements in DICOM JSON format for each instance + belonging to the study + */ + }, { + key: "retrieveStudyMetadata", + value: function retrieveStudyMetadata(options) { + if (!('studyInstanceUID' in options)) { + throw new Error('Study Instance UID is required for retrieval of study metadata'); + } + debugLog("retrieve metadata of study ".concat(options.studyInstanceUID)); + var url = "".concat(this.wadoURL, "/studies/").concat(options.studyInstanceUID, "/metadata"); + var withCredentials = false; + if ('withCredentials' in options) { + if (options.withCredentials) { + withCredentials = options.withCredentials; + } + } + return this._httpGetApplicationJson(url, {}, false, withCredentials); + } + /** + * Searches for DICOM series. + * + * @param {Object} options + * @param {Object} [options.studyInstanceUID] - Study Instance UID + * @param {Object} [options.queryParams] - HTTP query parameters + * @returns {Object[]} Series representations (http://dicom.nema.org/medical/dicom/current/output/chtml/part18/sect_6.7.html#table_6.7.1-2a) + */ + }, { + key: "searchForSeries", + value: function searchForSeries() { + var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + var url = this.qidoURL; + if ('studyInstanceUID' in options) { + debugLog("search series of study ".concat(options.studyInstanceUID)); + url += "/studies/".concat(options.studyInstanceUID); + } + url += '/series'; + if ('queryParams' in options) { + url += DICOMwebClient._parseQueryParameters(options.queryParams); + } + var withCredentials = false; + if ('withCredentials' in options) { + if (options.withCredentials) { + withCredentials = options.withCredentials; + } + } + return this._httpGetApplicationJson(url, {}, false, withCredentials); + } + /** + * Retrieves metadata for a DICOM series. + * + * @param {Object} options + * @param {String} options.studyInstanceUID - Study Instance UID + * @param {String} options.seriesInstanceUID - Series Instance UID + * @returns {Promise} Metadata elements in DICOM JSON format for each instance + belonging to the series + */ + }, { + key: "retrieveSeriesMetadata", + value: function retrieveSeriesMetadata(options) { + if (!('studyInstanceUID' in options)) { + throw new Error('Study Instance UID is required for retrieval of series metadata'); + } + if (!('seriesInstanceUID' in options)) { + throw new Error('Series Instance UID is required for retrieval of series metadata'); + } + debugLog("retrieve metadata of series ".concat(options.seriesInstanceUID)); + var url = "".concat(this.wadoURL, "/studies/").concat(options.studyInstanceUID, "/series/").concat(options.seriesInstanceUID, "/metadata"); + var withCredentials = false; + if ('withCredentials' in options) { + if (options.withCredentials) { + withCredentials = options.withCredentials; + } + } + return this._httpGetApplicationJson(url, {}, false, withCredentials); + } + /** + * Searches for DICOM Instances. + * + * @param {Object} options + * @param {String} [options.studyInstanceUID] - Study Instance UID + * @param {String} [options.seriesInstanceUID] - Series Instance UID + * @param {Object} [options.queryParams] - HTTP query parameters + * @returns {Object[]} Instance representations (http://dicom.nema.org/medical/dicom/current/output/chtml/part18/sect_6.7.html#table_6.7.1-2b) + */ + }, { + key: "searchForInstances", + value: function searchForInstances() { + var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + var url = this.qidoURL; + var withCredentials = false; + if ('studyInstanceUID' in options) { + url += "/studies/".concat(options.studyInstanceUID); + if ('seriesInstanceUID' in options) { + debugLog("search for instances of series ".concat(options.seriesInstanceUID)); + url += "/series/".concat(options.seriesInstanceUID); + } else { + debugLog("search for instances of study ".concat(options.studyInstanceUID)); + } + } else { + debugLog('search for instances'); + } + url += '/instances'; + if ('queryParams' in options) { + url += DICOMwebClient._parseQueryParameters(options.queryParams); + } + if ('withCredentials' in options) { + if (options.withCredentials) { + withCredentials = options.withCredentials; + } + } + return this._httpGetApplicationJson(url, {}, false, withCredentials); + } + /** Returns a WADO-URI URL for an instance + * + * @param {Object} options + * @param {String} options.studyInstanceUID - Study Instance UID + * @param {String} options.seriesInstanceUID - Series Instance UID + * @param {String} options.sopInstanceUID - SOP Instance UID + * @returns {String} WADO-URI URL + */ + }, { + key: "buildInstanceWadoURIUrl", + value: function buildInstanceWadoURIUrl(options) { + if (!('studyInstanceUID' in options)) { + throw new Error('Study Instance UID is required.'); + } + if (!('seriesInstanceUID' in options)) { + throw new Error('Series Instance UID is required.'); + } + if (!('sopInstanceUID' in options)) { + throw new Error('SOP Instance UID is required.'); + } + var contentType = options.contentType || MEDIATYPES.DICOM; + var transferSyntax = options.transferSyntax || '*'; + var params = []; + params.push('requestType=WADO'); + params.push("studyUID=".concat(options.studyInstanceUID)); + params.push("seriesUID=".concat(options.seriesInstanceUID)); + params.push("objectUID=".concat(options.sopInstanceUID)); + params.push("contentType=".concat(contentType)); + params.push("transferSyntax=".concat(transferSyntax)); + var paramString = params.join('&'); + return "".concat(this.wadoURL, "?").concat(paramString); + } + /** + * Retrieves metadata for a DICOM Instance. + * + * @param {Object} options object + * @param {String} options.studyInstanceUID - Study Instance UID + * @param {String} options.seriesInstanceUID - Series Instance UID + * @param {String} options.sopInstanceUID - SOP Instance UID + * @returns {Promise} metadata elements in DICOM JSON format + */ + }, { + key: "retrieveInstanceMetadata", + value: function retrieveInstanceMetadata(options) { + if (!('studyInstanceUID' in options)) { + throw new Error('Study Instance UID is required for retrieval of instance metadata'); + } + if (!('seriesInstanceUID' in options)) { + throw new Error('Series Instance UID is required for retrieval of instance metadata'); + } + if (!('sopInstanceUID' in options)) { + throw new Error('SOP Instance UID is required for retrieval of instance metadata'); + } + debugLog("retrieve metadata of instance ".concat(options.sopInstanceUID)); + var url = "".concat(this.wadoURL, "/studies/").concat(options.studyInstanceUID, "/series/").concat(options.seriesInstanceUID, "/instances/").concat(options.sopInstanceUID, "/metadata"); + var withCredentials = false; + if ('withCredentials' in options) { + if (options.withCredentials) { + withCredentials = options.withCredentials; + } + } + return this._httpGetApplicationJson(url, {}, false, withCredentials); + } + /** + * Retrieves frames for a DICOM Instance. + * @param {Object} options options object + * @param {String} options.studyInstanceUID - Study Instance UID + * @param {String} options.seriesInstanceUID - Series Instance UID + * @param {String} options.sopInstanceUID - SOP Instance UID + * @param {String} options.frameNumbers - One-based indices of Frame Items + * @returns {Array} frame items as byte arrays of the pixel data element + */ + }, { + key: "retrieveInstanceFrames", + value: function retrieveInstanceFrames(options) { + if (!('studyInstanceUID' in options)) { + throw new Error('Study Instance UID is required for retrieval of instance frames'); + } + if (!('seriesInstanceUID' in options)) { + throw new Error('Series Instance UID is required for retrieval of instance frames'); + } + if (!('sopInstanceUID' in options)) { + throw new Error('SOP Instance UID is required for retrieval of instance frames'); + } + if (!('frameNumbers' in options)) { + throw new Error('frame numbers are required for retrieval of instance frames'); + } + debugLog("retrieve frames ".concat(options.frameNumbers.toString(), " of instance ").concat(options.sopInstanceUID)); + var url = "".concat(this.wadoURL, "/studies/").concat(options.studyInstanceUID, "/series/").concat(options.seriesInstanceUID, "/instances/").concat(options.sopInstanceUID, "/frames/").concat(options.frameNumbers.toString()); + var mediaTypes = options.mediaTypes; + var withCredentials = false; + if ('withCredentials' in options) { + if (options.withCredentials) { + withCredentials = options.withCredentials; + } + } + var progressCallback = false; + if ('progressCallback' in options) { + progressCallback = options.progressCallback; + } + if (!mediaTypes) { + return this._httpGetMultipartApplicationOctetStream(url, false, false, false, progressCallback, withCredentials); + } + var sharedMediaTypes = DICOMwebClient._getSharedMediaTypes(mediaTypes); + if (sharedMediaTypes.length > 1) { + /** + * Enable request of frames that are stored either compressed + * (image/* media type) or uncompressed (application/octet-stream + * media type). + */ + var supportedMediaTypes = { + '1.2.840.10008.1.2.1': ['application/octet-stream'], + '1.2.840.10008.1.2.5': ['image/x-dicom-rle'], + '1.2.840.10008.1.2.4.50': ['image/jpeg'], + '1.2.840.10008.1.2.4.51': ['image/jpeg'], + '1.2.840.10008.1.2.4.57': ['image/jpeg'], + '1.2.840.10008.1.2.4.70': ['image/jpeg'], + '1.2.840.10008.1.2.4.80': ['image/x-jls', 'image/jls'], + '1.2.840.10008.1.2.4.81': ['image/x-jls', 'image/jls'], + '1.2.840.10008.1.2.4.90': ['image/jp2'], + '1.2.840.10008.1.2.4.91': ['image/jp2'], + '1.2.840.10008.1.2.4.92': ['image/jpx'], + '1.2.840.10008.1.2.4.93': ['image/jpx'], + '1.2.840.10008.1.2.4.201': ['image/jhc'], + '1.2.840.10008.1.2.4.202': ['image/jhc'] + }; + var headers = { + Accept: DICOMwebClient._buildMultipartAcceptHeaderFieldValue(mediaTypes, supportedMediaTypes) + }; + return this._httpGet(url, headers, 'arraybuffer', progressCallback, withCredentials); + } + var commonMediaType = DICOMwebClient._getCommonMediaType(mediaTypes); + if (commonMediaType.startsWith('application')) { + return this._httpGetMultipartApplicationOctetStream(url, mediaTypes, false, false, progressCallback, withCredentials); + } + if (commonMediaType.startsWith('image')) { + return this._httpGetMultipartImage(url, mediaTypes, false, false, false, progressCallback, withCredentials); + } + if (commonMediaType.startsWith('video')) { + return this._httpGetMultipartVideo(url, mediaTypes, false, false, false, progressCallback, withCredentials); + } + throw new Error("Media type ".concat(commonMediaType, " is not supported for retrieval of frames.")); + } + /** + * Element in mediaTypes parameter + * @typedef {Object} MediaType + * @param {String} [MediaType.mediaType] - ie 'image/jpeg', 'image/png'... + */ + /** + * Retrieves an individual, server-side rendered DICOM Instance. + * + * @param {Object} options + * @param {String} options.studyInstanceUID - Study Instance UID + * @param {String} options.seriesInstanceUID - Series Instance UID + * @param {String} options.sopInstanceUID - SOP Instance UID + * @param {MediaType[]} [options.mediaTypes] - Acceptable HTTP media types + * @param {Object} [options.queryParams] - HTTP query parameters + * @returns {Promise} Rendered DICOM Instance + */ + }, { + key: "retrieveInstanceRendered", + value: function retrieveInstanceRendered(options) { + if (!('studyInstanceUID' in options)) { + throw new Error('Study Instance UID is required for retrieval of rendered instance'); + } + if (!('seriesInstanceUID' in options)) { + throw new Error('Series Instance UID is required for retrieval of rendered instance'); + } + if (!('sopInstanceUID' in options)) { + throw new Error('SOP Instance UID is required for retrieval of rendered instance'); + } + var url = "".concat(this.wadoURL, "/studies/").concat(options.studyInstanceUID, "/series/").concat(options.seriesInstanceUID, "/instances/").concat(options.sopInstanceUID, "/rendered"); + var mediaTypes = options.mediaTypes, + queryParams = options.queryParams; + var headers = {}; + var withCredentials = false; + if ('withCredentials' in options) { + if (options.withCredentials) { + withCredentials = options.withCredentials; + } + } + var progressCallback = false; + if ('progressCallback' in options) { + progressCallback = options.progressCallback; + } + if (!mediaTypes) { + var responseType = 'arraybuffer'; + if (queryParams) { + url += DICOMwebClient._parseQueryParameters(queryParams); + } + return this._httpGet(url, headers, responseType, progressCallback, withCredentials); + } + var commonMediaType = DICOMwebClient._getCommonMediaType(mediaTypes); + if (commonMediaType.startsWith('image')) { + return this._httpGetImage(url, mediaTypes, queryParams, progressCallback, withCredentials); + } + if (commonMediaType.startsWith('video')) { + return this._httpGetVideo(url, mediaTypes, queryParams, progressCallback, withCredentials); + } + if (commonMediaType.startsWith('text')) { + return this._httpGetText(url, mediaTypes, queryParams, progressCallback, withCredentials); + } + if (commonMediaType === MEDIATYPES.PDF) { + return this._httpGetApplicationPdf(url, queryParams, progressCallback, withCredentials); + } + throw new Error("Media type ".concat(commonMediaType, " is not supported ") + 'for retrieval of rendered instance.'); + } + /** + * Retrieves a thumbnail of an DICOM Instance. + * + * @param {Object} options + * @param {String} options.studyInstanceUID - Study Instance UID + * @param {String} options.seriesInstanceUID - Series Instance UID + * @param {String} options.sopInstanceUID - SOP Instance UID + * @param {MediaType[]} [options.mediaTypes] - Acceptable HTTP media types + * @param {Object} [options.queryParams] - HTTP query parameters + * @returns {ArrayBuffer} Thumbnail + */ + }, { + key: "retrieveInstanceThumbnail", + value: function retrieveInstanceThumbnail(options) { + if (!('studyInstanceUID' in options)) { + throw new Error('Study Instance UID is required for retrieval of rendered instance'); + } + if (!('seriesInstanceUID' in options)) { + throw new Error('Series Instance UID is required for retrieval of rendered instance'); + } + if (!('sopInstanceUID' in options)) { + throw new Error('SOP Instance UID is required for retrieval of rendered instance'); + } + var url = "".concat(this.wadoURL, "/studies/").concat(options.studyInstanceUID, "/series/").concat(options.seriesInstanceUID, "/instances/").concat(options.sopInstanceUID, "/thumbnail"); + var mediaTypes = options.mediaTypes, + queryParams = options.queryParams; + var headers = {}; + var withCredentials = false; + if ('withCredentials' in options) { + if (options.withCredentials) { + withCredentials = options.withCredentials; + } + } + var progressCallback = false; + if ('progressCallback' in options) { + progressCallback = options.progressCallback; + } + if (!mediaTypes) { + var responseType = 'arraybuffer'; + if (queryParams) { + url += DICOMwebClient._parseQueryParameters(queryParams); + } + return this._httpGet(url, headers, responseType, progressCallback, withCredentials); + } + var commonMediaType = DICOMwebClient._getCommonMediaType(mediaTypes); + if (commonMediaType.startsWith('image')) { + return this._httpGetImage(url, mediaTypes, queryParams, progressCallback, withCredentials); + } + throw new Error("Media type ".concat(commonMediaType, " is not supported ") + 'for retrieval of rendered instance.'); + } + /** + * Retrieves rendered frames for a DICOM Instance. + * + * @param {Object} options + * @param {String} options.studyInstanceUID - Study Instance UID + * @param {String} options.seriesInstanceUID - Series Instance UID + * @param {String} options.sopInstanceUID - SOP Instance UID + * @param {String} options.frameNumbers - One-based indices of Frame Items + * @param {MediaType[]} [options.mediaTypes] - Acceptable HTTP media types + * @param {Object} [options.queryParams] - HTTP query parameters + * @returns {ArrayBuffer[]} Rendered Frame Items as byte arrays + */ + }, { + key: "retrieveInstanceFramesRendered", + value: function retrieveInstanceFramesRendered(options) { + if (!('studyInstanceUID' in options)) { + throw new Error('Study Instance UID is required for retrieval of rendered instance frames'); + } + if (!('seriesInstanceUID' in options)) { + throw new Error('Series Instance UID is required for retrieval of rendered instance frames'); + } + if (!('sopInstanceUID' in options)) { + throw new Error('SOP Instance UID is required for retrieval of rendered instance frames'); + } + if (!('frameNumbers' in options)) { + throw new Error('frame numbers are required for retrieval of rendered instance frames'); + } + debugLog("retrieve rendered frames ".concat(options.frameNumbers.toString(), " of instance ").concat(options.sopInstanceUID)); + var url = "".concat(this.wadoURL, "/studies/").concat(options.studyInstanceUID, "/series/").concat(options.seriesInstanceUID, "/instances/").concat(options.sopInstanceUID, "/frames/").concat(options.frameNumbers.toString(), "/rendered"); + var mediaTypes = options.mediaTypes, + queryParams = options.queryParams; + var headers = {}; + var withCredentials = false; + if ('withCredentials' in options) { + if (options.withCredentials) { + withCredentials = options.withCredentials; + } + } + var progressCallback = false; + if ('progressCallback' in options) { + progressCallback = options.progressCallback; + } + if (!mediaTypes) { + var responseType = 'arraybuffer'; + if (queryParams) { + url += DICOMwebClient._parseQueryParameters(queryParams); + } + return this._httpGet(url, headers, responseType, false, withCredentials); + } + var commonMediaType = DICOMwebClient._getCommonMediaType(mediaTypes); + if (commonMediaType.startsWith('image')) { + return this._httpGetImage(url, mediaTypes, queryParams, progressCallback, withCredentials); + } + if (commonMediaType.startsWith('video')) { + return this._httpGetVideo(url, mediaTypes, queryParams, progressCallback, withCredentials); + } + throw new Error("Media type ".concat(commonMediaType, " is not supported ") + 'for retrieval of rendered frame.'); + } + /** + * Retrieves thumbnail of frames for a DICOM Instance. + * + * @param {Object} options + * @param {String} options.studyInstanceUID - Study Instance UID + * @param {String} options.seriesInstanceUID - Series Instance UID + * @param {String} options.sopInstanceUID - SOP Instance UID + * @param {String} options.frameNumbers - One-based indices of Frame Items + * @param {Object} [options.queryParams] - HTTP query parameters + * @returns {ArrayBuffer[]} Rendered Frame Items as byte arrays + */ + }, { + key: "retrieveInstanceFramesThumbnail", + value: function retrieveInstanceFramesThumbnail(options) { + if (!('studyInstanceUID' in options)) { + throw new Error('Study Instance UID is required for retrieval of rendered instance frames'); + } + if (!('seriesInstanceUID' in options)) { + throw new Error('Series Instance UID is required for retrieval of rendered instance frames'); + } + if (!('sopInstanceUID' in options)) { + throw new Error('SOP Instance UID is required for retrieval of rendered instance frames'); + } + if (!('frameNumbers' in options)) { + throw new Error('frame numbers are required for retrieval of rendered instance frames'); + } + console.debug("retrieve rendered frames ".concat(options.frameNumbers.toString(), " of instance ").concat(options.sopInstanceUID)); + var url = "".concat(this.wadoURL, "/studies/").concat(options.studyInstanceUID, "/series/").concat(options.seriesInstanceUID, "/instances/").concat(options.sopInstanceUID, "/frames/").concat(options.frameNumbers.toString(), "/thumbnail"); + var mediaTypes = options.mediaTypes, + queryParams = options.queryParams; + var headers = {}; + var withCredentials = false; + if ('withCredentials' in options) { + if (options.withCredentials) { + withCredentials = options.withCredentials; + } + } + var progressCallback = false; + if ('progressCallback' in options) { + progressCallback = options.progressCallback; + } + if (!mediaTypes) { + var responseType = 'arraybuffer'; + if (queryParams) { + url += DICOMwebClient._parseQueryParameters(queryParams); + } + return this._httpGet(url, headers, responseType, progressCallback, withCredentials); + } + var commonMediaType = DICOMwebClient._getCommonMediaType(mediaTypes); + if (commonMediaType.startsWith('image')) { + return this._httpGetImage(url, mediaTypes, queryParams, progressCallback, withCredentials); + } + throw new Error("Media type ".concat(commonMediaType, " is not supported ") + 'for retrieval of rendered frame.'); + } + /** + * Retrieves a DICOM Instance. + * + * @param {Object} options + * @param {String} options.studyInstanceUID - Study Instance UID + * @param {String} options.seriesInstanceUID - Series Instance UID + * @param {String} options.sopInstanceUID - SOP Instance UID + * @returns {Promise} DICOM Part 10 file as Arraybuffer + */ + }, { + key: "retrieveInstance", + value: function retrieveInstance(options) { + if (!('studyInstanceUID' in options)) { + throw new Error('Study Instance UID is required'); + } + if (!('seriesInstanceUID' in options)) { + throw new Error('Series Instance UID is required'); + } + if (!('sopInstanceUID' in options)) { + throw new Error('SOP Instance UID is required'); + } + var url = "".concat(this.wadoURL, "/studies/").concat(options.studyInstanceUID, "/series/").concat(options.seriesInstanceUID, "/instances/").concat(options.sopInstanceUID); + var mediaTypes = options.mediaTypes; + var _options$withCredenti = options.withCredentials, + withCredentials = _options$withCredenti === void 0 ? false : _options$withCredenti; + var _options$progressCall = options.progressCallback, + progressCallback = _options$progressCall === void 0 ? false : _options$progressCall; + if (!mediaTypes) { + return this._httpGetMultipartApplicationDicom(url, false, false, progressCallback, withCredentials).then(getFirstResult); + } + var commonMediaType = DICOMwebClient._getCommonMediaType(mediaTypes); + if (commonMediaType === MEDIATYPES.DICOM) { + return this._httpGetMultipartApplicationDicom(url, mediaTypes, false, progressCallback, withCredentials).then(getFirstResult); + } + throw new Error("Media type ".concat(commonMediaType, " is not supported for retrieval of instance.")); + } + /** + * Retrieves all DICOM Instances of a Series. + * + * @param {Object} options + * @param {String} options.studyInstanceUID - Study Instance UID + * @param {String} options.seriesInstanceUID - Series Instance UID + * @param {Function} options.progressCallback + * @returns {Promise} DICOM Instances + */ + }, { + key: "retrieveSeries", + value: function retrieveSeries(options) { + if (!('studyInstanceUID' in options)) { + throw new Error('Study Instance UID is required'); + } + if (!('seriesInstanceUID' in options)) { + throw new Error('Series Instance UID is required'); + } + var url = "".concat(this.wadoURL, "/studies/").concat(options.studyInstanceUID, "/series/").concat(options.seriesInstanceUID); + var mediaTypes = options.mediaTypes; + var withCredentials = false; + if ('withCredentials' in options) { + if (options.withCredentials) { + withCredentials = options.withCredentials; + } + } + var progressCallback = false; + if ('progressCallback' in options) { + progressCallback = options.progressCallback; + } + if (!mediaTypes) { + return this._httpGetMultipartApplicationDicom(url, false, false, progressCallback, withCredentials); + } + var commonMediaType = DICOMwebClient._getCommonMediaType(mediaTypes); + if (commonMediaType === MEDIATYPES.DICOM) { + return this._httpGetMultipartApplicationDicom(url, mediaTypes, false, progressCallback, withCredentials); + } + throw new Error("Media type ".concat(commonMediaType, " is not supported for retrieval of series.")); + } + /** + * Retrieves all DICOM Instances of a Study. + * + * @param {Object} options + * @param {String} options.studyInstanceUID - Study Instance UID + * @returns {ArrayBuffer[]} DICOM Instances + */ + }, { + key: "retrieveStudy", + value: function retrieveStudy(options) { + if (!('studyInstanceUID' in options)) { + throw new Error('Study Instance UID is required'); + } + var url = "".concat(this.wadoURL, "/studies/").concat(options.studyInstanceUID); + var mediaTypes = options.mediaTypes; + var _options$withCredenti2 = options.withCredentials, + withCredentials = _options$withCredenti2 === void 0 ? false : _options$withCredenti2; + var _options$progressCall2 = options.progressCallback, + progressCallback = _options$progressCall2 === void 0 ? false : _options$progressCall2; + if (!mediaTypes) { + return this._httpGetMultipartApplicationDicom(url, false, false, progressCallback, withCredentials); + } + var commonMediaType = DICOMwebClient._getCommonMediaType(mediaTypes); + if (commonMediaType === MEDIATYPES.DICOM) { + return this._httpGetMultipartApplicationDicom(url, mediaTypes, false, progressCallback, withCredentials); + } + throw new Error("Media type ".concat(commonMediaType, " is not supported for retrieval of study.")); + } + /** + * Retrieves and parses BulkData from a BulkDataURI location. + * Decodes the multipart encoded data and returns the resulting data + * as an ArrayBuffer. + * + * See http://dicom.nema.org/medical/dicom/current/output/chtml/part18/sect_6.5.5.html + * + * @param {Object} options + * @param {string} options.BulkDataURI to retrieve + * @param {Array} options.mediaTypes to use to fetch the URI + * @param {string} options.byteRange to request a sub-range (only valid on single part) + * @returns {Promise} Bulkdata parts + */ + }, { + key: "retrieveBulkData", + value: function retrieveBulkData(options) { + if (!('BulkDataURI' in options)) { + throw new Error('BulkDataURI is required.'); + } + var url = options.BulkDataURI; + var mediaTypes = options.mediaTypes, + byteRange = options.byteRange; + var _options$withCredenti3 = options.withCredentials, + withCredentials = _options$withCredenti3 === void 0 ? false : _options$withCredenti3; + var _options$progressCall3 = options.progressCallback, + progressCallback = _options$progressCall3 === void 0 ? false : _options$progressCall3; + if (this.singlepart.indexOf('bulkdata') !== -1) { + return this._httpGet(url, options.headers, 'arraybuffer', null, withCredentials); + } + if (mediaTypes) { + try { + var commonMediaType = DICOMwebClient._getCommonMediaType(mediaTypes); + if (commonMediaType === 'image/') { + return this._httpGetMultipartImage(url, mediaTypes, byteRange, false, false, progressCallback, withCredentials); + } + } catch (e) { + // No-op - this happens sometimes if trying to fetch the specific desired type but want to fallback to octet-stream + } + } + + // Just use the media types provided + return this._httpGetMultipartApplicationOctetStream(url, mediaTypes, byteRange, false, progressCallback, withCredentials); + } + /** + * Stores DICOM Instances. + * + * @param {Object} options + * @param {ArrayBuffer[]} options.datasets - DICOM Instances in PS3.10 format + * @param {String} [options.studyInstanceUID] - Study Instance UID + * @param {XMLHttpRequest} [options.request] - if specified, the request to use, otherwise one will be created; useful for adding custom upload and abort listeners/objects + * @returns {Promise} Response message + */ + }, { + key: "storeInstances", + value: function storeInstances(options) { + if (!('datasets' in options)) { + throw new Error('datasets are required for storing'); + } + var url = "".concat(this.stowURL, "/studies"); + if ('studyInstanceUID' in options) { + url += "/".concat(options.studyInstanceUID); + } + var _multipartEncode = multipartEncode(options.datasets), + data = _multipartEncode.data, + boundary = _multipartEncode.boundary; + var headers = { + 'Content-Type': "multipart/related; type=\"application/dicom\"; boundary=\"".concat(boundary, "\"") + }; + var _options$withCredenti4 = options.withCredentials, + withCredentials = _options$withCredenti4 === void 0 ? false : _options$withCredenti4; + return this._httpPost(url, headers, data, options.progressCallback, withCredentials, options.request); + } + }], [{ + key: "_parseQueryParameters", + value: function _parseQueryParameters() { + var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + var queryString = '?'; + Object.keys(params).forEach(function (key, index) { + if (index !== 0) { + queryString += '&'; + } + queryString += "".concat(key, "=").concat(encodeURIComponent(params[key])); + }); + return queryString; + } + }, { + key: "_assertMediaTypeIsValid", + value: function _assertMediaTypeIsValid(mediaType) { + if (!mediaType) { + throw new Error("Not a valid media type: ".concat(mediaType)); + } + var sepIndex = mediaType.indexOf('/'); + if (sepIndex === -1) { + throw new Error("Not a valid media type: ".concat(mediaType)); + } + var mediaTypeType = mediaType.slice(0, sepIndex); + var types = ['application', 'image', 'text', 'video']; + if (!types.includes(mediaTypeType)) { + throw new Error("Not a valid media type: ".concat(mediaType)); + } + if (mediaType.slice(sepIndex + 1).includes('/')) { + throw new Error("Not a valid media type: ".concat(mediaType)); + } + } + }, { + key: "_parseMediaType", + value: function _parseMediaType(mediaType) { + DICOMwebClient._assertMediaTypeIsValid(mediaType); + return mediaType.split('/'); + } + /** + * Builds an accept header field value for HTTP GET request messages. + * + * @param {Object[]} mediaTypes - Acceptable media types + * @param {Object[]} supportedMediaTypes - Supported media types + * @return {*} + * @private + */ + }, { + key: "_buildAcceptHeaderFieldValue", + value: function _buildAcceptHeaderFieldValue(mediaTypes, supportedMediaTypes) { + if (!Array.isArray(mediaTypes)) { + throw new Error('Acceptable media types must be provided as an Array'); + } + var fieldValueParts = mediaTypes.map(function (item) { + var mediaType = item.mediaType; + DICOMwebClient._assertMediaTypeIsValid(mediaType); + if (!supportedMediaTypes.includes(mediaType)) { + throw new Error("Media type ".concat(mediaType, " is not supported for requested resource")); + } + return mediaType; + }); + return fieldValueParts.join(', '); + } + /** + * Builds an accept header field value for HTTP GET multipart request + * messages. Will throw an exception if no media types are found which are acceptable, + * but will only log a verbose level message when types are specified which are + * not acceptable. This allows requesting several types with having to know + * whether they are all acceptable or not. + * + * @param {Object[]} mediaTypes - Acceptable media types + * @param {Object[]} supportedMediaTypes - Supported media types + * @private + */ + }, { + key: "_buildMultipartAcceptHeaderFieldValue", + value: function _buildMultipartAcceptHeaderFieldValue(mediaTypes, supportedMediaTypes) { + var _this2 = this; + if (!Array.isArray(mediaTypes)) { + throw new Error('Acceptable media types must be provided as an Array'); + } + if (!Array.isArray(supportedMediaTypes) && !isObject(supportedMediaTypes)) { + throw new Error('Supported media types must be provided as an Array or an Object'); + } + var fieldValueParts = []; + mediaTypes.forEach(function (item) { + var transferSyntaxUID = item.transferSyntaxUID, + mediaType = item.mediaType; + DICOMwebClient._assertMediaTypeIsValid(mediaType); + var fieldValue = "multipart/related; type=\"".concat(mediaType, "\""); + if (isObject(supportedMediaTypes)) { + // SupportedMediaTypes is a lookup table that maps Transfer Syntax UID + // to one or more Media Types + if (!Object.values(supportedMediaTypes).flat(1).includes(mediaType)) { + if (!mediaType.endsWith('/*') || !mediaType.endsWith('/')) { + debugLog("Media type ".concat(mediaType, " is not supported for requested resource")); + return; + } + } + if (transferSyntaxUID) { + if (transferSyntaxUID !== '*') { + if (!Object.keys(supportedMediaTypes).includes(transferSyntaxUID)) { + throw new Error("Transfer syntax ".concat(transferSyntaxUID, " is not supported for requested resource")); + } + var expectedMediaTypes = supportedMediaTypes[transferSyntaxUID]; + if (!expectedMediaTypes.includes(mediaType)) { + var actualType = DICOMwebClient._parseMediaType(mediaType)[0]; + expectedMediaTypes.map(function (expectedMediaType) { + var expectedType = DICOMwebClient._parseMediaType(expectedMediaType)[0]; + var haveSameType = actualType === expectedType; + if (haveSameType && (mediaType.endsWith('/*') || mediaType.endsWith('/'))) { + return; + } + throw new Error("Transfer syntax ".concat(transferSyntaxUID, " is not supported for requested resource")); + }); + } + } + fieldValue += "; transfer-syntax=".concat(transferSyntaxUID); + } + } else if (Array.isArray(supportedMediaTypes) && !supportedMediaTypes.includes(mediaType)) { + if (_this2.verbose) { + console.warn("Media type ".concat(mediaType, " is not supported for requested resource")); + } + return; + } + fieldValueParts.push(fieldValue); + }); + if (!fieldValueParts.length) { + throw new Error("No acceptable media types found among ".concat(JSON.stringify(mediaTypes))); + } + return fieldValueParts.join(', '); + } + /** + * Builds a range header field value for HTTP GET request messages. + * + * @param {Array} byteRange - Start and end of byte range + * @returns {String} Range header field value + * @private + */ + }, { + key: "_buildRangeHeaderFieldValue", + value: function _buildRangeHeaderFieldValue() { + var byteRange = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; + if (byteRange.length === 1) { + return "bytes=".concat(byteRange[0], "-"); + } + if (byteRange.length === 2) { + return "bytes=".concat(byteRange[0], "-").concat(byteRange[1]); + } + return 'bytes=0-'; + } + /** + * Gets types that are shared among acceptable media types. + * + * @param {Object[]} mediaTypes - Acceptable media types and optionally the UIDs of the + corresponding transfer syntaxes + * @private + * @returns {String[]} Types that are shared among acceptable media types + */ + }, { + key: "_getSharedMediaTypes", + value: function _getSharedMediaTypes(mediaTypes) { + var types = new Set(); + if (!mediaTypes || !mediaTypes.length) { + return types; + } + mediaTypes.forEach(function (item) { + var mediaType = item.mediaType; + var type = DICOMwebClient._parseMediaType(mediaType)[0]; + types.add("".concat(type, "/")); + }); + return Array.from(types); + } + /** + * Gets common base type of acceptable media types and asserts that only + one type is specified. For example, ``("image/jpeg", "image/jp2")`` + will pass, but ``("image/jpeg", "video/mpeg2")`` will raise an + exception. + * + * @param {Object[]} mediaTypes - Acceptable media types and optionally the UIDs of the + corresponding transfer syntaxes + * @private + * @returns {String[]} Common media type, eg `image/` for the above example. + */ + }, { + key: "_getCommonMediaType", + value: function _getCommonMediaType(mediaTypes) { + if (!mediaTypes || !mediaTypes.length) { + throw new Error('No acceptable media types provided'); + } + var sharedMediaTypes = DICOMwebClient._getSharedMediaTypes(mediaTypes); + if (sharedMediaTypes.length === 0) { + throw new Error('No common acceptable media type could be identified.'); + } else if (sharedMediaTypes.length > 1) { + throw new Error('Acceptable media types must have the same type.'); + } + return sharedMediaTypes[0]; + } + }]); + return DICOMwebClient; + }(); + + function findSubstring(str, before, after) { + var beforeIndex = str.lastIndexOf(before) + before.length; + if (beforeIndex < before.length) { + return null; + } + if (after !== undefined) { + var afterIndex = str.lastIndexOf(after); + if (afterIndex < 0) { + return null; + } + return str.substring(beforeIndex, afterIndex); + } + return str.substring(beforeIndex); + } + function getStudyInstanceUIDFromUri(uri) { + var uid = findSubstring(uri, 'studies/', '/series'); + if (!uid) { + uid = findSubstring(uri, 'studies/'); + } + if (!uid) { + console.debug("Study Instance UID could not be dertermined from URI \"".concat(uri, "\"")); + } + return uid; + } + function getSeriesInstanceUIDFromUri(uri) { + var uid = findSubstring(uri, 'series/', '/instances'); + if (!uid) { + uid = findSubstring(uri, 'series/'); + } + if (!uid) { + console.debug("Series Instance UID could not be dertermined from URI \"".concat(uri, "\"")); + } + return uid; + } + function getSOPInstanceUIDFromUri(uri) { + var uid = findSubstring(uri, '/instances/', '/frames'); + if (!uid) { + uid = findSubstring(uri, '/instances/', '/metadata'); + } + if (!uid) { + uid = findSubstring(uri, '/instances/'); + } + if (!uid) { + console.debug("SOP Instance UID could not be dertermined from URI\"".concat(uri, "\"")); + } + return uid; + } + function getFrameNumbersFromUri(uri) { + var numbers = findSubstring(uri, '/frames/', '/rendered'); + if (!numbers) { + numbers = findSubstring(uri, '/frames/'); + } + if (numbers === undefined) { + console.debug("Frame Numbers could not be dertermined from URI\"".concat(uri, "\"")); + } + return numbers.split(','); + } + + var version = '0.5.2'; + + var api = { + DICOMwebClient: DICOMwebClient + }; + var utils = { + getStudyInstanceUIDFromUri: getStudyInstanceUIDFromUri, + getSeriesInstanceUIDFromUri: getSeriesInstanceUIDFromUri, + getSOPInstanceUIDFromUri: getSOPInstanceUIDFromUri, + getFrameNumbersFromUri: getFrameNumbersFromUri + }; + + exports.api = api; + exports.utils = utils; + exports.version = version; + + Object.defineProperty(exports, '__esModule', { value: true }); + +}))); +//# sourceMappingURL=dicomweb-client.js.map diff --git a/adit/upload/static/vendor/dicomweb-client.js.map b/adit/upload/static/vendor/dicomweb-client.js.map new file mode 100644 index 00000000..e5ae51ff --- /dev/null +++ b/adit/upload/static/vendor/dicomweb-client.js.map @@ -0,0 +1 @@ +{"version":3,"file":"dicomweb-client.js","sources":["../src/message.js","../src/api.js","../src/utils.js","../src/version.js","../src/dicomweb-client.js"],"sourcesContent":["/**\n * Converts a Uint8Array to a String.\n * @param {Uint8Array} array that should be converted\n * @param {Number} offset array offset in case only subset of array items should\n be extracted (default: 0)\n * @param {Number} limit maximum number of array items that should be extracted\n (defaults to length of array)\n * @returns {String}\n */\nfunction uint8ArrayToString(arr, offset = 0, limit) {\n const itemLimit = limit || arr.length - offset;\n let str = '';\n for (let i = offset; i < offset + itemLimit; i++) {\n str += String.fromCharCode(arr[i]);\n }\n return str;\n}\n\n/**\n * Converts a String to a Uint8Array.\n * @param {String} str string that should be converted\n * @returns {Uint8Array}\n */\nfunction stringToUint8Array(str) {\n const arr = new Uint8Array(str.length);\n for (let i = 0, j = str.length; i < j; i++) {\n arr[i] = str.charCodeAt(i);\n }\n return arr;\n}\n\n/**\n * Identifies the boundary in a multipart/related message header.\n * @param {String} header message header\n * @returns {String} boundary\n */\nfunction identifyBoundary(header) {\n const parts = header.split('\\r\\n');\n\n for (let i = 0; i < parts.length; i++) {\n if (parts[i].substr(0, 2) === '--') {\n return parts[i];\n }\n }\n\n return null;\n}\n\n/**\n * Checks whether a given token is contained by a message at a given offset.\n * @param {Uint8Array} message message content\n * @param {Uint8Array} token substring that should be present\n * @param {Number} offset offset in message content from where search should start\n * @returns {Boolean} whether message contains token at offset\n */\nfunction containsToken(message, token, offset = 0) {\n if (offset + token.length > message.length) {\n return false;\n }\n\n let index = offset;\n for (let i = 0; i < token.length; i++) {\n if (token[i] !== message[index]) {\n return false;\n }\n\n index += 1;\n }\n return true;\n}\n\n/**\n * Finds a given token in a message at a given offset.\n * @param {Uint8Array} message message content\n * @param {Uint8Array} token substring that should be found\n * @param {String} offset message body offset from where search should start\n * @returns {Boolean} whether message has a part at given offset or not\n */\nfunction findToken(message, token, offset = 0, maxSearchLength) {\n let searchLength = message.length;\n if (maxSearchLength) {\n searchLength = Math.min(offset + maxSearchLength, message.length);\n }\n\n for (let i = offset; i < searchLength; i++) {\n // If the first value of the message matches\n // the first value of the token, check if\n // this is the full token.\n if (message[i] === token[0]) {\n if (containsToken(message, token, i)) {\n return i;\n }\n }\n }\n\n return -1;\n}\n\n/**\n * Create a random GUID\n *\n * @return {string}\n */\nfunction guid() {\n function s4() {\n return Math.floor((1 + Math.random()) * 0x10000)\n .toString(16)\n .substring(1);\n }\n return `${s4() + s4()}-${s4()}-${s4()}-${s4()}-${s4()}${s4()}${s4()}`;\n}\n\n/**\n * @typedef {Object} MultipartEncodedData\n * @property {ArrayBuffer} data The encoded Multipart Data\n * @property {String} boundary The boundary used to divide pieces of the encoded data\n */\n\n/**\n * Encode one or more DICOM datasets into a single body so it can be\n * sent using the Multipart Content-Type.\n *\n * @param {ArrayBuffer[]} datasets Array containing each file to be encoded in the\n multipart body, passed as ArrayBuffers.\n * @param {String} [boundary] Optional string to define a boundary between each part\n of the multipart body. If this is not specified, a random\n GUID will be generated.\n * @return {MultipartEncodedData} The Multipart encoded data returned as an Object. This\n contains both the data itself, and the boundary string\n used to divide it.\n */\nfunction multipartEncode(\n datasets,\n boundary = guid(),\n contentType = 'application/dicom',\n) {\n const contentTypeString = `Content-Type: ${contentType}`;\n const header = `\\r\\n--${boundary}\\r\\n${contentTypeString}\\r\\n\\r\\n`;\n const footer = `\\r\\n--${boundary}--`;\n const headerArray = stringToUint8Array(header);\n const footerArray = stringToUint8Array(footer);\n const headerLength = headerArray.length;\n const footerLength = footerArray.length;\n\n let length = 0;\n\n // Calculate the total length for the final array\n const contentArrays = datasets.map(datasetBuffer => {\n const contentArray = new Uint8Array(datasetBuffer);\n const contentLength = contentArray.length;\n\n length += headerLength + contentLength + footerLength;\n\n return contentArray;\n });\n\n // Allocate the array\n const multipartArray = new Uint8Array(length);\n\n // Set the initial header\n multipartArray.set(headerArray, 0);\n\n // Write each dataset into the multipart array\n let position = 0;\n contentArrays.forEach(contentArray => {\n multipartArray.set(headerArray, position);\n multipartArray.set(contentArray, position + headerLength);\n\n position += headerLength + contentArray.length;\n });\n\n multipartArray.set(footerArray, position);\n\n return {\n data: multipartArray.buffer,\n boundary,\n };\n}\n\n/**\n * Decode a Multipart encoded ArrayBuffer and return the components as an Array.\n *\n * @param {ArrayBuffer} response Data encoded as a 'multipart/related' message\n * @returns {Array} The content\n */\nfunction multipartDecode(response) {\n // Use the raw data if it is provided in an appropriate format\n const message = ArrayBuffer.isView(response) ? response : new Uint8Array(response);\n\n /* Set a maximum length to search for the header boundaries, otherwise\n findToken can run for a long time\n */\n const maxSearchLength = 1000;\n\n // First look for the multipart mime header\n const separator = stringToUint8Array('\\r\\n\\r\\n');\n const headerIndex = findToken(message, separator, 0, maxSearchLength);\n if (headerIndex === -1) {\n throw new Error('Response message has no multipart mime header');\n }\n\n const header = uint8ArrayToString(message, 0, headerIndex);\n const boundaryString = identifyBoundary(header);\n if (!boundaryString) {\n throw new Error('Header of response message does not specify boundary');\n }\n\n const boundary = stringToUint8Array(boundaryString);\n const boundaryLength = boundary.length;\n const components = [];\n\n let offset = boundaryLength;\n\n // Loop until we cannot find any more boundaries\n let boundaryIndex;\n\n while (boundaryIndex !== -1) {\n // Search for the next boundary in the message, starting\n // from the current offset position\n boundaryIndex = findToken(message, boundary, offset);\n\n // If no further boundaries are found, stop here.\n if (boundaryIndex === -1) {\n break;\n }\n\n const headerTokenIndex = findToken(\n message,\n separator,\n offset,\n maxSearchLength,\n );\n if (headerTokenIndex === -1) {\n throw new Error('Response message part has no mime header');\n }\n offset = headerTokenIndex + separator.length;\n\n // Extract data from response message, excluding \"\\r\\n\"\n const spacingLength = 2;\n const data = response.slice(offset, boundaryIndex - spacingLength);\n\n // Add the data to the array of results\n components.push(data);\n\n // Move the offset to the end of the current section,\n // plus the identified boundary\n offset = boundaryIndex + boundaryLength;\n }\n\n return components;\n}\n\nexport {\n containsToken,\n findToken,\n identifyBoundary,\n uint8ArrayToString,\n stringToUint8Array,\n multipartEncode,\n multipartDecode,\n guid,\n};\n","import { multipartEncode, multipartDecode } from './message.js';\n\nfunction isObject(obj) {\n return typeof obj === 'object' && obj !== null;\n}\n\nfunction isEmptyObject(obj) {\n return Object.keys(obj).length === 0 && obj.constructor === Object;\n}\n\nfunction areValidRequestHooks(requestHooks) {\n const isValid =\n Array.isArray(requestHooks) &&\n requestHooks.every(\n requestHook =>\n typeof requestHook === 'function' && requestHook.length === 2,\n );\n\n if (!isValid) {\n console.warn(\n 'Request hooks should have the following signature: ' +\n 'function requestHook(request, metadata) { return request; }',\n );\n }\n\n return isValid;\n}\n\nconst getFirstResult = result => result[0];\n\nconst MEDIATYPES = {\n DICOM: 'application/dicom',\n DICOM_JSON: 'application/dicom+json',\n OCTET_STREAM: 'application/octet-stream',\n PDF: 'application/pdf',\n JPEG: 'image/jpeg',\n PNG: 'image/png',\n};\n\n/**\n * debugLog is a function that can be called with console.log arguments, and will\n * be conditionally displayed, only when debug logging is enabled.\n */\nlet debugLog = () => {};\n\n/**\n * @typedef { import(\"../types/types\").InstanceMetadata } InstanceMetadata\n */\n\n/**\n * A callback with the request instance and metadata information\n * of the currently request being executed that should necessarily\n * return the given request optionally modified.\n * @typedef {function} RequestHook\n * @param {XMLHttpRequest} request - The original XMLHttpRequest instance.\n * @param {object} metadata - The metadata used by the request.\n */\n\n/**\n * Class for interacting with DICOMweb RESTful services.\n */\nclass DICOMwebClient {\n /**\n * @constructor\n * @param {Object} options\n * @param {String} options.url - URL of the DICOMweb RESTful Service endpoint\n * @param {String=} options.qidoURLPrefix - URL path prefix for QIDO-RS\n * @param {String=} options.wadoURLPrefix - URL path prefix for WADO-RS\n * @param {String=} options.stowURLPrefix - URL path prefix for STOW-RS\n * @param {String=} options.username - Username\n * @param {String=} options.password - Password\n * @param {Object=} options.headers - HTTP headers\n * @param {Array.=} options.requestHooks - Request hooks.\n * @param {Object=} options.verbose - print to console request warnings and errors, default true\n * @param {Object=} options.debug - print to the console debug level information/status updates.\n * @param {boolean|String} options.singlepart - retrieve singlepart for the named types.\n * The available types are: bulkdata, video, image. true means all.\n */\n constructor(options) {\n this.baseURL = options.url;\n if (!this.baseURL) {\n console.error('no DICOMweb base url provided - calls that require a URL will fail');\n }\n\n if ('username' in options) {\n this.username = options.username;\n if (!('password' in options)) {\n console.error(\n 'no password provided to authenticate with DICOMweb service',\n );\n }\n this.password = options.password;\n }\n\n if ('qidoURLPrefix' in options) {\n debugLog(`use URL prefix for QIDO-RS: ${options.qidoURLPrefix}`);\n this.qidoURL = `${this.baseURL}/${options.qidoURLPrefix}`;\n } else {\n this.qidoURL = this.baseURL;\n }\n\n if ('wadoURLPrefix' in options) {\n debugLog(`use URL prefix for WADO-RS: ${options.wadoURLPrefix}`);\n this.wadoURL = `${this.baseURL}/${options.wadoURLPrefix}`;\n } else {\n this.wadoURL = this.baseURL;\n }\n\n if ('stowURLPrefix' in options) {\n debugLog(`use URL prefix for STOW-RS: ${options.stowURLPrefix}`);\n this.stowURL = `${this.baseURL}/${options.stowURLPrefix}`;\n } else {\n this.stowURL = this.baseURL;\n }\n\n if (options.singlepart) {\n debugLog('use singlepart', options.singlepart);\n this.singlepart = options.singlepart === true ? 'bulkdata,video,image' : options.singlepart;\n } else {\n this.singlepart = '';\n }\n\n if ('requestHooks' in options) {\n this.requestHooks = options.requestHooks;\n }\n\n // Headers to pass to requests.\n this.headers = options.headers || {};\n\n // Optional error interceptor callback to handle any failed request.\n this.errorInterceptor = options.errorInterceptor || (() => undefined);\n\n // Verbose - print to console request warnings and errors, default true\n this.verbose = options.verbose !== false;\n\n this.setDebug(options.debug);\n \n\n }\n\n /**\n * Allows setting the debug log information. \n * Note this is different from verbose in that verbose is whether to include warning/error information, defaulting to true\n * \n * @param {boolean} debugLevel \n * @param {function} debugLogFunction to call with the debug output arguments. \n */\n setDebug(debugLevel = false, debugLogFunction = null) {\n this.debugLevel = !!debugLevel;\n debugLog = debugLogFunction || debugLevel ? console.log : () => {};\n }\n\n /**\n * Gets debug flag\n * \n * @returns true if debug logging is enabled\n */\n getDebug() {\n return this.debugLevel;\n }\n \n /**\n * Sets verbose flag.\n *\n * @param {Boolean} verbose\n */\n setVerbose(verbose) {\n this.verbose = verbose;\n }\n\n /**\n * Gets verbose flag.\n *\n * @return {Boolean} verbose\n */\n getVerbose() {\n return this.verbose;\n }\n\n static _parseQueryParameters(params = {}) {\n let queryString = '?';\n Object.keys(params).forEach((key, index) => {\n if (index !== 0) {\n queryString += '&';\n }\n queryString += `${key}=${encodeURIComponent(params[key])}`;\n });\n return queryString;\n }\n\n /**\n * Performs an HTTP request.\n *\n * @param {String} url\n * @param {String} method\n * @param {Object} headers\n * @param {Object} options\n * @param {Array.} options.requestHooks - Request hooks.\n * @param {XMLHttpRequest} [options.request] - if specified, the request to use, otherwise one will be created; useful for adding custom upload and abort listeners/objects\n * @return {*}\n * @private\n */\n _httpRequest(url, method, headers = {}, options = {}) {\n const { errorInterceptor, requestHooks } = this;\n\n return new Promise((resolve, reject) => {\n let request = options.request ? options.request : new XMLHttpRequest();\n\n request.open(method, url, true);\n if ('responseType' in options) {\n request.responseType = options.responseType;\n }\n\n if (typeof headers === 'object') {\n Object.keys(headers).forEach(key => {\n request.setRequestHeader(key, headers[key]);\n });\n }\n\n // now add custom headers from the user\n // (e.g. access tokens)\n const userHeaders = this.headers;\n Object.keys(userHeaders).forEach(key => {\n request.setRequestHeader(key, userHeaders[key]);\n });\n\n // Event triggered when upload starts\n request.onloadstart = function onloadstart() {\n debugLog('upload started: ', url)\n };\n\n // Event triggered when upload ends\n request.onloadend = function onloadend() {\n debugLog('upload finished')\n };\n\n // Handle response message\n request.onreadystatechange = () => {\n if (request.readyState === 4) {\n if (request.status === 200) {\n const contentType = request.getResponseHeader('Content-Type');\n // Automatically distinguishes between multipart and singlepart in an array buffer, and\n // converts them into a consistent type.\n if (contentType && contentType.indexOf('multipart') !== -1) {\n resolve(multipartDecode(request.response));\n } else if (request.responseType === 'arraybuffer') {\n resolve([request.response]);\n } else {\n resolve(request.response);\n }\n } else if (request.status === 202) {\n if (this.verbose) {\n console.warn('some resources already existed: ', request);\n }\n resolve(request.response);\n } else if (request.status === 204) {\n if (this.verbose) {\n console.warn('empty response for request: ', request);\n }\n resolve([]);\n } else {\n const error = new Error('request failed');\n error.request = request;\n error.response = request.response;\n error.status = request.status;\n if (this.verbose) {\n console.error('request failed: ', request);\n console.error(error);\n console.error(error.response);\n }\n\n errorInterceptor(error);\n\n reject(error);\n }\n }\n };\n\n // Event triggered while download progresses\n if ('progressCallback' in options) {\n if (typeof options.progressCallback === 'function') {\n request.onprogress = options.progressCallback;\n }\n }\n\n if (requestHooks && areValidRequestHooks(requestHooks)) {\n const combinedHeaders = Object.assign({}, headers, this.headers);\n const metadata = { method, url, headers: combinedHeaders };\n const pipeRequestHooks = functions => args =>\n functions.reduce((props, fn) => fn(props, metadata), args);\n const pipedRequest = pipeRequestHooks(requestHooks);\n request = pipedRequest(request);\n }\n\n // Add withCredentials to request if needed\n if ('withCredentials' in options) {\n if (options.withCredentials) {\n request.withCredentials = true;\n }\n }\n\n if ('data' in options) {\n request.send(options.data);\n } else {\n request.send();\n }\n });\n }\n\n /**\n * Performs an HTTP GET request.\n *\n * @param {String} url\n * @param {Object} headers\n * @param {Object} responseType\n * @param {Function} progressCallback\n * @return {*}\n * @private\n */\n _httpGet(url, headers, responseType, progressCallback, withCredentials) {\n return this._httpRequest(url, 'get', headers, {\n responseType,\n progressCallback,\n withCredentials,\n });\n }\n\n /**\n * Performs an HTTP GET request that accepts a message with application/json\n * media type.\n *\n * @param {String} url\n * @param {Object} params\n * @param {Function} progressCallback\n * @return {*}\n * @private\n */\n _httpGetApplicationJson(url, params = {}, progressCallback, withCredentials) {\n let urlWithQueryParams = url;\n\n if (typeof params === 'object') {\n if (!isEmptyObject(params)) {\n urlWithQueryParams += DICOMwebClient._parseQueryParameters(params);\n }\n }\n const headers = { Accept: MEDIATYPES.DICOM_JSON };\n const responseType = 'json';\n return this._httpGet(\n urlWithQueryParams,\n headers,\n responseType,\n progressCallback,\n withCredentials,\n );\n }\n\n /**\n * Performs an HTTP GET request that accepts a message with application/pdf\n * media type.\n *\n * @param {String} url\n * @param {Object} params\n * @param {Function} progressCallback\n * @return {*}\n * @private\n */\n _httpGetApplicationPdf(url, params = {}, progressCallback, withCredentials) {\n let urlWithQueryParams = url;\n\n if (typeof params === 'object') {\n if (!isEmptyObject(params)) {\n urlWithQueryParams += DICOMwebClient._parseQueryParameters(params);\n }\n }\n const headers = { Accept: MEDIATYPES.PDF };\n const responseType = 'json';\n return this._httpGet(\n urlWithQueryParams,\n headers,\n responseType,\n progressCallback,\n withCredentials,\n );\n }\n\n /**\n * Performs an HTTP GET request that accepts a message with an image\n media type.\n *\n * @param {String} url\n * @param {Object[]} mediaTypes\n * @param {Object} params\n * @param {Function} progressCallback\n * @return {*}\n * @private\n */\n _httpGetImage(\n url,\n mediaTypes,\n params = {},\n progressCallback,\n withCredentials,\n ) {\n let urlWithQueryParams = url;\n\n if (typeof params === 'object') {\n if (!isEmptyObject(params)) {\n urlWithQueryParams += DICOMwebClient._parseQueryParameters(params);\n }\n }\n\n const supportedMediaTypes = [\n 'image/',\n 'image/*',\n 'image/jpeg',\n 'image/jp2',\n 'image/gif',\n 'image/png',\n ];\n\n const acceptHeaderFieldValue = DICOMwebClient._buildAcceptHeaderFieldValue(\n mediaTypes,\n supportedMediaTypes,\n );\n const headers = { Accept: acceptHeaderFieldValue };\n const responseType = 'arraybuffer';\n return this._httpGet(\n urlWithQueryParams,\n headers,\n responseType,\n progressCallback,\n withCredentials,\n );\n }\n\n /**\n * Performs an HTTP GET request that accepts a message with a text\n media type.\n *\n * @param {String} url\n * @param {Object[]} mediaTypes\n * @param {Object} params\n * @param {Function} progressCallback\n * @return {*}\n * @private\n */\n _httpGetText(\n url,\n mediaTypes,\n params = {},\n progressCallback,\n withCredentials,\n ) {\n let urlWithQueryParams = url;\n\n if (typeof params === 'object') {\n if (!isEmptyObject(params)) {\n urlWithQueryParams += DICOMwebClient._parseQueryParameters(params);\n }\n }\n\n const supportedMediaTypes = [\n 'text/',\n 'text/*',\n 'text/html',\n 'text/plain',\n 'text/rtf',\n 'text/xml',\n ];\n\n const acceptHeaderFieldValue = DICOMwebClient._buildAcceptHeaderFieldValue(\n mediaTypes,\n supportedMediaTypes,\n );\n const headers = { Accept: acceptHeaderFieldValue };\n const responseType = 'arraybuffer';\n return this._httpGet(\n urlWithQueryParams,\n headers,\n responseType,\n progressCallback,\n withCredentials,\n );\n }\n\n /**\n * Performs an HTTP GET request that accepts a message with a video\n media type.\n *\n * @param {String} url\n * @param {Object[]} mediaTypes\n * @param {Object} params\n * @param {Function} progressCallback\n * @return {*}\n * @private\n */\n _httpGetVideo(\n url,\n mediaTypes,\n params = {},\n progressCallback,\n withCredentials,\n ) {\n let urlWithQueryParams = url;\n\n if (typeof params === 'object') {\n if (!isEmptyObject(params)) {\n urlWithQueryParams += DICOMwebClient._parseQueryParameters(params);\n }\n }\n\n const supportedMediaTypes = [\n 'video/',\n 'video/*',\n 'video/mpeg',\n 'video/mp4',\n 'video/H265',\n ];\n\n const acceptHeaderFieldValue = DICOMwebClient._buildAcceptHeaderFieldValue(\n mediaTypes,\n supportedMediaTypes,\n );\n const headers = { Accept: acceptHeaderFieldValue };\n const responseType = 'arraybuffer';\n return this._httpGet(\n urlWithQueryParams,\n headers,\n responseType,\n progressCallback,\n withCredentials,\n );\n }\n\n /**\n * Asserts that a given media type is valid.\n *\n * @params {String} mediaType media type\n */\n static _assertMediaTypeIsValid(mediaType) {\n if (!mediaType) {\n throw new Error(`Not a valid media type: ${mediaType}`);\n }\n\n const sepIndex = mediaType.indexOf('/');\n if (sepIndex === -1) {\n throw new Error(`Not a valid media type: ${mediaType}`);\n }\n\n const mediaTypeType = mediaType.slice(0, sepIndex);\n const types = ['application', 'image', 'text', 'video'];\n if (!types.includes(mediaTypeType)) {\n throw new Error(`Not a valid media type: ${mediaType}`);\n }\n\n if (mediaType.slice(sepIndex + 1).includes('/')) {\n throw new Error(`Not a valid media type: ${mediaType}`);\n }\n }\n\n /**\n * Performs an HTTP GET request that accepts a multipart message with an image media type.\n *\n * @param {String} url - Unique resource locator\n * @param {Object[]} mediaTypes - Acceptable media types and optionally the UIDs of the\n corresponding transfer syntaxes\n * @param {Array} byteRange - Start and end of byte range\n * @param {Object} params - Additional HTTP GET query parameters\n * @param {Boolean} rendered - Whether resource should be requested using rendered media types\n * @param {Function} progressCallback\n * @private\n * @returns {Promise} Content of HTTP message body parts\n */\n _httpGetMultipartImage(\n url,\n mediaTypes,\n byteRange,\n params,\n rendered = false,\n progressCallback,\n withCredentials,\n ) {\n const headers = {};\n let supportedMediaTypes;\n if (rendered) {\n supportedMediaTypes = [\n 'image/jpeg',\n 'image/gif',\n 'image/png',\n 'image/jp2',\n ];\n } else {\n supportedMediaTypes = {\n '1.2.840.10008.1.2.5': ['image/x-dicom-rle'],\n '1.2.840.10008.1.2.4.50': ['image/jpeg'],\n '1.2.840.10008.1.2.4.51': ['image/jpeg'],\n '1.2.840.10008.1.2.4.57': ['image/jpeg'],\n '1.2.840.10008.1.2.4.70': ['image/jpeg'],\n '1.2.840.10008.1.2.4.80': ['image/x-jls', 'image/jls'],\n '1.2.840.10008.1.2.4.81': ['image/x-jls', 'image/jls'],\n '1.2.840.10008.1.2.4.90': ['image/jp2'],\n '1.2.840.10008.1.2.4.91': ['image/jp2'],\n '1.2.840.10008.1.2.4.92': ['image/jpx'],\n '1.2.840.10008.1.2.4.93': ['image/jpx'],\n };\n\n if (byteRange) {\n headers.Range = DICOMwebClient._buildRangeHeaderFieldValue(byteRange);\n }\n }\n\n headers.Accept = DICOMwebClient._buildMultipartAcceptHeaderFieldValue(\n mediaTypes,\n supportedMediaTypes,\n );\n\n return this._httpGet(url, headers, 'arraybuffer', progressCallback, withCredentials);\n }\n\n /**\n * Performs an HTTP GET request that accepts a multipart message with a video media type.\n *\n * @param {String} url - Unique resource locator\n * @param {Object[]} mediaTypes - Acceptable media types and optionally the UIDs of the\n corresponding transfer syntaxes\n * @param {Array} byteRange - Start and end of byte range\n * @param {Object} params - Additional HTTP GET query parameters\n * @param {Boolean} rendered - Whether resource should be requested using rendered media types\n * @param {Function} progressCallback\n * @private\n * @returns {Promise} Content of HTTP message body parts\n */\n _httpGetMultipartVideo(\n url,\n mediaTypes,\n byteRange,\n params,\n rendered = false,\n progressCallback,\n withCredentials,\n ) {\n const headers = {};\n let supportedMediaTypes;\n if (rendered) {\n supportedMediaTypes = [\n 'video/',\n 'video/*',\n 'video/mpeg2',\n 'video/mp4',\n 'video/H265',\n ];\n } else {\n supportedMediaTypes = {\n '1.2.840.10008.1.2.4.100': ['video/mpeg2'],\n '1.2.840.10008.1.2.4.101': ['video/mpeg2'],\n '1.2.840.10008.1.2.4.102': ['video/mp4'],\n '1.2.840.10008.1.2.4.103': ['video/mp4'],\n '1.2.840.10008.1.2.4.104': ['video/mp4'],\n '1.2.840.10008.1.2.4.105': ['video/mp4'],\n '1.2.840.10008.1.2.4.106': ['video/mp4'],\n };\n\n if (byteRange) {\n headers.Range = DICOMwebClient._buildRangeHeaderFieldValue(byteRange);\n }\n }\n\n headers.Accept = DICOMwebClient._buildMultipartAcceptHeaderFieldValue(\n mediaTypes,\n supportedMediaTypes,\n );\n\n return this._httpGet(url, headers, 'arraybuffer', progressCallback, withCredentials);\n }\n\n /**\n * Performs an HTTP GET request that accepts a multipart message\n * with a application/dicom media type.\n *\n * @param {String} url - Unique resource locator\n * @param {Object[]} mediaTypes - Acceptable media types and optionally the UIDs of the\n corresponding transfer syntaxes\n * @param {Object} params - Additional HTTP GET query parameters\n * @param {Function} progressCallback\n * @private\n * @returns {Promise} Content of HTTP message body parts\n */\n _httpGetMultipartApplicationDicom(\n url,\n mediaTypes,\n params,\n progressCallback,\n withCredentials,\n ) {\n const headers = {};\n const defaultMediaType = 'application/dicom';\n const supportedMediaTypes = {\n '1.2.840.10008.1.2.1': [defaultMediaType],\n '1.2.840.10008.1.2.5': [defaultMediaType],\n '1.2.840.10008.1.2.4.50': [defaultMediaType],\n '1.2.840.10008.1.2.4.51': [defaultMediaType],\n '1.2.840.10008.1.2.4.57': [defaultMediaType],\n '1.2.840.10008.1.2.4.70': [defaultMediaType],\n '1.2.840.10008.1.2.4.80': [defaultMediaType],\n '1.2.840.10008.1.2.4.81': [defaultMediaType],\n '1.2.840.10008.1.2.4.90': [defaultMediaType],\n '1.2.840.10008.1.2.4.91': [defaultMediaType],\n '1.2.840.10008.1.2.4.92': [defaultMediaType],\n '1.2.840.10008.1.2.4.93': [defaultMediaType],\n '1.2.840.10008.1.2.4.100': [defaultMediaType],\n '1.2.840.10008.1.2.4.101': [defaultMediaType],\n '1.2.840.10008.1.2.4.102': [defaultMediaType],\n '1.2.840.10008.1.2.4.103': [defaultMediaType],\n '1.2.840.10008.1.2.4.104': [defaultMediaType],\n '1.2.840.10008.1.2.4.105': [defaultMediaType],\n '1.2.840.10008.1.2.4.106': [defaultMediaType],\n };\n\n let acceptableMediaTypes = mediaTypes;\n if (!mediaTypes) {\n acceptableMediaTypes = [{ mediaType: defaultMediaType }];\n }\n\n headers.Accept = DICOMwebClient._buildMultipartAcceptHeaderFieldValue(\n acceptableMediaTypes,\n supportedMediaTypes,\n );\n\n return this._httpGet(url, headers, 'arraybuffer', progressCallback, withCredentials);\n }\n\n /**\n * Performs an HTTP GET request that accepts a multipart message\n * with a application/octet-stream, OR any of the equivalencies for that (eg\n * application/pdf etc)\n *\n * @param {String} url - Unique resource locator\n * @param {Object[]} mediaTypes - Acceptable media types and optionally the UIDs of the\n corresponding transfer syntaxes\n * @param {Array} byteRange start and end of byte range\n * @param {Object} params - Additional HTTP GET query parameters\n * @param {Function} progressCallback\n * @private\n * @returns {Promise} Content of HTTP message body parts\n */\n _httpGetMultipartApplicationOctetStream(\n url,\n mediaTypes,\n byteRange,\n params,\n progressCallback,\n withCredentials,\n ) {\n const headers = {};\n const defaultMediaType = 'application/octet-stream';\n const supportedMediaTypes = {\n '1.2.840.10008.1.2.1': [...Object.values(MEDIATYPES)],\n };\n\n let acceptableMediaTypes = mediaTypes;\n if (!mediaTypes) {\n acceptableMediaTypes = [{ mediaType: defaultMediaType }];\n }\n\n if (byteRange) {\n headers.Range = DICOMwebClient._buildRangeHeaderFieldValue(byteRange);\n }\n\n headers.Accept = DICOMwebClient._buildMultipartAcceptHeaderFieldValue(\n acceptableMediaTypes,\n supportedMediaTypes,\n );\n\n return this._httpGet(url, headers, 'arraybuffer', progressCallback, withCredentials);\n }\n\n /**\n * Performs an HTTP POST request.\n *\n * @param {String} url - Unique resource locator\n * @param {Object} headers - HTTP header fields\n * @param {Array} data - Data that should be stored\n * @param {Function} progressCallback\n * @param {Function} progressCallback\n * @param {XMLHttpRequest} request - if specified, the request to use, otherwise one will be created; useful for adding custom upload and abort listeners/objects\n * @private\n * @returns {Promise} Response\n */\n _httpPost(url, headers, data, progressCallback, withCredentials, request) {\n return this._httpRequest(url, 'post', headers, {\n data,\n progressCallback,\n withCredentials,\n request,\n });\n }\n\n /**\n * Performs an HTTP POST request with content-type application/dicom+json.\n *\n * @param {String} url - Unique resource locator\n * @param {Object} headers - HTTP header fields\n * @param {Array} data - Data that should be stored\n * @param {Function} progressCallback\n * @private\n * @returns {Promise} Response\n */\n _httpPostApplicationJson(url, data, progressCallback, withCredentials) {\n const headers = { 'Content-Type': MEDIATYPES.DICOM_JSON };\n return this._httpPost(\n url,\n headers,\n data,\n progressCallback,\n withCredentials,\n );\n }\n\n /**\n * Parses media type and extracts its type and subtype.\n *\n * @param {String} mediaType - HTTP media type (e.g. image/jpeg)\n * @private\n * @returns {String[]} Media type and subtype\n */\n static _parseMediaType(mediaType) {\n DICOMwebClient._assertMediaTypeIsValid(mediaType);\n\n return mediaType.split('/');\n }\n\n /**\n * Builds an accept header field value for HTTP GET request messages.\n *\n * @param {Object[]} mediaTypes - Acceptable media types\n * @param {Object[]} supportedMediaTypes - Supported media types\n * @return {*}\n * @private\n */\n static _buildAcceptHeaderFieldValue(mediaTypes, supportedMediaTypes) {\n if (!Array.isArray(mediaTypes)) {\n throw new Error('Acceptable media types must be provided as an Array');\n }\n\n const fieldValueParts = mediaTypes.map(item => {\n const { mediaType } = item;\n\n DICOMwebClient._assertMediaTypeIsValid(mediaType);\n if (!supportedMediaTypes.includes(mediaType)) {\n throw new Error(\n `Media type ${mediaType} is not supported for requested resource`,\n );\n }\n\n return mediaType;\n });\n\n return fieldValueParts.join(', ');\n }\n\n /**\n * Builds an accept header field value for HTTP GET multipart request\n * messages. Will throw an exception if no media types are found which are acceptable,\n * but will only log a verbose level message when types are specified which are\n * not acceptable. This allows requesting several types with having to know\n * whether they are all acceptable or not.\n *\n * @param {Object[]} mediaTypes - Acceptable media types\n * @param {Object[]} supportedMediaTypes - Supported media types\n * @private\n */\n static _buildMultipartAcceptHeaderFieldValue(\n mediaTypes,\n supportedMediaTypes,\n ) {\n if (!Array.isArray(mediaTypes)) {\n throw new Error('Acceptable media types must be provided as an Array');\n }\n\n if (!Array.isArray(supportedMediaTypes) && !isObject(supportedMediaTypes)) {\n throw new Error(\n 'Supported media types must be provided as an Array or an Object',\n );\n }\n\n const fieldValueParts = [];\n\n mediaTypes.forEach(item => {\n const { transferSyntaxUID, mediaType } = item;\n DICOMwebClient._assertMediaTypeIsValid(mediaType);\n let fieldValue = `multipart/related; type=\"${mediaType}\"`;\n\n if (isObject(supportedMediaTypes)) {\n // SupportedMediaTypes is a lookup table that maps Transfer Syntax UID\n // to one or more Media Types\n if (\n !Object.values(supportedMediaTypes)\n .flat(1)\n .includes(mediaType)\n ) {\n if (!mediaType.endsWith('/*') || !mediaType.endsWith('/')) {\n debugLog(\n `Media type ${mediaType} is not supported for requested resource`,\n );\n return;\n }\n }\n\n if (transferSyntaxUID) {\n if (transferSyntaxUID !== '*') {\n if (!Object.keys(supportedMediaTypes).includes(transferSyntaxUID)) {\n throw new Error(\n `Transfer syntax ${transferSyntaxUID} is not supported for requested resource`,\n );\n }\n\n const expectedMediaTypes = supportedMediaTypes[transferSyntaxUID];\n\n if (!expectedMediaTypes.includes(mediaType)) {\n const actualType = DICOMwebClient._parseMediaType(mediaType)[0];\n expectedMediaTypes.map(expectedMediaType => {\n const expectedType = DICOMwebClient._parseMediaType(\n expectedMediaType,\n )[0];\n const haveSameType = actualType === expectedType;\n\n if (\n haveSameType &&\n (mediaType.endsWith('/*') || mediaType.endsWith('/'))\n ) {\n return;\n }\n\n throw new Error(\n `Transfer syntax ${transferSyntaxUID} is not supported for requested resource`,\n );\n });\n }\n }\n\n fieldValue += `; transfer-syntax=${transferSyntaxUID}`;\n }\n } else if (\n Array.isArray(supportedMediaTypes) &&\n !supportedMediaTypes.includes(mediaType)\n ) {\n if( this.verbose ) {\n console.warn(\n `Media type ${mediaType} is not supported for requested resource`,\n );\n }\n return;\n }\n\n fieldValueParts.push(fieldValue);\n });\n\n if( !fieldValueParts.length ) {\n throw new Error(`No acceptable media types found among ${JSON.stringify(mediaTypes)}`);\n }\n\n return fieldValueParts.join(', ');\n }\n\n /**\n * Builds a range header field value for HTTP GET request messages.\n *\n * @param {Array} byteRange - Start and end of byte range\n * @returns {String} Range header field value\n * @private\n */\n static _buildRangeHeaderFieldValue(byteRange = []) {\n if (byteRange.length === 1) {\n return `bytes=${byteRange[0]}-`;\n }\n if (byteRange.length === 2) {\n return `bytes=${byteRange[0]}-${byteRange[1]}`;\n }\n\n return 'bytes=0-';\n }\n\n /**\n * Gets types that are shared among acceptable media types.\n *\n * @param {Object[]} mediaTypes - Acceptable media types and optionally the UIDs of the\n corresponding transfer syntaxes\n * @private\n * @returns {String[]} Types that are shared among acceptable media types\n */\n static _getSharedMediaTypes(mediaTypes) {\n const types = new Set();\n\n if (!mediaTypes || !mediaTypes.length) {\n return types;\n }\n\n mediaTypes.forEach(item => {\n const { mediaType } = item;\n const type = DICOMwebClient._parseMediaType(mediaType)[0];\n types.add(`${type}/`);\n });\n\n return Array.from(types);\n }\n\n /**\n * Gets common base type of acceptable media types and asserts that only\n one type is specified. For example, ``(\"image/jpeg\", \"image/jp2\")``\n will pass, but ``(\"image/jpeg\", \"video/mpeg2\")`` will raise an\n exception.\n *\n * @param {Object[]} mediaTypes - Acceptable media types and optionally the UIDs of the\n corresponding transfer syntaxes\n * @private\n * @returns {String[]} Common media type, eg `image/` for the above example.\n */\n static _getCommonMediaType(mediaTypes) {\n if (!mediaTypes || !mediaTypes.length) {\n throw new Error('No acceptable media types provided');\n }\n\n const sharedMediaTypes = DICOMwebClient._getSharedMediaTypes(mediaTypes);\n if (sharedMediaTypes.length === 0) {\n throw new Error('No common acceptable media type could be identified.');\n } else if (sharedMediaTypes.length > 1) {\n throw new Error('Acceptable media types must have the same type.');\n }\n\n return sharedMediaTypes[0];\n }\n\n /**\n * Searches for DICOM studies.\n *\n * @param {Object} options\n * @param {Object} [options.queryParams] - HTTP query parameters\n * @return {Object[]} Study representations (http://dicom.nema.org/medical/dicom/current/output/chtml/part18/sect_6.7.html#table_6.7.1-2)\n */\n searchForStudies(options = {}) {\n debugLog('search for studies');\n let withCredentials = false;\n let url = `${this.qidoURL}/studies`;\n if ('queryParams' in options) {\n url += DICOMwebClient._parseQueryParameters(options.queryParams);\n }\n if ('withCredentials' in options) {\n if (options.withCredentials) {\n withCredentials = options.withCredentials;\n }\n }\n return this._httpGetApplicationJson(url, {}, false, withCredentials);\n }\n\n /**\n * Retrieves metadata for a DICOM study.\n *\n * @param {Object} options\n * @param {String} options.studyInstanceUID - Study Instance UID\n * @returns {Promise} Metadata elements in DICOM JSON format for each instance\n belonging to the study\n */\n retrieveStudyMetadata(options) {\n if (!('studyInstanceUID' in options)) {\n throw new Error(\n 'Study Instance UID is required for retrieval of study metadata',\n );\n }\n debugLog(`retrieve metadata of study ${options.studyInstanceUID}`);\n const url = `${this.wadoURL}/studies/${options.studyInstanceUID}/metadata`;\n let withCredentials = false;\n if ('withCredentials' in options) {\n if (options.withCredentials) {\n withCredentials = options.withCredentials;\n }\n }\n return this._httpGetApplicationJson(url, {}, false, withCredentials);\n }\n\n /**\n * Searches for DICOM series.\n *\n * @param {Object} options\n * @param {Object} [options.studyInstanceUID] - Study Instance UID\n * @param {Object} [options.queryParams] - HTTP query parameters\n * @returns {Object[]} Series representations (http://dicom.nema.org/medical/dicom/current/output/chtml/part18/sect_6.7.html#table_6.7.1-2a)\n */\n searchForSeries(options = {}) {\n let url = this.qidoURL;\n if ('studyInstanceUID' in options) {\n debugLog(`search series of study ${options.studyInstanceUID}`);\n url += `/studies/${options.studyInstanceUID}`;\n }\n url += '/series';\n if ('queryParams' in options) {\n url += DICOMwebClient._parseQueryParameters(options.queryParams);\n }\n let withCredentials = false;\n if ('withCredentials' in options) {\n if (options.withCredentials) {\n withCredentials = options.withCredentials;\n }\n }\n return this._httpGetApplicationJson(url, {}, false, withCredentials);\n }\n\n /**\n * Retrieves metadata for a DICOM series.\n *\n * @param {Object} options\n * @param {String} options.studyInstanceUID - Study Instance UID\n * @param {String} options.seriesInstanceUID - Series Instance UID\n * @returns {Promise} Metadata elements in DICOM JSON format for each instance\n belonging to the series\n */\n retrieveSeriesMetadata(options) {\n if (!('studyInstanceUID' in options)) {\n throw new Error(\n 'Study Instance UID is required for retrieval of series metadata',\n );\n }\n if (!('seriesInstanceUID' in options)) {\n throw new Error(\n 'Series Instance UID is required for retrieval of series metadata',\n );\n }\n\n debugLog(`retrieve metadata of series ${options.seriesInstanceUID}`);\n const url = `${this.wadoURL}/studies/${options.studyInstanceUID}/series/${options.seriesInstanceUID}/metadata`;\n let withCredentials = false;\n if ('withCredentials' in options) {\n if (options.withCredentials) {\n withCredentials = options.withCredentials;\n }\n }\n return this._httpGetApplicationJson(url, {}, false, withCredentials);\n }\n\n /**\n * Searches for DICOM Instances.\n *\n * @param {Object} options\n * @param {String} [options.studyInstanceUID] - Study Instance UID\n * @param {String} [options.seriesInstanceUID] - Series Instance UID\n * @param {Object} [options.queryParams] - HTTP query parameters\n * @returns {Object[]} Instance representations (http://dicom.nema.org/medical/dicom/current/output/chtml/part18/sect_6.7.html#table_6.7.1-2b)\n */\n searchForInstances(options = {}) {\n let url = this.qidoURL;\n let withCredentials = false;\n if ('studyInstanceUID' in options) {\n url += `/studies/${options.studyInstanceUID}`;\n if ('seriesInstanceUID' in options) {\n debugLog(\n `search for instances of series ${options.seriesInstanceUID}`,\n );\n url += `/series/${options.seriesInstanceUID}`;\n } else {\n debugLog(\n `search for instances of study ${options.studyInstanceUID}`,\n );\n }\n } else {\n debugLog('search for instances');\n }\n url += '/instances';\n if ('queryParams' in options) {\n url += DICOMwebClient._parseQueryParameters(options.queryParams);\n }\n if ('withCredentials' in options) {\n if (options.withCredentials) {\n withCredentials = options.withCredentials;\n }\n }\n return this._httpGetApplicationJson(url, {}, false, withCredentials);\n }\n\n /** Returns a WADO-URI URL for an instance\n *\n * @param {Object} options\n * @param {String} options.studyInstanceUID - Study Instance UID\n * @param {String} options.seriesInstanceUID - Series Instance UID\n * @param {String} options.sopInstanceUID - SOP Instance UID\n * @returns {String} WADO-URI URL\n */\n buildInstanceWadoURIUrl(options) {\n if (!('studyInstanceUID' in options)) {\n throw new Error('Study Instance UID is required.');\n }\n if (!('seriesInstanceUID' in options)) {\n throw new Error('Series Instance UID is required.');\n }\n if (!('sopInstanceUID' in options)) {\n throw new Error('SOP Instance UID is required.');\n }\n\n const contentType = options.contentType || MEDIATYPES.DICOM;\n const transferSyntax = options.transferSyntax || '*';\n const params = [];\n\n params.push('requestType=WADO');\n params.push(`studyUID=${options.studyInstanceUID}`);\n params.push(`seriesUID=${options.seriesInstanceUID}`);\n params.push(`objectUID=${options.sopInstanceUID}`);\n params.push(`contentType=${contentType}`);\n params.push(`transferSyntax=${transferSyntax}`);\n\n const paramString = params.join('&');\n\n return `${this.wadoURL}?${paramString}`;\n }\n\n /**\n * Retrieves metadata for a DICOM Instance.\n *\n * @param {Object} options object\n * @param {String} options.studyInstanceUID - Study Instance UID\n * @param {String} options.seriesInstanceUID - Series Instance UID\n * @param {String} options.sopInstanceUID - SOP Instance UID\n * @returns {Promise} metadata elements in DICOM JSON format\n */\n retrieveInstanceMetadata(options) {\n if (!('studyInstanceUID' in options)) {\n throw new Error(\n 'Study Instance UID is required for retrieval of instance metadata',\n );\n }\n if (!('seriesInstanceUID' in options)) {\n throw new Error(\n 'Series Instance UID is required for retrieval of instance metadata',\n );\n }\n if (!('sopInstanceUID' in options)) {\n throw new Error(\n 'SOP Instance UID is required for retrieval of instance metadata',\n );\n }\n debugLog(`retrieve metadata of instance ${options.sopInstanceUID}`);\n const url = `${this.wadoURL}/studies/${options.studyInstanceUID}/series/${options.seriesInstanceUID}/instances/${options.sopInstanceUID}/metadata`;\n let withCredentials = false;\n if ('withCredentials' in options) {\n if (options.withCredentials) {\n withCredentials = options.withCredentials;\n }\n }\n return this._httpGetApplicationJson(url, {}, false, withCredentials);\n }\n\n /**\n * Retrieves frames for a DICOM Instance.\n * @param {Object} options options object\n * @param {String} options.studyInstanceUID - Study Instance UID\n * @param {String} options.seriesInstanceUID - Series Instance UID\n * @param {String} options.sopInstanceUID - SOP Instance UID\n * @param {String} options.frameNumbers - One-based indices of Frame Items\n * @returns {Array} frame items as byte arrays of the pixel data element\n */\n retrieveInstanceFrames(options) {\n if (!('studyInstanceUID' in options)) {\n throw new Error(\n 'Study Instance UID is required for retrieval of instance frames',\n );\n }\n if (!('seriesInstanceUID' in options)) {\n throw new Error(\n 'Series Instance UID is required for retrieval of instance frames',\n );\n }\n if (!('sopInstanceUID' in options)) {\n throw new Error(\n 'SOP Instance UID is required for retrieval of instance frames',\n );\n }\n if (!('frameNumbers' in options)) {\n throw new Error(\n 'frame numbers are required for retrieval of instance frames',\n );\n }\n debugLog(\n `retrieve frames ${options.frameNumbers.toString()} of instance ${\n options.sopInstanceUID\n }`,\n );\n const url = `${this.wadoURL}/studies/${options.studyInstanceUID}/series/${\n options.seriesInstanceUID\n }/instances/${\n options.sopInstanceUID\n }/frames/${options.frameNumbers.toString()}`;\n\n const { mediaTypes } = options;\n let withCredentials = false;\n if ('withCredentials' in options) {\n if (options.withCredentials) {\n withCredentials = options.withCredentials;\n }\n }\n\n let progressCallback = false;\n if ('progressCallback' in options) {\n progressCallback = options.progressCallback;\n }\n\n if (!mediaTypes) {\n return this._httpGetMultipartApplicationOctetStream(\n url,\n false,\n false,\n false,\n progressCallback,\n withCredentials,\n );\n }\n\n const sharedMediaTypes = DICOMwebClient._getSharedMediaTypes(mediaTypes);\n if (sharedMediaTypes.length > 1) {\n /**\n * Enable request of frames that are stored either compressed\n * (image/* media type) or uncompressed (application/octet-stream\n * media type).\n */\n const supportedMediaTypes = {\n '1.2.840.10008.1.2.1': ['application/octet-stream'],\n '1.2.840.10008.1.2.5': ['image/x-dicom-rle'],\n '1.2.840.10008.1.2.4.50': ['image/jpeg'],\n '1.2.840.10008.1.2.4.51': ['image/jpeg'],\n '1.2.840.10008.1.2.4.57': ['image/jpeg'],\n '1.2.840.10008.1.2.4.70': ['image/jpeg'],\n '1.2.840.10008.1.2.4.80': ['image/x-jls', 'image/jls'],\n '1.2.840.10008.1.2.4.81': ['image/x-jls', 'image/jls'],\n '1.2.840.10008.1.2.4.90': ['image/jp2'],\n '1.2.840.10008.1.2.4.91': ['image/jp2'],\n '1.2.840.10008.1.2.4.92': ['image/jpx'],\n '1.2.840.10008.1.2.4.93': ['image/jpx'],\n '1.2.840.10008.1.2.4.201': ['image/jhc'],\n '1.2.840.10008.1.2.4.202': ['image/jhc'],\n };\n\n const headers = {\n Accept: DICOMwebClient._buildMultipartAcceptHeaderFieldValue(\n mediaTypes,\n supportedMediaTypes,\n ),\n };\n return this._httpGet(url, headers, 'arraybuffer', progressCallback, withCredentials);\n }\n\n const commonMediaType = DICOMwebClient._getCommonMediaType(mediaTypes);\n\n if (commonMediaType.startsWith('application')) {\n return this._httpGetMultipartApplicationOctetStream(\n url,\n mediaTypes,\n false,\n false,\n progressCallback,\n withCredentials,\n );\n }\n if (commonMediaType.startsWith('image')) {\n return this._httpGetMultipartImage(\n url,\n mediaTypes,\n false,\n false,\n false,\n progressCallback,\n withCredentials,\n );\n }\n if (commonMediaType.startsWith('video')) {\n return this._httpGetMultipartVideo(\n url,\n mediaTypes,\n false,\n false,\n false,\n progressCallback,\n withCredentials,\n );\n }\n\n throw new Error(\n `Media type ${commonMediaType} is not supported for retrieval of frames.`,\n );\n }\n\n /**\n * Element in mediaTypes parameter\n * @typedef {Object} MediaType\n * @param {String} [MediaType.mediaType] - ie 'image/jpeg', 'image/png'...\n */\n\n /**\n * Retrieves an individual, server-side rendered DICOM Instance.\n *\n * @param {Object} options\n * @param {String} options.studyInstanceUID - Study Instance UID\n * @param {String} options.seriesInstanceUID - Series Instance UID\n * @param {String} options.sopInstanceUID - SOP Instance UID\n * @param {MediaType[]} [options.mediaTypes] - Acceptable HTTP media types\n * @param {Object} [options.queryParams] - HTTP query parameters\n * @returns {Promise} Rendered DICOM Instance\n */\n retrieveInstanceRendered(options) {\n if (!('studyInstanceUID' in options)) {\n throw new Error(\n 'Study Instance UID is required for retrieval of rendered instance',\n );\n }\n if (!('seriesInstanceUID' in options)) {\n throw new Error(\n 'Series Instance UID is required for retrieval of rendered instance',\n );\n }\n if (!('sopInstanceUID' in options)) {\n throw new Error(\n 'SOP Instance UID is required for retrieval of rendered instance',\n );\n }\n\n let url = `${this.wadoURL}/studies/${options.studyInstanceUID}/series/${options.seriesInstanceUID}/instances/${options.sopInstanceUID}/rendered`;\n\n const { mediaTypes, queryParams } = options;\n const headers = {};\n let withCredentials = false;\n if ('withCredentials' in options) {\n if (options.withCredentials) {\n withCredentials = options.withCredentials;\n }\n }\n\n let progressCallback = false;\n if ('progressCallback' in options) {\n progressCallback = options.progressCallback;\n }\n\n if (!mediaTypes) {\n const responseType = 'arraybuffer';\n if (queryParams) {\n url += DICOMwebClient._parseQueryParameters(queryParams);\n }\n return this._httpGet(\n url,\n headers,\n responseType,\n progressCallback,\n withCredentials,\n );\n }\n\n const commonMediaType = DICOMwebClient._getCommonMediaType(mediaTypes);\n if (commonMediaType.startsWith('image')) {\n return this._httpGetImage(\n url,\n mediaTypes,\n queryParams,\n progressCallback,\n withCredentials,\n );\n }\n if (commonMediaType.startsWith('video')) {\n return this._httpGetVideo(\n url,\n mediaTypes,\n queryParams,\n progressCallback,\n withCredentials,\n );\n }\n if (commonMediaType.startsWith('text')) {\n return this._httpGetText(\n url,\n mediaTypes,\n queryParams,\n progressCallback,\n withCredentials,\n );\n }\n if (commonMediaType === MEDIATYPES.PDF) {\n return this._httpGetApplicationPdf(\n url,\n queryParams,\n progressCallback,\n withCredentials,\n );\n }\n\n throw new Error(\n `Media type ${commonMediaType} is not supported ` +\n 'for retrieval of rendered instance.',\n );\n }\n\n /**\n * Retrieves a thumbnail of an DICOM Instance.\n *\n * @param {Object} options\n * @param {String} options.studyInstanceUID - Study Instance UID\n * @param {String} options.seriesInstanceUID - Series Instance UID\n * @param {String} options.sopInstanceUID - SOP Instance UID\n * @param {MediaType[]} [options.mediaTypes] - Acceptable HTTP media types\n * @param {Object} [options.queryParams] - HTTP query parameters\n * @returns {ArrayBuffer} Thumbnail\n */\n retrieveInstanceThumbnail(options) {\n if (!('studyInstanceUID' in options)) {\n throw new Error(\n 'Study Instance UID is required for retrieval of rendered instance',\n );\n }\n if (!('seriesInstanceUID' in options)) {\n throw new Error(\n 'Series Instance UID is required for retrieval of rendered instance',\n );\n }\n if (!('sopInstanceUID' in options)) {\n throw new Error(\n 'SOP Instance UID is required for retrieval of rendered instance',\n );\n }\n\n let url = `${this.wadoURL}/studies/${options.studyInstanceUID}/series/${options.seriesInstanceUID}/instances/${options.sopInstanceUID}/thumbnail`;\n\n const { mediaTypes, queryParams } = options;\n const headers = {};\n let withCredentials = false;\n if ('withCredentials' in options) {\n if (options.withCredentials) {\n withCredentials = options.withCredentials;\n }\n }\n\n let progressCallback = false;\n if ('progressCallback' in options) {\n progressCallback = options.progressCallback;\n }\n\n if (!mediaTypes) {\n const responseType = 'arraybuffer';\n if (queryParams) {\n url += DICOMwebClient._parseQueryParameters(queryParams);\n }\n return this._httpGet(\n url,\n headers,\n responseType,\n progressCallback,\n withCredentials,\n );\n }\n\n const commonMediaType = DICOMwebClient._getCommonMediaType(mediaTypes);\n if (commonMediaType.startsWith('image')) {\n return this._httpGetImage(\n url,\n mediaTypes,\n queryParams,\n progressCallback,\n withCredentials,\n );\n }\n\n throw new Error(\n `Media type ${commonMediaType} is not supported ` +\n 'for retrieval of rendered instance.',\n );\n }\n\n /**\n * Retrieves rendered frames for a DICOM Instance.\n *\n * @param {Object} options\n * @param {String} options.studyInstanceUID - Study Instance UID\n * @param {String} options.seriesInstanceUID - Series Instance UID\n * @param {String} options.sopInstanceUID - SOP Instance UID\n * @param {String} options.frameNumbers - One-based indices of Frame Items\n * @param {MediaType[]} [options.mediaTypes] - Acceptable HTTP media types\n * @param {Object} [options.queryParams] - HTTP query parameters\n * @returns {ArrayBuffer[]} Rendered Frame Items as byte arrays\n */\n retrieveInstanceFramesRendered(options) {\n if (!('studyInstanceUID' in options)) {\n throw new Error(\n 'Study Instance UID is required for retrieval of rendered instance frames',\n );\n }\n if (!('seriesInstanceUID' in options)) {\n throw new Error(\n 'Series Instance UID is required for retrieval of rendered instance frames',\n );\n }\n if (!('sopInstanceUID' in options)) {\n throw new Error(\n 'SOP Instance UID is required for retrieval of rendered instance frames',\n );\n }\n if (!('frameNumbers' in options)) {\n throw new Error(\n 'frame numbers are required for retrieval of rendered instance frames',\n );\n }\n\n debugLog(\n `retrieve rendered frames ${options.frameNumbers.toString()} of instance ${\n options.sopInstanceUID\n }`,\n );\n let url = `${this.wadoURL}/studies/${options.studyInstanceUID}/series/${\n options.seriesInstanceUID\n }/instances/${\n options.sopInstanceUID\n }/frames/${options.frameNumbers.toString()}/rendered`;\n\n const { mediaTypes, queryParams } = options;\n const headers = {};\n let withCredentials = false;\n if ('withCredentials' in options) {\n if (options.withCredentials) {\n withCredentials = options.withCredentials;\n }\n }\n let progressCallback = false;\n if ('progressCallback' in options) {\n progressCallback = options.progressCallback;\n }\n\n if (!mediaTypes) {\n const responseType = 'arraybuffer';\n if (queryParams) {\n url += DICOMwebClient._parseQueryParameters(queryParams);\n }\n return this._httpGet(url, headers, responseType, false, withCredentials);\n }\n\n const commonMediaType = DICOMwebClient._getCommonMediaType(mediaTypes);\n if (commonMediaType.startsWith('image')) {\n return this._httpGetImage(\n url,\n mediaTypes,\n queryParams,\n progressCallback,\n withCredentials,\n );\n }\n if (commonMediaType.startsWith('video')) {\n return this._httpGetVideo(\n url,\n mediaTypes,\n queryParams,\n progressCallback,\n withCredentials,\n );\n }\n\n throw new Error(\n `Media type ${commonMediaType} is not supported ` +\n 'for retrieval of rendered frame.',\n );\n }\n\n /**\n * Retrieves thumbnail of frames for a DICOM Instance.\n *\n * @param {Object} options\n * @param {String} options.studyInstanceUID - Study Instance UID\n * @param {String} options.seriesInstanceUID - Series Instance UID\n * @param {String} options.sopInstanceUID - SOP Instance UID\n * @param {String} options.frameNumbers - One-based indices of Frame Items\n * @param {Object} [options.queryParams] - HTTP query parameters\n * @returns {ArrayBuffer[]} Rendered Frame Items as byte arrays\n */\n retrieveInstanceFramesThumbnail(options) {\n if (!('studyInstanceUID' in options)) {\n throw new Error(\n 'Study Instance UID is required for retrieval of rendered instance frames',\n );\n }\n if (!('seriesInstanceUID' in options)) {\n throw new Error(\n 'Series Instance UID is required for retrieval of rendered instance frames',\n );\n }\n if (!('sopInstanceUID' in options)) {\n throw new Error(\n 'SOP Instance UID is required for retrieval of rendered instance frames',\n );\n }\n if (!('frameNumbers' in options)) {\n throw new Error(\n 'frame numbers are required for retrieval of rendered instance frames',\n );\n }\n\n console.debug(\n `retrieve rendered frames ${options.frameNumbers.toString()} of instance ${\n options.sopInstanceUID\n }`,\n );\n let url = `${this.wadoURL}/studies/${options.studyInstanceUID}/series/${\n options.seriesInstanceUID\n }/instances/${\n options.sopInstanceUID\n }/frames/${options.frameNumbers.toString()}/thumbnail`;\n\n const { mediaTypes, queryParams } = options;\n const headers = {};\n let withCredentials = false;\n if ('withCredentials' in options) {\n if (options.withCredentials) {\n withCredentials = options.withCredentials;\n }\n }\n\n let progressCallback = false;\n if ('progressCallback' in options) {\n progressCallback = options.progressCallback;\n }\n\n if (!mediaTypes) {\n const responseType = 'arraybuffer';\n if (queryParams) {\n url += DICOMwebClient._parseQueryParameters(queryParams);\n }\n return this._httpGet(\n url,\n headers,\n responseType,\n progressCallback,\n withCredentials,\n );\n }\n\n const commonMediaType = DICOMwebClient._getCommonMediaType(mediaTypes);\n if (commonMediaType.startsWith('image')) {\n return this._httpGetImage(\n url,\n mediaTypes,\n queryParams,\n progressCallback,\n withCredentials,\n );\n }\n\n throw new Error(\n `Media type ${commonMediaType} is not supported ` +\n 'for retrieval of rendered frame.',\n );\n }\n\n /**\n * Retrieves a DICOM Instance.\n *\n * @param {Object} options\n * @param {String} options.studyInstanceUID - Study Instance UID\n * @param {String} options.seriesInstanceUID - Series Instance UID\n * @param {String} options.sopInstanceUID - SOP Instance UID\n * @returns {Promise} DICOM Part 10 file as Arraybuffer\n */\n retrieveInstance(options) {\n if (!('studyInstanceUID' in options)) {\n throw new Error('Study Instance UID is required');\n }\n if (!('seriesInstanceUID' in options)) {\n throw new Error('Series Instance UID is required');\n }\n if (!('sopInstanceUID' in options)) {\n throw new Error('SOP Instance UID is required');\n }\n const url = `${this.wadoURL}/studies/${options.studyInstanceUID}/series/${options.seriesInstanceUID}/instances/${options.sopInstanceUID}`;\n\n const { mediaTypes } = options;\n const { withCredentials = false } = options;\n const { progressCallback = false } = options;\n\n if (!mediaTypes) {\n return this._httpGetMultipartApplicationDicom(\n url,\n false,\n false,\n progressCallback,\n withCredentials,\n ).then(getFirstResult);\n }\n\n const commonMediaType = DICOMwebClient._getCommonMediaType(mediaTypes);\n if (commonMediaType === MEDIATYPES.DICOM) {\n return this._httpGetMultipartApplicationDicom(\n url,\n mediaTypes,\n false,\n progressCallback,\n withCredentials,\n ).then(getFirstResult);\n }\n\n throw new Error(\n `Media type ${commonMediaType} is not supported for retrieval of instance.`,\n );\n }\n\n /**\n * Retrieves all DICOM Instances of a Series.\n *\n * @param {Object} options\n * @param {String} options.studyInstanceUID - Study Instance UID\n * @param {String} options.seriesInstanceUID - Series Instance UID\n * @param {Function} options.progressCallback\n * @returns {Promise} DICOM Instances\n */\n retrieveSeries(options) {\n if (!('studyInstanceUID' in options)) {\n throw new Error('Study Instance UID is required');\n }\n if (!('seriesInstanceUID' in options)) {\n throw new Error('Series Instance UID is required');\n }\n\n const url = `${this.wadoURL}/studies/${options.studyInstanceUID}/series/${options.seriesInstanceUID}`;\n\n const { mediaTypes } = options;\n let withCredentials = false;\n if ('withCredentials' in options) {\n if (options.withCredentials) {\n withCredentials = options.withCredentials;\n }\n }\n\n let progressCallback = false;\n if ('progressCallback' in options) {\n progressCallback = options.progressCallback;\n }\n\n if (!mediaTypes) {\n return this._httpGetMultipartApplicationDicom(\n url,\n false,\n false,\n progressCallback,\n withCredentials,\n );\n }\n\n const commonMediaType = DICOMwebClient._getCommonMediaType(mediaTypes);\n if (commonMediaType === MEDIATYPES.DICOM) {\n return this._httpGetMultipartApplicationDicom(\n url,\n mediaTypes,\n false,\n progressCallback,\n withCredentials,\n );\n }\n\n throw new Error(\n `Media type ${commonMediaType} is not supported for retrieval of series.`,\n );\n }\n\n /**\n * Retrieves all DICOM Instances of a Study.\n *\n * @param {Object} options\n * @param {String} options.studyInstanceUID - Study Instance UID\n * @returns {ArrayBuffer[]} DICOM Instances\n */\n retrieveStudy(options) {\n if (!('studyInstanceUID' in options)) {\n throw new Error('Study Instance UID is required');\n }\n\n const url = `${this.wadoURL}/studies/${options.studyInstanceUID}`;\n\n const { mediaTypes } = options;\n const { withCredentials = false } = options;\n const { progressCallback = false } = options;\n\n if (!mediaTypes) {\n return this._httpGetMultipartApplicationDicom(\n url,\n false,\n false,\n progressCallback,\n withCredentials,\n );\n }\n\n const commonMediaType = DICOMwebClient._getCommonMediaType(mediaTypes);\n if (commonMediaType === MEDIATYPES.DICOM) {\n return this._httpGetMultipartApplicationDicom(\n url,\n mediaTypes,\n false,\n progressCallback,\n withCredentials,\n );\n }\n\n throw new Error(\n `Media type ${commonMediaType} is not supported for retrieval of study.`,\n );\n }\n\n /**\n * Retrieves and parses BulkData from a BulkDataURI location.\n * Decodes the multipart encoded data and returns the resulting data\n * as an ArrayBuffer.\n *\n * See http://dicom.nema.org/medical/dicom/current/output/chtml/part18/sect_6.5.5.html\n *\n * @param {Object} options\n * @param {string} options.BulkDataURI to retrieve\n * @param {Array} options.mediaTypes to use to fetch the URI\n * @param {string} options.byteRange to request a sub-range (only valid on single part)\n * @returns {Promise} Bulkdata parts\n */\n retrieveBulkData(options) {\n if (!('BulkDataURI' in options)) {\n throw new Error('BulkDataURI is required.');\n }\n\n const url = options.BulkDataURI;\n const { mediaTypes, byteRange } = options;\n const { withCredentials = false } = options;\n const { progressCallback = false } = options;\n\n if (this.singlepart.indexOf('bulkdata') !== -1) {\n return this._httpGet(url, options.headers, 'arraybuffer', null, withCredentials);\n }\n\n if (mediaTypes) {\n try {\n const commonMediaType = DICOMwebClient._getCommonMediaType(mediaTypes);\n\n if (commonMediaType==='image/') {\n return this._httpGetMultipartImage(\n url,\n mediaTypes,\n byteRange,\n false,\n false,\n progressCallback,\n withCredentials,\n );\n }\n } catch(e) {\n // No-op - this happens sometimes if trying to fetch the specific desired type but want to fallback to octet-stream\n }\n }\n\n // Just use the media types provided\n return this._httpGetMultipartApplicationOctetStream(\n url,\n mediaTypes,\n byteRange,\n false,\n progressCallback,\n withCredentials,\n );\n }\n\n /**\n * Stores DICOM Instances.\n *\n * @param {Object} options\n * @param {ArrayBuffer[]} options.datasets - DICOM Instances in PS3.10 format\n * @param {String} [options.studyInstanceUID] - Study Instance UID\n * @param {XMLHttpRequest} [options.request] - if specified, the request to use, otherwise one will be created; useful for adding custom upload and abort listeners/objects\n * @returns {Promise} Response message\n */\n storeInstances(options) {\n if (!('datasets' in options)) {\n throw new Error('datasets are required for storing');\n }\n\n let url = `${this.stowURL}/studies`;\n if ('studyInstanceUID' in options) {\n url += `/${options.studyInstanceUID}`;\n }\n\n const { data, boundary } = multipartEncode(options.datasets);\n const headers = {\n 'Content-Type': `multipart/related; type=\"application/dicom\"; boundary=\"${boundary}\"`,\n };\n const { withCredentials = false } = options;\n return this._httpPost(\n url,\n headers,\n data,\n options.progressCallback,\n withCredentials,\n options.request,\n );\n }\n\n \n}\n\n\nexport { DICOMwebClient };\nexport default DICOMwebClient;\n","function findSubstring(str, before, after) {\n const beforeIndex = str.lastIndexOf(before) + before.length;\n if (beforeIndex < before.length) {\n return null;\n }\n if (after !== undefined) {\n const afterIndex = str.lastIndexOf(after);\n if (afterIndex < 0) {\n return null;\n }\n return str.substring(beforeIndex, afterIndex);\n }\n return str.substring(beforeIndex);\n}\n\nfunction getStudyInstanceUIDFromUri(uri) {\n let uid = findSubstring(uri, 'studies/', '/series');\n if (!uid) {\n uid = findSubstring(uri, 'studies/');\n }\n if (!uid) {\n console.debug(\n `Study Instance UID could not be dertermined from URI \"${uri}\"`,\n );\n }\n return uid;\n}\n\nfunction getSeriesInstanceUIDFromUri(uri) {\n let uid = findSubstring(uri, 'series/', '/instances');\n if (!uid) {\n uid = findSubstring(uri, 'series/');\n }\n if (!uid) {\n console.debug(\n `Series Instance UID could not be dertermined from URI \"${uri}\"`,\n );\n }\n return uid;\n}\n\nfunction getSOPInstanceUIDFromUri(uri) {\n let uid = findSubstring(uri, '/instances/', '/frames');\n if (!uid) {\n uid = findSubstring(uri, '/instances/', '/metadata');\n }\n if (!uid) {\n uid = findSubstring(uri, '/instances/');\n }\n if (!uid) {\n console.debug(`SOP Instance UID could not be dertermined from URI\"${uri}\"`);\n }\n return uid;\n}\n\n\nfunction getFrameNumbersFromUri(uri) {\n let numbers = findSubstring(uri, '/frames/', '/rendered');\n if (!numbers) {\n numbers = findSubstring(uri, '/frames/');\n }\n if (numbers === undefined) {\n console.debug(`Frame Numbers could not be dertermined from URI\"${uri}\"`);\n }\n return numbers.split(',');\n}\n\nexport {\n getStudyInstanceUIDFromUri,\n getSeriesInstanceUIDFromUri,\n getSOPInstanceUIDFromUri,\n getFrameNumbersFromUri,\n};\n","export default '0.5.2';\n","import { DICOMwebClient } from './api.js';\nimport {\n getStudyInstanceUIDFromUri,\n getSeriesInstanceUIDFromUri,\n getSOPInstanceUIDFromUri,\n getFrameNumbersFromUri,\n} from './utils.js';\n\nconst api = {\n DICOMwebClient,\n};\nconst utils = {\n getStudyInstanceUIDFromUri,\n getSeriesInstanceUIDFromUri,\n getSOPInstanceUIDFromUri,\n getFrameNumbersFromUri,\n};\n\nexport { default as version } from './version.js';\n\nexport { api, utils };\n"],"names":["uint8ArrayToString","arr","offset","limit","itemLimit","length","str","i","String","fromCharCode","stringToUint8Array","Uint8Array","j","charCodeAt","identifyBoundary","header","parts","split","substr","containsToken","message","token","index","findToken","maxSearchLength","searchLength","Math","min","guid","s4","floor","random","toString","substring","multipartEncode","datasets","boundary","contentType","contentTypeString","footer","headerArray","footerArray","headerLength","footerLength","contentArrays","map","datasetBuffer","contentArray","contentLength","multipartArray","set","position","forEach","data","buffer","multipartDecode","response","ArrayBuffer","isView","separator","headerIndex","Error","boundaryString","boundaryLength","components","boundaryIndex","headerTokenIndex","spacingLength","slice","push","isObject","obj","isEmptyObject","Object","keys","constructor","areValidRequestHooks","requestHooks","isValid","Array","isArray","every","requestHook","console","warn","getFirstResult","result","MEDIATYPES","DICOM","DICOM_JSON","OCTET_STREAM","PDF","JPEG","PNG","debugLog","DICOMwebClient","options","baseURL","url","error","username","password","qidoURLPrefix","qidoURL","wadoURLPrefix","wadoURL","stowURLPrefix","stowURL","singlepart","headers","errorInterceptor","undefined","verbose","setDebug","debug","debugLevel","debugLogFunction","log","method","Promise","resolve","reject","request","XMLHttpRequest","open","responseType","key","setRequestHeader","userHeaders","onloadstart","onloadend","onreadystatechange","readyState","status","getResponseHeader","indexOf","progressCallback","onprogress","combinedHeaders","assign","metadata","pipeRequestHooks","functions","args","reduce","props","fn","pipedRequest","withCredentials","send","_httpRequest","params","urlWithQueryParams","_parseQueryParameters","Accept","_httpGet","mediaTypes","supportedMediaTypes","acceptHeaderFieldValue","_buildAcceptHeaderFieldValue","byteRange","rendered","Range","_buildRangeHeaderFieldValue","_buildMultipartAcceptHeaderFieldValue","defaultMediaType","acceptableMediaTypes","mediaType","values","_httpPost","queryParams","_httpGetApplicationJson","studyInstanceUID","seriesInstanceUID","transferSyntax","sopInstanceUID","paramString","join","frameNumbers","_httpGetMultipartApplicationOctetStream","sharedMediaTypes","_getSharedMediaTypes","commonMediaType","_getCommonMediaType","startsWith","_httpGetMultipartImage","_httpGetMultipartVideo","_httpGetImage","_httpGetVideo","_httpGetText","_httpGetApplicationPdf","_httpGetMultipartApplicationDicom","then","BulkDataURI","e","queryString","encodeURIComponent","sepIndex","mediaTypeType","types","includes","_assertMediaTypeIsValid","fieldValueParts","item","transferSyntaxUID","fieldValue","flat","endsWith","expectedMediaTypes","actualType","_parseMediaType","expectedMediaType","expectedType","haveSameType","JSON","stringify","Set","type","add","from","findSubstring","before","after","beforeIndex","lastIndexOf","afterIndex","getStudyInstanceUIDFromUri","uri","uid","getSeriesInstanceUIDFromUri","getSOPInstanceUIDFromUri","getFrameNumbersFromUri","numbers","api","utils"],"mappings":"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"} \ No newline at end of file diff --git a/adit/upload/templates/upload/upload_job_form.html b/adit/upload/templates/upload/upload_job_form.html new file mode 100644 index 00000000..e430428b --- /dev/null +++ b/adit/upload/templates/upload/upload_job_form.html @@ -0,0 +1,70 @@ +{% extends "upload/upload_layout.html" %} +{% load crispy from crispy_forms_tags %} +{% block content %} + +
+
{% include "upload/upload_job_form_swappable.html" %}
+
+ +
+ + +
+
+ Drop files here +
+
+

+
+
+ + +
+
+ + +

+
+
+
+{% endblock content %} +{% block bottom %} +{% endblock bottom %} diff --git a/adit/upload/templates/upload/upload_job_form_swappable.html b/adit/upload/templates/upload/upload_job_form_swappable.html new file mode 100644 index 00000000..af576928 --- /dev/null +++ b/adit/upload/templates/upload/upload_job_form_swappable.html @@ -0,0 +1,2 @@ +{% load crispy from crispy_forms_tags %} +{% crispy form %} diff --git a/adit/upload/templates/upload/upload_layout.html b/adit/upload/templates/upload/upload_layout.html new file mode 100644 index 00000000..26cbbb13 --- /dev/null +++ b/adit/upload/templates/upload/upload_layout.html @@ -0,0 +1,17 @@ +{% extends "core/core_layout.html" %} +{% load static from static %} +{% block script %} + {{ block.super }} + + + + +{% endblock script %} +{% block heading %} +
+

+ New Data Upload Job + {% comment %} {% include "core/_help_button.html" %} {% endcomment %} +

+
+{% endblock heading %} diff --git a/adit/upload/tests.py b/adit/upload/tests.py new file mode 100644 index 00000000..7ce503c2 --- /dev/null +++ b/adit/upload/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/adit/upload/tests/conftest.py b/adit/upload/tests/conftest.py new file mode 100644 index 00000000..8f4b7852 --- /dev/null +++ b/adit/upload/tests/conftest.py @@ -0,0 +1,10 @@ +import pytest +from adit_radis_shared.accounts.factories import GroupFactory +from adit_radis_shared.common.utils.auth_utils import add_permission + + +@pytest.fixture +def upload_group(db): + group = GroupFactory.create(name="Radiologists") + add_permission(group, "upload", "can_upload_data") + return group diff --git a/adit/upload/tests/integration/conftest.py b/adit/upload/tests/integration/conftest.py new file mode 100644 index 00000000..3f4c0f4e --- /dev/null +++ b/adit/upload/tests/integration/conftest.py @@ -0,0 +1,51 @@ +import io +import os +import tempfile +from typing import Any, Dict, Iterable + +import pytest +from django.conf import settings + +from adit.core.utils.dicom_utils import read_dataset + +# Workaround to make playwright work with Django +# see https://github.com/microsoft/playwright-pytest/issues/29#issuecomment-731515676 +os.environ.setdefault("DJANGO_ALLOW_ASYNC_UNSAFE", "true") + + +@pytest.fixture +def uploadable_test_dicoms(): + def _test_dicoms(patient_id: str) -> Iterable[Dict[str, Any | str | bytes]]: + test_dicoms_path = settings.BASE_DIR / "samples" / "dicoms" / patient_id + for root, _, files in os.walk(test_dicoms_path): + if len(files) != 0: + for file in files: + try: + ds = read_dataset(os.path.join(root, file)) + buffer = io.BytesIO() + ds.save_as(buffer) + except Exception: + continue + yield { + "name": ds.SOPInstanceUID, + "mimeType": "text/plain", + "buffer": buffer.getvalue(), + } + + return _test_dicoms + + +@pytest.fixture +def noncompatible_test_file(): + def _noncompatible_file(): + with tempfile.NamedTemporaryFile(delete=False, suffix=".txt") as tmp_file: + tmp_file.write(b"This is a test text file.") + tmp_file.seek(0) + buffer = io.BytesIO(tmp_file.read()) + return { + "name": tmp_file.name, + "mimeType": "text/plain", + "buffer": buffer.getvalue(), + } + + return _noncompatible_file diff --git a/adit/upload/tests/integration/test_upload.py b/adit/upload/tests/integration/test_upload.py new file mode 100644 index 00000000..fbb3f277 --- /dev/null +++ b/adit/upload/tests/integration/test_upload.py @@ -0,0 +1,254 @@ +from typing import Callable + +import pytest +from adit_radis_shared.accounts.models import User +from adit_radis_shared.common.utils.auth_utils import add_user_to_group +from faker import Faker +from playwright.sync_api import Locator, Page, expect + +from adit.core.models import DicomServer +from adit.core.utils.auth_utils import grant_access +from adit.core.utils.dicom_dataset import QueryDataset +from adit.core.utils.dicom_operator import DicomOperator + +fake = Faker() + + +@pytest.mark.django_db(transaction=True) +def test_clear_files( + page: Page, + poll: Callable[[Locator], Locator], + dimse_orthancs, + channels_live_server, + create_and_login_user, + upload_group, + uploadable_test_dicoms, +): + user: User = create_and_login_user(channels_live_server.url) + add_user_to_group(user, upload_group) + grant_access(upload_group, dimse_orthancs[1], destination=True) + + page.on("console", lambda msg: print(msg.text)) + + page.goto(channels_live_server.url + "/upload/jobs/new") + page.get_by_label("Destination").select_option(label="DICOM Server Orthanc Test Server 2") + page.get_by_label("Pseudonym").fill("Test pseudonym") + file = next(uploadable_test_dicoms("1001")) + page.get_by_label("Choose a directory").set_input_files(files=[file]) + + assert page.get_by_label("Choose a directory").input_value() + + expect(poll(page.locator("button#uploadButton"))).to_be_visible() + expect(poll(page.locator("button#clearButton"))).to_be_visible() + + page.locator("button#clearButton").click() + + expect(page.locator("button#uploadButton")).to_be_hidden() + expect(page.locator("button#clearButton")).to_be_hidden() + expect(page.locator("p#fileCountText")).to_be_hidden() + + assert not page.get_by_label("Choose a directory").input_value() + + +@pytest.mark.django_db(transaction=True) +def test_stop_upload( + page: Page, + poll: Callable[[Locator], Locator], + dimse_orthancs, + channels_live_server, + create_and_login_user, + upload_group, + uploadable_test_dicoms, +): + user: User = create_and_login_user(channels_live_server.url) + add_user_to_group(user, upload_group) + grant_access(upload_group, dimse_orthancs[1], destination=True) + + page.on("console", lambda msg: print(msg.text)) + + page.goto(channels_live_server.url + "/upload/jobs/new") + page.get_by_label("Destination").select_option(label="DICOM Server Orthanc Test Server 2") + page.get_by_label("Pseudonym").fill("Test pseudonym") + file = next(uploadable_test_dicoms("1001")) + page.get_by_label("Choose a directory").set_input_files(files=[file]) + + expect(poll(page.locator("button#uploadButton"))).to_be_visible() + expect(poll(page.locator("button#clearButton"))).to_be_visible() + + page.locator("button#uploadButton").click() + + expect(poll(page.locator("button#stopUploadButton"))).to_be_visible() + page.locator("button#stopUploadButton").click() + + page.wait_for_selector("p#uploadCompleteText") + expect(page.locator("p#uploadCompleteText")).to_contain_text("Upload Cancelled") + + +@pytest.mark.django_db(transaction=True) +def test_upload_full( + page: Page, + poll: Callable[[Locator], Locator], + dimse_orthancs, + channels_live_server, + create_and_login_user, + upload_group, + uploadable_test_dicoms, +): + user: User = create_and_login_user(channels_live_server.url) + add_user_to_group(user, upload_group) + grant_access(upload_group, dimse_orthancs[1], destination=True) + + page.on("console", lambda msg: print(msg.text)) + + page.goto(channels_live_server.url + "/upload/jobs/new") + page.get_by_label("Destination").select_option(label="DICOM Server Orthanc Test Server 2") + page.get_by_label("Pseudonym").fill("Test pseudonym") + file = next(uploadable_test_dicoms("1001")) + + page.get_by_label("Choose a directory").set_input_files(files=[file]) + + expect(poll(page.locator("button#uploadButton"))).to_be_visible() + expect(poll(page.locator("button#clearButton"))).to_be_visible() + + page.locator("button#uploadButton").click() + + expect(poll(page.locator("button#stopUploadButton"))).to_be_visible() + + page.wait_for_selector("p#uploadCompleteText") + + expect(page.locator("p#uploadCompleteText")).to_contain_text("Upload Successful!") + + +@pytest.mark.django_db(transaction=True) +def test_upload_unsupported_file_type( + page: Page, + poll: Callable[[Locator], Locator], + dimse_orthancs, + channels_live_server, + create_and_login_user, + upload_group, + noncompatible_test_file, +): + user: User = create_and_login_user(channels_live_server.url) + add_user_to_group(user, upload_group) + grant_access(upload_group, dimse_orthancs[1], destination=True) + + page.on("console", lambda msg: print(msg.text)) + + page.goto(channels_live_server.url + "/upload/jobs/new") + page.get_by_label("Destination").select_option(label="DICOM Server Orthanc Test Server 2") + page.get_by_label("Pseudonym").fill("Test pseudonym") + + tmp = noncompatible_test_file() + page.get_by_label("Choose a directory").set_input_files(files=[tmp]) + + expect(poll(page.locator("button#uploadButton"))).to_be_visible() + expect(poll(page.locator("button#clearButton"))).to_be_visible() + + page.locator("button#uploadButton").click() + page.wait_for_selector("p#uploadCompleteText") + + expect(page.locator("p#uploadCompleteText")).to_contain_text("Upload Failed due to an Error") + + +@pytest.mark.django_db(transaction=True) +def test_upload_without_pseudonym( + page: Page, + poll: Callable[[Locator], Locator], + dimse_orthancs, + channels_live_server, + create_and_login_user, + upload_group, + uploadable_test_dicoms, +): + user: User = create_and_login_user(channels_live_server.url) + add_user_to_group(user, upload_group) + grant_access(upload_group, dimse_orthancs[1], destination=True) + page.on("console", lambda msg: print(msg.text)) + page.goto(channels_live_server.url + "/upload/jobs/new") + page.get_by_label("Destination").select_option(label="DICOM Server Orthanc Test Server 2") + file = next(uploadable_test_dicoms("1001")) + page.get_by_label("Choose a directory").set_input_files(files=[file]) + + expect(poll(page.locator("button#uploadButton"))).to_be_visible() + expect(poll(page.locator("button#clearButton"))).to_be_visible() + + page.locator("button#uploadButton").click() + error_message = page.locator("#div_id_pseudonym") + + expect(error_message).to_contain_text("This field is required.") + + +@pytest.mark.django_db(transaction=True) +def test_upload_without_destination( + page: Page, + poll: Callable[[Locator], Locator], + dimse_orthancs, + channels_live_server, + create_and_login_user, + upload_group, + uploadable_test_dicoms, +): + user: User = create_and_login_user(channels_live_server.url) + add_user_to_group(user, upload_group) + grant_access(upload_group, dimse_orthancs[1], destination=True) + + page.on("console", lambda msg: print(msg.text)) + page.goto(channels_live_server.url + "/upload/jobs/new") + page.get_by_label("Pseudonym").fill("Test pseudonym") + file = next(uploadable_test_dicoms("1001")) + page.get_by_label("Choose a directory").set_input_files(files=[file]) + + expect(poll(page.locator("button#uploadButton"))).to_be_visible() + expect(poll(page.locator("button#clearButton"))).to_be_visible() + + page.locator("button#uploadButton").click() + error_message = page.locator("#div_id_destination") + + expect(error_message).to_contain_text("This field is required.") + + +@pytest.mark.django_db(transaction=True) +def test_pseudonym_is_used_as_patientID( + page: Page, + poll: Callable[[Locator], Locator], + dimse_orthancs, + channels_live_server, + create_and_login_user, + upload_group, + uploadable_test_dicoms, +): + # Arrange + user: User = create_and_login_user(channels_live_server.url) + add_user_to_group(user, upload_group) + grant_access(upload_group, dimse_orthancs[1], destination=True) + + page.on("console", lambda msg: print(msg.text)) + page.goto(channels_live_server.url + "/upload/jobs/new") + page.get_by_label("Destination").select_option(label="DICOM Server Orthanc Test Server 2") + + test_pseudonym = "Patient #" + str(fake.random_int(min=10, max=1000)) + page.get_by_label("Pseudonym").fill(test_pseudonym) + + file = next(uploadable_test_dicoms("1001")) + + page.get_by_label("Choose a directory").set_input_files(files=[file]) + + expect(poll(page.locator("button#uploadButton"))).to_be_visible() + expect(poll(page.locator("button#clearButton"))).to_be_visible() + + page.locator("button#uploadButton").click() + + expect(poll(page.locator("button#stopUploadButton"))).to_be_visible() + + page.wait_for_selector("p#uploadCompleteText") + + expect(page.locator("p#uploadCompleteText")).to_contain_text("Upload Successful!") + + destination_node = DicomServer.objects.get(id="14") + orthanc_operator = DicomOperator(destination_node) + found_patients = orthanc_operator.find_patients(QueryDataset.create(PatientID=test_pseudonym)) + found_patients_list = list(found_patients) + + assert found_patients_list[0].PatientID == test_pseudonym + assert found_patients_list[0].NumberOfPatientRelatedStudies == 1 diff --git a/adit/upload/tests/test_views.py b/adit/upload/tests/test_views.py new file mode 100644 index 00000000..e8f822e5 --- /dev/null +++ b/adit/upload/tests/test_views.py @@ -0,0 +1,21 @@ +import pytest +from adit_radis_shared.accounts.factories import UserFactory +from django.urls import reverse + + +@pytest.mark.django_db +def test_user_must_have_permission_to_access_view(client): + user = UserFactory.create() + client.force_login(user) + response = client.get(reverse("upload_create")) + assert response.status_code == 403 + response = client.post(reverse("data_upload", kwargs={"node_id": 1})) + assert response.status_code == 403 + + +@pytest.mark.django_db +def test_user_must_be_logged_in_to_access_view(client): + response = client.get(reverse("upload_create")) + assert response.status_code == 302 + response = client.post(reverse("data_upload", kwargs={"node_id": 1})) + assert response.status_code == 302 diff --git a/adit/upload/urls.py b/adit/upload/urls.py new file mode 100644 index 00000000..3598ad69 --- /dev/null +++ b/adit/upload/urls.py @@ -0,0 +1,16 @@ +from django.urls import path + +from .views import UploadCreateView, UploadUpdatePreferencesView, upload_api_view + +urlpatterns = [ + path( + "update-preferences/", + UploadUpdatePreferencesView.as_view(), + ), + path( + "jobs/new/", + UploadCreateView.as_view(), + name="upload_create", + ), + path("data-upload//", view=upload_api_view, name="data_upload"), +] diff --git a/adit/upload/views.py b/adit/upload/views.py new file mode 100644 index 00000000..a845c799 --- /dev/null +++ b/adit/upload/views.py @@ -0,0 +1,129 @@ +import asyncio +from io import BytesIO +from typing import Any + +from adit_radis_shared.common.decorators import login_required_async +from adit_radis_shared.common.types import AuthenticatedHttpRequest +from asgiref.sync import sync_to_async +from django.contrib.auth.mixins import ( + LoginRequiredMixin, + PermissionRequiredMixin, +) +from django.core.exceptions import PermissionDenied, SuspiciousOperation +from django.http import HttpResponse +from django.shortcuts import render +from django.views.generic.edit import FormView +from django_htmx.http import trigger_client_event + +from adit.core.models import DicomServer +from adit.core.utils.dicom_operator import DicomOperator +from adit.core.utils.dicom_utils import read_dataset +from adit.core.views import BaseUpdatePreferencesView + +from .forms import UploadForm + +UPLOAD_SOURCE = "upload_source" +UPLOAD_DESTINATION = "upload_destination" + + +class UploadUpdatePreferencesView(BaseUpdatePreferencesView): + allowed_keys: list[str] = [ + UPLOAD_SOURCE, + UPLOAD_DESTINATION, + ] + + +class UploadCreateView( + LoginRequiredMixin, + PermissionRequiredMixin, + FormView, +): + template_name = "upload/upload_job_form.html" + form_class = UploadForm + permission_required = "upload.can_upload_data" + request: AuthenticatedHttpRequest + + def get_form_kwargs(self) -> dict[str, Any]: + kwargs = super().get_form_kwargs() + kwargs["action"] = self.request.POST.get("action") + kwargs["user"] = self.request.user + + return kwargs + + def get_initial(self): + initial = super().get_initial() + preferences: dict[str, Any] = self.request.user.preferences + source = preferences.get(UPLOAD_SOURCE) + destination = preferences.get(UPLOAD_DESTINATION) + + if source is not None: + initial["source"] = source + + if destination is not None: + initial["destination"] = destination + + return initial + + def post(self, request: AuthenticatedHttpRequest, *args, **kwargs): + if not request.htmx: + raise SuspiciousOperation("Only accessible by HTMX") + + form = UploadForm( + request.POST, + user=request.user, + action="transfer", + ) + if form.is_valid(): + return trigger_client_event( + render(request, "upload/upload_job_form_swappable.html", {"form": form}), + "chooseFolder", + ) + + else: + return render(request, "upload/upload_job_form_swappable.html", {"form": form}) + + +@login_required_async +async def upload_api_view(request: AuthenticatedHttpRequest, node_id: str) -> HttpResponse: + if request.method != "POST": + return HttpResponse(status=405) + + has_permission = await sync_to_async(lambda: request.user.has_perm("upload.can_upload_data"))() + + if not has_permission: + raise PermissionDenied() + + data = request.FILES + + destination_node = await DicomServer.objects.aget(id=node_id) + + node_accessible = await sync_to_async( + lambda: destination_node.is_accessible_by_user(request.user, "destination") + )() + if not node_accessible: + raise PermissionDenied() + else: + operator = DicomOperator(destination_node) + + if "dataset" in data: + dataset_bytes = BytesIO(data["dataset"].read()) + dataset = read_dataset(dataset_bytes) + + if dataset is None: + return HttpResponse(status=400, content="No data received") + try: + loop = asyncio.get_event_loop() + await loop.run_in_executor(None, operator.upload_instances, [dataset]) + + status = 200 + message = "Upload successful" + + except Exception: + status = 500 + message = "Upload failed" + + response = HttpResponse(status=status, content=message) + + response["statusText"] = response.reason_phrase + + return response diff --git a/adit/urls.py b/adit/urls.py index 9d741075..4ac27151 100644 --- a/adit/urls.py +++ b/adit/urls.py @@ -30,6 +30,7 @@ path("dicom-explorer/", include("adit.dicom_explorer.urls")), path("token-authentication/", include("adit_radis_shared.token_authentication.urls")), path("api/dicom-web/", include("adit.dicom_web.urls")), + path("upload/", include("adit.upload.urls")), ] # Debug Toolbar in Debug mode only diff --git a/globals.d.ts b/globals.d.ts index 3aa16e38..ac440bd4 100644 --- a/globals.d.ts +++ b/globals.d.ts @@ -2,5 +2,7 @@ export {}; declare global { var htmx: any; + var dcmjs: any; + var Anonymizer: any; var public: any; } diff --git a/jsconfig.json b/jsconfig.json index 079349d2..c56915c4 100644 --- a/jsconfig.json +++ b/jsconfig.json @@ -1,7 +1,14 @@ { "compilerOptions": { "checkJs": true, - "target": "ES6" + "target": "ES6", + "paths": { + "dcmjs": ["./adit/upload/static/vendor/dcmjs.js"], + "dicomweb-client": ["./adit/upload/static/vendor/dicomweb-client.js"], + "dicom-web-anonymizer": [ + "./adit/upload/static/vendor/dicom-web-anonymizer.js" + ] + } }, "include": ["./globals.d.ts", "./**/static/**/*.js"] } diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 00000000..e8e2e1b8 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,165 @@ +{ + "name": "adit", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "dependencies": { + "dicom-web-anonymizer": "^0.1.1", + "dicomweb-client": "^0.10.4" + } + }, + "node_modules/@babel/runtime-corejs3": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.25.0.tgz", + "integrity": "sha512-BOehWE7MgQ8W8Qn0CQnMtg2tHPHPulcS/5AVpFvs2KCK1ET+0WqZqPvnpRpFN81gYoFopdIEJX9Sgjw3ZBccPg==", + "dependencies": { + "core-js-pure": "^3.30.2", + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/adm-zip": { + "version": "0.5.15", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.15.tgz", + "integrity": "sha512-jYPWSeOA8EFoZnucrKCNihqBjoEGQSU4HKgHYQgKNEQ0pQF9a/DYuo/+fAxY76k4qe75LUlLWpAM1QWcBMTOKw==", + "engines": { + "node": ">=12.0" + } + }, + "node_modules/core-js-pure": { + "version": "3.38.1", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.38.1.tgz", + "integrity": "sha512-BY8Etc1FZqdw1glX0XNOq2FDwfrg/VGqoZOZCdaL+UmdaqDwQwYXkMJT4t6In+zfEfOJDcM9T0KdbBeJg8KKCQ==", + "hasInstallScript": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/dcmjs": { + "version": "0.30.3", + "resolved": "https://registry.npmjs.org/dcmjs/-/dcmjs-0.30.3.tgz", + "integrity": "sha512-X/TlD6B506J+2HvB2MRU75f7qTb9aye7KqiGi9EM1nDv8AADgRNN+SsPwZ9aq326hwrMij8z2k/oKsaOruFZGw==", + "dependencies": { + "@babel/runtime-corejs3": "^7.22.5", + "adm-zip": "^0.5.10", + "gl-matrix": "^3.1.0", + "lodash.clonedeep": "^4.5.0", + "loglevelnext": "^3.0.1", + "ndarray": "^1.0.19", + "pako": "^2.0.4" + } + }, + "node_modules/dicom-web-anonymizer": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/dicom-web-anonymizer/-/dicom-web-anonymizer-0.1.1.tgz", + "integrity": "sha512-TvqXQvjoizWTQeST4ewWzmCEAohlG2Xv4z256R1iJ2K+K7ZoNvTqfML5rqJyfxM5fZ4bQjEc/dxv7QJ/IBKD2g==", + "dependencies": { + "dcmjs": "^0.30.1", + "fs": "^0.0.1-security", + "get-random-values": "^3.0.0" + } + }, + "node_modules/dicomweb-client": { + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/dicomweb-client/-/dicomweb-client-0.10.4.tgz", + "integrity": "sha512-TEt26c0JI37IGmSqoj1k1/Y/ZIyq33/ysVaUwE0/Haosn2IBM55NEIPkT+AnhFss2nFAMVtKKWKWLox4luthVw==" + }, + "node_modules/dom-walk": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", + "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==" + }, + "node_modules/fs": { + "version": "0.0.1-security", + "resolved": "https://registry.npmjs.org/fs/-/fs-0.0.1-security.tgz", + "integrity": "sha512-3XY9e1pP0CVEUCdj5BmfIZxRBTSDycnbqhIOGec9QYtmVH2fbLpj86CFWkrNOkt/Fvty4KZG5lTglL9j/gJ87w==" + }, + "node_modules/get-random-values": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-random-values/-/get-random-values-3.0.0.tgz", + "integrity": "sha512-mNznaBdYcpz7UAdnOtDGcLdNwAa79mXl5htEyyZ51YaeAWNf2g4x/2yCVBdNNTbi35wX0Stc2PJXM7G6rcONOA==", + "dependencies": { + "global": "^4.4.0" + }, + "engines": { + "node": "18 || >=20" + } + }, + "node_modules/gl-matrix": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/gl-matrix/-/gl-matrix-3.4.3.tgz", + "integrity": "sha512-wcCp8vu8FT22BnvKVPjXa/ICBWRq/zjFfdofZy1WSpQZpphblv12/bOQLBC1rMM7SGOFS9ltVmKOHil5+Ml7gA==" + }, + "node_modules/global": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", + "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", + "dependencies": { + "min-document": "^2.19.0", + "process": "^0.11.10" + } + }, + "node_modules/iota-array": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/iota-array/-/iota-array-1.0.0.tgz", + "integrity": "sha512-pZ2xT+LOHckCatGQ3DcG/a+QuEqvoxqkiL7tvE8nn3uuu+f6i1TtpB5/FtWFbxUuVr5PZCx8KskuGatbJDXOWA==" + }, + "node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "node_modules/lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==" + }, + "node_modules/loglevelnext": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/loglevelnext/-/loglevelnext-3.0.1.tgz", + "integrity": "sha512-JpjaJhIN1reaSb26SIxDGtE0uc67gPl19OMVHrr+Ggt6b/Vy60jmCtKgQBrygAH0bhRA2nkxgDvM+8QvR8r0YA==", + "engines": { + "node": ">= 6.14.4" + } + }, + "node_modules/min-document": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", + "integrity": "sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==", + "dependencies": { + "dom-walk": "^0.1.0" + } + }, + "node_modules/ndarray": { + "version": "1.0.19", + "resolved": "https://registry.npmjs.org/ndarray/-/ndarray-1.0.19.tgz", + "integrity": "sha512-B4JHA4vdyZU30ELBw3g7/p9bZupyew5a7tX1Y/gGeF2hafrPaQZhgrGQfsvgfYbgdFZjYwuEcnaobeM/WMW+HQ==", + "dependencies": { + "iota-array": "^1.0.0", + "is-buffer": "^1.0.2" + } + }, + "node_modules/pako": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/pako/-/pako-2.1.0.tgz", + "integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==" + }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 00000000..6238909b --- /dev/null +++ b/package.json @@ -0,0 +1,6 @@ +{ + "dependencies": { + "dicom-web-anonymizer": "^0.1.1", + "dicomweb-client": "^0.10.4" + } +} diff --git a/tasks.py b/tasks.py index d3125921..1e0f07de 100644 --- a/tasks.py +++ b/tasks.py @@ -1,3 +1,6 @@ +import os +import shutil +from glob import glob from pathlib import Path from adit_radis_shared import invoke_tasks @@ -27,8 +30,38 @@ invoke_tasks.PROJECT_DIR = Path(__file__).resolve().parent +@task +def upgrade(ctx: Context): + """Upgrade Python and JS packages""" + ctx.run("poetry update", pty=True) + ctx.run("npm update", pty=True) + copy_statics(ctx) + + @task def reset_orthancs(ctx: Context, env: invoke_tasks.Environments = "dev"): """Reset Orthancs""" cmd = f"{invoke_tasks.build_compose_cmd(env)} exec web python manage.py reset_orthancs" ctx.run(cmd, pty=True) + + +@task +def copy_statics(ctx: Context): + """Copy JS and CSS dependencies from node_modules to static vendor folder""" + print("Copying statics...") + + target_folder = "adit/upload/static/vendor" + + def copy_file(file: str, filename: str | None = None): + if not filename: + shutil.copy(file, target_folder) + else: + target_file = os.path.join(target_folder, filename) + shutil.copy(file, target_file) + + for file in glob("node_modules/dcmjs/build/dcmjs.js*"): + copy_file(file) + for file in glob("node_modules/dicomweb-client/build/dicomweb-client.js*"): + copy_file(file) + for file in glob("node_modules/dicom-web-anonymizer/dist/dicom-web-anonymizer.*"): + copy_file(file) From ffd15d12e7d66a7452266aa9fbbc16f47aacec36 Mon Sep 17 00:00:00 2001 From: LucaDulz Date: Wed, 28 Aug 2024 15:05:43 +0000 Subject: [PATCH 02/20] deleted a comment --- adit/upload/templates/upload/upload_layout.html | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/adit/upload/templates/upload/upload_layout.html b/adit/upload/templates/upload/upload_layout.html index 26cbbb13..19fa06fc 100644 --- a/adit/upload/templates/upload/upload_layout.html +++ b/adit/upload/templates/upload/upload_layout.html @@ -9,9 +9,6 @@ {% endblock script %} {% block heading %}
-

- New Data Upload Job - {% comment %} {% include "core/_help_button.html" %} {% endcomment %} -

+

New Data Upload Job

{% endblock heading %} From 09b86eb57604bad6c53b56f257904527367eff15 Mon Sep 17 00:00:00 2001 From: LucaDulz Date: Wed, 28 Aug 2024 15:18:37 +0000 Subject: [PATCH 03/20] delete package-lock.json and package.json files --- package-lock.json | 165 ---------------------------------------------- package.json | 6 -- 2 files changed, 171 deletions(-) delete mode 100644 package-lock.json delete mode 100644 package.json diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index e8e2e1b8..00000000 --- a/package-lock.json +++ /dev/null @@ -1,165 +0,0 @@ -{ - "name": "adit", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "dependencies": { - "dicom-web-anonymizer": "^0.1.1", - "dicomweb-client": "^0.10.4" - } - }, - "node_modules/@babel/runtime-corejs3": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.25.0.tgz", - "integrity": "sha512-BOehWE7MgQ8W8Qn0CQnMtg2tHPHPulcS/5AVpFvs2KCK1ET+0WqZqPvnpRpFN81gYoFopdIEJX9Sgjw3ZBccPg==", - "dependencies": { - "core-js-pure": "^3.30.2", - "regenerator-runtime": "^0.14.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/adm-zip": { - "version": "0.5.15", - "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.15.tgz", - "integrity": "sha512-jYPWSeOA8EFoZnucrKCNihqBjoEGQSU4HKgHYQgKNEQ0pQF9a/DYuo/+fAxY76k4qe75LUlLWpAM1QWcBMTOKw==", - "engines": { - "node": ">=12.0" - } - }, - "node_modules/core-js-pure": { - "version": "3.38.1", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.38.1.tgz", - "integrity": "sha512-BY8Etc1FZqdw1glX0XNOq2FDwfrg/VGqoZOZCdaL+UmdaqDwQwYXkMJT4t6In+zfEfOJDcM9T0KdbBeJg8KKCQ==", - "hasInstallScript": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/dcmjs": { - "version": "0.30.3", - "resolved": "https://registry.npmjs.org/dcmjs/-/dcmjs-0.30.3.tgz", - "integrity": "sha512-X/TlD6B506J+2HvB2MRU75f7qTb9aye7KqiGi9EM1nDv8AADgRNN+SsPwZ9aq326hwrMij8z2k/oKsaOruFZGw==", - "dependencies": { - "@babel/runtime-corejs3": "^7.22.5", - "adm-zip": "^0.5.10", - "gl-matrix": "^3.1.0", - "lodash.clonedeep": "^4.5.0", - "loglevelnext": "^3.0.1", - "ndarray": "^1.0.19", - "pako": "^2.0.4" - } - }, - "node_modules/dicom-web-anonymizer": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/dicom-web-anonymizer/-/dicom-web-anonymizer-0.1.1.tgz", - "integrity": "sha512-TvqXQvjoizWTQeST4ewWzmCEAohlG2Xv4z256R1iJ2K+K7ZoNvTqfML5rqJyfxM5fZ4bQjEc/dxv7QJ/IBKD2g==", - "dependencies": { - "dcmjs": "^0.30.1", - "fs": "^0.0.1-security", - "get-random-values": "^3.0.0" - } - }, - "node_modules/dicomweb-client": { - "version": "0.10.4", - "resolved": "https://registry.npmjs.org/dicomweb-client/-/dicomweb-client-0.10.4.tgz", - "integrity": "sha512-TEt26c0JI37IGmSqoj1k1/Y/ZIyq33/ysVaUwE0/Haosn2IBM55NEIPkT+AnhFss2nFAMVtKKWKWLox4luthVw==" - }, - "node_modules/dom-walk": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", - "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==" - }, - "node_modules/fs": { - "version": "0.0.1-security", - "resolved": "https://registry.npmjs.org/fs/-/fs-0.0.1-security.tgz", - "integrity": "sha512-3XY9e1pP0CVEUCdj5BmfIZxRBTSDycnbqhIOGec9QYtmVH2fbLpj86CFWkrNOkt/Fvty4KZG5lTglL9j/gJ87w==" - }, - "node_modules/get-random-values": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-random-values/-/get-random-values-3.0.0.tgz", - "integrity": "sha512-mNznaBdYcpz7UAdnOtDGcLdNwAa79mXl5htEyyZ51YaeAWNf2g4x/2yCVBdNNTbi35wX0Stc2PJXM7G6rcONOA==", - "dependencies": { - "global": "^4.4.0" - }, - "engines": { - "node": "18 || >=20" - } - }, - "node_modules/gl-matrix": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/gl-matrix/-/gl-matrix-3.4.3.tgz", - "integrity": "sha512-wcCp8vu8FT22BnvKVPjXa/ICBWRq/zjFfdofZy1WSpQZpphblv12/bOQLBC1rMM7SGOFS9ltVmKOHil5+Ml7gA==" - }, - "node_modules/global": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", - "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", - "dependencies": { - "min-document": "^2.19.0", - "process": "^0.11.10" - } - }, - "node_modules/iota-array": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/iota-array/-/iota-array-1.0.0.tgz", - "integrity": "sha512-pZ2xT+LOHckCatGQ3DcG/a+QuEqvoxqkiL7tvE8nn3uuu+f6i1TtpB5/FtWFbxUuVr5PZCx8KskuGatbJDXOWA==" - }, - "node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "node_modules/lodash.clonedeep": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", - "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==" - }, - "node_modules/loglevelnext": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/loglevelnext/-/loglevelnext-3.0.1.tgz", - "integrity": "sha512-JpjaJhIN1reaSb26SIxDGtE0uc67gPl19OMVHrr+Ggt6b/Vy60jmCtKgQBrygAH0bhRA2nkxgDvM+8QvR8r0YA==", - "engines": { - "node": ">= 6.14.4" - } - }, - "node_modules/min-document": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", - "integrity": "sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==", - "dependencies": { - "dom-walk": "^0.1.0" - } - }, - "node_modules/ndarray": { - "version": "1.0.19", - "resolved": "https://registry.npmjs.org/ndarray/-/ndarray-1.0.19.tgz", - "integrity": "sha512-B4JHA4vdyZU30ELBw3g7/p9bZupyew5a7tX1Y/gGeF2hafrPaQZhgrGQfsvgfYbgdFZjYwuEcnaobeM/WMW+HQ==", - "dependencies": { - "iota-array": "^1.0.0", - "is-buffer": "^1.0.2" - } - }, - "node_modules/pako": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/pako/-/pako-2.1.0.tgz", - "integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==" - }, - "node_modules/process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/regenerator-runtime": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", - "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" - } - } -} diff --git a/package.json b/package.json deleted file mode 100644 index 6238909b..00000000 --- a/package.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "dependencies": { - "dicom-web-anonymizer": "^0.1.1", - "dicomweb-client": "^0.10.4" - } -} From e27f8007600e7b3ae116df703a3efa54aadfcbb7 Mon Sep 17 00:00:00 2001 From: LucaDulz Date: Thu, 29 Aug 2024 15:18:03 +0000 Subject: [PATCH 04/20] parse seed env variable for Anonymizer to Javascript --- adit/settings/base.py | 3 +++ adit/upload/static/upload/upload.js | 7 ++++--- adit/upload/templates/upload/upload_layout.html | 1 + adit/upload/views.py | 6 ++++++ example.env | 1 + 5 files changed, 15 insertions(+), 3 deletions(-) diff --git a/adit/settings/base.py b/adit/settings/base.py index 03739918..93ff1303 100644 --- a/adit/settings/base.py +++ b/adit/settings/base.py @@ -435,3 +435,6 @@ "StudyDate", "StudyTime", ] + +# Secret seed for Patient data anonymization +ANONYMIZATION_SEED = env.str("ANONYMIZATION_SEED", default="") # type: ignore diff --git a/adit/upload/static/upload/upload.js b/adit/upload/static/upload/upload.js index fb1eeaf5..c1c7a149 100644 --- a/adit/upload/static/upload/upload.js +++ b/adit/upload/static/upload/upload.js @@ -44,7 +44,6 @@ function UploadJobForm(formEl) { }, onDestinationChange: function (ev) { this._updateIsDestinationFolder(ev.target); - updatePreferences("upload", { [UPLOAD_DESTINATION]: ev.target.value, }); @@ -225,14 +224,16 @@ function UploadJobForm(formEl) { if (pseudonym instanceof HTMLInputElement) { newPatientID = pseudonym.value; } - + const seed = JSON.parse( + document.getElementById("anon-seed-json").textContent + ); const anon = new Anonymizer( newPatientID, undefined, undefined, undefined, undefined, - 123456789 + seed ); return anon; diff --git a/adit/upload/templates/upload/upload_layout.html b/adit/upload/templates/upload/upload_layout.html index 19fa06fc..06237752 100644 --- a/adit/upload/templates/upload/upload_layout.html +++ b/adit/upload/templates/upload/upload_layout.html @@ -5,6 +5,7 @@ + {{ anon_seed|json_script:"anon-seed-json" }} {% endblock script %} {% block heading %} diff --git a/adit/upload/views.py b/adit/upload/views.py index a845c799..ca7cf65e 100644 --- a/adit/upload/views.py +++ b/adit/upload/views.py @@ -5,6 +5,7 @@ from adit_radis_shared.common.decorators import login_required_async from adit_radis_shared.common.types import AuthenticatedHttpRequest from asgiref.sync import sync_to_async +from django.conf import settings from django.contrib.auth.mixins import ( LoginRequiredMixin, PermissionRequiredMixin, @@ -43,6 +44,11 @@ class UploadCreateView( permission_required = "upload.can_upload_data" request: AuthenticatedHttpRequest + def get_context_data(self, **kwargs): + context = super().get_context_data(**kwargs) + context["anon_seed"] = settings.ANONYMIZATION_SEED + return context + def get_form_kwargs(self) -> dict[str, Any]: kwargs = super().get_form_kwargs() kwargs["action"] = self.request.POST.get("action") diff --git a/example.env b/example.env index e5a66baa..c42531c1 100644 --- a/example.env +++ b/example.env @@ -26,6 +26,7 @@ SITE_NAME=ADIT SSL_HOSTNAME=localhost SSL_IP_ADDRESSES=127.0.0.1 USER_TIME_ZONE=Europe/Berlin +ANONYMIZATION_SEED="123456789" # Docker swarm mode does not respect the Docker Proxy client configuration # (see https://docs.docker.com/network/proxy/#configure-the-docker-client). From c257f0cf3d9506bf9084aaa97356bed9d65b34ec Mon Sep 17 00:00:00 2001 From: LucaDulz Date: Mon, 2 Sep 2024 08:04:35 +0000 Subject: [PATCH 05/20] cleanup for CI --- adit/upload/models.py | 5 +++++ adit/upload/tests.py | 3 --- 2 files changed, 5 insertions(+), 3 deletions(-) delete mode 100644 adit/upload/tests.py diff --git a/adit/upload/models.py b/adit/upload/models.py index 961ec718..5928fbbc 100644 --- a/adit/upload/models.py +++ b/adit/upload/models.py @@ -9,9 +9,14 @@ class Meta: class UploadPermissionSupport(models.Model): + id: int + class Meta: managed = False default_permissions = () permissions = [ ("can_upload_data", "Can upload data"), ] + + def __str__(self) -> str: + return f"{self.__class__.__name__} [ID {self.id}]" diff --git a/adit/upload/tests.py b/adit/upload/tests.py deleted file mode 100644 index 7ce503c2..00000000 --- a/adit/upload/tests.py +++ /dev/null @@ -1,3 +0,0 @@ -from django.test import TestCase - -# Create your tests here. From d884d2a51684128135a4fe8032a0b748c9181177 Mon Sep 17 00:00:00 2001 From: LucaDulz Date: Mon, 2 Sep 2024 13:14:04 +0000 Subject: [PATCH 06/20] Use model pk instead of id and adapt to upgraded packages --- adit/upload/models.py | 4 +--- adit/upload/views.py | 11 +++++++---- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/adit/upload/models.py b/adit/upload/models.py index 5928fbbc..3ba8f1a2 100644 --- a/adit/upload/models.py +++ b/adit/upload/models.py @@ -9,8 +9,6 @@ class Meta: class UploadPermissionSupport(models.Model): - id: int - class Meta: managed = False default_permissions = () @@ -19,4 +17,4 @@ class Meta: ] def __str__(self) -> str: - return f"{self.__class__.__name__} [ID {self.id}]" + return f"{self.__class__.__name__} [{self.pk}]" diff --git a/adit/upload/views.py b/adit/upload/views.py index ca7cf65e..0f79c9e1 100644 --- a/adit/upload/views.py +++ b/adit/upload/views.py @@ -11,6 +11,7 @@ PermissionRequiredMixin, ) from django.core.exceptions import PermissionDenied, SuspiciousOperation +from django.core.files.uploadedfile import UploadedFile from django.http import HttpResponse from django.shortcuts import render from django.views.generic.edit import FormView @@ -99,7 +100,7 @@ async def upload_api_view(request: AuthenticatedHttpRequest, node_id: str) -> Ht if not has_permission: raise PermissionDenied() - data = request.FILES + file_data = request.FILES destination_node = await DicomServer.objects.aget(id=node_id) @@ -111,11 +112,13 @@ async def upload_api_view(request: AuthenticatedHttpRequest, node_id: str) -> Ht else: operator = DicomOperator(destination_node) - if "dataset" in data: - dataset_bytes = BytesIO(data["dataset"].read()) + if "dataset" in file_data: + uploaded_file = file_data["dataset"] + assert isinstance(uploaded_file, UploadedFile) + dataset_bytes = BytesIO(uploaded_file.read()) dataset = read_dataset(dataset_bytes) - if dataset is None: + if dataset is None or uploaded_file is None: return HttpResponse(status=400, content="No data received") try: loop = asyncio.get_event_loop() From 34b4174f183979668ac3c767d0097f22893dec7e Mon Sep 17 00:00:00 2001 From: LucaDulz Date: Mon, 2 Sep 2024 16:10:00 +0000 Subject: [PATCH 07/20] adapt tests to package updates --- adit/upload/tests/integration/conftest.py | 11 ++++++++ adit/upload/tests/integration/test_upload.py | 28 ++++++++++---------- 2 files changed, 25 insertions(+), 14 deletions(-) diff --git a/adit/upload/tests/integration/conftest.py b/adit/upload/tests/integration/conftest.py index 3f4c0f4e..a9c2e3e5 100644 --- a/adit/upload/tests/integration/conftest.py +++ b/adit/upload/tests/integration/conftest.py @@ -35,6 +35,17 @@ def _test_dicoms(patient_id: str) -> Iterable[Dict[str, Any | str | bytes]]: return _test_dicoms +@pytest.fixture +def provide_path_to_file_dir(): + def _test_dicoms(patient_id: str) -> Iterable[str]: + test_dicoms_path = settings.BASE_DIR / "samples" / "dicoms" / patient_id + folders = os.listdir(test_dicoms_path) + for folder in folders: + yield os.path.join(test_dicoms_path, folder) + + return _test_dicoms + + @pytest.fixture def noncompatible_test_file(): def _noncompatible_file(): diff --git a/adit/upload/tests/integration/test_upload.py b/adit/upload/tests/integration/test_upload.py index fbb3f277..454138f3 100644 --- a/adit/upload/tests/integration/test_upload.py +++ b/adit/upload/tests/integration/test_upload.py @@ -6,7 +6,6 @@ from faker import Faker from playwright.sync_api import Locator, Page, expect -from adit.core.models import DicomServer from adit.core.utils.auth_utils import grant_access from adit.core.utils.dicom_dataset import QueryDataset from adit.core.utils.dicom_operator import DicomOperator @@ -22,7 +21,7 @@ def test_clear_files( channels_live_server, create_and_login_user, upload_group, - uploadable_test_dicoms, + provide_path_to_file_dir, ): user: User = create_and_login_user(channels_live_server.url) add_user_to_group(user, upload_group) @@ -33,7 +32,7 @@ def test_clear_files( page.goto(channels_live_server.url + "/upload/jobs/new") page.get_by_label("Destination").select_option(label="DICOM Server Orthanc Test Server 2") page.get_by_label("Pseudonym").fill("Test pseudonym") - file = next(uploadable_test_dicoms("1001")) + file = next(provide_path_to_file_dir("1001")) page.get_by_label("Choose a directory").set_input_files(files=[file]) assert page.get_by_label("Choose a directory").input_value() @@ -58,7 +57,7 @@ def test_stop_upload( channels_live_server, create_and_login_user, upload_group, - uploadable_test_dicoms, + provide_path_to_file_dir, ): user: User = create_and_login_user(channels_live_server.url) add_user_to_group(user, upload_group) @@ -69,7 +68,7 @@ def test_stop_upload( page.goto(channels_live_server.url + "/upload/jobs/new") page.get_by_label("Destination").select_option(label="DICOM Server Orthanc Test Server 2") page.get_by_label("Pseudonym").fill("Test pseudonym") - file = next(uploadable_test_dicoms("1001")) + file = next(provide_path_to_file_dir("1001")) page.get_by_label("Choose a directory").set_input_files(files=[file]) expect(poll(page.locator("button#uploadButton"))).to_be_visible() @@ -92,7 +91,7 @@ def test_upload_full( channels_live_server, create_and_login_user, upload_group, - uploadable_test_dicoms, + provide_path_to_file_dir, ): user: User = create_and_login_user(channels_live_server.url) add_user_to_group(user, upload_group) @@ -103,7 +102,7 @@ def test_upload_full( page.goto(channels_live_server.url + "/upload/jobs/new") page.get_by_label("Destination").select_option(label="DICOM Server Orthanc Test Server 2") page.get_by_label("Pseudonym").fill("Test pseudonym") - file = next(uploadable_test_dicoms("1001")) + file = next(provide_path_to_file_dir("1001")) page.get_by_label("Choose a directory").set_input_files(files=[file]) @@ -187,7 +186,7 @@ def test_upload_without_destination( channels_live_server, create_and_login_user, upload_group, - uploadable_test_dicoms, + provide_path_to_file_dir, ): user: User = create_and_login_user(channels_live_server.url) add_user_to_group(user, upload_group) @@ -196,7 +195,7 @@ def test_upload_without_destination( page.on("console", lambda msg: print(msg.text)) page.goto(channels_live_server.url + "/upload/jobs/new") page.get_by_label("Pseudonym").fill("Test pseudonym") - file = next(uploadable_test_dicoms("1001")) + file = next(provide_path_to_file_dir("1001")) page.get_by_label("Choose a directory").set_input_files(files=[file]) expect(poll(page.locator("button#uploadButton"))).to_be_visible() @@ -216,21 +215,22 @@ def test_pseudonym_is_used_as_patientID( channels_live_server, create_and_login_user, upload_group, - uploadable_test_dicoms, + provide_path_to_file_dir, ): # Arrange user: User = create_and_login_user(channels_live_server.url) add_user_to_group(user, upload_group) - grant_access(upload_group, dimse_orthancs[1], destination=True) + grant_access(upload_group, dimse_orthancs[0], destination=True) page.on("console", lambda msg: print(msg.text)) page.goto(channels_live_server.url + "/upload/jobs/new") - page.get_by_label("Destination").select_option(label="DICOM Server Orthanc Test Server 2") + page.get_by_label("Destination").select_option(label="DICOM Server Orthanc Test Server 1") test_pseudonym = "Patient #" + str(fake.random_int(min=10, max=1000)) + page.get_by_label("Pseudonym").fill(test_pseudonym) - file = next(uploadable_test_dicoms("1001")) + file = next(provide_path_to_file_dir("1001")) page.get_by_label("Choose a directory").set_input_files(files=[file]) @@ -245,7 +245,7 @@ def test_pseudonym_is_used_as_patientID( expect(page.locator("p#uploadCompleteText")).to_contain_text("Upload Successful!") - destination_node = DicomServer.objects.get(id="14") + destination_node = dimse_orthancs[0] orthanc_operator = DicomOperator(destination_node) found_patients = orthanc_operator.find_patients(QueryDataset.create(PatientID=test_pseudonym)) found_patients_list = list(found_patients) From eddce09c6f28335c1cdeac7d0034caac87dff7ba Mon Sep 17 00:00:00 2001 From: LucaDulz Date: Wed, 4 Sep 2024 10:36:28 +0000 Subject: [PATCH 08/20] adjust upload tests for CI --- adit/upload/tests/integration/conftest.py | 8 ++------ adit/upload/tests/integration/test_upload.py | 4 ++-- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/adit/upload/tests/integration/conftest.py b/adit/upload/tests/integration/conftest.py index a9c2e3e5..3fc2d4cc 100644 --- a/adit/upload/tests/integration/conftest.py +++ b/adit/upload/tests/integration/conftest.py @@ -52,11 +52,7 @@ def _noncompatible_file(): with tempfile.NamedTemporaryFile(delete=False, suffix=".txt") as tmp_file: tmp_file.write(b"This is a test text file.") tmp_file.seek(0) - buffer = io.BytesIO(tmp_file.read()) - return { - "name": tmp_file.name, - "mimeType": "text/plain", - "buffer": buffer.getvalue(), - } + + return os.path.dirname(tmp_file.name) return _noncompatible_file diff --git a/adit/upload/tests/integration/test_upload.py b/adit/upload/tests/integration/test_upload.py index 454138f3..12a22180 100644 --- a/adit/upload/tests/integration/test_upload.py +++ b/adit/upload/tests/integration/test_upload.py @@ -158,7 +158,7 @@ def test_upload_without_pseudonym( channels_live_server, create_and_login_user, upload_group, - uploadable_test_dicoms, + provide_path_to_file_dir, ): user: User = create_and_login_user(channels_live_server.url) add_user_to_group(user, upload_group) @@ -166,7 +166,7 @@ def test_upload_without_pseudonym( page.on("console", lambda msg: print(msg.text)) page.goto(channels_live_server.url + "/upload/jobs/new") page.get_by_label("Destination").select_option(label="DICOM Server Orthanc Test Server 2") - file = next(uploadable_test_dicoms("1001")) + file = next(provide_path_to_file_dir("1001")) page.get_by_label("Choose a directory").set_input_files(files=[file]) expect(poll(page.locator("button#uploadButton"))).to_be_visible() From 3dc574a85500a2178bb3647f0046b4dc5a4a0397 Mon Sep 17 00:00:00 2001 From: LucaDulz Date: Thu, 10 Oct 2024 14:57:48 +0000 Subject: [PATCH 09/20] integrate UploadPermissionSupport into existing UploadSettings --- adit/upload/models.py | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/adit/upload/models.py b/adit/upload/models.py index 3ba8f1a2..607ea74e 100644 --- a/adit/upload/models.py +++ b/adit/upload/models.py @@ -1,20 +1,12 @@ -from django.db import models - from adit.core.models import DicomAppSettings class UploadSettings(DicomAppSettings): class Meta: verbose_name_plural = "Upload settings" - - -class UploadPermissionSupport(models.Model): - class Meta: - managed = False default_permissions = () permissions = [ ("can_upload_data", "Can upload data"), ] - def __str__(self) -> str: - return f"{self.__class__.__name__} [{self.pk}]" + From 49eb7fcd0dd64ad68cafdbab6b127f75a1a227ff Mon Sep 17 00:00:00 2001 From: LucaDulz Date: Thu, 10 Oct 2024 14:58:13 +0000 Subject: [PATCH 10/20] update adit_radis_shared --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 2d05e96f..8ecd3640 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -6,7 +6,7 @@ authors = ["medihack "] license = "GPL-3.0-or-later" [tool.poetry.dependencies] -adit-radis-shared = { git = "https://github.com/openradx/adit-radis-shared.git", rev = "v0.6.8" } +adit-radis-shared = {git = "https://github.com/openradx/adit-radis-shared.git", rev = "v0.6.8"} adrf = "^0.1.1" aiofiles = "^24.1.0" asyncinotify = "^4.0.1" From 9d259032df7b553c8b49f725354463ca68fe4d57 Mon Sep 17 00:00:00 2001 From: LucaDulz Date: Thu, 10 Oct 2024 14:59:01 +0000 Subject: [PATCH 11/20] update dicom-wab-anonymizer --- adit/upload/static/vendor/dicom-web-anonymizer.js | 2 +- adit/upload/static/vendor/dicom-web-anonymizer.js.map | 2 +- package.json | 5 +++++ 3 files changed, 7 insertions(+), 2 deletions(-) create mode 100644 package.json diff --git a/adit/upload/static/vendor/dicom-web-anonymizer.js b/adit/upload/static/vendor/dicom-web-anonymizer.js index 4036d54f..8bac0c62 100644 --- a/adit/upload/static/vendor/dicom-web-anonymizer.js +++ b/adit/upload/static/vendor/dicom-web-anonymizer.js @@ -1,2 +1,2 @@ -(function(O,D){typeof exports=="object"&&typeof module<"u"?module.exports=D(require("dcmjs")):typeof define=="function"&&define.amd?define(["dcmjs"],D):(O=typeof globalThis<"u"?globalThis:O||self,O.Anonymizer=D(O.dcmjs))})(this,function(O){"use strict";class D{constructor(){this.femaleFirstNames=["MARY","PATRICIA","LINDA","BARBARA","ELIZABETH","JENNIFER","MARIA","SUSAN","MARGARET","DOROTHY","LISA","NANCY","KAREN","BETTY","HELEN","SANDRA","DONNA","CAROL","RUTH","SHARON","MICHELLE","LAURA","SARAH","KIMBERLY","DEBORAH","JESSICA","SHIRLEY","CYNTHIA","ANGELA","MELISSA","BRENDA","AMY","ANNA","REBECCA","VIRGINIA","KATHLEEN","PAMELA","MARTHA","DEBRA","AMANDA","STEPHANIE","CAROLYN","CHRISTINE","MARIE","JANET","CATHERINE","FRANCES","ANN","JOYCE","DIANE","ALICE","JULIE","HEATHER","TERESA","DORIS","GLORIA","EVELYN","JEAN","CHERYL","MILDRED","KATHERINE","JOAN","ASHLEY","JUDITH","ROSE","JANICE","KELLY","NICOLE","JUDY","CHRISTINA","KATHY","THERESA","BEVERLY","DENISE","TAMMY","IRENE","JANE","LORI","RACHEL","MARILYN","ANDREA","KATHRYN","LOUISE","SARA","ANNE","JACQUELINE","WANDA","BONNIE","JULIA","RUBY","LOIS","TINA","PHYLLIS","NORMA","PAULA","DIANA","ANNIE","LILLIAN","EMILY","ROBIN","PEGGY","CRYSTAL","GLADYS","RITA","DAWN","CONNIE","FLORENCE","TRACY","EDNA","TIFFANY","CARMEN","ROSA","CINDY","GRACE","WENDY","VICTORIA","EDITH","KIM","SHERRY","SYLVIA","JOSEPHINE","THELMA","SHANNON","SHEILA","ETHEL","ELLEN","ELAINE","MARJORIE","CARRIE","CHARLOTTE","MONICA","ESTHER","PAULINE","EMMA","JUANITA","ANITA","RHONDA","HAZEL","AMBER","EVA","DEBBIE","APRIL","LESLIE","CLARA","LUCILLE","JAMIE","JOANNE","ELEANOR","VALERIE","DANIELLE","MEGAN","ALICIA","SUZANNE","MICHELE","GAIL","BERTHA","DARLENE","VERONICA","JILL","ERIN","GERALDINE","LAUREN","CATHY","JOANN","LORRAINE","LYNN","SALLY","REGINA","ERICA","BEATRICE","DOLORES","BERNICE","AUDREY","YVONNE","ANNETTE","JUNE","SAMANTHA","MARION","DANA","STACY","ANA","RENEE","IDA","VIVIAN","ROBERTA","HOLLY","BRITTANY","MELANIE","LORETTA","YOLANDA","JEANETTE","LAURIE","KATIE","KRISTEN","VANESSA","ALMA","SUE","ELSIE","BETH","JEANNE","VICKI","CARLA","TARA","ROSEMARY","EILEEN","TERRI","GERTRUDE","LUCY","TONYA","ELLA","STACEY","WILMA","GINA","KRISTIN","JESSIE","NATALIE","AGNES","VERA","WILLIE","CHARLENE","BESSIE","DELORES","MELINDA","PEARL","ARLENE","MAUREEN","COLLEEN","ALLISON","TAMARA","JOY","GEORGIA","CONSTANCE","LILLIE","CLAUDIA","JACKIE","MARCIA","TANYA","NELLIE","MINNIE","MARLENE","HEIDI","GLENDA","LYDIA","VIOLA","COURTNEY","MARIAN","STELLA","CAROLINE","DORA","JO","VICKIE","MATTIE","TERRY","MAXINE","IRMA","MABEL","MARSHA","MYRTLE","LENA","CHRISTY","DEANNA","PATSY","HILDA","GWENDOLYN","JENNIE","NORA","MARGIE","NINA","CASSANDRA","LEAH","PENNY","KAY","PRISCILLA","NAOMI","CAROLE","BRANDY","OLGA","BILLIE","DIANNE","TRACEY","LEONA","JENNY","FELICIA","SONIA","MIRIAM","VELMA","BECKY","BOBBIE","VIOLET","KRISTINA","TONI","MISTY","MAE","SHELLY","DAISY","RAMONA","SHERRI","ERIKA","KATRINA","CLAIRE","LINDSEY","LINDSAY","GENEVA","GUADALUPE","BELINDA","MARGARITA","SHERYL","CORA","FAYE","ADA","NATASHA","SABRINA","ISABEL","MARGUERITE","HATTIE","HARRIET","MOLLY","CECILIA","KRISTI","BRANDI","BLANCHE","SANDY","ROSIE","JOANNA","IRIS","EUNICE","ANGIE","INEZ","LYNDA","MADELINE","AMELIA","ALBERTA","GENEVIEVE","MONIQUE","JODI","JANIE","MAGGIE","KAYLA","SONYA","JAN","LEE","KRISTINE","CANDACE","FANNIE","MARYANN","OPAL","ALISON","YVETTE","MELODY","LUZ","SUSIE","OLIVIA","FLORA","SHELLEY","KRISTY","MAMIE","LULA","LOLA","VERNA","BEULAH","ANTOINETTE","CANDICE","JUANA","JEANNETTE","PAM","KELLI","HANNAH","WHITNEY","BRIDGET","KARLA","CELIA","LATOYA","PATTY","SHELIA","GAYLE","DELLA","VICKY","LYNNE","SHERI","MARIANNE","KARA","JACQUELYN","ERMA","BLANCA","MYRA","LETICIA","PAT","KRISTA","ROXANNE","ANGELICA","JOHNNIE","ROBYN","FRANCIS","ADRIENNE","ROSALIE","ALEXANDRA","BROOKE","BETHANY","SADIE","BERNADETTE","TRACI","JODY","KENDRA","JASMINE","NICHOLE","RACHAEL","CHELSEA","MABLE","ERNESTINE","MURIEL","MARCELLA","ELENA","KRYSTAL","ANGELINA","NADINE","KARI","ESTELLE","DIANNA","PAULETTE","LORA","MONA","DOREEN","ROSEMARIE","ANGEL","DESIREE","ANTONIA","HOPE","GINGER","JANIS","BETSY","CHRISTIE","FREDA","MERCEDES","MEREDITH","LYNETTE","TERI","CRISTINA","EULA","LEIGH","MEGHAN","SOPHIA","ELOISE","ROCHELLE","GRETCHEN","CECELIA","RAQUEL","HENRIETTA","ALYSSA","JANA","KELLEY","GWEN","KERRY","JENNA","TRICIA","LAVERNE","OLIVE","ALEXIS","TASHA","SILVIA","ELVIRA","CASEY","DELIA","SOPHIE","KATE","PATTI","LORENA","KELLIE","SONJA","LILA","LANA","DARLA","MAY","MINDY","ESSIE","MANDY","LORENE","ELSA","JOSEFINA","JEANNIE","MIRANDA","DIXIE","LUCIA","MARTA","FAITH","LELA","JOHANNA","SHARI","CAMILLE","TAMI","SHAWNA","ELISA","EBONY","MELBA","ORA","NETTIE","TABITHA","OLLIE","JAIME","WINIFRED","KRISTIE","MARINA","ALISHA","AIMEE","RENA","MYRNA","MARLA","TAMMIE","LATASHA","BONITA","PATRICE","RONDA","SHERRIE","ADDIE","FRANCINE","DELORIS","STACIE","ADRIANA","CHERI","SHELBY","ABIGAIL","CELESTE","JEWEL","CARA","ADELE","REBEKAH","LUCINDA","DORTHY","CHRIS","EFFIE","TRINA","REBA","SHAWN","SALLIE","AURORA","LENORA","ETTA","LOTTIE","KERRI","TRISHA","NIKKI","ESTELLA","FRANCISCA","JOSIE","TRACIE","MARISSA","KARIN","BRITTNEY","JANELLE","LOURDES","LAUREL","HELENE","FERN","ELVA","CORINNE","KELSEY","INA","BETTIE","ELISABETH","AIDA","CAITLIN","INGRID","IVA","EUGENIA","CHRISTA","GOLDIE","CASSIE","MAUDE","JENIFER","THERESE","FRANKIE","DENA","LORNA","JANETTE","LATONYA","CANDY","MORGAN","CONSUELO","TAMIKA","ROSETTA","DEBORA","CHERIE","POLLY","DINA","JEWELL","FAY","JILLIAN","DOROTHEA","NELL","TRUDY","ESPERANZA","PATRICA","KIMBERLEY","SHANNA","HELENA","CAROLINA","CLEO","STEFANIE","ROSARIO","OLA","JANINE","MOLLIE","LUPE","ALISA","LOU","MARIBEL","SUSANNE","BETTE","SUSANA","ELISE","CECILE","ISABELLE","LESLEY","JOCELYN","PAIGE","JONI","RACHELLE","LEOLA","DAPHNE","ALTA","ESTER","PETRA","GRACIELA","IMOGENE","JOLENE","KEISHA","LACEY","GLENNA","GABRIELA","KERI","URSULA","LIZZIE","KIRSTEN","SHANA","ADELINE","MAYRA","JAYNE","JACLYN","GRACIE","SONDRA","CARMELA","MARISA","ROSALIND","CHARITY","TONIA","BEATRIZ","MARISOL","CLARICE","JEANINE","SHEENA","ANGELINE","FRIEDA","LILY","ROBBIE","SHAUNA","MILLIE","CLAUDETTE","CATHLEEN","ANGELIA","GABRIELLE","AUTUMN","KATHARINE","SUMMER","JODIE","STACI","LEA","CHRISTI","JIMMIE","JUSTINE","ELMA","LUELLA","MARGRET","DOMINIQUE","SOCORRO","RENE","MARTINA","MARGO","MAVIS","CALLIE","BOBBI","MARITZA","LUCILE","LEANNE","JEANNINE","DEANA","AILEEN","LORIE","LADONNA","WILLA","MANUELA","GALE","SELMA","DOLLY","SYBIL","ABBY","LARA","DALE","IVY","DEE","WINNIE","MARCY","LUISA","JERI","MAGDALENA","OFELIA","MEAGAN","AUDRA","MATILDA","LEILA","CORNELIA","BIANCA","SIMONE","BETTYE","RANDI","VIRGIE","LATISHA","BARBRA","GEORGINA","ELIZA","LEANN","BRIDGETTE","RHODA","HALEY","ADELA","NOLA","BERNADINE","FLOSSIE","ILA","GRETA","RUTHIE","NELDA","MINERVA","LILLY","TERRIE","LETHA","HILARY","ESTELA","VALARIE","BRIANNA","ROSALYN","EARLINE","CATALINA","AVA","MIA","CLARISSA","LIDIA","CORRINE","ALEXANDRIA","CONCEPCION","TIA","SHARRON","RAE","DONA","ERICKA","JAMI","ELNORA","CHANDRA","LENORE","NEVA","MARYLOU","MELISA","TABATHA","SERENA","AVIS","ALLIE","SOFIA","JEANIE","ODESSA","NANNIE","HARRIETT","LORAINE","PENELOPE","MILAGROS","EMILIA","BENITA","ALLYSON","ASHLEE","TANIA","TOMMIE","ESMERALDA","KARINA","EVE","PEARLIE","ZELMA","MALINDA","NOREEN","TAMEKA","SAUNDRA","HILLARY","AMIE","ALTHEA","ROSALINDA","JORDAN","LILIA","ALANA","GAY","CLARE","ALEJANDRA","ELINOR","MICHAEL","LORRIE","JERRI","DARCY","EARNESTINE","CARMELLA","TAYLOR","NOEMI","MARCIE","LIZA","ANNABELLE","LOUISA","EARLENE","MALLORY","CARLENE","NITA","SELENA","TANISHA","KATY","JULIANNE","JOHN","LAKISHA","EDWINA","MARICELA","MARGERY","KENYA","DOLLIE","ROXIE","ROSLYN","KATHRINE","NANETTE","CHARMAINE","LAVONNE","ILENE","KRIS","TAMMI","SUZETTE","CORINE","KAYE","JERRY","MERLE","CHRYSTAL","LINA","DEANNE","LILIAN","JULIANA","ALINE","LUANN","KASEY","MARYANNE","EVANGELINE","COLETTE","MELVA","LAWANDA","YESENIA","NADIA","MADGE","KATHIE","EDDIE","OPHELIA","VALERIA","NONA","MITZI","MARI","GEORGETTE","CLAUDINE","FRAN","ALISSA","ROSEANN","LAKEISHA","SUSANNA","REVA","DEIDRE","CHASITY","SHEREE","CARLY","JAMES","ELVIA","ALYCE","DEIRDRE","GENA","BRIANA","ARACELI","KATELYN","ROSANNE","WENDI","TESSA","BERTA","MARVA","IMELDA","MARIETTA","MARCI","LEONOR","ARLINE","SASHA","MADELYN","JANNA","JULIETTE","DEENA","AURELIA","JOSEFA","AUGUSTA","LILIANA","YOUNG","CHRISTIAN","LESSIE","AMALIA","SAVANNAH","ANASTASIA","VILMA","NATALIA","ROSELLA","LYNNETTE","CORINA","ALFREDA","LEANNA","CAREY","AMPARO","COLEEN","TAMRA","AISHA","WILDA","KARYN","CHERRY","QUEEN","MAURA","MAI","EVANGELINA","ROSANNA","HALLIE","ERNA","ENID","MARIANA","LACY","JULIET","JACKLYN","FREIDA","MADELEINE","MARA","HESTER","CATHRYN","LELIA","CASANDRA","BRIDGETT","ANGELITA","JANNIE","DIONNE","ANNMARIE","KATINA","BERYL","PHOEBE","MILLICENT","KATHERYN","DIANN","CARISSA","MARYELLEN","LIZ","LAURI","HELGA","GILDA","ADRIAN","RHEA","MARQUITA","HOLLIE","TISHA","TAMERA","ANGELIQUE","FRANCESCA","BRITNEY","KAITLIN","LOLITA","FLORINE","ROWENA","REYNA","TWILA","FANNY","JANELL","INES","CONCETTA","BERTIE","ALBA","BRIGITTE","ALYSON","VONDA","PANSY","ELBA","NOELLE","LETITIA","KITTY","DEANN","BRANDIE","LOUELLA","LETA","FELECIA","SHARLENE","LESA","BEVERLEY","ROBERT","ISABELLA","HERMINIA","TERRA","CELINA"],this.maleFirstNames=["JAMES","JOHN","ROBERT","MICHAEL","WILLIAM","DAVID","RICHARD","CHARLES","JOSEPH","THOMAS","CHRISTOPHER","DANIEL","PAUL","MARK","DONALD","GEORGE","KENNETH","STEVEN","EDWARD","BRIAN","RONALD","ANTHONY","KEVIN","JASON","MATTHEW","GARY","TIMOTHY","JOSE","LARRY","JEFFREY","FRANK","SCOTT","ERIC","STEPHEN","ANDREW","RAYMOND","GREGORY","JOSHUA","JERRY","DENNIS","WALTER","PATRICK","PETER","HAROLD","DOUGLAS","HENRY","CARL","ARTHUR","RYAN","ROGER","JOE","JUAN","JACK","ALBERT","JONATHAN","JUSTIN","TERRY","GERALD","KEITH","SAMUEL","WILLIE","RALPH","LAWRENCE","NICHOLAS","ROY","BENJAMIN","BRUCE","BRANDON","ADAM","HARRY","FRED","WAYNE","BILLY","STEVE","LOUIS","JEREMY","AARON","RANDY","HOWARD","EUGENE","CARLOS","RUSSELL","BOBBY","VICTOR","MARTIN","ERNEST","PHILLIP","TODD","JESSE","CRAIG","ALAN","SHAWN","CLARENCE","SEAN","PHILIP","CHRIS","JOHNNY","EARL","JIMMY","ANTONIO","DANNY","BRYAN","TONY","LUIS","MIKE","STANLEY","LEONARD","NATHAN","DALE","MANUEL","RODNEY","CURTIS","NORMAN","ALLEN","MARVIN","VINCENT","GLENN","JEFFERY","TRAVIS","JEFF","CHAD","JACOB","LEE","MELVIN","ALFRED","KYLE","FRANCIS","BRADLEY","JESUS","HERBERT","FREDERICK","RAY","JOEL","EDWIN","DON","EDDIE","RICKY","TROY","RANDALL","BARRY","ALEXANDER","BERNARD","MARIO","LEROY","FRANCISCO","MARCUS","MICHEAL","THEODORE","CLIFFORD","MIGUEL","OSCAR","JAY","JIM","TOM","CALVIN","ALEX","JON","RONNIE","BILL","LLOYD","TOMMY","LEON","DEREK","WARREN","DARRELL","JEROME","FLOYD","LEO","ALVIN","TIM","WESLEY","GORDON","DEAN","GREG","JORGE","DUSTIN","PEDRO","DERRICK","DAN","LEWIS","ZACHARY","COREY","HERMAN","MAURICE","VERNON","ROBERTO","CLYDE","GLEN","HECTOR","SHANE","RICARDO","SAM","RICK","LESTER","BRENT","RAMON","CHARLIE","TYLER","GILBERT","GENE","MARC","REGINALD","RUBEN","BRETT","ANGEL","NATHANIEL","RAFAEL","LESLIE","EDGAR","MILTON","RAUL","BEN","CHESTER","CECIL","DUANE","FRANKLIN","ANDRE","ELMER","BRAD","GABRIEL","RON","MITCHELL","ROLAND","ARNOLD","HARVEY","JARED","ADRIAN","KARL","CORY","CLAUDE","ERIK","DARRYL","JAMIE","NEIL","JESSIE","CHRISTIAN","JAVIER","FERNANDO","CLINTON","TED","MATHEW","TYRONE","DARREN","LONNIE","LANCE","CODY","JULIO","KELLY","KURT","ALLAN","NELSON","GUY","CLAYTON","HUGH","MAX","DWAYNE","DWIGHT","ARMANDO","FELIX","JIMMIE","EVERETT","JORDAN","IAN","WALLACE","KEN","BOB","JAIME","CASEY","ALFREDO","ALBERTO","DAVE","IVAN","JOHNNIE","SIDNEY","BYRON","JULIAN","ISAAC","MORRIS","CLIFTON","WILLARD","DARYL","ROSS","VIRGIL","ANDY","MARSHALL","SALVADOR","PERRY","KIRK","SERGIO","MARION","TRACY","SETH","KENT","TERRANCE","RENE","EDUARDO","TERRENCE","ENRIQUE","FREDDIE","WADE","AUSTIN","STUART","FREDRICK","ARTURO","ALEJANDRO","JACKIE","JOEY","NICK","LUTHER","WENDELL","JEREMIAH","EVAN","JULIUS","DANA","DONNIE","OTIS","SHANNON","TREVOR","OLIVER","LUKE","HOMER","GERARD","DOUG","KENNY","HUBERT","ANGELO","SHAUN","LYLE","MATT","LYNN","ALFONSO","ORLANDO","REX","CARLTON","ERNESTO","CAMERON","NEAL","PABLO","LORENZO","OMAR","WILBUR","BLAKE","GRANT","HORACE","RODERICK","KERRY","ABRAHAM","WILLIS","RICKEY","JEAN","IRA","ANDRES","CESAR","JOHNATHAN","MALCOLM","RUDOLPH","DAMON","KELVIN","RUDY","PRESTON","ALTON","ARCHIE","MARCO","WM","PETE","RANDOLPH","GARRY","GEOFFREY","JONATHON","FELIPE","BENNIE","GERARDO","ED","DOMINIC","ROBIN","LOREN","DELBERT","COLIN","GUILLERMO","EARNEST","LUCAS","BENNY","NOEL","SPENCER","RODOLFO","MYRON","EDMUND","GARRETT","SALVATORE","CEDRIC","LOWELL","GREGG","SHERMAN","WILSON","DEVIN","SYLVESTER","KIM","ROOSEVELT","ISRAEL","JERMAINE","FORREST","WILBERT","LELAND","SIMON","GUADALUPE","CLARK","IRVING","CARROLL","BRYANT","OWEN","RUFUS","WOODROW","SAMMY","KRISTOPHER","MACK","LEVI","MARCOS","GUSTAVO","JAKE","LIONEL","MARTY","TAYLOR","ELLIS","DALLAS","GILBERTO","CLINT","NICOLAS","LAURENCE","ISMAEL","ORVILLE","DREW","JODY","ERVIN","DEWEY","AL","WILFRED","JOSH","HUGO","IGNACIO","CALEB","TOMAS","SHELDON","ERICK","FRANKIE","STEWART","DOYLE","DARREL","ROGELIO","TERENCE","SANTIAGO","ALONZO","ELIAS","BERT","ELBERT","RAMIRO","CONRAD","PAT","NOAH","GRADY","PHIL","CORNELIUS","LAMAR","ROLANDO","CLAY","PERCY","DEXTER","BRADFORD","MERLE","DARIN","AMOS","TERRELL","MOSES","IRVIN","SAUL","ROMAN","DARNELL","RANDAL","TOMMIE","TIMMY","DARRIN","WINSTON","BRENDAN","TOBY","VAN","ABEL","DOMINICK","BOYD","COURTNEY","JAN","EMILIO","ELIJAH","CARY","DOMINGO","SANTOS","AUBREY","EMMETT","MARLON","EMANUEL","JERALD","EDMOND","EMIL","DEWAYNE","WILL","OTTO","TEDDY","REYNALDO","BRET","MORGAN","JESS","TRENT","HUMBERTO","EMMANUEL","STEPHAN","LOUIE","VICENTE","LAMONT","STACY","GARLAND","MILES","MICAH","EFRAIN","BILLIE","LOGAN","HEATH","RODGER","HARLEY","DEMETRIUS","ETHAN","ELDON","ROCKY","PIERRE","JUNIOR","FREDDY","ELI","BRYCE","ANTOINE","ROBBIE","KENDALL","ROYCE","STERLING","MICKEY","CHASE","GROVER","ELTON","CLEVELAND","DYLAN","CHUCK","DAMIAN","REUBEN","STAN","AUGUST","LEONARDO","JASPER","RUSSEL","ERWIN","BENITO","HANS","MONTE","BLAINE","ERNIE","CURT","QUENTIN","AGUSTIN","MURRAY","JAMAL","DEVON","ADOLFO","HARRISON","TYSON","BURTON","BRADY","ELLIOTT","WILFREDO","BART","JARROD","VANCE","DENIS","DAMIEN","JOAQUIN","HARLAN","DESMOND","ELLIOT","DARWIN","ASHLEY","GREGORIO","BUDDY","XAVIER","KERMIT","ROSCOE","ESTEBAN","ANTON","SOLOMON","SCOTTY","NORBERT","ELVIN","WILLIAMS","NOLAN","CAREY","ROD","QUINTON","HAL","BRAIN","ROB","ELWOOD","KENDRICK","DARIUS","MOISES","SON","MARLIN","FIDEL","THADDEUS","CLIFF","MARCEL","ALI","JACKSON","RAPHAEL","BRYON","ARMAND","ALVARO","JEFFRY","DANE","JOESPH","THURMAN","NED","SAMMIE","RUSTY","MICHEL","MONTY","RORY","FABIAN","REGGIE","MASON","GRAHAM","KRIS","ISAIAH","VAUGHN","GUS","AVERY","LOYD","DIEGO","ALEXIS","ADOLPH","NORRIS","MILLARD","ROCCO","GONZALO","DERICK","RODRIGO","GERRY","STACEY","CARMEN","WILEY","RIGOBERTO","ALPHONSO","TY","SHELBY","RICKIE","NOE","VERN","BOBBIE","REED","JEFFERSON","ELVIS","BERNARDO","MAURICIO","HIRAM","DONOVAN","BASIL","RILEY","OLLIE","NICKOLAS","MAYNARD","SCOT","VINCE","QUINCY","EDDY","SEBASTIAN","FEDERICO","ULYSSES","HERIBERTO","DONNELL","COLE","DENNY","DAVIS","GAVIN","EMERY","WARD","ROMEO","JAYSON","DION","DANTE","CLEMENT","COY","ODELL","MAXWELL","JARVIS","BRUNO","ISSAC","MARY","DUDLEY","BROCK","SANFORD","COLBY","CARMELO","BARNEY","NESTOR","HOLLIS","STEFAN","DONNY","ART","LINWOOD","BEAU","WELDON","GALEN","ISIDRO","TRUMAN","DELMAR","JOHNATHON","SILAS","FREDERIC","DICK","KIRBY","IRWIN","CRUZ","MERLIN","MERRILL","CHARLEY","MARCELINO","LANE","HARRIS","CLEO","CARLO","TRENTON","KURTIS","HUNTER","AURELIO","WINFRED","VITO","COLLIN","DENVER","CARTER","LEONEL","EMORY","PASQUALE","MOHAMMAD","MARIANO","DANIAL","BLAIR","LANDON","DIRK","BRANDEN","ADAN","NUMBERS","CLAIR","BUFORD","GERMAN","BERNIE","WILMER","JOAN","EMERSON","ZACHERY","FLETCHER","JACQUES","ERROL","DALTON","MONROE","JOSUE","DOMINIQUE","EDWARDO","BOOKER","WILFORD","SONNY","SHELTON","CARSON","THERON","RAYMUNDO","DAREN","TRISTAN","HOUSTON","ROBBY","LINCOLN","JAME","GENARO","GALE","BENNETT","OCTAVIO","CORNELL","LAVERNE","HUNG","ARRON","ANTONY","HERSCHEL","ALVA","GIOVANNI","GARTH","CYRUS","CYRIL","RONNY","STEVIE","LON","FREEMAN","ERIN","DUNCAN","KENNITH","CARMINE","AUGUSTINE","YOUNG","ERICH","CHADWICK","WILBURN","RUSS","REID","MYLES","ANDERSON","MORTON","JONAS","FOREST","MITCHEL","MERVIN","ZANE","RICH","JAMEL","LAZARO","ALPHONSE","RANDELL","MAJOR","JOHNIE","JARRETT","BROOKS","ARIEL","ABDUL","DUSTY","LUCIANO","LINDSEY","TRACEY","SEYMOUR","SCOTTIE","EUGENIO","MOHAMMED","SANDY","VALENTIN","CHANCE","ARNULFO","LUCIEN","FERDINAND","THAD","EZRA","SYDNEY","ALDO","RUBIN","ROYAL","MITCH","EARLE","ABE","WYATT","MARQUIS","LANNY","KAREEM","JAMAR","BORIS","ISIAH","EMILE","ELMO","ARON","LEOPOLDO","EVERETTE","JOSEF","GAIL","ELOY","DORIAN","RODRICK","REINALDO","LUCIO","JERROD","WESTON","HERSHEL","BARTON","PARKER","LEMUEL","LAVERN","BURT","JULES","GIL","ELISEO","AHMAD","NIGEL","EFREN","ANTWAN","ALDEN","MARGARITO","COLEMAN","REFUGIO","DINO","OSVALDO","LES","DEANDRE","NORMAND","KIETH","IVORY","ANDREA","TREY","NORBERTO","NAPOLEON","JEROLD","FRITZ","ROSENDO","MILFORD","SANG","DEON","CHRISTOPER","ALFONZO","LYMAN","JOSIAH","BRANT","WILTON","RICO","JAMAAL","DEWITT","CAROL","BRENTON","YONG","OLIN","FOSTER","FAUSTINO","CLAUDIO","JUDSON","GINO","EDGARDO","BERRY","ALEC","TANNER","JARRED","DONN","TRINIDAD","TAD","SHIRLEY","PRINCE","PORFIRIO","ODIS","MARIA","LENARD","CHAUNCEY","CHANG","TOD","MEL","MARCELO","KORY","AUGUSTUS","KEVEN","HILARIO","BUD","SAL","ROSARIO","ORVAL","MAURO","DANNIE","ZACHARIAH","OLEN","ANIBAL","MILO","JED","FRANCES","THANH","DILLON","AMADO","NEWTON","CONNIE","LENNY","TORY","RICHIE","LUPE","HORACIO","BRICE","MOHAMED","DELMER","DARIO","REYES","DEE","MAC","JONAH","JERROLD","ROBT","HANK","SUNG","RUPERT","ROLLAND","KENTON","DAMION","CHI","ANTONE","WALDO","FREDRIC","BRADLY","QUINN","KIP","BURL","WALKER","TYREE","JEFFEREY","AHMED"],this.allFirstNames=this.femaleFirstNames.concat(this.maleFirstNames),this.lastNames=["SMITH","JOHNSON","WILLIAMS","JONES","BROWN","DAVIS","MILLER","WILSON","MOORE","TAYLOR","ANDERSON","THOMAS","JACKSON","WHITE","HARRIS","MARTIN","THOMPSON","GARCIA","MARTINEZ","ROBINSON","CLARK","RODRIGUEZ","LEWIS","LEE","WALKER","HALL","ALLEN","YOUNG","HERNANDEZ","KING","WRIGHT","LOPEZ","HILL","SCOTT","GREEN","ADAMS","BAKER","GONZALEZ","NELSON","CARTER","MITCHELL","PEREZ","ROBERTS","TURNER","PHILLIPS","CAMPBELL","PARKER","EVANS","EDWARDS","COLLINS","STEWART","SANCHEZ","MORRIS","ROGERS","REED","COOK","MORGAN","BELL","MURPHY","BAILEY","RIVERA","COOPER","RICHARDSON","COX","HOWARD","WARD","TORRES","PETERSON","GRAY","RAMIREZ","JAMES","WATSON","BROOKS","KELLY","SANDERS","PRICE","BENNETT","WOOD","BARNES","ROSS","HENDERSON","COLEMAN","JENKINS","PERRY","POWELL","LONG","PATTERSON","HUGHES","FLORES","WASHINGTON","BUTLER","SIMMONS","FOSTER","GONZALES","BRYANT","ALEXANDER","RUSSELL","GRIFFIN","DIAZ","HAYES","MYERS","FORD","HAMILTON","GRAHAM","SULLIVAN","WALLACE","WOODS","COLE","WEST","JORDAN","OWENS","REYNOLDS","FISHER","ELLIS","HARRISON","GIBSON","MCDONALD","CRUZ","MARSHALL","ORTIZ","GOMEZ","MURRAY","FREEMAN","WELLS","WEBB","SIMPSON","STEVENS","TUCKER","PORTER","HUNTER","HICKS","CRAWFORD","HENRY","BOYD","MASON","MORALES","KENNEDY","WARREN","DIXON","RAMOS","REYES","BURNS","GORDON","SHAW","HOLMES","RICE","ROBERTSON","HUNT","BLACK","DANIELS","PALMER","MILLS","NICHOLS","GRANT","KNIGHT","FERGUSON","ROSE","STONE","HAWKINS","DUNN","PERKINS","HUDSON","SPENCER","GARDNER","STEPHENS","PAYNE","PIERCE","BERRY","MATTHEWS","ARNOLD","WAGNER","WILLIS","RAY","WATKINS","OLSON","CARROLL","DUNCAN","SNYDER","HART","CUNNINGHAM","BRADLEY","LANE","ANDREWS","RUIZ","HARPER","FOX","RILEY","ARMSTRONG","CARPENTER","WEAVER","GREENE","LAWRENCE","ELLIOTT","CHAVEZ","SIMS","AUSTIN","PETERS","KELLEY","FRANKLIN","LAWSON","FIELDS","GUTIERREZ","RYAN","SCHMIDT","CARR","VASQUEZ","CASTILLO","WHEELER","CHAPMAN","OLIVER","MONTGOMERY","RICHARDS","WILLIAMSON","JOHNSTON","BANKS","MEYER","BISHOP","MCCOY","HOWELL","ALVAREZ","MORRISON","HANSEN","FERNANDEZ","GARZA","HARVEY","LITTLE","BURTON","STANLEY","NGUYEN","GEORGE","JACOBS","REID","KIM","FULLER","LYNCH","DEAN","GILBERT","GARRETT","ROMERO","WELCH","LARSON","FRAZIER","BURKE","HANSON","DAY","MENDOZA","MORENO","BOWMAN","MEDINA","FOWLER","BREWER","HOFFMAN","CARLSON","SILVA","PEARSON","HOLLAND","DOUGLAS","FLEMING","JENSEN","VARGAS","BYRD","DAVIDSON","HOPKINS","MAY","TERRY","HERRERA","WADE","SOTO","WALTERS","CURTIS","NEAL","CALDWELL","LOWE","JENNINGS","BARNETT","GRAVES","JIMENEZ","HORTON","SHELTON","BARRETT","OBRIEN","CASTRO","SUTTON","GREGORY","MCKINNEY","LUCAS","MILES","CRAIG","RODRIQUEZ","CHAMBERS","HOLT","LAMBERT","FLETCHER","WATTS","BATES","HALE","RHODES","PENA","BECK","NEWMAN","HAYNES","MCDANIEL","MENDEZ","BUSH","VAUGHN","PARKS","DAWSON","SANTIAGO","NORRIS","HARDY","LOVE","STEELE","CURRY","POWERS","SCHULTZ","BARKER","GUZMAN","PAGE","MUNOZ","BALL","KELLER","CHANDLER","WEBER","LEONARD","WALSH","LYONS","RAMSEY","WOLFE","SCHNEIDER","MULLINS","BENSON","SHARP","BOWEN","DANIEL","BARBER","CUMMINGS","HINES","BALDWIN","GRIFFITH","VALDEZ","HUBBARD","SALAZAR","REEVES","WARNER","STEVENSON","BURGESS","SANTOS","TATE","CROSS","GARNER","MANN","MACK","MOSS","THORNTON","DENNIS","MCGEE","FARMER","DELGADO","AGUILAR","VEGA","GLOVER","MANNING","COHEN","HARMON","RODGERS","ROBBINS","NEWTON","TODD","BLAIR","HIGGINS","INGRAM","REESE","CANNON","STRICKLAND","TOWNSEND","POTTER","GOODWIN","WALTON","ROWE","HAMPTON","ORTEGA","PATTON","SWANSON","JOSEPH","FRANCIS","GOODMAN","MALDONADO","YATES","BECKER","ERICKSON","HODGES","RIOS","CONNER","ADKINS","WEBSTER","NORMAN","MALONE","HAMMOND","FLOWERS","COBB","MOODY","QUINN","BLAKE","MAXWELL","POPE","FLOYD","OSBORNE","PAUL","MCCARTHY","GUERRERO","LINDSEY","ESTRADA","SANDOVAL","GIBBS","TYLER","GROSS","FITZGERALD","STOKES","DOYLE","SHERMAN","SAUNDERS","WISE","COLON","GILL","ALVARADO","GREER","PADILLA","SIMON","WATERS","NUNEZ","BALLARD","SCHWARTZ","MCBRIDE","HOUSTON","CHRISTENSEN","KLEIN","PRATT","BRIGGS","PARSONS","MCLAUGHLIN","ZIMMERMAN","FRENCH","BUCHANAN","MORAN","COPELAND","ROY","PITTMAN","BRADY","MCCORMICK","HOLLOWAY","BROCK","POOLE","FRANK","LOGAN","OWEN","BASS","MARSH","DRAKE","WONG","JEFFERSON","PARK","MORTON","ABBOTT","SPARKS","PATRICK","NORTON","HUFF","CLAYTON","MASSEY","LLOYD","FIGUEROA","CARSON","BOWERS","ROBERSON","BARTON","TRAN","LAMB","HARRINGTON","CASEY","BOONE","CORTEZ","CLARKE","MATHIS","SINGLETON","WILKINS","CAIN","BRYAN","UNDERWOOD","HOGAN","MCKENZIE","COLLIER","LUNA","PHELPS","MCGUIRE","ALLISON","BRIDGES","WILKERSON","NASH","SUMMERS","ATKINS","WILCOX","PITTS","CONLEY","MARQUEZ","BURNETT","RICHARD","COCHRAN","CHASE","DAVENPORT","HOOD","GATES","CLAY","AYALA","SAWYER","ROMAN","VAZQUEZ","DICKERSON","HODGE","ACOSTA","FLYNN","ESPINOZA","NICHOLSON","MONROE","WOLF","MORROW","KIRK","RANDALL","ANTHONY","WHITAKER","OCONNOR","SKINNER","WARE","MOLINA","KIRBY","HUFFMAN","BRADFORD","CHARLES","GILMORE","DOMINGUEZ","ONEAL","BRUCE","LANG","COMBS","KRAMER","HEATH","HANCOCK","GALLAGHER","GAINES","SHAFFER","SHORT","WIGGINS","MATHEWS","MCCLAIN","FISCHER","WALL","SMALL","MELTON","HENSLEY","BOND","DYER","CAMERON","GRIMES","CONTRERAS","CHRISTIAN","WYATT","BAXTER","SNOW","MOSLEY","SHEPHERD","LARSEN","HOOVER","BEASLEY","GLENN","PETERSEN","WHITEHEAD","MEYERS","KEITH","GARRISON","VINCENT","SHIELDS","HORN","SAVAGE","OLSEN","SCHROEDER","HARTMAN","WOODARD","MUELLER","KEMP","DELEON","BOOTH","PATEL","CALHOUN","WILEY","EATON","CLINE","NAVARRO","HARRELL","LESTER","HUMPHREY","PARRISH","DURAN","HUTCHINSON","HESS","DORSEY","BULLOCK","ROBLES","BEARD","DALTON","AVILA","VANCE","RICH","BLACKWELL","YORK","JOHNS","BLANKENSHIP","TREVINO","SALINAS","CAMPOS","PRUITT","MOSES","CALLAHAN","GOLDEN","MONTOYA","HARDIN","GUERRA","MCDOWELL","CAREY","STAFFORD","GALLEGOS","HENSON","WILKINSON","BOOKER","MERRITT","MIRANDA","ATKINSON","ORR","DECKER","HOBBS","PRESTON","TANNER","KNOX","PACHECO","STEPHENSON","GLASS","ROJAS","SERRANO","MARKS","HICKMAN","ENGLISH","SWEENEY","STRONG","PRINCE","MCCLURE","CONWAY","WALTER","ROTH","MAYNARD","FARRELL","LOWERY","HURST","NIXON","WEISS","TRUJILLO","ELLISON","SLOAN","JUAREZ","WINTERS","MCLEAN","RANDOLPH","LEON","BOYER","VILLARREAL","MCCALL","GENTRY","CARRILLO","KENT","AYERS","LARA","SHANNON","SEXTON","PACE","HULL","LEBLANC","BROWNING","VELASQUEZ","LEACH","CHANG","HOUSE","SELLERS","HERRING","NOBLE","FOLEY","BARTLETT","MERCADO","LANDRY","DURHAM","WALLS","BARR","MCKEE","BAUER","RIVERS","EVERETT","BRADSHAW","PUGH","VELEZ","RUSH","ESTES","DODSON","MORSE","SHEPPARD","WEEKS","CAMACHO","BEAN","BARRON","LIVINGSTON","MIDDLETON","SPEARS","BRANCH","BLEVINS","CHEN","KERR","MCCONNELL","HATFIELD","HARDING","ASHLEY","SOLIS","HERMAN","FROST","GILES","BLACKBURN","WILLIAM","PENNINGTON","WOODWARD","FINLEY","MCINTOSH","KOCH","BEST","SOLOMON","MCCULLOUGH","DUDLEY","NOLAN","BLANCHARD","RIVAS","BRENNAN","MEJIA","KANE","BENTON","JOYCE","BUCKLEY","HALEY","VALENTINE","MADDOX","RUSSO","MCKNIGHT","BUCK","MOON","MCMILLAN","CROSBY","BERG","DOTSON","MAYS","ROACH","CHURCH","CHAN","RICHMOND","MEADOWS","FAULKNER","ONEILL","KNAPP","KLINE","BARRY","OCHOA","JACOBSON","GAY","AVERY","HENDRICKS","HORNE","SHEPARD","HEBERT","CHERRY","CARDENAS","MCINTYRE","WHITNEY","WALLER","HOLMAN","DONALDSON","CANTU","TERRELL","MORIN","GILLESPIE","FUENTES","TILLMAN","SANFORD","BENTLEY","PECK","KEY","SALAS","ROLLINS","GAMBLE","DICKSON","BATTLE","SANTANA","CABRERA","CERVANTES","HOWE","HINTON","HURLEY","SPENCE","ZAMORA","YANG","MCNEIL","SUAREZ","CASE","PETTY","GOULD","MCFARLAND","SAMPSON","CARVER","BRAY","ROSARIO","MACDONALD","STOUT","HESTER","MELENDEZ","DILLON","FARLEY","HOPPER","GALLOWAY","POTTS","BERNARD","JOYNER","STEIN","AGUIRRE","OSBORN","MERCER","BENDER","FRANCO","ROWLAND","SYKES","BENJAMIN","TRAVIS","PICKETT","CRANE","SEARS","MAYO","DUNLAP","HAYDEN","WILDER","MCKAY","COFFEY","MCCARTY","EWING","COOLEY","VAUGHAN","BONNER","COTTON","HOLDER","STARK","FERRELL","CANTRELL","FULTON","LYNN","LOTT","CALDERON","ROSA","POLLARD","HOOPER","BURCH","MULLEN","FRY","RIDDLE","LEVY","DAVID","DUKE","ODONNELL","GUY","MICHAEL","BRITT","FREDERICK","DAUGHERTY","BERGER","DILLARD","ALSTON","JARVIS","FRYE","RIGGS","CHANEY","ODOM","DUFFY","FITZPATRICK","VALENZUELA","MERRILL","MAYER","ALFORD","MCPHERSON","ACEVEDO","DONOVAN","BARRERA","ALBERT","COTE","REILLY","COMPTON","RAYMOND","MOONEY","MCGOWAN","CRAFT","CLEVELAND","CLEMONS","WYNN","NIELSEN","BAIRD","STANTON","SNIDER","ROSALES","BRIGHT","WITT","STUART","HAYS","HOLDEN","RUTLEDGE","KINNEY","CLEMENTS","CASTANEDA","SLATER","HAHN","EMERSON","CONRAD","BURKS","DELANEY","PATE","LANCASTER","SWEET","JUSTICE","TYSON","SHARPE","WHITFIELD","TALLEY","MACIAS","IRWIN","BURRIS","RATLIFF","MCCRAY","MADDEN","KAUFMAN","BEACH","GOFF","CASH","BOLTON","MCFADDEN","LEVINE","GOOD","BYERS","KIRKLAND","KIDD","WORKMAN","CARNEY","DALE","MCLEOD","HOLCOMB","ENGLAND","FINCH","HEAD","BURT","HENDRIX","SOSA","HANEY","FRANKS","SARGENT","NIEVES","DOWNS","RASMUSSEN","BIRD","HEWITT","LINDSAY","LE","FOREMAN","VALENCIA","ONEIL","DELACRUZ","VINSON","DEJESUS","HYDE","FORBES","GILLIAM","GUTHRIE","WOOTEN","HUBER","BARLOW","BOYLE","MCMAHON","BUCKNER","ROCHA","PUCKETT","LANGLEY","KNOWLES","COOKE","VELAZQUEZ","WHITLEY","NOEL","VANG"],this.streets=["JACKSON STREET","ROUTE 41","HILLCREST AVENUE","5TH STREET","RIDGE AVENUE","CREEKSIDE DRIVE","ORCHARD LANE","MECHANIC STREET","3RD STREET NORTH","CANTERBURY COURT","ASHLEY COURT","CYPRESS COURT","SCHOOL STREET","FRANKLIN STREET","RIVER STREET","COBBLESTONE COURT","DELAWARE AVENUE","5TH STREET WEST","4TH STREET NORTH","WILLOW LANE","MYRTLE STREET","CHESTNUT STREET","COURT STREET","FAIRVIEW ROAD","WINDING WAY","IVY LANE","8TH STREET","HARRISON AVENUE","AMHERST STREET","HUDSON STREET","FRONT STREET SOUTH","RAILROAD STREET","HAWTHORNE AVENUE","GRANT STREET","TANGLEWOOD DRIVE","DOGWOOD DRIVE","EDGEWOOD DRIVE","FAWN COURT","2ND STREET EAST","SUMMIT STREET","LAUREL DRIVE","ANN STREET","ELMWOOD AVENUE","CROSS STREET","WINDSOR COURT","RIVER ROAD","VIRGINIA AVENUE","FOREST AVENUE","HEATHER LANE","1ST STREET","2ND STREET NORTH","MYRTLE AVENUE","WOODLAND ROAD","8TH AVENUE","BROOKSIDE DRIVE","SMITH STREET","MAPLE LANE","STATE STREET","HAWTHORNE LANE","QUEEN STREET","OVERLOOK CIRCLE","4TH AVENUE","JEFFERSON STREET","HILLTOP ROAD","INVERNESS DRIVE","MAGNOLIA COURT","DOGWOOD LANE","HENRY STREET","SPRING STREET","FRANKLIN COURT","LOCUST STREET","YORK STREET","RIVERSIDE DRIVE","CEMETERY ROAD","MAIN STREET","HIGHLAND DRIVE","PINE STREET","LOIS LANE","CANTERBURY DRIVE","MAIN STREET EAST","HARRISON STREET","CLINTON STREET","MADISON AVENUE","2ND STREET WEST","SUMMIT AVENUE","WOODLAND AVENUE","CAMBRIDGE COURT","SHADY LANE","GEORGE STREET","LAUREL STREET","BRIARWOOD COURT","IVY COURT","LAFAYETTE AVENUE","YORK ROAD","VALLEY VIEW ROAD","CREEK ROAD","SYCAMORE LANE","PEARL STREET","11TH STREET","ROUTE 1"],this.cities=["MADRID","BENGALURU","AHMEDABAD","LOS ANGELES","BAKU","ALGIERS","SHIRAZ","DONGGUAN","QUITO","TORONTO","WUHAN","HONG KONG","MELBOURNE","MAPUTO","XI'AN","RECIFE","SANTA CRUZ DE LA SIERRA","SHANGHAI","MONTERREY","HAVANA","TAIPEI","ABIDJAN","KARACHI","TASHKENT","MUMBAI","SHIJIAZHUANG","JAKARTA","NANJING","HYDERABAD","XIAMEN","FAISALABAD","QUANZHOU","BOGOTA","KUALA LUMPUR","FOSHAN","BAGHDAD","ROSTOV-ON-DON","KAOHSIUNG","PHOENIX","SYDNEY","PESHAWAR","ADDIS ABABA","RIO DE JANEIRO","BARCELONA","SAPPORO","MONTEVIDEO","ASTANA","AHVAZ","TEHRAN","HEFEI"],this.countries=["UKRAINE","DJIBOUTI","COLOMBIA","ALGERIA","ERITREA","BELIZE","UNITED STATES OF AMERICA","POLAND","TOKELAU","JORDAN","RUSSIAN FEDERATION","GERMANY","BRITISH INDIAN OCEAN TERRITORY","SURINAME","NORTHERN MARIANA ISLANDS","FRENCH SOUTHERN TERRITORIES","MYANMAR","SWEDEN","JERSEY","ANGUILLA","UZBEKISTAN","CHINA","ISRAEL","MALI","SAINT VINCENT AND THE GRENADINES","ISLE OF MAN","SYRIAN ARAB REPUBLIC","IRAQ","SOMALIA","ESTONIA","KIRIBATI","NORFOLK ISLAND","COSTA RICA","KYRGYZSTAN","LAO PEOPLE'S DEMOCRATIC REPUBLIC","ISLE OF MAN","BOTSWANA","CANADA","FALKLAND ISLANDS (MALVINAS)","WALLIS AND FUTUNA","AFGHANISTAN","CHAD","SRI LANKA","LATVIA","ITALY","YEMEN"]}}class s{constructor(L){this.addressTag=O.data.DicomMetaDictionary.nameMap.PatientAddress.tag,this.regionTag=O.data.DicomMetaDictionary.nameMap.RegionOfResidence.tag,this.countryTag=O.data.DicomMetaDictionary.nameMap.CountryOfResidence.tag,this.anonymize=async(E,A)=>{const N=await this.valueFactories[A];if(N==null)return!1;if(E[A].Value.length>1){for(let R=0;R{const A=await this.getStreetAddress(E),N=await this.getStreetNumber(E),R=await this.getRegion(E);return`${N} ${A}, ${R}`},this.getStreetNumber=async E=>{const[A]=await this.randomizer.getIntsFromRanges(E,1e3);return`${A+1}`},this.getStreetAddress=async E=>{const[A]=await this.randomizer.getIntsFromRanges(E,this.lists.streets.length);return`${this.lists.streets[A]}`},this.getRegion=async E=>{const[A]=await this.randomizer.getIntsFromRanges(E,this.lists.cities.length);return`${this.lists.cities[A]}`},this.getCountry=async E=>{const[A]=await this.randomizer.getIntsFromRanges(E,this.lists.countries.length);return`${this.lists.countries[A]}`},this.randomizer=L,this.lists=new D,this.addressTag=O.data.DicomMetaDictionary.unpunctuateTag(this.addressTag),this.regionTag=O.data.DicomMetaDictionary.unpunctuateTag(this.regionTag),this.countryTag=O.data.DicomMetaDictionary.unpunctuateTag(this.countryTag),this.valueFactories={[this.addressTag]:this.getLegalAddress,[this.regionTag]:this.getRegion,[this.countryTag]:this.getCountry}}}class H{constructor(L){this.anonymize=async(E,A)=>E[A].vr!="DA"&&E[A].vr!="DT"?!1:(E[A].Value[0]==null||(E[A].vr=="DA"?await this.anonymizeDateAndTime(E,A):await this.anonymizeDatetime(E,A)),!0),this.anonymizeDateAndTime=(E,A)=>{const N=E[A].Value,R=this.checkTag(E,A),I=R.value,S=[],e=[];for(const[t,i]of this.zipLongest("",N,I)){const C=this.shiftDateTime(t+i);S.push(C.slice(0,8)),e.push(C.slice(8))}if(E[A].Value=S,R.tag!="")try{E[R.tag].Value=e}catch{console.log()}},this.anonymizeDatetime=(E,A)=>{const N=E[A].Value,R=[];for(const I of N){const S=this.shiftDateTime(I);R.push(S)}E[A].Value=R},this.shiftDateTime=E=>{const A="%Y%m%d%H".slice(0,E.length-2),N=this.parseDateTime(E),R=new Date(N.getTime()+this.offset);let I=this.formatDate(R,A);return I+=E.slice(I.length),I},this.parseDateTime=E=>{const A=E,N=Number(A.slice(0,4)),R=Number(A.slice(4,6))-1,I=Number(A.slice(6,8)),S=Number(A.slice(8,10)),e=Number(A.slice(10,12)),t=Number(A.slice(12,14)),i=Number(A.slice(15,A.length));return new Date(N,R,I,S,e,t,i)},this.formatDate=(E,A)=>{const N=(u,V)=>String(u).padStart(V,"0"),R=N(E.getFullYear(),4),I=N(E.getMonth()+1,2),S=N(E.getDate(),2),e=N(E.getHours(),2),t=N(E.getMinutes(),2),i=N(E.getSeconds(),2),C=N(E.getMilliseconds(),6);return A.replace("%Y",R).replace("%m",I).replace("%d",S).replace("%H",e).replace("%M",t).replace("%S",i).replace("%s",C)},this.zipLongest=(E="",...A)=>{const N=Math.max(...A.map(R=>R.length));return Array.from({length:N},(R,I)=>A.map(S=>S[I]!==void 0?S[I]:E))},this.checkTag=(E,A)=>{const R=O.data.DicomMetaDictionary.dictionary[O.data.DicomMetaDictionary.punctuateTag(A)].name.replace("Date","Time");if(typeof O.data.DicomMetaDictionary.nameMap[R]<"u"){let I=O.data.DicomMetaDictionary.nameMap[R].tag;return I=O.data.DicomMetaDictionary.unpunctuateTag(I),I in E?{value:E[I].Value,tag:I}:{value:"",tag:""}}else return{value:"",tag:""}},this.offset=L*60*60*1e3}}class M{constructor(L,E){this.anonymize=async(A,N)=>N==this.tag?(A[N].Value[0]=this.value,!0):!1,this.tag=L,this.value=E}}class r{constructor(L,E,A="",N=""){this.anonymize=async(R,I)=>this.keywords.includes(I)?(await this.replaceID(R,I),!0):I==this.issuerTag&&R[I].Value[0]!=""?(R[I].Value[0]="DICOM_ANONYMIZER",!0):!1,this.replaceID=async(R,I)=>{if(R[I].Value.length>1)for(let S=0;S{const S=(await this.randomizer.getIntsFromRanges(R,...this.indicesForRandomizer)).map(e=>this.alphabet[e]).join("");return this.idPrefix+S+this.idSuffix},this.keywords=E,this.randomizer=L,this.idPrefix=A,this.idSuffix=N,this.issuerTag=O.data.DicomMetaDictionary.nameMap.IssuerOfPatientID.tag,this.alphabet="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789",this.totalAffixesLength=this.idPrefix.length+this.idSuffix.length,this.indicesForRandomizer=new Array(12-this.totalAffixesLength).fill(this.alphabet.length)}}class Y{constructor(L){this.institutionName=O.data.DicomMetaDictionary.nameMap.InstitutionName.tag,this.institutionAddress=O.data.DicomMetaDictionary.nameMap.InstitutionAddress.tag,this.institutionalDepartmentName=O.data.DicomMetaDictionary.nameMap.InstitutionalDepartmentName.tag,this.anonymize=async(E,A)=>{const N=await this.valueFactories[A];if(N==null)return!1;if(E[A].Value.length>1){for(let R=0;R{const A=await this.addressAnonymizer.getRegion(E),N=await this.addressAnonymizer.getStreetAddress(E);return`${A}'S ${N} CLINIC`},this.anonymizeInstitutionAddress=async E=>{const A=await this.addressAnonymizer.getLegalAddress(E),N=await this.addressAnonymizer.getCountry(E);return`${A}, ${N}`},this.anonymizeDepartmentName=()=>Promise.resolve("RADIOLOGY"),this.addressAnonymizer=L,this.institutionName=O.data.DicomMetaDictionary.unpunctuateTag(this.institutionName),this.institutionAddress=O.data.DicomMetaDictionary.unpunctuateTag(this.institutionAddress),this.institutionalDepartmentName=O.data.DicomMetaDictionary.unpunctuateTag(this.institutionalDepartmentName),this.valueFactories={[this.institutionName]:this.anonymizeInstitutionName,[this.institutionAddress]:this.anonymizeInstitutionAddress,[this.institutionalDepartmentName]:this.anonymizeDepartmentName}}}class U{constructor(L){this.anonymize=async(E,A)=>{if(E[A].vr!="PN")return!1;let N="";if("00100040"in E&&(N=E["00100040"].Value[0]),E[A].Value.length>1)for(let R=0;RO.data.Tag.fromString(E).group()%2===1?(delete L[E],!0):!1}}class B{constructor(L=""){L==""?this.seed=this.generateRandomSeed():this.seed=L}async calculateSHADigestWeb(L){const E=await window.crypto.subtle.digest("SHA-1",L);return new Promise(A=>{A(new Uint8Array(E))})}calculateResult(L){let E=0;for(const A of L)E*=256,E+=A;return BigInt(E)}generateRandomSeed(){const L=new Uint8Array(20);return window.crypto.getRandomValues(L),Array.from(L,A=>A.toString(16).padStart(2,"0")).join("")}async toInt(L){const E=this.seed+String(L),N=new TextEncoder().encode(E),R=await this.calculateSHADigestWeb(N);return this.calculateResult(R)}async getIntsFromRanges(L,...E){let A=[],N=await this.toInt(L);const R=[];for(const I of E){const S=BigInt(I);R.push(Number(N%S)),N=N/S}return A=R,A}}class a{constructor(L){this.anonymize=async(E,A)=>{const N=O.data.DicomMetaDictionary.punctuateTag(A);if(E[A].vr!="UI"||E[A].Value[0]==null||O.data.DicomMetaDictionary.dictionary[N].name.endsWith("ClassUID")||O.data.DicomMetaDictionary.dictionary[N].name=="TransferSyntaxUID")return!1;if(E[A].Value.length>1)for(let R=0;Rthis.tags.includes(A)?(delete E[A],!0):!1,this.tags=L}}class n extends Error{constructor(L){const E=`Bad tag name '${L}'. Must be a well-known DICOM element name or a string in the form 'stuv,wxyz' where each character is a hexadecimal digit.`;super(E),Object.setPrototypeOf(this,n.prototype)}}class l{constructor(L=[]){this.protectedTags=[],this.keep=(E,A)=>!!this.protectedTags.includes(A);for(const E of L){let A=/^\(?([0-9A-F]{4}),?([0-9A-F]{4})\)?$/,N=E.match(A);if(N)this.protectedTags.push(N[1]+N[2]);else{A=/^[a-zA-Z]+$/;try{N=E.match(A);const R=O.data.DicomMetaDictionary.nameMap[N[0]];if(R)this.protectedTags.push(R.tag);else throw new n("invalidTag")}catch(R){R instanceof n?console.error(R.message):console.error("An unexpected error occurred:",R)}}}}}class c{constructor(L,E,A,N,R,I){this.anonymizePrivateTags=!0,this.dateOffsetHours=0,L&&(this.patientID=L),A&&(this.anonymizePrivateTags=A),this.randomizer=new B(I),this.setOffset(),this.addressAnonymizer=new s(this.randomizer),this.elementHandlers=[new G(["00101081","00102180","00101090","00101080","00100050","00102201","00102155","00102154","00101100","00102299"]).anonymize,new a(this.randomizer).anonymize,new U(this.randomizer).anonymize,new r(this.randomizer,["00080050","00101000","00402017","00100020","00400253","00402016","00401001","00400009","00081010","00200010"],N,R).anonymize,this.addressAnonymizer.anonymize,new Y(this.addressAnonymizer).anonymize,new M("00321033","").anonymize,new M("00380300","").anonymize],E&&this.elementHandlers.unshift(new l(E).keep),this.patientID&&this.elementHandlers.unshift(new M("00100020",this.patientID).anonymize),this.anonymizePrivateTags&&this.elementHandlers.push(new o().anonymize)}async setOffset(){const L=await this.randomizer.toInt("dateOffset"),E=62*24,A=730*24;this.dateOffsetHours=Number(-(L%(BigInt(A)-BigInt(E))+BigInt(E))),this.elementHandlers.push(new H(this.dateOffsetHours).anonymize)}async anonymize(L){await this.walk(L.meta,this.elementHandlers),await this.walk(L.dict,this.elementHandlers)}async walk(L,E){const A=Object.keys(L);for(const N of A){const R=L[N];if(await this.anonymizeElement(L,N,E),N in L&&R.vr=="SQ")for(let I=0;I{const N=await this.valueFactories[A];if(N==null)return!1;if(E[A].Value.length>1){for(let R=0;R{const A=await this.getStreetAddress(E),N=await this.getStreetNumber(E),R=await this.getRegion(E);return`${N} ${A}, ${R}`},this.getStreetNumber=async E=>{const[A]=await this.randomizer.getIntsFromRanges(E,1e3);return`${A+1}`},this.getStreetAddress=async E=>{const[A]=await this.randomizer.getIntsFromRanges(E,this.lists.streets.length);return`${this.lists.streets[A]}`},this.getRegion=async E=>{const[A]=await this.randomizer.getIntsFromRanges(E,this.lists.cities.length);return`${this.lists.cities[A]}`},this.getCountry=async E=>{const[A]=await this.randomizer.getIntsFromRanges(E,this.lists.countries.length);return`${this.lists.countries[A]}`},this.randomizer=L,this.lists=new t,this.addressTag=O.data.DicomMetaDictionary.unpunctuateTag(this.addressTag),this.regionTag=O.data.DicomMetaDictionary.unpunctuateTag(this.regionTag),this.countryTag=O.data.DicomMetaDictionary.unpunctuateTag(this.countryTag),this.valueFactories={[this.addressTag]:this.getLegalAddress,[this.regionTag]:this.getRegion,[this.countryTag]:this.getCountry}}}class H{constructor(L){this.anonymize=async(E,A)=>E[A].vr!="DA"&&E[A].vr!="DT"?!1:(E[A].Value[0]==null||(E[A].vr=="DA"?await this.anonymizeDateAndTime(E,A):await this.anonymizeDatetime(E,A)),!0),this.anonymizeDateAndTime=(E,A)=>{const N=E[A].Value,R=this.checkTag(E,A),I=R.value,S=[],e=[];for(const[D,i]of this.zipLongest("",N,I)){const C=this.shiftDateTime(D+i);S.push(C.slice(0,8)),e.push(C.slice(8))}if(E[A].Value=S,R.tag!="")try{E[R.tag].Value=e}catch{console.log()}},this.anonymizeDatetime=(E,A)=>{const N=E[A].Value,R=[];for(const I of N){const S=this.shiftDateTime(I);R.push(S)}E[A].Value=R},this.shiftDateTime=E=>{const A="%Y%m%d%H".slice(0,E.length-2),N=this.parseDateTime(E),R=new Date(N.getTime()+this.offset);let I=this.formatDate(R,A);return I+=E.slice(I.length),I},this.parseDateTime=E=>{const A=E,N=Number(A.slice(0,4)),R=Number(A.slice(4,6))-1,I=Number(A.slice(6,8)),S=Number(A.slice(8,10)),e=Number(A.slice(10,12)),D=Number(A.slice(12,14)),i=Number(A.slice(15,A.length));return new Date(N,R,I,S,e,D,i)},this.formatDate=(E,A)=>{const N=(V,K)=>String(V).padStart(K,"0"),R=N(E.getFullYear(),4),I=N(E.getMonth()+1,2),S=N(E.getDate(),2),e=N(E.getHours(),2),D=N(E.getMinutes(),2),i=N(E.getSeconds(),2),C=N(E.getMilliseconds(),6);return A.replace("%Y",R).replace("%m",I).replace("%d",S).replace("%H",e).replace("%M",D).replace("%S",i).replace("%s",C)},this.zipLongest=(E="",...A)=>{const N=Math.max(...A.map(R=>R.length));return Array.from({length:N},(R,I)=>A.map(S=>S[I]!==void 0?S[I]:E))},this.checkTag=(E,A)=>{const R=O.data.DicomMetaDictionary.dictionary[O.data.DicomMetaDictionary.punctuateTag(A)].name.replace("Date","Time");if(typeof O.data.DicomMetaDictionary.nameMap[R]<"u"){let I=O.data.DicomMetaDictionary.nameMap[R].tag;return I=O.data.DicomMetaDictionary.unpunctuateTag(I),I in E?{value:E[I].Value,tag:I}:{value:"",tag:""}}else return{value:"",tag:""}},this.offset=L*60*60*1e3}}class s{constructor(L,E){this.anonymize=async(A,N)=>N==this.tag?(A[N].Value[0]=this.value,!0):!1,this.tag=L,this.value=E}}class r{constructor(L,E,A="",N=""){this.anonymize=async(R,I)=>this.keywords.includes(I)?(await this.replaceID(R,I),!0):I==this.issuerTag&&R[I].Value[0]!=""?(R[I].Value[0]="DICOM_ANONYMIZER",!0):!1,this.replaceID=async(R,I)=>{if(R[I].Value.length>1)for(let S=0;S{const S=(await this.randomizer.getIntsFromRanges(R,...this.indicesForRandomizer)).map(e=>this.alphabet[e]).join("");return this.idPrefix+S+this.idSuffix},this.keywords=E,this.randomizer=L,this.idPrefix=A,this.idSuffix=N,this.issuerTag=O.data.DicomMetaDictionary.nameMap.IssuerOfPatientID.tag,this.alphabet="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789",this.totalAffixesLength=this.idPrefix.length+this.idSuffix.length,this.indicesForRandomizer=new Array(12-this.totalAffixesLength).fill(this.alphabet.length)}}class Y{constructor(L){this.institutionName=O.data.DicomMetaDictionary.nameMap.InstitutionName.tag,this.institutionAddress=O.data.DicomMetaDictionary.nameMap.InstitutionAddress.tag,this.institutionalDepartmentName=O.data.DicomMetaDictionary.nameMap.InstitutionalDepartmentName.tag,this.anonymize=async(E,A)=>{const N=await this.valueFactories[A];if(N==null)return!1;if(E[A].Value.length>1){for(let R=0;R{const A=await this.addressAnonymizer.getRegion(E),N=await this.addressAnonymizer.getStreetAddress(E);return`${A}'S ${N} CLINIC`},this.anonymizeInstitutionAddress=async E=>{const A=await this.addressAnonymizer.getLegalAddress(E),N=await this.addressAnonymizer.getCountry(E);return`${A}, ${N}`},this.anonymizeDepartmentName=()=>Promise.resolve("RADIOLOGY"),this.addressAnonymizer=L,this.institutionName=O.data.DicomMetaDictionary.unpunctuateTag(this.institutionName),this.institutionAddress=O.data.DicomMetaDictionary.unpunctuateTag(this.institutionAddress),this.institutionalDepartmentName=O.data.DicomMetaDictionary.unpunctuateTag(this.institutionalDepartmentName),this.valueFactories={[this.institutionName]:this.anonymizeInstitutionName,[this.institutionAddress]:this.anonymizeInstitutionAddress,[this.institutionalDepartmentName]:this.anonymizeDepartmentName}}}class o{constructor(L){this.anonymize=async(E,A)=>{if(E[A].vr!="PN")return!1;let N="";if("00100040"in E&&(N=E["00100040"].Value[0]),E[A].Value.length>1)for(let R=0;RO.data.Tag.fromString(E).group()%2===1?(delete L[E],!0):!1}}class B{constructor(L){L==null?this.seed=this.generateRandomSeed():this.seed=L}async calculateSHADigestWeb(L){const E=await window.crypto.subtle.digest("SHA-1",L);return new Promise(A=>{A(new Uint8Array(E))})}calculateResult(L){let E=0;for(const A of L)E*=256,E+=A;return BigInt(E)}generateRandomSeed(){const L=new Uint8Array(20);return window.crypto.getRandomValues(L),Array.from(L,A=>A.toString(16).padStart(2,"0")).join("")}async toInt(L){const E=this.seed+String(L),N=new TextEncoder().encode(E),R=await this.calculateSHADigestWeb(N);return this.calculateResult(R)}async getIntsFromRanges(L,...E){let A=[],N=await this.toInt(L);const R=[];for(const I of E){const S=BigInt(I);R.push(Number(N%S)),N=N/S}return A=R,A}}class a{constructor(L){this.anonymize=async(E,A)=>{const N=O.data.DicomMetaDictionary.punctuateTag(A);if(E[A].vr!="UI"||E[A].Value[0]==null||O.data.DicomMetaDictionary.dictionary[N].name.endsWith("ClassUID")||O.data.DicomMetaDictionary.dictionary[N].name=="TransferSyntaxUID")return!1;if(E[A].Value.length>1)for(let R=0;Rthis.tags.includes(A)?(delete E[A],!0):!1,this.tags=L}}class n extends Error{constructor(L){const E=`Bad tag name '${L}'. Must be a well-known DICOM element name or a string in the form 'stuv,wxyz' where each character is a hexadecimal digit.`;super(E),Object.setPrototypeOf(this,n.prototype)}}class c{constructor(L=[]){this.protectedTags=[],this.keep=(E,A)=>!!this.protectedTags.includes(A);for(const E of L){let A=/^\(?([0-9A-F]{4}),?([0-9A-F]{4})\)?$/,N=E.match(A);if(N)this.protectedTags.push(N[1]+N[2]);else{A=/^[a-zA-Z]+$/;try{N=E.match(A);const R=O.data.DicomMetaDictionary.nameMap[N[0]];if(R)this.protectedTags.push(R.tag);else throw new n("invalidTag")}catch(R){R instanceof n?console.error(R.message):console.error("An unexpected error occurred:",R)}}}}}const l={protectedTags:[],anonymizePrivateTags:!0,idPrefix:void 0,idSuffix:void 0,seed:void 0};class u{constructor(L){this.dateOffsetHours=0,this._options=Object.assign(l,L??{}),this.randomizer=new B(this._options.seed),this.setOffset(),this.addressAnonymizer=new M(this.randomizer),this.elementHandlers=[new G(["00101081","00102180","00101090","00101080","00100050","00102201","00102155","00102154","00101100","00102299"]).anonymize,new a(this.randomizer).anonymize,new o(this.randomizer).anonymize,new r(this.randomizer,["00080050","00101000","00402017","00100020","00400253","00402016","00401001","00400009","00081010","00200010"],this._options.idPrefix,this._options.idSuffix).anonymize,this.addressAnonymizer.anonymize,new Y(this.addressAnonymizer).anonymize,new s("00321033","").anonymize,new s("00380300","").anonymize],this._options.protectedTags&&this.elementHandlers.unshift(new c(this._options.protectedTags).keep),this._options.anonymizePrivateTags&&this.elementHandlers.push(new U().anonymize)}async setOffset(){const L=await this.randomizer.toInt("dateOffset"),E=62*24,A=730*24;this.dateOffsetHours=Number(-(L%(BigInt(A)-BigInt(E))+BigInt(E))),this.elementHandlers.push(new H(this.dateOffsetHours).anonymize)}async anonymize(L){await this.walk(L.meta,this.elementHandlers),await this.walk(L.dict,this.elementHandlers)}async walk(L,E){const A=Object.keys(L);for(const N of A){const R=L[N];if(await this.anonymizeElement(L,N,E),N in L&&R.vr=="SQ")for(let I=0;I Promise } | undefined;\n\n constructor(Randomizer: Randomizer) {\n this.randomizer = Randomizer;\n this.lists = new lists();\n\n this.addressTag = data.DicomMetaDictionary.unpunctuateTag(this.addressTag);\n this.regionTag = data.DicomMetaDictionary.unpunctuateTag(this.regionTag);\n this.countryTag = data.DicomMetaDictionary.unpunctuateTag(this.countryTag);\n // this._setupValueFactories();\n this.valueFactories = {\n [this.addressTag]: this.getLegalAddress,\n [this.regionTag]: this.getRegion,\n [this.countryTag]: this.getCountry,\n };\n }\n\n anonymize = async (dataset: dataSet, dataTag: string): Promise => {\n const valueFactory = await this.valueFactories[dataTag];\n\n if (valueFactory == undefined) {\n return false;\n }\n\n if (dataset[dataTag].Value.length > 1) {\n for (let i = 0; i < dataset[dataTag].Value.length; i++) {\n dataset[dataTag].Value[i] = await valueFactory(dataset[dataTag].Value[i]);\n }\n\n return true;\n } else if (dataset[dataTag].Value.length == 1) {\n const originalValue: string = dataset[dataTag].Value[0];\n dataset[dataTag].Value[0] = await valueFactory(originalValue);\n return true;\n } else {\n dataset[dataTag].Value[0] = await valueFactory(\"\");\n return true;\n }\n };\n\n getLegalAddress = async (originalValue: string): Promise => {\n const street: string = await this.getStreetAddress(originalValue);\n const streetNumber: string = await this.getStreetNumber(originalValue);\n const city: string = await this.getRegion(originalValue);\n\n return `${streetNumber} ${street}, ${city}`;\n };\n\n getStreetNumber = async (originalValue: string): Promise => {\n const [streetNumberIndex]: number[] = await this.randomizer.getIntsFromRanges(\n originalValue,\n 1000\n );\n const streetNumber: number = streetNumberIndex + 1;\n\n return `${streetNumber}`;\n };\n\n getStreetAddress = async (originalValue: string): Promise => {\n const [streetIndex]: number[] = await this.randomizer.getIntsFromRanges(\n originalValue,\n this.lists.streets.length\n );\n\n return `${this.lists.streets[streetIndex]}`;\n };\n\n getRegion = async (originalValue: string): Promise => {\n const [cityIndex]: number[] = await this.randomizer.getIntsFromRanges(\n originalValue,\n this.lists.cities.length\n );\n\n return `${this.lists.cities[cityIndex]}`;\n };\n\n getCountry = async (originalValue: string): Promise => {\n const [countryIndex]: number[] = await this.randomizer.getIntsFromRanges(\n originalValue,\n this.lists.countries.length\n );\n\n return `${this.lists.countries[countryIndex]}`;\n };\n}\n\nexport default AddressAnonymizer;\n","import { data, dataSet } from \"dcmjs\";\r\n\r\ntype returnarg = {\r\n value: string;\r\n tag: string;\r\n};\r\n\r\nclass DateTimeAnonymizer {\r\n private offset: number;\r\n\r\n constructor(dateOffsetHours: number) {\r\n this.offset = dateOffsetHours * 60 * 60 * 1000;\r\n }\r\n\r\n anonymize = async (dataset: dataSet, dataTag: string): Promise => {\r\n if (dataset[dataTag].vr != \"DA\" && dataset[dataTag].vr != \"DT\") {\r\n return false;\r\n }\r\n if (dataset[dataTag].Value[0] == undefined) {\r\n return true;\r\n }\r\n\r\n if (dataset[dataTag].vr == \"DA\") {\r\n await this.anonymizeDateAndTime(dataset, dataTag);\r\n } else {\r\n await this.anonymizeDatetime(dataset, dataTag);\r\n }\r\n\r\n return true;\r\n };\r\n\r\n anonymizeDateAndTime = (dataset: dataSet, dataTag: string): void => {\r\n const dates = dataset[dataTag].Value;\r\n const result: returnarg = this.checkTag(dataset, dataTag);\r\n\r\n const times: string = result.value;\r\n\r\n const newDates: string[] = [];\r\n const newTimes: string[] = [];\r\n\r\n for (const [date, time] of this.zipLongest(\"\", dates, times)) {\r\n const newDateTime = this.shiftDateTime(date + time);\r\n\r\n newDates.push(newDateTime.slice(0, 8));\r\n newTimes.push(newDateTime.slice(8));\r\n }\r\n\r\n dataset[dataTag].Value = newDates;\r\n if (result.tag != \"\") {\r\n try {\r\n dataset[result.tag].Value = newTimes;\r\n } catch {\r\n console.log();\r\n }\r\n }\r\n };\r\n\r\n anonymizeDatetime = (dataset: dataSet, dataTag: string): void => {\r\n const dateTimes = dataset[dataTag].Value;\r\n const newDateTimes: string[] = [];\r\n\r\n for (const dateTimeValue of dateTimes) {\r\n const newDateTimeString = this.shiftDateTime(dateTimeValue);\r\n newDateTimes.push(newDateTimeString);\r\n }\r\n dataset[dataTag].Value = newDateTimes;\r\n };\r\n\r\n shiftDateTime = (dateTimeValue: string): string => {\r\n const dateTimeFormat = \"%Y%m%d%H\".slice(0, dateTimeValue.length - 2);\r\n\r\n const oldDateTime = this.parseDateTime(dateTimeValue);\r\n const newDateTime = new Date(oldDateTime.getTime() + this.offset);\r\n let newDateTimeString = this.formatDate(newDateTime, dateTimeFormat);\r\n newDateTimeString += dateTimeValue.slice(newDateTimeString.length);\r\n\r\n return newDateTimeString;\r\n };\r\n\r\n parseDateTime = (dateTimeValue: string): Date => {\r\n // similar to pythons strptime() method\r\n const dateString = dateTimeValue;\r\n const year = Number(dateString.slice(0, 4));\r\n const month = Number(dateString.slice(4, 6)) - 1; // JavaScript months are zero-indexed (0 to 11)\r\n const day = Number(dateString.slice(6, 8));\r\n const hour = Number(dateString.slice(8, 10));\r\n const minute = Number(dateString.slice(10, 12));\r\n const second = Number(dateString.slice(12, 14));\r\n const milliseconds = Number(dateString.slice(15, dateString.length));\r\n\r\n return new Date(year, month, day, hour, minute, second, milliseconds);\r\n };\r\n\r\n formatDate = (date: Date, format: string): string => {\r\n const padZero = (value: number, length: number) =>\r\n String(value).padStart(length, \"0\");\r\n\r\n const year = padZero(date.getFullYear(), 4);\r\n const month = padZero(date.getMonth() + 1, 2); // Months are zero-indexed, so add 1\r\n const day = padZero(date.getDate(), 2);\r\n const hours = padZero(date.getHours(), 2);\r\n const minutes = padZero(date.getMinutes(), 2);\r\n const seconds = padZero(date.getSeconds(), 2);\r\n const milliseconds = padZero(date.getMilliseconds(), 6);\r\n\r\n return format\r\n .replace(\"%Y\", year)\r\n .replace(\"%m\", month)\r\n .replace(\"%d\", day)\r\n .replace(\"%H\", hours)\r\n .replace(\"%M\", minutes)\r\n .replace(\"%S\", seconds)\r\n .replace(\"%s\", milliseconds);\r\n };\r\n\r\n zipLongest = (fillValue = \"\", ...arr: string[]): string[][] => {\r\n const maxLength = Math.max(...arr.map((arr: string) => arr.length));\r\n\r\n return Array.from({ length: maxLength }, (_, index) => {\r\n return arr.map((arr: string[number]) =>\r\n arr[index] !== undefined ? arr[index] : fillValue\r\n );\r\n });\r\n };\r\n\r\n checkTag = (dataset: dataSet, dataTag: string): returnarg => {\r\n const tagName =\r\n data.DicomMetaDictionary.dictionary[\r\n data.DicomMetaDictionary.punctuateTag(dataTag)\r\n ].name;\r\n const timeName = tagName.replace(\"Date\", \"Time\");\r\n\r\n if (typeof data.DicomMetaDictionary.nameMap[timeName] !== \"undefined\") {\r\n let timeNameTag = data.DicomMetaDictionary.nameMap[timeName].tag;\r\n timeNameTag = data.DicomMetaDictionary.unpunctuateTag(timeNameTag);\r\n\r\n if (timeNameTag in dataset) {\r\n const timeElement = dataset[timeNameTag];\r\n const returnArg: returnarg = {\r\n value: timeElement.Value,\r\n tag: timeNameTag,\r\n };\r\n\r\n return returnArg;\r\n } else {\r\n const returnArg: returnarg = {\r\n value: \"\",\r\n tag: \"\",\r\n };\r\n return returnArg;\r\n }\r\n } else {\r\n const returnArg: returnarg = {\r\n value: \"\",\r\n tag: \"\",\r\n };\r\n return returnArg;\r\n }\r\n };\r\n}\r\n\r\nexport default DateTimeAnonymizer;\r\n","import { dataSet } from \"dcmjs\";\n\nclass FixedValueAnonymizer {\n private tag: string;\n private value: string;\n\n constructor(tag: string, value: string) {\n this.tag = tag;\n this.value = value;\n }\n\n anonymize = async (dataset: dataSet, dataTag: string): Promise => {\n if (dataTag == this.tag) {\n dataset[dataTag].Value[0] = this.value;\n\n return true;\n } else {\n return false;\n }\n };\n}\n\nexport default FixedValueAnonymizer;\n","import { data, dataSet } from \"dcmjs\";\nimport Randomizer from \"./randomizer\";\n\nclass IDAnonymizer {\n private keywords: string[];\n private randomizer: Randomizer;\n private idSuffix: string;\n private idPrefix: string;\n private issuerTag: string;\n private alphabet: string;\n private totalAffixesLength: number;\n private indicesForRandomizer: number[];\n\n constructor(Randomizer: Randomizer, keywords: string[], idPrefix = \"\", idSuffix = \"\") {\n this.keywords = keywords;\n this.randomizer = Randomizer;\n this.idPrefix = idPrefix;\n this.idSuffix = idSuffix;\n this.issuerTag = data.DicomMetaDictionary.nameMap[\"IssuerOfPatientID\"].tag;\n\n this.alphabet = \"ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789\";\n this.totalAffixesLength = this.idPrefix.length + this.idSuffix.length;\n this.indicesForRandomizer = new Array(12 - this.totalAffixesLength).fill(\n this.alphabet.length\n );\n }\n\n anonymize = async (dataset: dataSet, dataTag: string): Promise => {\n if (this.keywords.includes(dataTag)) {\n await this.replaceID(dataset, dataTag);\n\n return true;\n } else if (dataTag == this.issuerTag && dataset[dataTag].Value[0] != \"\") {\n dataset[dataTag].Value[0] = \"DICOM_ANONYMIZER\";\n return true;\n } else {\n return false;\n }\n };\n\n replaceID = async (dataset: dataSet, dataTag: string) => {\n if (dataset[dataTag].Value.length > 1) {\n for (let i = 0; i < dataset[dataTag].Value.length; i++) {\n dataset[dataTag].Value[i] = await this.newID(dataset[dataTag].Value[i]);\n }\n } else if (dataset[dataTag].Value.length == 1) {\n const originalValue = dataset[dataTag].Value[0];\n dataset[dataTag].Value[0] = await this.newID(originalValue);\n } else {\n dataset[dataTag].Value[0] = await this.newID(\"\");\n }\n };\n\n newID = async (originalValue: string) => {\n const indexes = await this.randomizer.getIntsFromRanges(\n originalValue,\n ...this.indicesForRandomizer\n );\n const idRoot: string = indexes.map((i) => this.alphabet[i]).join(\"\");\n\n return this.idPrefix + idRoot + this.idSuffix;\n };\n}\n\nexport default IDAnonymizer;\n","import { data, dataSet } from \"dcmjs\";\nimport AddressAnonymizer from \"./addressanonymizer\";\n\nclass InstitutionAnonymizer {\n private addressAnonymizer: AddressAnonymizer;\n\n institutionName: string = data.DicomMetaDictionary.nameMap[\"InstitutionName\"].tag; //0008,0080\n institutionAddress: string = data.DicomMetaDictionary.nameMap[\"InstitutionAddress\"].tag; //0008,0081\n institutionalDepartmentName: string =\n data.DicomMetaDictionary.nameMap[\"InstitutionalDepartmentName\"].tag; //0008,1040\n valueFactories; //: { [key: string]: (originalValue: string) => string };\n\n constructor(AddressAnonymizer: AddressAnonymizer) {\n this.addressAnonymizer = AddressAnonymizer;\n\n this.institutionName = data.DicomMetaDictionary.unpunctuateTag(this.institutionName);\n this.institutionAddress = data.DicomMetaDictionary.unpunctuateTag(this.institutionAddress);\n this.institutionalDepartmentName = data.DicomMetaDictionary.unpunctuateTag(\n this.institutionalDepartmentName\n );\n\n this.valueFactories = {\n [this.institutionName]: this.anonymizeInstitutionName,\n [this.institutionAddress]: this.anonymizeInstitutionAddress,\n [this.institutionalDepartmentName]: this.anonymizeDepartmentName,\n };\n }\n\n anonymize = async (dataset: dataSet, dataTag: string): Promise => {\n const valueFactory: (originalValue: string) => Promise = await this.valueFactories[\n dataTag\n ];\n if (valueFactory == undefined) {\n return false;\n }\n\n if (dataset[dataTag].Value.length > 1) {\n for (let i = 0; i < dataset[dataTag].Value.length; i++) {\n dataset[dataTag].Value[i] = await valueFactory(dataset[dataTag].Value[i]);\n }\n return true;\n } else if (dataset[dataTag].Value.length == 1) {\n const originalValue: string = dataset[dataTag].Value[0];\n dataset[dataTag].Value[0] = await valueFactory(originalValue);\n return true;\n } else {\n dataset[dataTag].Value[0] = await valueFactory(\"\");\n return true;\n }\n };\n\n anonymizeInstitutionName = async (originalValue: string): Promise => {\n const region = await this.addressAnonymizer.getRegion(originalValue);\n const streetAddress = await this.addressAnonymizer.getStreetAddress(originalValue);\n const returnString = `${region}'S ${streetAddress} CLINIC`;\n\n return returnString;\n };\n\n anonymizeInstitutionAddress = async (originalValue: string): Promise => {\n const fullAddress = await this.addressAnonymizer.getLegalAddress(originalValue);\n const country = await this.addressAnonymizer.getCountry(originalValue);\n\n const returnString = `${fullAddress}, ${country}`;\n\n return returnString;\n };\n\n anonymizeDepartmentName = (): Promise => {\n return Promise.resolve(\"RADIOLOGY\");\n };\n}\n\nexport default InstitutionAnonymizer;\n","import { dataSet } from \"dcmjs\";\r\nimport { lists } from \"./lists\";\r\nimport Randomizer from \"./randomizer\";\r\n\r\nclass PNAnonymizer {\r\n private randomizer: Randomizer;\r\n lists: lists;\r\n\r\n constructor(randomizer: Randomizer) {\r\n this.randomizer = randomizer;\r\n this.lists = new lists();\r\n }\r\n\r\n anonymize = async (dataset: dataSet, dataTag: string): Promise => {\r\n if (dataset[dataTag].vr != \"PN\") {\r\n return false;\r\n }\r\n\r\n let patientSex = \"\";\r\n if (\"00100040\" in dataset) {\r\n patientSex = dataset[\"00100040\"].Value[0]; //PatientSex\r\n }\r\n\r\n if (dataset[dataTag].Value.length > 1) {\r\n for (let i = 0; i < dataset[dataTag].Value.length; i++) {\r\n dataset[dataTag].Value[i].Alphabetic = await this.newPN(\r\n dataset[dataTag].Value[i].Alphabetic,\r\n patientSex\r\n );\r\n }\r\n } else if (dataset[dataTag].Value.length == 1) {\r\n const originalName = dataset[dataTag].Value[0].Alphabetic;\r\n\r\n dataset[dataTag].Value[0].Alphabetic = await this.newPN(originalName, patientSex);\r\n } else {\r\n dataset[dataTag].Value[0].Alphabetic = await this.newPN(\"\", patientSex);\r\n }\r\n\r\n return true;\r\n };\r\n\r\n async newPN(originalValue: string, sex = \"\") {\r\n let firstNames: string[];\r\n if (sex == \"F\") {\r\n firstNames = this.lists.femaleFirstNames;\r\n } else if (sex == \"M\") {\r\n firstNames = this.lists.maleFirstNames;\r\n } else {\r\n firstNames = this.lists.allFirstNames;\r\n }\r\n const lastNames = this.lists.lastNames;\r\n if (originalValue != undefined) {\r\n originalValue = originalValue.replaceAll(\"^\", \"\");\r\n }\r\n\r\n const indices = await this.randomizer.getIntsFromRanges(\r\n originalValue,\r\n this.lists.lastNames.length,\r\n firstNames.length,\r\n this.lists.allFirstNames.length\r\n );\r\n\r\n return `${lastNames[indices[0]]}^${firstNames[indices[1]]}^${\r\n this.lists.allFirstNames[indices[2]]\r\n }`;\r\n }\r\n}\r\n\r\nexport default PNAnonymizer;\r\n","import { data, dataSet } from \"dcmjs\";\n\nclass PrivatTagAnonymizer {\n anonymize = (dataset: dataSet, dataTag: string): boolean => {\n const currTag = data.Tag.fromString(dataTag);\n if (currTag.group() % 2 === 1) {\n delete dataset[dataTag];\n return true;\n } else {\n return false;\n }\n };\n}\n\nexport default PrivatTagAnonymizer;\n","// import { getRandomValues } from \"crypto\";\n// import crypto from \"crypto\";\n\nclass Randomizer {\n private seed: string;\n\n constructor(seed = \"\") {\n if (seed == \"\") {\n this.seed = this.generateRandomSeed();\n } else {\n this.seed = seed;\n }\n }\n\n // For Node work\n // private calculateMD5Digest(data: Uint8Array): Uint8Array {\n // const hash = crypto.createHash(\"md5\");\n // hash.update(data);\n // return hash.digest();\n // }\n private async calculateSHADigestWeb(array: Uint8Array): Promise {\n // if (typeof window !== \"undefined\") {\n const hashBuffer = await window.crypto.subtle.digest(\"SHA-1\", array);\n return new Promise((resolve) => {\n resolve(new Uint8Array(hashBuffer));\n });\n // } else {\n // const hash = crypto.createHash(\"sha256\");\n // hash.update(array);\n // const arr = new Uint8Array(hash.digest());\n // return new Promise((resolve) => {\n // resolve(arr);\n // });\n // }\n }\n // private async calculateSHADigestWeb(array: Uint8Array): Promise {\n // if (typeof window !== \"undefined\") {\n // const hashBuffer = await window.crypto.subtle.digest(\"SHA-256\", array);\n // return new Promise((resolve) => {\n // resolve(new Uint8Array(hashBuffer));\n // });\n // } else {\n // const hash = crypto.createHash(\"sha256\");\n // hash.update(array);\n // const arr = new Uint8Array(hash.digest());\n // return new Promise((resolve) => {\n // resolve(arr);\n // });\n // }\n // }\n\n private calculateResult(hash: Uint8Array): bigint {\n let result = 0;\n for (const byte of hash) {\n result *= 0x100;\n result += byte;\n }\n return BigInt(result);\n }\n\n private generateRandomSeed(): string {\n const randomValues = new Uint8Array(20);\n\n // if (typeof window !== \"undefined\") {\n // window.crypto.getRandomValues(randomValues); //-> use in browser env\n // } else {\n // getRandomValues(randomValues);\n // }\n window.crypto.getRandomValues(randomValues); //-> use in browser env\n\n const seed = Array.from(randomValues, (byte) => byte.toString(16).padStart(2, \"0\")).join(\"\");\n\n return seed;\n }\n\n // public toInt(originalValue: string, callback: (result: bigint) => void): void {\n // const message = this.seed + String(originalValue);\n // const encoder = new TextEncoder();\n // const encoded = encoder.encode(message);\n\n // if (typeof window !== \"undefined\") {\n // this.calculateSHADigestWeb(encoded).then((hashBuffer) => {\n // const hashed = hashBuffer;\n // const result = this.calculateResult(hashed);\n // callback(result);\n // });\n // } else {\n // // const hashed = this.calculateMD5Digest(encoded);\n // // const result = this.calculateResult(hashed);\n // // callback(result);\n // }\n // }\n public async toInt(originalValue: string): Promise {\n const message = this.seed + String(originalValue);\n const encoder = new TextEncoder();\n const encoded = encoder.encode(message);\n const hashed = await this.calculateSHADigestWeb(encoded);\n const result = this.calculateResult(hashed);\n\n return result;\n }\n public async getIntsFromRanges(originalValue: string, ...suprema: number[]): Promise {\n let result: bigint | number[] = [];\n let bigNumber = await this.toInt(originalValue);\n const arr: number[] = [];\n for (const x of suprema) {\n const s = BigInt(x);\n arr.push(Number(bigNumber % s));\n bigNumber = bigNumber / s;\n }\n\n result = arr;\n\n return result;\n }\n}\n\nexport default Randomizer;\n","import { data, dataSet } from \"dcmjs\";\nimport Randomizer from \"./randomizer\";\n\nclass UIAnonymizer {\n private randomizer: Randomizer;\n\n constructor(Randomizer: Randomizer) {\n this.randomizer = Randomizer;\n }\n\n anonymize = async (dataset: dataSet, dataTag: string): Promise => {\n const tag = data.DicomMetaDictionary.punctuateTag(dataTag);\n\n if (\n dataset[dataTag].vr != \"UI\" ||\n dataset[dataTag].Value[0] == undefined ||\n data.DicomMetaDictionary.dictionary[tag].name.endsWith(\"ClassUID\") ||\n data.DicomMetaDictionary.dictionary[tag].name == \"TransferSyntaxUID\"\n ) {\n return false;\n } else {\n if (dataset[dataTag].Value.length > 1) {\n for (let i = 0; i < dataset[dataTag].Value.length; i++) {\n dataset[dataTag].Value[i] = await this.newUI(dataset[dataTag].Value[i]);\n }\n } else if (dataset[dataTag].Value.length == 1) {\n const originalUI = dataset[dataTag].Value[0];\n dataset[dataTag].Value[0] = await this.newUI(originalUI);\n } else {\n dataset[dataTag].Value[0] = await this.newUI(\"\");\n }\n\n return true;\n }\n };\n\n async newUI(origUI: string) {\n const result = await this.randomizer.toInt(origUI);\n const number4String = BigInt(result);\n return `2.${BigInt(10 ** 39) + number4String}`;\n }\n}\n\nexport default UIAnonymizer;\n","import { dataSet } from \"dcmjs\";\n\nclass UnwantedElementStripper {\n private tags: string[];\n\n constructor(keywords: string[]) {\n this.tags = keywords;\n }\n\n anonymize = (dataset: dataSet, dataTag: string): boolean => {\n if (this.tags.includes(dataTag)) {\n delete dataset[dataTag];\n return true;\n } else {\n return false;\n }\n };\n}\n\nexport default UnwantedElementStripper;\n","import { dataSet, data } from \"dcmjs\";\n\nclass TagError extends Error {\n constructor(tag: string) {\n const message = `Bad tag name '${tag}'. Must be a well-known DICOM element name or a string in the form 'stuv,wxyz' where each character is a hexadecimal digit.`;\n super(message);\n\n // Set the prototype explicitly to ensure correct inheritance\n Object.setPrototypeOf(this, TagError.prototype);\n }\n}\n\nclass ValueKeeper {\n private protectedTags: string[] = [];\n\n constructor(keywords: string[] = []) {\n for (const tag of keywords) {\n let pattern = /^\\(?([0-9A-F]{4}),?([0-9A-F]{4})\\)?$/;\n let match = tag.match(pattern);\n if (match) {\n this.protectedTags.push(match[1] + match[2]);\n } else {\n pattern = /^[a-zA-Z]+$/;\n\n try {\n match = tag.match(pattern)!;\n const tempTag = data.DicomMetaDictionary.nameMap[match[0]];\n if (!tempTag) {\n throw new TagError(\"invalidTag\");\n } else {\n this.protectedTags.push(tempTag.tag);\n }\n } catch (error) {\n if (error instanceof TagError) {\n console.error(error.message);\n } else {\n // Handle other types of errors\n console.error(\"An unexpected error occurred:\", error);\n }\n }\n }\n }\n }\n\n keep = (_: dataSet, dataTag: string): boolean => {\n if (this.protectedTags.includes(dataTag)) {\n return true;\n } else {\n return false;\n }\n };\n}\n\nexport default ValueKeeper;\n","import { data, dataSet } from \"dcmjs\";\r\nimport AddressAnonymizer from \"./addressanonymizer\";\r\nimport DateTimeAnonymizer from \"./datetimeanonymizer\";\r\nimport FixedValueAnonymizer from \"./fixedvalueanonymizer\";\r\nimport IDAnonymizer from \"./idanonymizer\";\r\nimport InstitutionAnonymizer from \"./institutionanonymizer\";\r\nimport PNAnonymizer from \"./pnanonymizer\";\r\nimport PrivatTagAnonymizer from \"./privatetaganonymizer\";\r\nimport Randomizer from \"./randomizer\";\r\nimport UIAnonymizer from \"./uianonymizer\";\r\nimport UnwantedElementStripper from \"./unwantedelements\";\r\nimport ValueKeeper from \"./valuekeeper\";\r\n\r\ntype ElementHandler = (\r\n dataset: dataSet,\r\n tag: string\r\n) => boolean | Promise;\r\n\r\nexport default class Anonymizer {\r\n /**\r\n The main class responsible for anonymizing dcmjs datasets.\r\n New instances will anonymize instances differently, so when\r\n anonymizing instances from the same series, study, or patient,\r\n reuse an Anonymizer.\r\n \r\n */\r\n\r\n private patientID?: string;\r\n private anonymizePrivateTags?: boolean = true;\r\n private dateOffsetHours = 0;\r\n randomizer: Randomizer;\r\n addressAnonymizer: AddressAnonymizer;\r\n elementHandlers: ElementHandler[];\r\n\r\n constructor(\r\n patientID?: string,\r\n protectedTags?: string[],\r\n anonymizePrivateTags?: boolean,\r\n idPrefix?: string,\r\n idSuffix?: string,\r\n seed?: string\r\n ) {\r\n if (patientID) {\r\n this.patientID = patientID;\r\n }\r\n if (anonymizePrivateTags) {\r\n this.anonymizePrivateTags = anonymizePrivateTags;\r\n }\r\n\r\n this.randomizer = new Randomizer(seed);\r\n this.setOffset();\r\n\r\n this.addressAnonymizer = new AddressAnonymizer(this.randomizer);\r\n this.elementHandlers = [\r\n new UnwantedElementStripper([\r\n \"00101081\", //\"BranchOfService\",\r\n \"00102180\", //\"Occupation\",\r\n \"00101090\", //\"MedicalRecordLocator\",\r\n \"00101080\", //\"MilitaryRank\",\r\n \"00100050\", //\"PatientInsurancePlanCodeSequence\",\r\n \"00102201\", //\"PatientReligiousPreference\",\r\n \"00102155\", //\"PatientTelecomInformation\",\r\n \"00102154\", //\"PatientTelephoneNumbers\",\r\n \"00101100\", //\"ReferencedPatientPhotoSequence\",\r\n \"00102299\", //\"ResponsibleOrganization\"\r\n ]).anonymize,\r\n new UIAnonymizer(this.randomizer).anonymize,\r\n new PNAnonymizer(this.randomizer).anonymize,\r\n new IDAnonymizer(\r\n this.randomizer,\r\n [\r\n \"00080050\", //\"AccessionNumber\",\r\n \"00101000\", //\"OtherPatientIDs\",\r\n \"00402017\", //\"FillerOrderNumberImagingServiceRequest\",\r\n //\"FillerOrderNumberImagingServiceRequestRetired\", Retired\r\n //\"FillerOrderNumberProcedure\", Retired\r\n \"00100020\", //\"PatientID\",\r\n \"00400253\", //\"PerformedProcedureStepID\",\r\n \"00402016\", //\"PlacerOrderNumberImagingServiceRequest\",\r\n //\"PlacerOrderNumberImagingServiceRequestRetired\",Retired\r\n // \"PlacerOrderNumberProcedure\", Retired\r\n \"00401001\", //\"RequestedProcedureID\",\r\n \"00400009\", //\"ScheduledProcedureStepID\",\r\n \"00081010\", //\"StationName\",\r\n \"00200010\", //\"StudyID\"\r\n ],\r\n idPrefix,\r\n idSuffix\r\n ).anonymize,\r\n this.addressAnonymizer.anonymize,\r\n new InstitutionAnonymizer(this.addressAnonymizer).anonymize,\r\n new FixedValueAnonymizer(\"00321033\", \"\").anonymize, // RequestingService\r\n new FixedValueAnonymizer(\"00380300\", \"\").anonymize, // CurrentPatientLocation\r\n ];\r\n if (protectedTags) {\r\n this.elementHandlers.unshift(new ValueKeeper(protectedTags).keep);\r\n }\r\n if (this.patientID) {\r\n this.elementHandlers.unshift(\r\n new FixedValueAnonymizer(\"00100020\", this.patientID).anonymize\r\n );\r\n }\r\n if (this.anonymizePrivateTags) {\r\n this.elementHandlers.push(new PrivatTagAnonymizer().anonymize);\r\n }\r\n }\r\n async setOffset() {\r\n const res = await this.randomizer.toInt(\"dateOffset\");\r\n const minimumOffsetHours: number = 62 * 24;\r\n const maximumOffsetHours: number = 730 * 24;\r\n\r\n this.dateOffsetHours = Number(\r\n -(\r\n (res % (BigInt(maximumOffsetHours) - BigInt(minimumOffsetHours))) +\r\n BigInt(minimumOffsetHours)\r\n )\r\n );\r\n\r\n this.elementHandlers.push(\r\n new DateTimeAnonymizer(this.dateOffsetHours).anonymize\r\n );\r\n }\r\n\r\n async anonymize(dcmDict: data.DicomDict) {\r\n await this.walk(dcmDict.meta, this.elementHandlers);\r\n await this.walk(dcmDict.dict, this.elementHandlers);\r\n }\r\n\r\n async walk(dataset: dataSet, handler: ElementHandler[]) {\r\n const tagList = Object.keys(dataset);\r\n\r\n for (const tag of tagList) {\r\n const element = dataset[tag];\r\n\r\n await this.anonymizeElement(dataset, tag, handler);\r\n\r\n // If the element is a sequence, recursively walk through its items\r\n if (tag in dataset && element.vr == \"SQ\") {\r\n for (let i = 0; i < element.Value.length; i++) {\r\n const sequence = element.Value;\r\n for (const item of sequence) {\r\n this.walk(item, handler);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n async anonymizeElement(\r\n dataset: dataSet,\r\n tag: string,\r\n handler: ElementHandler[]\r\n ) {\r\n // Perform operations on the element\r\n\r\n for (const callback of handler) {\r\n const result = await callback(dataset, tag);\r\n\r\n if (result) {\r\n return;\r\n }\r\n }\r\n }\r\n}\r\n"],"names":["lists","AddressAnonymizer","Randomizer","data","dataset","dataTag","valueFactory","i","originalValue","street","streetNumber","city","streetNumberIndex","streetIndex","cityIndex","countryIndex","DateTimeAnonymizer","dateOffsetHours","dates","result","times","newDates","newTimes","date","time","newDateTime","dateTimes","newDateTimes","dateTimeValue","newDateTimeString","dateTimeFormat","oldDateTime","dateString","year","month","day","hour","minute","second","milliseconds","format","padZero","value","length","hours","minutes","seconds","fillValue","arr","maxLength","_","index","timeName","timeNameTag","FixedValueAnonymizer","tag","IDAnonymizer","keywords","idPrefix","idSuffix","idRoot","InstitutionAnonymizer","region","streetAddress","fullAddress","country","PNAnonymizer","randomizer","patientSex","originalName","sex","firstNames","lastNames","indices","PrivatTagAnonymizer","seed","array","hashBuffer","resolve","hash","byte","randomValues","message","encoded","hashed","suprema","bigNumber","x","s","UIAnonymizer","originalUI","origUI","number4String","UnwantedElementStripper","TagError","ValueKeeper","pattern","match","tempTag","error","Anonymizer","patientID","protectedTags","anonymizePrivateTags","res","minimumOffsetHours","maximumOffsetHours","dcmDict","handler","tagList","element","sequence","item","callback"],"mappings":"6PAAO,MAAMA,CAAM,CASjB,aAAc,CACZ,KAAK,iBAAmB,CACtB,OACA,WACA,QACA,UACA,YACA,WACA,QACA,QACA,WACA,UACA,OACA,QACA,QACA,QACA,QACA,SACA,QACA,QACA,OACA,SACA,WACA,QACA,QACA,WACA,UACA,UACA,UACA,UACA,SACA,UACA,SACA,MACA,OACA,UACA,WACA,WACA,SACA,SACA,QACA,SACA,YACA,UACA,YACA,QACA,QACA,YACA,UACA,MACA,QACA,QACA,QACA,QACA,UACA,SACA,QACA,SACA,SACA,OACA,SACA,UACA,YACA,OACA,SACA,SACA,OACA,SACA,QACA,SACA,OACA,YACA,QACA,UACA,UACA,SACA,QACA,QACA,OACA,OACA,SACA,UACA,SACA,UACA,SACA,OACA,OACA,aACA,QACA,SACA,QACA,OACA,OACA,OACA,UACA,QACA,QACA,QACA,QACA,UACA,QACA,QACA,QACA,UACA,SACA,OACA,OACA,SACA,WACA,QACA,OACA,UACA,SACA,OACA,QACA,QACA,QACA,WACA,QACA,MACA,SACA,SACA,YACA,SACA,UACA,SACA,QACA,QACA,SACA,WACA,SACA,YACA,SACA,SACA,UACA,OACA,UACA,QACA,SACA,QACA,QACA,MACA,SACA,QACA,SACA,QACA,UACA,QACA,SACA,UACA,UACA,WACA,QACA,SACA,UACA,UACA,OACA,SACA,UACA,WACA,OACA,OACA,YACA,SACA,QACA,QACA,WACA,OACA,QACA,SACA,QACA,WACA,UACA,UACA,SACA,SACA,UACA,OACA,WACA,SACA,OACA,QACA,MACA,QACA,MACA,SACA,UACA,QACA,WACA,UACA,UACA,UACA,WACA,SACA,QACA,UACA,UACA,OACA,MACA,QACA,OACA,SACA,QACA,QACA,OACA,WACA,SACA,QACA,WACA,OACA,QACA,OACA,SACA,QACA,OACA,UACA,SACA,UACA,QACA,OACA,SACA,WACA,SACA,UACA,UACA,QACA,SACA,UACA,UACA,UACA,SACA,MACA,UACA,YACA,SACA,UACA,SACA,SACA,QACA,SACA,SACA,UACA,QACA,SACA,QACA,QACA,WACA,SACA,SACA,WACA,OACA,KACA,SACA,SACA,QACA,SACA,OACA,QACA,SACA,SACA,OACA,UACA,SACA,QACA,QACA,YACA,SACA,OACA,SACA,OACA,YACA,OACA,QACA,MACA,YACA,QACA,SACA,SACA,OACA,SACA,SACA,SACA,QACA,QACA,UACA,QACA,SACA,QACA,QACA,SACA,SACA,WACA,OACA,QACA,MACA,SACA,QACA,SACA,SACA,QACA,UACA,SACA,UACA,UACA,SACA,YACA,UACA,YACA,SACA,OACA,OACA,MACA,UACA,UACA,SACA,aACA,SACA,UACA,QACA,UACA,SACA,SACA,UACA,QACA,QACA,SACA,OACA,SACA,QACA,OACA,QACA,WACA,SACA,UACA,YACA,UACA,OACA,QACA,SACA,QACA,QACA,MACA,MACA,WACA,UACA,SACA,UACA,OACA,SACA,SACA,SACA,MACA,QACA,SACA,QACA,UACA,SACA,QACA,OACA,OACA,QACA,SACA,aACA,UACA,QACA,YACA,MACA,QACA,SACA,UACA,UACA,QACA,QACA,SACA,QACA,SACA,QACA,QACA,QACA,QACA,QACA,WACA,OACA,YACA,OACA,SACA,OACA,UACA,MACA,SACA,UACA,WACA,UACA,QACA,UACA,WACA,UACA,YACA,SACA,UACA,QACA,aACA,QACA,OACA,SACA,UACA,UACA,UACA,UACA,QACA,YACA,SACA,WACA,QACA,UACA,WACA,SACA,OACA,UACA,SACA,WACA,OACA,OACA,SACA,YACA,QACA,UACA,UACA,OACA,SACA,QACA,QACA,WACA,QACA,WACA,WACA,UACA,OACA,WACA,OACA,QACA,SACA,SACA,SACA,WACA,WACA,UACA,SACA,YACA,SACA,OACA,SACA,OACA,QACA,QACA,SACA,UACA,QACA,SACA,QACA,SACA,SACA,QACA,QACA,SACA,OACA,QACA,SACA,SACA,QACA,OACA,OACA,QACA,MACA,QACA,QACA,QACA,SACA,OACA,WACA,UACA,UACA,QACA,QACA,QACA,QACA,OACA,UACA,QACA,UACA,OACA,SACA,QACA,QACA,QACA,MACA,SACA,UACA,QACA,QACA,WACA,UACA,SACA,SACA,QACA,OACA,QACA,QACA,SACA,UACA,SACA,UACA,QACA,UACA,QACA,WACA,UACA,SACA,UACA,QACA,SACA,UACA,UACA,QACA,OACA,QACA,UACA,UACA,SACA,QACA,QACA,QACA,OACA,QACA,SACA,SACA,SACA,OACA,SACA,QACA,SACA,QACA,UACA,YACA,QACA,SACA,UACA,QACA,WACA,UACA,UACA,SACA,SACA,OACA,OACA,UACA,SACA,MACA,SACA,YACA,OACA,UACA,SACA,MACA,UACA,UACA,SACA,SACA,QACA,UACA,UACA,UACA,OACA,QACA,UACA,UACA,QACA,SACA,WACA,SACA,UACA,SACA,SACA,QACA,OACA,SACA,MACA,UACA,WACA,OACA,QACA,YACA,UACA,YACA,SACA,SACA,WACA,OACA,WACA,UACA,MACA,SACA,SACA,OACA,QACA,MACA,UACA,UACA,QACA,SACA,QACA,SACA,WACA,SACA,UACA,QACA,OACA,WACA,QACA,SACA,OACA,QACA,QACA,WACA,UACA,SACA,SACA,QACA,SACA,WACA,OACA,SACA,SACA,UACA,QACA,UACA,QACA,QACA,SACA,SACA,SACA,UACA,SACA,WACA,UACA,QACA,UACA,UACA,UACA,UACA,SACA,WACA,SACA,OACA,SACA,SACA,SACA,YACA,WACA,UACA,YACA,SACA,YACA,SACA,QACA,QACA,MACA,UACA,SACA,UACA,OACA,SACA,UACA,YACA,UACA,OACA,UACA,QACA,QACA,SACA,QACA,UACA,SACA,SACA,WACA,QACA,SACA,QACA,UACA,QACA,UACA,OACA,QACA,QACA,QACA,OACA,OACA,OACA,MACA,MACA,SACA,QACA,QACA,OACA,YACA,SACA,SACA,QACA,UACA,QACA,WACA,SACA,SACA,SACA,QACA,SACA,UACA,SACA,WACA,QACA,QACA,YACA,QACA,QACA,QACA,OACA,YACA,UACA,MACA,QACA,SACA,QACA,UACA,QACA,SACA,QACA,SACA,SACA,UACA,UACA,UACA,UACA,WACA,MACA,MACA,WACA,QACA,UACA,aACA,aACA,MACA,UACA,MACA,OACA,SACA,OACA,SACA,UACA,SACA,OACA,UACA,SACA,UACA,SACA,OACA,QACA,QACA,SACA,SACA,SACA,WACA,UACA,WACA,WACA,SACA,SACA,UACA,SACA,QACA,SACA,YACA,SACA,MACA,UACA,QACA,UACA,SACA,SACA,UACA,UACA,OACA,SACA,YACA,SACA,QACA,QACA,MACA,QACA,YACA,SACA,UACA,SACA,QACA,QACA,aACA,WACA,SACA,QACA,SACA,OACA,YACA,SACA,UACA,UACA,UACA,OACA,SACA,UACA,OACA,WACA,OACA,UACA,SACA,WACA,UACA,QACA,SACA,QACA,SACA,WACA,UACA,YACA,UACA,QACA,OACA,QACA,UACA,SACA,OACA,QACA,QACA,WACA,OACA,SACA,SACA,UACA,QACA,QACA,QACA,WACA,aACA,UACA,QACA,UACA,UACA,QACA,QACA,SACA,QACA,UACA,UACA,OACA,QACA,OACA,YACA,WACA,OACA,SACA,UACA,WACA,UACA,OACA,SACA,UACA,SACA,QACA,QACA,QACA,QACA,UACA,OACA,SACA,UACA,UACA,UACA,QACA,QACA,QACA,QACA,SACA,WACA,QACA,SACA,SACA,QACA,UACA,QACA,WACA,QACA,UACA,SACA,UACA,UACA,QACA,YACA,SACA,SACA,WACA,YACA,QACA,UACA,UACA,WACA,SACA,UACA,SACA,QACA,SACA,SACA,QACA,QACA,QACA,QACA,SACA,QACA,QACA,MACA,aACA,UACA,SACA,OACA,OACA,UACA,OACA,SACA,UACA,SACA,YACA,OACA,SACA,UACA,QACA,WACA,WACA,WACA,SACA,SACA,WACA,SACA,QACA,SACA,YACA,WACA,QACA,UACA,YACA,MACA,QACA,QACA,QACA,SACA,OACA,WACA,SACA,QACA,SACA,YACA,YACA,UACA,UACA,SACA,UACA,SACA,QACA,QACA,QACA,SACA,OACA,WACA,SACA,OACA,WACA,SACA,QACA,QACA,OACA,SACA,UACA,QACA,QACA,UACA,UACA,OACA,UACA,WACA,OACA,WACA,SACA,WACA,WACA,QACA,QAAA,EAEF,KAAK,eAAiB,CACpB,QACA,OACA,SACA,UACA,UACA,QACA,UACA,UACA,SACA,SACA,cACA,SACA,OACA,OACA,SACA,SACA,UACA,SACA,SACA,QACA,SACA,UACA,QACA,QACA,UACA,OACA,UACA,OACA,QACA,UACA,QACA,QACA,OACA,UACA,SACA,UACA,UACA,SACA,QACA,SACA,SACA,UACA,QACA,SACA,UACA,QACA,OACA,SACA,OACA,QACA,MACA,OACA,OACA,SACA,WACA,SACA,QACA,SACA,QACA,SACA,SACA,QACA,WACA,WACA,MACA,WACA,QACA,UACA,OACA,QACA,OACA,QACA,QACA,QACA,QACA,SACA,QACA,QACA,SACA,SACA,SACA,UACA,QACA,SACA,SACA,SACA,UACA,OACA,QACA,QACA,OACA,QACA,WACA,OACA,SACA,QACA,SACA,OACA,QACA,UACA,QACA,QACA,OACA,OACA,OACA,UACA,UACA,SACA,OACA,SACA,SACA,SACA,SACA,QACA,SACA,UACA,QACA,UACA,SACA,OACA,OACA,QACA,MACA,SACA,SACA,OACA,UACA,UACA,QACA,UACA,YACA,MACA,OACA,QACA,MACA,QACA,QACA,OACA,UACA,QACA,YACA,UACA,QACA,QACA,YACA,SACA,UACA,WACA,WACA,SACA,QACA,MACA,MACA,MACA,SACA,OACA,MACA,SACA,OACA,QACA,QACA,OACA,QACA,SACA,UACA,SACA,QACA,MACA,QACA,MACA,SACA,SACA,OACA,OACA,QACA,SACA,QACA,UACA,MACA,QACA,UACA,QACA,SACA,UACA,SACA,UACA,QACA,OACA,SACA,QACA,UACA,MACA,OACA,SACA,QACA,QACA,UACA,QACA,UACA,OACA,OACA,WACA,QACA,QACA,QACA,YACA,SACA,SACA,QACA,SACA,OACA,MACA,UACA,QACA,QACA,WACA,QACA,QACA,OACA,UACA,MACA,WACA,SACA,SACA,SACA,QACA,SACA,OACA,OACA,SACA,OACA,SACA,QACA,OACA,SACA,YACA,SACA,WACA,UACA,MACA,SACA,SACA,SACA,SACA,QACA,OACA,QACA,QACA,OACA,QACA,SACA,MACA,UACA,OACA,MACA,SACA,SACA,UACA,QACA,SACA,UACA,SACA,MACA,UACA,MACA,MACA,QACA,QACA,UACA,UACA,OACA,OACA,UACA,SACA,QACA,SACA,QACA,SACA,UACA,UACA,QACA,OACA,SACA,OACA,WACA,WACA,QACA,OACA,SACA,SACA,QACA,OACA,OACA,WACA,OACA,UACA,WACA,UACA,UACA,OACA,SACA,SACA,WACA,SACA,YACA,SACA,OACA,OACA,SACA,UACA,WACA,OACA,SACA,OACA,SACA,OACA,UACA,SACA,SACA,OACA,QACA,SACA,OACA,QACA,SACA,SACA,QACA,OACA,OACA,OACA,UACA,UACA,MACA,UACA,UACA,UACA,OACA,QACA,UACA,OACA,SACA,QACA,QACA,SACA,WACA,QACA,UACA,SACA,SACA,OACA,MACA,SACA,QACA,YACA,UACA,UACA,QACA,SACA,OACA,UACA,QACA,SACA,QACA,KACA,OACA,WACA,QACA,WACA,WACA,SACA,SACA,UACA,KACA,UACA,QACA,QACA,UACA,QACA,YACA,UACA,QACA,QACA,OACA,UACA,UACA,QACA,SACA,UACA,YACA,SACA,SACA,QACA,UACA,SACA,QACA,YACA,MACA,YACA,SACA,WACA,UACA,UACA,SACA,QACA,YACA,QACA,SACA,UACA,SACA,OACA,QACA,UACA,QACA,aACA,OACA,OACA,SACA,UACA,OACA,SACA,QACA,SACA,QACA,SACA,WACA,QACA,UACA,WACA,SACA,UACA,OACA,OACA,QACA,QACA,KACA,UACA,OACA,OACA,UACA,QACA,QACA,UACA,QACA,UACA,UACA,QACA,SACA,UACA,UACA,WACA,SACA,QACA,OACA,SACA,SACA,SACA,MACA,OACA,QACA,OACA,YACA,QACA,UACA,OACA,QACA,SACA,WACA,QACA,QACA,OACA,UACA,QACA,QACA,OACA,QACA,UACA,SACA,SACA,QACA,SACA,UACA,UACA,OACA,MACA,OACA,WACA,OACA,WACA,MACA,SACA,SACA,OACA,UACA,SACA,SACA,SACA,SACA,UACA,SACA,SACA,OACA,UACA,OACA,OACA,QACA,WACA,OACA,SACA,OACA,QACA,WACA,WACA,UACA,QACA,UACA,SACA,QACA,UACA,QACA,QACA,SACA,SACA,QACA,QACA,SACA,SACA,YACA,QACA,QACA,QACA,SACA,SACA,SACA,MACA,QACA,UACA,SACA,UACA,QACA,WACA,SACA,QACA,SACA,QACA,YACA,QACA,QACA,SACA,SACA,OACA,SACA,WACA,SACA,SACA,QACA,SACA,OACA,QACA,SACA,QACA,OACA,UACA,UACA,SACA,QACA,QACA,SACA,WACA,QACA,SACA,QACA,UACA,WACA,OACA,SACA,QACA,QACA,SACA,UACA,SACA,UACA,SACA,SACA,SACA,WACA,QACA,SACA,SACA,SACA,UACA,QACA,UACA,SACA,UACA,QACA,WACA,QACA,QACA,MACA,UACA,MACA,QACA,MACA,SACA,WACA,SACA,SACA,MACA,SACA,QACA,WACA,QACA,SACA,MACA,UACA,UACA,QACA,SACA,SACA,SACA,OACA,SACA,UACA,MACA,SACA,QACA,SACA,QACA,OACA,SACA,SACA,QACA,SACA,OACA,SACA,SACA,MACA,QACA,OACA,QACA,SACA,SACA,SACA,UACA,QACA,UACA,SACA,UACA,QACA,SACA,SACA,QACA,YACA,WACA,KACA,SACA,SACA,MACA,OACA,SACA,OACA,YACA,QACA,WACA,WACA,QACA,UACA,QACA,QACA,QACA,WACA,UACA,OACA,QACA,SACA,OACA,YACA,WACA,UACA,YACA,UACA,OACA,QACA,QACA,QACA,QACA,OACA,QACA,SACA,OACA,QACA,UACA,MACA,QACA,UACA,SACA,QACA,QACA,OACA,SACA,QACA,UACA,QACA,UACA,SACA,SACA,SACA,SACA,QACA,MACA,UACA,OACA,SACA,QACA,SACA,SACA,SACA,YACA,QACA,WACA,OACA,QACA,QACA,OACA,SACA,UACA,UACA,YACA,OACA,SACA,OACA,QACA,UACA,SACA,SACA,UACA,UACA,OACA,SACA,SACA,SACA,SACA,QACA,WACA,WACA,UACA,SACA,QACA,SACA,OACA,UACA,OACA,UACA,QACA,SACA,SACA,SACA,SACA,OACA,UACA,UACA,WACA,UACA,QACA,SACA,SACA,QACA,YACA,UACA,SACA,UACA,QACA,UACA,SACA,SACA,WACA,QACA,UACA,UACA,QACA,UACA,OACA,SACA,OACA,UACA,UACA,UACA,UACA,OACA,QACA,SACA,WACA,OACA,WACA,QACA,QACA,QACA,QACA,SACA,MACA,UACA,OACA,SACA,UACA,UACA,YACA,QACA,QACA,WACA,UACA,OACA,OACA,QACA,WACA,SACA,QACA,SACA,UACA,SACA,OACA,OACA,QACA,SACA,WACA,UACA,QACA,SACA,UACA,SACA,QACA,QACA,QACA,UACA,UACA,SACA,UACA,UACA,UACA,WACA,QACA,WACA,SACA,UACA,SACA,YACA,OACA,OACA,SACA,OACA,QACA,QACA,QACA,QACA,MACA,QACA,UACA,QACA,SACA,QACA,QACA,QACA,QACA,OACA,OACA,WACA,WACA,QACA,OACA,OACA,SACA,UACA,WACA,QACA,SACA,SACA,UACA,SACA,SACA,SACA,SACA,OACA,QACA,MACA,SACA,QACA,QACA,QACA,SACA,QACA,YACA,UACA,UACA,OACA,UACA,MACA,UACA,UACA,QACA,QACA,SACA,OACA,WACA,WACA,SACA,QACA,UACA,UACA,OACA,OACA,aACA,UACA,QACA,SACA,QACA,SACA,OACA,SACA,SACA,QACA,UACA,OACA,OACA,SACA,WACA,UACA,SACA,OACA,UACA,QACA,OACA,SACA,SACA,OACA,WACA,MACA,UACA,SACA,WACA,OACA,QACA,SACA,WACA,QACA,MACA,MACA,UACA,OACA,WACA,QACA,UACA,MACA,MACA,UACA,QACA,QACA,SACA,YACA,OACA,SACA,OACA,MACA,UACA,QACA,SACA,QACA,SACA,SACA,QACA,OACA,SACA,OACA,UACA,QACA,UACA,SACA,QACA,QACA,MACA,MACA,QACA,UACA,OACA,OACA,OACA,SACA,UACA,SACA,SACA,MACA,SACA,QACA,UACA,SACA,QACA,MACA,OACA,SACA,QACA,WACA,OAAA,EAEF,KAAK,cAAgB,KAAK,iBAAiB,OAAO,KAAK,cAAc,EACrE,KAAK,UAAY,CACf,QACA,UACA,WACA,QACA,QACA,QACA,SACA,SACA,QACA,SACA,WACA,SACA,UACA,QACA,SACA,SACA,WACA,SACA,WACA,WACA,QACA,YACA,QACA,MACA,SACA,OACA,QACA,QACA,YACA,OACA,SACA,QACA,OACA,QACA,QACA,QACA,QACA,WACA,SACA,SACA,WACA,QACA,UACA,SACA,WACA,WACA,SACA,QACA,UACA,UACA,UACA,UACA,SACA,SACA,OACA,OACA,SACA,OACA,SACA,SACA,SACA,SACA,aACA,MACA,SACA,OACA,SACA,WACA,OACA,UACA,QACA,SACA,SACA,QACA,UACA,QACA,UACA,OACA,SACA,OACA,YACA,UACA,UACA,QACA,SACA,OACA,YACA,SACA,SACA,aACA,SACA,UACA,SACA,WACA,SACA,YACA,UACA,UACA,OACA,QACA,QACA,OACA,WACA,SACA,WACA,UACA,QACA,OACA,OACA,SACA,QACA,WACA,SACA,QACA,WACA,SACA,WACA,OACA,WACA,QACA,QACA,SACA,UACA,QACA,OACA,UACA,UACA,SACA,SACA,SACA,QACA,WACA,QACA,OACA,QACA,UACA,UACA,SACA,QACA,QACA,QACA,QACA,SACA,OACA,SACA,OACA,YACA,OACA,QACA,UACA,SACA,QACA,UACA,QACA,SACA,WACA,OACA,QACA,UACA,OACA,UACA,SACA,UACA,UACA,WACA,QACA,SACA,QACA,WACA,SACA,SACA,SACA,MACA,UACA,QACA,UACA,SACA,SACA,OACA,aACA,UACA,OACA,UACA,OACA,SACA,MACA,QACA,YACA,YACA,SACA,SACA,WACA,UACA,SACA,OACA,SACA,SACA,SACA,WACA,SACA,SACA,YACA,OACA,UACA,OACA,UACA,WACA,UACA,UACA,SACA,aACA,WACA,aACA,WACA,QACA,QACA,SACA,QACA,SACA,UACA,WACA,SACA,YACA,QACA,SACA,SACA,SACA,UACA,SACA,SACA,SACA,OACA,MACA,SACA,QACA,OACA,UACA,UACA,SACA,QACA,SACA,UACA,QACA,SACA,MACA,UACA,SACA,SACA,SACA,SACA,SACA,UACA,UACA,QACA,UACA,UACA,UACA,UACA,SACA,SACA,OACA,WACA,UACA,MACA,QACA,UACA,OACA,OACA,UACA,SACA,OACA,WACA,OACA,WACA,UACA,SACA,UACA,SACA,UACA,UACA,SACA,SACA,SACA,UACA,WACA,QACA,QACA,QACA,YACA,WACA,OACA,UACA,WACA,QACA,QACA,OACA,SACA,OACA,OACA,SACA,SACA,WACA,SACA,OACA,SACA,QACA,SACA,WACA,SACA,QACA,OACA,SACA,QACA,SACA,UACA,SACA,SACA,OACA,QACA,OACA,SACA,WACA,QACA,UACA,QACA,QACA,SACA,QACA,YACA,UACA,SACA,QACA,QACA,SACA,SACA,WACA,QACA,UACA,WACA,SACA,UACA,UACA,SACA,SACA,YACA,UACA,SACA,OACA,QACA,SACA,OACA,OACA,OACA,WACA,SACA,QACA,SACA,UACA,UACA,OACA,SACA,UACA,QACA,SACA,UACA,UACA,SACA,OACA,QACA,UACA,SACA,QACA,SACA,aACA,WACA,SACA,UACA,SACA,OACA,UACA,SACA,SACA,UACA,SACA,UACA,UACA,YACA,QACA,SACA,WACA,SACA,OACA,SACA,SACA,UACA,SACA,SACA,UACA,UACA,OACA,QACA,QACA,QACA,UACA,OACA,QACA,UACA,OACA,WACA,WACA,UACA,UACA,WACA,QACA,QACA,QACA,aACA,SACA,QACA,UACA,WACA,OACA,QACA,OACA,WACA,QACA,UACA,QACA,SACA,QACA,UACA,WACA,UACA,UACA,cACA,QACA,QACA,SACA,UACA,aACA,YACA,SACA,WACA,QACA,WACA,MACA,UACA,QACA,YACA,WACA,QACA,QACA,QACA,QACA,OACA,OACA,QACA,QACA,OACA,YACA,OACA,SACA,SACA,SACA,UACA,SACA,OACA,UACA,SACA,QACA,WACA,SACA,SACA,WACA,SACA,OACA,OACA,aACA,QACA,QACA,SACA,SACA,SACA,YACA,UACA,OACA,QACA,YACA,QACA,WACA,UACA,OACA,SACA,UACA,UACA,UACA,YACA,OACA,UACA,SACA,SACA,QACA,SACA,UACA,UACA,UACA,UACA,QACA,YACA,OACA,QACA,OACA,QACA,SACA,QACA,UACA,YACA,QACA,SACA,QACA,WACA,YACA,SACA,OACA,SACA,OACA,UACA,UACA,WACA,UACA,UACA,OACA,SACA,QACA,UACA,WACA,UACA,UACA,YACA,QACA,QACA,OACA,QACA,SACA,QACA,UACA,YACA,SACA,UACA,QACA,UACA,UACA,UACA,UACA,OACA,QACA,SACA,UACA,OACA,OACA,UACA,SACA,YACA,YACA,QACA,SACA,OACA,SACA,WACA,SACA,SACA,UACA,QACA,WACA,YACA,SACA,QACA,WACA,UACA,UACA,OACA,SACA,QACA,YACA,UACA,UACA,UACA,OACA,SACA,QACA,QACA,UACA,QACA,QACA,QACA,UACA,UACA,SACA,WACA,UACA,QACA,aACA,OACA,SACA,UACA,SACA,QACA,SACA,QACA,QACA,OACA,YACA,OACA,QACA,cACA,UACA,UACA,SACA,SACA,QACA,WACA,SACA,UACA,SACA,SACA,WACA,QACA,WACA,WACA,SACA,YACA,SACA,UACA,UACA,WACA,MACA,SACA,QACA,UACA,SACA,OACA,UACA,aACA,QACA,QACA,UACA,QACA,UACA,UACA,UACA,SACA,SACA,UACA,SACA,SACA,OACA,UACA,UACA,SACA,QACA,QACA,QACA,WACA,UACA,QACA,SACA,UACA,SACA,WACA,OACA,QACA,aACA,SACA,SACA,WACA,OACA,QACA,OACA,UACA,SACA,OACA,OACA,UACA,WACA,YACA,QACA,QACA,QACA,UACA,UACA,QACA,QACA,WACA,UACA,SACA,SACA,QACA,OACA,QACA,QACA,SACA,UACA,WACA,OACA,QACA,OACA,QACA,SACA,QACA,WACA,QACA,UACA,OACA,SACA,aACA,YACA,SACA,SACA,UACA,OACA,OACA,YACA,WACA,UACA,SACA,QACA,SACA,QACA,QACA,YACA,UACA,aACA,WACA,SACA,WACA,OACA,OACA,UACA,aACA,SACA,QACA,YACA,QACA,UACA,QACA,OACA,SACA,QACA,UACA,QACA,YACA,SACA,QACA,WACA,OACA,OACA,WACA,SACA,OACA,SACA,OACA,QACA,SACA,OACA,WACA,UACA,WACA,SACA,QACA,QACA,QACA,QACA,WACA,MACA,QACA,YACA,QACA,UACA,SACA,SACA,WACA,WACA,UACA,SACA,SACA,YACA,QACA,UACA,QACA,YACA,UACA,UACA,UACA,UACA,OACA,MACA,QACA,UACA,SACA,UACA,SACA,UACA,UACA,YACA,OACA,SACA,SACA,SACA,SACA,OACA,SACA,SACA,OACA,QACA,QACA,YACA,UACA,SACA,OACA,UACA,YACA,QACA,SACA,WACA,SACA,SACA,SACA,WACA,QACA,UACA,SACA,QACA,UACA,SACA,SACA,SACA,SACA,UACA,QACA,WACA,SACA,UACA,QACA,QACA,OACA,SACA,SACA,SACA,QACA,SACA,UACA,QACA,SACA,UACA,SACA,SACA,SACA,QACA,UACA,WACA,SACA,OACA,OACA,WACA,OACA,UACA,SACA,QACA,SACA,MACA,SACA,OACA,QACA,OACA,WACA,MACA,UACA,QACA,YACA,YACA,SACA,UACA,SACA,SACA,OACA,QACA,SACA,OACA,QACA,cACA,aACA,UACA,QACA,SACA,YACA,UACA,UACA,UACA,SACA,OACA,SACA,UACA,UACA,SACA,UACA,QACA,YACA,UACA,OACA,UACA,QACA,UACA,SACA,UACA,SACA,OACA,SACA,OACA,SACA,WACA,SACA,WACA,YACA,SACA,OACA,UACA,SACA,QACA,UACA,OACA,YACA,QACA,UACA,QACA,SACA,YACA,SACA,SACA,QACA,SACA,UACA,SACA,SACA,UACA,QACA,OACA,OACA,SACA,WACA,SACA,OACA,QACA,WACA,OACA,UACA,SACA,OACA,SACA,UACA,UACA,QACA,OACA,OACA,UACA,OACA,QACA,SACA,UACA,SACA,QACA,YACA,OACA,SACA,UACA,KACA,UACA,WACA,QACA,WACA,SACA,UACA,OACA,SACA,UACA,UACA,SACA,QACA,SACA,QACA,UACA,UACA,QACA,UACA,UACA,UACA,QACA,YACA,UACA,OACA,MAAA,EAEF,KAAK,QAAU,CACb,iBACA,WACA,mBACA,aACA,eACA,kBACA,eACA,kBACA,mBACA,mBACA,eACA,gBACA,gBACA,kBACA,eACA,oBACA,kBACA,kBACA,mBACA,cACA,gBACA,kBACA,eACA,gBACA,cACA,WACA,aACA,kBACA,iBACA,gBACA,qBACA,kBACA,mBACA,eACA,mBACA,gBACA,iBACA,aACA,kBACA,gBACA,eACA,aACA,iBACA,eACA,gBACA,aACA,kBACA,gBACA,eACA,aACA,mBACA,gBACA,gBACA,aACA,kBACA,eACA,aACA,eACA,iBACA,eACA,kBACA,aACA,mBACA,eACA,kBACA,iBACA,eACA,eACA,gBACA,iBACA,gBACA,cACA,kBACA,gBACA,cACA,iBACA,cACA,YACA,mBACA,mBACA,kBACA,iBACA,iBACA,kBACA,gBACA,kBACA,kBACA,aACA,gBACA,gBACA,kBACA,YACA,mBACA,YACA,mBACA,aACA,gBACA,eACA,cACA,SAAA,EAEF,KAAK,OAAS,CACZ,SACA,YACA,YACA,cACA,OACA,UACA,SACA,WACA,QACA,UACA,QACA,YACA,YACA,SACA,QACA,SACA,0BACA,WACA,YACA,SACA,SACA,UACA,UACA,WACA,SACA,eACA,UACA,UACA,YACA,SACA,aACA,WACA,SACA,eACA,SACA,UACA,gBACA,YACA,UACA,SACA,WACA,cACA,iBACA,YACA,UACA,aACA,SACA,QACA,SACA,OAAA,EAEF,KAAK,UAAY,CACf,UACA,WACA,WACA,UACA,UACA,SACA,2BACA,SACA,UACA,SACA,qBACA,UACA,iCACA,WACA,2BACA,8BACA,UACA,SACA,SACA,WACA,aACA,QACA,SACA,OACA,mCACA,cACA,uBACA,OACA,UACA,UACA,WACA,iBACA,aACA,aACA,mCACA,cACA,WACA,SACA,8BACA,oBACA,cACA,OACA,YACA,SACA,QACA,OAAA,CAEJ,CACF,CChpGA,MAAMC,CAAkB,CAStB,YAAYC,EAAwB,CALpC,KAAA,WAAqBC,OAAK,oBAAoB,QAAQ,eAAkB,IACxE,KAAA,UAAoBA,OAAK,oBAAoB,QAAQ,kBAAqB,IAC1E,KAAA,WAAqBA,OAAK,oBAAoB,QAAQ,mBAAsB,IAkBhE,KAAA,UAAA,MAAOC,EAAkBC,IAAsC,CACzE,MAAMC,EAAe,MAAM,KAAK,eAAeD,CAAO,EAEtD,GAAIC,GAAgB,KACX,MAAA,GAGT,GAAIF,EAAQC,CAAO,EAAE,MAAM,OAAS,EAAG,CAC5B,QAAAE,EAAI,EAAGA,EAAIH,EAAQC,CAAO,EAAE,MAAM,OAAQE,IACjDH,EAAQC,CAAO,EAAE,MAAME,CAAC,EAAI,MAAMD,EAAaF,EAAQC,CAAO,EAAE,MAAME,CAAC,CAAC,EAGnE,MAAA,EAAA,SACEH,EAAQC,CAAO,EAAE,MAAM,QAAU,EAAG,CAC7C,MAAMG,EAAwBJ,EAAQC,CAAO,EAAE,MAAM,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"} \ No newline at end of file +{"version":3,"file":"dicom-web-anonymizer.js","sources":["../src/lists.ts","../src/addressanonymizer.ts","../src/datetimeanonymizer.ts","../src/fixedvalueanonymizer.ts","../src/idanonymizer.ts","../src/institutionanonymizer.ts","../src/pnanonymizer.ts","../src/privatetaganonymizer.ts","../src/randomizer.ts","../src/uianonymizer.ts","../src/unwantedelements.ts","../src/valuekeeper.ts","../src/anonymizer.ts"],"sourcesContent":["export class lists {\n public streets: string[];\n public cities: string[];\n public countries: string[];\n public femaleFirstNames: string[];\n public maleFirstNames: string[];\n public allFirstNames: string[];\n public lastNames: string[];\n\n constructor() {\n this.femaleFirstNames = [\n \"MARY\",\n \"PATRICIA\",\n \"LINDA\",\n \"BARBARA\",\n \"ELIZABETH\",\n \"JENNIFER\",\n \"MARIA\",\n \"SUSAN\",\n \"MARGARET\",\n \"DOROTHY\",\n \"LISA\",\n \"NANCY\",\n \"KAREN\",\n \"BETTY\",\n \"HELEN\",\n \"SANDRA\",\n \"DONNA\",\n \"CAROL\",\n \"RUTH\",\n \"SHARON\",\n \"MICHELLE\",\n \"LAURA\",\n \"SARAH\",\n \"KIMBERLY\",\n \"DEBORAH\",\n \"JESSICA\",\n \"SHIRLEY\",\n \"CYNTHIA\",\n \"ANGELA\",\n \"MELISSA\",\n \"BRENDA\",\n \"AMY\",\n \"ANNA\",\n \"REBECCA\",\n \"VIRGINIA\",\n \"KATHLEEN\",\n \"PAMELA\",\n \"MARTHA\",\n \"DEBRA\",\n \"AMANDA\",\n \"STEPHANIE\",\n \"CAROLYN\",\n \"CHRISTINE\",\n \"MARIE\",\n \"JANET\",\n \"CATHERINE\",\n \"FRANCES\",\n \"ANN\",\n \"JOYCE\",\n \"DIANE\",\n \"ALICE\",\n \"JULIE\",\n \"HEATHER\",\n \"TERESA\",\n \"DORIS\",\n \"GLORIA\",\n \"EVELYN\",\n \"JEAN\",\n \"CHERYL\",\n \"MILDRED\",\n \"KATHERINE\",\n \"JOAN\",\n \"ASHLEY\",\n \"JUDITH\",\n \"ROSE\",\n \"JANICE\",\n \"KELLY\",\n \"NICOLE\",\n \"JUDY\",\n \"CHRISTINA\",\n \"KATHY\",\n \"THERESA\",\n \"BEVERLY\",\n \"DENISE\",\n \"TAMMY\",\n \"IRENE\",\n \"JANE\",\n \"LORI\",\n \"RACHEL\",\n \"MARILYN\",\n \"ANDREA\",\n \"KATHRYN\",\n \"LOUISE\",\n \"SARA\",\n \"ANNE\",\n \"JACQUELINE\",\n \"WANDA\",\n \"BONNIE\",\n \"JULIA\",\n \"RUBY\",\n \"LOIS\",\n \"TINA\",\n \"PHYLLIS\",\n \"NORMA\",\n \"PAULA\",\n \"DIANA\",\n \"ANNIE\",\n \"LILLIAN\",\n \"EMILY\",\n \"ROBIN\",\n \"PEGGY\",\n \"CRYSTAL\",\n \"GLADYS\",\n \"RITA\",\n \"DAWN\",\n \"CONNIE\",\n \"FLORENCE\",\n \"TRACY\",\n \"EDNA\",\n \"TIFFANY\",\n \"CARMEN\",\n \"ROSA\",\n \"CINDY\",\n \"GRACE\",\n \"WENDY\",\n \"VICTORIA\",\n \"EDITH\",\n \"KIM\",\n \"SHERRY\",\n \"SYLVIA\",\n \"JOSEPHINE\",\n \"THELMA\",\n \"SHANNON\",\n \"SHEILA\",\n \"ETHEL\",\n \"ELLEN\",\n \"ELAINE\",\n \"MARJORIE\",\n \"CARRIE\",\n \"CHARLOTTE\",\n \"MONICA\",\n \"ESTHER\",\n \"PAULINE\",\n \"EMMA\",\n \"JUANITA\",\n \"ANITA\",\n \"RHONDA\",\n \"HAZEL\",\n \"AMBER\",\n \"EVA\",\n \"DEBBIE\",\n \"APRIL\",\n \"LESLIE\",\n \"CLARA\",\n \"LUCILLE\",\n \"JAMIE\",\n \"JOANNE\",\n \"ELEANOR\",\n \"VALERIE\",\n \"DANIELLE\",\n \"MEGAN\",\n \"ALICIA\",\n \"SUZANNE\",\n \"MICHELE\",\n \"GAIL\",\n \"BERTHA\",\n \"DARLENE\",\n \"VERONICA\",\n \"JILL\",\n \"ERIN\",\n \"GERALDINE\",\n \"LAUREN\",\n \"CATHY\",\n \"JOANN\",\n \"LORRAINE\",\n \"LYNN\",\n \"SALLY\",\n \"REGINA\",\n \"ERICA\",\n \"BEATRICE\",\n \"DOLORES\",\n \"BERNICE\",\n \"AUDREY\",\n \"YVONNE\",\n \"ANNETTE\",\n \"JUNE\",\n \"SAMANTHA\",\n \"MARION\",\n \"DANA\",\n \"STACY\",\n \"ANA\",\n \"RENEE\",\n \"IDA\",\n \"VIVIAN\",\n \"ROBERTA\",\n \"HOLLY\",\n \"BRITTANY\",\n \"MELANIE\",\n \"LORETTA\",\n \"YOLANDA\",\n \"JEANETTE\",\n \"LAURIE\",\n \"KATIE\",\n \"KRISTEN\",\n \"VANESSA\",\n \"ALMA\",\n \"SUE\",\n \"ELSIE\",\n \"BETH\",\n \"JEANNE\",\n \"VICKI\",\n \"CARLA\",\n \"TARA\",\n \"ROSEMARY\",\n \"EILEEN\",\n \"TERRI\",\n \"GERTRUDE\",\n \"LUCY\",\n \"TONYA\",\n \"ELLA\",\n \"STACEY\",\n \"WILMA\",\n \"GINA\",\n \"KRISTIN\",\n \"JESSIE\",\n \"NATALIE\",\n \"AGNES\",\n \"VERA\",\n \"WILLIE\",\n \"CHARLENE\",\n \"BESSIE\",\n \"DELORES\",\n \"MELINDA\",\n \"PEARL\",\n \"ARLENE\",\n \"MAUREEN\",\n \"COLLEEN\",\n \"ALLISON\",\n \"TAMARA\",\n \"JOY\",\n \"GEORGIA\",\n \"CONSTANCE\",\n \"LILLIE\",\n \"CLAUDIA\",\n \"JACKIE\",\n \"MARCIA\",\n \"TANYA\",\n \"NELLIE\",\n \"MINNIE\",\n \"MARLENE\",\n \"HEIDI\",\n \"GLENDA\",\n \"LYDIA\",\n \"VIOLA\",\n \"COURTNEY\",\n \"MARIAN\",\n \"STELLA\",\n \"CAROLINE\",\n \"DORA\",\n \"JO\",\n \"VICKIE\",\n \"MATTIE\",\n \"TERRY\",\n \"MAXINE\",\n \"IRMA\",\n \"MABEL\",\n \"MARSHA\",\n \"MYRTLE\",\n \"LENA\",\n \"CHRISTY\",\n \"DEANNA\",\n \"PATSY\",\n \"HILDA\",\n \"GWENDOLYN\",\n \"JENNIE\",\n \"NORA\",\n \"MARGIE\",\n \"NINA\",\n \"CASSANDRA\",\n \"LEAH\",\n \"PENNY\",\n \"KAY\",\n \"PRISCILLA\",\n \"NAOMI\",\n \"CAROLE\",\n \"BRANDY\",\n \"OLGA\",\n \"BILLIE\",\n \"DIANNE\",\n \"TRACEY\",\n \"LEONA\",\n \"JENNY\",\n \"FELICIA\",\n \"SONIA\",\n \"MIRIAM\",\n \"VELMA\",\n \"BECKY\",\n \"BOBBIE\",\n \"VIOLET\",\n \"KRISTINA\",\n \"TONI\",\n \"MISTY\",\n \"MAE\",\n \"SHELLY\",\n \"DAISY\",\n \"RAMONA\",\n \"SHERRI\",\n \"ERIKA\",\n \"KATRINA\",\n \"CLAIRE\",\n \"LINDSEY\",\n \"LINDSAY\",\n \"GENEVA\",\n \"GUADALUPE\",\n \"BELINDA\",\n \"MARGARITA\",\n \"SHERYL\",\n \"CORA\",\n \"FAYE\",\n \"ADA\",\n \"NATASHA\",\n \"SABRINA\",\n \"ISABEL\",\n \"MARGUERITE\",\n \"HATTIE\",\n \"HARRIET\",\n \"MOLLY\",\n \"CECILIA\",\n \"KRISTI\",\n \"BRANDI\",\n \"BLANCHE\",\n \"SANDY\",\n \"ROSIE\",\n \"JOANNA\",\n \"IRIS\",\n \"EUNICE\",\n \"ANGIE\",\n \"INEZ\",\n \"LYNDA\",\n \"MADELINE\",\n \"AMELIA\",\n \"ALBERTA\",\n \"GENEVIEVE\",\n \"MONIQUE\",\n \"JODI\",\n \"JANIE\",\n \"MAGGIE\",\n \"KAYLA\",\n \"SONYA\",\n \"JAN\",\n \"LEE\",\n \"KRISTINE\",\n \"CANDACE\",\n \"FANNIE\",\n \"MARYANN\",\n \"OPAL\",\n \"ALISON\",\n \"YVETTE\",\n \"MELODY\",\n \"LUZ\",\n \"SUSIE\",\n \"OLIVIA\",\n \"FLORA\",\n \"SHELLEY\",\n \"KRISTY\",\n \"MAMIE\",\n \"LULA\",\n \"LOLA\",\n \"VERNA\",\n \"BEULAH\",\n \"ANTOINETTE\",\n \"CANDICE\",\n \"JUANA\",\n \"JEANNETTE\",\n \"PAM\",\n \"KELLI\",\n \"HANNAH\",\n \"WHITNEY\",\n \"BRIDGET\",\n \"KARLA\",\n \"CELIA\",\n \"LATOYA\",\n \"PATTY\",\n \"SHELIA\",\n \"GAYLE\",\n \"DELLA\",\n \"VICKY\",\n \"LYNNE\",\n \"SHERI\",\n \"MARIANNE\",\n \"KARA\",\n \"JACQUELYN\",\n \"ERMA\",\n \"BLANCA\",\n \"MYRA\",\n \"LETICIA\",\n \"PAT\",\n \"KRISTA\",\n \"ROXANNE\",\n \"ANGELICA\",\n \"JOHNNIE\",\n \"ROBYN\",\n \"FRANCIS\",\n \"ADRIENNE\",\n \"ROSALIE\",\n \"ALEXANDRA\",\n \"BROOKE\",\n \"BETHANY\",\n \"SADIE\",\n \"BERNADETTE\",\n \"TRACI\",\n \"JODY\",\n \"KENDRA\",\n \"JASMINE\",\n \"NICHOLE\",\n \"RACHAEL\",\n \"CHELSEA\",\n \"MABLE\",\n \"ERNESTINE\",\n \"MURIEL\",\n \"MARCELLA\",\n \"ELENA\",\n \"KRYSTAL\",\n \"ANGELINA\",\n \"NADINE\",\n \"KARI\",\n \"ESTELLE\",\n \"DIANNA\",\n \"PAULETTE\",\n \"LORA\",\n \"MONA\",\n \"DOREEN\",\n \"ROSEMARIE\",\n \"ANGEL\",\n \"DESIREE\",\n \"ANTONIA\",\n \"HOPE\",\n \"GINGER\",\n \"JANIS\",\n \"BETSY\",\n \"CHRISTIE\",\n \"FREDA\",\n \"MERCEDES\",\n \"MEREDITH\",\n \"LYNETTE\",\n \"TERI\",\n \"CRISTINA\",\n \"EULA\",\n \"LEIGH\",\n \"MEGHAN\",\n \"SOPHIA\",\n \"ELOISE\",\n \"ROCHELLE\",\n \"GRETCHEN\",\n \"CECELIA\",\n \"RAQUEL\",\n \"HENRIETTA\",\n \"ALYSSA\",\n \"JANA\",\n \"KELLEY\",\n \"GWEN\",\n \"KERRY\",\n \"JENNA\",\n \"TRICIA\",\n \"LAVERNE\",\n \"OLIVE\",\n \"ALEXIS\",\n \"TASHA\",\n \"SILVIA\",\n \"ELVIRA\",\n \"CASEY\",\n \"DELIA\",\n \"SOPHIE\",\n \"KATE\",\n \"PATTI\",\n \"LORENA\",\n \"KELLIE\",\n \"SONJA\",\n \"LILA\",\n \"LANA\",\n \"DARLA\",\n \"MAY\",\n \"MINDY\",\n \"ESSIE\",\n \"MANDY\",\n \"LORENE\",\n \"ELSA\",\n \"JOSEFINA\",\n \"JEANNIE\",\n \"MIRANDA\",\n \"DIXIE\",\n \"LUCIA\",\n \"MARTA\",\n \"FAITH\",\n \"LELA\",\n \"JOHANNA\",\n \"SHARI\",\n \"CAMILLE\",\n \"TAMI\",\n \"SHAWNA\",\n \"ELISA\",\n \"EBONY\",\n \"MELBA\",\n \"ORA\",\n \"NETTIE\",\n \"TABITHA\",\n \"OLLIE\",\n \"JAIME\",\n \"WINIFRED\",\n \"KRISTIE\",\n \"MARINA\",\n \"ALISHA\",\n \"AIMEE\",\n \"RENA\",\n \"MYRNA\",\n \"MARLA\",\n \"TAMMIE\",\n \"LATASHA\",\n \"BONITA\",\n \"PATRICE\",\n \"RONDA\",\n \"SHERRIE\",\n \"ADDIE\",\n \"FRANCINE\",\n \"DELORIS\",\n \"STACIE\",\n \"ADRIANA\",\n \"CHERI\",\n \"SHELBY\",\n \"ABIGAIL\",\n \"CELESTE\",\n \"JEWEL\",\n \"CARA\",\n \"ADELE\",\n \"REBEKAH\",\n \"LUCINDA\",\n \"DORTHY\",\n \"CHRIS\",\n \"EFFIE\",\n \"TRINA\",\n \"REBA\",\n \"SHAWN\",\n \"SALLIE\",\n \"AURORA\",\n \"LENORA\",\n \"ETTA\",\n \"LOTTIE\",\n \"KERRI\",\n \"TRISHA\",\n \"NIKKI\",\n \"ESTELLA\",\n \"FRANCISCA\",\n \"JOSIE\",\n \"TRACIE\",\n \"MARISSA\",\n \"KARIN\",\n \"BRITTNEY\",\n \"JANELLE\",\n \"LOURDES\",\n \"LAUREL\",\n \"HELENE\",\n \"FERN\",\n \"ELVA\",\n \"CORINNE\",\n \"KELSEY\",\n \"INA\",\n \"BETTIE\",\n \"ELISABETH\",\n \"AIDA\",\n \"CAITLIN\",\n \"INGRID\",\n \"IVA\",\n \"EUGENIA\",\n \"CHRISTA\",\n \"GOLDIE\",\n \"CASSIE\",\n \"MAUDE\",\n \"JENIFER\",\n \"THERESE\",\n \"FRANKIE\",\n \"DENA\",\n \"LORNA\",\n \"JANETTE\",\n \"LATONYA\",\n \"CANDY\",\n \"MORGAN\",\n \"CONSUELO\",\n \"TAMIKA\",\n \"ROSETTA\",\n \"DEBORA\",\n \"CHERIE\",\n \"POLLY\",\n \"DINA\",\n \"JEWELL\",\n \"FAY\",\n \"JILLIAN\",\n \"DOROTHEA\",\n \"NELL\",\n \"TRUDY\",\n \"ESPERANZA\",\n \"PATRICA\",\n \"KIMBERLEY\",\n \"SHANNA\",\n \"HELENA\",\n \"CAROLINA\",\n \"CLEO\",\n \"STEFANIE\",\n \"ROSARIO\",\n \"OLA\",\n \"JANINE\",\n \"MOLLIE\",\n \"LUPE\",\n \"ALISA\",\n \"LOU\",\n \"MARIBEL\",\n \"SUSANNE\",\n \"BETTE\",\n \"SUSANA\",\n \"ELISE\",\n \"CECILE\",\n \"ISABELLE\",\n \"LESLEY\",\n \"JOCELYN\",\n \"PAIGE\",\n \"JONI\",\n \"RACHELLE\",\n \"LEOLA\",\n \"DAPHNE\",\n \"ALTA\",\n \"ESTER\",\n \"PETRA\",\n \"GRACIELA\",\n \"IMOGENE\",\n \"JOLENE\",\n \"KEISHA\",\n \"LACEY\",\n \"GLENNA\",\n \"GABRIELA\",\n \"KERI\",\n \"URSULA\",\n \"LIZZIE\",\n \"KIRSTEN\",\n \"SHANA\",\n \"ADELINE\",\n \"MAYRA\",\n \"JAYNE\",\n \"JACLYN\",\n \"GRACIE\",\n \"SONDRA\",\n \"CARMELA\",\n \"MARISA\",\n \"ROSALIND\",\n \"CHARITY\",\n \"TONIA\",\n \"BEATRIZ\",\n \"MARISOL\",\n \"CLARICE\",\n \"JEANINE\",\n \"SHEENA\",\n \"ANGELINE\",\n \"FRIEDA\",\n \"LILY\",\n \"ROBBIE\",\n \"SHAUNA\",\n \"MILLIE\",\n \"CLAUDETTE\",\n \"CATHLEEN\",\n \"ANGELIA\",\n \"GABRIELLE\",\n \"AUTUMN\",\n \"KATHARINE\",\n \"SUMMER\",\n \"JODIE\",\n \"STACI\",\n \"LEA\",\n \"CHRISTI\",\n \"JIMMIE\",\n \"JUSTINE\",\n \"ELMA\",\n \"LUELLA\",\n \"MARGRET\",\n \"DOMINIQUE\",\n \"SOCORRO\",\n \"RENE\",\n \"MARTINA\",\n \"MARGO\",\n \"MAVIS\",\n \"CALLIE\",\n \"BOBBI\",\n \"MARITZA\",\n \"LUCILE\",\n \"LEANNE\",\n \"JEANNINE\",\n \"DEANA\",\n \"AILEEN\",\n \"LORIE\",\n \"LADONNA\",\n \"WILLA\",\n \"MANUELA\",\n \"GALE\",\n \"SELMA\",\n \"DOLLY\",\n \"SYBIL\",\n \"ABBY\",\n \"LARA\",\n \"DALE\",\n \"IVY\",\n \"DEE\",\n \"WINNIE\",\n \"MARCY\",\n \"LUISA\",\n \"JERI\",\n \"MAGDALENA\",\n \"OFELIA\",\n \"MEAGAN\",\n \"AUDRA\",\n \"MATILDA\",\n \"LEILA\",\n \"CORNELIA\",\n \"BIANCA\",\n \"SIMONE\",\n \"BETTYE\",\n \"RANDI\",\n \"VIRGIE\",\n \"LATISHA\",\n \"BARBRA\",\n \"GEORGINA\",\n \"ELIZA\",\n \"LEANN\",\n \"BRIDGETTE\",\n \"RHODA\",\n \"HALEY\",\n \"ADELA\",\n \"NOLA\",\n \"BERNADINE\",\n \"FLOSSIE\",\n \"ILA\",\n \"GRETA\",\n \"RUTHIE\",\n \"NELDA\",\n \"MINERVA\",\n \"LILLY\",\n \"TERRIE\",\n \"LETHA\",\n \"HILARY\",\n \"ESTELA\",\n \"VALARIE\",\n \"BRIANNA\",\n \"ROSALYN\",\n \"EARLINE\",\n \"CATALINA\",\n \"AVA\",\n \"MIA\",\n \"CLARISSA\",\n \"LIDIA\",\n \"CORRINE\",\n \"ALEXANDRIA\",\n \"CONCEPCION\",\n \"TIA\",\n \"SHARRON\",\n \"RAE\",\n \"DONA\",\n \"ERICKA\",\n \"JAMI\",\n \"ELNORA\",\n \"CHANDRA\",\n \"LENORE\",\n \"NEVA\",\n \"MARYLOU\",\n \"MELISA\",\n \"TABATHA\",\n \"SERENA\",\n \"AVIS\",\n \"ALLIE\",\n \"SOFIA\",\n \"JEANIE\",\n \"ODESSA\",\n \"NANNIE\",\n \"HARRIETT\",\n \"LORAINE\",\n \"PENELOPE\",\n \"MILAGROS\",\n \"EMILIA\",\n \"BENITA\",\n \"ALLYSON\",\n \"ASHLEE\",\n \"TANIA\",\n \"TOMMIE\",\n \"ESMERALDA\",\n \"KARINA\",\n \"EVE\",\n \"PEARLIE\",\n \"ZELMA\",\n \"MALINDA\",\n \"NOREEN\",\n \"TAMEKA\",\n \"SAUNDRA\",\n \"HILLARY\",\n \"AMIE\",\n \"ALTHEA\",\n \"ROSALINDA\",\n \"JORDAN\",\n \"LILIA\",\n \"ALANA\",\n \"GAY\",\n \"CLARE\",\n \"ALEJANDRA\",\n \"ELINOR\",\n \"MICHAEL\",\n \"LORRIE\",\n \"JERRI\",\n \"DARCY\",\n \"EARNESTINE\",\n \"CARMELLA\",\n \"TAYLOR\",\n \"NOEMI\",\n \"MARCIE\",\n \"LIZA\",\n \"ANNABELLE\",\n \"LOUISA\",\n \"EARLENE\",\n \"MALLORY\",\n \"CARLENE\",\n \"NITA\",\n \"SELENA\",\n \"TANISHA\",\n \"KATY\",\n \"JULIANNE\",\n \"JOHN\",\n \"LAKISHA\",\n \"EDWINA\",\n \"MARICELA\",\n \"MARGERY\",\n \"KENYA\",\n \"DOLLIE\",\n \"ROXIE\",\n \"ROSLYN\",\n \"KATHRINE\",\n \"NANETTE\",\n \"CHARMAINE\",\n \"LAVONNE\",\n \"ILENE\",\n \"KRIS\",\n \"TAMMI\",\n \"SUZETTE\",\n \"CORINE\",\n \"KAYE\",\n \"JERRY\",\n \"MERLE\",\n \"CHRYSTAL\",\n \"LINA\",\n \"DEANNE\",\n \"LILIAN\",\n \"JULIANA\",\n \"ALINE\",\n \"LUANN\",\n \"KASEY\",\n \"MARYANNE\",\n \"EVANGELINE\",\n \"COLETTE\",\n \"MELVA\",\n \"LAWANDA\",\n \"YESENIA\",\n \"NADIA\",\n \"MADGE\",\n \"KATHIE\",\n \"EDDIE\",\n \"OPHELIA\",\n \"VALERIA\",\n \"NONA\",\n \"MITZI\",\n \"MARI\",\n \"GEORGETTE\",\n \"CLAUDINE\",\n \"FRAN\",\n \"ALISSA\",\n \"ROSEANN\",\n \"LAKEISHA\",\n \"SUSANNA\",\n \"REVA\",\n \"DEIDRE\",\n \"CHASITY\",\n \"SHEREE\",\n \"CARLY\",\n \"JAMES\",\n \"ELVIA\",\n \"ALYCE\",\n \"DEIRDRE\",\n \"GENA\",\n \"BRIANA\",\n \"ARACELI\",\n \"KATELYN\",\n \"ROSANNE\",\n \"WENDI\",\n \"TESSA\",\n \"BERTA\",\n \"MARVA\",\n \"IMELDA\",\n \"MARIETTA\",\n \"MARCI\",\n \"LEONOR\",\n \"ARLINE\",\n \"SASHA\",\n \"MADELYN\",\n \"JANNA\",\n \"JULIETTE\",\n \"DEENA\",\n \"AURELIA\",\n \"JOSEFA\",\n \"AUGUSTA\",\n \"LILIANA\",\n \"YOUNG\",\n \"CHRISTIAN\",\n \"LESSIE\",\n \"AMALIA\",\n \"SAVANNAH\",\n \"ANASTASIA\",\n \"VILMA\",\n \"NATALIA\",\n \"ROSELLA\",\n \"LYNNETTE\",\n \"CORINA\",\n \"ALFREDA\",\n \"LEANNA\",\n \"CAREY\",\n \"AMPARO\",\n \"COLEEN\",\n \"TAMRA\",\n \"AISHA\",\n \"WILDA\",\n \"KARYN\",\n \"CHERRY\",\n \"QUEEN\",\n \"MAURA\",\n \"MAI\",\n \"EVANGELINA\",\n \"ROSANNA\",\n \"HALLIE\",\n \"ERNA\",\n \"ENID\",\n \"MARIANA\",\n \"LACY\",\n \"JULIET\",\n \"JACKLYN\",\n \"FREIDA\",\n \"MADELEINE\",\n \"MARA\",\n \"HESTER\",\n \"CATHRYN\",\n \"LELIA\",\n \"CASANDRA\",\n \"BRIDGETT\",\n \"ANGELITA\",\n \"JANNIE\",\n \"DIONNE\",\n \"ANNMARIE\",\n \"KATINA\",\n \"BERYL\",\n \"PHOEBE\",\n \"MILLICENT\",\n \"KATHERYN\",\n \"DIANN\",\n \"CARISSA\",\n \"MARYELLEN\",\n \"LIZ\",\n \"LAURI\",\n \"HELGA\",\n \"GILDA\",\n \"ADRIAN\",\n \"RHEA\",\n \"MARQUITA\",\n \"HOLLIE\",\n \"TISHA\",\n \"TAMERA\",\n \"ANGELIQUE\",\n \"FRANCESCA\",\n \"BRITNEY\",\n \"KAITLIN\",\n \"LOLITA\",\n \"FLORINE\",\n \"ROWENA\",\n \"REYNA\",\n \"TWILA\",\n \"FANNY\",\n \"JANELL\",\n \"INES\",\n \"CONCETTA\",\n \"BERTIE\",\n \"ALBA\",\n \"BRIGITTE\",\n \"ALYSON\",\n \"VONDA\",\n \"PANSY\",\n \"ELBA\",\n \"NOELLE\",\n \"LETITIA\",\n \"KITTY\",\n \"DEANN\",\n \"BRANDIE\",\n \"LOUELLA\",\n \"LETA\",\n \"FELECIA\",\n \"SHARLENE\",\n \"LESA\",\n \"BEVERLEY\",\n \"ROBERT\",\n \"ISABELLA\",\n \"HERMINIA\",\n \"TERRA\",\n \"CELINA\",\n ];\n this.maleFirstNames = [\n \"JAMES\",\n \"JOHN\",\n \"ROBERT\",\n \"MICHAEL\",\n \"WILLIAM\",\n \"DAVID\",\n \"RICHARD\",\n \"CHARLES\",\n \"JOSEPH\",\n \"THOMAS\",\n \"CHRISTOPHER\",\n \"DANIEL\",\n \"PAUL\",\n \"MARK\",\n \"DONALD\",\n \"GEORGE\",\n \"KENNETH\",\n \"STEVEN\",\n \"EDWARD\",\n \"BRIAN\",\n \"RONALD\",\n \"ANTHONY\",\n \"KEVIN\",\n \"JASON\",\n \"MATTHEW\",\n \"GARY\",\n \"TIMOTHY\",\n \"JOSE\",\n \"LARRY\",\n \"JEFFREY\",\n \"FRANK\",\n \"SCOTT\",\n \"ERIC\",\n \"STEPHEN\",\n \"ANDREW\",\n \"RAYMOND\",\n \"GREGORY\",\n \"JOSHUA\",\n \"JERRY\",\n \"DENNIS\",\n \"WALTER\",\n \"PATRICK\",\n \"PETER\",\n \"HAROLD\",\n \"DOUGLAS\",\n \"HENRY\",\n \"CARL\",\n \"ARTHUR\",\n \"RYAN\",\n \"ROGER\",\n \"JOE\",\n \"JUAN\",\n \"JACK\",\n \"ALBERT\",\n \"JONATHAN\",\n \"JUSTIN\",\n \"TERRY\",\n \"GERALD\",\n \"KEITH\",\n \"SAMUEL\",\n \"WILLIE\",\n \"RALPH\",\n \"LAWRENCE\",\n \"NICHOLAS\",\n \"ROY\",\n \"BENJAMIN\",\n \"BRUCE\",\n \"BRANDON\",\n \"ADAM\",\n \"HARRY\",\n \"FRED\",\n \"WAYNE\",\n \"BILLY\",\n \"STEVE\",\n \"LOUIS\",\n \"JEREMY\",\n \"AARON\",\n \"RANDY\",\n \"HOWARD\",\n \"EUGENE\",\n \"CARLOS\",\n \"RUSSELL\",\n \"BOBBY\",\n \"VICTOR\",\n \"MARTIN\",\n \"ERNEST\",\n \"PHILLIP\",\n \"TODD\",\n \"JESSE\",\n \"CRAIG\",\n \"ALAN\",\n \"SHAWN\",\n \"CLARENCE\",\n \"SEAN\",\n \"PHILIP\",\n \"CHRIS\",\n \"JOHNNY\",\n \"EARL\",\n \"JIMMY\",\n \"ANTONIO\",\n \"DANNY\",\n \"BRYAN\",\n \"TONY\",\n \"LUIS\",\n \"MIKE\",\n \"STANLEY\",\n \"LEONARD\",\n \"NATHAN\",\n \"DALE\",\n \"MANUEL\",\n \"RODNEY\",\n \"CURTIS\",\n \"NORMAN\",\n \"ALLEN\",\n \"MARVIN\",\n \"VINCENT\",\n \"GLENN\",\n \"JEFFERY\",\n \"TRAVIS\",\n \"JEFF\",\n \"CHAD\",\n \"JACOB\",\n \"LEE\",\n \"MELVIN\",\n \"ALFRED\",\n \"KYLE\",\n \"FRANCIS\",\n \"BRADLEY\",\n \"JESUS\",\n \"HERBERT\",\n \"FREDERICK\",\n \"RAY\",\n \"JOEL\",\n \"EDWIN\",\n \"DON\",\n \"EDDIE\",\n \"RICKY\",\n \"TROY\",\n \"RANDALL\",\n \"BARRY\",\n \"ALEXANDER\",\n \"BERNARD\",\n \"MARIO\",\n \"LEROY\",\n \"FRANCISCO\",\n \"MARCUS\",\n \"MICHEAL\",\n \"THEODORE\",\n \"CLIFFORD\",\n \"MIGUEL\",\n \"OSCAR\",\n \"JAY\",\n \"JIM\",\n \"TOM\",\n \"CALVIN\",\n \"ALEX\",\n \"JON\",\n \"RONNIE\",\n \"BILL\",\n \"LLOYD\",\n \"TOMMY\",\n \"LEON\",\n \"DEREK\",\n \"WARREN\",\n \"DARRELL\",\n \"JEROME\",\n \"FLOYD\",\n \"LEO\",\n \"ALVIN\",\n \"TIM\",\n \"WESLEY\",\n \"GORDON\",\n \"DEAN\",\n \"GREG\",\n \"JORGE\",\n \"DUSTIN\",\n \"PEDRO\",\n \"DERRICK\",\n \"DAN\",\n \"LEWIS\",\n \"ZACHARY\",\n \"COREY\",\n \"HERMAN\",\n \"MAURICE\",\n \"VERNON\",\n \"ROBERTO\",\n \"CLYDE\",\n \"GLEN\",\n \"HECTOR\",\n \"SHANE\",\n \"RICARDO\",\n \"SAM\",\n \"RICK\",\n \"LESTER\",\n \"BRENT\",\n \"RAMON\",\n \"CHARLIE\",\n \"TYLER\",\n \"GILBERT\",\n \"GENE\",\n \"MARC\",\n \"REGINALD\",\n \"RUBEN\",\n \"BRETT\",\n \"ANGEL\",\n \"NATHANIEL\",\n \"RAFAEL\",\n \"LESLIE\",\n \"EDGAR\",\n \"MILTON\",\n \"RAUL\",\n \"BEN\",\n \"CHESTER\",\n \"CECIL\",\n \"DUANE\",\n \"FRANKLIN\",\n \"ANDRE\",\n \"ELMER\",\n \"BRAD\",\n \"GABRIEL\",\n \"RON\",\n \"MITCHELL\",\n \"ROLAND\",\n \"ARNOLD\",\n \"HARVEY\",\n \"JARED\",\n \"ADRIAN\",\n \"KARL\",\n \"CORY\",\n \"CLAUDE\",\n \"ERIK\",\n \"DARRYL\",\n \"JAMIE\",\n \"NEIL\",\n \"JESSIE\",\n \"CHRISTIAN\",\n \"JAVIER\",\n \"FERNANDO\",\n \"CLINTON\",\n \"TED\",\n \"MATHEW\",\n \"TYRONE\",\n \"DARREN\",\n \"LONNIE\",\n \"LANCE\",\n \"CODY\",\n \"JULIO\",\n \"KELLY\",\n \"KURT\",\n \"ALLAN\",\n \"NELSON\",\n \"GUY\",\n \"CLAYTON\",\n \"HUGH\",\n \"MAX\",\n \"DWAYNE\",\n \"DWIGHT\",\n \"ARMANDO\",\n \"FELIX\",\n \"JIMMIE\",\n \"EVERETT\",\n \"JORDAN\",\n \"IAN\",\n \"WALLACE\",\n \"KEN\",\n \"BOB\",\n \"JAIME\",\n \"CASEY\",\n \"ALFREDO\",\n \"ALBERTO\",\n \"DAVE\",\n \"IVAN\",\n \"JOHNNIE\",\n \"SIDNEY\",\n \"BYRON\",\n \"JULIAN\",\n \"ISAAC\",\n \"MORRIS\",\n \"CLIFTON\",\n \"WILLARD\",\n \"DARYL\",\n \"ROSS\",\n \"VIRGIL\",\n \"ANDY\",\n \"MARSHALL\",\n \"SALVADOR\",\n \"PERRY\",\n \"KIRK\",\n \"SERGIO\",\n \"MARION\",\n \"TRACY\",\n \"SETH\",\n \"KENT\",\n \"TERRANCE\",\n \"RENE\",\n \"EDUARDO\",\n \"TERRENCE\",\n \"ENRIQUE\",\n \"FREDDIE\",\n \"WADE\",\n \"AUSTIN\",\n \"STUART\",\n \"FREDRICK\",\n \"ARTURO\",\n \"ALEJANDRO\",\n \"JACKIE\",\n \"JOEY\",\n \"NICK\",\n \"LUTHER\",\n \"WENDELL\",\n \"JEREMIAH\",\n \"EVAN\",\n \"JULIUS\",\n \"DANA\",\n \"DONNIE\",\n \"OTIS\",\n \"SHANNON\",\n \"TREVOR\",\n \"OLIVER\",\n \"LUKE\",\n \"HOMER\",\n \"GERARD\",\n \"DOUG\",\n \"KENNY\",\n \"HUBERT\",\n \"ANGELO\",\n \"SHAUN\",\n \"LYLE\",\n \"MATT\",\n \"LYNN\",\n \"ALFONSO\",\n \"ORLANDO\",\n \"REX\",\n \"CARLTON\",\n \"ERNESTO\",\n \"CAMERON\",\n \"NEAL\",\n \"PABLO\",\n \"LORENZO\",\n \"OMAR\",\n \"WILBUR\",\n \"BLAKE\",\n \"GRANT\",\n \"HORACE\",\n \"RODERICK\",\n \"KERRY\",\n \"ABRAHAM\",\n \"WILLIS\",\n \"RICKEY\",\n \"JEAN\",\n \"IRA\",\n \"ANDRES\",\n \"CESAR\",\n \"JOHNATHAN\",\n \"MALCOLM\",\n \"RUDOLPH\",\n \"DAMON\",\n \"KELVIN\",\n \"RUDY\",\n \"PRESTON\",\n \"ALTON\",\n \"ARCHIE\",\n \"MARCO\",\n \"WM\",\n \"PETE\",\n \"RANDOLPH\",\n \"GARRY\",\n \"GEOFFREY\",\n \"JONATHON\",\n \"FELIPE\",\n \"BENNIE\",\n \"GERARDO\",\n \"ED\",\n \"DOMINIC\",\n \"ROBIN\",\n \"LOREN\",\n \"DELBERT\",\n \"COLIN\",\n \"GUILLERMO\",\n \"EARNEST\",\n \"LUCAS\",\n \"BENNY\",\n \"NOEL\",\n \"SPENCER\",\n \"RODOLFO\",\n \"MYRON\",\n \"EDMUND\",\n \"GARRETT\",\n \"SALVATORE\",\n \"CEDRIC\",\n \"LOWELL\",\n \"GREGG\",\n \"SHERMAN\",\n \"WILSON\",\n \"DEVIN\",\n \"SYLVESTER\",\n \"KIM\",\n \"ROOSEVELT\",\n \"ISRAEL\",\n \"JERMAINE\",\n \"FORREST\",\n \"WILBERT\",\n \"LELAND\",\n \"SIMON\",\n \"GUADALUPE\",\n \"CLARK\",\n \"IRVING\",\n \"CARROLL\",\n \"BRYANT\",\n \"OWEN\",\n \"RUFUS\",\n \"WOODROW\",\n \"SAMMY\",\n \"KRISTOPHER\",\n \"MACK\",\n \"LEVI\",\n \"MARCOS\",\n \"GUSTAVO\",\n \"JAKE\",\n \"LIONEL\",\n \"MARTY\",\n \"TAYLOR\",\n \"ELLIS\",\n \"DALLAS\",\n \"GILBERTO\",\n \"CLINT\",\n \"NICOLAS\",\n \"LAURENCE\",\n \"ISMAEL\",\n \"ORVILLE\",\n \"DREW\",\n \"JODY\",\n \"ERVIN\",\n \"DEWEY\",\n \"AL\",\n \"WILFRED\",\n \"JOSH\",\n \"HUGO\",\n \"IGNACIO\",\n \"CALEB\",\n \"TOMAS\",\n \"SHELDON\",\n \"ERICK\",\n \"FRANKIE\",\n \"STEWART\",\n \"DOYLE\",\n \"DARREL\",\n \"ROGELIO\",\n \"TERENCE\",\n \"SANTIAGO\",\n \"ALONZO\",\n \"ELIAS\",\n \"BERT\",\n \"ELBERT\",\n \"RAMIRO\",\n \"CONRAD\",\n \"PAT\",\n \"NOAH\",\n \"GRADY\",\n \"PHIL\",\n \"CORNELIUS\",\n \"LAMAR\",\n \"ROLANDO\",\n \"CLAY\",\n \"PERCY\",\n \"DEXTER\",\n \"BRADFORD\",\n \"MERLE\",\n \"DARIN\",\n \"AMOS\",\n \"TERRELL\",\n \"MOSES\",\n \"IRVIN\",\n \"SAUL\",\n \"ROMAN\",\n \"DARNELL\",\n \"RANDAL\",\n \"TOMMIE\",\n \"TIMMY\",\n \"DARRIN\",\n \"WINSTON\",\n \"BRENDAN\",\n \"TOBY\",\n \"VAN\",\n \"ABEL\",\n \"DOMINICK\",\n \"BOYD\",\n \"COURTNEY\",\n \"JAN\",\n \"EMILIO\",\n \"ELIJAH\",\n \"CARY\",\n \"DOMINGO\",\n \"SANTOS\",\n \"AUBREY\",\n \"EMMETT\",\n \"MARLON\",\n \"EMANUEL\",\n \"JERALD\",\n \"EDMOND\",\n \"EMIL\",\n \"DEWAYNE\",\n \"WILL\",\n \"OTTO\",\n \"TEDDY\",\n \"REYNALDO\",\n \"BRET\",\n \"MORGAN\",\n \"JESS\",\n \"TRENT\",\n \"HUMBERTO\",\n \"EMMANUEL\",\n \"STEPHAN\",\n \"LOUIE\",\n \"VICENTE\",\n \"LAMONT\",\n \"STACY\",\n \"GARLAND\",\n \"MILES\",\n \"MICAH\",\n \"EFRAIN\",\n \"BILLIE\",\n \"LOGAN\",\n \"HEATH\",\n \"RODGER\",\n \"HARLEY\",\n \"DEMETRIUS\",\n \"ETHAN\",\n \"ELDON\",\n \"ROCKY\",\n \"PIERRE\",\n \"JUNIOR\",\n \"FREDDY\",\n \"ELI\",\n \"BRYCE\",\n \"ANTOINE\",\n \"ROBBIE\",\n \"KENDALL\",\n \"ROYCE\",\n \"STERLING\",\n \"MICKEY\",\n \"CHASE\",\n \"GROVER\",\n \"ELTON\",\n \"CLEVELAND\",\n \"DYLAN\",\n \"CHUCK\",\n \"DAMIAN\",\n \"REUBEN\",\n \"STAN\",\n \"AUGUST\",\n \"LEONARDO\",\n \"JASPER\",\n \"RUSSEL\",\n \"ERWIN\",\n \"BENITO\",\n \"HANS\",\n \"MONTE\",\n \"BLAINE\",\n \"ERNIE\",\n \"CURT\",\n \"QUENTIN\",\n \"AGUSTIN\",\n \"MURRAY\",\n \"JAMAL\",\n \"DEVON\",\n \"ADOLFO\",\n \"HARRISON\",\n \"TYSON\",\n \"BURTON\",\n \"BRADY\",\n \"ELLIOTT\",\n \"WILFREDO\",\n \"BART\",\n \"JARROD\",\n \"VANCE\",\n \"DENIS\",\n \"DAMIEN\",\n \"JOAQUIN\",\n \"HARLAN\",\n \"DESMOND\",\n \"ELLIOT\",\n \"DARWIN\",\n \"ASHLEY\",\n \"GREGORIO\",\n \"BUDDY\",\n \"XAVIER\",\n \"KERMIT\",\n \"ROSCOE\",\n \"ESTEBAN\",\n \"ANTON\",\n \"SOLOMON\",\n \"SCOTTY\",\n \"NORBERT\",\n \"ELVIN\",\n \"WILLIAMS\",\n \"NOLAN\",\n \"CAREY\",\n \"ROD\",\n \"QUINTON\",\n \"HAL\",\n \"BRAIN\",\n \"ROB\",\n \"ELWOOD\",\n \"KENDRICK\",\n \"DARIUS\",\n \"MOISES\",\n \"SON\",\n \"MARLIN\",\n \"FIDEL\",\n \"THADDEUS\",\n \"CLIFF\",\n \"MARCEL\",\n \"ALI\",\n \"JACKSON\",\n \"RAPHAEL\",\n \"BRYON\",\n \"ARMAND\",\n \"ALVARO\",\n \"JEFFRY\",\n \"DANE\",\n \"JOESPH\",\n \"THURMAN\",\n \"NED\",\n \"SAMMIE\",\n \"RUSTY\",\n \"MICHEL\",\n \"MONTY\",\n \"RORY\",\n \"FABIAN\",\n \"REGGIE\",\n \"MASON\",\n \"GRAHAM\",\n \"KRIS\",\n \"ISAIAH\",\n \"VAUGHN\",\n \"GUS\",\n \"AVERY\",\n \"LOYD\",\n \"DIEGO\",\n \"ALEXIS\",\n \"ADOLPH\",\n \"NORRIS\",\n \"MILLARD\",\n \"ROCCO\",\n \"GONZALO\",\n \"DERICK\",\n \"RODRIGO\",\n \"GERRY\",\n \"STACEY\",\n \"CARMEN\",\n \"WILEY\",\n \"RIGOBERTO\",\n \"ALPHONSO\",\n \"TY\",\n \"SHELBY\",\n \"RICKIE\",\n \"NOE\",\n \"VERN\",\n \"BOBBIE\",\n \"REED\",\n \"JEFFERSON\",\n \"ELVIS\",\n \"BERNARDO\",\n \"MAURICIO\",\n \"HIRAM\",\n \"DONOVAN\",\n \"BASIL\",\n \"RILEY\",\n \"OLLIE\",\n \"NICKOLAS\",\n \"MAYNARD\",\n \"SCOT\",\n \"VINCE\",\n \"QUINCY\",\n \"EDDY\",\n \"SEBASTIAN\",\n \"FEDERICO\",\n \"ULYSSES\",\n \"HERIBERTO\",\n \"DONNELL\",\n \"COLE\",\n \"DENNY\",\n \"DAVIS\",\n \"GAVIN\",\n \"EMERY\",\n \"WARD\",\n \"ROMEO\",\n \"JAYSON\",\n \"DION\",\n \"DANTE\",\n \"CLEMENT\",\n \"COY\",\n \"ODELL\",\n \"MAXWELL\",\n \"JARVIS\",\n \"BRUNO\",\n \"ISSAC\",\n \"MARY\",\n \"DUDLEY\",\n \"BROCK\",\n \"SANFORD\",\n \"COLBY\",\n \"CARMELO\",\n \"BARNEY\",\n \"NESTOR\",\n \"HOLLIS\",\n \"STEFAN\",\n \"DONNY\",\n \"ART\",\n \"LINWOOD\",\n \"BEAU\",\n \"WELDON\",\n \"GALEN\",\n \"ISIDRO\",\n \"TRUMAN\",\n \"DELMAR\",\n \"JOHNATHON\",\n \"SILAS\",\n \"FREDERIC\",\n \"DICK\",\n \"KIRBY\",\n \"IRWIN\",\n \"CRUZ\",\n \"MERLIN\",\n \"MERRILL\",\n \"CHARLEY\",\n \"MARCELINO\",\n \"LANE\",\n \"HARRIS\",\n \"CLEO\",\n \"CARLO\",\n \"TRENTON\",\n \"KURTIS\",\n \"HUNTER\",\n \"AURELIO\",\n \"WINFRED\",\n \"VITO\",\n \"COLLIN\",\n \"DENVER\",\n \"CARTER\",\n \"LEONEL\",\n \"EMORY\",\n \"PASQUALE\",\n \"MOHAMMAD\",\n \"MARIANO\",\n \"DANIAL\",\n \"BLAIR\",\n \"LANDON\",\n \"DIRK\",\n \"BRANDEN\",\n \"ADAN\",\n \"NUMBERS\",\n \"CLAIR\",\n \"BUFORD\",\n \"GERMAN\",\n \"BERNIE\",\n \"WILMER\",\n \"JOAN\",\n \"EMERSON\",\n \"ZACHERY\",\n \"FLETCHER\",\n \"JACQUES\",\n \"ERROL\",\n \"DALTON\",\n \"MONROE\",\n \"JOSUE\",\n \"DOMINIQUE\",\n \"EDWARDO\",\n \"BOOKER\",\n \"WILFORD\",\n \"SONNY\",\n \"SHELTON\",\n \"CARSON\",\n \"THERON\",\n \"RAYMUNDO\",\n \"DAREN\",\n \"TRISTAN\",\n \"HOUSTON\",\n \"ROBBY\",\n \"LINCOLN\",\n \"JAME\",\n \"GENARO\",\n \"GALE\",\n \"BENNETT\",\n \"OCTAVIO\",\n \"CORNELL\",\n \"LAVERNE\",\n \"HUNG\",\n \"ARRON\",\n \"ANTONY\",\n \"HERSCHEL\",\n \"ALVA\",\n \"GIOVANNI\",\n \"GARTH\",\n \"CYRUS\",\n \"CYRIL\",\n \"RONNY\",\n \"STEVIE\",\n \"LON\",\n \"FREEMAN\",\n \"ERIN\",\n \"DUNCAN\",\n \"KENNITH\",\n \"CARMINE\",\n \"AUGUSTINE\",\n \"YOUNG\",\n \"ERICH\",\n \"CHADWICK\",\n \"WILBURN\",\n \"RUSS\",\n \"REID\",\n \"MYLES\",\n \"ANDERSON\",\n \"MORTON\",\n \"JONAS\",\n \"FOREST\",\n \"MITCHEL\",\n \"MERVIN\",\n \"ZANE\",\n \"RICH\",\n \"JAMEL\",\n \"LAZARO\",\n \"ALPHONSE\",\n \"RANDELL\",\n \"MAJOR\",\n \"JOHNIE\",\n \"JARRETT\",\n \"BROOKS\",\n \"ARIEL\",\n \"ABDUL\",\n \"DUSTY\",\n \"LUCIANO\",\n \"LINDSEY\",\n \"TRACEY\",\n \"SEYMOUR\",\n \"SCOTTIE\",\n \"EUGENIO\",\n \"MOHAMMED\",\n \"SANDY\",\n \"VALENTIN\",\n \"CHANCE\",\n \"ARNULFO\",\n \"LUCIEN\",\n \"FERDINAND\",\n \"THAD\",\n \"EZRA\",\n \"SYDNEY\",\n \"ALDO\",\n \"RUBIN\",\n \"ROYAL\",\n \"MITCH\",\n \"EARLE\",\n \"ABE\",\n \"WYATT\",\n \"MARQUIS\",\n \"LANNY\",\n \"KAREEM\",\n \"JAMAR\",\n \"BORIS\",\n \"ISIAH\",\n \"EMILE\",\n \"ELMO\",\n \"ARON\",\n \"LEOPOLDO\",\n \"EVERETTE\",\n \"JOSEF\",\n \"GAIL\",\n \"ELOY\",\n \"DORIAN\",\n \"RODRICK\",\n \"REINALDO\",\n \"LUCIO\",\n \"JERROD\",\n \"WESTON\",\n \"HERSHEL\",\n \"BARTON\",\n \"PARKER\",\n \"LEMUEL\",\n \"LAVERN\",\n \"BURT\",\n \"JULES\",\n \"GIL\",\n \"ELISEO\",\n \"AHMAD\",\n \"NIGEL\",\n \"EFREN\",\n \"ANTWAN\",\n \"ALDEN\",\n \"MARGARITO\",\n \"COLEMAN\",\n \"REFUGIO\",\n \"DINO\",\n \"OSVALDO\",\n \"LES\",\n \"DEANDRE\",\n \"NORMAND\",\n \"KIETH\",\n \"IVORY\",\n \"ANDREA\",\n \"TREY\",\n \"NORBERTO\",\n \"NAPOLEON\",\n \"JEROLD\",\n \"FRITZ\",\n \"ROSENDO\",\n \"MILFORD\",\n \"SANG\",\n \"DEON\",\n \"CHRISTOPER\",\n \"ALFONZO\",\n \"LYMAN\",\n \"JOSIAH\",\n \"BRANT\",\n \"WILTON\",\n \"RICO\",\n \"JAMAAL\",\n \"DEWITT\",\n \"CAROL\",\n \"BRENTON\",\n \"YONG\",\n \"OLIN\",\n \"FOSTER\",\n \"FAUSTINO\",\n \"CLAUDIO\",\n \"JUDSON\",\n \"GINO\",\n \"EDGARDO\",\n \"BERRY\",\n \"ALEC\",\n \"TANNER\",\n \"JARRED\",\n \"DONN\",\n \"TRINIDAD\",\n \"TAD\",\n \"SHIRLEY\",\n \"PRINCE\",\n \"PORFIRIO\",\n \"ODIS\",\n \"MARIA\",\n \"LENARD\",\n \"CHAUNCEY\",\n \"CHANG\",\n \"TOD\",\n \"MEL\",\n \"MARCELO\",\n \"KORY\",\n \"AUGUSTUS\",\n \"KEVEN\",\n \"HILARIO\",\n \"BUD\",\n \"SAL\",\n \"ROSARIO\",\n \"ORVAL\",\n \"MAURO\",\n \"DANNIE\",\n \"ZACHARIAH\",\n \"OLEN\",\n \"ANIBAL\",\n \"MILO\",\n \"JED\",\n \"FRANCES\",\n \"THANH\",\n \"DILLON\",\n \"AMADO\",\n \"NEWTON\",\n \"CONNIE\",\n \"LENNY\",\n \"TORY\",\n \"RICHIE\",\n \"LUPE\",\n \"HORACIO\",\n \"BRICE\",\n \"MOHAMED\",\n \"DELMER\",\n \"DARIO\",\n \"REYES\",\n \"DEE\",\n \"MAC\",\n \"JONAH\",\n \"JERROLD\",\n \"ROBT\",\n \"HANK\",\n \"SUNG\",\n \"RUPERT\",\n \"ROLLAND\",\n \"KENTON\",\n \"DAMION\",\n \"CHI\",\n \"ANTONE\",\n \"WALDO\",\n \"FREDRIC\",\n \"BRADLY\",\n \"QUINN\",\n \"KIP\",\n \"BURL\",\n \"WALKER\",\n \"TYREE\",\n \"JEFFEREY\",\n \"AHMED\",\n ];\n this.allFirstNames = this.femaleFirstNames.concat(this.maleFirstNames);\n this.lastNames = [\n \"SMITH\",\n \"JOHNSON\",\n \"WILLIAMS\",\n \"JONES\",\n \"BROWN\",\n \"DAVIS\",\n \"MILLER\",\n \"WILSON\",\n \"MOORE\",\n \"TAYLOR\",\n \"ANDERSON\",\n \"THOMAS\",\n \"JACKSON\",\n \"WHITE\",\n \"HARRIS\",\n \"MARTIN\",\n \"THOMPSON\",\n \"GARCIA\",\n \"MARTINEZ\",\n \"ROBINSON\",\n \"CLARK\",\n \"RODRIGUEZ\",\n \"LEWIS\",\n \"LEE\",\n \"WALKER\",\n \"HALL\",\n \"ALLEN\",\n \"YOUNG\",\n \"HERNANDEZ\",\n \"KING\",\n \"WRIGHT\",\n \"LOPEZ\",\n \"HILL\",\n \"SCOTT\",\n \"GREEN\",\n \"ADAMS\",\n \"BAKER\",\n \"GONZALEZ\",\n \"NELSON\",\n \"CARTER\",\n \"MITCHELL\",\n \"PEREZ\",\n \"ROBERTS\",\n \"TURNER\",\n \"PHILLIPS\",\n \"CAMPBELL\",\n \"PARKER\",\n \"EVANS\",\n \"EDWARDS\",\n \"COLLINS\",\n \"STEWART\",\n \"SANCHEZ\",\n \"MORRIS\",\n \"ROGERS\",\n \"REED\",\n \"COOK\",\n \"MORGAN\",\n \"BELL\",\n \"MURPHY\",\n \"BAILEY\",\n \"RIVERA\",\n \"COOPER\",\n \"RICHARDSON\",\n \"COX\",\n \"HOWARD\",\n \"WARD\",\n \"TORRES\",\n \"PETERSON\",\n \"GRAY\",\n \"RAMIREZ\",\n \"JAMES\",\n \"WATSON\",\n \"BROOKS\",\n \"KELLY\",\n \"SANDERS\",\n \"PRICE\",\n \"BENNETT\",\n \"WOOD\",\n \"BARNES\",\n \"ROSS\",\n \"HENDERSON\",\n \"COLEMAN\",\n \"JENKINS\",\n \"PERRY\",\n \"POWELL\",\n \"LONG\",\n \"PATTERSON\",\n \"HUGHES\",\n \"FLORES\",\n \"WASHINGTON\",\n \"BUTLER\",\n \"SIMMONS\",\n \"FOSTER\",\n \"GONZALES\",\n \"BRYANT\",\n \"ALEXANDER\",\n \"RUSSELL\",\n \"GRIFFIN\",\n \"DIAZ\",\n \"HAYES\",\n \"MYERS\",\n \"FORD\",\n \"HAMILTON\",\n \"GRAHAM\",\n \"SULLIVAN\",\n \"WALLACE\",\n \"WOODS\",\n \"COLE\",\n \"WEST\",\n \"JORDAN\",\n \"OWENS\",\n \"REYNOLDS\",\n \"FISHER\",\n \"ELLIS\",\n \"HARRISON\",\n \"GIBSON\",\n \"MCDONALD\",\n \"CRUZ\",\n \"MARSHALL\",\n \"ORTIZ\",\n \"GOMEZ\",\n \"MURRAY\",\n \"FREEMAN\",\n \"WELLS\",\n \"WEBB\",\n \"SIMPSON\",\n \"STEVENS\",\n \"TUCKER\",\n \"PORTER\",\n \"HUNTER\",\n \"HICKS\",\n \"CRAWFORD\",\n \"HENRY\",\n \"BOYD\",\n \"MASON\",\n \"MORALES\",\n \"KENNEDY\",\n \"WARREN\",\n \"DIXON\",\n \"RAMOS\",\n \"REYES\",\n \"BURNS\",\n \"GORDON\",\n \"SHAW\",\n \"HOLMES\",\n \"RICE\",\n \"ROBERTSON\",\n \"HUNT\",\n \"BLACK\",\n \"DANIELS\",\n \"PALMER\",\n \"MILLS\",\n \"NICHOLS\",\n \"GRANT\",\n \"KNIGHT\",\n \"FERGUSON\",\n \"ROSE\",\n \"STONE\",\n \"HAWKINS\",\n \"DUNN\",\n \"PERKINS\",\n \"HUDSON\",\n \"SPENCER\",\n \"GARDNER\",\n \"STEPHENS\",\n \"PAYNE\",\n \"PIERCE\",\n \"BERRY\",\n \"MATTHEWS\",\n \"ARNOLD\",\n \"WAGNER\",\n \"WILLIS\",\n \"RAY\",\n \"WATKINS\",\n \"OLSON\",\n \"CARROLL\",\n \"DUNCAN\",\n \"SNYDER\",\n \"HART\",\n \"CUNNINGHAM\",\n \"BRADLEY\",\n \"LANE\",\n \"ANDREWS\",\n \"RUIZ\",\n \"HARPER\",\n \"FOX\",\n \"RILEY\",\n \"ARMSTRONG\",\n \"CARPENTER\",\n \"WEAVER\",\n \"GREENE\",\n \"LAWRENCE\",\n \"ELLIOTT\",\n \"CHAVEZ\",\n \"SIMS\",\n \"AUSTIN\",\n \"PETERS\",\n \"KELLEY\",\n \"FRANKLIN\",\n \"LAWSON\",\n \"FIELDS\",\n \"GUTIERREZ\",\n \"RYAN\",\n \"SCHMIDT\",\n \"CARR\",\n \"VASQUEZ\",\n \"CASTILLO\",\n \"WHEELER\",\n \"CHAPMAN\",\n \"OLIVER\",\n \"MONTGOMERY\",\n \"RICHARDS\",\n \"WILLIAMSON\",\n \"JOHNSTON\",\n \"BANKS\",\n \"MEYER\",\n \"BISHOP\",\n \"MCCOY\",\n \"HOWELL\",\n \"ALVAREZ\",\n \"MORRISON\",\n \"HANSEN\",\n \"FERNANDEZ\",\n \"GARZA\",\n \"HARVEY\",\n \"LITTLE\",\n \"BURTON\",\n \"STANLEY\",\n \"NGUYEN\",\n \"GEORGE\",\n \"JACOBS\",\n \"REID\",\n \"KIM\",\n \"FULLER\",\n \"LYNCH\",\n \"DEAN\",\n \"GILBERT\",\n \"GARRETT\",\n \"ROMERO\",\n \"WELCH\",\n \"LARSON\",\n \"FRAZIER\",\n \"BURKE\",\n \"HANSON\",\n \"DAY\",\n \"MENDOZA\",\n \"MORENO\",\n \"BOWMAN\",\n \"MEDINA\",\n \"FOWLER\",\n \"BREWER\",\n \"HOFFMAN\",\n \"CARLSON\",\n \"SILVA\",\n \"PEARSON\",\n \"HOLLAND\",\n \"DOUGLAS\",\n \"FLEMING\",\n \"JENSEN\",\n \"VARGAS\",\n \"BYRD\",\n \"DAVIDSON\",\n \"HOPKINS\",\n \"MAY\",\n \"TERRY\",\n \"HERRERA\",\n \"WADE\",\n \"SOTO\",\n \"WALTERS\",\n \"CURTIS\",\n \"NEAL\",\n \"CALDWELL\",\n \"LOWE\",\n \"JENNINGS\",\n \"BARNETT\",\n \"GRAVES\",\n \"JIMENEZ\",\n \"HORTON\",\n \"SHELTON\",\n \"BARRETT\",\n \"OBRIEN\",\n \"CASTRO\",\n \"SUTTON\",\n \"GREGORY\",\n \"MCKINNEY\",\n \"LUCAS\",\n \"MILES\",\n \"CRAIG\",\n \"RODRIQUEZ\",\n \"CHAMBERS\",\n \"HOLT\",\n \"LAMBERT\",\n \"FLETCHER\",\n \"WATTS\",\n \"BATES\",\n \"HALE\",\n \"RHODES\",\n \"PENA\",\n \"BECK\",\n \"NEWMAN\",\n \"HAYNES\",\n \"MCDANIEL\",\n \"MENDEZ\",\n \"BUSH\",\n \"VAUGHN\",\n \"PARKS\",\n \"DAWSON\",\n \"SANTIAGO\",\n \"NORRIS\",\n \"HARDY\",\n \"LOVE\",\n \"STEELE\",\n \"CURRY\",\n \"POWERS\",\n \"SCHULTZ\",\n \"BARKER\",\n \"GUZMAN\",\n \"PAGE\",\n \"MUNOZ\",\n \"BALL\",\n \"KELLER\",\n \"CHANDLER\",\n \"WEBER\",\n \"LEONARD\",\n \"WALSH\",\n \"LYONS\",\n \"RAMSEY\",\n \"WOLFE\",\n \"SCHNEIDER\",\n \"MULLINS\",\n \"BENSON\",\n \"SHARP\",\n \"BOWEN\",\n \"DANIEL\",\n \"BARBER\",\n \"CUMMINGS\",\n \"HINES\",\n \"BALDWIN\",\n \"GRIFFITH\",\n \"VALDEZ\",\n \"HUBBARD\",\n \"SALAZAR\",\n \"REEVES\",\n \"WARNER\",\n \"STEVENSON\",\n \"BURGESS\",\n \"SANTOS\",\n \"TATE\",\n \"CROSS\",\n \"GARNER\",\n \"MANN\",\n \"MACK\",\n \"MOSS\",\n \"THORNTON\",\n \"DENNIS\",\n \"MCGEE\",\n \"FARMER\",\n \"DELGADO\",\n \"AGUILAR\",\n \"VEGA\",\n \"GLOVER\",\n \"MANNING\",\n \"COHEN\",\n \"HARMON\",\n \"RODGERS\",\n \"ROBBINS\",\n \"NEWTON\",\n \"TODD\",\n \"BLAIR\",\n \"HIGGINS\",\n \"INGRAM\",\n \"REESE\",\n \"CANNON\",\n \"STRICKLAND\",\n \"TOWNSEND\",\n \"POTTER\",\n \"GOODWIN\",\n \"WALTON\",\n \"ROWE\",\n \"HAMPTON\",\n \"ORTEGA\",\n \"PATTON\",\n \"SWANSON\",\n \"JOSEPH\",\n \"FRANCIS\",\n \"GOODMAN\",\n \"MALDONADO\",\n \"YATES\",\n \"BECKER\",\n \"ERICKSON\",\n \"HODGES\",\n \"RIOS\",\n \"CONNER\",\n \"ADKINS\",\n \"WEBSTER\",\n \"NORMAN\",\n \"MALONE\",\n \"HAMMOND\",\n \"FLOWERS\",\n \"COBB\",\n \"MOODY\",\n \"QUINN\",\n \"BLAKE\",\n \"MAXWELL\",\n \"POPE\",\n \"FLOYD\",\n \"OSBORNE\",\n \"PAUL\",\n \"MCCARTHY\",\n \"GUERRERO\",\n \"LINDSEY\",\n \"ESTRADA\",\n \"SANDOVAL\",\n \"GIBBS\",\n \"TYLER\",\n \"GROSS\",\n \"FITZGERALD\",\n \"STOKES\",\n \"DOYLE\",\n \"SHERMAN\",\n \"SAUNDERS\",\n \"WISE\",\n \"COLON\",\n \"GILL\",\n \"ALVARADO\",\n \"GREER\",\n \"PADILLA\",\n \"SIMON\",\n \"WATERS\",\n \"NUNEZ\",\n \"BALLARD\",\n \"SCHWARTZ\",\n \"MCBRIDE\",\n \"HOUSTON\",\n \"CHRISTENSEN\",\n \"KLEIN\",\n \"PRATT\",\n \"BRIGGS\",\n \"PARSONS\",\n \"MCLAUGHLIN\",\n \"ZIMMERMAN\",\n \"FRENCH\",\n \"BUCHANAN\",\n \"MORAN\",\n \"COPELAND\",\n \"ROY\",\n \"PITTMAN\",\n \"BRADY\",\n \"MCCORMICK\",\n \"HOLLOWAY\",\n \"BROCK\",\n \"POOLE\",\n \"FRANK\",\n \"LOGAN\",\n \"OWEN\",\n \"BASS\",\n \"MARSH\",\n \"DRAKE\",\n \"WONG\",\n \"JEFFERSON\",\n \"PARK\",\n \"MORTON\",\n \"ABBOTT\",\n \"SPARKS\",\n \"PATRICK\",\n \"NORTON\",\n \"HUFF\",\n \"CLAYTON\",\n \"MASSEY\",\n \"LLOYD\",\n \"FIGUEROA\",\n \"CARSON\",\n \"BOWERS\",\n \"ROBERSON\",\n \"BARTON\",\n \"TRAN\",\n \"LAMB\",\n \"HARRINGTON\",\n \"CASEY\",\n \"BOONE\",\n \"CORTEZ\",\n \"CLARKE\",\n \"MATHIS\",\n \"SINGLETON\",\n \"WILKINS\",\n \"CAIN\",\n \"BRYAN\",\n \"UNDERWOOD\",\n \"HOGAN\",\n \"MCKENZIE\",\n \"COLLIER\",\n \"LUNA\",\n \"PHELPS\",\n \"MCGUIRE\",\n \"ALLISON\",\n \"BRIDGES\",\n \"WILKERSON\",\n \"NASH\",\n \"SUMMERS\",\n \"ATKINS\",\n \"WILCOX\",\n \"PITTS\",\n \"CONLEY\",\n \"MARQUEZ\",\n \"BURNETT\",\n \"RICHARD\",\n \"COCHRAN\",\n \"CHASE\",\n \"DAVENPORT\",\n \"HOOD\",\n \"GATES\",\n \"CLAY\",\n \"AYALA\",\n \"SAWYER\",\n \"ROMAN\",\n \"VAZQUEZ\",\n \"DICKERSON\",\n \"HODGE\",\n \"ACOSTA\",\n \"FLYNN\",\n \"ESPINOZA\",\n \"NICHOLSON\",\n \"MONROE\",\n \"WOLF\",\n \"MORROW\",\n \"KIRK\",\n \"RANDALL\",\n \"ANTHONY\",\n \"WHITAKER\",\n \"OCONNOR\",\n \"SKINNER\",\n \"WARE\",\n \"MOLINA\",\n \"KIRBY\",\n \"HUFFMAN\",\n \"BRADFORD\",\n \"CHARLES\",\n \"GILMORE\",\n \"DOMINGUEZ\",\n \"ONEAL\",\n \"BRUCE\",\n \"LANG\",\n \"COMBS\",\n \"KRAMER\",\n \"HEATH\",\n \"HANCOCK\",\n \"GALLAGHER\",\n \"GAINES\",\n \"SHAFFER\",\n \"SHORT\",\n \"WIGGINS\",\n \"MATHEWS\",\n \"MCCLAIN\",\n \"FISCHER\",\n \"WALL\",\n \"SMALL\",\n \"MELTON\",\n \"HENSLEY\",\n \"BOND\",\n \"DYER\",\n \"CAMERON\",\n \"GRIMES\",\n \"CONTRERAS\",\n \"CHRISTIAN\",\n \"WYATT\",\n \"BAXTER\",\n \"SNOW\",\n \"MOSLEY\",\n \"SHEPHERD\",\n \"LARSEN\",\n \"HOOVER\",\n \"BEASLEY\",\n \"GLENN\",\n \"PETERSEN\",\n \"WHITEHEAD\",\n \"MEYERS\",\n \"KEITH\",\n \"GARRISON\",\n \"VINCENT\",\n \"SHIELDS\",\n \"HORN\",\n \"SAVAGE\",\n \"OLSEN\",\n \"SCHROEDER\",\n \"HARTMAN\",\n \"WOODARD\",\n \"MUELLER\",\n \"KEMP\",\n \"DELEON\",\n \"BOOTH\",\n \"PATEL\",\n \"CALHOUN\",\n \"WILEY\",\n \"EATON\",\n \"CLINE\",\n \"NAVARRO\",\n \"HARRELL\",\n \"LESTER\",\n \"HUMPHREY\",\n \"PARRISH\",\n \"DURAN\",\n \"HUTCHINSON\",\n \"HESS\",\n \"DORSEY\",\n \"BULLOCK\",\n \"ROBLES\",\n \"BEARD\",\n \"DALTON\",\n \"AVILA\",\n \"VANCE\",\n \"RICH\",\n \"BLACKWELL\",\n \"YORK\",\n \"JOHNS\",\n \"BLANKENSHIP\",\n \"TREVINO\",\n \"SALINAS\",\n \"CAMPOS\",\n \"PRUITT\",\n \"MOSES\",\n \"CALLAHAN\",\n \"GOLDEN\",\n \"MONTOYA\",\n \"HARDIN\",\n \"GUERRA\",\n \"MCDOWELL\",\n \"CAREY\",\n \"STAFFORD\",\n \"GALLEGOS\",\n \"HENSON\",\n \"WILKINSON\",\n \"BOOKER\",\n \"MERRITT\",\n \"MIRANDA\",\n \"ATKINSON\",\n \"ORR\",\n \"DECKER\",\n \"HOBBS\",\n \"PRESTON\",\n \"TANNER\",\n \"KNOX\",\n \"PACHECO\",\n \"STEPHENSON\",\n \"GLASS\",\n \"ROJAS\",\n \"SERRANO\",\n \"MARKS\",\n \"HICKMAN\",\n \"ENGLISH\",\n \"SWEENEY\",\n \"STRONG\",\n \"PRINCE\",\n \"MCCLURE\",\n \"CONWAY\",\n \"WALTER\",\n \"ROTH\",\n \"MAYNARD\",\n \"FARRELL\",\n \"LOWERY\",\n \"HURST\",\n \"NIXON\",\n \"WEISS\",\n \"TRUJILLO\",\n \"ELLISON\",\n \"SLOAN\",\n \"JUAREZ\",\n \"WINTERS\",\n \"MCLEAN\",\n \"RANDOLPH\",\n \"LEON\",\n \"BOYER\",\n \"VILLARREAL\",\n \"MCCALL\",\n \"GENTRY\",\n \"CARRILLO\",\n \"KENT\",\n \"AYERS\",\n \"LARA\",\n \"SHANNON\",\n \"SEXTON\",\n \"PACE\",\n \"HULL\",\n \"LEBLANC\",\n \"BROWNING\",\n \"VELASQUEZ\",\n \"LEACH\",\n \"CHANG\",\n \"HOUSE\",\n \"SELLERS\",\n \"HERRING\",\n \"NOBLE\",\n \"FOLEY\",\n \"BARTLETT\",\n \"MERCADO\",\n \"LANDRY\",\n \"DURHAM\",\n \"WALLS\",\n \"BARR\",\n \"MCKEE\",\n \"BAUER\",\n \"RIVERS\",\n \"EVERETT\",\n \"BRADSHAW\",\n \"PUGH\",\n \"VELEZ\",\n \"RUSH\",\n \"ESTES\",\n \"DODSON\",\n \"MORSE\",\n \"SHEPPARD\",\n \"WEEKS\",\n \"CAMACHO\",\n \"BEAN\",\n \"BARRON\",\n \"LIVINGSTON\",\n \"MIDDLETON\",\n \"SPEARS\",\n \"BRANCH\",\n \"BLEVINS\",\n \"CHEN\",\n \"KERR\",\n \"MCCONNELL\",\n \"HATFIELD\",\n \"HARDING\",\n \"ASHLEY\",\n \"SOLIS\",\n \"HERMAN\",\n \"FROST\",\n \"GILES\",\n \"BLACKBURN\",\n \"WILLIAM\",\n \"PENNINGTON\",\n \"WOODWARD\",\n \"FINLEY\",\n \"MCINTOSH\",\n \"KOCH\",\n \"BEST\",\n \"SOLOMON\",\n \"MCCULLOUGH\",\n \"DUDLEY\",\n \"NOLAN\",\n \"BLANCHARD\",\n \"RIVAS\",\n \"BRENNAN\",\n \"MEJIA\",\n \"KANE\",\n \"BENTON\",\n \"JOYCE\",\n \"BUCKLEY\",\n \"HALEY\",\n \"VALENTINE\",\n \"MADDOX\",\n \"RUSSO\",\n \"MCKNIGHT\",\n \"BUCK\",\n \"MOON\",\n \"MCMILLAN\",\n \"CROSBY\",\n \"BERG\",\n \"DOTSON\",\n \"MAYS\",\n \"ROACH\",\n \"CHURCH\",\n \"CHAN\",\n \"RICHMOND\",\n \"MEADOWS\",\n \"FAULKNER\",\n \"ONEILL\",\n \"KNAPP\",\n \"KLINE\",\n \"BARRY\",\n \"OCHOA\",\n \"JACOBSON\",\n \"GAY\",\n \"AVERY\",\n \"HENDRICKS\",\n \"HORNE\",\n \"SHEPARD\",\n \"HEBERT\",\n \"CHERRY\",\n \"CARDENAS\",\n \"MCINTYRE\",\n \"WHITNEY\",\n \"WALLER\",\n \"HOLMAN\",\n \"DONALDSON\",\n \"CANTU\",\n \"TERRELL\",\n \"MORIN\",\n \"GILLESPIE\",\n \"FUENTES\",\n \"TILLMAN\",\n \"SANFORD\",\n \"BENTLEY\",\n \"PECK\",\n \"KEY\",\n \"SALAS\",\n \"ROLLINS\",\n \"GAMBLE\",\n \"DICKSON\",\n \"BATTLE\",\n \"SANTANA\",\n \"CABRERA\",\n \"CERVANTES\",\n \"HOWE\",\n \"HINTON\",\n \"HURLEY\",\n \"SPENCE\",\n \"ZAMORA\",\n \"YANG\",\n \"MCNEIL\",\n \"SUAREZ\",\n \"CASE\",\n \"PETTY\",\n \"GOULD\",\n \"MCFARLAND\",\n \"SAMPSON\",\n \"CARVER\",\n \"BRAY\",\n \"ROSARIO\",\n \"MACDONALD\",\n \"STOUT\",\n \"HESTER\",\n \"MELENDEZ\",\n \"DILLON\",\n \"FARLEY\",\n \"HOPPER\",\n \"GALLOWAY\",\n \"POTTS\",\n \"BERNARD\",\n \"JOYNER\",\n \"STEIN\",\n \"AGUIRRE\",\n \"OSBORN\",\n \"MERCER\",\n \"BENDER\",\n \"FRANCO\",\n \"ROWLAND\",\n \"SYKES\",\n \"BENJAMIN\",\n \"TRAVIS\",\n \"PICKETT\",\n \"CRANE\",\n \"SEARS\",\n \"MAYO\",\n \"DUNLAP\",\n \"HAYDEN\",\n \"WILDER\",\n \"MCKAY\",\n \"COFFEY\",\n \"MCCARTY\",\n \"EWING\",\n \"COOLEY\",\n \"VAUGHAN\",\n \"BONNER\",\n \"COTTON\",\n \"HOLDER\",\n \"STARK\",\n \"FERRELL\",\n \"CANTRELL\",\n \"FULTON\",\n \"LYNN\",\n \"LOTT\",\n \"CALDERON\",\n \"ROSA\",\n \"POLLARD\",\n \"HOOPER\",\n \"BURCH\",\n \"MULLEN\",\n \"FRY\",\n \"RIDDLE\",\n \"LEVY\",\n \"DAVID\",\n \"DUKE\",\n \"ODONNELL\",\n \"GUY\",\n \"MICHAEL\",\n \"BRITT\",\n \"FREDERICK\",\n \"DAUGHERTY\",\n \"BERGER\",\n \"DILLARD\",\n \"ALSTON\",\n \"JARVIS\",\n \"FRYE\",\n \"RIGGS\",\n \"CHANEY\",\n \"ODOM\",\n \"DUFFY\",\n \"FITZPATRICK\",\n \"VALENZUELA\",\n \"MERRILL\",\n \"MAYER\",\n \"ALFORD\",\n \"MCPHERSON\",\n \"ACEVEDO\",\n \"DONOVAN\",\n \"BARRERA\",\n \"ALBERT\",\n \"COTE\",\n \"REILLY\",\n \"COMPTON\",\n \"RAYMOND\",\n \"MOONEY\",\n \"MCGOWAN\",\n \"CRAFT\",\n \"CLEVELAND\",\n \"CLEMONS\",\n \"WYNN\",\n \"NIELSEN\",\n \"BAIRD\",\n \"STANTON\",\n \"SNIDER\",\n \"ROSALES\",\n \"BRIGHT\",\n \"WITT\",\n \"STUART\",\n \"HAYS\",\n \"HOLDEN\",\n \"RUTLEDGE\",\n \"KINNEY\",\n \"CLEMENTS\",\n \"CASTANEDA\",\n \"SLATER\",\n \"HAHN\",\n \"EMERSON\",\n \"CONRAD\",\n \"BURKS\",\n \"DELANEY\",\n \"PATE\",\n \"LANCASTER\",\n \"SWEET\",\n \"JUSTICE\",\n \"TYSON\",\n \"SHARPE\",\n \"WHITFIELD\",\n \"TALLEY\",\n \"MACIAS\",\n \"IRWIN\",\n \"BURRIS\",\n \"RATLIFF\",\n \"MCCRAY\",\n \"MADDEN\",\n \"KAUFMAN\",\n \"BEACH\",\n \"GOFF\",\n \"CASH\",\n \"BOLTON\",\n \"MCFADDEN\",\n \"LEVINE\",\n \"GOOD\",\n \"BYERS\",\n \"KIRKLAND\",\n \"KIDD\",\n \"WORKMAN\",\n \"CARNEY\",\n \"DALE\",\n \"MCLEOD\",\n \"HOLCOMB\",\n \"ENGLAND\",\n \"FINCH\",\n \"HEAD\",\n \"BURT\",\n \"HENDRIX\",\n \"SOSA\",\n \"HANEY\",\n \"FRANKS\",\n \"SARGENT\",\n \"NIEVES\",\n \"DOWNS\",\n \"RASMUSSEN\",\n \"BIRD\",\n \"HEWITT\",\n \"LINDSAY\",\n \"LE\",\n \"FOREMAN\",\n \"VALENCIA\",\n \"ONEIL\",\n \"DELACRUZ\",\n \"VINSON\",\n \"DEJESUS\",\n \"HYDE\",\n \"FORBES\",\n \"GILLIAM\",\n \"GUTHRIE\",\n \"WOOTEN\",\n \"HUBER\",\n \"BARLOW\",\n \"BOYLE\",\n \"MCMAHON\",\n \"BUCKNER\",\n \"ROCHA\",\n \"PUCKETT\",\n \"LANGLEY\",\n \"KNOWLES\",\n \"COOKE\",\n \"VELAZQUEZ\",\n \"WHITLEY\",\n \"NOEL\",\n \"VANG\",\n ];\n this.streets = [\n \"JACKSON STREET\",\n \"ROUTE 41\",\n \"HILLCREST AVENUE\",\n \"5TH STREET\",\n \"RIDGE AVENUE\",\n \"CREEKSIDE DRIVE\",\n \"ORCHARD LANE\",\n \"MECHANIC STREET\",\n \"3RD STREET NORTH\",\n \"CANTERBURY COURT\",\n \"ASHLEY COURT\",\n \"CYPRESS COURT\",\n \"SCHOOL STREET\",\n \"FRANKLIN STREET\",\n \"RIVER STREET\",\n \"COBBLESTONE COURT\",\n \"DELAWARE AVENUE\",\n \"5TH STREET WEST\",\n \"4TH STREET NORTH\",\n \"WILLOW LANE\",\n \"MYRTLE STREET\",\n \"CHESTNUT STREET\",\n \"COURT STREET\",\n \"FAIRVIEW ROAD\",\n \"WINDING WAY\",\n \"IVY LANE\",\n \"8TH STREET\",\n \"HARRISON AVENUE\",\n \"AMHERST STREET\",\n \"HUDSON STREET\",\n \"FRONT STREET SOUTH\",\n \"RAILROAD STREET\",\n \"HAWTHORNE AVENUE\",\n \"GRANT STREET\",\n \"TANGLEWOOD DRIVE\",\n \"DOGWOOD DRIVE\",\n \"EDGEWOOD DRIVE\",\n \"FAWN COURT\",\n \"2ND STREET EAST\",\n \"SUMMIT STREET\",\n \"LAUREL DRIVE\",\n \"ANN STREET\",\n \"ELMWOOD AVENUE\",\n \"CROSS STREET\",\n \"WINDSOR COURT\",\n \"RIVER ROAD\",\n \"VIRGINIA AVENUE\",\n \"FOREST AVENUE\",\n \"HEATHER LANE\",\n \"1ST STREET\",\n \"2ND STREET NORTH\",\n \"MYRTLE AVENUE\",\n \"WOODLAND ROAD\",\n \"8TH AVENUE\",\n \"BROOKSIDE DRIVE\",\n \"SMITH STREET\",\n \"MAPLE LANE\",\n \"STATE STREET\",\n \"HAWTHORNE LANE\",\n \"QUEEN STREET\",\n \"OVERLOOK CIRCLE\",\n \"4TH AVENUE\",\n \"JEFFERSON STREET\",\n \"HILLTOP ROAD\",\n \"INVERNESS DRIVE\",\n \"MAGNOLIA COURT\",\n \"DOGWOOD LANE\",\n \"HENRY STREET\",\n \"SPRING STREET\",\n \"FRANKLIN COURT\",\n \"LOCUST STREET\",\n \"YORK STREET\",\n \"RIVERSIDE DRIVE\",\n \"CEMETERY ROAD\",\n \"MAIN STREET\",\n \"HIGHLAND DRIVE\",\n \"PINE STREET\",\n \"LOIS LANE\",\n \"CANTERBURY DRIVE\",\n \"MAIN STREET EAST\",\n \"HARRISON STREET\",\n \"CLINTON STREET\",\n \"MADISON AVENUE\",\n \"2ND STREET WEST\",\n \"SUMMIT AVENUE\",\n \"WOODLAND AVENUE\",\n \"CAMBRIDGE COURT\",\n \"SHADY LANE\",\n \"GEORGE STREET\",\n \"LAUREL STREET\",\n \"BRIARWOOD COURT\",\n \"IVY COURT\",\n \"LAFAYETTE AVENUE\",\n \"YORK ROAD\",\n \"VALLEY VIEW ROAD\",\n \"CREEK ROAD\",\n \"SYCAMORE LANE\",\n \"PEARL STREET\",\n \"11TH STREET\",\n \"ROUTE 1\",\n ];\n this.cities = [\n \"MADRID\",\n \"BENGALURU\",\n \"AHMEDABAD\",\n \"LOS ANGELES\",\n \"BAKU\",\n \"ALGIERS\",\n \"SHIRAZ\",\n \"DONGGUAN\",\n \"QUITO\",\n \"TORONTO\",\n \"WUHAN\",\n \"HONG KONG\",\n \"MELBOURNE\",\n \"MAPUTO\",\n \"XI'AN\",\n \"RECIFE\",\n \"SANTA CRUZ DE LA SIERRA\",\n \"SHANGHAI\",\n \"MONTERREY\",\n \"HAVANA\",\n \"TAIPEI\",\n \"ABIDJAN\",\n \"KARACHI\",\n \"TASHKENT\",\n \"MUMBAI\",\n \"SHIJIAZHUANG\",\n \"JAKARTA\",\n \"NANJING\",\n \"HYDERABAD\",\n \"XIAMEN\",\n \"FAISALABAD\",\n \"QUANZHOU\",\n \"BOGOTA\",\n \"KUALA LUMPUR\",\n \"FOSHAN\",\n \"BAGHDAD\",\n \"ROSTOV-ON-DON\",\n \"KAOHSIUNG\",\n \"PHOENIX\",\n \"SYDNEY\",\n \"PESHAWAR\",\n \"ADDIS ABABA\",\n \"RIO DE JANEIRO\",\n \"BARCELONA\",\n \"SAPPORO\",\n \"MONTEVIDEO\",\n \"ASTANA\",\n \"AHVAZ\",\n \"TEHRAN\",\n \"HEFEI\",\n ];\n this.countries = [\n \"UKRAINE\",\n \"DJIBOUTI\",\n \"COLOMBIA\",\n \"ALGERIA\",\n \"ERITREA\",\n \"BELIZE\",\n \"UNITED STATES OF AMERICA\",\n \"POLAND\",\n \"TOKELAU\",\n \"JORDAN\",\n \"RUSSIAN FEDERATION\",\n \"GERMANY\",\n \"BRITISH INDIAN OCEAN TERRITORY\",\n \"SURINAME\",\n \"NORTHERN MARIANA ISLANDS\",\n \"FRENCH SOUTHERN TERRITORIES\",\n \"MYANMAR\",\n \"SWEDEN\",\n \"JERSEY\",\n \"ANGUILLA\",\n \"UZBEKISTAN\",\n \"CHINA\",\n \"ISRAEL\",\n \"MALI\",\n \"SAINT VINCENT AND THE GRENADINES\",\n \"ISLE OF MAN\",\n \"SYRIAN ARAB REPUBLIC\",\n \"IRAQ\",\n \"SOMALIA\",\n \"ESTONIA\",\n \"KIRIBATI\",\n \"NORFOLK ISLAND\",\n \"COSTA RICA\",\n \"KYRGYZSTAN\",\n \"LAO PEOPLE'S DEMOCRATIC REPUBLIC\",\n \"ISLE OF MAN\",\n \"BOTSWANA\",\n \"CANADA\",\n \"FALKLAND ISLANDS (MALVINAS)\",\n \"WALLIS AND FUTUNA\",\n \"AFGHANISTAN\",\n \"CHAD\",\n \"SRI LANKA\",\n \"LATVIA\",\n \"ITALY\",\n \"YEMEN\",\n ];\n }\n}\n","import { data, dataSet } from \"dcmjs\";\nimport { lists } from \"./lists\";\nimport Randomizer from \"./randomizer\";\n\nclass AddressAnonymizer {\n private randomizer: Randomizer;\n private lists: lists;\n\n addressTag: string = data.DicomMetaDictionary.nameMap[\"PatientAddress\"].tag;\n regionTag: string = data.DicomMetaDictionary.nameMap[\"RegionOfResidence\"].tag;\n countryTag: string = data.DicomMetaDictionary.nameMap[\"CountryOfResidence\"].tag;\n valueFactories; //: { [key: string]: (originalValue: string) => Promise } | undefined;\n\n constructor(Randomizer: Randomizer) {\n this.randomizer = Randomizer;\n this.lists = new lists();\n\n this.addressTag = data.DicomMetaDictionary.unpunctuateTag(this.addressTag);\n this.regionTag = data.DicomMetaDictionary.unpunctuateTag(this.regionTag);\n this.countryTag = data.DicomMetaDictionary.unpunctuateTag(this.countryTag);\n // this._setupValueFactories();\n this.valueFactories = {\n [this.addressTag]: this.getLegalAddress,\n [this.regionTag]: this.getRegion,\n [this.countryTag]: this.getCountry,\n };\n }\n\n anonymize = async (dataset: dataSet, dataTag: string): Promise => {\n const valueFactory = await this.valueFactories[dataTag];\n\n if (valueFactory == undefined) {\n return false;\n }\n\n if (dataset[dataTag].Value.length > 1) {\n for (let i = 0; i < dataset[dataTag].Value.length; i++) {\n dataset[dataTag].Value[i] = await valueFactory(dataset[dataTag].Value[i]);\n }\n\n return true;\n } else if (dataset[dataTag].Value.length == 1) {\n const originalValue: string = dataset[dataTag].Value[0];\n dataset[dataTag].Value[0] = await valueFactory(originalValue);\n return true;\n } else {\n dataset[dataTag].Value[0] = await valueFactory(\"\");\n return true;\n }\n };\n\n getLegalAddress = async (originalValue: string): Promise => {\n const street: string = await this.getStreetAddress(originalValue);\n const streetNumber: string = await this.getStreetNumber(originalValue);\n const city: string = await this.getRegion(originalValue);\n\n return `${streetNumber} ${street}, ${city}`;\n };\n\n getStreetNumber = async (originalValue: string): Promise => {\n const [streetNumberIndex]: number[] = await this.randomizer.getIntsFromRanges(\n originalValue,\n 1000\n );\n const streetNumber: number = streetNumberIndex + 1;\n\n return `${streetNumber}`;\n };\n\n getStreetAddress = async (originalValue: string): Promise => {\n const [streetIndex]: number[] = await this.randomizer.getIntsFromRanges(\n originalValue,\n this.lists.streets.length\n );\n\n return `${this.lists.streets[streetIndex]}`;\n };\n\n getRegion = async (originalValue: string): Promise => {\n const [cityIndex]: number[] = await this.randomizer.getIntsFromRanges(\n originalValue,\n this.lists.cities.length\n );\n\n return `${this.lists.cities[cityIndex]}`;\n };\n\n getCountry = async (originalValue: string): Promise => {\n const [countryIndex]: number[] = await this.randomizer.getIntsFromRanges(\n originalValue,\n this.lists.countries.length\n );\n\n return `${this.lists.countries[countryIndex]}`;\n };\n}\n\nexport default AddressAnonymizer;\n","import { data, dataSet } from \"dcmjs\";\r\n\r\ntype returnarg = {\r\n value: string;\r\n tag: string;\r\n};\r\n\r\nclass DateTimeAnonymizer {\r\n private offset: number;\r\n\r\n constructor(dateOffsetHours: number) {\r\n this.offset = dateOffsetHours * 60 * 60 * 1000;\r\n }\r\n\r\n anonymize = async (dataset: dataSet, dataTag: string): Promise => {\r\n if (dataset[dataTag].vr != \"DA\" && dataset[dataTag].vr != \"DT\") {\r\n return false;\r\n }\r\n if (dataset[dataTag].Value[0] == undefined) {\r\n return true;\r\n }\r\n\r\n if (dataset[dataTag].vr == \"DA\") {\r\n await this.anonymizeDateAndTime(dataset, dataTag);\r\n } else {\r\n await this.anonymizeDatetime(dataset, dataTag);\r\n }\r\n\r\n return true;\r\n };\r\n\r\n anonymizeDateAndTime = (dataset: dataSet, dataTag: string): void => {\r\n const dates = dataset[dataTag].Value;\r\n const result: returnarg = this.checkTag(dataset, dataTag);\r\n\r\n const times: string = result.value;\r\n\r\n const newDates: string[] = [];\r\n const newTimes: string[] = [];\r\n\r\n for (const [date, time] of this.zipLongest(\"\", dates, times)) {\r\n const newDateTime = this.shiftDateTime(date + time);\r\n\r\n newDates.push(newDateTime.slice(0, 8));\r\n newTimes.push(newDateTime.slice(8));\r\n }\r\n\r\n dataset[dataTag].Value = newDates;\r\n if (result.tag != \"\") {\r\n try {\r\n dataset[result.tag].Value = newTimes;\r\n } catch {\r\n console.log();\r\n }\r\n }\r\n };\r\n\r\n anonymizeDatetime = (dataset: dataSet, dataTag: string): void => {\r\n const dateTimes = dataset[dataTag].Value;\r\n const newDateTimes: string[] = [];\r\n\r\n for (const dateTimeValue of dateTimes) {\r\n const newDateTimeString = this.shiftDateTime(dateTimeValue);\r\n newDateTimes.push(newDateTimeString);\r\n }\r\n dataset[dataTag].Value = newDateTimes;\r\n };\r\n\r\n shiftDateTime = (dateTimeValue: string): string => {\r\n const dateTimeFormat = \"%Y%m%d%H\".slice(0, dateTimeValue.length - 2);\r\n\r\n const oldDateTime = this.parseDateTime(dateTimeValue);\r\n const newDateTime = new Date(oldDateTime.getTime() + this.offset);\r\n let newDateTimeString = this.formatDate(newDateTime, dateTimeFormat);\r\n newDateTimeString += dateTimeValue.slice(newDateTimeString.length);\r\n\r\n return newDateTimeString;\r\n };\r\n\r\n parseDateTime = (dateTimeValue: string): Date => {\r\n // similar to pythons strptime() method\r\n const dateString = dateTimeValue;\r\n const year = Number(dateString.slice(0, 4));\r\n const month = Number(dateString.slice(4, 6)) - 1; // JavaScript months are zero-indexed (0 to 11)\r\n const day = Number(dateString.slice(6, 8));\r\n const hour = Number(dateString.slice(8, 10));\r\n const minute = Number(dateString.slice(10, 12));\r\n const second = Number(dateString.slice(12, 14));\r\n const milliseconds = Number(dateString.slice(15, dateString.length));\r\n\r\n return new Date(year, month, day, hour, minute, second, milliseconds);\r\n };\r\n\r\n formatDate = (date: Date, format: string): string => {\r\n const padZero = (value: number, length: number) => String(value).padStart(length, \"0\");\r\n\r\n const year = padZero(date.getFullYear(), 4);\r\n const month = padZero(date.getMonth() + 1, 2); // Months are zero-indexed, so add 1\r\n const day = padZero(date.getDate(), 2);\r\n const hours = padZero(date.getHours(), 2);\r\n const minutes = padZero(date.getMinutes(), 2);\r\n const seconds = padZero(date.getSeconds(), 2);\r\n const milliseconds = padZero(date.getMilliseconds(), 6);\r\n\r\n return format\r\n .replace(\"%Y\", year)\r\n .replace(\"%m\", month)\r\n .replace(\"%d\", day)\r\n .replace(\"%H\", hours)\r\n .replace(\"%M\", minutes)\r\n .replace(\"%S\", seconds)\r\n .replace(\"%s\", milliseconds);\r\n };\r\n\r\n zipLongest = (fillValue = \"\", ...arr: string[]): string[][] => {\r\n const maxLength = Math.max(...arr.map((arr: string) => arr.length));\r\n\r\n return Array.from({ length: maxLength }, (_, index) => {\r\n return arr.map((arr: string[number]) => (arr[index] !== undefined ? arr[index] : fillValue));\r\n });\r\n };\r\n\r\n checkTag = (dataset: dataSet, dataTag: string): returnarg => {\r\n const tagName =\r\n data.DicomMetaDictionary.dictionary[data.DicomMetaDictionary.punctuateTag(dataTag)].name;\r\n const timeName = tagName.replace(\"Date\", \"Time\");\r\n\r\n if (typeof data.DicomMetaDictionary.nameMap[timeName] !== \"undefined\") {\r\n let timeNameTag = data.DicomMetaDictionary.nameMap[timeName].tag;\r\n timeNameTag = data.DicomMetaDictionary.unpunctuateTag(timeNameTag);\r\n\r\n if (timeNameTag in dataset) {\r\n const timeElement = dataset[timeNameTag];\r\n const returnArg: returnarg = {\r\n value: timeElement.Value,\r\n tag: timeNameTag,\r\n };\r\n\r\n return returnArg;\r\n } else {\r\n const returnArg: returnarg = {\r\n value: \"\",\r\n tag: \"\",\r\n };\r\n return returnArg;\r\n }\r\n } else {\r\n const returnArg: returnarg = {\r\n value: \"\",\r\n tag: \"\",\r\n };\r\n return returnArg;\r\n }\r\n };\r\n}\r\n\r\nexport default DateTimeAnonymizer;\r\n","import { dataSet } from \"dcmjs\";\n\nclass FixedValueAnonymizer {\n private tag: string;\n private value: string;\n\n constructor(tag: string, value: string) {\n this.tag = tag;\n this.value = value;\n }\n\n anonymize = async (dataset: dataSet, dataTag: string): Promise => {\n if (dataTag == this.tag) {\n dataset[dataTag].Value[0] = this.value;\n\n return true;\n } else {\n return false;\n }\n };\n}\n\nexport default FixedValueAnonymizer;\n","import { data, dataSet } from \"dcmjs\";\nimport Randomizer from \"./randomizer\";\n\nclass IDAnonymizer {\n private keywords: string[];\n private randomizer: Randomizer;\n private idSuffix: string;\n private idPrefix: string;\n private issuerTag: string;\n private alphabet: string;\n private totalAffixesLength: number;\n private indicesForRandomizer: number[];\n\n constructor(Randomizer: Randomizer, keywords: string[], idPrefix = \"\", idSuffix = \"\") {\n this.keywords = keywords;\n this.randomizer = Randomizer;\n this.idPrefix = idPrefix;\n this.idSuffix = idSuffix;\n this.issuerTag = data.DicomMetaDictionary.nameMap[\"IssuerOfPatientID\"].tag;\n\n this.alphabet = \"ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789\";\n this.totalAffixesLength = this.idPrefix.length + this.idSuffix.length;\n this.indicesForRandomizer = new Array(12 - this.totalAffixesLength).fill(\n this.alphabet.length\n );\n }\n\n anonymize = async (dataset: dataSet, dataTag: string): Promise => {\n if (this.keywords.includes(dataTag)) {\n await this.replaceID(dataset, dataTag);\n return true;\n } else if (dataTag == this.issuerTag && dataset[dataTag].Value[0] != \"\") {\n dataset[dataTag].Value[0] = \"DICOM_ANONYMIZER\";\n return true;\n } else {\n return false;\n }\n };\n\n replaceID = async (dataset: dataSet, dataTag: string) => {\n if (dataset[dataTag].Value.length > 1) {\n for (let i = 0; i < dataset[dataTag].Value.length; i++) {\n dataset[dataTag].Value[i] = await this.newID(dataset[dataTag].Value[i]);\n }\n } else if (dataset[dataTag].Value.length == 1) {\n const originalValue = dataset[dataTag].Value[0];\n dataset[dataTag].Value[0] = await this.newID(originalValue);\n } else {\n dataset[dataTag].Value[0] = await this.newID(\"\");\n }\n };\n\n newID = async (originalValue: string) => {\n const indexes = await this.randomizer.getIntsFromRanges(\n originalValue,\n ...this.indicesForRandomizer\n );\n const idRoot: string = indexes.map((i) => this.alphabet[i]).join(\"\");\n\n return this.idPrefix + idRoot + this.idSuffix;\n };\n}\n\nexport default IDAnonymizer;\n","import { data, dataSet } from \"dcmjs\";\nimport AddressAnonymizer from \"./addressanonymizer\";\n\nclass InstitutionAnonymizer {\n private addressAnonymizer: AddressAnonymizer;\n\n institutionName: string = data.DicomMetaDictionary.nameMap[\"InstitutionName\"].tag; //0008,0080\n institutionAddress: string = data.DicomMetaDictionary.nameMap[\"InstitutionAddress\"].tag; //0008,0081\n institutionalDepartmentName: string =\n data.DicomMetaDictionary.nameMap[\"InstitutionalDepartmentName\"].tag; //0008,1040\n valueFactories; //: { [key: string]: (originalValue: string) => string };\n\n constructor(AddressAnonymizer: AddressAnonymizer) {\n this.addressAnonymizer = AddressAnonymizer;\n\n this.institutionName = data.DicomMetaDictionary.unpunctuateTag(this.institutionName);\n this.institutionAddress = data.DicomMetaDictionary.unpunctuateTag(this.institutionAddress);\n this.institutionalDepartmentName = data.DicomMetaDictionary.unpunctuateTag(\n this.institutionalDepartmentName\n );\n\n this.valueFactories = {\n [this.institutionName]: this.anonymizeInstitutionName,\n [this.institutionAddress]: this.anonymizeInstitutionAddress,\n [this.institutionalDepartmentName]: this.anonymizeDepartmentName,\n };\n }\n\n anonymize = async (dataset: dataSet, dataTag: string): Promise => {\n const valueFactory: (originalValue: string) => Promise = await this.valueFactories[\n dataTag\n ];\n if (valueFactory == undefined) {\n return false;\n }\n\n if (dataset[dataTag].Value.length > 1) {\n for (let i = 0; i < dataset[dataTag].Value.length; i++) {\n dataset[dataTag].Value[i] = await valueFactory(dataset[dataTag].Value[i]);\n }\n return true;\n } else if (dataset[dataTag].Value.length == 1) {\n const originalValue: string = dataset[dataTag].Value[0];\n dataset[dataTag].Value[0] = await valueFactory(originalValue);\n return true;\n } else {\n dataset[dataTag].Value[0] = await valueFactory(\"\");\n return true;\n }\n };\n\n anonymizeInstitutionName = async (originalValue: string): Promise => {\n const region = await this.addressAnonymizer.getRegion(originalValue);\n const streetAddress = await this.addressAnonymizer.getStreetAddress(originalValue);\n const returnString = `${region}'S ${streetAddress} CLINIC`;\n\n return returnString;\n };\n\n anonymizeInstitutionAddress = async (originalValue: string): Promise => {\n const fullAddress = await this.addressAnonymizer.getLegalAddress(originalValue);\n const country = await this.addressAnonymizer.getCountry(originalValue);\n\n const returnString = `${fullAddress}, ${country}`;\n\n return returnString;\n };\n\n anonymizeDepartmentName = (): Promise => {\n return Promise.resolve(\"RADIOLOGY\");\n };\n}\n\nexport default InstitutionAnonymizer;\n","import { dataSet } from \"dcmjs\";\r\nimport { lists } from \"./lists\";\r\nimport Randomizer from \"./randomizer\";\r\n\r\nclass PNAnonymizer {\r\n private randomizer: Randomizer;\r\n lists: lists;\r\n\r\n constructor(randomizer: Randomizer) {\r\n this.randomizer = randomizer;\r\n this.lists = new lists();\r\n }\r\n\r\n anonymize = async (dataset: dataSet, dataTag: string): Promise => {\r\n if (dataset[dataTag].vr != \"PN\") {\r\n return false;\r\n }\r\n\r\n let patientSex = \"\";\r\n if (\"00100040\" in dataset) {\r\n patientSex = dataset[\"00100040\"].Value[0]; //PatientSex\r\n }\r\n\r\n if (dataset[dataTag].Value.length > 1) {\r\n for (let i = 0; i < dataset[dataTag].Value.length; i++) {\r\n dataset[dataTag].Value[i].Alphabetic = await this.newPN(\r\n dataset[dataTag].Value[i].Alphabetic,\r\n patientSex\r\n );\r\n }\r\n } else if (dataset[dataTag].Value.length == 1) {\r\n const originalName = dataset[dataTag].Value[0].Alphabetic;\r\n\r\n dataset[dataTag].Value[0].Alphabetic = await this.newPN(originalName, patientSex);\r\n } else {\r\n dataset[dataTag].Value[0].Alphabetic = await this.newPN(\"\", patientSex);\r\n }\r\n\r\n return true;\r\n };\r\n\r\n async newPN(originalValue: string, sex = \"\") {\r\n let firstNames: string[];\r\n if (sex == \"F\") {\r\n firstNames = this.lists.femaleFirstNames;\r\n } else if (sex == \"M\") {\r\n firstNames = this.lists.maleFirstNames;\r\n } else {\r\n firstNames = this.lists.allFirstNames;\r\n }\r\n const lastNames = this.lists.lastNames;\r\n if (originalValue != undefined) {\r\n originalValue = originalValue.replaceAll(\"^\", \"\");\r\n }\r\n\r\n const indices = await this.randomizer.getIntsFromRanges(\r\n originalValue,\r\n this.lists.lastNames.length,\r\n firstNames.length,\r\n this.lists.allFirstNames.length\r\n );\r\n\r\n return `${lastNames[indices[0]]}^${firstNames[indices[1]]}^${\r\n this.lists.allFirstNames[indices[2]]\r\n }`;\r\n }\r\n}\r\n\r\nexport default PNAnonymizer;\r\n","import { data, dataSet } from \"dcmjs\";\n\nclass PrivatTagAnonymizer {\n anonymize = (dataset: dataSet, dataTag: string): boolean => {\n const currTag = data.Tag.fromString(dataTag);\n if (currTag.group() % 2 === 1) {\n delete dataset[dataTag];\n return true;\n } else {\n return false;\n }\n };\n}\n\nexport default PrivatTagAnonymizer;\n","// import { getRandomValues } from \"crypto\";\n// import crypto from \"crypto\";\n\nclass Randomizer {\n private seed: string;\n\n constructor(seed?: string) {\n if (seed == undefined) {\n this.seed = this.generateRandomSeed();\n } else {\n this.seed = seed;\n }\n }\n\n // For Node work\n // private calculateMD5Digest(data: Uint8Array): Uint8Array {\n // const hash = crypto.createHash(\"md5\");\n // hash.update(data);\n // return hash.digest();\n // }\n\n private async calculateSHADigestWeb(array: Uint8Array): Promise {\n // if (typeof window !== \"undefined\") {\n const hashBuffer = await window.crypto.subtle.digest(\"SHA-1\", array);\n return new Promise((resolve) => {\n resolve(new Uint8Array(hashBuffer));\n });\n // }\n // else {\n // const hash = crypto.createHash(\"sha256\");\n // hash.update(array);\n // const arr = new Uint8Array(hash.digest());\n // return new Promise((resolve) => {\n // resolve(arr);\n // });\n // }\n }\n\n private calculateResult(hash: Uint8Array): bigint {\n let result = 0;\n for (const byte of hash) {\n result *= 0x100;\n result += byte;\n }\n return BigInt(result);\n }\n\n private generateRandomSeed(): string {\n const randomValues = new Uint8Array(20);\n\n // if (typeof window !== \"undefined\") {\n window.crypto.getRandomValues(randomValues); //-> use in browser env\n // } else {\n // getRandomValues(randomValues);\n // }\n\n const seed = Array.from(randomValues, (byte) => byte.toString(16).padStart(2, \"0\")).join(\"\");\n\n return seed;\n }\n\n // public toInt(originalValue: string, callback: (result: bigint) => void): void {\n // const message = this.seed + String(originalValue);\n // const encoder = new TextEncoder();\n // const encoded = encoder.encode(message);\n\n // if (typeof window !== \"undefined\") {\n // this.calculateSHADigestWeb(encoded).then((hashBuffer) => {\n // const hashed = hashBuffer;\n // const result = this.calculateResult(hashed);\n // callback(result);\n // });\n // } else {\n // // const hashed = this.calculateMD5Digest(encoded);\n // // const result = this.calculateResult(hashed);\n // // callback(result);\n // }\n // }\n public async toInt(originalValue: string): Promise {\n const message = this.seed + String(originalValue);\n const encoder = new TextEncoder();\n const encoded = encoder.encode(message);\n const hashed = await this.calculateSHADigestWeb(encoded);\n const result = this.calculateResult(hashed);\n\n return result;\n }\n public async getIntsFromRanges(originalValue: string, ...suprema: number[]): Promise {\n let result: bigint | number[] = [];\n let bigNumber = await this.toInt(originalValue);\n const arr: number[] = [];\n for (const x of suprema) {\n const s = BigInt(x);\n arr.push(Number(bigNumber % s));\n bigNumber = bigNumber / s;\n }\n\n result = arr;\n\n return result;\n }\n}\n\nexport default Randomizer;\n","import { data, dataSet } from \"dcmjs\";\nimport Randomizer from \"./randomizer\";\n\nclass UIAnonymizer {\n private randomizer: Randomizer;\n\n constructor(Randomizer: Randomizer) {\n this.randomizer = Randomizer;\n }\n\n anonymize = async (dataset: dataSet, dataTag: string): Promise => {\n const tag = data.DicomMetaDictionary.punctuateTag(dataTag);\n\n if (\n dataset[dataTag].vr != \"UI\" ||\n dataset[dataTag].Value[0] == undefined ||\n data.DicomMetaDictionary.dictionary[tag].name.endsWith(\"ClassUID\") ||\n data.DicomMetaDictionary.dictionary[tag].name == \"TransferSyntaxUID\"\n ) {\n return false;\n } else {\n if (dataset[dataTag].Value.length > 1) {\n for (let i = 0; i < dataset[dataTag].Value.length; i++) {\n dataset[dataTag].Value[i] = await this.newUI(dataset[dataTag].Value[i]);\n }\n } else if (dataset[dataTag].Value.length == 1) {\n const originalUI = dataset[dataTag].Value[0];\n dataset[dataTag].Value[0] = await this.newUI(originalUI);\n } else {\n dataset[dataTag].Value[0] = await this.newUI(\"\");\n }\n\n return true;\n }\n };\n\n async newUI(origUI: string) {\n const result = await this.randomizer.toInt(origUI);\n const number4String = BigInt(result);\n return `2.${BigInt(10 ** 39) + number4String}`;\n }\n}\n\nexport default UIAnonymizer;\n","import { dataSet } from \"dcmjs\";\n\nclass UnwantedElementStripper {\n private tags: string[];\n\n constructor(keywords: string[]) {\n this.tags = keywords;\n }\n\n anonymize = (dataset: dataSet, dataTag: string): boolean => {\n if (this.tags.includes(dataTag)) {\n delete dataset[dataTag];\n return true;\n } else {\n return false;\n }\n };\n}\n\nexport default UnwantedElementStripper;\n","import { dataSet, data } from \"dcmjs\";\n\nclass TagError extends Error {\n constructor(tag: string) {\n const message = `Bad tag name '${tag}'. Must be a well-known DICOM element name or a string in the form 'stuv,wxyz' where each character is a hexadecimal digit.`;\n super(message);\n\n // Set the prototype explicitly to ensure correct inheritance\n Object.setPrototypeOf(this, TagError.prototype);\n }\n}\n\nclass ValueKeeper {\n private protectedTags: string[] = [];\n\n constructor(keywords: string[] = []) {\n for (const tag of keywords) {\n let pattern = /^\\(?([0-9A-F]{4}),?([0-9A-F]{4})\\)?$/;\n let match = tag.match(pattern);\n if (match) {\n this.protectedTags.push(match[1] + match[2]);\n } else {\n pattern = /^[a-zA-Z]+$/;\n\n try {\n match = tag.match(pattern)!;\n const tempTag = data.DicomMetaDictionary.nameMap[match[0]];\n if (!tempTag) {\n throw new TagError(\"invalidTag\");\n } else {\n this.protectedTags.push(tempTag.tag);\n }\n } catch (error) {\n if (error instanceof TagError) {\n console.error(error.message);\n } else {\n // Handle other types of errors\n console.error(\"An unexpected error occurred:\", error);\n }\n }\n }\n }\n }\n\n keep = (_: dataSet, dataTag: string): boolean => {\n if (this.protectedTags.includes(dataTag)) {\n return true;\n } else {\n return false;\n }\n };\n}\n\nexport default ValueKeeper;\n","import { data, dataSet } from \"dcmjs\";\r\nimport AddressAnonymizer from \"./addressanonymizer\";\r\nimport DateTimeAnonymizer from \"./datetimeanonymizer\";\r\nimport FixedValueAnonymizer from \"./fixedvalueanonymizer\";\r\nimport IDAnonymizer from \"./idanonymizer\";\r\nimport InstitutionAnonymizer from \"./institutionanonymizer\";\r\nimport PNAnonymizer from \"./pnanonymizer\";\r\nimport PrivatTagAnonymizer from \"./privatetaganonymizer\";\r\nimport Randomizer from \"./randomizer\";\r\nimport UIAnonymizer from \"./uianonymizer\";\r\nimport UnwantedElementStripper from \"./unwantedelements\";\r\nimport ValueKeeper from \"./valuekeeper\";\r\n\r\ntype ElementHandler = (dataset: dataSet, tag: string) => boolean | Promise;\r\n\r\ninterface AnonymizerOptions {\r\n protectedTags?: string[];\r\n anonymizePrivateTags?: boolean;\r\n idPrefix?: string;\r\n idSuffix?: string;\r\n seed?: string;\r\n}\r\n\r\nconst defaultOptions: AnonymizerOptions = {\r\n protectedTags: [],\r\n anonymizePrivateTags: true,\r\n idPrefix: undefined,\r\n idSuffix: undefined,\r\n seed: undefined,\r\n};\r\n\r\nexport default class Anonymizer {\r\n /**\r\n The main class responsible for anonymizing dcmjs datasets.\r\n New instances will anonymize instances differently, so when\r\n anonymizing instances from the same series, study, or patient,\r\n reuse an Anonymizer.\r\n \r\n */\r\n\r\n private dateOffsetHours = 0;\r\n randomizer: Randomizer;\r\n addressAnonymizer: AddressAnonymizer;\r\n elementHandlers: ElementHandler[];\r\n private _options: AnonymizerOptions;\r\n constructor(options?: AnonymizerOptions) {\r\n this._options = Object.assign(defaultOptions, options ?? {});\r\n\r\n this.randomizer = new Randomizer(this._options.seed);\r\n this.setOffset();\r\n\r\n this.addressAnonymizer = new AddressAnonymizer(this.randomizer);\r\n this.elementHandlers = [\r\n new UnwantedElementStripper([\r\n \"00101081\", //\"BranchOfService\",\r\n \"00102180\", //\"Occupation\",\r\n \"00101090\", //\"MedicalRecordLocator\",\r\n \"00101080\", //\"MilitaryRank\",\r\n \"00100050\", //\"PatientInsurancePlanCodeSequence\",\r\n \"00102201\", //\"PatientReligiousPreference\",\r\n \"00102155\", //\"PatientTelecomInformation\",\r\n \"00102154\", //\"PatientTelephoneNumbers\",\r\n \"00101100\", //\"ReferencedPatientPhotoSequence\",\r\n \"00102299\", //\"ResponsibleOrganization\"\r\n ]).anonymize,\r\n new UIAnonymizer(this.randomizer).anonymize,\r\n new PNAnonymizer(this.randomizer).anonymize,\r\n new IDAnonymizer(\r\n this.randomizer,\r\n [\r\n \"00080050\", //\"AccessionNumber\",\r\n \"00101000\", //\"OtherPatientIDs\",\r\n \"00402017\", //\"FillerOrderNumberImagingServiceRequest\",\r\n //\"FillerOrderNumberImagingServiceRequestRetired\", Retired\r\n //\"FillerOrderNumberProcedure\", Retired\r\n \"00100020\", //\"PatientID\",\r\n \"00400253\", //\"PerformedProcedureStepID\",\r\n \"00402016\", //\"PlacerOrderNumberImagingServiceRequest\",\r\n //\"PlacerOrderNumberImagingServiceRequestRetired\",Retired\r\n // \"PlacerOrderNumberProcedure\", Retired\r\n \"00401001\", //\"RequestedProcedureID\",\r\n \"00400009\", //\"ScheduledProcedureStepID\",\r\n \"00081010\", //\"StationName\",\r\n \"00200010\", //\"StudyID\"\r\n ],\r\n this._options.idPrefix,\r\n this._options.idSuffix\r\n ).anonymize,\r\n this.addressAnonymizer.anonymize,\r\n new InstitutionAnonymizer(this.addressAnonymizer).anonymize,\r\n new FixedValueAnonymizer(\"00321033\", \"\").anonymize, // RequestingService\r\n new FixedValueAnonymizer(\"00380300\", \"\").anonymize, // CurrentPatientLocation\r\n ];\r\n if (this._options.protectedTags) {\r\n this.elementHandlers.unshift(new ValueKeeper(this._options.protectedTags).keep);\r\n }\r\n\r\n if (this._options.anonymizePrivateTags) {\r\n this.elementHandlers.push(new PrivatTagAnonymizer().anonymize);\r\n }\r\n }\r\n async setOffset() {\r\n const res = await this.randomizer.toInt(\"dateOffset\");\r\n const minimumOffsetHours: number = 62 * 24;\r\n const maximumOffsetHours: number = 730 * 24;\r\n\r\n this.dateOffsetHours = Number(\r\n -(\r\n (res % (BigInt(maximumOffsetHours) - BigInt(minimumOffsetHours))) +\r\n BigInt(minimumOffsetHours)\r\n )\r\n );\r\n\r\n this.elementHandlers.push(new DateTimeAnonymizer(this.dateOffsetHours).anonymize);\r\n }\r\n\r\n async anonymize(dcmDict: data.DicomDict) {\r\n await this.walk(dcmDict.meta, this.elementHandlers);\r\n await this.walk(dcmDict.dict, this.elementHandlers);\r\n }\r\n\r\n async walk(dataset: dataSet, handler: ElementHandler[]) {\r\n const tagList = Object.keys(dataset);\r\n\r\n for (const tag of tagList) {\r\n const element = dataset[tag];\r\n await this.anonymizeElement(dataset, tag, handler);\r\n\r\n // If the element is a sequence, recursively walk through its items\r\n if (tag in dataset && element.vr == \"SQ\") {\r\n for (let i = 0; i < element.Value.length; i++) {\r\n const sequence = element.Value;\r\n for (const item of sequence) {\r\n await this.walk(item, handler);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n async anonymizeElement(dataset: dataSet, tag: string, handler: ElementHandler[]) {\r\n // Perform operations on the element\r\n\r\n for (const callback of handler) {\r\n const result = await callback(dataset, tag);\r\n\r\n if (result) {\r\n return;\r\n }\r\n }\r\n }\r\n}\r\n"],"names":["lists","AddressAnonymizer","Randomizer","data","dataset","dataTag","valueFactory","i","originalValue","street","streetNumber","city","streetNumberIndex","streetIndex","cityIndex","countryIndex","DateTimeAnonymizer","dateOffsetHours","dates","result","times","newDates","newTimes","date","time","newDateTime","dateTimes","newDateTimes","dateTimeValue","newDateTimeString","dateTimeFormat","oldDateTime","dateString","year","month","day","hour","minute","second","milliseconds","format","padZero","value","length","hours","minutes","seconds","fillValue","arr","maxLength","_","index","timeName","timeNameTag","FixedValueAnonymizer","tag","IDAnonymizer","keywords","idPrefix","idSuffix","idRoot","InstitutionAnonymizer","region","streetAddress","fullAddress","country","PNAnonymizer","randomizer","patientSex","originalName","sex","firstNames","lastNames","indices","PrivatTagAnonymizer","seed","array","hashBuffer","resolve","hash","byte","randomValues","message","encoded","hashed","suprema","bigNumber","x","s","UIAnonymizer","originalUI","origUI","number4String","UnwantedElementStripper","TagError","ValueKeeper","pattern","match","tempTag","error","defaultOptions","Anonymizer","options","res","minimumOffsetHours","maximumOffsetHours","dcmDict","handler","tagList","element","sequence","item","callback"],"mappings":"6PAAO,MAAMA,CAAM,CASjB,aAAc,CACZ,KAAK,iBAAmB,CACtB,OACA,WACA,QACA,UACA,YACA,WACA,QACA,QACA,WACA,UACA,OACA,QACA,QACA,QACA,QACA,SACA,QACA,QACA,OACA,SACA,WACA,QACA,QACA,WACA,UACA,UACA,UACA,UACA,SACA,UACA,SACA,MACA,OACA,UACA,WACA,WACA,SACA,SACA,QACA,SACA,YACA,UACA,YACA,QACA,QACA,YACA,UACA,MACA,QACA,QACA,QACA,QACA,UACA,SACA,QACA,SACA,SACA,OACA,SACA,UACA,YACA,OACA,SACA,SACA,OACA,SACA,QACA,SACA,OACA,YACA,QACA,UACA,UACA,SACA,QACA,QACA,OACA,OACA,SACA,UACA,SACA,UACA,SACA,OACA,OACA,aACA,QACA,SACA,QACA,OACA,OACA,OACA,UACA,QACA,QACA,QACA,QACA,UACA,QACA,QACA,QACA,UACA,SACA,OACA,OACA,SACA,WACA,QACA,OACA,UACA,SACA,OACA,QACA,QACA,QACA,WACA,QACA,MACA,SACA,SACA,YACA,SACA,UACA,SACA,QACA,QACA,SACA,WACA,SACA,YACA,SACA,SACA,UACA,OACA,UACA,QACA,SACA,QACA,QACA,MACA,SACA,QACA,SACA,QACA,UACA,QACA,SACA,UACA,UACA,WACA,QACA,SACA,UACA,UACA,OACA,SACA,UACA,WACA,OACA,OACA,YACA,SACA,QACA,QACA,WACA,OACA,QACA,SACA,QACA,WACA,UACA,UACA,SACA,SACA,UACA,OACA,WACA,SACA,OACA,QACA,MACA,QACA,MACA,SACA,UACA,QACA,WACA,UACA,UACA,UACA,WACA,SACA,QACA,UACA,UACA,OACA,MACA,QACA,OACA,SACA,QACA,QACA,OACA,WACA,SACA,QACA,WACA,OACA,QACA,OACA,SACA,QACA,OACA,UACA,SACA,UACA,QACA,OACA,SACA,WACA,SACA,UACA,UACA,QACA,SACA,UACA,UACA,UACA,SACA,MACA,UACA,YACA,SACA,UACA,SACA,SACA,QACA,SACA,SACA,UACA,QACA,SACA,QACA,QACA,WACA,SACA,SACA,WACA,OACA,KACA,SACA,SACA,QACA,SACA,OACA,QACA,SACA,SACA,OACA,UACA,SACA,QACA,QACA,YACA,SACA,OACA,SACA,OACA,YACA,OACA,QACA,MACA,YACA,QACA,SACA,SACA,OACA,SACA,SACA,SACA,QACA,QACA,UACA,QACA,SACA,QACA,QACA,SACA,SACA,WACA,OACA,QACA,MACA,SACA,QACA,SACA,SACA,QACA,UACA,SACA,UACA,UACA,SACA,YACA,UACA,YACA,SACA,OACA,OACA,MACA,UACA,UACA,SACA,aACA,SACA,UACA,QACA,UACA,SACA,SACA,UACA,QACA,QACA,SACA,OACA,SACA,QACA,OACA,QACA,WACA,SACA,UACA,YACA,UACA,OACA,QACA,SACA,QACA,QACA,MACA,MACA,WACA,UACA,SACA,UACA,OACA,SACA,SACA,SACA,MACA,QACA,SACA,QACA,UACA,SACA,QACA,OACA,OACA,QACA,SACA,aACA,UACA,QACA,YACA,MACA,QACA,SACA,UACA,UACA,QACA,QACA,SACA,QACA,SACA,QACA,QACA,QACA,QACA,QACA,WACA,OACA,YACA,OACA,SACA,OACA,UACA,MACA,SACA,UACA,WACA,UACA,QACA,UACA,WACA,UACA,YACA,SACA,UACA,QACA,aACA,QACA,OACA,SACA,UACA,UACA,UACA,UACA,QACA,YACA,SACA,WACA,QACA,UACA,WACA,SACA,OACA,UACA,SACA,WACA,OACA,OACA,SACA,YACA,QACA,UACA,UACA,OACA,SACA,QACA,QACA,WACA,QACA,WACA,WACA,UACA,OACA,WACA,OACA,QACA,SACA,SACA,SACA,WACA,WACA,UACA,SACA,YACA,SACA,OACA,SACA,OACA,QACA,QACA,SACA,UACA,QACA,SACA,QACA,SACA,SACA,QACA,QACA,SACA,OACA,QACA,SACA,SACA,QACA,OACA,OACA,QACA,MACA,QACA,QACA,QACA,SACA,OACA,WACA,UACA,UACA,QACA,QACA,QACA,QACA,OACA,UACA,QACA,UACA,OACA,SACA,QACA,QACA,QACA,MACA,SACA,UACA,QACA,QACA,WACA,UACA,SACA,SACA,QACA,OACA,QACA,QACA,SACA,UACA,SACA,UACA,QACA,UACA,QACA,WACA,UACA,SACA,UACA,QACA,SACA,UACA,UACA,QACA,OACA,QACA,UACA,UACA,SACA,QACA,QACA,QACA,OACA,QACA,SACA,SACA,SACA,OACA,SACA,QACA,SACA,QACA,UACA,YACA,QACA,SACA,UACA,QACA,WACA,UACA,UACA,SACA,SACA,OACA,OACA,UACA,SACA,MACA,SACA,YACA,OACA,UACA,SACA,MACA,UACA,UACA,SACA,SACA,QACA,UACA,UACA,UACA,OACA,QACA,UACA,UACA,QACA,SACA,WACA,SACA,UACA,SACA,SACA,QACA,OACA,SACA,MACA,UACA,WACA,OACA,QACA,YACA,UACA,YACA,SACA,SACA,WACA,OACA,WACA,UACA,MACA,SACA,SACA,OACA,QACA,MACA,UACA,UACA,QACA,SACA,QACA,SACA,WACA,SACA,UACA,QACA,OACA,WACA,QACA,SACA,OACA,QACA,QACA,WACA,UACA,SACA,SACA,QACA,SACA,WACA,OACA,SACA,SACA,UACA,QACA,UACA,QACA,QACA,SACA,SACA,SACA,UACA,SACA,WACA,UACA,QACA,UACA,UACA,UACA,UACA,SACA,WACA,SACA,OACA,SACA,SACA,SACA,YACA,WACA,UACA,YACA,SACA,YACA,SACA,QACA,QACA,MACA,UACA,SACA,UACA,OACA,SACA,UACA,YACA,UACA,OACA,UACA,QACA,QACA,SACA,QACA,UACA,SACA,SACA,WACA,QACA,SACA,QACA,UACA,QACA,UACA,OACA,QACA,QACA,QACA,OACA,OACA,OACA,MACA,MACA,SACA,QACA,QACA,OACA,YACA,SACA,SACA,QACA,UACA,QACA,WACA,SACA,SACA,SACA,QACA,SACA,UACA,SACA,WACA,QACA,QACA,YACA,QACA,QACA,QACA,OACA,YACA,UACA,MACA,QACA,SACA,QACA,UACA,QACA,SACA,QACA,SACA,SACA,UACA,UACA,UACA,UACA,WACA,MACA,MACA,WACA,QACA,UACA,aACA,aACA,MACA,UACA,MACA,OACA,SACA,OACA,SACA,UACA,SACA,OACA,UACA,SACA,UACA,SACA,OACA,QACA,QACA,SACA,SACA,SACA,WACA,UACA,WACA,WACA,SACA,SACA,UACA,SACA,QACA,SACA,YACA,SACA,MACA,UACA,QACA,UACA,SACA,SACA,UACA,UACA,OACA,SACA,YACA,SACA,QACA,QACA,MACA,QACA,YACA,SACA,UACA,SACA,QACA,QACA,aACA,WACA,SACA,QACA,SACA,OACA,YACA,SACA,UACA,UACA,UACA,OACA,SACA,UACA,OACA,WACA,OACA,UACA,SACA,WACA,UACA,QACA,SACA,QACA,SACA,WACA,UACA,YACA,UACA,QACA,OACA,QACA,UACA,SACA,OACA,QACA,QACA,WACA,OACA,SACA,SACA,UACA,QACA,QACA,QACA,WACA,aACA,UACA,QACA,UACA,UACA,QACA,QACA,SACA,QACA,UACA,UACA,OACA,QACA,OACA,YACA,WACA,OACA,SACA,UACA,WACA,UACA,OACA,SACA,UACA,SACA,QACA,QACA,QACA,QACA,UACA,OACA,SACA,UACA,UACA,UACA,QACA,QACA,QACA,QACA,SACA,WACA,QACA,SACA,SACA,QACA,UACA,QACA,WACA,QACA,UACA,SACA,UACA,UACA,QACA,YACA,SACA,SACA,WACA,YACA,QACA,UACA,UACA,WACA,SACA,UACA,SACA,QACA,SACA,SACA,QACA,QACA,QACA,QACA,SACA,QACA,QACA,MACA,aACA,UACA,SACA,OACA,OACA,UACA,OACA,SACA,UACA,SACA,YACA,OACA,SACA,UACA,QACA,WACA,WACA,WACA,SACA,SACA,WACA,SACA,QACA,SACA,YACA,WACA,QACA,UACA,YACA,MACA,QACA,QACA,QACA,SACA,OACA,WACA,SACA,QACA,SACA,YACA,YACA,UACA,UACA,SACA,UACA,SACA,QACA,QACA,QACA,SACA,OACA,WACA,SACA,OACA,WACA,SACA,QACA,QACA,OACA,SACA,UACA,QACA,QACA,UACA,UACA,OACA,UACA,WACA,OACA,WACA,SACA,WACA,WACA,QACA,QAAA,EAEF,KAAK,eAAiB,CACpB,QACA,OACA,SACA,UACA,UACA,QACA,UACA,UACA,SACA,SACA,cACA,SACA,OACA,OACA,SACA,SACA,UACA,SACA,SACA,QACA,SACA,UACA,QACA,QACA,UACA,OACA,UACA,OACA,QACA,UACA,QACA,QACA,OACA,UACA,SACA,UACA,UACA,SACA,QACA,SACA,SACA,UACA,QACA,SACA,UACA,QACA,OACA,SACA,OACA,QACA,MACA,OACA,OACA,SACA,WACA,SACA,QACA,SACA,QACA,SACA,SACA,QACA,WACA,WACA,MACA,WACA,QACA,UACA,OACA,QACA,OACA,QACA,QACA,QACA,QACA,SACA,QACA,QACA,SACA,SACA,SACA,UACA,QACA,SACA,SACA,SACA,UACA,OACA,QACA,QACA,OACA,QACA,WACA,OACA,SACA,QACA,SACA,OACA,QACA,UACA,QACA,QACA,OACA,OACA,OACA,UACA,UACA,SACA,OACA,SACA,SACA,SACA,SACA,QACA,SACA,UACA,QACA,UACA,SACA,OACA,OACA,QACA,MACA,SACA,SACA,OACA,UACA,UACA,QACA,UACA,YACA,MACA,OACA,QACA,MACA,QACA,QACA,OACA,UACA,QACA,YACA,UACA,QACA,QACA,YACA,SACA,UACA,WACA,WACA,SACA,QACA,MACA,MACA,MACA,SACA,OACA,MACA,SACA,OACA,QACA,QACA,OACA,QACA,SACA,UACA,SACA,QACA,MACA,QACA,MACA,SACA,SACA,OACA,OACA,QACA,SACA,QACA,UACA,MACA,QACA,UACA,QACA,SACA,UACA,SACA,UACA,QACA,OACA,SACA,QACA,UACA,MACA,OACA,SACA,QACA,QACA,UACA,QACA,UACA,OACA,OACA,WACA,QACA,QACA,QACA,YACA,SACA,SACA,QACA,SACA,OACA,MACA,UACA,QACA,QACA,WACA,QACA,QACA,OACA,UACA,MACA,WACA,SACA,SACA,SACA,QACA,SACA,OACA,OACA,SACA,OACA,SACA,QACA,OACA,SACA,YACA,SACA,WACA,UACA,MACA,SACA,SACA,SACA,SACA,QACA,OACA,QACA,QACA,OACA,QACA,SACA,MACA,UACA,OACA,MACA,SACA,SACA,UACA,QACA,SACA,UACA,SACA,MACA,UACA,MACA,MACA,QACA,QACA,UACA,UACA,OACA,OACA,UACA,SACA,QACA,SACA,QACA,SACA,UACA,UACA,QACA,OACA,SACA,OACA,WACA,WACA,QACA,OACA,SACA,SACA,QACA,OACA,OACA,WACA,OACA,UACA,WACA,UACA,UACA,OACA,SACA,SACA,WACA,SACA,YACA,SACA,OACA,OACA,SACA,UACA,WACA,OACA,SACA,OACA,SACA,OACA,UACA,SACA,SACA,OACA,QACA,SACA,OACA,QACA,SACA,SACA,QACA,OACA,OACA,OACA,UACA,UACA,MACA,UACA,UACA,UACA,OACA,QACA,UACA,OACA,SACA,QACA,QACA,SACA,WACA,QACA,UACA,SACA,SACA,OACA,MACA,SACA,QACA,YACA,UACA,UACA,QACA,SACA,OACA,UACA,QACA,SACA,QACA,KACA,OACA,WACA,QACA,WACA,WACA,SACA,SACA,UACA,KACA,UACA,QACA,QACA,UACA,QACA,YACA,UACA,QACA,QACA,OACA,UACA,UACA,QACA,SACA,UACA,YACA,SACA,SACA,QACA,UACA,SACA,QACA,YACA,MACA,YACA,SACA,WACA,UACA,UACA,SACA,QACA,YACA,QACA,SACA,UACA,SACA,OACA,QACA,UACA,QACA,aACA,OACA,OACA,SACA,UACA,OACA,SACA,QACA,SACA,QACA,SACA,WACA,QACA,UACA,WACA,SACA,UACA,OACA,OACA,QACA,QACA,KACA,UACA,OACA,OACA,UACA,QACA,QACA,UACA,QACA,UACA,UACA,QACA,SACA,UACA,UACA,WACA,SACA,QACA,OACA,SACA,SACA,SACA,MACA,OACA,QACA,OACA,YACA,QACA,UACA,OACA,QACA,SACA,WACA,QACA,QACA,OACA,UACA,QACA,QACA,OACA,QACA,UACA,SACA,SACA,QACA,SACA,UACA,UACA,OACA,MACA,OACA,WACA,OACA,WACA,MACA,SACA,SACA,OACA,UACA,SACA,SACA,SACA,SACA,UACA,SACA,SACA,OACA,UACA,OACA,OACA,QACA,WACA,OACA,SACA,OACA,QACA,WACA,WACA,UACA,QACA,UACA,SACA,QACA,UACA,QACA,QACA,SACA,SACA,QACA,QACA,SACA,SACA,YACA,QACA,QACA,QACA,SACA,SACA,SACA,MACA,QACA,UACA,SACA,UACA,QACA,WACA,SACA,QACA,SACA,QACA,YACA,QACA,QACA,SACA,SACA,OACA,SACA,WACA,SACA,SACA,QACA,SACA,OACA,QACA,SACA,QACA,OACA,UACA,UACA,SACA,QACA,QACA,SACA,WACA,QACA,SACA,QACA,UACA,WACA,OACA,SACA,QACA,QACA,SACA,UACA,SACA,UACA,SACA,SACA,SACA,WACA,QACA,SACA,SACA,SACA,UACA,QACA,UACA,SACA,UACA,QACA,WACA,QACA,QACA,MACA,UACA,MACA,QACA,MACA,SACA,WACA,SACA,SACA,MACA,SACA,QACA,WACA,QACA,SACA,MACA,UACA,UACA,QACA,SACA,SACA,SACA,OACA,SACA,UACA,MACA,SACA,QACA,SACA,QACA,OACA,SACA,SACA,QACA,SACA,OACA,SACA,SACA,MACA,QACA,OACA,QACA,SACA,SACA,SACA,UACA,QACA,UACA,SACA,UACA,QACA,SACA,SACA,QACA,YACA,WACA,KACA,SACA,SACA,MACA,OACA,SACA,OACA,YACA,QACA,WACA,WACA,QACA,UACA,QACA,QACA,QACA,WACA,UACA,OACA,QACA,SACA,OACA,YACA,WACA,UACA,YACA,UACA,OACA,QACA,QACA,QACA,QACA,OACA,QACA,SACA,OACA,QACA,UACA,MACA,QACA,UACA,SACA,QACA,QACA,OACA,SACA,QACA,UACA,QACA,UACA,SACA,SACA,SACA,SACA,QACA,MACA,UACA,OACA,SACA,QACA,SACA,SACA,SACA,YACA,QACA,WACA,OACA,QACA,QACA,OACA,SACA,UACA,UACA,YACA,OACA,SACA,OACA,QACA,UACA,SACA,SACA,UACA,UACA,OACA,SACA,SACA,SACA,SACA,QACA,WACA,WACA,UACA,SACA,QACA,SACA,OACA,UACA,OACA,UACA,QACA,SACA,SACA,SACA,SACA,OACA,UACA,UACA,WACA,UACA,QACA,SACA,SACA,QACA,YACA,UACA,SACA,UACA,QACA,UACA,SACA,SACA,WACA,QACA,UACA,UACA,QACA,UACA,OACA,SACA,OACA,UACA,UACA,UACA,UACA,OACA,QACA,SACA,WACA,OACA,WACA,QACA,QACA,QACA,QACA,SACA,MACA,UACA,OACA,SACA,UACA,UACA,YACA,QACA,QACA,WACA,UACA,OACA,OACA,QACA,WACA,SACA,QACA,SACA,UACA,SACA,OACA,OACA,QACA,SACA,WACA,UACA,QACA,SACA,UACA,SACA,QACA,QACA,QACA,UACA,UACA,SACA,UACA,UACA,UACA,WACA,QACA,WACA,SACA,UACA,SACA,YACA,OACA,OACA,SACA,OACA,QACA,QACA,QACA,QACA,MACA,QACA,UACA,QACA,SACA,QACA,QACA,QACA,QACA,OACA,OACA,WACA,WACA,QACA,OACA,OACA,SACA,UACA,WACA,QACA,SACA,SACA,UACA,SACA,SACA,SACA,SACA,OACA,QACA,MACA,SACA,QACA,QACA,QACA,SACA,QACA,YACA,UACA,UACA,OACA,UACA,MACA,UACA,UACA,QACA,QACA,SACA,OACA,WACA,WACA,SACA,QACA,UACA,UACA,OACA,OACA,aACA,UACA,QACA,SACA,QACA,SACA,OACA,SACA,SACA,QACA,UACA,OACA,OACA,SACA,WACA,UACA,SACA,OACA,UACA,QACA,OACA,SACA,SACA,OACA,WACA,MACA,UACA,SACA,WACA,OACA,QACA,SACA,WACA,QACA,MACA,MACA,UACA,OACA,WACA,QACA,UACA,MACA,MACA,UACA,QACA,QACA,SACA,YACA,OACA,SACA,OACA,MACA,UACA,QACA,SACA,QACA,SACA,SACA,QACA,OACA,SACA,OACA,UACA,QACA,UACA,SACA,QACA,QACA,MACA,MACA,QACA,UACA,OACA,OACA,OACA,SACA,UACA,SACA,SACA,MACA,SACA,QACA,UACA,SACA,QACA,MACA,OACA,SACA,QACA,WACA,OAAA,EAEF,KAAK,cAAgB,KAAK,iBAAiB,OAAO,KAAK,cAAc,EACrE,KAAK,UAAY,CACf,QACA,UACA,WACA,QACA,QACA,QACA,SACA,SACA,QACA,SACA,WACA,SACA,UACA,QACA,SACA,SACA,WACA,SACA,WACA,WACA,QACA,YACA,QACA,MACA,SACA,OACA,QACA,QACA,YACA,OACA,SACA,QACA,OACA,QACA,QACA,QACA,QACA,WACA,SACA,SACA,WACA,QACA,UACA,SACA,WACA,WACA,SACA,QACA,UACA,UACA,UACA,UACA,SACA,SACA,OACA,OACA,SACA,OACA,SACA,SACA,SACA,SACA,aACA,MACA,SACA,OACA,SACA,WACA,OACA,UACA,QACA,SACA,SACA,QACA,UACA,QACA,UACA,OACA,SACA,OACA,YACA,UACA,UACA,QACA,SACA,OACA,YACA,SACA,SACA,aACA,SACA,UACA,SACA,WACA,SACA,YACA,UACA,UACA,OACA,QACA,QACA,OACA,WACA,SACA,WACA,UACA,QACA,OACA,OACA,SACA,QACA,WACA,SACA,QACA,WACA,SACA,WACA,OACA,WACA,QACA,QACA,SACA,UACA,QACA,OACA,UACA,UACA,SACA,SACA,SACA,QACA,WACA,QACA,OACA,QACA,UACA,UACA,SACA,QACA,QACA,QACA,QACA,SACA,OACA,SACA,OACA,YACA,OACA,QACA,UACA,SACA,QACA,UACA,QACA,SACA,WACA,OACA,QACA,UACA,OACA,UACA,SACA,UACA,UACA,WACA,QACA,SACA,QACA,WACA,SACA,SACA,SACA,MACA,UACA,QACA,UACA,SACA,SACA,OACA,aACA,UACA,OACA,UACA,OACA,SACA,MACA,QACA,YACA,YACA,SACA,SACA,WACA,UACA,SACA,OACA,SACA,SACA,SACA,WACA,SACA,SACA,YACA,OACA,UACA,OACA,UACA,WACA,UACA,UACA,SACA,aACA,WACA,aACA,WACA,QACA,QACA,SACA,QACA,SACA,UACA,WACA,SACA,YACA,QACA,SACA,SACA,SACA,UACA,SACA,SACA,SACA,OACA,MACA,SACA,QACA,OACA,UACA,UACA,SACA,QACA,SACA,UACA,QACA,SACA,MACA,UACA,SACA,SACA,SACA,SACA,SACA,UACA,UACA,QACA,UACA,UACA,UACA,UACA,SACA,SACA,OACA,WACA,UACA,MACA,QACA,UACA,OACA,OACA,UACA,SACA,OACA,WACA,OACA,WACA,UACA,SACA,UACA,SACA,UACA,UACA,SACA,SACA,SACA,UACA,WACA,QACA,QACA,QACA,YACA,WACA,OACA,UACA,WACA,QACA,QACA,OACA,SACA,OACA,OACA,SACA,SACA,WACA,SACA,OACA,SACA,QACA,SACA,WACA,SACA,QACA,OACA,SACA,QACA,SACA,UACA,SACA,SACA,OACA,QACA,OACA,SACA,WACA,QACA,UACA,QACA,QACA,SACA,QACA,YACA,UACA,SACA,QACA,QACA,SACA,SACA,WACA,QACA,UACA,WACA,SACA,UACA,UACA,SACA,SACA,YACA,UACA,SACA,OACA,QACA,SACA,OACA,OACA,OACA,WACA,SACA,QACA,SACA,UACA,UACA,OACA,SACA,UACA,QACA,SACA,UACA,UACA,SACA,OACA,QACA,UACA,SACA,QACA,SACA,aACA,WACA,SACA,UACA,SACA,OACA,UACA,SACA,SACA,UACA,SACA,UACA,UACA,YACA,QACA,SACA,WACA,SACA,OACA,SACA,SACA,UACA,SACA,SACA,UACA,UACA,OACA,QACA,QACA,QACA,UACA,OACA,QACA,UACA,OACA,WACA,WACA,UACA,UACA,WACA,QACA,QACA,QACA,aACA,SACA,QACA,UACA,WACA,OACA,QACA,OACA,WACA,QACA,UACA,QACA,SACA,QACA,UACA,WACA,UACA,UACA,cACA,QACA,QACA,SACA,UACA,aACA,YACA,SACA,WACA,QACA,WACA,MACA,UACA,QACA,YACA,WACA,QACA,QACA,QACA,QACA,OACA,OACA,QACA,QACA,OACA,YACA,OACA,SACA,SACA,SACA,UACA,SACA,OACA,UACA,SACA,QACA,WACA,SACA,SACA,WACA,SACA,OACA,OACA,aACA,QACA,QACA,SACA,SACA,SACA,YACA,UACA,OACA,QACA,YACA,QACA,WACA,UACA,OACA,SACA,UACA,UACA,UACA,YACA,OACA,UACA,SACA,SACA,QACA,SACA,UACA,UACA,UACA,UACA,QACA,YACA,OACA,QACA,OACA,QACA,SACA,QACA,UACA,YACA,QACA,SACA,QACA,WACA,YACA,SACA,OACA,SACA,OACA,UACA,UACA,WACA,UACA,UACA,OACA,SACA,QACA,UACA,WACA,UACA,UACA,YACA,QACA,QACA,OACA,QACA,SACA,QACA,UACA,YACA,SACA,UACA,QACA,UACA,UACA,UACA,UACA,OACA,QACA,SACA,UACA,OACA,OACA,UACA,SACA,YACA,YACA,QACA,SACA,OACA,SACA,WACA,SACA,SACA,UACA,QACA,WACA,YACA,SACA,QACA,WACA,UACA,UACA,OACA,SACA,QACA,YACA,UACA,UACA,UACA,OACA,SACA,QACA,QACA,UACA,QACA,QACA,QACA,UACA,UACA,SACA,WACA,UACA,QACA,aACA,OACA,SACA,UACA,SACA,QACA,SACA,QACA,QACA,OACA,YACA,OACA,QACA,cACA,UACA,UACA,SACA,SACA,QACA,WACA,SACA,UACA,SACA,SACA,WACA,QACA,WACA,WACA,SACA,YACA,SACA,UACA,UACA,WACA,MACA,SACA,QACA,UACA,SACA,OACA,UACA,aACA,QACA,QACA,UACA,QACA,UACA,UACA,UACA,SACA,SACA,UACA,SACA,SACA,OACA,UACA,UACA,SACA,QACA,QACA,QACA,WACA,UACA,QACA,SACA,UACA,SACA,WACA,OACA,QACA,aACA,SACA,SACA,WACA,OACA,QACA,OACA,UACA,SACA,OACA,OACA,UACA,WACA,YACA,QACA,QACA,QACA,UACA,UACA,QACA,QACA,WACA,UACA,SACA,SACA,QACA,OACA,QACA,QACA,SACA,UACA,WACA,OACA,QACA,OACA,QACA,SACA,QACA,WACA,QACA,UACA,OACA,SACA,aACA,YACA,SACA,SACA,UACA,OACA,OACA,YACA,WACA,UACA,SACA,QACA,SACA,QACA,QACA,YACA,UACA,aACA,WACA,SACA,WACA,OACA,OACA,UACA,aACA,SACA,QACA,YACA,QACA,UACA,QACA,OACA,SACA,QACA,UACA,QACA,YACA,SACA,QACA,WACA,OACA,OACA,WACA,SACA,OACA,SACA,OACA,QACA,SACA,OACA,WACA,UACA,WACA,SACA,QACA,QACA,QACA,QACA,WACA,MACA,QACA,YACA,QACA,UACA,SACA,SACA,WACA,WACA,UACA,SACA,SACA,YACA,QACA,UACA,QACA,YACA,UACA,UACA,UACA,UACA,OACA,MACA,QACA,UACA,SACA,UACA,SACA,UACA,UACA,YACA,OACA,SACA,SACA,SACA,SACA,OACA,SACA,SACA,OACA,QACA,QACA,YACA,UACA,SACA,OACA,UACA,YACA,QACA,SACA,WACA,SACA,SACA,SACA,WACA,QACA,UACA,SACA,QACA,UACA,SACA,SACA,SACA,SACA,UACA,QACA,WACA,SACA,UACA,QACA,QACA,OACA,SACA,SACA,SACA,QACA,SACA,UACA,QACA,SACA,UACA,SACA,SACA,SACA,QACA,UACA,WACA,SACA,OACA,OACA,WACA,OACA,UACA,SACA,QACA,SACA,MACA,SACA,OACA,QACA,OACA,WACA,MACA,UACA,QACA,YACA,YACA,SACA,UACA,SACA,SACA,OACA,QACA,SACA,OACA,QACA,cACA,aACA,UACA,QACA,SACA,YACA,UACA,UACA,UACA,SACA,OACA,SACA,UACA,UACA,SACA,UACA,QACA,YACA,UACA,OACA,UACA,QACA,UACA,SACA,UACA,SACA,OACA,SACA,OACA,SACA,WACA,SACA,WACA,YACA,SACA,OACA,UACA,SACA,QACA,UACA,OACA,YACA,QACA,UACA,QACA,SACA,YACA,SACA,SACA,QACA,SACA,UACA,SACA,SACA,UACA,QACA,OACA,OACA,SACA,WACA,SACA,OACA,QACA,WACA,OACA,UACA,SACA,OACA,SACA,UACA,UACA,QACA,OACA,OACA,UACA,OACA,QACA,SACA,UACA,SACA,QACA,YACA,OACA,SACA,UACA,KACA,UACA,WACA,QACA,WACA,SACA,UACA,OACA,SACA,UACA,UACA,SACA,QACA,SACA,QACA,UACA,UACA,QACA,UACA,UACA,UACA,QACA,YACA,UACA,OACA,MAAA,EAEF,KAAK,QAAU,CACb,iBACA,WACA,mBACA,aACA,eACA,kBACA,eACA,kBACA,mBACA,mBACA,eACA,gBACA,gBACA,kBACA,eACA,oBACA,kBACA,kBACA,mBACA,cACA,gBACA,kBACA,eACA,gBACA,cACA,WACA,aACA,kBACA,iBACA,gBACA,qBACA,kBACA,mBACA,eACA,mBACA,gBACA,iBACA,aACA,kBACA,gBACA,eACA,aACA,iBACA,eACA,gBACA,aACA,kBACA,gBACA,eACA,aACA,mBACA,gBACA,gBACA,aACA,kBACA,eACA,aACA,eACA,iBACA,eACA,kBACA,aACA,mBACA,eACA,kBACA,iBACA,eACA,eACA,gBACA,iBACA,gBACA,cACA,kBACA,gBACA,cACA,iBACA,cACA,YACA,mBACA,mBACA,kBACA,iBACA,iBACA,kBACA,gBACA,kBACA,kBACA,aACA,gBACA,gBACA,kBACA,YACA,mBACA,YACA,mBACA,aACA,gBACA,eACA,cACA,SAAA,EAEF,KAAK,OAAS,CACZ,SACA,YACA,YACA,cACA,OACA,UACA,SACA,WACA,QACA,UACA,QACA,YACA,YACA,SACA,QACA,SACA,0BACA,WACA,YACA,SACA,SACA,UACA,UACA,WACA,SACA,eACA,UACA,UACA,YACA,SACA,aACA,WACA,SACA,eACA,SACA,UACA,gBACA,YACA,UACA,SACA,WACA,cACA,iBACA,YACA,UACA,aACA,SACA,QACA,SACA,OAAA,EAEF,KAAK,UAAY,CACf,UACA,WACA,WACA,UACA,UACA,SACA,2BACA,SACA,UACA,SACA,qBACA,UACA,iCACA,WACA,2BACA,8BACA,UACA,SACA,SACA,WACA,aACA,QACA,SACA,OACA,mCACA,cACA,uBACA,OACA,UACA,UACA,WACA,iBACA,aACA,aACA,mCACA,cACA,WACA,SACA,8BACA,oBACA,cACA,OACA,YACA,SACA,QACA,OAAA,CAEJ,CACF,CChpGA,MAAMC,CAAkB,CAStB,YAAYC,EAAwB,CALpC,KAAA,WAAqBC,OAAK,oBAAoB,QAAQ,eAAkB,IACxE,KAAA,UAAoBA,OAAK,oBAAoB,QAAQ,kBAAqB,IAC1E,KAAA,WAAqBA,OAAK,oBAAoB,QAAQ,mBAAsB,IAkBhE,KAAA,UAAA,MAAOC,EAAkBC,IAAsC,CACzE,MAAMC,EAAe,MAAM,KAAK,eAAeD,CAAO,EAEtD,GAAIC,GAAgB,KACX,MAAA,GAGT,GAAIF,EAAQC,CAAO,EAAE,MAAM,OAAS,EAAG,CAC5B,QAAAE,EAAI,EAAGA,EAAIH,EAAQC,CAAO,EAAE,MAAM,OAAQE,IACjDH,EAAQC,CAAO,EAAE,MAAME,CAAC,EAAI,MAAMD,EAAaF,EAAQC,CAAO,EAAE,MAAME,CAAC,CAAC,EAGnE,MAAA,EAAA,SACEH,EAAQC,CAAO,EAAE,MAAM,QAAU,EAAG,CAC7C,MAAMG,EAAwBJ,EAAQC,CAAO,EAAE,MAAM,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"} \ No newline at end of file diff --git a/package.json b/package.json new file mode 100644 index 00000000..5949c16c --- /dev/null +++ b/package.json @@ -0,0 +1,5 @@ +{ + "dependencies": { + "dicom-web-anonymizer": "^0.2.4" + } +} From 7d2eeb59332d8f3d0828cded5ab9e02a88c4aff6 Mon Sep 17 00:00:00 2001 From: LucaDulz Date: Thu, 10 Oct 2024 14:59:37 +0000 Subject: [PATCH 12/20] package-lock.json --- package-lock.json | 156 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 156 insertions(+) create mode 100644 package-lock.json diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 00000000..72904b2d --- /dev/null +++ b/package-lock.json @@ -0,0 +1,156 @@ +{ + "name": "adit", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "dependencies": { + "dicom-web-anonymizer": "^0.2.4" + } + }, + "node_modules/@babel/runtime-corejs3": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.25.0.tgz", + "integrity": "sha512-BOehWE7MgQ8W8Qn0CQnMtg2tHPHPulcS/5AVpFvs2KCK1ET+0WqZqPvnpRpFN81gYoFopdIEJX9Sgjw3ZBccPg==", + "dependencies": { + "core-js-pure": "^3.30.2", + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/adm-zip": { + "version": "0.5.15", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.15.tgz", + "integrity": "sha512-jYPWSeOA8EFoZnucrKCNihqBjoEGQSU4HKgHYQgKNEQ0pQF9a/DYuo/+fAxY76k4qe75LUlLWpAM1QWcBMTOKw==", + "engines": { + "node": ">=12.0" + } + }, + "node_modules/core-js-pure": { + "version": "3.38.1", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.38.1.tgz", + "integrity": "sha512-BY8Etc1FZqdw1glX0XNOq2FDwfrg/VGqoZOZCdaL+UmdaqDwQwYXkMJT4t6In+zfEfOJDcM9T0KdbBeJg8KKCQ==", + "hasInstallScript": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/dcmjs": { + "version": "0.30.3", + "resolved": "https://registry.npmjs.org/dcmjs/-/dcmjs-0.30.3.tgz", + "integrity": "sha512-X/TlD6B506J+2HvB2MRU75f7qTb9aye7KqiGi9EM1nDv8AADgRNN+SsPwZ9aq326hwrMij8z2k/oKsaOruFZGw==", + "dependencies": { + "@babel/runtime-corejs3": "^7.22.5", + "adm-zip": "^0.5.10", + "gl-matrix": "^3.1.0", + "lodash.clonedeep": "^4.5.0", + "loglevelnext": "^3.0.1", + "ndarray": "^1.0.19", + "pako": "^2.0.4" + } + }, + "node_modules/dicom-web-anonymizer": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/dicom-web-anonymizer/-/dicom-web-anonymizer-0.2.4.tgz", + "integrity": "sha512-DirqXBy+AzEOVwjcM5/xxmpskjYdwyrf3Hxylq8xa5N9ZRS8A/F1LIBabWvgImFbILz2HkWiSvdKwDRfzFUbPw==", + "dependencies": { + "dcmjs": "^0.30.1", + "get-random-values": "^2.1.0" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/dom-walk": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", + "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==" + }, + "node_modules/get-random-values": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/get-random-values/-/get-random-values-2.1.0.tgz", + "integrity": "sha512-q2yOLpLyA8f9unfv2LV8KVRUFeOIrQVS5cnqpbv6N+ea9j1rmW5dFKj/2Q7CK3juEfDYQgPxGt941VJcmw0jKg==", + "dependencies": { + "global": "^4.4.0" + }, + "engines": { + "node": "14 || 16 || >=18" + } + }, + "node_modules/gl-matrix": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/gl-matrix/-/gl-matrix-3.4.3.tgz", + "integrity": "sha512-wcCp8vu8FT22BnvKVPjXa/ICBWRq/zjFfdofZy1WSpQZpphblv12/bOQLBC1rMM7SGOFS9ltVmKOHil5+Ml7gA==" + }, + "node_modules/global": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", + "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", + "dependencies": { + "min-document": "^2.19.0", + "process": "^0.11.10" + } + }, + "node_modules/iota-array": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/iota-array/-/iota-array-1.0.0.tgz", + "integrity": "sha512-pZ2xT+LOHckCatGQ3DcG/a+QuEqvoxqkiL7tvE8nn3uuu+f6i1TtpB5/FtWFbxUuVr5PZCx8KskuGatbJDXOWA==" + }, + "node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "node_modules/lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==" + }, + "node_modules/loglevelnext": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/loglevelnext/-/loglevelnext-3.0.1.tgz", + "integrity": "sha512-JpjaJhIN1reaSb26SIxDGtE0uc67gPl19OMVHrr+Ggt6b/Vy60jmCtKgQBrygAH0bhRA2nkxgDvM+8QvR8r0YA==", + "engines": { + "node": ">= 6.14.4" + } + }, + "node_modules/min-document": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", + "integrity": "sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==", + "dependencies": { + "dom-walk": "^0.1.0" + } + }, + "node_modules/ndarray": { + "version": "1.0.19", + "resolved": "https://registry.npmjs.org/ndarray/-/ndarray-1.0.19.tgz", + "integrity": "sha512-B4JHA4vdyZU30ELBw3g7/p9bZupyew5a7tX1Y/gGeF2hafrPaQZhgrGQfsvgfYbgdFZjYwuEcnaobeM/WMW+HQ==", + "dependencies": { + "iota-array": "^1.0.0", + "is-buffer": "^1.0.2" + } + }, + "node_modules/pako": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/pako/-/pako-2.1.0.tgz", + "integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==" + }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" + } + } +} From 70791be603e4944001a15cbcd0e4d89b0efaa2e5 Mon Sep 17 00:00:00 2001 From: LucaDulz Date: Thu, 10 Oct 2024 15:03:08 +0000 Subject: [PATCH 13/20] add type assertions, adaption to updated Anonymizer, adapt series dicom validation --- adit/upload/static/upload/upload.js | 212 ++++++++++++++-------------- 1 file changed, 107 insertions(+), 105 deletions(-) diff --git a/adit/upload/static/upload/upload.js b/adit/upload/static/upload/upload.js index c1c7a149..e9ce3dae 100644 --- a/adit/upload/static/upload/upload.js +++ b/adit/upload/static/upload/upload.js @@ -10,29 +10,28 @@ const UPLOAD_DESTINATION = "upload_destination"; function UploadJobForm(formEl) { return { - isDropping: Boolean, - buttonVisible: Boolean, - stopUploadButtonVisible: Boolean, - fileCount: Number, - droppedFiles: Object, - uploadResultText: String, - stopUploadVar: Boolean, - pbVisible: String, - uploadCompleteTextVisible: String, - stopUploadButtonStyleDisplay: String, + isDropping: false, + buttonVisible: false, + stopUploadButtonVisible: false, + fileCount: 0, + droppedFiles: [], + uploadResultText: "", + stopUploadVar: false, + pbVisible: false, + uploadCompleteTextVisible: false, initUploadForm: function (destEl) { document.body.addEventListener("chooseFolder", (e) => { this.chooseFolder(); }); - var button = formEl.querySelector("button#uploadButton"); + const button = formEl.querySelector("button#uploadButton"); this.stopUploadVar = false; this.stopUploadButtonVisible = false; this.fileCount = 0; // Add an event listener to the button button.addEventListener("click", function () { // Trigger the form submission when the button is clicked - var myForm = formEl.querySelector("form#myForm"); + const myForm = formEl.querySelector("form#myForm"); if (myForm instanceof HTMLFormElement) { htmx.trigger("#myForm", "submit"); } @@ -48,49 +47,48 @@ function UploadJobForm(formEl) { [UPLOAD_DESTINATION]: ev.target.value, }); }, + _updateIsDestinationFolder: function (destEl) { const option = destEl.options[destEl.selectedIndex]; this.isDestinationFolder = option.dataset.node_type === "folder"; }, getFiles: function () { - var inputElement = formEl.querySelector("#fileselector"); + const inputElement = formEl.querySelector("#fileselector"); + + if (!(inputElement instanceof HTMLInputElement)) { + throw new Error( + "inputElement must be an instance of HTMLProgressElement" + ); + } - if ( - inputElement instanceof HTMLInputElement && - inputElement.files.length > 0 - ) { + if (inputElement.files.length > 0) { return inputElement.files; - } else if (this.droppedFiles.length > 0) { - const files = []; - for (const f of this.droppedFiles) { - files.push(f); - } - return files; - } else { - return []; } + + return this.droppedFiles; }, toggleUploadButtonVisibility: function () { // Check if files are selected const files = this.getFiles(); - this.buttonVisible = files.length > 0 ? true : false; + this.buttonVisible = files.length > 0; this.fileCount = files.length; this.uploadCompleteTextVisible = false; }, clearFiles: function () { - var inputEl = formEl.querySelector("#fileselector"); + const inputEl = formEl.querySelector("#fileselector"); - if (inputEl instanceof HTMLInputElement) { - inputEl.value = null; + if (!(inputEl instanceof HTMLInputElement)) { + throw new Error("inputEl must be an instance of HTMLInputElement"); } + inputEl.value = null; this.droppedFiles = []; this.toggleUploadButtonVisibility(); }, - fileHandler: async function (fileObj, datasets) { - const arrayBuffer = await fileObj.arrayBuffer(); //await fileReader.readAsArrayBuffer(fileObj); + fileHandler: async (fileObj, datasets) => { + const arrayBuffer = await fileObj.arrayBuffer(); datasets.push(arrayBuffer); }, @@ -102,16 +100,20 @@ function UploadJobForm(formEl) { loadFiles: async function (files) { const destinationSelect = formEl.querySelector('[name="destination"]'); - if (destinationSelect instanceof HTMLSelectElement) { - const selectedOption = - destinationSelect.options[destinationSelect.selectedIndex]; - var node_id = selectedOption.getAttribute("data-node_id"); + if (!(destinationSelect instanceof HTMLSelectElement)) { + throw new Error( + "destinationSelect must be an instance of HTMLSelectElement" + ); } + destinationSelect.options[0]; + const selectedOption = + destinationSelect.options[destinationSelect.selectedIndex]; + const node_id = selectedOption.dataset.node_id; if (files.length === 0) { showToast("warning", "Sandbox", `No files selected.${files}`); } else { - var datasets = []; + const datasets = []; for (const fileEntry of files) { await this.fileHandler(fileEntry, datasets); } @@ -120,7 +122,7 @@ function UploadJobForm(formEl) { let loadedFiles = 0; try { - const checker = await this.checkPatientIDs(datasets); + const checker = await this.isValidSeries(datasets); if (checker) { const anon = this.createAnonymizer(); @@ -128,17 +130,35 @@ function UploadJobForm(formEl) { this.buttonVisible = false; this.stopUploadVar = false; + const progBar = formEl.querySelector('[id="pb"]'); + if (!(progBar instanceof HTMLProgressElement)) { + throw new Error( + "progBar must be an instance of HTMLProgressElement" + ); + } + progBar.value = 0; + this.pbVisible = true; for (const set of datasets) { // Anonymize data and write back to bufferstream const dicomData = dcmjs.data.DicomMessage.readFile(set, { ignoreErrors: true, }); + const pseudonym = formEl.querySelector('[name="pseudonym"]'); + + if (!(pseudonym instanceof HTMLInputElement)) { + throw new Error( + "pseudonym must be an instance of HTMLInputElement" + ); + } + let newPatientID = pseudonym.value; await anon.anonymize(dicomData); + dicomData.upsertTag("00100020", "LO", [newPatientID]); // replace PatientID + dicomData.upsertTag("00100010", "PN", [ + { Alphabetic: newPatientID }, + ]); // replace PatientName const anonymized_set = await dicomData.write(); - this.pbVisible = true; - this.stopUploadButtonVisible = true; if (this.stopUploadVar) { // Stop uploading if stop button is clicked @@ -147,17 +167,14 @@ function UploadJobForm(formEl) { // Upload data to server status = await uploadData({ - ["dataset"]: anonymized_set, - ["node_id"]: node_id, + dataset: anonymized_set, + node_id: node_id, }); if (status == 200) { loadedFiles += 1; - const progBar = formEl.querySelector('[id="pb"]'); - if (progBar instanceof HTMLProgressElement) { - progBar.value = (loadedFiles / datasets.length) * 100; - } + progBar.value = (loadedFiles / datasets.length) * 100; } else { this.uploadResultText = "Upload Failed"; this.pbVisible = false; @@ -172,7 +189,7 @@ function UploadJobForm(formEl) { this.finishUploadIncomplete(); } } else { - this.uploadResultText = "Upload refused - Fehlerhafte Datensätze"; + this.uploadResultText = "Upload refused - Incorrect dataset"; this.buttonVisible = false; this.uploadCompleteTextVisible = true; } @@ -218,42 +235,32 @@ function UploadJobForm(formEl) { }, 5000); }, - createAnonymizer: function () { - const pseudonym = formEl.querySelector('[name="pseudonym"]'); - var newPatientID = ""; - if (pseudonym instanceof HTMLInputElement) { - newPatientID = pseudonym.value; + createAnonymizer: () => { + const seedElement = document.getElementById("anon-seed-json"); + if (!seedElement) { + throw new Error("anon-seed-json element does not exist"); } - const seed = JSON.parse( - document.getElementById("anon-seed-json").textContent - ); - const anon = new Anonymizer( - newPatientID, - undefined, - undefined, - undefined, - undefined, - seed - ); - - return anon; - }, - - retrieveFilefromFileEntry: async function (fileEntry) { - return new Promise(fileEntry.file.bind(fileEntry)); - }, + const seedText = seedElement.textContent; + if (!seedText) { + throw new Error("anon-seed-json element is empty"); + } + const seed = JSON.parse(seedText); - readDirectory: function (item) { - const directoryReader = item.createReader(); - return new Promise(directoryReader.readEntries.bind(directoryReader)); + return new Anonymizer({ seed: seed }); }, traverseDirectory: async function (item, files) { if (item.isFile) { - const file = await this.retrieveFilefromFileEntry(item, files); + const file = await new Promise((resolve, reject) => { + item.file(resolve, reject); + }); files.push(file); } else { - const items = await this.readDirectory(item); + const directoryReader = item.createReader(); + const items = await new Promise((reslove, reject) => { + directoryReader.readEntries(reslove, reject); + }); + for (let item of items) { await this.traverseDirectory(item, files); } @@ -275,7 +282,7 @@ function UploadJobForm(formEl) { this.fileCount = files.length; if (files.length > 0) { - var inputElement = document.getElementById("fileselector"); + const inputElement = document.getElementById("fileselector"); if (inputElement instanceof HTMLInputElement) { inputElement.value = null; @@ -286,52 +293,47 @@ function UploadJobForm(formEl) { } }, - checkPatientIDs: function (datasets) { - const patientIDs = new Map(); - const patientBirthdates = new Map(); - const patientNames = new Map(); + isValidSeries: (datasets) => { + const patientIDs = new Set(); + const patientBirthdates = new Set(); + const patientNames = new Set(); for (const set of datasets) { + const patIDTagNumber = "00100020"; + const patNameTagNumber = "00100010"; + const patBirthdateTagNumber = "00100030"; + const dcm = dcmjs.data.DicomMessage.readFile(set, { ignoreErrors: true, }); - const patientID = dcm.dict["00100020"]?.Value[0]; - if (patientID) { - patientIDs.set(patientID, (patientIDs.get(patientID) || 0) + 1); + const patientID = dcm.dict[patIDTagNumber]?.Value[0]; + if (patientID != null) { + patientIDs.add(patientID); } - const patientName = dcm.dict["00100010"]?.Value[0]?.Alphabetic; - if (patientName) { - patientNames.set( - patientName, - (patientNames.get(patientName) || 0) + 1 - ); + const patientName = dcm.dict[patNameTagNumber]?.Value[0]?.Alphabetic; + if (patientName != null) { + patientNames.add(patientName); } - const patientBirthdate = dcm.dict["00100030"]?.Value[0]; - if (patientBirthdate) { - patientBirthdates.set( - patientBirthdate, - (patientBirthdates.get(patientBirthdate) || 0) + 1 - ); + const patientBirthdate = dcm.dict[patBirthdateTagNumber]?.Value[0]; + if (patientBirthdate != null) { + patientBirthdates.add(patientBirthdate); } } // Check if in a whole study are more than one PatientID, Name or Birthdate return ( - patientIDs.size <= 1 && - patientNames.size <= 1 && - patientBirthdates.size <= 1 && - !patientIDs.has(-1) && - !patientNames.has(undefined) && - !patientBirthdates.has(undefined) + patientIDs.size == 1 && + patientNames.size == 1 && + patientBirthdates.size == 1 ); }, }; } -async function uploadData(data) { +const uploadData = async (data) => { const formData = new FormData(); for (const key in data) { const blob = new Blob([data[key]]); @@ -346,16 +348,16 @@ async function uploadData(data) { mode: "same-origin", // Do not send CSRF token to another domain. body: formData, }); - var status = 0; + let status = 0; return fetch(request) - .then(async function (response) { + .then(async (response) => { const text = await response.text(); return response.ok ? response.status : Promise.reject(new Error(text)); }) - .catch(function (error) { + .catch((error) => { console.error(`Error: ${error.message || "Network error"}`); return 500; }); -} +}; From cb3326be0858189e75c789bddc8d5759a71c3a1a Mon Sep 17 00:00:00 2001 From: LucaDulz Date: Thu, 10 Oct 2024 15:05:00 +0000 Subject: [PATCH 14/20] upgrade adit-radis-shared --- adit/upload/migrations/0001_initial.py | 36 -------------------------- poetry.lock | 9 +++---- pyproject.toml | 2 +- 3 files changed, 5 insertions(+), 42 deletions(-) delete mode 100644 adit/upload/migrations/0001_initial.py diff --git a/adit/upload/migrations/0001_initial.py b/adit/upload/migrations/0001_initial.py deleted file mode 100644 index b5c3796c..00000000 --- a/adit/upload/migrations/0001_initial.py +++ /dev/null @@ -1,36 +0,0 @@ -# Generated by Django 5.0.7 on 2024-08-28 14:46 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - initial = True - - dependencies = [ - ] - - operations = [ - migrations.CreateModel( - name='UploadPermissionSupport', - fields=[ - ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ], - options={ - 'permissions': [('can_upload_data', 'Can upload data')], - 'managed': False, - 'default_permissions': (), - }, - ), - migrations.CreateModel( - name='UploadSettings', - fields=[ - ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('locked', models.BooleanField(default=False)), - ('suspended', models.BooleanField(default=False)), - ], - options={ - 'verbose_name_plural': 'Upload settings', - }, - ), - ] diff --git a/poetry.lock b/poetry.lock index af7a210a..4236e813 100644 --- a/poetry.lock +++ b/poetry.lock @@ -2,7 +2,7 @@ [[package]] name = "adit-radis-shared" -version = "0.6.8" +version = "0.0.0" description = "Shared Django apps between ADIT and RADIS" optional = false python-versions = ">=3.12,<4.0" @@ -27,7 +27,6 @@ django-tables2 = "^2.3.3" djangorestframework = "^3.13.1" procrastinate = {version = "^2.8.0", extras = ["django"]} psycopg = {version = "^3.1.12", extras = ["binary"]} -toml = "^0.10.2" Twisted = {version = "^24.3.0", extras = ["http2", "tls"]} wait-for-it = "^2.2.2" watchfiles = "^0.24.0" @@ -36,8 +35,8 @@ whitenoise = "^6.0.0" [package.source] type = "git" url = "https://github.com/openradx/adit-radis-shared.git" -reference = "v0.6.8" -resolved_reference = "bb43f75b9fb2513ce6023e7f7128ef07575b1c85" +reference = "0.8.0" +resolved_reference = "60b7bf0fce044d04103e5f7313c8d16c85fa247a" [[package]] name = "adrf" @@ -3591,4 +3590,4 @@ testing = ["coverage (>=5.0.3)", "zope.event", "zope.testing"] [metadata] lock-version = "2.0" python-versions = ">=3.12,<4.0" -content-hash = "14cf8920e9a34bdb797c6e60b8026ef138a002d6d9a40ec24eb9d667d7ab1bd1" +content-hash = "f6316a43d0f6238488d1764deaf90be9efff8ae73bccd81e62bd73782f4392a5" diff --git a/pyproject.toml b/pyproject.toml index 8ecd3640..c8461a35 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -6,7 +6,7 @@ authors = ["medihack "] license = "GPL-3.0-or-later" [tool.poetry.dependencies] -adit-radis-shared = {git = "https://github.com/openradx/adit-radis-shared.git", rev = "v0.6.8"} +adit-radis-shared = {git = "https://github.com/openradx/adit-radis-shared.git", rev = "0.8.0"} adrf = "^0.1.1" aiofiles = "^24.1.0" asyncinotify = "^4.0.1" From 0249f234fa77c18ffa722a7225a3fe5cec3f79c9 Mon Sep 17 00:00:00 2001 From: LucaDulz Date: Sat, 19 Oct 2024 16:57:47 +0000 Subject: [PATCH 15/20] create initial migration fopr upload app --- adit/upload/migrations/0001_initial.py | 27 ++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 adit/upload/migrations/0001_initial.py diff --git a/adit/upload/migrations/0001_initial.py b/adit/upload/migrations/0001_initial.py new file mode 100644 index 00000000..8afae0aa --- /dev/null +++ b/adit/upload/migrations/0001_initial.py @@ -0,0 +1,27 @@ +# Generated by Django 5.1 on 2024-10-19 16:55 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ] + + operations = [ + migrations.CreateModel( + name='UploadSettings', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('locked', models.BooleanField(default=False)), + ('suspended', models.BooleanField(default=False)), + ], + options={ + 'verbose_name_plural': 'Upload settings', + 'permissions': [('can_upload_data', 'Can upload data')], + 'default_permissions': (), + }, + ), + ] From f119d70724c731e95ab0416b53b4edae7a208ffe Mon Sep 17 00:00:00 2001 From: LucaDulz Date: Wed, 23 Oct 2024 15:22:58 +0000 Subject: [PATCH 16/20] delete update task bc of renovate usage --- tasks.py | 8 -------- 1 file changed, 8 deletions(-) diff --git a/tasks.py b/tasks.py index 9c6456ad..5c51426d 100644 --- a/tasks.py +++ b/tasks.py @@ -29,14 +29,6 @@ invoke_tasks.PROJECT_DIR = Path(__file__).resolve().parent -@task -def upgrade(ctx: Context): - """Upgrade Python and JS packages""" - ctx.run("poetry update", pty=True) - ctx.run("npm update", pty=True) - copy_statics(ctx) - - @task def reset_orthancs(ctx: Context, env: invoke_tasks.Environments = "dev"): """Reset Orthancs""" From 38d9471b433ad5e7d909acf65dd7c918f650677c Mon Sep 17 00:00:00 2001 From: medihack Date: Tue, 24 Dec 2024 21:45:16 +0000 Subject: [PATCH 17/20] Exclude async views from test --- adit/settings/base.py | 2 +- adit/upload/tests/test_views.py | 8 ++++---- adit/urls.py | 4 ++-- pyproject.toml | 1 + 4 files changed, 8 insertions(+), 7 deletions(-) diff --git a/adit/settings/base.py b/adit/settings/base.py index 07bcd263..06383809 100644 --- a/adit/settings/base.py +++ b/adit/settings/base.py @@ -76,9 +76,9 @@ "adit.selective_transfer.apps.SelectiveTransferConfig", "adit.batch_query.apps.BatchQueryConfig", "adit.batch_transfer.apps.BatchTransferConfig", + "adit.upload.apps.UploadConfig", "adit.dicom_explorer.apps.DicomExplorerConfig", "adit.dicom_web.apps.DicomWebConfig", - "adit.upload.apps.UploadConfig", "channels", ] diff --git a/adit/upload/tests/test_views.py b/adit/upload/tests/test_views.py index e8f822e5..41a679ed 100644 --- a/adit/upload/tests/test_views.py +++ b/adit/upload/tests/test_views.py @@ -9,13 +9,13 @@ def test_user_must_have_permission_to_access_view(client): client.force_login(user) response = client.get(reverse("upload_create")) assert response.status_code == 403 - response = client.post(reverse("data_upload", kwargs={"node_id": 1})) - assert response.status_code == 403 + # response = client.post(reverse("data_upload", kwargs={"node_id": 1})) + # assert response.status_code == 403 @pytest.mark.django_db def test_user_must_be_logged_in_to_access_view(client): response = client.get(reverse("upload_create")) assert response.status_code == 302 - response = client.post(reverse("data_upload", kwargs={"node_id": 1})) - assert response.status_code == 302 + # response = client.post(reverse("data_upload", kwargs={"node_id": 1})) + # assert response.status_code == 302 diff --git a/adit/urls.py b/adit/urls.py index 4ac27151..5f833509 100644 --- a/adit/urls.py +++ b/adit/urls.py @@ -25,12 +25,12 @@ path("accounts/", include("adit_radis_shared.accounts.urls")), path("", include("adit.core.urls")), path("selective-transfer/", include("adit.selective_transfer.urls")), - path("batch-transfer/", include("adit.batch_transfer.urls")), path("batch-query/", include("adit.batch_query.urls")), + path("batch-transfer/", include("adit.batch_transfer.urls")), + path("upload/", include("adit.upload.urls")), path("dicom-explorer/", include("adit.dicom_explorer.urls")), path("token-authentication/", include("adit_radis_shared.token_authentication.urls")), path("api/dicom-web/", include("adit.dicom_web.urls")), - path("upload/", include("adit.upload.urls")), ] # Debug Toolbar in Debug mode only diff --git a/pyproject.toml b/pyproject.toml index 556495f9..bffd1952 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -103,6 +103,7 @@ filterwarnings = [ 'ignore:.*Use timezone-aware objects to represent datetimes in UTC.*:DeprecationWarning', ] timeout = 60 +asyncio_default_fixture_loop_scope = "function" [tool.coverage.run] branch = true From 2dfe48eb5feb4ff50193f12324ddeb728db70da5 Mon Sep 17 00:00:00 2001 From: medihack Date: Wed, 25 Dec 2024 00:06:49 +0000 Subject: [PATCH 18/20] Improve integration upload tests --- adit/upload/tests/integration/test_upload.py | 94 ++++++++++---------- 1 file changed, 46 insertions(+), 48 deletions(-) diff --git a/adit/upload/tests/integration/test_upload.py b/adit/upload/tests/integration/test_upload.py index 12a22180..8f46d05e 100644 --- a/adit/upload/tests/integration/test_upload.py +++ b/adit/upload/tests/integration/test_upload.py @@ -1,10 +1,8 @@ -from typing import Callable - import pytest from adit_radis_shared.accounts.models import User from adit_radis_shared.common.utils.auth_utils import add_user_to_group from faker import Faker -from playwright.sync_api import Locator, Page, expect +from playwright.sync_api import Page, expect from adit.core.utils.auth_utils import grant_access from adit.core.utils.dicom_dataset import QueryDataset @@ -13,23 +11,23 @@ fake = Faker() +@pytest.mark.integration @pytest.mark.django_db(transaction=True) def test_clear_files( page: Page, - poll: Callable[[Locator], Locator], dimse_orthancs, - channels_live_server, + live_server, create_and_login_user, upload_group, provide_path_to_file_dir, ): - user: User = create_and_login_user(channels_live_server.url) + user: User = create_and_login_user(live_server.url) add_user_to_group(user, upload_group) grant_access(upload_group, dimse_orthancs[1], destination=True) page.on("console", lambda msg: print(msg.text)) - page.goto(channels_live_server.url + "/upload/jobs/new") + page.goto(live_server.url + "/upload/jobs/new") page.get_by_label("Destination").select_option(label="DICOM Server Orthanc Test Server 2") page.get_by_label("Pseudonym").fill("Test pseudonym") file = next(provide_path_to_file_dir("1001")) @@ -37,8 +35,8 @@ def test_clear_files( assert page.get_by_label("Choose a directory").input_value() - expect(poll(page.locator("button#uploadButton"))).to_be_visible() - expect(poll(page.locator("button#clearButton"))).to_be_visible() + expect(page.locator("button#uploadButton")).to_be_visible() + expect(page.locator("button#clearButton")).to_be_visible() page.locator("button#clearButton").click() @@ -49,100 +47,100 @@ def test_clear_files( assert not page.get_by_label("Choose a directory").input_value() +@pytest.mark.integration @pytest.mark.django_db(transaction=True) def test_stop_upload( page: Page, - poll: Callable[[Locator], Locator], dimse_orthancs, - channels_live_server, + live_server, create_and_login_user, upload_group, provide_path_to_file_dir, ): - user: User = create_and_login_user(channels_live_server.url) + user: User = create_and_login_user(live_server.url) add_user_to_group(user, upload_group) grant_access(upload_group, dimse_orthancs[1], destination=True) page.on("console", lambda msg: print(msg.text)) - page.goto(channels_live_server.url + "/upload/jobs/new") + page.goto(live_server.url + "/upload/jobs/new") page.get_by_label("Destination").select_option(label="DICOM Server Orthanc Test Server 2") page.get_by_label("Pseudonym").fill("Test pseudonym") file = next(provide_path_to_file_dir("1001")) page.get_by_label("Choose a directory").set_input_files(files=[file]) - expect(poll(page.locator("button#uploadButton"))).to_be_visible() - expect(poll(page.locator("button#clearButton"))).to_be_visible() + expect(page.locator("button#uploadButton")).to_be_visible() + expect(page.locator("button#clearButton")).to_be_visible() page.locator("button#uploadButton").click() - expect(poll(page.locator("button#stopUploadButton"))).to_be_visible() + expect(page.locator("button#stopUploadButton")).to_be_visible() page.locator("button#stopUploadButton").click() page.wait_for_selector("p#uploadCompleteText") expect(page.locator("p#uploadCompleteText")).to_contain_text("Upload Cancelled") +@pytest.mark.integration @pytest.mark.django_db(transaction=True) def test_upload_full( page: Page, - poll: Callable[[Locator], Locator], dimse_orthancs, - channels_live_server, + live_server, create_and_login_user, upload_group, provide_path_to_file_dir, ): - user: User = create_and_login_user(channels_live_server.url) + user: User = create_and_login_user(live_server.url) add_user_to_group(user, upload_group) grant_access(upload_group, dimse_orthancs[1], destination=True) page.on("console", lambda msg: print(msg.text)) - page.goto(channels_live_server.url + "/upload/jobs/new") + page.goto(live_server.url + "/upload/jobs/new") page.get_by_label("Destination").select_option(label="DICOM Server Orthanc Test Server 2") page.get_by_label("Pseudonym").fill("Test pseudonym") file = next(provide_path_to_file_dir("1001")) page.get_by_label("Choose a directory").set_input_files(files=[file]) - expect(poll(page.locator("button#uploadButton"))).to_be_visible() - expect(poll(page.locator("button#clearButton"))).to_be_visible() + expect(page.locator("button#uploadButton")).to_be_visible() + expect(page.locator("button#clearButton")).to_be_visible() page.locator("button#uploadButton").click() - expect(poll(page.locator("button#stopUploadButton"))).to_be_visible() + expect(page.locator("button#stopUploadButton")).to_be_visible() page.wait_for_selector("p#uploadCompleteText") expect(page.locator("p#uploadCompleteText")).to_contain_text("Upload Successful!") +@pytest.mark.integration @pytest.mark.django_db(transaction=True) def test_upload_unsupported_file_type( page: Page, - poll: Callable[[Locator], Locator], dimse_orthancs, - channels_live_server, + live_server, create_and_login_user, upload_group, noncompatible_test_file, ): - user: User = create_and_login_user(channels_live_server.url) + user: User = create_and_login_user(live_server.url) add_user_to_group(user, upload_group) grant_access(upload_group, dimse_orthancs[1], destination=True) page.on("console", lambda msg: print(msg.text)) - page.goto(channels_live_server.url + "/upload/jobs/new") + page.goto(live_server.url + "/upload/jobs/new") page.get_by_label("Destination").select_option(label="DICOM Server Orthanc Test Server 2") page.get_by_label("Pseudonym").fill("Test pseudonym") tmp = noncompatible_test_file() page.get_by_label("Choose a directory").set_input_files(files=[tmp]) - expect(poll(page.locator("button#uploadButton"))).to_be_visible() - expect(poll(page.locator("button#clearButton"))).to_be_visible() + expect(page.locator("button#uploadButton")).to_be_visible() + expect(page.locator("button#clearButton")).to_be_visible() page.locator("button#uploadButton").click() page.wait_for_selector("p#uploadCompleteText") @@ -150,27 +148,27 @@ def test_upload_unsupported_file_type( expect(page.locator("p#uploadCompleteText")).to_contain_text("Upload Failed due to an Error") +@pytest.mark.integration @pytest.mark.django_db(transaction=True) def test_upload_without_pseudonym( page: Page, - poll: Callable[[Locator], Locator], dimse_orthancs, - channels_live_server, + live_server, create_and_login_user, upload_group, provide_path_to_file_dir, ): - user: User = create_and_login_user(channels_live_server.url) + user: User = create_and_login_user(live_server.url) add_user_to_group(user, upload_group) grant_access(upload_group, dimse_orthancs[1], destination=True) page.on("console", lambda msg: print(msg.text)) - page.goto(channels_live_server.url + "/upload/jobs/new") + page.goto(live_server.url + "/upload/jobs/new") page.get_by_label("Destination").select_option(label="DICOM Server Orthanc Test Server 2") file = next(provide_path_to_file_dir("1001")) page.get_by_label("Choose a directory").set_input_files(files=[file]) - expect(poll(page.locator("button#uploadButton"))).to_be_visible() - expect(poll(page.locator("button#clearButton"))).to_be_visible() + expect(page.locator("button#uploadButton")).to_be_visible() + expect(page.locator("button#clearButton")).to_be_visible() page.locator("button#uploadButton").click() error_message = page.locator("#div_id_pseudonym") @@ -178,28 +176,28 @@ def test_upload_without_pseudonym( expect(error_message).to_contain_text("This field is required.") +@pytest.mark.integration @pytest.mark.django_db(transaction=True) def test_upload_without_destination( page: Page, - poll: Callable[[Locator], Locator], dimse_orthancs, - channels_live_server, + live_server, create_and_login_user, upload_group, provide_path_to_file_dir, ): - user: User = create_and_login_user(channels_live_server.url) + user: User = create_and_login_user(live_server.url) add_user_to_group(user, upload_group) grant_access(upload_group, dimse_orthancs[1], destination=True) page.on("console", lambda msg: print(msg.text)) - page.goto(channels_live_server.url + "/upload/jobs/new") + page.goto(live_server.url + "/upload/jobs/new") page.get_by_label("Pseudonym").fill("Test pseudonym") file = next(provide_path_to_file_dir("1001")) page.get_by_label("Choose a directory").set_input_files(files=[file]) - expect(poll(page.locator("button#uploadButton"))).to_be_visible() - expect(poll(page.locator("button#clearButton"))).to_be_visible() + expect(page.locator("button#uploadButton")).to_be_visible() + expect(page.locator("button#clearButton")).to_be_visible() page.locator("button#uploadButton").click() error_message = page.locator("#div_id_destination") @@ -207,23 +205,23 @@ def test_upload_without_destination( expect(error_message).to_contain_text("This field is required.") +@pytest.mark.integration @pytest.mark.django_db(transaction=True) def test_pseudonym_is_used_as_patientID( page: Page, - poll: Callable[[Locator], Locator], dimse_orthancs, - channels_live_server, + live_server, create_and_login_user, upload_group, provide_path_to_file_dir, ): # Arrange - user: User = create_and_login_user(channels_live_server.url) + user: User = create_and_login_user(live_server.url) add_user_to_group(user, upload_group) grant_access(upload_group, dimse_orthancs[0], destination=True) page.on("console", lambda msg: print(msg.text)) - page.goto(channels_live_server.url + "/upload/jobs/new") + page.goto(live_server.url + "/upload/jobs/new") page.get_by_label("Destination").select_option(label="DICOM Server Orthanc Test Server 1") test_pseudonym = "Patient #" + str(fake.random_int(min=10, max=1000)) @@ -234,12 +232,12 @@ def test_pseudonym_is_used_as_patientID( page.get_by_label("Choose a directory").set_input_files(files=[file]) - expect(poll(page.locator("button#uploadButton"))).to_be_visible() - expect(poll(page.locator("button#clearButton"))).to_be_visible() + expect(page.locator("button#uploadButton")).to_be_visible() + expect(page.locator("button#clearButton")).to_be_visible() page.locator("button#uploadButton").click() - expect(poll(page.locator("button#stopUploadButton"))).to_be_visible() + expect(page.locator("button#stopUploadButton")).to_be_visible() page.wait_for_selector("p#uploadCompleteText") From a1c062b8a8ec3fe37eefc353585bbb9c12ed6961 Mon Sep 17 00:00:00 2001 From: medihack Date: Wed, 25 Dec 2024 23:14:02 +0000 Subject: [PATCH 19/20] Move fixtures to helpers --- adit/upload/tests/conftest.py | 10 -- adit/upload/tests/integration/conftest.py | 53 +----- adit/upload/tests/integration/test_upload.py | 163 ++++++++----------- adit/upload/tests/test_views.py | 5 +- adit/upload/utils/__init__.py | 0 adit/upload/utils/testing_helpers.py | 13 ++ 6 files changed, 90 insertions(+), 154 deletions(-) delete mode 100644 adit/upload/tests/conftest.py create mode 100644 adit/upload/utils/__init__.py create mode 100644 adit/upload/utils/testing_helpers.py diff --git a/adit/upload/tests/conftest.py b/adit/upload/tests/conftest.py deleted file mode 100644 index 8f4b7852..00000000 --- a/adit/upload/tests/conftest.py +++ /dev/null @@ -1,10 +0,0 @@ -import pytest -from adit_radis_shared.accounts.factories import GroupFactory -from adit_radis_shared.common.utils.auth_utils import add_permission - - -@pytest.fixture -def upload_group(db): - group = GroupFactory.create(name="Radiologists") - add_permission(group, "upload", "can_upload_data") - return group diff --git a/adit/upload/tests/integration/conftest.py b/adit/upload/tests/integration/conftest.py index 3fc2d4cc..48ceabe7 100644 --- a/adit/upload/tests/integration/conftest.py +++ b/adit/upload/tests/integration/conftest.py @@ -1,12 +1,8 @@ -import io import os import tempfile -from typing import Any, Dict, Iterable +from typing import Iterator import pytest -from django.conf import settings - -from adit.core.utils.dicom_utils import read_dataset # Workaround to make playwright work with Django # see https://github.com/microsoft/playwright-pytest/issues/29#issuecomment-731515676 @@ -14,45 +10,8 @@ @pytest.fixture -def uploadable_test_dicoms(): - def _test_dicoms(patient_id: str) -> Iterable[Dict[str, Any | str | bytes]]: - test_dicoms_path = settings.BASE_DIR / "samples" / "dicoms" / patient_id - for root, _, files in os.walk(test_dicoms_path): - if len(files) != 0: - for file in files: - try: - ds = read_dataset(os.path.join(root, file)) - buffer = io.BytesIO() - ds.save_as(buffer) - except Exception: - continue - yield { - "name": ds.SOPInstanceUID, - "mimeType": "text/plain", - "buffer": buffer.getvalue(), - } - - return _test_dicoms - - -@pytest.fixture -def provide_path_to_file_dir(): - def _test_dicoms(patient_id: str) -> Iterable[str]: - test_dicoms_path = settings.BASE_DIR / "samples" / "dicoms" / patient_id - folders = os.listdir(test_dicoms_path) - for folder in folders: - yield os.path.join(test_dicoms_path, folder) - - return _test_dicoms - - -@pytest.fixture -def noncompatible_test_file(): - def _noncompatible_file(): - with tempfile.NamedTemporaryFile(delete=False, suffix=".txt") as tmp_file: - tmp_file.write(b"This is a test text file.") - tmp_file.seek(0) - - return os.path.dirname(tmp_file.name) - - return _noncompatible_file +def invalid_sample_files_folder() -> Iterator[str]: + with tempfile.NamedTemporaryFile(suffix=".txt") as tmp_file: + tmp_file.write(b"This is not DICOM data.") + tmp_file.seek(0) + yield os.path.dirname(tmp_file.name) diff --git a/adit/upload/tests/integration/test_upload.py b/adit/upload/tests/integration/test_upload.py index 8f46d05e..92eb8d1f 100644 --- a/adit/upload/tests/integration/test_upload.py +++ b/adit/upload/tests/integration/test_upload.py @@ -1,37 +1,38 @@ import pytest -from adit_radis_shared.accounts.models import User -from adit_radis_shared.common.utils.auth_utils import add_user_to_group +from adit_radis_shared.common.utils.testing_helpers import ( + add_user_to_group, + create_and_login_example_user, +) from faker import Faker from playwright.sync_api import Page, expect +from pytest_django.live_server_helper import LiveServer from adit.core.utils.auth_utils import grant_access from adit.core.utils.dicom_dataset import QueryDataset from adit.core.utils.dicom_operator import DicomOperator +from adit.core.utils.testing_helpers import setup_dimse_orthancs +from adit.upload.utils.testing_helpers import create_upload_group, get_sample_dicoms_folder fake = Faker() @pytest.mark.integration @pytest.mark.django_db(transaction=True) -def test_clear_files( - page: Page, - dimse_orthancs, - live_server, - create_and_login_user, - upload_group, - provide_path_to_file_dir, -): - user: User = create_and_login_user(live_server.url) - add_user_to_group(user, upload_group) - grant_access(upload_group, dimse_orthancs[1], destination=True) +def test_clear_files(live_server: LiveServer, page: Page): + user = create_and_login_example_user(page, live_server.url) + group = create_upload_group() + + add_user_to_group(user, group) + dimse_orthancs = setup_dimse_orthancs() + grant_access(group, dimse_orthancs[1], destination=True) + folder = get_sample_dicoms_folder("1001") page.on("console", lambda msg: print(msg.text)) page.goto(live_server.url + "/upload/jobs/new") page.get_by_label("Destination").select_option(label="DICOM Server Orthanc Test Server 2") page.get_by_label("Pseudonym").fill("Test pseudonym") - file = next(provide_path_to_file_dir("1001")) - page.get_by_label("Choose a directory").set_input_files(files=[file]) + page.get_by_label("Choose a directory").set_input_files(files=[folder]) assert page.get_by_label("Choose a directory").input_value() @@ -49,25 +50,20 @@ def test_clear_files( @pytest.mark.integration @pytest.mark.django_db(transaction=True) -def test_stop_upload( - page: Page, - dimse_orthancs, - live_server, - create_and_login_user, - upload_group, - provide_path_to_file_dir, -): - user: User = create_and_login_user(live_server.url) - add_user_to_group(user, upload_group) - grant_access(upload_group, dimse_orthancs[1], destination=True) +def test_stop_upload(live_server: LiveServer, page: Page): + user = create_and_login_example_user(page, live_server.url) + group = create_upload_group() + add_user_to_group(user, group) + dimse_orthancs = setup_dimse_orthancs() + grant_access(group, dimse_orthancs[1], destination=True) + folder = get_sample_dicoms_folder("1001") page.on("console", lambda msg: print(msg.text)) page.goto(live_server.url + "/upload/jobs/new") page.get_by_label("Destination").select_option(label="DICOM Server Orthanc Test Server 2") page.get_by_label("Pseudonym").fill("Test pseudonym") - file = next(provide_path_to_file_dir("1001")) - page.get_by_label("Choose a directory").set_input_files(files=[file]) + page.get_by_label("Choose a directory").set_input_files(files=[folder]) expect(page.locator("button#uploadButton")).to_be_visible() expect(page.locator("button#clearButton")).to_be_visible() @@ -83,26 +79,21 @@ def test_stop_upload( @pytest.mark.integration @pytest.mark.django_db(transaction=True) -def test_upload_full( - page: Page, - dimse_orthancs, - live_server, - create_and_login_user, - upload_group, - provide_path_to_file_dir, -): - user: User = create_and_login_user(live_server.url) - add_user_to_group(user, upload_group) - grant_access(upload_group, dimse_orthancs[1], destination=True) +def test_upload_full(live_server: LiveServer, page: Page): + user = create_and_login_example_user(page, live_server.url) + group = create_upload_group() + add_user_to_group(user, group) + dimse_orthancs = setup_dimse_orthancs() + grant_access(group, dimse_orthancs[1], destination=True) + folder = get_sample_dicoms_folder("1001") page.on("console", lambda msg: print(msg.text)) page.goto(live_server.url + "/upload/jobs/new") page.get_by_label("Destination").select_option(label="DICOM Server Orthanc Test Server 2") page.get_by_label("Pseudonym").fill("Test pseudonym") - file = next(provide_path_to_file_dir("1001")) - page.get_by_label("Choose a directory").set_input_files(files=[file]) + page.get_by_label("Choose a directory").set_input_files(files=[folder]) expect(page.locator("button#uploadButton")).to_be_visible() expect(page.locator("button#clearButton")).to_be_visible() @@ -119,16 +110,13 @@ def test_upload_full( @pytest.mark.integration @pytest.mark.django_db(transaction=True) def test_upload_unsupported_file_type( - page: Page, - dimse_orthancs, - live_server, - create_and_login_user, - upload_group, - noncompatible_test_file, + live_server: LiveServer, page: Page, invalid_sample_files_folder: str ): - user: User = create_and_login_user(live_server.url) - add_user_to_group(user, upload_group) - grant_access(upload_group, dimse_orthancs[1], destination=True) + user = create_and_login_example_user(page, live_server.url) + group = create_upload_group() + add_user_to_group(user, group) + dimse_orthancs = setup_dimse_orthancs() + grant_access(group, dimse_orthancs[1], destination=True) page.on("console", lambda msg: print(msg.text)) @@ -136,8 +124,7 @@ def test_upload_unsupported_file_type( page.get_by_label("Destination").select_option(label="DICOM Server Orthanc Test Server 2") page.get_by_label("Pseudonym").fill("Test pseudonym") - tmp = noncompatible_test_file() - page.get_by_label("Choose a directory").set_input_files(files=[tmp]) + page.get_by_label("Choose a directory").set_input_files(files=[invalid_sample_files_folder]) expect(page.locator("button#uploadButton")).to_be_visible() expect(page.locator("button#clearButton")).to_be_visible() @@ -150,22 +137,19 @@ def test_upload_unsupported_file_type( @pytest.mark.integration @pytest.mark.django_db(transaction=True) -def test_upload_without_pseudonym( - page: Page, - dimse_orthancs, - live_server, - create_and_login_user, - upload_group, - provide_path_to_file_dir, -): - user: User = create_and_login_user(live_server.url) - add_user_to_group(user, upload_group) - grant_access(upload_group, dimse_orthancs[1], destination=True) +def test_upload_without_pseudonym(live_server: LiveServer, page: Page): + user = create_and_login_example_user(page, live_server.url) + group = create_upload_group() + add_user_to_group(user, group) + dimse_orthancs = setup_dimse_orthancs() + grant_access(group, dimse_orthancs[1], destination=True) + folder = get_sample_dicoms_folder("1001") + page.on("console", lambda msg: print(msg.text)) + page.goto(live_server.url + "/upload/jobs/new") page.get_by_label("Destination").select_option(label="DICOM Server Orthanc Test Server 2") - file = next(provide_path_to_file_dir("1001")) - page.get_by_label("Choose a directory").set_input_files(files=[file]) + page.get_by_label("Choose a directory").set_input_files(files=[folder]) expect(page.locator("button#uploadButton")).to_be_visible() expect(page.locator("button#clearButton")).to_be_visible() @@ -178,23 +162,19 @@ def test_upload_without_pseudonym( @pytest.mark.integration @pytest.mark.django_db(transaction=True) -def test_upload_without_destination( - page: Page, - dimse_orthancs, - live_server, - create_and_login_user, - upload_group, - provide_path_to_file_dir, -): - user: User = create_and_login_user(live_server.url) - add_user_to_group(user, upload_group) - grant_access(upload_group, dimse_orthancs[1], destination=True) +def test_upload_without_destination(live_server: LiveServer, page: Page): + user = create_and_login_example_user(page, live_server.url) + group = create_upload_group() + add_user_to_group(user, group) + dimse_orthancs = setup_dimse_orthancs() + grant_access(group, dimse_orthancs[1], destination=True) + folder = get_sample_dicoms_folder("1001") page.on("console", lambda msg: print(msg.text)) + page.goto(live_server.url + "/upload/jobs/new") page.get_by_label("Pseudonym").fill("Test pseudonym") - file = next(provide_path_to_file_dir("1001")) - page.get_by_label("Choose a directory").set_input_files(files=[file]) + page.get_by_label("Choose a directory").set_input_files(files=[folder]) expect(page.locator("button#uploadButton")).to_be_visible() expect(page.locator("button#clearButton")).to_be_visible() @@ -207,30 +187,23 @@ def test_upload_without_destination( @pytest.mark.integration @pytest.mark.django_db(transaction=True) -def test_pseudonym_is_used_as_patientID( - page: Page, - dimse_orthancs, - live_server, - create_and_login_user, - upload_group, - provide_path_to_file_dir, -): +def test_pseudonym_is_used_as_patientID(live_server: LiveServer, page: Page): # Arrange - user: User = create_and_login_user(live_server.url) - add_user_to_group(user, upload_group) - grant_access(upload_group, dimse_orthancs[0], destination=True) + user = create_and_login_example_user(page, live_server.url) + group = create_upload_group() + add_user_to_group(user, group) + dimse_orthancs = setup_dimse_orthancs() + grant_access(group, dimse_orthancs[0], destination=True) + test_pseudonym = "Patient #" + str(fake.random_int(min=10, max=1000)) + folder = get_sample_dicoms_folder("1001") page.on("console", lambda msg: print(msg.text)) + page.goto(live_server.url + "/upload/jobs/new") page.get_by_label("Destination").select_option(label="DICOM Server Orthanc Test Server 1") - - test_pseudonym = "Patient #" + str(fake.random_int(min=10, max=1000)) - page.get_by_label("Pseudonym").fill(test_pseudonym) - file = next(provide_path_to_file_dir("1001")) - - page.get_by_label("Choose a directory").set_input_files(files=[file]) + page.get_by_label("Choose a directory").set_input_files(files=[folder]) expect(page.locator("button#uploadButton")).to_be_visible() expect(page.locator("button#clearButton")).to_be_visible() diff --git a/adit/upload/tests/test_views.py b/adit/upload/tests/test_views.py index 41a679ed..88514461 100644 --- a/adit/upload/tests/test_views.py +++ b/adit/upload/tests/test_views.py @@ -1,10 +1,11 @@ import pytest from adit_radis_shared.accounts.factories import UserFactory +from django.test import Client from django.urls import reverse @pytest.mark.django_db -def test_user_must_have_permission_to_access_view(client): +def test_user_must_have_permission_to_access_view(client: Client): user = UserFactory.create() client.force_login(user) response = client.get(reverse("upload_create")) @@ -14,7 +15,7 @@ def test_user_must_have_permission_to_access_view(client): @pytest.mark.django_db -def test_user_must_be_logged_in_to_access_view(client): +def test_user_must_be_logged_in_to_access_view(client: Client): response = client.get(reverse("upload_create")) assert response.status_code == 302 # response = client.post(reverse("data_upload", kwargs={"node_id": 1})) diff --git a/adit/upload/utils/__init__.py b/adit/upload/utils/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/adit/upload/utils/testing_helpers.py b/adit/upload/utils/testing_helpers.py new file mode 100644 index 00000000..0c3f4e76 --- /dev/null +++ b/adit/upload/utils/testing_helpers.py @@ -0,0 +1,13 @@ +from adit_radis_shared.accounts.factories import GroupFactory +from adit_radis_shared.common.utils.testing_helpers import add_permission +from django.conf import settings + + +def create_upload_group(): + group = GroupFactory.create(name="Radiologists") + add_permission(group, "upload", "can_upload_data") + return group + + +def get_sample_dicoms_folder(patient_id: str) -> str: + return settings.BASE_DIR / "samples" / "dicoms" / patient_id From 0e63308959da9b7ec6830944b19bd758daa9fb61 Mon Sep 17 00:00:00 2001 From: medihack Date: Wed, 25 Dec 2024 23:15:32 +0000 Subject: [PATCH 20/20] Use correct type hint --- adit/batch_transfer/tests/test_views.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/adit/batch_transfer/tests/test_views.py b/adit/batch_transfer/tests/test_views.py index 434f2654..ec8e114e 100644 --- a/adit/batch_transfer/tests/test_views.py +++ b/adit/batch_transfer/tests/test_views.py @@ -1,11 +1,11 @@ import pytest from adit_radis_shared.accounts.factories import UserFactory from adit_radis_shared.common.utils.testing_helpers import add_user_to_group -from django.conf import LazySettings from django.test import Client from django.urls import reverse from procrastinate.contrib.django.models import ProcrastinateJob from pytest_django.asserts import assertTemplateUsed +from pytest_django.fixtures import SettingsWrapper from adit.batch_transfer.utils.testing_helpers import create_batch_transfer_group, create_form_data from adit.core.models import DicomServer @@ -44,7 +44,7 @@ def test_logged_in_user_with_permission_can_access_form(client: Client): @pytest.mark.django_db -def test_batch_job_created_and_enqueued_with_auto_verify(client: Client, settings: LazySettings): +def test_batch_job_created_and_enqueued_with_auto_verify(client: Client, settings: SettingsWrapper): settings.START_BATCH_TRANSFER_UNVERIFIED = True user = UserFactory.create() @@ -67,7 +67,7 @@ def test_batch_job_created_and_enqueued_with_auto_verify(client: Client, setting @pytest.mark.django_db def test_batch_job_created_and_not_enqueued_without_auto_verify( - client: Client, settings: LazySettings + client: Client, settings: SettingsWrapper ): settings.START_BATCH_TRANSFER_UNVERIFIED = False