diff --git a/issues_time_travel_audit/ISSUE_01_history_activity_ignores_temporal_entity.md b/issues_time_travel_audit/ISSUE_01_history_activity_ignores_temporal_entity.md new file mode 100644 index 00000000..69a02f3b --- /dev/null +++ b/issues_time_travel_audit/ISSUE_01_history_activity_ignores_temporal_entity.md @@ -0,0 +1,93 @@ +# ISSUE 01 — History activity API ignores temporal/entity context + +## Priority +P0 (High) + +## Proposal Relevance +Directly impacts the Time-Travel proposal goal: temporal query propagation and coherent temporal UX across history workflows. + +## Issue Description +`/api/history/activity` currently returns synthetic buckets based only on `period`, with a fixed anchor date and computed counts. It does not use selected entity type, `$as_of`, or `$from_to`. + +## Evidence +- `ui/app/api/history/activity/route.ts` + - Reads only `period` + - Uses fixed date `2024-08-20T00:00:00Z` + - Generates counts with deterministic formula, not dataset-derived data + +## Validation Status +- Static validation: Confirmed from implementation path. +- Runtime validation: 11 unit tests added and passing covering all filter combinations. +- Full test suite: 18/18 tests passing across 4 suites. +- Browser verification: API responses and History page UI confirmed correct. + +## Reproduction +1. Open `/history`. +2. Change temporal mode between `current`, `as_of`, `from_to`. +3. Switch entity tabs. +4. Observe activity graph pattern stays synthetic and detached from query context. + +## Expected vs Actual +- Expected: Activity buckets derived from filtered history/commit data for selected entity + temporal scope. +- Actual: Synthetic buckets independent from temporal/entity filters. + +## Fix Applied +1. Extracted shared `COMMITS`, `SNAPSHOTS`, `ENTITY_TYPES`, `parseEntityType` into `ui/app/api/history/data.ts`. +2. Added `buildActivityBuckets()` pure function that filters commits by `entityType`, `$as_of`, `$from_to` and builds date-bucketed activity counts. +3. Simplified `activity/route.ts` to delegate to `buildActivityBuckets()`. +4. Refactored `history/route.ts` to import from shared module (no logic change). +5. Updated `page.tsx` to pass temporal params to the activity endpoint URL via `appendTemporalParams`. +6. Kept deterministic zero-count fallback for empty filter results. + +## Files Changed +- `ui/app/api/history/data.ts` — **NEW** shared data + `buildActivityBuckets()` logic +- `ui/app/api/history/activity/route.ts` — **MODIFIED** uses shared function +- `ui/app/api/history/route.ts` — **MODIFIED** imports from shared module +- `ui/app/history/page.tsx` — **MODIFIED** activity URL includes temporal params +- `ui/__tests__/history-activity.test.ts` — **NEW** 11 unit tests + +## Draft GitHub Issue +### Title +History activity endpoint ignores selected entity and temporal scope + +### Problem +The activity graph is currently backed by synthetic data not linked to selected entity or temporal mode, creating a mismatch with the history query preview and user expectations. + +### Steps to Reproduce +1. Go to `/history`. +2. Switch entity tab and temporal mode. +3. Observe activity graph output. + +### Expected +Activity data changes according to entity and temporal filters. + +### Actual +Activity data remains formula-generated and detached. + +### Acceptance Criteria +- Activity API accepts and applies `entityType`, `$as_of`, `$from_to`. +- Buckets are computed from filtered commits. +- Graph output changes when temporal/entity filters change. + +## Draft PR Description +### Summary +Wire activity endpoint to temporal-aware history data instead of synthetic buckets. + +### Root Cause +Mock activity generator bypasses temporal/entity query context. + +### Changes +- Extract shared data and filtering logic into `data.ts` with a pure `buildActivityBuckets()` function. +- Activity route delegates to `buildActivityBuckets()` with parsed query params. +- History route refactored to import from shared module (zero logic change). +- Frontend `page.tsx` passes temporal params to the activity endpoint via `appendTemporalParams`. +- Zero-count fallback preserved for empty filter results. + +### Test Plan +- 11 unit tests covering: default entity, per-entity filtering, `$as_of` inclusion/exclusion, `$from_to` range filtering, empty result fallback, structural validation, cross-entity differentiation. +- Full test suite: 18/18 passing. +- Browser verification: API JSON responses and History page UI confirmed correct. + +### Risks +- Slight behavior change in demo data shape (activity buckets now reflect real commit dates instead of formula-generated patterns). +- Zero-count fallback ensures empty states still render a valid 28-day grid. \ No newline at end of file diff --git a/ui/__tests__/history-activity.test.ts b/ui/__tests__/history-activity.test.ts new file mode 100644 index 00000000..9e607088 --- /dev/null +++ b/ui/__tests__/history-activity.test.ts @@ -0,0 +1,123 @@ +/* + * Copyright 2025 SUPSI + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { buildActivityBuckets, COMMITS } from '@/app/api/history/data' + +describe('History Activity API — buildActivityBuckets()', () => { + it('returns buckets derived from Thing commits by default', () => { + const buckets = buildActivityBuckets({}) + + const totalCount = buckets.reduce((sum, b) => sum + b.count, 0) + const thingCommits = COMMITS.filter((c) => c.entityType === 'Thing') + expect(totalCount).toBe(thingCommits.length) + }) + + it('filters by entityType=Sensor', () => { + const buckets = buildActivityBuckets({ entityType: 'Sensor' }) + + const totalCount = buckets.reduce((sum, b) => sum + b.count, 0) + const sensorCommits = COMMITS.filter((c) => c.entityType === 'Sensor') + expect(totalCount).toBe(sensorCommits.length) + }) + + it('filters by entityType=Location', () => { + const buckets = buildActivityBuckets({ entityType: 'Location' }) + + const totalCount = buckets.reduce((sum, b) => sum + b.count, 0) + const locationCommits = COMMITS.filter((c) => c.entityType === 'Location') + expect(totalCount).toBe(locationCommits.length) + }) + + it('applies $as_of filter — excludes future commits', () => { + // Thing commit is at 2024-06-01, $as_of before that should yield 0 + const buckets = buildActivityBuckets({ + entityType: 'Thing', + $as_of: '2024-01-01T00:00:00Z', + }) + + const totalCount = buckets.reduce((sum, b) => sum + b.count, 0) + expect(totalCount).toBe(0) + }) + + it('applies $as_of filter — includes commits at or before date', () => { + // Thing commit is at 2024-06-01T08:00:00Z + const buckets = buildActivityBuckets({ + entityType: 'Thing', + $as_of: '2024-07-01T00:00:00Z', + }) + + const totalCount = buckets.reduce((sum, b) => sum + b.count, 0) + expect(totalCount).toBe(1) + }) + + it('applies $from_to filter — only commits in range', () => { + const buckets = buildActivityBuckets({ + entityType: 'Sensor', + $from_to: '2024-03-01T00:00:00Z,2024-03-31T23:59:59Z', + }) + + const totalCount = buckets.reduce((sum, b) => sum + b.count, 0) + expect(totalCount).toBe(1) // Only the Sensor commit in March + }) + + it('applies $from_to filter — excludes commits outside range', () => { + const buckets = buildActivityBuckets({ + entityType: 'Sensor', + $from_to: '2025-01-01T00:00:00Z,2025-12-31T23:59:59Z', + }) + + const totalCount = buckets.reduce((sum, b) => sum + b.count, 0) + expect(totalCount).toBe(0) // No Sensor commits in 2025 + }) + + it('returns zero-count fallback buckets when no commits match', () => { + const buckets = buildActivityBuckets({ + entityType: 'Thing', + $as_of: '2020-01-01T00:00:00Z', // Before all commits + }) + + expect(buckets.length).toBe(28) + const totalCount = buckets.reduce((sum, b) => sum + b.count, 0) + expect(totalCount).toBe(0) + }) + + it('returns 28 buckets for non-empty results', () => { + const buckets = buildActivityBuckets({ entityType: 'Thing' }) + expect(buckets.length).toBe(28) + }) + + it('each bucket has a date string and numeric count', () => { + const buckets = buildActivityBuckets({ entityType: 'Thing' }) + + for (const bucket of buckets) { + expect(typeof bucket.date).toBe('string') + expect(bucket.date).toMatch(/^\d{4}-\d{2}-\d{2}$/) + expect(typeof bucket.count).toBe('number') + expect(bucket.count).toBeGreaterThanOrEqual(0) + } + }) + + it('different entity types produce different activity data', () => { + const thingBuckets = buildActivityBuckets({ entityType: 'Thing' }) + const sensorBuckets = buildActivityBuckets({ entityType: 'Sensor' }) + + // Thing commit is on 2024-06-01, Sensor commit is on 2024-03-11 + const thingActive = thingBuckets.filter((b) => b.count > 0) + const sensorActive = sensorBuckets.filter((b) => b.count > 0) + + expect(thingActive[0].date).not.toBe(sensorActive[0].date) + }) +}) diff --git a/ui/__tests__/temporal-badge.test.tsx b/ui/__tests__/temporal-badge.test.tsx new file mode 100644 index 00000000..64efaa7a --- /dev/null +++ b/ui/__tests__/temporal-badge.test.tsx @@ -0,0 +1,54 @@ +/* + * Copyright 2025 SUPSI + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { render, screen } from '@testing-library/react' +import React from 'react' + +import TemporalBadge from '@/components/TemporalBadge' + +const resetMock = jest.fn() + +const temporalMock = { + mode: 'current', + asOf: null, + fromTo: null, + reset: resetMock, +} + +jest.mock('@/context/TemporalContext', () => ({ + useTemporal: () => temporalMock, +})) + +describe('TemporalBadge', () => { + it('renders live badge for current mode', () => { + temporalMock.mode = 'current' + render() + expect(screen.getByText(/Live/i)).toBeInTheDocument() + }) + + it('renders as-of badge text', () => { + temporalMock.mode = 'as_of' + temporalMock.asOf = '2024-02-01T10:30:00Z' + render() + expect(screen.getByTestId('temporal-badge-as-of')).toBeInTheDocument() + }) + + it('renders from-to badge text', () => { + temporalMock.mode = 'from_to' + temporalMock.fromTo = ['2024-01-01T00:00:00Z', '2024-02-01T00:00:00Z'] + render() + expect(screen.getByTestId('temporal-badge-from-to')).toBeInTheDocument() + }) +}) diff --git a/ui/__tests__/temporal-context.test.tsx b/ui/__tests__/temporal-context.test.tsx new file mode 100644 index 00000000..01c19a65 --- /dev/null +++ b/ui/__tests__/temporal-context.test.tsx @@ -0,0 +1,64 @@ +/* + * Copyright 2025 SUPSI + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { act, render, screen } from '@testing-library/react' +import React from 'react' + +import { TemporalProvider, useTemporal } from '@/context/TemporalContext' + +const replaceMock = jest.fn() +const paramsState = new URLSearchParams('') + +jest.mock('next/navigation', () => ({ + useRouter: () => ({ replace: replaceMock }), + usePathname: () => '/things', + useSearchParams: () => paramsState, +})) + +function Consumer() { + const temporal = useTemporal() + return ( + <> + {temporal.mode} + + + + ) +} + +describe('TemporalContext', () => { + it('starts in current mode and supports as_of + reset', async () => { + render( + + + + ) + + expect(screen.getByTestId('mode')).toHaveTextContent('current') + + await act(async () => { + screen.getByText('setAsOf').click() + }) + + expect(screen.getByTestId('mode')).toHaveTextContent('as_of') + + await act(async () => { + screen.getByText('reset').click() + }) + + expect(screen.getByTestId('mode')).toHaveTextContent('current') + expect(replaceMock).toHaveBeenCalled() + }) +}) diff --git a/ui/__tests__/temporal-mode-switch.test.tsx b/ui/__tests__/temporal-mode-switch.test.tsx new file mode 100644 index 00000000..25eb4814 --- /dev/null +++ b/ui/__tests__/temporal-mode-switch.test.tsx @@ -0,0 +1,60 @@ +/* + * Copyright 2025 SUPSI + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { render, screen } from '@testing-library/react' +import React from 'react' + +import TemporalModeSwitch from '@/components/TemporalModeSwitch' + +const contextMock = { + mode: 'current', + asOf: null, + fromTo: null, + setMode: jest.fn(), + setAsOf: jest.fn(), + setFromTo: jest.fn(), +} + +jest.mock('@/context/TemporalContext', () => ({ + useTemporal: () => contextMock, +})) + +describe('TemporalModeSwitch', () => { + it('renders all three mode tabs', () => { + contextMock.mode = 'current' + render() + + expect(screen.getByText('Current')).toBeInTheDocument() + expect(screen.getByText('As-of')).toBeInTheDocument() + expect(screen.getByText('From-to')).toBeInTheDocument() + }) + + it('shows as-of input in as_of mode', () => { + contextMock.mode = 'as_of' + contextMock.asOf = '2024-02-01T10:30:00Z' + render() + + expect(screen.getByLabelText('As-of timestamp')).toBeInTheDocument() + }) + + it('shows two datetime inputs in from_to mode', () => { + contextMock.mode = 'from_to' + contextMock.fromTo = ['2024-01-01T00:00:00Z', '2024-02-01T00:00:00Z'] + render() + + expect(screen.getByLabelText('From')).toBeInTheDocument() + expect(screen.getByLabelText('To')).toBeInTheDocument() + }) +}) diff --git a/ui/app/Home.tsx b/ui/app/Home.tsx index eb0b9abb..ce2a91e7 100644 --- a/ui/app/Home.tsx +++ b/ui/app/Home.tsx @@ -18,12 +18,15 @@ import FormModal from '@/features/forms/components/FormModal' import LeafletMap from '@/features/map/components/LeafletMap' import ChartModal from '@/features/observations/components/ChartModal' import { getObservationsByDatastream } from '@/services/observations' +import { Button } from '@heroui/button' import { Card } from '@heroui/card' import dayjs from 'dayjs' import { useEffect, useMemo, useRef, useState } from 'react' import { siteConfig } from '@/config/site' +import { useRouter } from 'next/navigation' + import { useAuth } from '@/context/AuthContext' type FormTabKey = @@ -56,6 +59,7 @@ export default function Home({ networks: any[] selectedNetwork?: string }) { + const router = useRouter() const { token } = useAuth() const [localThings, setLocalThings] = useState(things) @@ -178,6 +182,26 @@ export default function Home({ return (
+
+ +
+
+

Monitoring workspace

+

+ Select a station on the map to open stream details and charts. +

+
+ +
+
+
item.actionType === actionType) + } + + if (author) { + const normalized = author.toLowerCase() + items = items.filter((item) => item.author.toLowerCase().includes(normalized)) + } + + if (from) { + const fromDate = new Date(from) + items = items.filter((item) => new Date(item.date) >= fromDate) + } + + if (to) { + const toDate = new Date(to) + items = items.filter((item) => new Date(item.date) <= toDate) + } + + return NextResponse.json({ value: items }) +} diff --git a/ui/app/api/datastreams/route.ts b/ui/app/api/datastreams/route.ts new file mode 100644 index 00000000..b9dc7a0c --- /dev/null +++ b/ui/app/api/datastreams/route.ts @@ -0,0 +1,71 @@ +/* + * Copyright 2025 SUPSI + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { NextResponse } from 'next/server' + +const CURRENT_DATASTREAMS = [ + { + '@iot.id': 1, + name: 'Temperature', + description: 'Air temp at 2m (updated metadata)', + observationType: 'double', + phenomenonTime: '2023-01-01T00:00:00Z/2024-12-31T23:59:59Z', + }, + { + '@iot.id': 2, + name: 'Humidity', + description: 'Relative humidity', + observationType: 'double', + phenomenonTime: '2023-06-01T00:00:00Z/2024-12-31T23:59:59Z', + }, +] + +const HISTORICAL_DATASTREAMS = [ + { + '@iot.id': 1, + name: 'Temperature', + description: 'Air temp at 2m', + observationType: 'double', + phenomenonTime: '2023-01-01T00:00:00Z/2024-12-31T23:59:59Z', + systemTimeValidity: '[2023-01-01, 2024-06-01)', + }, +] + +export async function GET(request: Request) { + const { searchParams } = new URL(request.url) + const asOf = searchParams.get('$as_of') + const fromTo = searchParams.get('$from_to') + + if (asOf) { + const asOfDate = new Date(asOf) + if (asOfDate < new Date('2023-01-01T00:00:00Z')) { + return NextResponse.json({ value: [] }) + } + if (asOfDate < new Date('2024-06-01T00:00:00Z')) { + return NextResponse.json({ value: HISTORICAL_DATASTREAMS }) + } + return NextResponse.json({ value: CURRENT_DATASTREAMS }) + } + + if (fromTo) { + const [from] = fromTo.split(',') + if (from && new Date(from) < new Date('2023-01-01T00:00:00Z')) { + return NextResponse.json({ value: [] }) + } + return NextResponse.json({ value: HISTORICAL_DATASTREAMS }) + } + + return NextResponse.json({ value: CURRENT_DATASTREAMS }) +} diff --git a/ui/app/api/history/activity/route.ts b/ui/app/api/history/activity/route.ts new file mode 100644 index 00000000..7bb1e831 --- /dev/null +++ b/ui/app/api/history/activity/route.ts @@ -0,0 +1,28 @@ +// Copyright 2026 SUPSI +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +import { NextResponse } from 'next/server' + +import { buildActivityBuckets } from '../data' + +export async function GET(request: Request) { + const { searchParams } = new URL(request.url) + + const buckets = buildActivityBuckets({ + entityType: searchParams.get('entityType'), + $as_of: searchParams.get('$as_of'), + $from_to: searchParams.get('$from_to'), + }) + + return NextResponse.json({ value: buckets }) +} diff --git a/ui/app/api/history/data.ts b/ui/app/api/history/data.ts new file mode 100644 index 00000000..d7afd491 --- /dev/null +++ b/ui/app/api/history/data.ts @@ -0,0 +1,241 @@ +// Copyright 2026 SUPSI +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +import { + HistoryCommit, + HistoryEntityType, + HistorySnapshot, +} from '@/features/history/types' + +export const ENTITY_TYPES: HistoryEntityType[] = [ + 'Thing', + 'Sensor', + 'Datastream', + 'Location', + 'ObservedProperty', + 'FeatureOfInterest', +] + +export const SNAPSHOTS: Record = { + Thing: [ + { + id: 1, + label: 'Weather Station Alpha', + description: 'Main station metadata snapshot', + snapshotAt: '2024-06-01T08:00:00Z', + systemTimeValidity: '[2023-01-15, infinity)', + meta: { network: 'Campus', status: 'active' }, + }, + ], + Sensor: [ + { + id: 11, + label: 'Temp Sensor T-2M', + description: 'Sensor calibration profile', + snapshotAt: '2024-03-11T12:00:00Z', + systemTimeValidity: '[2023-01-15, infinity)', + meta: { encodingType: 'application/pdf', model: 'TS-200' }, + }, + ], + Datastream: [ + { + id: 21, + label: 'Temperature', + description: 'Air temperature stream', + snapshotAt: '2024-06-01T08:00:00Z', + systemTimeValidity: '[2023-01-15, infinity)', + meta: { observationType: 'double', uom: '°C' }, + }, + ], + Location: [ + { + id: 31, + label: 'Campus Roof', + description: 'Station location metadata', + snapshotAt: '2024-03-05T16:45:00Z', + systemTimeValidity: '[2023-01-15, infinity)', + meta: { latitude: '46.026', longitude: '8.955' }, + }, + ], + ObservedProperty: [ + { + id: 41, + label: 'Air Temperature', + description: 'Observed property definition', + snapshotAt: '2024-01-17T10:30:00Z', + systemTimeValidity: '[2023-01-15, infinity)', + meta: { definition: 'http://qudt.org/vocab/quantitykind/Temperature' }, + }, + ], + FeatureOfInterest: [ + { + id: 51, + label: 'Monitoring Zone A', + description: 'FOI polygon metadata', + snapshotAt: '2024-02-15T09:10:00Z', + systemTimeValidity: '[2023-01-15, infinity)', + meta: { geometryType: 'Polygon', area: '2.3km²' }, + }, + ], +} + +export const COMMITS: HistoryCommit[] = [ + { + id: 1001, + entityType: 'Thing', + entityId: 1, + entityName: 'Weather Station Alpha', + author: 'admin', + message: 'Updated station description after firmware migration', + date: '2024-06-01T08:00:00Z', + actionType: 'UPDATE', + fieldDiff: [{ field: 'description', before: 'Main campus station (original)', after: 'Main campus station (upgraded 2024)' }], + }, + { + id: 1002, + entityType: 'Sensor', + entityId: 11, + entityName: 'Temp Sensor T-2M', + author: 'operator1', + message: 'Adjusted calibration coefficient', + date: '2024-03-11T12:00:00Z', + actionType: 'UPDATE', + fieldDiff: [{ field: 'properties.calibration', before: '1.00', after: '1.02' }], + }, + { + id: 1003, + entityType: 'Datastream', + entityId: 21, + entityName: 'Temperature', + author: 'admin', + message: 'Datastream initialized', + date: '2023-01-15T09:00:00Z', + actionType: 'CREATE', + fieldDiff: [], + }, + { + id: 1004, + entityType: 'Location', + entityId: 31, + entityName: 'Campus Roof', + author: 'operator2', + message: 'Corrected location coordinates precision', + date: '2024-03-05T16:45:00Z', + actionType: 'UPDATE', + fieldDiff: [{ field: 'location.coordinates', before: '[8.954,46.025]', after: '[8.955,46.026]' }], + }, + { + id: 1005, + entityType: 'ObservedProperty', + entityId: 41, + entityName: 'Air Temperature', + author: 'admin', + message: 'Observed property created', + date: '2023-01-15T08:55:00Z', + actionType: 'CREATE', + fieldDiff: [], + }, + { + id: 1006, + entityType: 'FeatureOfInterest', + entityId: 51, + entityName: 'Monitoring Zone A', + author: 'operator1', + message: 'FOI boundary update', + date: '2024-02-15T09:10:00Z', + actionType: 'UPDATE', + fieldDiff: [{ field: 'description', before: 'Zone A', after: 'Monitoring Zone A' }], + }, +] + +export function parseEntityType(value: string | null): HistoryEntityType { + if (value && ENTITY_TYPES.includes(value as HistoryEntityType)) { + return value as HistoryEntityType + } + return 'Thing' +} + +/** + * Pure function: filters commits by entity type and temporal scope, + * then builds activity buckets from filtered commit timestamps. + */ +export function buildActivityBuckets(params: { + entityType?: string | null + $as_of?: string | null + $from_to?: string | null +}): { date: string; count: number }[] { + const DAYS = 28 + const entityType = parseEntityType(params.entityType ?? null) + + // Filter commits by entity type + let commits = COMMITS.filter((item) => item.entityType === entityType) + + // Apply $as_of filter + if (params.$as_of) { + const asOfDate = new Date(params.$as_of) + commits = commits.filter((commit) => new Date(commit.date) <= asOfDate) + } + + // Apply $from_to filter + if (params.$from_to) { + const [fromRaw, toRaw] = params.$from_to.split(',') + const fromDate = fromRaw ? new Date(fromRaw) : null + const toDate = toRaw ? new Date(toRaw) : null + + commits = commits.filter((commit) => { + const commitDate = new Date(commit.date) + if (fromDate && commitDate < fromDate) return false + if (toDate && commitDate > toDate) return false + return true + }) + } + + // Build buckets from filtered commit timestamps + if (commits.length > 0) { + const countByDate: Record = {} + for (const commit of commits) { + const dateKey = commit.date.slice(0, 10) + countByDate[dateKey] = (countByDate[dateKey] || 0) + 1 + } + + const commitDates = commits.map((c) => new Date(c.date).getTime()) + const maxDate = new Date(Math.max(...commitDates)) + const minDate = new Date(Math.min(...commitDates)) + + const spanMs = maxDate.getTime() - minDate.getTime() + const minSpanMs = (DAYS - 1) * 24 * 60 * 60 * 1000 + const startDate = spanMs >= minSpanMs ? minDate : new Date(maxDate.getTime() - minSpanMs) + + const buckets: { date: string; count: number }[] = [] + for (let index = 0; index < DAYS; index += 1) { + const date = new Date(startDate) + date.setUTCDate(startDate.getUTCDate() + index) + const dateKey = date.toISOString().slice(0, 10) + buckets.push({ date: dateKey, count: countByDate[dateKey] || 0 }) + } + + return buckets + } + + // Deterministic fallback when no commits exist after filtering + const today = new Date('2024-08-20T00:00:00Z') + const buckets: { date: string; count: number }[] = [] + + for (let index = DAYS - 1; index >= 0; index -= 1) { + const date = new Date(today) + date.setUTCDate(today.getUTCDate() - index) + buckets.push({ date: date.toISOString().slice(0, 10), count: 0 }) + } + + return buckets +} diff --git a/ui/app/api/history/route.ts b/ui/app/api/history/route.ts new file mode 100644 index 00000000..0c98fcc1 --- /dev/null +++ b/ui/app/api/history/route.ts @@ -0,0 +1,55 @@ +// Copyright 2026 SUPSI +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +import { NextResponse } from 'next/server' + +import { HistoryResponse } from '@/features/history/types' + +import { COMMITS, SNAPSHOTS, parseEntityType } from './data' + +export async function GET(request: Request) { + const { searchParams } = new URL(request.url) + const entityType = parseEntityType(searchParams.get('entityType')) + const asOf = searchParams.get('$as_of') + const fromTo = searchParams.get('$from_to') + + let snapshots = [...SNAPSHOTS[entityType]] + let commits = COMMITS.filter((item) => item.entityType === entityType) + + if (asOf) { + const asOfDate = new Date(asOf) + snapshots = snapshots.filter((snapshot) => new Date(snapshot.snapshotAt) <= asOfDate) + commits = commits.filter((commit) => new Date(commit.date) <= asOfDate) + } + + if (fromTo) { + const [fromRaw, toRaw] = fromTo.split(',') + const fromDate = fromRaw ? new Date(fromRaw) : null + const toDate = toRaw ? new Date(toRaw) : null + + commits = commits.filter((commit) => { + const commitDate = new Date(commit.date) + if (fromDate && commitDate < fromDate) return false + if (toDate && commitDate > toDate) return false + return true + }) + } + + const response: HistoryResponse = { + entityType, + value: snapshots, + commits, + } + + return NextResponse.json(response) +} diff --git a/ui/app/api/things/route.ts b/ui/app/api/things/route.ts new file mode 100644 index 00000000..084ada42 --- /dev/null +++ b/ui/app/api/things/route.ts @@ -0,0 +1,76 @@ +/* + * Copyright 2025 SUPSI + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { NextResponse } from 'next/server' + +const CURRENT_THINGS = [ + { + '@iot.id': 1, + name: 'Weather Station Alpha', + description: 'Main campus station (upgraded 2024)', + }, + { + '@iot.id': 2, + name: 'River Gauge Beta', + description: 'River level monitoring', + }, + { + '@iot.id': 3, + name: 'Air Quality Gamma', + description: 'PM2.5 sensor network node', + }, +] + +const HISTORICAL_THINGS = [ + { + '@iot.id': 1, + name: 'Weather Station Alpha', + description: 'Main campus station (original)', + systemTimeValidity: '[2023-01-15, 2024-06-01)', + }, + { + '@iot.id': 2, + name: 'River Gauge Beta', + description: 'River level monitoring', + systemTimeValidity: '[2023-03-20, infinity)', + }, +] + +export async function GET(request: Request) { + const { searchParams } = new URL(request.url) + const asOf = searchParams.get('$as_of') + const fromTo = searchParams.get('$from_to') + + if (asOf) { + const asOfDate = new Date(asOf) + if (asOfDate < new Date('2023-01-01T00:00:00Z')) { + return NextResponse.json({ value: [] }) + } + if (asOfDate < new Date('2024-06-01T00:00:00Z')) { + return NextResponse.json({ value: HISTORICAL_THINGS }) + } + return NextResponse.json({ value: CURRENT_THINGS }) + } + + if (fromTo) { + const [from] = fromTo.split(',') + if (from && new Date(from) < new Date('2023-01-01T00:00:00Z')) { + return NextResponse.json({ value: [] }) + } + return NextResponse.json({ value: HISTORICAL_THINGS }) + } + + return NextResponse.json({ value: CURRENT_THINGS }) +} diff --git a/ui/app/commits/page.tsx b/ui/app/commits/page.tsx new file mode 100644 index 00000000..9aa5f33a --- /dev/null +++ b/ui/app/commits/page.tsx @@ -0,0 +1,152 @@ +'use client' + +/* + * Copyright 2025 SUPSI + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { Card } from '@heroui/card' +import { Chip } from '@heroui/chip' +import { Input } from '@heroui/input' +import { Select, SelectItem } from '@heroui/select' +import dayjs from 'dayjs' +import * as React from 'react' + +import { useRouter } from 'next/navigation' + +import { useTemporal } from '@/context/TemporalContext' + +import { CommitItem } from '@/types/temporal' + +const actionColorMap = { + CREATE: 'success', + UPDATE: 'warning', + DELETE: 'danger', +} as const + +export default function CommitsPage() { + const router = useRouter() + const { setAsOf } = useTemporal() + const [items, setItems] = React.useState([]) + const [actionType, setActionType] = React.useState('') + const [author, setAuthor] = React.useState('') + const [loading, setLoading] = React.useState(true) + + React.useEffect(() => { + const params = new URLSearchParams() + if (actionType) params.set('actionType', actionType) + if (author) params.set('author', author) + + const url = params.toString() + ? `/api/commits?${params.toString()}` + : '/api/commits' + + setLoading(true) + fetch(url) + .then((response) => response.json()) + .then((payload) => setItems(payload?.value || [])) + .finally(() => setLoading(false)) + }, [actionType, author]) + + return ( +
+
+
+

Commits

+

Track changes by author and action type, then pivot into temporal entity views.

+
+ + +
+ + setAuthor(event.target.value)} + classNames={{ + label: 'text-[var(--color-text-secondary)]', + inputWrapper: + 'bg-[var(--color-surface-elevated)] border border-[var(--color-border)] text-[var(--color-text-primary)]', + input: 'text-[var(--color-text-primary)] placeholder:text-[var(--color-text-secondary)]', + }} + /> +
+
+ + {loading &&

Loading...

} + +
+ {items.map((item) => ( + +
+
+

{item.message}

+

+ {item.author} · {dayjs(item.date).format('MMM D, YYYY HH:mm')} +

+
+ + {item.actionType} + +
+
+ {item.affectedEntities.map((entity) => ( + + {entity} + + ))} +
+ {item.actionType === 'UPDATE' && ( + + )} +
+ ))} +
+
+
+ ) +} diff --git a/ui/app/datastreams/page.tsx b/ui/app/datastreams/page.tsx new file mode 100644 index 00000000..d013d78a --- /dev/null +++ b/ui/app/datastreams/page.tsx @@ -0,0 +1,113 @@ +'use client' + +/* + * Copyright 2025 SUPSI + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { Card } from '@heroui/card' +import { + Table, + TableBody, + TableCell, + TableColumn, + TableHeader, + TableRow, +} from '@heroui/table' +import * as React from 'react' + +import PhantomEditWarning from '@/components/PhantomEditWarning' +import TemporalConflictWarning from '@/components/TemporalConflictWarning' +import TemporalModeSwitch from '@/components/TemporalModeSwitch' +import { useTemporalQuery } from '@/components/hooks/useTemporalQuery' + +import { useTemporal } from '@/context/TemporalContext' + +type Datastream = { + '@iot.id': number + name: string + description: string + observationType: string + phenomenonTime?: string + systemTimeValidity?: string +} + +export default function DatastreamsPage() { + const { mode, asOf } = useTemporal() + const { data, loading, error, activeUrl } = useTemporalQuery<{ + value: Datastream[] + }>('/api/datastreams') + + const items = data?.value || [] + + return ( +
+
+
+

Datastreams

+

Inspect stream definitions and temporal validity with clear context.

+
+ + +
+ +
+ GET {activeUrl} +
+
+
+ + {mode !== 'current' && } + {mode !== 'current' && items.length === 0 && ( + + )} + + {loading &&

Loading...

} + {error &&

{error.message}

} + + + + + ID + Name + Description + Observation Type + Phenomenon Time + System validity + + + {(item) => ( + + {item['@iot.id']} + {item.name} + {item.description} + {item.observationType} + {item.phenomenonTime || '-'} + {item.systemTimeValidity || '-'} + + )} + +
+
+
+
+ ) +} diff --git a/ui/app/history/page.tsx b/ui/app/history/page.tsx new file mode 100644 index 00000000..3a3d8b54 --- /dev/null +++ b/ui/app/history/page.tsx @@ -0,0 +1,122 @@ +'use client' + +// Copyright 2026 SUPSI +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +import { Card } from '@heroui/card' +import { Tab, Tabs } from '@heroui/tabs' +import * as React from 'react' + +import ActivityGraph from '@/features/history/components/ActivityGraph' +import HistoryDetails from '@/features/history/components/HistoryDetails' +import { + ActivityBucket, + HistoryEntityType, + HistoryResponse, +} from '@/features/history/types' + +import TemporalModeSwitch from '@/components/TemporalModeSwitch' + +import { useTemporal } from '@/context/TemporalContext' + +import { appendTemporalParams } from '@/server/temporal' + +const ENTITY_TYPES: HistoryEntityType[] = [ + 'Thing', + 'Sensor', + 'Datastream', + 'Location', + 'ObservedProperty', + 'FeatureOfInterest', +] + +export default function HistoryPage() { + const { mode, asOf, fromTo } = useTemporal() + const [entityType, setEntityType] = React.useState('Thing') + const [loading, setLoading] = React.useState(true) + const [data, setData] = React.useState(null) + const [activity, setActivity] = React.useState([]) + + const historyUrl = React.useMemo(() => { + const baseUrl = `/api/history?entityType=${entityType}` + return appendTemporalParams(baseUrl, { mode, asOf, fromTo }) + }, [entityType, mode, asOf, fromTo]) + + const activityUrl = React.useMemo(() => { + const baseUrl = `/api/history/activity?entityType=${entityType}&period=week` + return appendTemporalParams(baseUrl, { mode, asOf, fromTo }) + }, [entityType, mode, asOf, fromTo]) + + React.useEffect(() => { + setLoading(true) + + Promise.all([ + fetch(historyUrl).then((response) => response.json()), + fetch(activityUrl).then((response) => response.json()), + ]) + .then(([historyPayload, activityPayload]) => { + setData(historyPayload) + setActivity(activityPayload?.value || []) + }) + .finally(() => setLoading(false)) + }, [historyUrl, activityUrl]) + + return ( +
+
+
+

History Explorer

+

+ Explore temporal snapshots and commit evolution with a clear, time-aware view. +

+
+ + +
+ + +
+ + setEntityType(String(key) as HistoryEntityType) + } + variant="solid" + color="primary" + classNames={{ + tabList: 'bg-[var(--color-surface-elevated)] border border-[var(--color-border)]', + tab: 'text-[var(--color-text-secondary)] data-[selected=true]:text-white', + cursor: 'bg-[var(--color-accent)]', + }} + > + {ENTITY_TYPES.map((type) => ( + + ))} + + +
+

History query

+

+ GET {historyUrl} +

+
+
+
+
+ + + +
+
+ ) +} diff --git a/ui/app/layout.tsx b/ui/app/layout.tsx index c4ff1c3c..71a589f4 100644 --- a/ui/app/layout.tsx +++ b/ui/app/layout.tsx @@ -27,7 +27,10 @@ export default function RootLayout({ children }: { children: ReactNode }) { return ( diff --git a/ui/app/providers.tsx b/ui/app/providers.tsx index 15d7dfe2..15d5be32 100644 --- a/ui/app/providers.tsx +++ b/ui/app/providers.tsx @@ -19,6 +19,8 @@ import * as React from 'react' import { ThemeProvider } from 'next-themes' import type { ThemeProviderProps } from 'next-themes' +import { TemporalProvider } from '@/context/TemporalContext' + export interface ProvidersProps { children: React.ReactNode themeProps?: ThemeProviderProps @@ -27,7 +29,11 @@ export interface ProvidersProps { export default function Providers({ children, themeProps }: ProvidersProps) { return ( - {children} + + + {children} + + ) } diff --git a/ui/app/things/page.tsx b/ui/app/things/page.tsx new file mode 100644 index 00000000..41931087 --- /dev/null +++ b/ui/app/things/page.tsx @@ -0,0 +1,105 @@ +'use client' + +/* + * Copyright 2025 SUPSI + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { Card } from '@heroui/card' +import { + Table, + TableBody, + TableCell, + TableColumn, + TableHeader, + TableRow, +} from '@heroui/table' +import * as React from 'react' + +import TemporalConflictWarning from '@/components/TemporalConflictWarning' +import TemporalModeSwitch from '@/components/TemporalModeSwitch' +import { useTemporalQuery } from '@/components/hooks/useTemporalQuery' + +import { useTemporal } from '@/context/TemporalContext' + +type Thing = { + '@iot.id': number + name: string + description: string + systemTimeValidity?: string +} + +export default function ThingsPage() { + const { mode, asOf } = useTemporal() + const { data, loading, error, activeUrl } = useTemporalQuery<{ value: Thing[] }>( + '/api/things' + ) + + const items = data?.value || [] + + return ( +
+
+
+

Things

+

Review entity metadata across live and historical states.

+
+ + +
+ +
+ GET {activeUrl} +
+
+
+ + {mode !== 'current' && items.length === 0 && ( + + )} + + {loading &&

Loading...

} + {error &&

{error.message}

} + + + + + ID + Name + Description + System validity + + + {(item) => ( + + {item['@iot.id']} + {item.name} + {item.description} + {item.systemTimeValidity || '-'} + + )} + +
+
+
+
+ ) +} diff --git a/ui/components/PhantomEditWarning.tsx b/ui/components/PhantomEditWarning.tsx new file mode 100644 index 00000000..df3167bb --- /dev/null +++ b/ui/components/PhantomEditWarning.tsx @@ -0,0 +1,26 @@ +'use client' + +/* + * Copyright 2025 SUPSI + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { Card } from '@heroui/card' + +export default function PhantomEditWarning() { + return ( + + Note: Changes to phenomenonTime and observedArea are not versioned. The history below reflects only metadata and configuration changes. + + ) +} diff --git a/ui/components/TemporalBadge.tsx b/ui/components/TemporalBadge.tsx new file mode 100644 index 00000000..12f982db --- /dev/null +++ b/ui/components/TemporalBadge.tsx @@ -0,0 +1,62 @@ +'use client' + +/* + * Copyright 2025 SUPSI + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { Chip } from '@heroui/chip' +import dayjs from 'dayjs' + +import { useTemporal } from '@/context/TemporalContext' + +export default function TemporalBadge() { + const { mode, asOf, fromTo, reset } = useTemporal() + + if (mode === 'current') { + return ( + + ● Live + + ) + } + + if (mode === 'as_of') { + const label = asOf ? dayjs(asOf).format('MMM D, YYYY, HH:mm') : 'Not set' + return ( + + ◷ As-of: {label} + + ) + } + + const fromLabel = fromTo?.[0] ? dayjs(fromTo[0]).format('MMM D, YYYY HH:mm') : '-' + const toLabel = fromTo?.[1] ? dayjs(fromTo[1]).format('MMM D, YYYY HH:mm') : '-' + return ( + + ↔ {fromLabel} – {toLabel} + + ) +} diff --git a/ui/components/TemporalConflictWarning.tsx b/ui/components/TemporalConflictWarning.tsx new file mode 100644 index 00000000..42f7a95d --- /dev/null +++ b/ui/components/TemporalConflictWarning.tsx @@ -0,0 +1,31 @@ +'use client' + +/* + * Copyright 2025 SUPSI + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { Card } from '@heroui/card' +import dayjs from 'dayjs' + +type Props = { + asOf?: string | null +} + +export default function TemporalConflictWarning({ asOf }: Props) { + return ( + + This entity did not exist at {asOf ? dayjs(asOf).format('MMM D, YYYY, HH:mm') : 'the selected time'}. Try a more recent timestamp. + + ) +} diff --git a/ui/components/TemporalModeSwitch.tsx b/ui/components/TemporalModeSwitch.tsx new file mode 100644 index 00000000..3d03efe9 --- /dev/null +++ b/ui/components/TemporalModeSwitch.tsx @@ -0,0 +1,121 @@ +'use client' + +/* + * Copyright 2025 SUPSI + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { Input } from '@heroui/input' +import { Tab, Tabs } from '@heroui/tabs' +import React from 'react' + +import { useTemporal } from '@/context/TemporalContext' + +function toLocalInputValue(value: string | null) { + if (!value) return '' + const date = new Date(value) + const tzOffset = date.getTimezoneOffset() * 60000 + return new Date(date.getTime() - tzOffset).toISOString().slice(0, 16) +} + +function fromLocalInputValue(value: string) { + if (!value) return null + return new Date(value).toISOString() +} + +export default function TemporalModeSwitch() { + const { mode, asOf, fromTo, setMode, setAsOf, setFromTo } = useTemporal() + + return ( +
+ setMode(String(key) as 'current' | 'as_of' | 'from_to')} + aria-label="Temporal mode switch" + variant="solid" + color="primary" + classNames={{ + tabList: 'bg-[var(--color-surface-elevated)] border border-[var(--color-border)]', + tab: 'text-[var(--color-text-secondary)] data-[selected=true]:text-white', + cursor: 'bg-[var(--color-accent)]', + }} + > + + + + + + {mode === 'as_of' && ( +
+ setAsOf(fromLocalInputValue(event.target.value))} + size="sm" + radius="sm" + classNames={{ + label: 'text-[var(--color-text-secondary)]', + inputWrapper: + 'bg-[var(--color-surface-elevated)] border border-[var(--color-border)] text-[var(--color-text-primary)]', + input: 'text-[var(--color-text-primary)]', + }} + /> +
+ )} + + {mode === 'from_to' && ( +
+ + setFromTo([ + fromLocalInputValue(event.target.value) || new Date().toISOString(), + fromTo?.[1] || new Date().toISOString(), + ]) + } + size="sm" + radius="sm" + classNames={{ + label: 'text-[var(--color-text-secondary)]', + inputWrapper: + 'bg-[var(--color-surface-elevated)] border border-[var(--color-border)] text-[var(--color-text-primary)]', + input: 'text-[var(--color-text-primary)]', + }} + /> + + setFromTo([ + fromTo?.[0] || new Date(Date.now() - 60 * 60 * 1000).toISOString(), + fromLocalInputValue(event.target.value) || new Date().toISOString(), + ]) + } + size="sm" + radius="sm" + classNames={{ + label: 'text-[var(--color-text-secondary)]', + inputWrapper: + 'bg-[var(--color-surface-elevated)] border border-[var(--color-border)] text-[var(--color-text-primary)]', + input: 'text-[var(--color-text-primary)]', + }} + /> +
+ )} +
+ ) +} diff --git a/ui/components/hooks/useTemporalQuery.tsx b/ui/components/hooks/useTemporalQuery.tsx new file mode 100644 index 00000000..afbfd675 --- /dev/null +++ b/ui/components/hooks/useTemporalQuery.tsx @@ -0,0 +1,61 @@ +'use client' + +/* + * Copyright 2025 SUPSI + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { useEffect, useMemo, useState } from 'react' + +import { useTemporal } from '@/context/TemporalContext' +import { appendTemporalParams } from '@/server/temporal' + +export function useTemporalQuery(baseUrl: string) { + const { mode, asOf, fromTo } = useTemporal() + const [data, setData] = useState(null) + const [loading, setLoading] = useState(true) + const [error, setError] = useState(null) + + const activeUrl = useMemo(() => { + return appendTemporalParams(baseUrl, { mode, asOf, fromTo }) + }, [baseUrl, mode, asOf, fromTo]) + + useEffect(() => { + let mounted = true + setLoading(true) + setError(null) + + fetch(activeUrl) + .then((response) => { + if (!response.ok) { + throw new Error(`Error fetching ${activeUrl}: ${response.status}`) + } + return response.json() + }) + .then((payload) => { + if (mounted) setData(payload) + }) + .catch((err) => { + if (mounted) setError(err as Error) + }) + .finally(() => { + if (mounted) setLoading(false) + }) + + return () => { + mounted = false + } + }, [activeUrl]) + + return { data, loading, error, activeUrl } +} diff --git a/ui/components/icons.tsx b/ui/components/icons.tsx index b1ca82fe..ee3faadd 100644 --- a/ui/components/icons.tsx +++ b/ui/components/icons.tsx @@ -13,6 +13,23 @@ // limitations under the License. import { IconSvgProps, LogoProps } from '@/types' +function normalizeBasePath(rawBasePath?: string) { + if (!rawBasePath) return '' + if (rawBasePath === 'undefined' || rawBasePath === 'null') return '' + + const trimmed = rawBasePath.trim() + if (!trimmed || trimmed === '/' || trimmed === 'undefined' || trimmed === 'null') { + return '' + } + + const withoutTrailing = trimmed.replace(/\/+$/, '') + return withoutTrailing.startsWith('/') ? withoutTrailing : `/${withoutTrailing}` +} + +const basePath = normalizeBasePath(process.env.NEXT_PUBLIC_BASE_PATH) +const logoIstSOSSrc = `${basePath}/istsos_logo.png` +const logoOSGeoSrc = `${basePath}/osgeo_logo.png` + export const LogoIstSOS = ({ size = 24, width, @@ -24,11 +41,7 @@ export const LogoIstSOS = ({ return ( Logo IstSOS l.code === selectedLang)?.flag ?? languages[0].flag + const prototypePages = [ + { label: 'Things', href: '/things' }, + { label: 'Datastreams', href: '/datastreams' }, + { label: 'Commits', href: '/commits' }, + { label: 'History', href: '/history' }, + ] + return ( -
-
+
+
-
+
+
+ +
+ +
+ {prototypePages.map((page) => ( + + ))} +
+
+ {showModeSwitchWarning ? ( +
+
+ {t( + 'wizard.mode_switch_warning_title', + 'Switch mode and keep drafts separated?' + )} +
+
+ {t( + 'wizard.mode_switch_warning_description', + 'Data entered in this mode stays here and is not automatically transferred to the other mode.' + )} +
+
+ + +
+
+ ) : null} +
{wizardMode === 'single' ? ( +

Activity (weekly view)

+
+ {buckets.map((bucket) => ( +
+ ))} +
+ + ) +} diff --git a/ui/features/history/components/HistoryDetails.tsx b/ui/features/history/components/HistoryDetails.tsx new file mode 100644 index 00000000..285ddaa1 --- /dev/null +++ b/ui/features/history/components/HistoryDetails.tsx @@ -0,0 +1,109 @@ +'use client' + +// Copyright 2026 SUPSI +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +import { Card } from '@heroui/card' +import { Chip } from '@heroui/chip' +import dayjs from 'dayjs' + +import { HistoryResponse } from '@/features/history/types' + +const actionColorMap = { + CREATE: 'success', + UPDATE: 'warning', + DELETE: 'danger', +} as const + +export default function HistoryDetails({ + data, + loading, +}: { + data: HistoryResponse | null + loading: boolean +}) { + if (loading) { + return

Loading history…

+ } + + if (!data) { + return

No history data loaded.

+ } + + return ( +
+ +

Entity snapshots

+
+ {data.value.map((snapshot) => ( +
+
+

{snapshot.label}

+

+ {dayjs(snapshot.snapshotAt).format('MMM D, YYYY HH:mm')} +

+
+

{snapshot.description}

+

+ systemTimeValidity: {snapshot.systemTimeValidity || '-'} +

+
+ {Object.entries(snapshot.meta).map(([key, value]) => ( +

+ {key}: {value} +

+ ))} +
+
+ ))} +
+
+ + +

Commit history with field-level diff

+
+ {data.commits.map((commit) => ( +
+
+
+

{commit.entityName}

+

+ {commit.author} · {dayjs(commit.date).format('MMM D, YYYY HH:mm')} +

+
+ + {commit.actionType} + +
+

{commit.message}

+ {commit.fieldDiff.length > 0 ? ( +
+ {commit.fieldDiff.map((diff, index) => ( +

+ {diff.field}: “{diff.before}” → “{diff.after}” +

+ ))} +
+ ) : ( +

No field diff for this action.

+ )} +
+ ))} +
+
+
+ ) +} diff --git a/ui/features/history/types.ts b/ui/features/history/types.ts new file mode 100644 index 00000000..2db59257 --- /dev/null +++ b/ui/features/history/types.ts @@ -0,0 +1,61 @@ +// Copyright 2026 SUPSI +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +export type HistoryEntityType = + | 'Thing' + | 'Sensor' + | 'Datastream' + | 'Location' + | 'ObservedProperty' + | 'FeatureOfInterest' + +export type HistoryAction = 'CREATE' | 'UPDATE' | 'DELETE' + +export interface FieldDiffItem { + field: string + before: string + after: string +} + +export interface HistoryCommit { + id: number + entityType: HistoryEntityType + entityId: number + entityName: string + author: string + message: string + date: string + actionType: HistoryAction + fieldDiff: FieldDiffItem[] +} + +export interface HistorySnapshot { + id: number + label: string + description: string + snapshotAt: string + systemTimeValidity?: string + meta: Record +} + +export interface HistoryResponse { + entityType: HistoryEntityType + value: HistorySnapshot[] + commits: HistoryCommit[] +} + +export interface ActivityBucket { + date: string + count: number +} diff --git a/ui/features/map/components/MapMenu.tsx b/ui/features/map/components/MapMenu.tsx index 63b09c98..5b2491b0 100644 --- a/ui/features/map/components/MapMenu.tsx +++ b/ui/features/map/components/MapMenu.tsx @@ -26,10 +26,22 @@ const THUMBS: Record = { pixelColor: { left: -205, top: 0 }, } -const SPRITE_URL = - process.env.NODE_ENV === 'development' - ? `${process.env.NEXT_PUBLIC_BASE_PATH}/basemapimage.jpeg` - : '/NEXT_APP_URL/basemapimage.jpeg' +function normalizeBasePath(rawBasePath?: string) { + if (!rawBasePath) return '' + if (rawBasePath === 'undefined' || rawBasePath === 'null') return '' + + const trimmed = rawBasePath.trim() + if (!trimmed || trimmed === '/' || trimmed === 'undefined' || trimmed === 'null') { + return '' + } + + const withoutTrailing = trimmed.replace(/\/+$/, '') + return withoutTrailing.startsWith('/') ? withoutTrailing : `/${withoutTrailing}` +} + +const BASE_PATH = normalizeBasePath(process.env.NEXT_PUBLIC_BASE_PATH) + +const SPRITE_URL = `${BASE_PATH}/basemapimage.jpeg` function Thumb({ k }: { k: BasemapKey }) { const pos = THUMBS[k] diff --git a/ui/jest.config.cjs b/ui/jest.config.cjs new file mode 100644 index 00000000..0d9908f0 --- /dev/null +++ b/ui/jest.config.cjs @@ -0,0 +1,26 @@ +/* + * Copyright 2025 SUPSI + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +module.exports = { + testEnvironment: 'jsdom', + modulePathIgnorePatterns: ['/.next/'], + transform: { + '^.+\\.tsx?$': ['ts-jest', { tsconfig: 'tsconfig.json' }], + }, + moduleNameMapper: { + '^@/(.*)$': '/$1', + }, + setupFilesAfterEnv: ['/jest.setup.ts'], +} diff --git a/ui/jest.setup.ts b/ui/jest.setup.ts new file mode 100644 index 00000000..18edd1ef --- /dev/null +++ b/ui/jest.setup.ts @@ -0,0 +1,26 @@ +/* + * Copyright 2025 SUPSI + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import '@testing-library/jest-dom' + +class ResizeObserverMock { + observe() {} + unobserve() {} + disconnect() {} +} + +if (!global.ResizeObserver) { + ;(global as any).ResizeObserver = ResizeObserverMock +} diff --git a/ui/next.config.js b/ui/next.config.js index 90f6b585..b778258e 100644 --- a/ui/next.config.js +++ b/ui/next.config.js @@ -1,4 +1,17 @@ /** @type {import('next').NextConfig} */ +const normalizeBasePath = (value) => { + if (!value) return undefined + if (value === 'undefined' || value === 'null') return undefined + + const trimmed = value.trim() + if (!trimmed || trimmed === '/' || trimmed === 'undefined' || trimmed === 'null') { + return undefined + } + + const noTrailingSlash = trimmed.replace(/\/+$/, '') + return noTrailingSlash.startsWith('/') ? noTrailingSlash : `/${noTrailingSlash}` +} + const nextConfig = { output: 'standalone', env: { @@ -7,8 +20,8 @@ const nextConfig = { }, basePath: process.env.NODE_ENV === 'development' - ? process.env.NEXT_PUBLIC_BASE_PATH - : '/NEXT_APP_URL', + ? normalizeBasePath(process.env.NEXT_PUBLIC_BASE_PATH) + : normalizeBasePath('/NEXT_APP_URL'), } module.exports = nextConfig diff --git a/ui/package.json b/ui/package.json index b0b54227..3f6458ae 100644 --- a/ui/package.json +++ b/ui/package.json @@ -6,7 +6,9 @@ "dev": "next dev", "build": "next build", "start": "next start", - "lint": "eslint ." + "lint": "eslint .", + "test": "jest", + "test:ci": "jest --runInBand --ci" }, "dependencies": { "@heroui/accordion": "2.2.27", @@ -49,16 +51,23 @@ }, "devDependencies": { "@tailwindcss/postcss": "4.1.18", + "@testing-library/jest-dom": "^6.9.1", + "@testing-library/react": "^16.3.2", + "@testing-library/user-event": "^14.6.1", "@trivago/prettier-plugin-sort-imports": "5.2.2", + "@types/jest": "^30.0.0", "@types/leaflet.markercluster": "1.5.6", "@types/node": "25.2.3", "@types/proj4": "2.5.6", "@types/react": "19.2.13", "eslint": "^9.39.4", "eslint-config-next": "^16.2.1", + "jest": "^30.3.0", + "jest-environment-jsdom": "^30.3.0", "postcss": "8.5.6", "prettier": "3.8.1", "tailwindcss": "4.1.18", + "ts-jest": "^29.4.6", "typescript": "5.9.3" } } diff --git a/ui/server/temporal.ts b/ui/server/temporal.ts new file mode 100644 index 00000000..eee324a6 --- /dev/null +++ b/ui/server/temporal.ts @@ -0,0 +1,45 @@ +/* + * Copyright 2025 SUPSI + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { TemporalState } from '@/types/temporal' + +function isAbsoluteUrl(url: string) { + return /^https?:\/\//i.test(url) +} + +export function appendTemporalParams( + endpoint: string, + temporal?: TemporalState +): string { + if (!temporal || temporal.mode === 'current') return endpoint + + const absolute = isAbsoluteUrl(endpoint) + const base = absolute ? undefined : 'http://localhost' + const url = new URL(endpoint, base) + + if (temporal.mode === 'as_of' && temporal.asOf) { + url.searchParams.set('$as_of', temporal.asOf) + url.searchParams.delete('$from_to') + } + + if (temporal.mode === 'from_to' && temporal.fromTo) { + url.searchParams.set('$from_to', `${temporal.fromTo[0]},${temporal.fromTo[1]}`) + url.searchParams.delete('$as_of') + } + + if (absolute) return url.toString() + return `${url.pathname}${url.search}` +} diff --git a/ui/styles/globals.css b/ui/styles/globals.css index 0ca06d6a..794d6c92 100644 --- a/ui/styles/globals.css +++ b/ui/styles/globals.css @@ -9,7 +9,55 @@ @theme { --font-sans: "font", sans-serif; --font-mono: "monospace", monospace; - --color-primary: #008374; + --color-primary: #16a34a; +} + +:root { + --color-bg: #0b0f14; + --color-surface: #111827; + --color-surface-elevated: #182230; + --color-accent: #16a34a; + --color-accent-hover: #15803d; + --color-text-primary: #f3f7fb; + --color-text-secondary: #a9b4c0; + --color-text-tertiary: #8b97a6; + --color-border: #2a3441; + --color-border-strong: #364356; + --content-max-width: 1200px; +} + +.page-shell { + min-height: calc(100vh - 56px); + padding: 32px 16px 56px; +} + +.page-container { + margin: 0 auto; + width: 100%; + max-width: var(--content-max-width); +} + +.page-header { + margin-bottom: 24px; +} + +.page-title { + font-size: clamp(1.75rem, 2.8vw, 2.5rem); + font-weight: 700; + line-height: 1.1; + color: var(--color-text-primary); +} + +.page-subtitle { + margin-top: 8px; + color: var(--color-text-secondary); + font-size: 0.95rem; +} + +.section-card { + border: 1px solid var(--color-border); + background: var(--color-surface); + border-radius: 14px; } .marker-cluster-net { diff --git a/ui/tsconfig.tsbuildinfo b/ui/tsconfig.tsbuildinfo deleted file mode 100644 index 5a00b52a..00000000 --- a/ui/tsconfig.tsbuildinfo +++ /dev/null @@ -1 +0,0 @@ -{"fileNames":["./node_modules/typescript/lib/lib.es5.d.ts","./node_modules/typescript/lib/lib.es2015.d.ts","./node_modules/typescript/lib/lib.es2016.d.ts","./node_modules/typescript/lib/lib.es2017.d.ts","./node_modules/typescript/lib/lib.es2018.d.ts","./node_modules/typescript/lib/lib.es2019.d.ts","./node_modules/typescript/lib/lib.es2020.d.ts","./node_modules/typescript/lib/lib.es2021.d.ts","./node_modules/typescript/lib/lib.es2022.d.ts","./node_modules/typescript/lib/lib.es2023.d.ts","./node_modules/typescript/lib/lib.es2024.d.ts","./node_modules/typescript/lib/lib.esnext.d.ts","./node_modules/typescript/lib/lib.dom.d.ts","./node_modules/typescript/lib/lib.dom.iterable.d.ts","./node_modules/typescript/lib/lib.es2015.core.d.ts","./node_modules/typescript/lib/lib.es2015.collection.d.ts","./node_modules/typescript/lib/lib.es2015.generator.d.ts","./node_modules/typescript/lib/lib.es2015.iterable.d.ts","./node_modules/typescript/lib/lib.es2015.promise.d.ts","./node_modules/typescript/lib/lib.es2015.proxy.d.ts","./node_modules/typescript/lib/lib.es2015.reflect.d.ts","./node_modules/typescript/lib/lib.es2015.symbol.d.ts","./node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","./node_modules/typescript/lib/lib.es2016.array.include.d.ts","./node_modules/typescript/lib/lib.es2016.intl.d.ts","./node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","./node_modules/typescript/lib/lib.es2017.date.d.ts","./node_modules/typescript/lib/lib.es2017.object.d.ts","./node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","./node_modules/typescript/lib/lib.es2017.string.d.ts","./node_modules/typescript/lib/lib.es2017.intl.d.ts","./node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","./node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","./node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","./node_modules/typescript/lib/lib.es2018.intl.d.ts","./node_modules/typescript/lib/lib.es2018.promise.d.ts","./node_modules/typescript/lib/lib.es2018.regexp.d.ts","./node_modules/typescript/lib/lib.es2019.array.d.ts","./node_modules/typescript/lib/lib.es2019.object.d.ts","./node_modules/typescript/lib/lib.es2019.string.d.ts","./node_modules/typescript/lib/lib.es2019.symbol.d.ts","./node_modules/typescript/lib/lib.es2019.intl.d.ts","./node_modules/typescript/lib/lib.es2020.bigint.d.ts","./node_modules/typescript/lib/lib.es2020.date.d.ts","./node_modules/typescript/lib/lib.es2020.promise.d.ts","./node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","./node_modules/typescript/lib/lib.es2020.string.d.ts","./node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","./node_modules/typescript/lib/lib.es2020.intl.d.ts","./node_modules/typescript/lib/lib.es2020.number.d.ts","./node_modules/typescript/lib/lib.es2021.promise.d.ts","./node_modules/typescript/lib/lib.es2021.string.d.ts","./node_modules/typescript/lib/lib.es2021.weakref.d.ts","./node_modules/typescript/lib/lib.es2021.intl.d.ts","./node_modules/typescript/lib/lib.es2022.array.d.ts","./node_modules/typescript/lib/lib.es2022.error.d.ts","./node_modules/typescript/lib/lib.es2022.intl.d.ts","./node_modules/typescript/lib/lib.es2022.object.d.ts","./node_modules/typescript/lib/lib.es2022.string.d.ts","./node_modules/typescript/lib/lib.es2022.regexp.d.ts","./node_modules/typescript/lib/lib.es2023.array.d.ts","./node_modules/typescript/lib/lib.es2023.collection.d.ts","./node_modules/typescript/lib/lib.es2023.intl.d.ts","./node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts","./node_modules/typescript/lib/lib.es2024.collection.d.ts","./node_modules/typescript/lib/lib.es2024.object.d.ts","./node_modules/typescript/lib/lib.es2024.promise.d.ts","./node_modules/typescript/lib/lib.es2024.regexp.d.ts","./node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts","./node_modules/typescript/lib/lib.es2024.string.d.ts","./node_modules/typescript/lib/lib.esnext.array.d.ts","./node_modules/typescript/lib/lib.esnext.collection.d.ts","./node_modules/typescript/lib/lib.esnext.intl.d.ts","./node_modules/typescript/lib/lib.esnext.disposable.d.ts","./node_modules/typescript/lib/lib.esnext.promise.d.ts","./node_modules/typescript/lib/lib.esnext.decorators.d.ts","./node_modules/typescript/lib/lib.esnext.iterator.d.ts","./node_modules/typescript/lib/lib.esnext.float16.d.ts","./node_modules/typescript/lib/lib.esnext.error.d.ts","./node_modules/typescript/lib/lib.esnext.sharedmemory.d.ts","./node_modules/typescript/lib/lib.decorators.d.ts","./node_modules/typescript/lib/lib.decorators.legacy.d.ts","./node_modules/@types/react/global.d.ts","./node_modules/csstype/index.d.ts","./node_modules/@types/react/index.d.ts","./node_modules/next/dist/styled-jsx/types/css.d.ts","./node_modules/next/dist/styled-jsx/types/macro.d.ts","./node_modules/next/dist/styled-jsx/types/style.d.ts","./node_modules/next/dist/styled-jsx/types/global.d.ts","./node_modules/next/dist/styled-jsx/types/index.d.ts","./node_modules/next/dist/server/get-page-files.d.ts","./node_modules/@types/node/compatibility/iterators.d.ts","./node_modules/@types/node/globals.typedarray.d.ts","./node_modules/@types/node/buffer.buffer.d.ts","./node_modules/@types/node/globals.d.ts","./node_modules/@types/node/web-globals/abortcontroller.d.ts","./node_modules/@types/node/web-globals/blob.d.ts","./node_modules/@types/node/web-globals/console.d.ts","./node_modules/@types/node/web-globals/crypto.d.ts","./node_modules/@types/node/web-globals/domexception.d.ts","./node_modules/@types/node/web-globals/encoding.d.ts","./node_modules/@types/node/web-globals/events.d.ts","./node_modules/undici-types/utility.d.ts","./node_modules/undici-types/header.d.ts","./node_modules/undici-types/readable.d.ts","./node_modules/undici-types/fetch.d.ts","./node_modules/undici-types/formdata.d.ts","./node_modules/undici-types/connector.d.ts","./node_modules/undici-types/client-stats.d.ts","./node_modules/undici-types/client.d.ts","./node_modules/undici-types/errors.d.ts","./node_modules/undici-types/dispatcher.d.ts","./node_modules/undici-types/global-dispatcher.d.ts","./node_modules/undici-types/global-origin.d.ts","./node_modules/undici-types/pool-stats.d.ts","./node_modules/undici-types/pool.d.ts","./node_modules/undici-types/handlers.d.ts","./node_modules/undici-types/balanced-pool.d.ts","./node_modules/undici-types/h2c-client.d.ts","./node_modules/undici-types/agent.d.ts","./node_modules/undici-types/mock-interceptor.d.ts","./node_modules/undici-types/mock-call-history.d.ts","./node_modules/undici-types/mock-agent.d.ts","./node_modules/undici-types/mock-client.d.ts","./node_modules/undici-types/mock-pool.d.ts","./node_modules/undici-types/snapshot-agent.d.ts","./node_modules/undici-types/mock-errors.d.ts","./node_modules/undici-types/proxy-agent.d.ts","./node_modules/undici-types/env-http-proxy-agent.d.ts","./node_modules/undici-types/retry-handler.d.ts","./node_modules/undici-types/retry-agent.d.ts","./node_modules/undici-types/api.d.ts","./node_modules/undici-types/cache-interceptor.d.ts","./node_modules/undici-types/interceptors.d.ts","./node_modules/undici-types/util.d.ts","./node_modules/undici-types/cookies.d.ts","./node_modules/undici-types/patch.d.ts","./node_modules/undici-types/websocket.d.ts","./node_modules/undici-types/eventsource.d.ts","./node_modules/undici-types/diagnostics-channel.d.ts","./node_modules/undici-types/content-type.d.ts","./node_modules/undici-types/cache.d.ts","./node_modules/undici-types/index.d.ts","./node_modules/@types/node/web-globals/fetch.d.ts","./node_modules/@types/node/web-globals/importmeta.d.ts","./node_modules/@types/node/web-globals/messaging.d.ts","./node_modules/@types/node/web-globals/navigator.d.ts","./node_modules/@types/node/web-globals/performance.d.ts","./node_modules/@types/node/web-globals/storage.d.ts","./node_modules/@types/node/web-globals/streams.d.ts","./node_modules/@types/node/web-globals/timers.d.ts","./node_modules/@types/node/web-globals/url.d.ts","./node_modules/@types/node/assert.d.ts","./node_modules/@types/node/assert/strict.d.ts","./node_modules/@types/node/async_hooks.d.ts","./node_modules/@types/node/buffer.d.ts","./node_modules/@types/node/child_process.d.ts","./node_modules/@types/node/cluster.d.ts","./node_modules/@types/node/console.d.ts","./node_modules/@types/node/constants.d.ts","./node_modules/@types/node/crypto.d.ts","./node_modules/@types/node/dgram.d.ts","./node_modules/@types/node/diagnostics_channel.d.ts","./node_modules/@types/node/dns.d.ts","./node_modules/@types/node/dns/promises.d.ts","./node_modules/@types/node/domain.d.ts","./node_modules/@types/node/events.d.ts","./node_modules/@types/node/fs.d.ts","./node_modules/@types/node/fs/promises.d.ts","./node_modules/@types/node/http.d.ts","./node_modules/@types/node/http2.d.ts","./node_modules/@types/node/https.d.ts","./node_modules/@types/node/inspector.d.ts","./node_modules/@types/node/inspector.generated.d.ts","./node_modules/@types/node/inspector/promises.d.ts","./node_modules/@types/node/module.d.ts","./node_modules/@types/node/net.d.ts","./node_modules/@types/node/os.d.ts","./node_modules/@types/node/path.d.ts","./node_modules/@types/node/path/posix.d.ts","./node_modules/@types/node/path/win32.d.ts","./node_modules/@types/node/perf_hooks.d.ts","./node_modules/@types/node/process.d.ts","./node_modules/@types/node/punycode.d.ts","./node_modules/@types/node/querystring.d.ts","./node_modules/@types/node/quic.d.ts","./node_modules/@types/node/readline.d.ts","./node_modules/@types/node/readline/promises.d.ts","./node_modules/@types/node/repl.d.ts","./node_modules/@types/node/sea.d.ts","./node_modules/@types/node/sqlite.d.ts","./node_modules/@types/node/stream.d.ts","./node_modules/@types/node/stream/consumers.d.ts","./node_modules/@types/node/stream/promises.d.ts","./node_modules/@types/node/stream/web.d.ts","./node_modules/@types/node/string_decoder.d.ts","./node_modules/@types/node/test.d.ts","./node_modules/@types/node/test/reporters.d.ts","./node_modules/@types/node/timers.d.ts","./node_modules/@types/node/timers/promises.d.ts","./node_modules/@types/node/tls.d.ts","./node_modules/@types/node/trace_events.d.ts","./node_modules/@types/node/tty.d.ts","./node_modules/@types/node/url.d.ts","./node_modules/@types/node/util.d.ts","./node_modules/@types/node/util/types.d.ts","./node_modules/@types/node/v8.d.ts","./node_modules/@types/node/vm.d.ts","./node_modules/@types/node/wasi.d.ts","./node_modules/@types/node/worker_threads.d.ts","./node_modules/@types/node/zlib.d.ts","./node_modules/@types/node/index.d.ts","./node_modules/@types/react/canary.d.ts","./node_modules/@types/react/experimental.d.ts","./node_modules/next/dist/lib/fallback.d.ts","./node_modules/next/dist/compiled/webpack/webpack.d.ts","./node_modules/next/dist/shared/lib/modern-browserslist-target.d.ts","./node_modules/next/dist/shared/lib/entry-constants.d.ts","./node_modules/next/dist/shared/lib/constants.d.ts","./node_modules/next/dist/lib/bundler.d.ts","./node_modules/next/dist/server/config.d.ts","./node_modules/next/dist/lib/load-custom-routes.d.ts","./node_modules/next/dist/shared/lib/image-config.d.ts","./node_modules/next/dist/build/webpack/plugins/subresource-integrity-plugin.d.ts","./node_modules/next/dist/server/body-streams.d.ts","./node_modules/next/dist/server/request/search-params.d.ts","./node_modules/next/dist/shared/lib/segment-cache/vary-params-decoding.d.ts","./node_modules/next/dist/server/app-render/vary-params.d.ts","./node_modules/next/dist/server/request/params.d.ts","./node_modules/next/dist/server/route-kind.d.ts","./node_modules/next/dist/server/route-definitions/route-definition.d.ts","./node_modules/next/dist/server/route-matches/route-match.d.ts","./node_modules/next/dist/client/components/app-router-headers.d.ts","./node_modules/next/dist/server/lib/cache-control.d.ts","./node_modules/next/dist/shared/lib/app-router-types.d.ts","./node_modules/next/dist/server/lib/cache-handlers/types.d.ts","./node_modules/next/dist/server/use-cache/use-cache-wrapper.d.ts","./node_modules/next/dist/server/resume-data-cache/cache-store.d.ts","./node_modules/next/dist/server/resume-data-cache/resume-data-cache.d.ts","./node_modules/next/dist/lib/constants.d.ts","./node_modules/next/dist/server/render-result.d.ts","./node_modules/next/dist/server/response-cache/types.d.ts","./node_modules/next/dist/server/response-cache/index.d.ts","./node_modules/@types/react/jsx-runtime.d.ts","./node_modules/next/dist/next-devtools/userspace/pages/pages-dev-overlay-setup.d.ts","./node_modules/next/dist/build/static-paths/types.d.ts","./node_modules/next/dist/server/route-definitions/app-page-route-definition.d.ts","./node_modules/next/dist/build/adapter/setup-node-env.external.d.ts","./node_modules/next/dist/server/instrumentation/types.d.ts","./node_modules/next/dist/lib/setup-exception-listeners.d.ts","./node_modules/next/dist/lib/worker.d.ts","./node_modules/next/dist/server/lib/experimental/ppr.d.ts","./node_modules/next/dist/lib/page-types.d.ts","./node_modules/next/dist/build/segment-config/app/app-segment-config.d.ts","./node_modules/next/dist/build/segment-config/pages/pages-segment-config.d.ts","./node_modules/next/dist/build/analysis/get-page-static-info.d.ts","./node_modules/next/dist/build/webpack/loaders/get-module-build-info.d.ts","./node_modules/next/dist/build/webpack/plugins/middleware-plugin.d.ts","./node_modules/next/dist/server/require-hook.d.ts","./node_modules/next/dist/server/node-polyfill-crypto.d.ts","./node_modules/next/dist/server/node-environment-baseline.d.ts","./node_modules/next/dist/server/node-environment-extensions/error-inspect.d.ts","./node_modules/next/dist/server/node-environment-extensions/console-file.d.ts","./node_modules/next/dist/server/node-environment-extensions/console-exit.d.ts","./node_modules/next/dist/server/node-environment-extensions/console-dim.external.d.ts","./node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.d.ts","./node_modules/next/dist/server/node-environment-extensions/random.d.ts","./node_modules/next/dist/server/node-environment-extensions/date.d.ts","./node_modules/next/dist/server/node-environment-extensions/web-crypto.d.ts","./node_modules/next/dist/server/node-environment-extensions/node-crypto.d.ts","./node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.d.ts","./node_modules/next/dist/server/node-environment.d.ts","./node_modules/next/dist/build/page-extensions-type.d.ts","./node_modules/next/dist/server/route-modules/app-page/module.compiled.d.ts","./node_modules/next/dist/server/route-definitions/app-route-route-definition.d.ts","./node_modules/next/dist/server/lib/i18n-provider.d.ts","./node_modules/next/dist/server/web/next-url.d.ts","./node_modules/next/dist/compiled/@edge-runtime/cookies/index.d.ts","./node_modules/next/dist/server/web/spec-extension/cookies.d.ts","./node_modules/next/dist/server/web/spec-extension/request.d.ts","./node_modules/next/dist/shared/lib/deep-readonly.d.ts","./node_modules/next/dist/server/lib/incremental-cache/index.d.ts","./node_modules/next/dist/shared/lib/router/utils/middleware-route-matcher.d.ts","./node_modules/next/dist/build/webpack/plugins/flight-manifest-plugin.d.ts","./node_modules/next/dist/build/webpack/plugins/next-font-manifest-plugin.d.ts","./node_modules/next/dist/server/route-definitions/locale-route-definition.d.ts","./node_modules/next/dist/server/route-definitions/pages-route-definition.d.ts","./node_modules/next/dist/shared/lib/mitt.d.ts","./node_modules/next/dist/client/with-router.d.ts","./node_modules/next/dist/client/router.d.ts","./node_modules/next/dist/client/route-loader.d.ts","./node_modules/next/dist/client/page-loader.d.ts","./node_modules/next/dist/shared/lib/bloom-filter.d.ts","./node_modules/next/dist/shared/lib/router/router.d.ts","./node_modules/next/dist/shared/lib/router-context.shared-runtime.d.ts","./node_modules/next/dist/shared/lib/loadable-context.shared-runtime.d.ts","./node_modules/next/dist/shared/lib/loadable.shared-runtime.d.ts","./node_modules/next/dist/shared/lib/image-config-context.shared-runtime.d.ts","./node_modules/next/dist/client/components/readonly-url-search-params.d.ts","./node_modules/next/dist/shared/lib/hooks-client-context.shared-runtime.d.ts","./node_modules/next/dist/shared/lib/head-manager-context.shared-runtime.d.ts","./node_modules/next/dist/client/flight-data-helpers.d.ts","./node_modules/next/dist/client/components/segment-cache/cache-key.d.ts","./node_modules/next/dist/client/components/router-reducer/fetch-server-response.d.ts","./node_modules/next/dist/client/components/segment-cache/types.d.ts","./node_modules/next/dist/shared/lib/segment-cache/segment-value-encoding.d.ts","./node_modules/next/dist/client/components/segment-cache/scheduler.d.ts","./node_modules/next/dist/client/components/segment-cache/cache-map.d.ts","./node_modules/next/dist/client/components/segment-cache/vary-path.d.ts","./node_modules/next/dist/client/components/segment-cache/cache.d.ts","./node_modules/next/dist/client/components/router-reducer/ppr-navigations.d.ts","./node_modules/next/dist/client/components/segment-cache/navigation.d.ts","./node_modules/next/dist/client/components/router-reducer/router-reducer-types.d.ts","./node_modules/next/dist/shared/lib/app-router-context.shared-runtime.d.ts","./node_modules/next/dist/shared/lib/server-inserted-html.shared-runtime.d.ts","./node_modules/next/dist/server/route-modules/pages/vendored/contexts/entrypoints.d.ts","./node_modules/next/dist/server/route-modules/pages/module.compiled.d.ts","./node_modules/next/dist/build/templates/pages.d.ts","./node_modules/next/dist/server/route-modules/pages/module.d.ts","./node_modules/next/dist/server/render.d.ts","./node_modules/next/dist/build/webpack/plugins/pages-manifest-plugin.d.ts","./node_modules/next/dist/server/route-definitions/pages-api-route-definition.d.ts","./node_modules/next/dist/server/route-matches/pages-api-route-match.d.ts","./node_modules/next/dist/server/route-matchers/route-matcher.d.ts","./node_modules/next/dist/server/route-matcher-providers/route-matcher-provider.d.ts","./node_modules/next/dist/server/route-matcher-managers/route-matcher-manager.d.ts","./node_modules/next/dist/server/normalizers/normalizer.d.ts","./node_modules/next/dist/server/normalizers/locale-route-normalizer.d.ts","./node_modules/next/dist/server/normalizers/request/pathname-normalizer.d.ts","./node_modules/next/dist/server/normalizers/request/suffix.d.ts","./node_modules/next/dist/server/normalizers/request/rsc.d.ts","./node_modules/next/dist/server/normalizers/request/next-data.d.ts","./node_modules/next/dist/server/after/builtin-request-context.d.ts","./node_modules/next/dist/server/normalizers/request/segment-prefix-rsc.d.ts","./node_modules/next/dist/server/route-modules/pages/builtin/_error.d.ts","./node_modules/next/dist/server/load-default-error-components.d.ts","./node_modules/next/dist/server/base-server.d.ts","./node_modules/next/dist/server/after/after.d.ts","./node_modules/next/dist/server/after/after-context.d.ts","./node_modules/next/dist/server/use-cache/cache-life.d.ts","./node_modules/next/dist/server/app-render/work-async-storage-instance.d.ts","./node_modules/next/dist/server/lib/lazy-result.d.ts","./node_modules/next/dist/server/app-render/create-error-handler.d.ts","./node_modules/next/dist/shared/lib/action-revalidation-kind.d.ts","./node_modules/next/dist/server/app-render/work-async-storage.external.d.ts","./node_modules/next/dist/server/async-storage/work-store.d.ts","./node_modules/next/dist/server/web/http.d.ts","./node_modules/next/dist/client/components/hooks-server-context.d.ts","./node_modules/next/dist/server/route-modules/app-route/shared-modules.d.ts","./node_modules/next/dist/client/components/redirect-status-code.d.ts","./node_modules/next/dist/client/components/redirect-error.d.ts","./node_modules/next/dist/server/web/spec-extension/adapters/request-cookies.d.ts","./node_modules/next/dist/server/async-storage/draft-mode-provider.d.ts","./node_modules/next/dist/server/web/spec-extension/adapters/headers.d.ts","./node_modules/next/dist/server/app-render/cache-signal.d.ts","./node_modules/next/dist/server/app-render/instant-validation/boundary-tracking.d.ts","./node_modules/next/dist/server/app-render/instant-validation/instant-validation-error.d.ts","./node_modules/next/dist/shared/lib/router/utils/parse-relative-url.d.ts","./node_modules/next/dist/server/app-render/instant-validation/instant-samples.d.ts","./node_modules/next/dist/server/app-render/dynamic-rendering.d.ts","./node_modules/next/dist/server/app-render/work-unit-async-storage-instance.d.ts","./node_modules/next/dist/server/lib/implicit-tags.d.ts","./node_modules/next/dist/server/app-render/staged-rendering.d.ts","./node_modules/next/dist/server/app-render/work-unit-async-storage.external.d.ts","./node_modules/next/dist/build/templates/app-route.d.ts","./node_modules/next/dist/server/app-render/action-async-storage-instance.d.ts","./node_modules/next/dist/server/app-render/action-async-storage.external.d.ts","./node_modules/next/dist/server/route-modules/app-route/module.d.ts","./node_modules/next/dist/server/route-modules/app-route/module.compiled.d.ts","./node_modules/next/dist/build/segment-config/app/app-segments.d.ts","./node_modules/next/dist/build/get-supported-browsers.d.ts","./node_modules/next/dist/build/utils.d.ts","./node_modules/next/dist/build/rendering-mode.d.ts","./node_modules/next/dist/server/lib/router-utils/build-prefetch-segment-data-route.d.ts","./node_modules/next/dist/server/lib/cpu-profile.d.ts","./node_modules/next/dist/build/turborepo-access-trace/types.d.ts","./node_modules/next/dist/build/turborepo-access-trace/result.d.ts","./node_modules/next/dist/build/turborepo-access-trace/helpers.d.ts","./node_modules/next/dist/build/turborepo-access-trace/index.d.ts","./node_modules/next/dist/export/routes/types.d.ts","./node_modules/next/dist/export/types.d.ts","./node_modules/next/dist/export/worker.d.ts","./node_modules/next/dist/build/worker.d.ts","./node_modules/next/dist/build/index.d.ts","./node_modules/next/dist/lib/coalesced-function.d.ts","./node_modules/next/dist/server/lib/router-utils/types.d.ts","./node_modules/next/dist/trace/types.d.ts","./node_modules/next/dist/trace/trace.d.ts","./node_modules/next/dist/trace/shared.d.ts","./node_modules/next/dist/trace/index.d.ts","./node_modules/next/dist/build/load-jsconfig.d.ts","./node_modules/@next/env/dist/index.d.ts","./node_modules/next/dist/build/webpack/plugins/telemetry-plugin/use-cache-tracker-utils.d.ts","./node_modules/next/dist/build/webpack/plugins/telemetry-plugin/telemetry-plugin.d.ts","./node_modules/next/dist/telemetry/storage.d.ts","./node_modules/next/dist/build/build-context.d.ts","./node_modules/next/dist/build/webpack-config.d.ts","./node_modules/next/dist/build/swc/generated-native.d.ts","./node_modules/next/dist/build/define-env.d.ts","./node_modules/next/dist/build/swc/index.d.ts","./node_modules/next/dist/build/swc/types.d.ts","./node_modules/next/dist/server/dev/parse-version-info.d.ts","./node_modules/next/dist/next-devtools/shared/types.d.ts","./node_modules/next/dist/server/dev/dev-indicator-server-state.d.ts","./node_modules/next/dist/next-devtools/dev-overlay/cache-indicator.d.ts","./node_modules/next/dist/server/lib/parse-stack.d.ts","./node_modules/next/dist/next-devtools/server/shared.d.ts","./node_modules/next/dist/next-devtools/shared/stack-frame.d.ts","./node_modules/next/dist/next-devtools/dev-overlay/utils/get-error-by-type.d.ts","./node_modules/next/dist/next-devtools/dev-overlay/container/runtime-error/render-error.d.ts","./node_modules/next/dist/next-devtools/dev-overlay/shared.d.ts","./node_modules/next/dist/server/dev/debug-channel.d.ts","./node_modules/next/dist/server/dev/hot-reloader-types.d.ts","./node_modules/next/dist/server/web/spec-extension/fetch-event.d.ts","./node_modules/next/dist/server/web/spec-extension/response.d.ts","./node_modules/next/dist/build/segment-config/middleware/middleware-config.d.ts","./node_modules/next/dist/server/web/types.d.ts","./node_modules/next/dist/shared/lib/router/utils/parse-url.d.ts","./node_modules/next/dist/server/base-http/node.d.ts","./node_modules/next/dist/server/lib/async-callback-set.d.ts","./node_modules/next/dist/shared/lib/router/utils/route-regex.d.ts","./node_modules/next/dist/shared/lib/router/utils/route-matcher.d.ts","./node_modules/sharp/lib/index.d.ts","./node_modules/next/dist/server/image-optimizer.d.ts","./node_modules/next/dist/server/next-server.d.ts","./node_modules/next/dist/server/lib/types.d.ts","./node_modules/next/dist/server/lib/lru-cache.d.ts","./node_modules/next/dist/server/lib/dev-bundler-service.d.ts","./node_modules/next/dist/server/dev/static-paths-worker.d.ts","./node_modules/next/dist/server/dev/next-dev-server.d.ts","./node_modules/next/dist/server/next.d.ts","./node_modules/next/dist/server/lib/render-server.d.ts","./node_modules/next/dist/server/lib/router-server.d.ts","./node_modules/next/dist/shared/lib/router/utils/path-match.d.ts","./node_modules/next/dist/server/lib/router-utils/filesystem.d.ts","./node_modules/next/dist/server/lib/router-utils/setup-dev-bundler.d.ts","./node_modules/next/dist/server/lib/router-utils/router-server-context.d.ts","./node_modules/next/dist/server/route-modules/route-module.d.ts","./node_modules/next/dist/server/load-components.d.ts","./node_modules/next/dist/server/web/adapter.d.ts","./node_modules/next/dist/server/app-render/types.d.ts","./node_modules/next/dist/build/webpack/loaders/metadata/types.d.ts","./node_modules/next/dist/build/webpack/loaders/next-app-loader/index.d.ts","./node_modules/next/dist/server/lib/app-dir-module.d.ts","./node_modules/next/dist/server/app-render/app-render.d.ts","./node_modules/next/dist/server/route-modules/app-page/vendored/contexts/entrypoints.d.ts","./node_modules/next/dist/client/components/error-boundary.d.ts","./node_modules/next/dist/client/components/layout-router.d.ts","./node_modules/next/dist/client/components/render-from-template-context.d.ts","./node_modules/next/dist/client/components/client-page.d.ts","./node_modules/next/dist/client/components/client-segment.d.ts","./node_modules/next/dist/client/components/http-access-fallback/error-boundary.d.ts","./node_modules/next/dist/lib/metadata/types/alternative-urls-types.d.ts","./node_modules/next/dist/lib/metadata/types/extra-types.d.ts","./node_modules/next/dist/lib/metadata/types/metadata-types.d.ts","./node_modules/next/dist/lib/metadata/types/manifest-types.d.ts","./node_modules/next/dist/lib/metadata/types/opengraph-types.d.ts","./node_modules/next/dist/lib/metadata/types/twitter-types.d.ts","./node_modules/next/dist/lib/metadata/types/metadata-interface.d.ts","./node_modules/next/dist/lib/metadata/types/resolvers.d.ts","./node_modules/next/dist/lib/metadata/types/icons.d.ts","./node_modules/next/dist/lib/metadata/resolve-metadata.d.ts","./node_modules/next/dist/lib/metadata/metadata.d.ts","./node_modules/next/dist/lib/framework/boundary-components.d.ts","./node_modules/next/dist/server/app-render/rsc/preloads.d.ts","./node_modules/next/dist/server/app-render/rsc/postpone.d.ts","./node_modules/next/dist/server/app-render/rsc/taint.d.ts","./node_modules/next/dist/server/app-render/collect-segment-data.d.ts","./node_modules/next/dist/server/app-render/instant-validation/instant-validation.d.ts","./node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.d.ts","./node_modules/next/dist/server/app-render/entry-base.d.ts","./node_modules/next/dist/build/templates/app-page.d.ts","./node_modules/next/dist/server/route-modules/app-page/helpers/prerender-manifest-matcher.d.ts","./node_modules/@types/react/jsx-dev-runtime.d.ts","./node_modules/@types/react/compiler-runtime.d.ts","./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/entrypoints.d.ts","./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/entrypoints.d.ts","./node_modules/next/dist/server/route-modules/app-page/module.d.ts","./node_modules/next/dist/server/request/fallback-params.d.ts","./node_modules/next/dist/server/web/spec-extension/image-response.d.ts","./node_modules/next/dist/server/web/spec-extension/user-agent.d.ts","./node_modules/next/dist/server/web/spec-extension/url-pattern.d.ts","./node_modules/next/dist/server/after/index.d.ts","./node_modules/next/dist/server/request/connection.d.ts","./node_modules/next/dist/server/web/exports/index.d.ts","./node_modules/next/dist/server/request-meta.d.ts","./node_modules/next/dist/cli/next-test.d.ts","./node_modules/next/dist/shared/lib/size-limit.d.ts","./node_modules/next/dist/server/config-shared.d.ts","./node_modules/next/dist/server/base-http/index.d.ts","./node_modules/next/dist/server/api-utils/index.d.ts","./node_modules/next/dist/build/adapter/build-complete.d.ts","./node_modules/next/dist/types.d.ts","./node_modules/next/dist/shared/lib/html-context.shared-runtime.d.ts","./node_modules/next/dist/shared/lib/utils.d.ts","./node_modules/next/dist/pages/_app.d.ts","./node_modules/next/app.d.ts","./node_modules/next/dist/server/web/spec-extension/unstable-cache.d.ts","./node_modules/next/dist/server/web/spec-extension/revalidate.d.ts","./node_modules/next/dist/server/web/spec-extension/unstable-no-store.d.ts","./node_modules/next/dist/server/use-cache/cache-tag.d.ts","./node_modules/next/cache.d.ts","./node_modules/next/dist/pages/_document.d.ts","./node_modules/next/document.d.ts","./node_modules/next/dist/shared/lib/dynamic.d.ts","./node_modules/next/dynamic.d.ts","./node_modules/next/dist/pages/_error.d.ts","./node_modules/next/dist/client/components/catch-error.d.ts","./node_modules/next/dist/api/error.d.ts","./node_modules/next/error.d.ts","./node_modules/next/dist/shared/lib/head.d.ts","./node_modules/next/head.d.ts","./node_modules/next/dist/server/request/cookies.d.ts","./node_modules/next/dist/server/request/headers.d.ts","./node_modules/next/dist/server/request/draft-mode.d.ts","./node_modules/next/headers.d.ts","./node_modules/next/dist/shared/lib/get-img-props.d.ts","./node_modules/next/dist/client/image-component.d.ts","./node_modules/next/dist/shared/lib/image-external.d.ts","./node_modules/next/image.d.ts","./node_modules/next/dist/client/link.d.ts","./node_modules/next/link.d.ts","./node_modules/next/dist/client/components/unrecognized-action-error.d.ts","./node_modules/next/dist/client/components/redirect.d.ts","./node_modules/next/dist/client/components/not-found.d.ts","./node_modules/next/dist/client/components/forbidden.d.ts","./node_modules/next/dist/client/components/unauthorized.d.ts","./node_modules/next/dist/client/components/unstable-rethrow.server.d.ts","./node_modules/next/dist/client/components/unstable-rethrow.d.ts","./node_modules/next/dist/client/components/navigation.react-server.d.ts","./node_modules/next/dist/client/components/navigation.d.ts","./node_modules/next/navigation.d.ts","./node_modules/next/router.d.ts","./node_modules/next/dist/client/script.d.ts","./node_modules/next/script.d.ts","./node_modules/next/dist/compiled/@edge-runtime/primitives/url.d.ts","./node_modules/next/dist/compiled/@vercel/og/satori/index.d.ts","./node_modules/next/dist/compiled/@vercel/og/types.d.ts","./node_modules/next/server.d.ts","./node_modules/next/types/global.d.ts","./node_modules/next/types/compiled.d.ts","./node_modules/next/types.d.ts","./node_modules/next/index.d.ts","./node_modules/next/image-types/global.d.ts","./.next/dev/types/routes.d.ts","./next-env.d.ts","./node_modules/tailwind-merge/dist/types.d.ts","./node_modules/tailwind-variants/dist/config.d.ts","./node_modules/tailwind-variants/dist/types.d.ts","./node_modules/tailwind-variants/dist/index.d.ts","./node_modules/@heroui/theme/dist/components/avatar.d.ts","./node_modules/@heroui/theme/dist/components/card.d.ts","./node_modules/@heroui/theme/dist/components/link.d.ts","./node_modules/@heroui/theme/dist/components/user.d.ts","./node_modules/@heroui/theme/dist/components/button.d.ts","./node_modules/@heroui/theme/dist/components/drip.d.ts","./node_modules/@heroui/theme/dist/components/spinner.d.ts","./node_modules/@heroui/theme/dist/components/code.d.ts","./node_modules/@heroui/theme/dist/components/popover.d.ts","./node_modules/@heroui/theme/dist/components/snippet.d.ts","./node_modules/@heroui/theme/dist/components/chip.d.ts","./node_modules/@heroui/theme/dist/components/badge.d.ts","./node_modules/@heroui/theme/dist/components/checkbox.d.ts","./node_modules/@heroui/theme/dist/components/radio.d.ts","./node_modules/@heroui/theme/dist/components/pagination.d.ts","./node_modules/@heroui/theme/dist/components/toggle.d.ts","./node_modules/@heroui/theme/dist/components/accordion.d.ts","./node_modules/@heroui/theme/dist/components/progress.d.ts","./node_modules/@heroui/theme/dist/components/input-otp.d.ts","./node_modules/@heroui/theme/dist/components/input.d.ts","./node_modules/@heroui/theme/dist/components/dropdown.d.ts","./node_modules/@heroui/theme/dist/components/image.d.ts","./node_modules/@heroui/theme/dist/components/modal.d.ts","./node_modules/@heroui/theme/dist/components/navbar.d.ts","./node_modules/@heroui/theme/dist/components/table.d.ts","./node_modules/@heroui/theme/dist/components/spacer.d.ts","./node_modules/@heroui/theme/dist/components/divider.d.ts","./node_modules/@heroui/theme/dist/components/kbd.d.ts","./node_modules/@heroui/theme/dist/components/tabs.d.ts","./node_modules/@heroui/theme/dist/components/skeleton.d.ts","./node_modules/@heroui/theme/dist/components/select.d.ts","./node_modules/@heroui/theme/dist/components/menu.d.ts","./node_modules/@heroui/theme/dist/components/scroll-shadow.d.ts","./node_modules/@heroui/theme/dist/components/slider.d.ts","./node_modules/@heroui/theme/dist/components/breadcrumbs.d.ts","./node_modules/@heroui/theme/dist/components/autocomplete.d.ts","./node_modules/@heroui/theme/dist/components/calendar.d.ts","./node_modules/@heroui/theme/dist/components/date-input.d.ts","./node_modules/@heroui/theme/dist/components/date-picker.d.ts","./node_modules/@heroui/theme/dist/components/alert.d.ts","./node_modules/@heroui/theme/dist/components/drawer.d.ts","./node_modules/@heroui/theme/dist/components/form.d.ts","./node_modules/@heroui/theme/dist/components/number-input.d.ts","./node_modules/@heroui/theme/dist/components/toast.d.ts","./node_modules/@heroui/theme/dist/utils/classes.d.ts","./node_modules/@heroui/theme/dist/utils/types.d.ts","./node_modules/@heroui/theme/dist/utils/variants.d.ts","./node_modules/@heroui/theme/dist/utils/tw-merge-config.d.ts","./node_modules/@heroui/theme/dist/utils/merge-classes.d.ts","./node_modules/@heroui/theme/dist/utils/cn.d.ts","./node_modules/@heroui/theme/dist/colors/types.d.ts","./node_modules/@heroui/theme/dist/colors/common.d.ts","./node_modules/@heroui/theme/dist/colors/semantic.d.ts","./node_modules/@heroui/theme/dist/colors/index.d.ts","./node_modules/@heroui/theme/dist/types.d.ts","./node_modules/@heroui/theme/dist/plugin.d.ts","./node_modules/@heroui/theme/dist/default-layout.d.ts","./node_modules/@heroui/theme/dist/utils/tv.d.ts","./node_modules/@heroui/theme/dist/index.d.ts","./hero.ts","./node_modules/i18next/typescript/helpers.d.ts","./node_modules/i18next/typescript/options.d.ts","./node_modules/i18next/typescript/t.d.ts","./node_modules/i18next/index.d.ts","./node_modules/i18next-browser-languagedetector/index.d.ts","./node_modules/i18next-browser-languagedetector/index.d.mts","./node_modules/react-i18next/helpers.d.ts","./node_modules/react-i18next/TransWithoutContext.d.ts","./node_modules/react-i18next/initReactI18next.d.ts","./node_modules/react-i18next/index.d.ts","./node_modules/react-i18next/index.d.mts","./i18n.ts","./types/index.ts","./config/site.ts","./node_modules/proj4/dist/lib/projections.d.ts","./node_modules/proj4/dist/lib/defs.d.ts","./node_modules/proj4/dist/lib/Proj.d.ts","./node_modules/proj4/dist/lib/core.d.ts","./node_modules/proj4/dist/lib/Point.d.ts","./node_modules/proj4/dist/lib/common/toPoint.d.ts","./node_modules/proj4/dist/lib/nadgrid.d.ts","./node_modules/proj4/dist/lib/transform.d.ts","./node_modules/proj4/dist/lib/index.d.ts","./node_modules/proj4/dist/index.d.ts","./features/forms/components/wizard/coordinates.ts","./features/forms/components/wizard/types.ts","./features/forms/components/wizard/utils.ts","./features/map/lib/leafletCluster.ts","./node_modules/@react-types/shared/src/dom.d.ts","./node_modules/@react-types/shared/src/inputs.d.ts","./node_modules/@react-types/shared/src/selection.d.ts","./node_modules/@react-types/shared/src/dnd.d.ts","./node_modules/@react-types/shared/src/collections.d.ts","./node_modules/@react-types/shared/src/removable.d.ts","./node_modules/@react-types/shared/src/events.d.ts","./node_modules/@react-types/shared/src/dna.d.ts","./node_modules/@react-types/shared/src/style.d.ts","./node_modules/@react-types/shared/src/refs.d.ts","./node_modules/@react-types/shared/src/labelable.d.ts","./node_modules/@react-types/shared/src/orientation.d.ts","./node_modules/@react-types/shared/src/locale.d.ts","./node_modules/@react-types/shared/src/key.d.ts","./node_modules/@react-types/shared/src/index.d.ts","./node_modules/@heroui/system-rsc/dist/types.d.ts","./node_modules/@heroui/system-rsc/dist/utils.d.ts","./node_modules/@heroui/system-rsc/dist/extend-variants.d.ts","./node_modules/@heroui/system-rsc/dist/index.d.ts","./node_modules/@react-types/overlays/src/index.d.ts","./node_modules/@react-types/button/src/index.d.ts","./node_modules/@react-stately/overlays/dist/types.d.ts","./node_modules/@react-aria/overlays/dist/types.d.ts","./node_modules/@formatjs/ecma402-abstract/CanonicalizeLocaleList.d.ts","./node_modules/@formatjs/ecma402-abstract/CanonicalizeTimeZoneName.d.ts","./node_modules/@formatjs/ecma402-abstract/CoerceOptionsToObject.d.ts","./node_modules/@formatjs/ecma402-abstract/GetNumberOption.d.ts","./node_modules/@formatjs/ecma402-abstract/GetOption.d.ts","./node_modules/@formatjs/ecma402-abstract/GetOptionsObject.d.ts","./node_modules/@formatjs/ecma402-abstract/GetStringOrBooleanOption.d.ts","./node_modules/@formatjs/ecma402-abstract/IsSanctionedSimpleUnitIdentifier.d.ts","./node_modules/@formatjs/ecma402-abstract/IsValidTimeZoneName.d.ts","./node_modules/@formatjs/ecma402-abstract/IsWellFormedCurrencyCode.d.ts","./node_modules/@formatjs/ecma402-abstract/IsWellFormedUnitIdentifier.d.ts","./node_modules/decimal.js/decimal.d.ts","./node_modules/@formatjs/ecma402-abstract/types/core.d.ts","./node_modules/@formatjs/ecma402-abstract/types/plural-rules.d.ts","./node_modules/@formatjs/ecma402-abstract/types/number.d.ts","./node_modules/@formatjs/ecma402-abstract/NumberFormat/ApplyUnsignedRoundingMode.d.ts","./node_modules/@formatjs/ecma402-abstract/NumberFormat/CollapseNumberRange.d.ts","./node_modules/@formatjs/ecma402-abstract/NumberFormat/ComputeExponent.d.ts","./node_modules/@formatjs/ecma402-abstract/NumberFormat/ComputeExponentForMagnitude.d.ts","./node_modules/@formatjs/ecma402-abstract/NumberFormat/CurrencyDigits.d.ts","./node_modules/@formatjs/ecma402-abstract/NumberFormat/format_to_parts.d.ts","./node_modules/@formatjs/ecma402-abstract/NumberFormat/FormatApproximately.d.ts","./node_modules/@formatjs/ecma402-abstract/NumberFormat/FormatNumeric.d.ts","./node_modules/@formatjs/ecma402-abstract/NumberFormat/FormatNumericRange.d.ts","./node_modules/@formatjs/ecma402-abstract/NumberFormat/FormatNumericRangeToParts.d.ts","./node_modules/@formatjs/ecma402-abstract/NumberFormat/FormatNumericToParts.d.ts","./node_modules/@formatjs/ecma402-abstract/NumberFormat/FormatNumericToString.d.ts","./node_modules/@formatjs/ecma402-abstract/NumberFormat/GetUnsignedRoundingMode.d.ts","./node_modules/@formatjs/ecma402-abstract/NumberFormat/InitializeNumberFormat.d.ts","./node_modules/@formatjs/ecma402-abstract/NumberFormat/PartitionNumberPattern.d.ts","./node_modules/@formatjs/ecma402-abstract/NumberFormat/PartitionNumberRangePattern.d.ts","./node_modules/@formatjs/ecma402-abstract/NumberFormat/SetNumberFormatDigitOptions.d.ts","./node_modules/@formatjs/ecma402-abstract/NumberFormat/SetNumberFormatUnitOptions.d.ts","./node_modules/@formatjs/ecma402-abstract/NumberFormat/ToRawFixed.d.ts","./node_modules/@formatjs/ecma402-abstract/NumberFormat/ToRawPrecision.d.ts","./node_modules/@formatjs/ecma402-abstract/PartitionPattern.d.ts","./node_modules/@formatjs/ecma402-abstract/SupportedLocales.d.ts","./node_modules/@formatjs/ecma402-abstract/utils.d.ts","./node_modules/@formatjs/ecma402-abstract/262.d.ts","./node_modules/@formatjs/ecma402-abstract/data.d.ts","./node_modules/@formatjs/ecma402-abstract/types/date-time.d.ts","./node_modules/@formatjs/ecma402-abstract/types/displaynames.d.ts","./node_modules/@formatjs/ecma402-abstract/types/list.d.ts","./node_modules/@formatjs/ecma402-abstract/types/relative-time.d.ts","./node_modules/@formatjs/ecma402-abstract/constants.d.ts","./node_modules/@formatjs/ecma402-abstract/ToIntlMathematicalValue.d.ts","./node_modules/@formatjs/ecma402-abstract/index.d.ts","./node_modules/@formatjs/icu-skeleton-parser/date-time.d.ts","./node_modules/@formatjs/icu-skeleton-parser/number.d.ts","./node_modules/@formatjs/icu-skeleton-parser/index.d.ts","./node_modules/@formatjs/icu-messageformat-parser/types.d.ts","./node_modules/@formatjs/icu-messageformat-parser/error.d.ts","./node_modules/@formatjs/icu-messageformat-parser/parser.d.ts","./node_modules/@formatjs/icu-messageformat-parser/manipulator.d.ts","./node_modules/@formatjs/icu-messageformat-parser/index.d.ts","./node_modules/intl-messageformat/src/formatters.d.ts","./node_modules/@internationalized/message/dist/types.d.ts","./node_modules/@internationalized/string/dist/types.d.ts","./node_modules/@internationalized/date/dist/types.d.ts","./node_modules/@internationalized/number/dist/types.d.ts","./node_modules/@react-aria/i18n/dist/types.d.ts","./node_modules/@heroui/system/dist/types.d.ts","./node_modules/@heroui/system/dist/provider-context.d.ts","./node_modules/@heroui/system/dist/provider.d.ts","./node_modules/@heroui/system/dist/hooks/use-label-placement.d.ts","./node_modules/@heroui/system/dist/index.d.ts","./node_modules/@heroui/card/node_modules/@react-types/shared/src/dom.d.ts","./node_modules/@heroui/card/node_modules/@react-types/shared/src/inputs.d.ts","./node_modules/@heroui/card/node_modules/@react-types/shared/src/selection.d.ts","./node_modules/@heroui/card/node_modules/@react-types/shared/src/dnd.d.ts","./node_modules/@heroui/card/node_modules/@react-types/shared/src/collections.d.ts","./node_modules/@heroui/card/node_modules/@react-types/shared/src/removable.d.ts","./node_modules/@heroui/card/node_modules/@react-types/shared/src/events.d.ts","./node_modules/@heroui/card/node_modules/@react-types/shared/src/dna.d.ts","./node_modules/@heroui/card/node_modules/@react-types/shared/src/style.d.ts","./node_modules/@heroui/card/node_modules/@react-types/shared/src/refs.d.ts","./node_modules/@heroui/card/node_modules/@react-types/shared/src/labelable.d.ts","./node_modules/@heroui/card/node_modules/@react-types/shared/src/orientation.d.ts","./node_modules/@heroui/card/node_modules/@react-types/shared/src/locale.d.ts","./node_modules/@heroui/card/node_modules/@react-types/shared/src/key.d.ts","./node_modules/@heroui/card/node_modules/@react-types/shared/src/index.d.ts","./node_modules/@heroui/ripple/dist/use-ripple.d.ts","./node_modules/motion-utils/dist/index.d.ts","./node_modules/motion-dom/dist/index.d.ts","./node_modules/framer-motion/dist/types.d-DOCC-kZB.d.ts","./node_modules/framer-motion/dist/types/index.d.ts","./node_modules/@heroui/ripple/dist/ripple.d.ts","./node_modules/@heroui/ripple/dist/index.d.ts","./node_modules/@heroui/card/node_modules/@react-aria/interactions/dist/types.d.ts","./node_modules/@heroui/react-utils/dist/context.d.ts","./node_modules/@heroui/react-utils/dist/refs.d.ts","./node_modules/@heroui/react-utils/dist/dimensions.d.ts","./node_modules/@heroui/react-utils/dist/dom.d.ts","./node_modules/@heroui/react-rsc-utils/dist/children.d.ts","./node_modules/@heroui/react-rsc-utils/dist/filter-dom-props.d.ts","./node_modules/@heroui/react-rsc-utils/dist/dom-props.d.ts","./node_modules/@heroui/react-rsc-utils/dist/functions.d.ts","./node_modules/@heroui/react-rsc-utils/dist/index.d.ts","./node_modules/@heroui/react-utils/dist/use-is-hydrated.d.ts","./node_modules/@heroui/react-utils/dist/index.d.ts","./node_modules/@heroui/card/dist/use-card.d.ts","./node_modules/@heroui/card/dist/card.d.ts","./node_modules/@heroui/card/dist/card-footer.d.ts","./node_modules/@heroui/card/dist/card-context.d.ts","./node_modules/@heroui/card/dist/card-header.d.ts","./node_modules/@heroui/card/dist/card-body.d.ts","./node_modules/@heroui/card/dist/index.d.ts","./features/map/components/Tooltip.tsx","./features/map/lib/leafletDraw.ts","./lib/auth.ts","./lib/durations.ts","./services/fetch.ts","./server/datastream/read.ts","./server/featureOfInterest/read.ts","./server/historicalLocation/read.ts","./server/location/read.ts","./server/network/read.ts","./server/observedProperty/read.ts","./server/sensor/read.ts","./services/auth.ts","./services/datastreams.ts","./services/locations.ts","./services/networks.ts","./services/observations.ts","./services/observedProperties.ts","./services/sensors.ts","./services/things.ts","./node_modules/@heroui/use-aria-button/node_modules/@react-types/shared/src/index.d.ts","./node_modules/@heroui/use-aria-button/node_modules/@react-types/button/src/index.d.ts","./node_modules/@heroui/use-aria-button/dist/index.d.ts","./node_modules/@heroui/button/dist/use-button.d.ts","./node_modules/@heroui/button/dist/button.d.ts","./node_modules/@heroui/button/dist/use-button-group.d.ts","./node_modules/@heroui/button/dist/button-group.d.ts","./node_modules/@heroui/button/node_modules/@react-types/shared/src/index.d.ts","./node_modules/@heroui/button/dist/button-group-context.d.ts","./node_modules/@heroui/button/dist/index.d.ts","./node_modules/@heroui/chip/dist/use-chip.d.ts","./node_modules/@heroui/chip/dist/chip.d.ts","./node_modules/@heroui/chip/dist/index.d.ts","./node_modules/@heroui/aria-utils/node_modules/@react-types/shared/src/index.d.ts","./node_modules/@heroui/aria-utils/dist/type-utils/index.d.ts","./node_modules/@react-stately/collections/dist/types.d.ts","./node_modules/@heroui/aria-utils/node_modules/@heroui/system-rsc/dist/types.d.ts","./node_modules/@heroui/aria-utils/node_modules/@heroui/system-rsc/dist/utils.d.ts","./node_modules/@heroui/aria-utils/node_modules/@heroui/system-rsc/dist/extend-variants.d.ts","./node_modules/@heroui/aria-utils/node_modules/@heroui/system-rsc/dist/index.d.ts","./node_modules/@heroui/aria-utils/node_modules/@react-types/overlays/src/index.d.ts","./node_modules/@heroui/aria-utils/node_modules/@react-aria/overlays/dist/types.d.ts","./node_modules/@heroui/aria-utils/node_modules/@react-aria/i18n/dist/types.d.ts","./node_modules/@heroui/aria-utils/node_modules/@heroui/system/dist/types.d.ts","./node_modules/@heroui/aria-utils/node_modules/@heroui/system/dist/provider-context.d.ts","./node_modules/@heroui/aria-utils/node_modules/@heroui/system/dist/provider.d.ts","./node_modules/@heroui/aria-utils/node_modules/@heroui/system/dist/hooks/use-label-placement.d.ts","./node_modules/@heroui/aria-utils/node_modules/@heroui/system/dist/index.d.ts","./node_modules/@heroui/aria-utils/dist/collections/item.d.ts","./node_modules/@heroui/aria-utils/dist/collections/section.d.ts","./node_modules/@heroui/aria-utils/dist/collections/types.d.ts","./node_modules/@heroui/aria-utils/dist/overlays/types.d.ts","./node_modules/@heroui/aria-utils/dist/overlays/utils.d.ts","./node_modules/@heroui/aria-utils/dist/overlays/ariaHideOutside.d.ts","./node_modules/@heroui/aria-utils/dist/utils/index.d.ts","./node_modules/@heroui/aria-utils/dist/index.d.ts","./node_modules/@react-types/tooltip/src/index.d.ts","./node_modules/@heroui/tooltip/node_modules/@react-types/overlays/src/index.d.ts","./node_modules/@heroui/tooltip/node_modules/@react-aria/overlays/dist/types.d.ts","./node_modules/@heroui/tooltip/dist/use-tooltip.d.ts","./node_modules/@heroui/tooltip/dist/tooltip.d.ts","./node_modules/@heroui/tooltip/dist/index.d.ts","./node_modules/dayjs/locale/types.d.ts","./node_modules/dayjs/locale/index.d.ts","./node_modules/dayjs/index.d.ts","./node_modules/dayjs/plugin/duration.d.ts","./node_modules/dayjs/plugin/relativeTime.d.ts","./node_modules/dayjs/plugin/utc.d.ts","./components/icons.tsx","./node_modules/@react-types/menu/src/index.d.ts","./node_modules/@react-stately/selection/dist/types.d.ts","./node_modules/@react-stately/tree/dist/types.d.ts","./node_modules/@react-stately/menu/dist/types.d.ts","./node_modules/@react-aria/menu/dist/types.d.ts","./node_modules/@heroui/menu/node_modules/@react-types/shared/src/index.d.ts","./node_modules/@heroui/menu/dist/base/menu-item-base.d.ts","./node_modules/@heroui/menu/dist/use-menu-item.d.ts","./node_modules/@heroui/menu/dist/menu-item.d.ts","./node_modules/@heroui/menu/dist/use-menu.d.ts","./node_modules/@heroui/menu/dist/menu.d.ts","./node_modules/@heroui/divider/node_modules/@heroui/system-rsc/dist/index.d.ts","./node_modules/@heroui/divider/node_modules/@react-types/shared/src/index.d.ts","./node_modules/@heroui/divider/dist/use-separator.d.ts","./node_modules/@heroui/divider/dist/use-divider.d.ts","./node_modules/@heroui/divider/dist/divider.d.ts","./node_modules/@heroui/divider/dist/index.d.ts","./node_modules/@heroui/menu/dist/base/menu-section-base.d.ts","./node_modules/@heroui/menu/dist/index.d.ts","./node_modules/@heroui/dropdown/node_modules/@react-types/overlays/src/index.d.ts","./node_modules/@heroui/dropdown/node_modules/@react-stately/overlays/dist/types.d.ts","./node_modules/@react-types/dialog/src/index.d.ts","./node_modules/@react-aria/dialog/dist/types.d.ts","./node_modules/@heroui/dropdown/node_modules/@react-aria/overlays/dist/types.d.ts","./node_modules/@heroui/dropdown/node_modules/@heroui/popover/dist/use-aria-popover.d.ts","./node_modules/@heroui/dropdown/node_modules/@heroui/popover/dist/use-popover.d.ts","./node_modules/@heroui/dropdown/node_modules/@heroui/popover/dist/popover.d.ts","./node_modules/@heroui/dropdown/node_modules/@heroui/popover/dist/popover-trigger.d.ts","./node_modules/@heroui/dropdown/node_modules/@heroui/popover/dist/popover-content.d.ts","./node_modules/@heroui/dropdown/node_modules/@heroui/popover/dist/free-solo-popover.d.ts","./node_modules/@heroui/dropdown/node_modules/@heroui/popover/dist/popover-context.d.ts","./node_modules/@heroui/dropdown/node_modules/@heroui/popover/dist/index.d.ts","./node_modules/@heroui/dropdown/dist/use-dropdown.d.ts","./node_modules/@heroui/dropdown/dist/dropdown.d.ts","./node_modules/@heroui/dropdown/dist/dropdown-trigger.d.ts","./node_modules/@heroui/dropdown/dist/dropdown-menu.d.ts","./node_modules/@heroui/dropdown/dist/index.d.ts","./node_modules/@react-types/textfield/src/index.d.ts","./node_modules/@heroui/input/dist/use-input.d.ts","./node_modules/@heroui/input/dist/input.d.ts","./node_modules/@heroui/input/dist/textarea.d.ts","./node_modules/@heroui/input/dist/index.d.ts","./node_modules/@heroui/use-pagination/dist/index.d.ts","./node_modules/@heroui/pagination/dist/use-pagination.d.ts","./node_modules/@heroui/pagination/dist/pagination.d.ts","./node_modules/@heroui/pagination/dist/use-pagination-item.d.ts","./node_modules/@heroui/pagination/dist/pagination-item.d.ts","./node_modules/@heroui/pagination/dist/pagination-cursor.d.ts","./node_modules/@heroui/pagination/dist/index.d.ts","./node_modules/@react-types/grid/src/index.d.ts","./node_modules/@react-types/table/src/index.d.ts","./node_modules/@react-stately/virtualizer/dist/types.d.ts","./node_modules/@react-stately/grid/node_modules/@react-types/grid/src/index.d.ts","./node_modules/@react-stately/grid/dist/types.d.ts","./node_modules/@react-stately/table/node_modules/@react-stately/collections/dist/types.d.ts","./node_modules/@react-stately/table/dist/types.d.ts","./node_modules/@react-aria/grid/node_modules/@react-types/grid/src/index.d.ts","./node_modules/@react-aria/grid/node_modules/@react-aria/selection/dist/types.d.ts","./node_modules/@react-aria/grid/node_modules/@react-types/checkbox/src/index.d.ts","./node_modules/@react-aria/grid/dist/types.d.ts","./node_modules/@react-types/checkbox/src/index.d.ts","./node_modules/@react-aria/table/dist/types.d.ts","./node_modules/@heroui/checkbox/dist/use-checkbox.d.ts","./node_modules/@heroui/checkbox/dist/checkbox.d.ts","./node_modules/@heroui/checkbox/node_modules/@react-types/shared/src/dom.d.ts","./node_modules/@heroui/checkbox/node_modules/@react-types/shared/src/inputs.d.ts","./node_modules/@heroui/checkbox/node_modules/@react-types/shared/src/selection.d.ts","./node_modules/@heroui/checkbox/node_modules/@react-types/shared/src/dnd.d.ts","./node_modules/@heroui/checkbox/node_modules/@react-types/shared/src/collections.d.ts","./node_modules/@heroui/checkbox/node_modules/@react-types/shared/src/removable.d.ts","./node_modules/@heroui/checkbox/node_modules/@react-types/shared/src/events.d.ts","./node_modules/@heroui/checkbox/node_modules/@react-types/shared/src/dna.d.ts","./node_modules/@heroui/checkbox/node_modules/@react-types/shared/src/style.d.ts","./node_modules/@heroui/checkbox/node_modules/@react-types/shared/src/refs.d.ts","./node_modules/@heroui/checkbox/node_modules/@react-types/shared/src/labelable.d.ts","./node_modules/@heroui/checkbox/node_modules/@react-types/shared/src/orientation.d.ts","./node_modules/@heroui/checkbox/node_modules/@react-types/shared/src/locale.d.ts","./node_modules/@heroui/checkbox/node_modules/@react-types/shared/src/key.d.ts","./node_modules/@heroui/checkbox/node_modules/@react-types/shared/src/index.d.ts","./node_modules/@react-stately/form/dist/types.d.ts","./node_modules/@react-stately/checkbox/dist/types.d.ts","./node_modules/@heroui/checkbox/dist/use-checkbox-group.d.ts","./node_modules/@heroui/checkbox/dist/checkbox-group.d.ts","./node_modules/@heroui/checkbox/dist/checkbox-group-context.d.ts","./node_modules/@heroui/checkbox/dist/checkbox-icon.d.ts","./node_modules/@heroui/checkbox/dist/index.d.ts","./node_modules/@heroui/table/dist/use-table.d.ts","./node_modules/@heroui/table/dist/table.d.ts","./node_modules/@heroui/shared-utils/dist/getInertValue.d.ts","./node_modules/@heroui/shared-utils/dist/common/assertion.d.ts","./node_modules/@heroui/shared-utils/dist/common/clsx.d.ts","./node_modules/@heroui/shared-utils/dist/common/object.d.ts","./node_modules/@heroui/shared-utils/dist/common/text.d.ts","./node_modules/@heroui/shared-utils/dist/common/dimensions.d.ts","./node_modules/@heroui/shared-utils/dist/common/functions.d.ts","./node_modules/@heroui/shared-utils/dist/common/numbers.d.ts","./node_modules/@heroui/shared-utils/dist/common/console.d.ts","./node_modules/@heroui/shared-utils/dist/common/types.d.ts","./node_modules/@heroui/shared-utils/dist/common/dates.d.ts","./node_modules/@heroui/shared-utils/dist/common/regex.d.ts","./node_modules/@heroui/shared-utils/dist/common/ra.d.ts","./node_modules/@heroui/shared-utils/dist/index.d.ts","./node_modules/@heroui/table/dist/base/table-body.d.ts","./node_modules/@heroui/table/dist/base/table-cell.d.ts","./node_modules/@heroui/table/dist/base/table-column.d.ts","./node_modules/@heroui/table/dist/base/table-header.d.ts","./node_modules/@heroui/table/dist/base/table-row.d.ts","./node_modules/@heroui/table/dist/index.d.ts","./components/table/Table.tsx","./features/datastreams/components/DatastreamTable.tsx","./node_modules/@react-types/form/src/index.d.ts","./node_modules/@heroui/form/node_modules/@react-types/shared/src/index.d.ts","./node_modules/@heroui/form/dist/utils.d.ts","./node_modules/@heroui/form/dist/base-form.d.ts","./node_modules/@heroui/form/dist/form.d.ts","./node_modules/@heroui/form/dist/index.d.ts","./node_modules/@heroui/modal/node_modules/@react-aria/overlays/dist/types.d.ts","./node_modules/@heroui/modal/node_modules/@react-stately/overlays/dist/types.d.ts","./node_modules/@heroui/modal/dist/use-modal.d.ts","./node_modules/@heroui/modal/dist/modal.d.ts","./node_modules/@heroui/modal/dist/modal-content.d.ts","./node_modules/@heroui/modal/dist/modal-header.d.ts","./node_modules/@heroui/modal/dist/modal-body.d.ts","./node_modules/@heroui/modal/dist/modal-footer.d.ts","./node_modules/@heroui/use-disclosure/dist/index.d.ts","./node_modules/@heroui/use-draggable/node_modules/@react-aria/interactions/dist/types.d.ts","./node_modules/@heroui/use-draggable/dist/index.d.ts","./node_modules/@heroui/modal/dist/modal-context.d.ts","./node_modules/@heroui/modal/dist/index.d.ts","./node_modules/@react-stately/list/dist/types.d.ts","./node_modules/@react-types/tabs/src/index.d.ts","./node_modules/@react-stately/tabs/dist/types.d.ts","./node_modules/@react-aria/tabs/dist/types.d.ts","./node_modules/@heroui/tabs/node_modules/@react-types/shared/src/index.d.ts","./node_modules/@heroui/tabs/node_modules/@heroui/aria-utils/dist/type-utils/index.d.ts","./node_modules/@heroui/tabs/node_modules/@react-stately/collections/dist/types.d.ts","./node_modules/@heroui/tabs/node_modules/@heroui/system-rsc/dist/types.d.ts","./node_modules/@heroui/tabs/node_modules/@heroui/system-rsc/dist/utils.d.ts","./node_modules/@heroui/tabs/node_modules/@heroui/system-rsc/dist/extend-variants.d.ts","./node_modules/@heroui/tabs/node_modules/@heroui/system-rsc/dist/index.d.ts","./node_modules/@heroui/tabs/node_modules/@react-types/overlays/src/index.d.ts","./node_modules/@heroui/tabs/node_modules/@react-aria/overlays/dist/types.d.ts","./node_modules/@heroui/tabs/node_modules/@react-aria/i18n/dist/types.d.ts","./node_modules/@heroui/tabs/node_modules/@heroui/aria-utils/node_modules/@heroui/system/dist/types.d.ts","./node_modules/@heroui/tabs/node_modules/@heroui/aria-utils/node_modules/@heroui/system/dist/provider-context.d.ts","./node_modules/@heroui/tabs/node_modules/@heroui/aria-utils/node_modules/@heroui/system/dist/provider.d.ts","./node_modules/@heroui/tabs/node_modules/@heroui/aria-utils/node_modules/@heroui/system/dist/hooks/use-label-placement.d.ts","./node_modules/@heroui/tabs/node_modules/@heroui/aria-utils/node_modules/@heroui/system/dist/index.d.ts","./node_modules/@heroui/tabs/node_modules/@heroui/aria-utils/dist/collections/item.d.ts","./node_modules/@heroui/tabs/node_modules/@heroui/aria-utils/dist/collections/section.d.ts","./node_modules/@heroui/tabs/node_modules/@heroui/aria-utils/dist/collections/types.d.ts","./node_modules/@heroui/tabs/node_modules/@heroui/aria-utils/dist/overlays/types.d.ts","./node_modules/@heroui/tabs/node_modules/@heroui/aria-utils/dist/overlays/utils.d.ts","./node_modules/@heroui/tabs/node_modules/@heroui/aria-utils/dist/overlays/ariaHideOutside.d.ts","./node_modules/@heroui/tabs/node_modules/@heroui/aria-utils/dist/utils/index.d.ts","./node_modules/@heroui/tabs/node_modules/@heroui/aria-utils/dist/index.d.ts","./node_modules/@heroui/tabs/dist/use-tabs.d.ts","./node_modules/@heroui/tabs/dist/tabs.d.ts","./node_modules/@heroui/tabs/dist/base/tab-item-base.d.ts","./node_modules/@heroui/tabs/dist/index.d.ts","./node_modules/cookie/dist/index.d.ts","./node_modules/cookies-next/lib/common/types.d.ts","./node_modules/cookies-next/lib/client/cookie-functions.d.ts","./node_modules/cookies-next/lib/client/types.d.ts","./node_modules/cookies-next/lib/client/context.d.ts","./node_modules/cookies-next/lib/client/hooks.d.ts","./node_modules/cookies-next/lib/client/index.d.ts","./node_modules/cookies-next/lib/index.d.ts","./context/AuthContext.tsx","./features/map/components/LeafletMiniMap.tsx","./node_modules/@heroui/listbox/node_modules/@react-types/shared/src/index.d.ts","./node_modules/@react-types/listbox/src/index.d.ts","./node_modules/@react-aria/listbox/node_modules/@react-aria/selection/dist/types.d.ts","./node_modules/@react-aria/listbox/dist/types.d.ts","./node_modules/@heroui/listbox/node_modules/@heroui/aria-utils/dist/index.d.ts","./node_modules/@heroui/listbox/dist/base/listbox-item-base.d.ts","./node_modules/@heroui/listbox/dist/use-listbox-item.d.ts","./node_modules/@heroui/listbox/dist/listbox-item.d.ts","./node_modules/@heroui/listbox/dist/use-listbox.d.ts","./node_modules/@heroui/listbox/dist/listbox.d.ts","./node_modules/@heroui/listbox/node_modules/@heroui/system-rsc/dist/index.d.ts","./node_modules/@heroui/listbox/node_modules/@heroui/divider/dist/use-separator.d.ts","./node_modules/@heroui/listbox/node_modules/@heroui/divider/dist/use-divider.d.ts","./node_modules/@heroui/listbox/node_modules/@heroui/divider/dist/divider.d.ts","./node_modules/@heroui/listbox/node_modules/@heroui/divider/dist/index.d.ts","./node_modules/@heroui/listbox/dist/base/listbox-section-base.d.ts","./node_modules/@heroui/listbox/dist/index.d.ts","./node_modules/@react-types/combobox/src/index.d.ts","./node_modules/@react-stately/combobox/dist/types.d.ts","./node_modules/@heroui/popover/node_modules/@react-types/overlays/src/index.d.ts","./node_modules/@heroui/popover/node_modules/@react-stately/overlays/dist/types.d.ts","./node_modules/@heroui/popover/node_modules/@react-types/shared/src/index.d.ts","./node_modules/@heroui/popover/node_modules/@react-aria/dialog/dist/types.d.ts","./node_modules/@heroui/popover/node_modules/@react-aria/overlays/dist/types.d.ts","./node_modules/@heroui/popover/node_modules/@heroui/aria-utils/dist/index.d.ts","./node_modules/@heroui/popover/dist/use-aria-popover.d.ts","./node_modules/@heroui/popover/dist/use-popover.d.ts","./node_modules/@heroui/popover/dist/popover.d.ts","./node_modules/@heroui/popover/dist/popover-trigger.d.ts","./node_modules/@heroui/popover/dist/popover-content.d.ts","./node_modules/@heroui/popover/dist/free-solo-popover.d.ts","./node_modules/@heroui/popover/dist/popover-context.d.ts","./node_modules/@heroui/popover/dist/index.d.ts","./node_modules/@heroui/autocomplete/node_modules/@react-types/shared/src/index.d.ts","./node_modules/@heroui/autocomplete/node_modules/@react-types/textfield/src/index.d.ts","./node_modules/@heroui/autocomplete/node_modules/@heroui/input/dist/use-input.d.ts","./node_modules/@heroui/autocomplete/node_modules/@heroui/input/dist/input.d.ts","./node_modules/@heroui/autocomplete/node_modules/@heroui/input/dist/textarea.d.ts","./node_modules/@heroui/autocomplete/node_modules/@heroui/input/dist/index.d.ts","./node_modules/@heroui/use-data-scroll-overflow/dist/index.d.ts","./node_modules/@heroui/scroll-shadow/dist/use-scroll-shadow.d.ts","./node_modules/@heroui/scroll-shadow/dist/scroll-shadow.d.ts","./node_modules/@heroui/scroll-shadow/dist/index.d.ts","./node_modules/@heroui/autocomplete/node_modules/@heroui/button/dist/use-button.d.ts","./node_modules/@heroui/autocomplete/node_modules/@heroui/button/dist/button.d.ts","./node_modules/@heroui/autocomplete/node_modules/@heroui/button/dist/use-button-group.d.ts","./node_modules/@heroui/autocomplete/node_modules/@heroui/button/dist/button-group.d.ts","./node_modules/@heroui/autocomplete/node_modules/@heroui/button/dist/button-group-context.d.ts","./node_modules/@heroui/autocomplete/node_modules/@heroui/button/dist/index.d.ts","./node_modules/@heroui/autocomplete/dist/use-autocomplete.d.ts","./node_modules/@heroui/autocomplete/dist/autocomplete.d.ts","./node_modules/@heroui/autocomplete/dist/index.d.ts","./features/forms/components/wizard/fields.tsx","./features/forms/components/wizard/primitives.tsx","./features/forms/components/FormModal.tsx","./features/map/components/LayersControl.tsx","./features/map/components/MapContextMenu.tsx","./features/map/components/MapMenu.tsx","./node_modules/@types/geojson/index.d.ts","./node_modules/@types/leaflet/index.d.ts","./node_modules/@types/leaflet.markercluster/index.d.ts","./features/map/components/LeafletMap.tsx","./node_modules/@heroui/date-picker/node_modules/@internationalized/date/dist/types.d.ts","./node_modules/@heroui/date-input/node_modules/@internationalized/date/dist/types.d.ts","./node_modules/@react-types/calendar/src/index.d.ts","./node_modules/@react-types/datepicker/src/index.d.ts","./node_modules/@react-stately/datepicker/dist/types.d.ts","./node_modules/@heroui/date-input/node_modules/@react-types/shared/src/index.d.ts","./node_modules/@heroui/date-input/dist/date-input-group.d.ts","./node_modules/@heroui/date-input/dist/use-date-input.d.ts","./node_modules/@heroui/date-input/dist/date-input.d.ts","./node_modules/@heroui/date-input/dist/use-time-input.d.ts","./node_modules/@heroui/date-input/dist/time-input.d.ts","./node_modules/@heroui/date-input/dist/date-input-field.d.ts","./node_modules/@heroui/date-input/dist/date-input-segment.d.ts","./node_modules/@heroui/date-input/dist/index.d.ts","./node_modules/@heroui/calendar/node_modules/@internationalized/date/dist/types.d.ts","./node_modules/@react-stately/calendar/dist/types.d.ts","./node_modules/@heroui/calendar/node_modules/@react-types/shared/src/index.d.ts","./node_modules/@react-aria/calendar/dist/types.d.ts","./node_modules/@heroui/calendar/node_modules/@react-types/button/src/index.d.ts","./node_modules/@heroui/calendar/dist/use-calendar-base.d.ts","./node_modules/@heroui/calendar/dist/calendar-base.d.ts","./node_modules/@heroui/calendar/dist/use-calendar.d.ts","./node_modules/@heroui/calendar/dist/calendar.d.ts","./node_modules/@heroui/calendar/dist/use-range-calendar.d.ts","./node_modules/@heroui/calendar/dist/range-calendar.d.ts","./node_modules/@heroui/calendar/dist/calendar-context.d.ts","./node_modules/@heroui/calendar/dist/index.d.ts","./node_modules/@heroui/date-picker/node_modules/@heroui/popover/dist/index.d.ts","./node_modules/@heroui/date-picker/node_modules/@react-aria/i18n/dist/types.d.ts","./node_modules/@heroui/date-picker/node_modules/@react-types/shared/src/index.d.ts","./node_modules/@heroui/date-picker/dist/use-date-picker-base.d.ts","./node_modules/@react-aria/datepicker/dist/types.d.ts","./node_modules/@heroui/date-picker/dist/use-date-picker.d.ts","./node_modules/@heroui/date-picker/dist/date-picker.d.ts","./node_modules/@heroui/date-picker/dist/date-range-picker-field.d.ts","./node_modules/@heroui/date-picker/dist/use-date-range-picker.d.ts","./node_modules/@heroui/date-picker/dist/date-range-picker.d.ts","./node_modules/@heroui/date-picker/dist/index.d.ts","./node_modules/echarts/types/dist/echarts.d.ts","./node_modules/echarts/index.d.ts","./features/observations/components/ObservationGraph.tsx","./features/observations/components/ChartModal.tsx","./app/Home.tsx","./node_modules/@heroui/avatar/dist/use-avatar.d.ts","./node_modules/@heroui/avatar/dist/avatar.d.ts","./node_modules/@heroui/avatar/dist/use-avatar-group.d.ts","./node_modules/@heroui/avatar/dist/avatar-group.d.ts","./node_modules/@heroui/avatar/dist/avatar-icon.d.ts","./node_modules/@heroui/avatar/dist/avatar-group-context.d.ts","./node_modules/@heroui/avatar/dist/index.d.ts","./node_modules/@react-types/link/src/index.d.ts","./node_modules/@heroui/link/dist/use-link.d.ts","./node_modules/@heroui/link/dist/link.d.ts","./node_modules/@heroui/link/dist/link-icon.d.ts","./node_modules/@heroui/link/dist/index.d.ts","./components/layout/Navbar.tsx","./node_modules/next-themes/dist/index.d.ts","./app/providers.tsx","./app/layout.tsx","./app/page.tsx","./features/auth/components/Login.tsx","./app/login/LoginPageClient.tsx","./app/login/page.tsx","./.next/dev/types/cache-life.d.ts","./.next/dev/types/validator.ts","./node_modules/@types/estree/index.d.ts","./node_modules/@types/json-schema/index.d.ts","./node_modules/@types/json5/index.d.ts","./node_modules/@types/proj4/index.d.ts"],"fileIdsList":[[94,156,164,168,171,173,174,175,187,498,499,500,501],[94,156,164,168,171,173,174,175,187],[94,156,164,168,171,173,174,175,187,244,542,545,1128,1129,1132],[85,94,156,164,168,171,173,174,175,187,244,624,768,785,833,947,1006,1062,1069,1111],[85,94,156,164,168,171,173,174,175,187,244,540,1006,1125,1127],[94,156,164,168,171,173,174,175,187,244,1130],[94,156,164,168,171,173,174,175,187,244,532,624,1131],[94,156,164,168,171,173,174,175,187,244,516,532,624,771,782,783,784,786,787,788,1112],[85,94,156,164,168,171,173,174,175,187,244,727,1126],[94,156,164,168,171,173,174,175,187,244,623],[85,94,156,164,168,171,173,174,175,187,244,532,540,621,622,624,771,781,798,837,874,1006,1119,1124],[85,94,156,164,168,171,173,174,175,187,244,653,798,837,874,879,886,945],[85,94,156,164,168,171,173,174,175,187,244,624,771,781,1005],[85,94,156,164,168,171,173,174,175,187,244,532,540,621,622,624,771,781,798,837,874,879,953,966,1005,1006,1124],[85,94,156,164,168,171,173,174,175,187,244,621,768,770,798,801,830,833,834,835,836,837,946],[85,94,156,164,168,171,173,174,175,187,244,532,621,624,636,637,782,783,786,787,788,798,837,879,953,966,997,1006,1060,1061],[94,156,164,168,171,173,174,175,187,244,634],[85,94,156,164,168,171,173,174,175,187,244,621,624,635,636,798,830,837,879,1007,1059],[85,94,156,164,168,171,173,174,175,187,244],[94,156,164,168,171,173,174,175,187,244,635],[94,156,164,168,171,173,174,175,187,244,624,635,636],[85,94,156,164,168,171,173,174,175,187,244,621,768,770,798,837,923],[85,94,156,164,168,171,173,174,175,187,244,540,623,624,634,638,770,1063,1064,1065,1067,1068],[85,94,156,164,168,171,173,174,175,187,244,540,635],[85,94,156,164,168,171,173,174,175,187,244,621,768,837],[85,94,156,164,168,171,173,174,175,187,244,623,624,798,1040],[94,156,164,168,171,173,174,175,187,244,621,768,770],[94,156,164,168,171,173,174,175,187,244],[85,94,156,164,168,171,173,174,175,187,244,638,769],[94,156,164,168,171,173,174,175,187,244,621,720,798,837,966,1107,1110],[85,94,156,164,168,171,173,174,175,187,244,621,833,836,1109],[94,156,164,168,171,173,174,175,187,244,609],[94,156,164,168,171,173,174,175,187,244,614,615,616,620,621],[94,156,164,168,171,173,174,175,187,543,544,545],[94,156,164,168,171,173,174,175,187,673],[94,156,164,168,171,173,174,175,187,673,676],[94,156,164,168,171,173,174,175,187,676],[94,156,164,168,171,173,174,175,187,662,663,664,665,666,667,668,669,670,671,672,674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689,690,691,692,693,694,695,696,697,698,699,700,701,702,703,704,705,706,707],[94,156,164,168,171,173,174,175,187,674],[94,156,164,168,171,173,174,175,187,673,674,675],[94,156,164,168,171,173,174,175,187,674,676],[94,156,164,168,171,173,174,175,187,674,675],[94,156,164,168,171,173,174,175,187,712],[94,156,164,168,171,173,174,175,187,712,714,715],[94,156,164,168,171,173,174,175,187,712,713],[94,156,164,168,171,173,174,175,187,708,711],[94,156,164,168,171,173,174,175,187,709,710],[94,156,164,168,171,173,174,175,187,708],[94,156,164,168,171,173,174,175,187,742,804,816],[85,94,156,164,168,171,173,174,175,187,742,804],[85,94,156,164,168,171,173,174,175,187,742,803,804,809,816,817,818,819,820,821,822,823],[94,156,164,168,171,173,174,175,187,809,820],[94,156,164,168,171,173,174,175,187,742],[85,94,156,164,168,171,173,174,175,187,550,742,805],[85,94,156,164,168,171,173,174,175,187,550,742,805,806,807],[85,94,156,164,168,171,173,174,175,187,742,805],[85,94,156,164,168,171,173,174,175,187,742,808,810,811,812,813,814,815],[85,94,156,164,168,171,173,174,175,187,812],[85,94,156,164,168,171,173,174,175,187,742,810,811,812,813],[85,94,156,164,168,171,173,174,175,187,718,719,720,721,742],[85,94,156,164,168,171,173,174,175,187,659,660,742,809],[85,94,156,164,168,171,173,174,175,187,742],[94,156,164,168,171,173,174,175,187,728,729,730,731,732,733,734,735,736,737,738,739,740,741],[85,94,156,164,168,171,173,174,175,187,550,609,727,761,916,1024,1025,1026,1040,1046,1050,1056,1057],[85,94,156,164,168,171,173,174,175,187,550,609,727,761,916,1024,1025,1026,1040,1046,1050,1056,1057,1058],[85,94,156,164,168,171,173,174,175,187,550,609,727,761,916,1024,1025,1026,1040,1046,1050,1056],[85,94,156,164,168,171,173,174,175,187,609,727,749,761,791,1051,1052,1053],[85,94,156,164,168,171,173,174,175,187,609,727,749,761,791,1051],[85,94,156,164,168,171,173,174,175,187,609,727,749,761,791,916,1051,1052,1053,1054,1055],[85,94,156,164,168,171,173,174,175,187,609,727,749,761,791,1051,1052],[85,94,156,164,168,171,173,174,175,187,609,727,749,761,791],[85,94,156,164,168,171,173,174,175,187,609,727,1042,1043,1044,1045],[85,94,156,164,168,171,173,174,175,187,609,727,1042,1043],[85,94,156,164,168,171,173,174,175,187,609,727,1042],[94,156,164,168,171,173,174,175,187,902,903,904,905,906,907,908,909,910,911,912,913,914,915],[85,94,156,164,168,171,173,174,175,187,916],[85,94,156,164,168,171,173,174,175,187,550,609,727,761,1113,1114,1115],[85,94,156,164,168,171,173,174,175,187,550,609,727,761,1113],[85,94,156,164,168,171,173,174,175,187,244,550,609,727,761,1113,1114,1115,1116,1117,1118],[85,94,156,164,168,171,173,174,175,187,550,609,727,761,1113,1114],[85,94,156,164,168,171,173,174,175,187,550,609,727,761],[85,94,156,164,168,171,173,174,175,187,609,727,749,761,791,792,793,794],[85,94,156,164,168,171,173,174,175,187,609,727,749,761,791,792],[85,94,156,164,168,171,173,174,175,187,609,727,742,749,761,791,792,793,794,795,797],[85,94,156,164,168,171,173,174,175,187,609,727,749,761,791,792,793],[85,94,156,164,168,171,173,174,175,187,244,727,790,798],[85,94,156,164,168,171,173,174,175,187,550,609,727,742,761,790,798,1070,1072,1085,1087,1089],[85,94,156,164,168,171,173,174,175,187,244,550,609,727,742,761,790,798,1070,1072,1085,1087,1089,1090,1091],[85,94,156,164,168,171,173,174,175,187,244,550,609,727,742,761,790,798,1070,1072,1085,1087,1089,1090,1091,1092,1093,1094,1095],[85,94,156,164,168,171,173,174,175,187,244,550,609,727,742,761,790,798,1070,1072,1085,1087,1089,1090,1093],[85,94,156,164,168,171,173,174,175,187,550,609,727,742,761,790,798,1070,1072,1085,1087],[85,94,156,164,168,171,173,174,175,187,244,550,609,727,742,761,790,798,1070,1072,1085,1087,1089,1090],[94,156,164,168,171,173,174,175,187,727],[85,94,156,164,168,171,173,174,175,187,609,727,742,749,750,761,762],[85,94,156,164,168,171,173,174,175,187,609,727,742,749,750,761,762,763,764,765,766,767],[85,94,156,164,168,171,173,174,175,187,609,727,742,749,750,761],[85,94,156,164,168,171,173,174,175,187,728,742],[85,94,156,164,168,171,173,174,175,187],[85,94,156,164,168,171,173,174,175,187,728],[85,94,156,164,168,171,173,174,175,187,735],[85,94,156,164,168,171,173,174,175,187,609,727,761,898,900,901,916,918,919],[85,94,156,164,168,171,173,174,175,187,244,609,727,898,900],[85,94,156,164,168,171,173,174,175,187,609,727,898,900],[85,94,156,164,168,171,173,174,175,187,244,609,727,761,898,900,901,916,918,919,920,921,922],[85,94,156,164,168,171,173,174,175,187,609,727,761,898,900,901,916,918],[85,94,156,164,168,171,173,174,175,187,609,727,898],[85,94,156,164,168,171,173,174,175,187,902,916],[94,156,164,168,171,173,174,175,187,916],[85,94,156,164,168,171,173,174,175,187,902],[85,94,156,164,168,171,173,174,175,187,909],[85,94,156,164,168,171,173,174,175,187,550,609,653,727,761,799],[85,94,156,164,168,171,173,174,175,187,550,609,653,727,761,799,800],[85,94,156,164,168,171,173,174,175,187,550,609,653,727,761],[85,94,156,164,168,171,173,174,175,187,609,727,742,1074],[85,94,156,164,168,171,173,174,175,187,727,742],[94,156,164,168,171,173,174,175,187,609,727,1074],[85,94,156,164,168,171,173,174,175,187,550,609,727,742,761,1070,1073,1074,1076,1077],[85,94,156,164,168,171,173,174,175,187,550,609,727,742,761,1070,1073,1074,1076,1077,1078,1079,1080,1081,1082],[85,94,156,164,168,171,173,174,175,187,550,609,727,742,761,1073,1074,1076,1079],[85,94,156,164,168,171,173,174,175,187,550,609,727,742,761,1070,1073,1074,1076],[85,94,156,164,168,171,173,174,175,187,550,609,727,742,761,1073,1074,1076],[85,94,156,164,168,171,173,174,175,187,609,727,742,798,811,869,1070,1073,1074,1083,1096,1100,1101,1102],[85,94,156,164,168,171,173,174,175,187,609,727,1073,1083],[85,94,156,164,168,171,173,174,175,187,550,609,727,742,798,811,869,1070,1073,1074,1083,1096,1100,1104,1105],[85,94,156,164,168,171,173,174,175,187,550,609,727,742,798,811,869,1070,1073,1074,1083,1096,1100,1101,1102,1103,1104,1105,1106],[85,94,156,164,168,171,173,174,175,187,609,727,742,798,811,869,1070,1073,1083,1096],[85,94,156,164,168,171,173,174,175,187,609,727,742,798,811,869,1070,1073,1074,1083,1096,1100,1101],[85,94,156,164,168,171,173,174,175,187,550,609,727,742,798,811,869,1070,1073,1074,1083,1096,1100,1104],[85,94,156,164,168,171,173,174,175,187,244,609,727,747,761,809,810,824,858,860,862,863,864,865,866,867,868],[85,94,156,164,168,171,173,174,175,187,609,742,808,851,852],[85,94,156,164,168,171,173,174,175,187,609,742,808,851,852,853],[85,94,156,164,168,171,173,174,175,187,609,742,808,851],[85,94,156,164,168,171,173,174,175,187,856],[85,94,156,164,168,171,173,174,175,187,244,727,761,838,856,869,870],[85,94,156,164,168,171,173,174,175,187,244,727,761,838,856,869,870,871,872,873],[85,94,156,164,168,171,173,174,175,187,727,761,838,856,869],[85,94,156,164,168,171,173,174,175,187,609,727,747,761,809,810,824,858,860,862,863],[85,94,156,164,168,171,173,174,175,187,244,727,860],[85,94,156,164,168,171,173,174,175,187,609,727,747,858],[85,94,156,164,168,171,173,174,175,187,727],[85,94,156,164,168,171,173,174,175,187,810,824,858],[85,94,156,164,168,171,173,174,175,187,609,727,747,761,809,810,824,858,860,862],[94,156,164,168,171,173,174,175,187,809],[85,94,156,164,168,171,173,174,175,187,916,948,950],[85,94,156,164,168,171,173,174,175,187,916,948,950,951],[85,94,156,164,168,171,173,174,175,187,916,948,950,951,952],[85,94,156,164,168,171,173,174,175,187,609,727,875,876,877,878],[85,94,156,164,168,171,173,174,175,187,609,727,875,876],[85,94,156,164,168,171,173,174,175,187,609,727,875],[85,94,156,164,168,171,173,174,175,187,244,609,727,761,1120,1121,1122,1123],[85,94,156,164,168,171,173,174,175,187,609,727,761,1120,1121],[85,94,156,164,168,171,173,174,175,187,609,727,761,1120],[85,94,156,164,168,171,173,174,175,187,609,916,993,1011],[85,94,156,164,168,171,173,174,175,187,244,550,609,727,916,967,993,1011,1013,1014,1015,1022],[85,94,156,164,168,171,173,174,175,187,244,550,609,727,761,916,967,993,1011,1013,1014,1015,1016,1017,1022,1023],[85,94,156,164,168,171,173,174,175,187,244,550,609,727,916,967,993,1011,1013,1014],[85,94,156,164,168,171,173,174,175,187,244,550,609,727,761,916,967,993,1011,1013,1014,1015,1016],[85,94,156,164,168,171,173,174,175,187,550,609,727,916,967,993,1011,1013],[85,94,156,164,168,171,173,174,175,187,244,550,609,727,761,916,967,993,1011,1013,1014,1015],[85,94,156,164,168,171,173,174,175,187,916,972,973,978,985,986,987,988,989,990,991,992],[85,94,156,164,168,171,173,174,175,187,609,916,977,1019,1020],[85,94,156,164,168,171,173,174,175,187,609,916,977,1019,1020,1021],[85,94,156,164,168,171,173,174,175,187,609,916,977,1019],[85,94,156,164,168,171,173,174,175,187,550,916,974,975,976],[85,94,156,164,168,171,173,174,175,187,609,742,824,842],[85,94,156,164,168,171,173,174,175,187,244,550,609,727,742,824,840,842,844,845,846,854],[85,94,156,164,168,171,173,174,175,187,244,550,609,727,742,761,824,838,840,842,844,845,846,847,848,854,855],[85,94,156,164,168,171,173,174,175,187,244,550,609,727,742,824,840,842,844,845],[85,94,156,164,168,171,173,174,175,187,244,550,609,727,742,761,824,838,840,842,844,845,846,847],[85,94,156,164,168,171,173,174,175,187,550,609,727,742,824,840,842,844],[85,94,156,164,168,171,173,174,175,187,244,550,609,727,742,761,824,838,840,842,844,845,846],[85,94,156,164,168,171,173,174,175,187,244,550,609,727,747,761,810,858,860,956,957,958,959,960,961,962,964,965],[85,94,156,164,168,171,173,174,175,187,550,609,727,747],[94,156,164,168,171,173,174,175,187,727,761],[85,94,156,164,168,171,173,174,175,187,550,609,727,747,761,810,858,956],[85,94,156,164,168,171,173,174,175,187,550,609,727,747,761,810,858],[85,94,156,164,168,171,173,174,175,187,550,609,653,727,880,881,882,883,884,885],[85,94,156,164,168,171,173,174,175,187,653,727,880,883],[85,94,156,164,168,171,173,174,175,187,550,609,653,727,880,881],[85,94,156,164,168,171,173,174,175,187,653,727,880],[85,94,156,164,168,171,173,174,175,187,550,609,653,727,880],[85,94,156,164,168,171,173,174,175,187,609,727,747,761,978,979,993,1028,1030,1033,1034],[85,94,156,164,168,171,173,174,175,187,244,609,727,747,761,978,979,993,1028,1030,1033,1034,1035,1036,1037,1038,1039],[85,94,156,164,168,171,173,174,175,187,244,727,1030],[85,94,156,164,168,171,173,174,175,187,609,727,747,1028],[85,94,156,164,168,171,173,174,175,187,979,993,1028],[85,94,156,164,168,171,173,174,175,187,609,727,747,761,978,979,993,1028,1030,1033],[94,156,164,168,171,173,174,175,187,859,916],[85,94,156,164,168,171,173,174,175,187,659,660,916,978],[94,156,164,168,171,173,174,175,187,978],[94,156,164,168,171,173,174,175,187,653],[85,94,156,164,168,171,173,174,175,187,653,755,756,757,758],[85,94,156,164,168,171,173,174,175,187,653],[85,94,156,164,168,171,173,174,175,187,653,751,752,753,754,759,760],[85,94,156,164,168,171,173,174,175,187,653,727,743,747,748],[85,94,156,164,168,171,173,174,175,187,653,727,743,747],[85,94,156,164,168,171,173,174,175,187,609,727,761,1047,1048,1049],[85,94,156,164,168,171,173,174,175,187,609,727,761,1047,1048],[85,94,156,164,168,171,173,174,175,187,609,727,761,1047],[85,94,156,164,168,171,173,174,175,187,926,927,928,929,930,931,932,933,934,935,936,937,938],[85,94,156,164,168,171,173,174,175,187,550,653,654],[85,94,156,164,168,171,173,174,175,187,550,653,654,655,656],[85,94,156,164,168,171,173,174,175,187,653,654],[85,94,156,164,168,171,173,174,175,187,653,657,661,722,723,724,725,726],[85,94,156,164,168,171,173,174,175,187,723],[85,94,156,164,168,171,173,174,175,187,653,661,722,723,724],[85,94,156,164,168,171,173,174,175,187,727,888],[94,156,164,168,171,173,174,175,187,727,888],[85,94,156,164,168,171,173,174,175,187,609,653,727,761,888,889,893,899,923,924,925,939,940,941,942,943,944],[85,94,156,164,168,171,173,174,175,187,609,653,727,761,888,889,893,899,923,924],[85,94,156,164,168,171,173,174,175,187,609,653,727,761,888,889,893,899,923],[85,94,156,164,168,171,173,174,175,187,993],[85,94,156,164,168,171,173,174,175,187,609,727,761,969,970,993,994,995,996],[85,94,156,164,168,171,173,174,175,187,609,727,761,969,970,993,994],[85,94,156,164,168,171,173,174,175,187,609,727,761,969,970,993],[94,156,164,168,171,173,174,175,187,916,973,985],[85,94,156,164,168,171,173,174,175,187,916,973],[94,156,164,168,171,173,174,175,187,978,989],[85,94,156,164,168,171,173,174,175,187,916,977,979,980,981,982,983,984],[85,94,156,164,168,171,173,174,175,187,981],[85,94,156,164,168,171,173,174,175,187,916,979,980,981,982],[85,94,156,164,168,171,173,174,175,187,550,916,974],[85,94,156,164,168,171,173,174,175,187,916,974],[85,94,156,164,168,171,173,174,175,187,718,719,720,721,916],[94,156,164,168,171,173,174,175,187,601,602,603],[94,156,164,168,171,173,174,175,187,601],[94,156,164,168,171,173,174,175,187,550],[94,156,164,168,171,173,174,175,187,547,550],[94,156,164,168,171,173,174,175,187,601,605],[94,156,164,168,171,173,174,175,187,547,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608],[94,156,164,168,171,173,174,175,187,550,596],[85,94,156,164,168,171,173,174,175,187,609,727,747,761,809,810,824,825,828,829],[85,94,156,164,168,171,173,174,175,187,609,727,747,761,809,810,824,825,828],[85,94,156,164,168,171,173,174,175,187,609,727,747,761,809,810,824,825],[85,94,156,164,168,171,173,174,175,187,742,790],[94,156,164,168,171,173,174,175,187,750],[94,156,164,168,171,173,174,175,187,717],[94,156,164,168,171,173,174,175,187,653,659,720,1072,1085],[85,94,156,164,168,171,173,174,175,187,653,659,859,1072,1073,1074],[94,156,164,168,171,173,174,175,187,653,859],[94,156,164,168,171,173,174,175,187,653,839,890,891,895,896],[94,156,164,168,171,173,174,175,187,653,839],[85,94,156,164,168,171,173,174,175,187,653,718,719,720,721],[85,94,156,164,168,171,173,174,175,187,653,895,967,1009],[85,94,156,164,168,171,173,174,175,187,653,659,661,838,839,840,841],[85,94,156,164,168,171,173,174,175,187,653,658,659,660],[94,156,164,168,171,173,174,175,187,653,887,888,893,897,898],[94,156,164,168,171,173,174,175,187,653,968,969],[94,156,164,168,171,173,174,175,187,653,720,1072],[94,156,164,168,171,173,174,175,187,653,898,917],[94,156,164,168,171,173,174,175,187,653,660,917,967,1025],[94,156,164,168,171,173,174,175,187,653,660,720,917,1073],[94,156,164,168,171,173,174,175,187,653,839,890],[94,156,164,168,171,173,174,175,187,653,660,838],[94,156,164,168,171,173,174,175,187,658],[85,94,156,164,168,171,173,174,175,187,653,839,887,888,891,892],[94,156,164,168,171,173,174,175,187,653,967,968],[85,94,156,164,168,171,173,174,175,187,653,720],[94,156,164,168,171,173,174,175,187,653,658,720,1072],[85,94,156,164,168,171,173,174,175,187,653,658],[85,94,156,164,168,171,173,174,175,187,639,653],[85,94,156,164,168,171,173,174,175,187,639],[94,156,164,168,171,173,174,175,187,639,640,641,642,643,644,645,646,647,648,649,650,651,652],[85,94,156,164,168,171,173,174,175,187,646],[85,94,156,164,168,171,173,174,175,187,653,887],[94,156,164,168,171,173,174,175,187,1067,1068],[94,156,164,168,171,173,174,175,187,1066],[94,153,154,156,164,168,171,173,174,175,187],[94,155,156,164,168,171,173,174,175,187],[156,164,168,171,173,174,175,187],[94,156,164,168,171,173,174,175,187,195],[94,156,157,162,164,167,168,171,173,174,175,177,187,192,204],[94,156,157,158,164,167,168,171,173,174,175,187],[94,156,159,164,168,171,173,174,175,187,205],[94,156,160,161,164,168,171,173,174,175,178,187],[94,156,161,164,168,171,173,174,175,187,192,201],[94,156,162,164,167,168,171,173,174,175,177,187],[94,155,156,163,164,168,171,173,174,175,187],[94,156,164,165,168,171,173,174,175,187],[94,156,164,166,167,168,171,173,174,175,187],[94,155,156,164,167,168,171,173,174,175,187],[94,156,164,167,168,169,171,173,174,175,187,192,204],[94,156,164,167,168,169,171,173,174,175,187,192,195],[94,143,156,164,167,168,170,171,173,174,175,177,187,192,204],[94,156,164,167,168,170,171,173,174,175,177,187,192,201,204],[94,156,164,168,170,171,172,173,174,175,187,192,201,204],[92,93,94,95,96,97,98,99,100,101,102,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211],[94,156,164,167,168,171,173,174,175,187],[94,156,164,168,171,173,175,187],[94,156,164,168,171,173,174,175,176,187,204],[94,156,164,167,168,171,173,174,175,177,187,192],[94,156,164,168,171,173,174,175,178,187],[94,156,164,168,171,173,174,175,179,187],[94,156,164,167,168,171,173,174,175,182,187],[94,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211],[94,156,164,168,171,173,174,175,184,187],[94,156,164,168,171,173,174,175,185,187],[94,156,161,164,168,171,173,174,175,177,187,195],[94,156,164,167,168,171,173,174,175,187,188],[94,156,164,168,171,173,174,175,187,189,205,208],[94,156,164,167,168,171,173,174,175,187,192,194,195],[94,156,164,168,171,173,174,175,187,193,195],[94,156,164,168,171,173,174,175,187,195,205],[94,156,164,168,171,173,174,175,187,196],[94,153,156,164,168,171,173,174,175,187,192,198,204],[94,156,164,168,171,173,174,175,187,192,197],[94,156,164,167,168,171,173,174,175,187,199,200],[94,156,164,168,171,173,174,175,187,199,200],[94,156,161,164,168,171,173,174,175,177,187,192,201],[94,156,164,168,171,173,174,175,187,202],[94,156,164,168,171,173,174,175,177,187,203],[94,156,164,168,170,171,173,174,175,185,187,204],[94,156,164,168,171,173,174,175,187,205,206],[94,156,161,164,168,171,173,174,175,187,206],[94,156,164,168,171,173,174,175,187,192,207],[94,156,164,168,171,173,174,175,176,187,208],[94,156,164,168,171,173,174,175,187,209],[94,156,159,164,168,171,173,174,175,187],[94,156,161,164,168,171,173,174,175,187],[94,156,164,168,171,173,174,175,187,205],[94,143,156,164,168,171,173,174,175,187],[94,156,164,168,171,173,174,175,187,204],[94,156,164,168,171,173,174,175,187,210],[94,156,164,168,171,173,174,175,182,187],[94,156,164,168,171,173,174,175,187,200],[94,143,156,164,167,168,169,171,173,174,175,182,187,192,195,204,207,208,210],[94,156,164,168,171,173,174,175,187,192,211],[85,89,94,156,164,168,171,173,174,175,187,214,493,538,620],[85,89,94,156,164,168,171,173,174,175,187,213,493,538,620],[83,84,94,156,164,168,171,173,174,175,187],[85,94,156,164,168,171,173,174,175,187,1001,1004],[94,156,164,168,171,173,174,175,187,999],[94,156,164,168,171,173,174,175,187,999,1001],[94,156,164,168,171,173,174,175,187,999,1000,1002,1003],[94,156,164,168,170,171,173,174,175,187,212,278,516,998],[94,156,164,168,171,173,174,175,187,999,1004],[94,156,164,168,171,173,174,175,187,832],[94,156,164,168,171,173,174,175,187,831],[94,156,164,168,171,173,174,175,187,833,835,836],[94,156,164,168,171,173,174,175,187,833,834,836],[94,156,164,168,171,173,174,175,187,833,834,835],[94,156,164,168,171,173,174,175,187,1108],[85,94,156,164,168,171,173,174,175,187,745],[85,94,156,164,168,171,173,174,175,187,244,744,745,746],[94,156,164,168,171,173,174,175,187,615],[94,156,164,168,171,173,174,175,187,614,615,620],[94,156,164,168,171,173,174,175,187,611,612,613],[94,156,164,168,171,173,174,175,187,611],[94,156,164,168,171,173,174,175,187,611,612],[94,156,164,168,171,173,174,175,187,708,716],[94,156,164,168,171,173,174,175,187,744],[94,156,164,168,171,173,174,175,187,496],[94,156,164,168,171,173,174,175,187,447,507,508],[94,156,164,168,171,173,174,175,187,219,220,222,234,258,373,384,489],[94,156,164,168,171,173,174,175,187,222,253,254,255,257,489],[94,156,164,168,171,173,174,175,187,222,390,392,394,395,397,489,491],[94,156,164,168,171,173,174,175,187,222,256,293,489],[94,156,164,168,171,173,174,175,187,220,222,233,234,240,246,251,372,373,374,383,489,491],[94,156,164,168,171,173,174,175,187,489],[94,156,164,168,171,173,174,175,187,229,235,254,274,369],[94,156,164,168,171,173,174,175,187,222],[94,156,164,168,171,173,174,175,187,215,229,235],[94,156,164,168,171,173,174,175,187,401],[94,156,164,168,171,173,174,175,187,398,399,401],[94,156,164,168,171,173,174,175,187,398,400,489],[94,156,164,168,170,171,173,174,175,187,274,471,486],[94,156,164,168,170,171,173,174,175,187,345,348,364,369,486],[94,156,164,168,170,171,173,174,175,187,317,486],[94,156,164,168,171,173,174,175,187,377],[94,156,164,168,171,173,174,175,187,376,377,378],[94,156,164,168,171,173,174,175,187,376],[91,94,156,164,168,170,171,173,174,175,187,215,222,234,240,246,252,254,258,259,272,273,340,370,371,384,489,493],[94,156,164,168,171,173,174,175,187,219,222,256,293,390,391,396,489,541],[94,156,164,168,171,173,174,175,187,256,541],[94,156,164,168,171,173,174,175,187,219,273,442,489,541],[94,156,164,168,171,173,174,175,187,541],[94,156,164,168,171,173,174,175,187,222,256,257,541],[94,156,164,168,171,173,174,175,187,393,541],[94,156,164,168,171,173,174,175,187,259,372,375,382],[85,94,156,164,168,171,173,174,175,187,447],[94,156,164,168,171,173,174,175,185,187,229,244],[94,156,164,168,171,173,174,175,187,229,244],[85,94,156,164,168,171,173,174,175,187,314],[85,94,156,164,168,171,173,174,175,187,235,244,447],[94,156,164,168,171,173,174,175,187,229,300,314,315,523,530],[94,156,164,168,171,173,174,175,187,299,524,525,526,527,529],[94,156,164,168,171,173,174,175,187,350],[94,156,164,168,171,173,174,175,187,350,351],[94,156,164,168,171,173,174,175,187,233,235,302,303],[94,156,164,168,171,173,174,175,187,235,309,310],[94,156,164,168,171,173,174,175,187,235,304,312],[94,156,164,168,171,173,174,175,187,309],[94,156,164,168,171,173,174,175,187,227,235,302,303,304,305,306,307,308,309,312],[94,156,164,168,171,173,174,175,187,235,302,309,310,311,313],[94,156,164,168,171,173,174,175,187,235,303,305,306],[94,156,164,168,171,173,174,175,187,303,305,308,310],[94,156,164,168,171,173,174,175,187,528],[94,156,164,168,171,173,174,175,187,235],[85,94,156,164,168,171,173,174,175,187,223,517],[85,94,156,164,168,171,173,174,175,187,204],[85,94,156,164,168,171,173,174,175,187,256,291],[85,94,156,164,168,171,173,174,175,187,256,384],[94,156,164,168,171,173,174,175,187,289,294],[85,94,156,164,168,171,173,174,175,187,290,495],[85,89,94,156,164,168,170,171,173,174,175,187,213,214,493,537,620],[94,156,164,168,170,171,173,174,175,187,235],[94,156,164,168,170,171,173,174,175,187,234,239,320,337,379,380,384,439,441,489,490],[94,156,164,168,171,173,174,175,187,272,381],[94,156,164,168,171,173,174,175,187,493],[94,156,164,168,171,173,174,175,187,221],[85,94,156,164,168,171,173,174,175,187,226,229,444,460,462],[94,156,164,168,171,173,174,175,185,187,229,444,459,460,461,540],[94,156,164,168,171,173,174,175,187,453,454,455,456,457,458],[94,156,164,168,171,173,174,175,187,455],[94,156,164,168,171,173,174,175,187,459],[94,156,164,168,171,173,174,175,187,244,408,409,411],[85,94,156,164,168,171,173,174,175,187,235,402,403,404,405,410],[94,156,164,168,171,173,174,175,187,408,410],[94,156,164,168,171,173,174,175,187,406],[94,156,164,168,171,173,174,175,187,407],[85,94,156,164,168,171,173,174,175,187,244,290,495],[85,94,156,164,168,171,173,174,175,187,244,494,495],[85,94,156,164,168,171,173,174,175,187,244,495],[94,156,164,168,171,173,174,175,187,337,338],[94,156,164,168,171,173,174,175,187,338],[94,156,164,168,170,171,173,174,175,187,490,495],[94,156,164,168,171,173,174,175,187,367],[94,155,156,164,168,171,173,174,175,187,366],[94,156,164,168,171,173,174,175,187,229,235,241,243,345,358,362,364,441,444,478,479,486,490],[94,156,164,168,171,173,174,175,187,235,284,306],[94,156,164,168,171,173,174,175,187,345,356,359,364],[85,94,156,164,168,171,173,174,175,187,226,229,345,348,364,367,401,448,449,450,451,452,463,464,465,466,467,468,469,470,541],[94,156,164,168,171,173,174,175,187,226,229,254,345,352,353,354,357,358],[94,156,164,168,171,173,174,175,187,192,235,254,356,363,444,445,486],[94,156,164,168,171,173,174,175,187,360],[94,156,164,168,170,171,173,174,175,185,187,223,235,239,249,281,282,285,337,340,405,439,440,478,489,490,491,493,541],[94,156,164,168,171,173,174,175,187,226,227,229],[94,156,164,168,171,173,174,175,187,345],[94,155,156,164,168,171,173,174,175,187,254,281,282,339,340,341,342,343,344,490],[94,156,164,168,171,173,174,175,187,364],[94,155,156,164,168,171,173,174,175,187,228,229,239,243,279,345,352,353,354,355,356,359,360,361,362,363,479],[94,156,164,168,170,171,173,174,175,187,279,280,352,490,491],[94,156,164,168,171,173,174,175,187,254,282,337,340,345,441,490],[94,156,164,168,170,171,173,174,175,187,489,491],[94,156,164,168,170,171,173,174,175,187,192,486,490,491],[94,156,164,168,170,171,173,174,175,185,187,215,229,234,241,243,246,249,256,276,281,282,283,284,285,320,321,323,326,328,331,332,333,334,336,384,439,441,486,489,490,491],[94,156,164,168,170,171,173,174,175,187,192],[94,156,164,168,171,173,174,175,187,222,223,224,252,486,487,488,493,495,541],[94,156,164,168,171,173,174,175,187,219,220,489],[94,156,164,168,171,173,174,175,187,413],[94,156,164,168,170,171,173,174,175,187,192,204,231,397,401,402,403,404,405,411,412,541],[94,156,164,168,171,173,174,175,185,187,204,215,229,231,243,246,282,321,326,336,337,390,417,418,419,425,428,429,439,441,486,489],[94,156,164,168,171,173,174,175,187,246,252,259,272,282,340,489],[94,156,164,168,170,171,173,174,175,187,204,223,234,243,282,423,486,489],[94,156,164,168,171,173,174,175,187,443],[94,156,164,168,170,171,173,174,175,187,413,426,427,436],[94,156,164,168,171,173,174,175,187,486,489],[94,156,164,168,171,173,174,175,187,342,479],[94,156,164,168,171,173,174,175,187,243,281,384,495],[94,156,164,168,170,171,173,174,175,185,187,221,326,386,390,419,425,428,431,486],[94,156,164,168,170,171,173,174,175,187,259,272,390,432],[94,156,164,168,171,173,174,175,187,222,283,384,434,489,491],[94,156,164,168,170,171,173,174,175,187,204,405,489],[94,156,164,168,170,171,173,174,175,187,256,283,384,385,386,395,413,433,435,489],[91,94,156,164,168,170,171,173,174,175,187,281,438,493,495],[94,156,164,168,171,173,174,175,187,335,439],[94,156,164,168,170,171,173,174,175,185,187,229,232,234,235,241,243,249,258,259,272,282,285,321,323,333,336,337,384,417,418,419,420,422,424,439,441,486,495],[94,156,164,168,170,171,173,174,175,187,192,259,425,430,436,486],[94,156,164,168,171,173,174,175,187,262,263,264,265,266,267,268,269,270,271],[94,156,164,168,171,173,174,175,187,276,327],[94,156,164,168,171,173,174,175,187,329],[94,156,164,168,171,173,174,175,187,327],[94,156,164,168,171,173,174,175,187,329,330],[94,156,164,168,170,171,173,174,175,187,233,234,235,239,240,490],[94,156,164,168,170,171,173,174,175,185,187,221,223,241,245,281,284,285,319,439,486,491,493,495],[94,156,164,168,170,171,173,174,175,185,187,204,225,232,233,243,245,282,437,479,485,490],[94,156,164,168,171,173,174,175,187,352],[94,156,164,168,171,173,174,175,187,353],[94,156,164,168,171,173,174,175,187,235,246,478],[94,156,164,168,171,173,174,175,187,354],[94,156,164,168,171,173,174,175,187,228],[94,156,164,168,171,173,174,175,187,230,242],[94,156,164,168,170,171,173,174,175,187,230,234,241],[94,156,164,168,171,173,174,175,187,237,242],[94,156,164,168,171,173,174,175,187,238],[94,156,164,168,171,173,174,175,187,230,231],[94,156,164,168,171,173,174,175,187,230,286],[94,156,164,168,171,173,174,175,187,230],[94,156,164,168,171,173,174,175,187,232,276,325],[94,156,164,168,171,173,174,175,187,324],[94,156,164,168,171,173,174,175,187,229,231,232],[94,156,164,168,171,173,174,175,187,232,322],[94,156,164,168,171,173,174,175,187,229,231],[94,156,164,168,171,173,174,175,187,281,384],[94,156,164,168,171,173,174,175,187,478],[94,156,164,168,170,171,173,174,175,187,204,241,243,247,281,384,438,441,444,445,446,472,473,476,477,479,486,490],[94,156,164,168,171,173,174,175,187,295,298,300,301,314,315],[85,94,156,164,168,171,173,174,175,187,244,474,475],[94,156,164,168,171,173,174,175,187,368],[94,156,164,168,171,173,174,175,187,254,275,280,281,345,346,347,348,349,351,364,365,367,370,438,441,489,491],[94,156,164,168,171,173,174,175,187,314],[94,156,164,168,170,171,173,174,175,187,319,486],[94,156,164,168,171,173,174,175,187,319],[94,156,164,168,170,171,173,174,175,187,241,287,316,318,320,438,486,493,495],[94,156,164,168,171,173,174,175,187,295,296,297,298,300,301,314,315,494],[91,94,156,164,168,170,171,173,174,175,185,187,204,230,231,243,249,281,282,285,384,436,437,439,486,489,490,493],[94,156,164,168,171,173,174,175,187,226,229,236],[94,156,164,168,171,173,174,175,187,280,282,414,417],[94,156,164,168,171,173,174,175,187,280,415,480,481,482,483,484],[94,156,164,168,170,171,173,174,175,187,276,489],[94,156,164,168,170,171,173,174,175,187],[94,156,164,168,171,173,174,175,187,279,364],[94,156,164,168,171,173,174,175,187,278],[94,156,164,168,171,173,174,175,187,280,333],[94,156,164,168,171,173,174,175,187,277,279,489],[94,156,164,168,170,171,173,174,175,187,225,280,414,415,416,486,489,490],[85,94,156,164,168,171,173,174,175,187,229,235,313],[85,94,156,164,168,171,173,174,175,187,227],[94,156,164,168,171,173,174,175,187,217,218],[85,94,156,164,168,171,173,174,175,187,223],[85,94,156,164,168,171,173,174,175,187,229,299],[85,91,94,156,164,168,171,173,174,175,187,281,285,493,495],[94,156,164,168,171,173,174,175,187,223,517,518],[85,94,156,164,168,171,173,174,175,187,294],[85,94,156,164,168,171,173,174,175,185,187,204,221,288,290,292,293,495],[94,156,164,168,171,173,174,175,187,229,256,490],[94,156,164,168,171,173,174,175,187,229,421],[85,94,156,164,168,170,171,173,174,175,185,187,219,221,294,392,493,494],[85,94,156,164,168,171,173,174,175,187,213,214,493,538,620],[85,86,87,88,89,94,156,164,168,171,173,174,175,187],[94,156,164,168,171,173,174,175,187,387,388,389],[94,156,164,168,171,173,174,175,187,387],[85,89,94,156,164,168,170,171,172,173,174,175,185,187,212,213,214,215,221,249,254,431,459,491,492,495,538,620],[94,156,164,168,171,173,174,175,187,503],[94,156,164,168,171,173,174,175,187,505],[94,156,164,168,171,173,174,175,187,509],[94,156,164,168,171,173,174,175,187,511],[94,156,164,168,171,173,174,175,187,513,514,515],[94,156,164,168,171,173,174,175,187,519],[90,94,156,164,168,171,173,174,175,187,497,502,504,506,510,512,516,520,522,532,533,535,539,540,541,542],[94,156,164,168,171,173,174,175,187,521],[94,156,164,168,171,173,174,175,187,531],[94,156,164,168,171,173,174,175,187,290],[94,156,164,168,171,173,174,175,187,534],[94,155,156,164,168,171,173,174,175,187,280,414,415,417,480,481,483,484,536,538],[94,156,164,168,171,173,174,175,187,212],[94,156,164,168,171,173,174,175,187,633],[94,156,164,168,171,173,174,175,187,628],[94,156,164,168,171,173,174,175,187,625,626,628],[94,156,164,168,171,173,174,175,187,627],[94,156,164,168,171,173,174,175,187,627,628],[94,156,164,168,171,173,174,175,187,626,627,628,629,630,631,632],[94,156,164,168,171,173,174,175,187,626,628],[85,94,156,164,168,171,173,174,175,187,614,615,620],[94,156,164,168,171,173,174,175,187,620],[85,89,94,156,164,168,171,173,174,175,187,213,214,493,538,614,615,617,618,619,620],[94,156,164,168,171,173,174,175,187,192,212],[94,156,164,168,171,173,174,175,187,547],[94,156,164,168,171,173,174,175,187,548,549],[94,156,164,168,171,173,174,175,187,547,548],[94,109,112,115,116,156,164,168,171,173,174,175,187,204],[94,112,156,164,168,171,173,174,175,187,192,204],[94,112,116,156,164,168,171,173,174,175,187,204],[94,156,164,168,171,173,174,175,187,192],[94,106,156,164,168,171,173,174,175,187],[94,110,156,164,168,171,173,174,175,187],[94,108,109,112,156,164,168,171,173,174,175,187,204],[94,156,164,168,171,173,174,175,177,187,201],[94,106,156,164,168,171,173,174,175,187,212],[94,108,112,156,164,168,171,173,174,175,177,187,204],[94,103,104,105,107,111,156,164,167,168,171,173,174,175,187,192,204],[94,112,120,128,156,164,168,171,173,174,175,187],[94,104,110,156,164,168,171,173,174,175,187],[94,112,137,138,156,164,168,171,173,174,175,187],[94,104,107,112,156,164,168,171,173,174,175,187,195,204,212],[94,112,156,164,168,171,173,174,175,187],[94,108,112,156,164,168,171,173,174,175,187,204],[94,103,156,164,168,171,173,174,175,187],[94,106,107,108,110,111,112,113,114,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,138,139,140,141,142,156,164,168,171,173,174,175,187],[94,112,130,133,156,164,168,171,173,174,175,187],[94,112,120,121,122,156,164,168,171,173,174,175,187],[94,110,112,121,123,156,164,168,171,173,174,175,187],[94,111,156,164,168,171,173,174,175,187],[94,104,106,112,156,164,168,171,173,174,175,187],[94,112,116,121,123,156,164,168,171,173,174,175,187],[94,116,156,164,168,171,173,174,175,187],[94,110,112,115,156,164,168,171,173,174,175,187,204],[94,104,108,112,120,156,164,168,171,173,174,175,187],[94,112,130,156,164,168,171,173,174,175,187],[94,123,156,164,168,171,173,174,175,187],[94,106,112,137,156,164,168,171,173,174,175,187,195,210,212],[94,156,164,168,171,173,174,175,187,244,624,773],[94,156,164,168,171,173,174,175,187,244,624]],"fileInfos":[{"version":"c430d44666289dae81f30fa7b2edebf186ecc91a2d4c71266ea6ae76388792e1","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"ee7bad0c15b58988daa84371e0b89d313b762ab83cb5b31b8a2d1162e8eb41c2","impliedFormat":1},{"version":"27bdc30a0e32783366a5abeda841bc22757c1797de8681bbe81fbc735eeb1c10","impliedFormat":1},{"version":"8fd575e12870e9944c7e1d62e1f5a73fcf23dd8d3a321f2a2c74c20d022283fe","impliedFormat":1},{"version":"2ab096661c711e4a81cc464fa1e6feb929a54f5340b46b0a07ac6bbf857471f0","impliedFormat":1},{"version":"080941d9f9ff9307f7e27a83bcd888b7c8270716c39af943532438932ec1d0b9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2e80ee7a49e8ac312cc11b77f1475804bee36b3b2bc896bead8b6e1266befb43","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"fb0f136d372979348d59b3f5020b4cdb81b5504192b1cacff5d1fbba29378aa1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"a680117f487a4d2f30ea46f1b4b7f58bef1480456e18ba53ee85c2746eeca012","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"3925a6c820dcb1a06506c90b1577db1fdbf7705d65b62b99dce4be75c637e26b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a3d63ef2b853447ec4f749d3f368ce642264246e02911fcb1590d8c161b8005","affectsGlobalScope":true,"impliedFormat":1},{"version":"8cdf8847677ac7d20486e54dd3fcf09eda95812ac8ace44b4418da1bbbab6eb8","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"df83c2a6c73228b625b0beb6669c7ee2a09c914637e2d35170723ad49c0f5cd4","affectsGlobalScope":true,"impliedFormat":1},{"version":"436aaf437562f276ec2ddbee2f2cdedac7664c1e4c1d2c36839ddd582eeb3d0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e3c06ea092138bf9fa5e874a1fdbc9d54805d074bee1de31b99a11e2fec239d","affectsGlobalScope":true,"impliedFormat":1},{"version":"87dc0f382502f5bbce5129bdc0aea21e19a3abbc19259e0b43ae038a9fc4e326","affectsGlobalScope":true,"impliedFormat":1},{"version":"b1cb28af0c891c8c96b2d6b7be76bd394fddcfdb4709a20ba05a7c1605eea0f9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2fef54945a13095fdb9b84f705f2b5994597640c46afeb2ce78352fab4cb3279","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac77cb3e8c6d3565793eb90a8373ee8033146315a3dbead3bde8db5eaf5e5ec6","affectsGlobalScope":true,"impliedFormat":1},{"version":"56e4ed5aab5f5920980066a9409bfaf53e6d21d3f8d020c17e4de584d29600ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ece9f17b3866cc077099c73f4983bddbcb1dc7ddb943227f1ec070f529dedd1","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a6282c8827e4b9a95f4bf4f5c205673ada31b982f50572d27103df8ceb8013c","affectsGlobalScope":true,"impliedFormat":1},{"version":"1c9319a09485199c1f7b0498f2988d6d2249793ef67edda49d1e584746be9032","affectsGlobalScope":true,"impliedFormat":1},{"version":"e3a2a0cee0f03ffdde24d89660eba2685bfbdeae955a6c67e8c4c9fd28928eeb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811c71eee4aa0ac5f7adf713323a5c41b0cf6c4e17367a34fbce379e12bbf0a4","affectsGlobalScope":true,"impliedFormat":1},{"version":"51ad4c928303041605b4d7ae32e0c1ee387d43a24cd6f1ebf4a2699e1076d4fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"60037901da1a425516449b9a20073aa03386cce92f7a1fd902d7602be3a7c2e9","affectsGlobalScope":true,"impliedFormat":1},{"version":"d4b1d2c51d058fc21ec2629fff7a76249dec2e36e12960ea056e3ef89174080f","affectsGlobalScope":true,"impliedFormat":1},{"version":"22adec94ef7047a6c9d1af3cb96be87a335908bf9ef386ae9fd50eeb37f44c47","affectsGlobalScope":true,"impliedFormat":1},{"version":"196cb558a13d4533a5163286f30b0509ce0210e4b316c56c38d4c0fd2fb38405","affectsGlobalScope":true,"impliedFormat":1},{"version":"73f78680d4c08509933daf80947902f6ff41b6230f94dd002ae372620adb0f60","affectsGlobalScope":true,"impliedFormat":1},{"version":"c5239f5c01bcfa9cd32f37c496cf19c61d69d37e48be9de612b541aac915805b","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"7e29f41b158de217f94cb9676bf9cbd0cd9b5a46e1985141ed36e075c52bf6ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac51dd7d31333793807a6abaa5ae168512b6131bd41d9c5b98477fc3b7800f9f","impliedFormat":1},{"version":"f123246a7b6c04d80b9b57fadfc6c90959ec6d5c0d4c8e620e06e2811ae3a052","impliedFormat":1},{"version":"acd8fd5090ac73902278889c38336ff3f48af6ba03aa665eb34a75e7ba1dccc4","impliedFormat":1},{"version":"d6258883868fb2680d2ca96bc8b1352cab69874581493e6d52680c5ffecdb6cc","impliedFormat":1},{"version":"1b61d259de5350f8b1e5db06290d31eaebebc6baafd5f79d314b5af9256d7153","impliedFormat":1},{"version":"f258e3960f324a956fc76a3d3d9e964fff2244ff5859dcc6ce5951e5413ca826","impliedFormat":1},{"version":"643f7232d07bf75e15bd8f658f664d6183a0efaca5eb84b48201c7671a266979","impliedFormat":1},{"version":"21da358700a3893281ce0c517a7a30cbd46be020d9f0c3f2834d0a8ad1f5fc75","impliedFormat":1},{"version":"d153a11543fd884b596587ccd97aebbeed950b26933ee000f94009f1ab142848","affectsGlobalScope":true,"impliedFormat":1},{"version":"0ccdaa19852d25ecd84eec365c3bfa16e7859cadecf6e9ca6d0dbbbee439743f","affectsGlobalScope":true,"impliedFormat":1},{"version":"438b41419b1df9f1fbe33b5e1b18f5853432be205991d1b19f5b7f351675541e","affectsGlobalScope":true,"impliedFormat":1},{"version":"096116f8fedc1765d5bd6ef360c257b4a9048e5415054b3bf3c41b07f8951b0b","affectsGlobalScope":true,"impliedFormat":1},{"version":"e5e01375c9e124a83b52ee4b3244ed1a4d214a6cfb54ac73e164a823a4a7860a","affectsGlobalScope":true,"impliedFormat":1},{"version":"f90ae2bbce1505e67f2f6502392e318f5714bae82d2d969185c4a6cecc8af2fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"4b58e207b93a8f1c88bbf2a95ddc686ac83962b13830fe8ad3f404ffc7051fb4","affectsGlobalScope":true,"impliedFormat":1},{"version":"1fefabcb2b06736a66d2904074d56268753654805e829989a46a0161cd8412c5","affectsGlobalScope":true,"impliedFormat":1},{"version":"9798340ffb0d067d69b1ae5b32faa17ab31b82466a3fc00d8f2f2df0c8554aaa","affectsGlobalScope":true,"impliedFormat":1},{"version":"c18a99f01eb788d849ad032b31cafd49de0b19e083fe775370834c5675d7df8e","affectsGlobalScope":true,"impliedFormat":1},{"version":"5247874c2a23b9a62d178ae84f2db6a1d54e6c9a2e7e057e178cc5eea13757fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"cdcf9ea426ad970f96ac930cd176d5c69c6c24eebd9fc580e1572d6c6a88f62c","impliedFormat":1},{"version":"23cd712e2ce083d68afe69224587438e5914b457b8acf87073c22494d706a3d0","impliedFormat":1},{"version":"487b694c3de27ddf4ad107d4007ad304d29effccf9800c8ae23c2093638d906a","impliedFormat":1},{"version":"3a80bc85f38526ca3b08007ee80712e7bb0601df178b23fbf0bf87036fce40ce","impliedFormat":1},{"version":"ccf4552357ce3c159ef75f0f0114e80401702228f1898bdc9402214c9499e8c0","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"68834d631c8838c715f225509cfc3927913b9cc7a4870460b5b60c8dbdb99baf","impliedFormat":1},{"version":"2931540c47ee0ff8a62860e61782eb17b155615db61e36986e54645ec67f67c2","impliedFormat":1},{"version":"ccab02f3920fc75c01174c47fcf67882a11daf16baf9e81701d0a94636e94556","impliedFormat":1},{"version":"f6faf5f74e4c4cc309a6c6a6c4da02dbb840be5d3e92905a23dcd7b2b0bd1986","impliedFormat":1},{"version":"ea6bc8de8b59f90a7a3960005fd01988f98fd0784e14bc6922dde2e93305ec7d","impliedFormat":1},{"version":"36107995674b29284a115e21a0618c4c2751b32a8766dd4cb3ba740308b16d59","impliedFormat":1},{"version":"914a0ae30d96d71915fc519ccb4efbf2b62c0ddfb3a3fc6129151076bc01dc60","impliedFormat":1},{"version":"33e981bf6376e939f99bd7f89abec757c64897d33c005036b9a10d9587d80187","impliedFormat":1},{"version":"7fd1b31fd35876b0aa650811c25ec2c97a3c6387e5473eb18004bed86cdd76b6","impliedFormat":1},{"version":"b41767d372275c154c7ea6c9d5449d9a741b8ce080f640155cc88ba1763e35b3","impliedFormat":1},{"version":"3bacf516d686d08682751a3bd2519ea3b8041a164bfb4f1d35728993e70a2426","impliedFormat":1},{"version":"7fb266686238369442bd1719bc0d7edd0199da4fb8540354e1ff7f16669b4323","impliedFormat":1},{"version":"0a60a292b89ca7218b8616f78e5bbd1c96b87e048849469cccb4355e98af959a","impliedFormat":1},{"version":"0b6e25234b4eec6ed96ab138d96eb70b135690d7dd01f3dd8a8ab291c35a683a","impliedFormat":1},{"version":"9666f2f84b985b62400d2e5ab0adae9ff44de9b2a34803c2c5bd3c8325b17dc0","impliedFormat":1},{"version":"40cd35c95e9cf22cfa5bd84e96408b6fcbca55295f4ff822390abb11afbc3dca","impliedFormat":1},{"version":"b1616b8959bf557feb16369c6124a97a0e74ed6f49d1df73bb4b9ddf68acf3f3","impliedFormat":1},{"version":"5b03a034c72146b61573aab280f295b015b9168470f2df05f6080a2122f9b4df","impliedFormat":1},{"version":"40b463c6766ca1b689bfcc46d26b5e295954f32ad43e37ee6953c0a677e4ae2b","impliedFormat":1},{"version":"249b9cab7f5d628b71308c7d9bb0a808b50b091e640ba3ed6e2d0516f4a8d91d","impliedFormat":1},{"version":"80aae6afc67faa5ac0b32b5b8bc8cc9f7fa299cff15cf09cc2e11fd28c6ae29e","impliedFormat":1},{"version":"f473cd2288991ff3221165dcf73cd5d24da30391f87e85b3dd4d0450c787a391","impliedFormat":1},{"version":"499e5b055a5aba1e1998f7311a6c441a369831c70905cc565ceac93c28083d53","impliedFormat":1},{"version":"54c3e2371e3d016469ad959697fd257e5621e16296fa67082c2575d0bf8eced0","impliedFormat":1},{"version":"beb8233b2c220cfa0feea31fbe9218d89fa02faa81ef744be8dce5acb89bb1fd","impliedFormat":1},{"version":"c183b931b68ad184bc8e8372bf663f3d33304772fb482f29fb91b3c391031f3e","impliedFormat":1},{"version":"5d0375ca7310efb77e3ef18d068d53784faf62705e0ad04569597ae0e755c401","impliedFormat":1},{"version":"59af37caec41ecf7b2e76059c9672a49e682c1a2aa6f9d7dc78878f53aa284d6","impliedFormat":1},{"version":"addf417b9eb3f938fddf8d81e96393a165e4be0d4a8b6402292f9c634b1cb00d","impliedFormat":1},{"version":"48cc3ec153b50985fb95153258a710782b25975b10dd4ac8a4f3920632d10790","impliedFormat":1},{"version":"adf27937dba6af9f08a68c5b1d3fce0ca7d4b960c57e6d6c844e7d1a8e53adae","impliedFormat":1},{"version":"e1528ca65ac90f6fa0e4a247eb656b4263c470bb22d9033e466463e13395e599","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"866078923a56d026e39243b4392e282c1c63159723996fa89243140e1388a98d","impliedFormat":1},{"version":"c3f5289820990ab66b70c7fb5b63cb674001009ff84b13de40619619a9c8175f","affectsGlobalScope":true,"impliedFormat":1},{"version":"b3275d55fac10b799c9546804126239baf020d220136163f763b55a74e50e750","affectsGlobalScope":true,"impliedFormat":1},{"version":"fa68a0a3b7cb32c00e39ee3cd31f8f15b80cac97dce51b6ee7fc14a1e8deb30b","affectsGlobalScope":true,"impliedFormat":1},{"version":"1cf059eaf468efcc649f8cf6075d3cb98e9a35a0fe9c44419ec3d2f5428d7123","affectsGlobalScope":true,"impliedFormat":1},{"version":"6c36e755bced82df7fb6ce8169265d0a7bb046ab4e2cb6d0da0cb72b22033e89","affectsGlobalScope":true,"impliedFormat":1},{"version":"e7721c4f69f93c91360c26a0a84ee885997d748237ef78ef665b153e622b36c1","affectsGlobalScope":true,"impliedFormat":1},{"version":"7a93de4ff8a63bafe62ba86b89af1df0ccb5e40bb85b0c67d6bbcfdcf96bf3d4","affectsGlobalScope":true,"impliedFormat":1},{"version":"90e85f9bc549dfe2b5749b45fe734144e96cd5d04b38eae244028794e142a77e","affectsGlobalScope":true,"impliedFormat":1},{"version":"e0a5deeb610b2a50a6350bd23df6490036a1773a8a71d70f2f9549ab009e67ee","affectsGlobalScope":true,"impliedFormat":1},{"version":"435b3711465425770ed2ee2f1cf00ce071835265e0851a7dc4600ab4b007550e","impliedFormat":1},{"version":"7e49f52a159435fc8df4de9dc377ef5860732ca2dc9efec1640531d3cf5da7a3","impliedFormat":1},{"version":"dd4bde4bdc2e5394aed6855e98cf135dfdf5dd6468cad842e03116d31bbcc9bc","impliedFormat":1},{"version":"4d4e879009a84a47c05350b8dca823036ba3a29a3038efed1be76c9f81e45edf","affectsGlobalScope":true,"impliedFormat":1},{"version":"237ba5ac2a95702a114a309e39c53a5bddff5f6333b325db9764df9b34f3502b","impliedFormat":1},{"version":"9ba13b47cb450a438e3076c4a3f6afb9dc85e17eae50f26d4b2d72c0688c9251","impliedFormat":1},{"version":"b64cd4401633ea4ecadfd700ddc8323a13b63b106ac7127c1d2726f32424622c","impliedFormat":1},{"version":"37c6e5fe5715814412b43cc9b50b24c67a63c4e04e753e0d1305970d65417a60","impliedFormat":1},{"version":"1d024184fb57c58c5c91823f9d10b4915a4867b7934e89115fd0d861a9df27c8","impliedFormat":1},{"version":"ee0e4946247f842c6dd483cbb60a5e6b484fee07996e3a7bc7343dfb68a04c5d","impliedFormat":1},{"version":"ef051f42b7e0ef5ca04552f54c4552eac84099d64b6c5ad0ef4033574b6035b8","impliedFormat":1},{"version":"853a43154f1d01b0173d9cbd74063507ece57170bad7a3b68f3fa1229ad0a92f","impliedFormat":1},{"version":"56231e3c39a031bfb0afb797690b20ed4537670c93c0318b72d5180833d98b72","impliedFormat":1},{"version":"5cc7c39031bfd8b00ad58f32143d59eb6ffc24f5d41a20931269011dccd36c5e","impliedFormat":1},{"version":"b0b69c61b0f0ec8ca15db4c8c41f6e77f4cacb784d42bca948f42dea33e8757e","affectsGlobalScope":true,"impliedFormat":1},{"version":"f96a48183254c00d24575401f1a761b4ce4927d927407e7862a83e06ce5d6964","impliedFormat":1},{"version":"cc25940cfb27aa538e60d465f98bb5068d4d7d33131861ace43f04fe6947d68f","impliedFormat":1},{"version":"f83fb2b1338afbb3f9d733c7d6e8b135826c41b0518867df0c0ace18ae1aa270","impliedFormat":1},{"version":"01ff95aa1443e3f7248974e5a771f513cb2ac158c8898f470a1792f817bee497","impliedFormat":1},{"version":"757227c8b345c57d76f7f0e3bbad7a91ffca23f1b2547cbed9e10025816c9cb7","impliedFormat":1},{"version":"42a05d8f239f74587d4926aba8cc54792eed8e8a442c7adc9b38b516642aadfe","impliedFormat":1},{"version":"5d21b58d60383cc6ab9ad3d3e265d7d25af24a2c9b506247e0e50b0a884920be","impliedFormat":1},{"version":"101f482fd48cb4c7c0468dcc6d62c843d842977aea6235644b1edd05e81fbf22","impliedFormat":1},{"version":"ae6757460f37078884b1571a3de3ebaf724d827d7e1d53626c02b3c2a408ac63","affectsGlobalScope":true,"impliedFormat":1},{"version":"9451a46a89ed209e2e08329e6cac59f89356eae79a7230f916d8cc38725407c7","impliedFormat":1},{"version":"3ef397f12387eff17f550bc484ea7c27d21d43816bbe609d495107f44b97e933","impliedFormat":1},{"version":"1023282e2ba810bc07905d3668349fbd37a26411f0c8f94a70ef3c05fe523fcf","impliedFormat":1},{"version":"b214ebcf76c51b115453f69729ee8aa7b7f8eccdae2a922b568a45c2d7ff52f7","impliedFormat":1},{"version":"429c9cdfa7d126255779efd7e6d9057ced2d69c81859bbab32073bad52e9ba76","impliedFormat":1},{"version":"e236b5eba291f51bdf32c231673e6cab81b5410850e61f51a7a524dddadc0f95","impliedFormat":1},{"version":"f7ba0e839daa0702e3ff1a1a871c0d8ea2d586ce684dd8a72c786c36a680b1d9","affectsGlobalScope":true,"impliedFormat":1},{"version":"7f2c62938251b45715fd2a9887060ec4fbc8724727029d1cbce373747252bdd7","impliedFormat":1},{"version":"e3ace08b6bbd84655d41e244677b474fd995923ffef7149ddb68af8848b60b05","impliedFormat":1},{"version":"132580b0e86c48fab152bab850fc57a4b74fe915c8958d2ccb052b809a44b61c","impliedFormat":1},{"version":"af4ab0aa8908fc9a655bb833d3bc28e117c4f0e1038c5a891546158beb25accb","impliedFormat":1},{"version":"69c9a5a9392e8564bd81116e1ed93b13205201fb44cb35a7fde8c9f9e21c4b23","impliedFormat":1},{"version":"5f8fc37f8434691ffac1bfd8fc2634647da2c0e84253ab5d2dd19a7718915b35","impliedFormat":1},{"version":"5981c2340fd8b076cae8efbae818d42c11ffc615994cb060b1cd390795f1be2b","impliedFormat":1},{"version":"f64deb26664af64dc274637343bde8d82f930c77af05a412c7d310b77207a448","impliedFormat":1},{"version":"ed4f674fc8c0c993cc7e145069ac44129e03519b910c62be206a0cc777bdc60b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0250da3eb85c99624f974e77ef355cdf86f43980251bc371475c2b397ba55bcd","impliedFormat":1},{"version":"f1c93e046fb3d9b7f8249629f4b63dc068dd839b824dd0aa39a5e68476dc9420","impliedFormat":1},{"version":"3d3a5f27ffbc06c885dd4d5f9ee20de61faf877fe2c3a7051c4825903d9a7fdc","impliedFormat":1},{"version":"12806f9f085598ef930edaf2467a5fa1789a878fba077cd27e85dc5851e11834","impliedFormat":1},{"version":"bce309f4d9b67c18d4eeff5bba6cf3e67b2b0aead9f03f75d6060c553974d7ba","impliedFormat":1},{"version":"a43fe41c33d0a192a0ecaf9b92e87bef3709c9972e6d53c42c49251ccb962d69","impliedFormat":1},{"version":"a177959203c017fad3ecc4f3d96c8757a840957a4959a3ae00dab9d35961ca6c","affectsGlobalScope":true,"impliedFormat":1},{"version":"6fc727ccf9b36e257ff982ea0badeffbfc2c151802f741bddff00c6af3b784cf","impliedFormat":1},{"version":"2a00d005e3af99cd1cfa75220e60c61b04bfb6be7ca7453bfe2ef6cca37cc03c","impliedFormat":1},{"version":"4844a4c9b4b1e812b257676ed8a80b3f3be0e29bf05e742cc2ea9c3c6865e6c6","impliedFormat":1},{"version":"064878a60367e0407c42fb7ba02a2ea4d83257357dc20088e549bd4d89433e9c","impliedFormat":1},{"version":"14d4bd22d1b05824971b98f7e91b2484c90f1a684805c330476641417c3d9735","impliedFormat":1},{"version":"c3877fef8a43cd434f9728f25a97575b0eb73d92f38b5c87c840daccc3e21d97","impliedFormat":1},{"version":"b484ec11ba00e3a2235562a41898d55372ccabe607986c6fa4f4aba72093749f","impliedFormat":1},{"version":"1dbd83860e7634f9c236647f45dbc5d3c4f9eba8827d87209d6e9826fdf4dbd5","impliedFormat":1},{"version":"41ef7992c555671a8fe54db302788adefa191ded810a50329b79d20a6772d14c","impliedFormat":1},{"version":"041a7781b9127ab568d2cdcce62c58fdea7c7407f40b8c50045d7866a2727130","impliedFormat":1},{"version":"b37f83e7deea729aa9ce5593f78905afb45b7532fdff63041d374f60059e7852","impliedFormat":1},{"version":"e1cb68f3ef3a8dd7b2a9dfb3de482ed6c0f1586ba0db4e7d73c1d2147b6ffc51","impliedFormat":1},{"version":"55cdbeebe76a1fa18bbd7e7bf73350a2173926bd3085bb050cf5a5397025ee4e","impliedFormat":1},{"version":"2beff543f6e9a9701df88daeee3cdd70a34b4a1c11cb4c734472195a5cb2af54","impliedFormat":1},{"version":"bfffea552cca245df227337223c7554b35df629ba1d4e09edee4521ce7f24827","impliedFormat":1},{"version":"413df52d4ea14472c2fa5bee62f7a40abd1eb49be0b9722ee01ee4e52e63beb2","impliedFormat":1},{"version":"db6d2d9daad8a6d83f281af12ce4355a20b9a3e71b82b9f57cddcca0a8964a96","impliedFormat":1},{"version":"446a50749b24d14deac6f8843e057a6355dd6437d1fac4f9e5ce4a5071f34bff","impliedFormat":1},{"version":"182e9fcbe08ac7c012e0a6e2b5798b4352470be29a64fdc114d23c2bab7d5106","impliedFormat":1},{"version":"2f4e6b4d39426a1b85ecf4bdeb9dddbf4d9b3397d95d8555d46f925c9519ec7d","impliedFormat":1},{"version":"78a2869ad0cbf3f9045dda08c0d4562b7e1b2bfe07b19e0db072f5c3c56e9584","impliedFormat":1},{"version":"89d5d28d4f57e000b836ac273079be1b75710e28ce14750d081fb420d37e2ca5","impliedFormat":1},{"version":"fd4e24ccff3966390600d7f5d6aa1fed5a512e92ada735ea5fbc933d313ad3d3","impliedFormat":1},{"version":"b7cddfe1aa6b86b5fad3c9ccb30d05b3ccb165aebbf112f48d2d8a5f69dd98b1","impliedFormat":1},{"version":"a86f82d646a739041d6702101afa82dcb935c416dd93cbca7fd754fd0282ce1f","impliedFormat":1},{"version":"ad0d1d75d129b1c80f911be438d6b61bfa8703930a8ff2be2f0e1f8a91841c64","impliedFormat":1},{"version":"bd2c7ada3dee03653d3f601011d30072194bc3970cd93208f9588fbdc0c69347","impliedFormat":1},{"version":"e480da45d32313e7174b265674da504f075f59ef326852f0c5a5d863b438ae85","impliedFormat":1},{"version":"ad54850f61fcf5d014e11be80d2f46fea9265cfa7e77456da876f7833ef81769","impliedFormat":1},{"version":"6f7c9e8bd2b5b6a080b07080065f94900bd3c7e5ebbd3047bc33fcce2fab1dd8","impliedFormat":1},{"version":"3e7efde639c6a6c3edb9847b3f61e308bf7a69685b92f665048c45132f51c218","impliedFormat":1},{"version":"df45ca1176e6ac211eae7ddf51336dc075c5314bc5c253651bae639defd5eec5","impliedFormat":1},{"version":"8a0e762ceb20c7e72504feef83d709468a70af4abccb304f32d6b9bac1129b2c","impliedFormat":1},{"version":"da5950ee2a90721df6f3fba45f5d05308f7e4c35835392215dd2cd404505e2de","impliedFormat":1},{"version":"ce75b1aebb33d510ff28af960a9221410a3eaf7f18fc5f21f9404075fba77256","impliedFormat":1},{"version":"f42d5fed19610d485c646a0c430e768115567d078c7fc855c57b0c578b3d6cd3","impliedFormat":1},{"version":"ee8df1cb8d0faaca4013a1b442e99130769ce06f438d18d510fed95890067563","impliedFormat":1},{"version":"d5630f2ad9b4541e5ce891648121022f9412ecdca1820baa1f0104f70fd7eff7","impliedFormat":1},{"version":"4d15375ab13497104bc8fe56fdef2b5fd6853f29255737d23a33fa306ff7fd69","impliedFormat":1},{"version":"2cd3fc1d0d6a1e85baffd2d4f50f5efb192b5446eef567e97c94765402f0aad4","impliedFormat":1},{"version":"e4cbf2f1e89ecccaddd2c045e600ae41b732295953fb06247c7dcbc2d281ed30","impliedFormat":1},{"version":"27bbdb7509a5bb564020321fc5485764d0db3230a10d2336ae5ce2c1d401b0e7","impliedFormat":1},{"version":"8c1697d90c394a6fd955b98eae01238eff628e129b987a68aea10f898a48e7da","impliedFormat":1},{"version":"7580e62139cb2b44a0270c8d01abcbfcba2819a02514a527342447fa69b34ef1","impliedFormat":1},{"version":"42c169fb8c2d42f4f668c624a9a11e719d5d07dacbebb63cbcf7ef365b0a75b3","impliedFormat":1},{"version":"f374cb24e93e7798c4d9e83ff872fa52d2cdb36306392b840a6ddf46cb925cb6","impliedFormat":1},{"version":"d10d63718e1646c2279e3b33831f82c60e31f622b2b7020f1196409ca4c09242","impliedFormat":1},{"version":"106c6025f1d99fd468fd8bf6e5bda724e11e5905a4076c5d29790b6c3745e50c","impliedFormat":1},{"version":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","impliedFormat":1},{"version":"148679c6d0f449210a96e7d2e562d589e56fcde87f843a92808b3ff103f1a774","impliedFormat":1},{"version":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","impliedFormat":1},{"version":"02436d7e9ead85e09a2f8e27d5f47d9464bced31738dec138ca735390815c9f0","impliedFormat":1},{"version":"f8d5ff8eafd37499f2b6a98659dd9b45a321de186b8db6b6142faed0fea3de77","impliedFormat":1},{"version":"c86fe861cf1b4c46a0fb7d74dffe596cf679a2e5e8b1456881313170f092e3fa","impliedFormat":1},{"version":"a22dd55aa4d39906252000ab8e8a1b83b195eef7f4274eb51e457c1f11cf6580","impliedFormat":1},{"version":"540cc83ab772a2c6bc509fe1354f314825b5dba3669efdfbe4693ecd3048e34f","impliedFormat":1},{"version":"121b0696021ab885c570bbeb331be8ad82c6efe2f3b93a6e63874901bebc13e3","impliedFormat":1},{"version":"612d9da66bb046a9c1e2e8d026245ded881fc4b9f98cbfae714415d57ee0ae0b","impliedFormat":1},{"version":"32c2ad9494dad5d11b0564a619fee18f388db6c1e9e2cd3c360b3122549691eb","impliedFormat":1},{"version":"6c301d40aec56a74ec7bd7324e31a728dadf9bfba3e96def02938d3d973534ec","impliedFormat":1},{"version":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","impliedFormat":1},{"version":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","impliedFormat":1},{"version":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881","impliedFormat":1},{"version":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881","impliedFormat":1},{"version":"aa14cee20aa0db79f8df101fc027d929aec10feb5b8a8da3b9af3895d05b7ba2","impliedFormat":1},{"version":"493c700ac3bd317177b2eb913805c87fe60d4e8af4fb39c41f04ba81fae7e170","impliedFormat":1},{"version":"aeb554d876c6b8c818da2e118d8b11e1e559adbe6bf606cc9a611c1b6c09f670","impliedFormat":1},{"version":"acf5a2ac47b59ca07afa9abbd2b31d001bf7448b041927befae2ea5b1951d9f9","impliedFormat":1},{"version":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881","impliedFormat":1},{"version":"d71291eff1e19d8762a908ba947e891af44749f3a2cbc5bd2ec4b72f72ea795f","impliedFormat":1},{"version":"c0480e03db4b816dff2682b347c95f2177699525c54e7e6f6aa8ded890b76be7","impliedFormat":1},{"version":"25a5f6fd3a2243c859eddc99ab5fba11d970af2fe7a5df9c32b7668f76f97b01","impliedFormat":1},{"version":"8d207e1f9d2c30d6f77dfa693f3827c3fbf0d89240297e10bdfe1041d433df68","impliedFormat":1},{"version":"b620391fe8060cf9bedc176a4d01366e6574d7a71e0ac0ab344a4e76576fcbb8","impliedFormat":1},{"version":"6ac6715916fa75a1f7ebdfeacac09513b4d904b667d827b7535e84ff59679aff","impliedFormat":1},{"version":"2652448ac55a2010a1f71dd141f828b682298d39728f9871e1cdf8696ef443fd","impliedFormat":1},{"version":"d682336018141807fb602709e2d95a192828fcb8d5ba06dda3833a8ea98f69e3","impliedFormat":1},{"version":"6124e973eab8c52cabf3c07575204efc1784aca6b0a30c79eb85fe240a857efa","impliedFormat":1},{"version":"0d891735a21edc75df51f3eb995e18149e119d1ce22fd40db2b260c5960b914e","impliedFormat":1},{"version":"3b414b99a73171e1c4b7b7714e26b87d6c5cb03d200352da5342ab4088a54c85","impliedFormat":1},{"version":"4fbd3116e00ed3a6410499924b6403cc9367fdca303e34838129b328058ede40","impliedFormat":1},{"version":"9c82171d836c47486074e4ca8e059735bf97b205e70b196535b5efd40cbe1bc5","impliedFormat":1},{"version":"8c70ddc0c22d85e56011d49fddfaae3405eb53d47b59327b9dd589e82df672e7","impliedFormat":1},{"version":"2f9c89cbb29d362290531b48880a4024f258c6033aaeb7e59fbc62db26819650","impliedFormat":1},{"version":"a365c4d3bed3be4e4e20793c999c51f5cd7e6792322f14650949d827fbcd170f","impliedFormat":1},{"version":"c5426dbfc1cf90532f66965a7aa8c1136a78d4d0f96d8180ecbfc11d7722f1a5","impliedFormat":1},{"version":"65a15fc47900787c0bd18b603afb98d33ede930bed1798fc984d5ebb78b26cf9","impliedFormat":1},{"version":"9d202701f6e0744adb6314d03d2eb8fc994798fc83d91b691b75b07626a69801","impliedFormat":1},{"version":"de9d2df7663e64e3a91bf495f315a7577e23ba088f2949d5ce9ec96f44fba37d","impliedFormat":1},{"version":"c7af78a2ea7cb1cd009cfb5bdb48cd0b03dad3b54f6da7aab615c2e9e9d570c5","impliedFormat":1},{"version":"1ee45496b5f8bdee6f7abc233355898e5bf9bd51255db65f5ff7ede617ca0027","impliedFormat":1},{"version":"273782b8454e78f6a8b30d2cfbf6860499c930595095fcc1689637115f0eddda","affectsGlobalScope":true,"impliedFormat":1},{"version":"3fbdd025f9d4d820414417eeb4107ffa0078d454a033b506e22d3a23bc3d9c41","affectsGlobalScope":true,"impliedFormat":1},{"version":"dba114fb6a32b355a9cfc26ca2276834d72fe0e94cd2c3494005547025015369","impliedFormat":1},{"version":"a8f8e6ab2fa07b45251f403548b78eaf2022f3c2254df3dc186cb2671fe4996d","affectsGlobalScope":true,"impliedFormat":1},{"version":"fa6c12a7c0f6b84d512f200690bfc74819e99efae69e4c95c4cd30f6884c526e","impliedFormat":1},{"version":"f1c32f9ce9c497da4dc215c3bc84b722ea02497d35f9134db3bb40a8d918b92b","impliedFormat":1},{"version":"b73c319af2cc3ef8f6421308a250f328836531ea3761823b4cabbd133047aefa","affectsGlobalScope":true,"impliedFormat":1},{"version":"e433b0337b8106909e7953015e8fa3f2d30797cea27141d1c5b135365bb975a6","impliedFormat":1},{"version":"9f9bb6755a8ce32d656ffa4763a8144aa4f274d6b69b59d7c32811031467216e","impliedFormat":1},{"version":"5c32bdfbd2d65e8fffbb9fbda04d7165e9181b08dad61154961852366deb7540","impliedFormat":1},{"version":"ddff7fc6edbdc5163a09e22bf8df7bef75f75369ebd7ecea95ba55c4386e2441","impliedFormat":1},{"version":"0c05e9842ec4f8b7bfebfd3ca61604bb8c914ba8da9b5337c4f25da427a005f2","impliedFormat":1},{"version":"faed7a5153215dbd6ebe76dfdcc0af0cfe760f7362bed43284be544308b114cf","impliedFormat":1},{"version":"7029e566b8df176f703fb59fd437a38670c7a0e02c58b2d66dfb5b2e2b2defdb","impliedFormat":1},{"version":"7f2aa4d4989a82530aaac3f72b3dceca90e9c25bee0b1a327e8a08a1262435ad","impliedFormat":1},{"version":"d96b39301d0ded3f1a27b47759676a33a02f6f5049bfcbde81e533fd10f50dcb","impliedFormat":1},{"version":"e9f147ecca73d9346a4c073432843c159ccbe50bdcb678a78f6da10eae2cecf4","impliedFormat":1},{"version":"de061f7d72bd65c06fc1419f841dfdcb29a8e22fe6fa527d1e6eb20b897d4de0","impliedFormat":1},{"version":"663beafc2446079574570cba86e9b15f986f908ddb1b01274509970126fee945","impliedFormat":1},{"version":"a3102887d5058bf4cb5b37fa6964c09e9527c42053b3b5c642b89878620748de","impliedFormat":1},{"version":"0aaaa1727edd29673d85c9b26d7ca4d54e5407a48586903c51b48b7f7d196f61","impliedFormat":1},{"version":"d35bca0b261bff02635758c48e8ab99c61c420d0dfabbcf467e847171d876b7d","impliedFormat":1},{"version":"3bc12c40d90c342ff88a3d876996c555ed5cbee5fe8c3308a240b321f401ee46","impliedFormat":1},{"version":"ba130768aae855a5477e9e148e5c879548e6e7ccbcc56fd1934c8a18ea5b7569","impliedFormat":1},{"version":"2e4f37ffe8862b14d8e24ae8763daaa8340c0df0b859d9a9733def0eee7562d9","impliedFormat":1},{"version":"d38530db0601215d6d767f280e3a3c54b2a83b709e8d9001acb6f61c67e965fc","impliedFormat":1},{"version":"6ac6715916fa75a1f7ebdfeacac09513b4d904b667d827b7535e84ff59679aff","impliedFormat":1},{"version":"b499af2054a037a162b3b72cd886f48bbf32a3502c865c6e29fac7d2ab3ce0b5","impliedFormat":1},{"version":"b83cb14474fa60c5f3ec660146b97d122f0735627f80d82dd03e8caa39b4388c","impliedFormat":1},{"version":"d87f90d2df7b638204d81d6c57e1f2a8cc9317c45ca331c691c375649aa9255c","impliedFormat":1},{"version":"7274fbffbd7c9589d8d0ffba68157237afd5cecff1e99881ea3399127e60572f","impliedFormat":1},{"version":"b73cbf0a72c8800cf8f96a9acfe94f3ad32ca71342a8908b8ae484d61113f647","impliedFormat":1},{"version":"bae6dd176832f6423966647382c0d7ba9e63f8c167522f09a982f086cd4e8b23","impliedFormat":1},{"version":"20865ac316b8893c1a0cc383ccfc1801443fbcc2a7255be166cf90d03fac88c9","impliedFormat":1},{"version":"c9958eb32126a3843deedda8c22fb97024aa5d6dd588b90af2d7f2bfac540f23","impliedFormat":1},{"version":"461d0ad8ae5f2ff981778af912ba71b37a8426a33301daa00f21c6ccb27f8156","impliedFormat":1},{"version":"e927c2c13c4eaf0a7f17e6022eee8519eb29ef42c4c13a31e81a611ab8c95577","impliedFormat":1},{"version":"fcafff163ca5e66d3b87126e756e1b6dfa8c526aa9cd2a2b0a9da837d81bbd72","impliedFormat":1},{"version":"70246ad95ad8a22bdfe806cb5d383a26c0c6e58e7207ab9c431f1cb175aca657","impliedFormat":1},{"version":"f00f3aa5d64ff46e600648b55a79dcd1333458f7a10da2ed594d9f0a44b76d0b","impliedFormat":1},{"version":"772d8d5eb158b6c92412c03228bd9902ccb1457d7a705b8129814a5d1a6308fc","impliedFormat":1},{"version":"802e797bcab5663b2c9f63f51bdf67eff7c41bc64c0fd65e6da3e7941359e2f7","impliedFormat":1},{"version":"b01bd582a6e41457bc56e6f0f9de4cb17f33f5f3843a7cf8210ac9c18472fb0f","impliedFormat":1},{"version":"8b4327413e5af38cd8cb97c59f48c3c866015d5d642f28518e3a891c469f240e","impliedFormat":1},{"version":"4cceef18d7f088e797a463e90b7a9dad10c6bc667724b7686e3e740ae00122be","impliedFormat":1},{"version":"7ee86fbb3754388e004de0ef9e6505485ddfb3be7640783d6d015711c03d302d","impliedFormat":1},{"version":"cc1954b539604b1e562319119ac7e888172208b32ca873f9a357a92c826bd046","impliedFormat":1},{"version":"a67b87d0281c97dfc1197ef28dfe397fc2c865ccd41f7e32b53f647184cc7307","impliedFormat":1},{"version":"771ffb773f1ddd562492a6b9aaca648192ac3f056f0e1d997678ff97dbb6bf9b","impliedFormat":1},{"version":"43e96a3d5d1411ab40ba2f61d6a3192e58177bcf3b133a80ad2a16591611726d","impliedFormat":1},{"version":"232f70c0cf2b432f3a6e56a8dc3417103eb162292a9fd376d51a3a9ea5fbbf6f","impliedFormat":1},{"version":"bb8f2dbc03533abca2066ce4655c119bff353dd4514375beb93c08590c03e023","impliedFormat":1},{"version":"706dd95827e7ebaabda91d5db2b755233e0952d98570e9c032b0f066a15c1177","affectsGlobalScope":true,"impliedFormat":1},{"version":"0b103e9abfe82d14c0ad06a55d9f91d6747154ef7cacc73cf27ecad2bfb3afcf","impliedFormat":1},{"version":"990b8fad2327b77e6920cc792af320e8867e68f02ce849b12c0a6ab9a1aebb09","impliedFormat":1},{"version":"5eb8cd1cb0c9143d74a8190b577c522720878c31aef67d866fcd29973f83e955","impliedFormat":1},{"version":"120599fd965257b1f4d0ff794bc696162832d9d8467224f4665f713a3119078b","impliedFormat":1},{"version":"43ba4f2fa8c698f5c304d21a3ef596741e8e85a810b7c1f9b692653791d8d97a","impliedFormat":1},{"version":"5433f33b0a20300cca35d2f229a7fc20b0e8477c44be2affeb21cb464af60c76","impliedFormat":1},{"version":"db036c56f79186da50af66511d37d9fe77fa6793381927292d17f81f787bb195","impliedFormat":1},{"version":"a6805fcafed712aea7759f8bc731014f9d22738c1d6ef9d43b8091d1d48346d5","impliedFormat":1},{"version":"c49469a5349b3cc1965710b5b0f98ed6c028686aa8450bcb3796728873eb923e","impliedFormat":1},{"version":"4a889f2c763edb4d55cb624257272ac10d04a1cad2ed2948b10ed4a7fda2a428","impliedFormat":1},{"version":"7bb79aa2fead87d9d56294ef71e056487e848d7b550c9a367523ee5416c44cfa","impliedFormat":1},{"version":"d88ea80a6447d7391f52352ec97e56b52ebec934a4a4af6e2464cfd8b39c3ba8","impliedFormat":1},{"version":"142617b3cdf902b69c6464c9fbd942b60ab3e733ca18c032b19e0f7e2adbefe8","impliedFormat":1},{"version":"0b603555f1881f87256ffd6344d3e3ed6d466c2e701eabf381f28be8c2125892","impliedFormat":1},{"version":"897e4f7662488e3ecc79e743bdd3b78f13bdb69a97851afa5b440c4211e32ea9","impliedFormat":1},{"version":"e2e1c6d3b2d93add5200bd7bc1a8cccb4e446836b2111ece45db8683a2c765de","impliedFormat":1},{"version":"251b03d5cd243854ce870d9a9a39f491faf69898c5d6b5eee28cc7649c57417b","impliedFormat":1},{"version":"27ff4196654e6373c9af16b6165120e2dd2169f9ad6abb5c935af5abd8c7938c","impliedFormat":1},{"version":"2c4de79f406d137390608e8c0a44fba2ff8e00bacfcae7c9d1781fef10e9440d","impliedFormat":1},{"version":"07ba23a10465791be5d22deaf5ef7de7658774ddff53721e5ea17fedea1bc721","impliedFormat":1},{"version":"dca8c645c5afeb03b1ecedbf16323f33e7d0afaa6256c8e047e6e38087a97f53","impliedFormat":1},{"version":"775f181bd4a533d6f8b5e55ec1d9f1624559720ae8a70e9432258da26b38d27c","impliedFormat":1},{"version":"796273b2edc72e78a04e86d7c58ae94d370ab93a0ddf40b1aa85a37a1c29ecd7","impliedFormat":1},{"version":"5df15a69187d737d6d8d066e189ae4f97e41f4d53712a46b2710ff9f8563ec9f","impliedFormat":1},{"version":"0659e6650e6c528420733abc2cdc36474ef14cc8d64ef3c6fee794d71c69cc2e","impliedFormat":1},{"version":"6ac6715916fa75a1f7ebdfeacac09513b4d904b667d827b7535e84ff59679aff","impliedFormat":1},{"version":"622694a8522b46f6310c2a9b5d2530dde1e2854cb5829354e6d1ff8f371cf469","impliedFormat":1},{"version":"cd8ce8d68567f62dd580b3c3c37777ac3f5b81944c7417f5ea83030eab533385","impliedFormat":1},{"version":"e374d1eaa05b7dc38580062942ac8351ce79cbe11f6dbce4946a582a5680582d","impliedFormat":1},{"version":"9e2739b32f741859263fdba0244c194ca8e96da49b430377930b8f721d77c000","impliedFormat":1},{"version":"a9e6c0ff3f8186fccd05752cf75fc94e147c02645087ac6de5cc16403323d870","impliedFormat":1},{"version":"49af4b52f0d4d2304c5f2c6fe5fab3e153e0acc38830d0202821b877c097dd02","impliedFormat":1},{"version":"49c346823ba6d4b12278c12c977fb3a31c06b9ca719015978cb145eb86da1c61","impliedFormat":1},{"version":"bfac6e50eaa7e73bb66b7e052c38fdc8ccfc8dbde2777648642af33cf349f7f1","impliedFormat":1},{"version":"92f7c1a4da7fbfd67a2228d1687d5c2e1faa0ba865a94d3550a3941d7527a45d","impliedFormat":1},{"version":"f53b120213a9289d9a26f5af90c4c686dd71d91487a0aa5451a38366c70dc64b","impliedFormat":1},{"version":"e68b8e5a1df7c1be2bc105141456ecba70215806e1c28bfbc5c12bfce4be6e68","impliedFormat":1},{"version":"511c8f02329808d47d00b859c532ae9115590048b17325a946c74dac48428650","impliedFormat":1},{"version":"57d67b72e06059adc5e9454de26bbfe567d412b962a501d263c75c2db430f40e","impliedFormat":1},{"version":"b5f9e66625783eefcbe3d2da074b2e7ba2066d61ce3fc6ef4f22805ad946cab4","impliedFormat":1},{"version":"e37115962d284b9f7a37c2bdd2add50f88365dde41f5e0ff591ffc48a8ec7575","impliedFormat":1},{"version":"6459054aabb306821a043e02b89d54da508e3a6966601a41e71c166e4ea1474f","impliedFormat":1},{"version":"bb37588926aba35c9283fe8d46ebf4e79ffe976343105f5c6d45f282793352b2","impliedFormat":1},{"version":"f89488602bec98a142072fae7ea5ba99431a569ff580c64b7be39896474799d8","impliedFormat":1},{"version":"bbbc47961f39a57df103cf4ca3bb8f8732b4b6678a18225a0aa76d59c466956c","impliedFormat":1},{"version":"2e6114a7dd6feeef85b2c80120fdbfb59a5529c0dcc5bfa8447b6996c97a69f5","impliedFormat":1},{"version":"2ffb043dc5163458e473b7010859f86e01dc4edffcae0a93d885d028b426a546","impliedFormat":1},{"version":"c8f004e6036aa1c764ad4ec543cf89a5c1893a9535c80ef3f2b653e370de45e6","impliedFormat":1},{"version":"dd80b1e600d00f5c6a6ba23f455b84a7db121219e68f89f10552c54ba46e4dc9","impliedFormat":1},{"version":"b064c36f35de7387d71c599bfcf28875849a1dbc733e82bd26cae3d1cd060521","impliedFormat":1},{"version":"05c7280d72f3ed26f346cbe7cbbbb002fb7f15739197cbbee6ab3fd1a6cb9347","impliedFormat":1},{"version":"8de9fe97fa9e00ec00666fa77ab6e91b35d25af8ca75dabcb01e14ad3299b150","impliedFormat":1},{"version":"04b7b2e0832dfd3c31e81df3975e8d8fda28e7ff999b0aa2932608a8f6661d5c","impliedFormat":1},{"version":"ca2d34c6ed5cbd3070b8b6f32f42ae54adcc6499c1e4b99f0a5798b3f27cc653","impliedFormat":1},{"version":"9ec68995e66dd6b9dac834bf5ae85fde802714ea2e82151a5d1d53ef01b463ef","impliedFormat":1},{"version":"5c4d626b4902f2ef8a1cc146d761d276cef988016dc674e3b98fbad70e64bc9f","impliedFormat":1},{"version":"fdfaa0aad899524962e2955287b5b991ffe3be50f64e02eb60c933ca44644a94","impliedFormat":1},{"version":"53c972a0f9bc3a4ec70fff7314123ea8cfcf75b3703046f767d2dc1eea87b2fb","impliedFormat":1},{"version":"f974e4a06953682a2c15d5bd5114c0284d5abf8bc0fe4da25cb9159427b70072","impliedFormat":1},{"version":"50256e9c31318487f3752b7ac12ff365c8949953e04568009c8705db802776fb","impliedFormat":1},{"version":"7d73b24e7bf31dfb8a931ca6c4245f6bb0814dfae17e4b60c9e194a631fe5f7b","impliedFormat":1},{"version":"d130c5f73768de51402351d5dc7d1b36eaec980ca697846e53156e4ea9911476","impliedFormat":1},{"version":"413586add0cfe7369b64979d4ec2ed56c3f771c0667fbde1bf1f10063ede0b08","impliedFormat":1},{"version":"06472528e998d152375ad3bd8ebcb69ff4694fd8d2effaf60a9d9f25a37a097a","impliedFormat":1},{"version":"7303b45138d2511035056a5901a1490ebdcbf055cbb1276f8629c5121cbe733e","impliedFormat":1},{"version":"27f874cd5327507eeff699a74567f60c1215b94509f4308633a7b01922471ed2","impliedFormat":1},{"version":"a401617604fa1f6ce437b81689563dfdc377069e4c58465dbd8d16069aede0a5","impliedFormat":1},{"version":"2c6cf04bc525caf6546e859e8ef10bfb9573837ec0bc5ec7b53a7b1b8ca72781","impliedFormat":1},{"version":"8695dec09ad439b0ceef3776ea68a232e381135b516878f0901ed2ea114fd0fe","impliedFormat":1},{"version":"304b44b1e97dd4c94697c3313df89a578dca4930a104454c99863f1784a54357","impliedFormat":1},{"version":"0a437ae178f999b46b6153d79095b60c42c996bc0458c04955f1c996dc68b971","impliedFormat":1},{"version":"74b2a5e5197bd0f2e0077a1ea7c07455bbea67b87b0869d9786d55104006784f","impliedFormat":1},{"version":"4a7baeb6325920044f66c0f8e5e6f1f52e06e6d87588d837bdf44feb6f35c664","impliedFormat":1},{"version":"87cc05fe13108f02e12da7e3efd8e360fef78d96a0c9e11408ea1b1b9fb3e03d","impliedFormat":1},{"version":"1abbf67c218d23c2ce76887caac2df6c7dab3d97ba2b65348432b876f510002a","impliedFormat":1},{"version":"1a82deef4c1d39f6882f28d275cad4c01f907b9b39be9cbc472fcf2cf051e05b","impliedFormat":1},{"version":"4b20fcf10a5413680e39f5666464859fc56b1003e7dfe2405ced82371ebd49b6","impliedFormat":1},{"version":"c06ef3b2569b1c1ad99fcd7fe5fba8d466e2619da5375dfa940a94e0feea899b","impliedFormat":1},{"version":"f7d628893c9fa52ba3ab01bcb5e79191636c4331ee5667ecc6373cbccff8ae12","impliedFormat":1},{"version":"1d879125d1ec570bf04bc1f362fdbe0cb538315c7ac4bcfcdf0c1e9670846aa6","impliedFormat":1},{"version":"8bd496cf710d4873d15e4891a5dbf945673e3321ca74cf75187e347fd5ed295e","impliedFormat":1},{"version":"a6dba407fc287f1e25454e75028c91bbc00675f2d1c4e8b3edcc36c08611a486","impliedFormat":1},{"version":"d663134457d8d669ae0df34eabd57028bddc04fc444c4bc04bc5215afc91e1f4","impliedFormat":1},{"version":"e91f7b1344577a02f051b9b471f33044fef8334a76dc9e1de003d17595a5219b","impliedFormat":1},{"version":"c0723195c85e19656d6b5b9fdb81d3f3403c1ae4679e722c6ea058c516b38d12","impliedFormat":1},{"version":"186eea74805194f04e41038fc5eca653788b9dedbab7c2d7d17e10139622dd92","impliedFormat":1},{"version":"71d9eb4c4e99456b78ae182fb20a5dfc20eb1667f091dbb9335b3c017dd1c783","impliedFormat":1},{"version":"cfa846a7b7847a1d973605fbb8c91f47f3a0f0643c18ac05c47077ebc72e71c7","impliedFormat":1},{"version":"1594da19968752a22b2ac48c2d0e60575700e745c577a8a4a676b841238ad5bb","impliedFormat":1},{"version":"e0cee12109e0a10a4c3d6769fcc7644b7c1ea7f52365bea51728f5af29f8a137","impliedFormat":1},{"version":"7d4254b4c6c67a29d5e7f65e67d72540480ac2cfb041ca484847f5ae70480b62","impliedFormat":1},{"version":"3536968defef8a75514f547ead5e2e9c1e984820290ec9b00c5fdfb6ef786535","impliedFormat":1},{"version":"d83773870080c30a230e322ce13a9c6f3398e8dacea4ea8a83e26370f3bac23e","impliedFormat":1},{"version":"dcfeaf98d66314fec29a9076c4290e45d0b196a65827becc19138e9c7b855f37","impliedFormat":1},{"version":"6849fe9210fe4946d5f085bfed36758f33dc6ae15a751338d178dd4daa017c46","impliedFormat":1},{"version":"888cda0fa66d7f74e985a3f7b1af1f64b8ff03eb3d5e80d051c3cbdeb7f32ab7","impliedFormat":1},{"version":"60681e13f3545be5e9477acb752b741eae6eaf4cc01658a25ec05bff8b82a2ef","impliedFormat":1},{"version":"ffae4e1e06aa848a1e4bcef162cd1c48e5909b26223515981310af9c036bdfc7","impliedFormat":1},{"version":"a57b1802794433adec9ff3fed12aa79d671faed86c49b09e02e1ac41b4f1d33a","impliedFormat":1},{"version":"34e16eb7c31768a11a08aebcfb3d70d7b8f0b016197e98d8419e566ceae6d6c8","impliedFormat":1},{"version":"f94ec1f7e4b709d26960306c9082a7a1b728a6e13089346aa48ba57c74cbf47e","impliedFormat":1},{"version":"9a11cb4033405e96c247cd5aa29790212aaffdd127869e8a5219103f0b389fd5","impliedFormat":1},{"version":"01479d9d5a5dda16d529b91811375187f61a06e74be294a35ecce77e0b9e8d6c","impliedFormat":1},{"version":"aff5213585cb72e94054dfe17250ff315f3569b3919d1ef1ad235f37c4ee894e","impliedFormat":1},{"version":"fb2ea35e1be6388d722d7725e2b49c697d34d9c890c3b96758faaeb86d35cef8","impliedFormat":1},{"version":"ce0df82a9ae6f914ba08409d4d883983cc08e6d59eb2df02d8e4d68309e7848b","impliedFormat":1},{"version":"1a4dc28334a926d90ba6a2d811ba0ff6c22775fcc13679521f034c124269fd40","impliedFormat":1},{"version":"f05315ff85714f0b87cc0b54bcd3dde2716e5a6b99aedcc19cad02bf2403e08c","impliedFormat":1},{"version":"5fad3b31fc17a5bc58095118a8b160f5260964787c52e7eb51e3d4fcf5d4a6f0","impliedFormat":1},{"version":"72105519d0390262cf0abe84cf41c926ade0ff475d35eb21307b2f94de985778","impliedFormat":1},{"version":"456006a6975b26c0a1785feddae165f6d307e2d601ffde27e21fc4a790e448a4","impliedFormat":1},{"version":"c857e0aae3f5f444abd791ec81206020fbcc1223e187316677e026d1c1d6fe08","impliedFormat":1},{"version":"ccf6dd45b708fb74ba9ed0f2478d4eb9195c9dfef0ff83a6092fa3cf2ff53b4f","impliedFormat":1},{"version":"1fe0d18b111e1145a7e7601855bccd4ca20f24e3b9a5aba6bb1fa9d1a7059170","impliedFormat":1},{"version":"5632c3c26d420c063eebe64c45b1248b9492a67bf44f1d0c57e9dc8f6cf449bb","impliedFormat":1},{"version":"0df5aa619ab12993a39ea6dae062ee46eadbb4d738916460e636ada52bced75b","impliedFormat":1},{"version":"8fca3039857709484e5893c05c1f9126ab7451fa6c29e19bb8c2411a2e937345","impliedFormat":1},{"version":"35069c2c417bd7443ae7c7cafd1de02f665bf015479fec998985ffbbf500628c","impliedFormat":1},{"version":"10ab7be91f87ebe8916b62cf28af2e45b5601fc7b0e311adf838f912c6b31dd8","impliedFormat":1},{"version":"bc636fbc08e0979ceb7eb0731a33000283d77a33b62e1f71ee65be50394e40ba","impliedFormat":1},{"version":"7e0b7f91c5ab6e33f511efc640d36e6f933510b11be24f98836a20a2dc914c2d","impliedFormat":1},{"version":"045b752f44bf9bbdcaffd882424ab0e15cb8d11fa94e1448942e338c8ef19fba","impliedFormat":1},{"version":"2894c56cad581928bb37607810af011764a2f511f575d28c9f4af0f2ef02d1ab","impliedFormat":1},{"version":"0a72186f94215d020cb386f7dca81d7495ab6c17066eb07d0f44a5bf33c1b21a","impliedFormat":1},{"version":"75bbd3be047d539988a0ff0b56384ef7a6a25f3b676ad96bee547d44c31622a7","impliedFormat":1},{"version":"42960001a776b089ade681ab5cfddc936e0afb0615133ec1841f3dee89d3e1bf","impliedFormat":1},{"version":"0aedb02516baf3e66b2c1db9fef50666d6ed257edac0f866ea32f1aa05aa474f","impliedFormat":1},{"version":"da47712b394d944328245482603bc6f416d3949b67c9392279caab595076b510","affectsGlobalScope":true,"impliedFormat":1},{"version":"37d0071d8f0a06dc55c2c5e0ec3391affd4fd107c53410bf358196ec0bf3923f","impliedFormat":1},{"version":"b213dad76ca37fd552274c9499056e1c0d9c1bd38a55bb7f68b22ba6b84c3ad7","impliedFormat":1},{"version":"56ccb49443bfb72e5952f7012f0de1a8679f9f75fc93a5c1ac0bafb28725fc5f","impliedFormat":1},{"version":"20fa37b636fdcc1746ea0738f733d0aed17890d1cd7cb1b2f37010222c23f13e","impliedFormat":1},{"version":"d90b9f1520366d713a73bd30c5a9eb0040d0fb6076aff370796bc776fd705943","impliedFormat":1},{"version":"bef86adb77316505c6b471da1d9b8c9e428867c2566270e8894d4d773a1c4dc2","impliedFormat":1},{"version":"5a49adaef698b7ad7e6127949fa1b0bbd3d46b7cbd11c54e392a4dcdd51f5190","impliedFormat":1},{"version":"96171c03c2e7f314d66d38acd581f9667439845865b7f85da8df598ff9617476","impliedFormat":1},{"version":"27be6622e2922a1b412eb057faa854831b95db9db5035c3f6d4b677b902ab3b7","impliedFormat":1},{"version":"5c634644d45a1b6bc7b05e71e05e52ec04f3d73d9ac85d5927f647a5f965181a","impliedFormat":1},{"version":"2489bf04d77dc025ba67f49f1a56eb24b9db477d5ff88123d887e163ed1776aa","impliedFormat":1},{"version":"63a7595a5015e65262557f883463f934904959da563b4f788306f699411e9bac","impliedFormat":1},{"version":"4ba137d6553965703b6b55fd2000b4e07ba365f8caeb0359162ad7247f9707a6","impliedFormat":1},{"version":"0b77b819b5417775fccb20c678293cf614c054a5b1a65421a5b933a9124ba998","impliedFormat":1},{"version":"e1f6076688a95bd82deaac740fccbe3cdea0d8a22057cccc9c5bce4398bdd33b","impliedFormat":1},{"version":"9252d498a77517aab5d8d4b5eb9d71e4b225bbc7123df9713e08181de63180f6","impliedFormat":1},{"version":"b1f1d57fde8247599731b24a733395c880a6561ec0c882efaaf20d7df968c5af","impliedFormat":1},{"version":"c8dadeff90ccc638d88a989c1139fd6a1329a5b39c2a7cbef1811c83ffe40903","impliedFormat":1},{"version":"35e6379c3f7cb27b111ad4c1aa69538fd8e788ab737b8ff7596a1b40e96f4f90","impliedFormat":1},{"version":"1fffe726740f9787f15b532e1dc870af3cd964dbe29e191e76121aa3dd8693f2","impliedFormat":1},{"version":"5a3ea721d03a361ccbdd7390ccd75f6e84cbca3a3f01f4b331ecc9af31890c49","impliedFormat":1},{"version":"e7dfaee4af38d45b1cab8a1ee0b3bc1f85ddcf64545ed391d675d78ae6526274","affectsGlobalScope":true,"impliedFormat":1},{"version":"98e2b197bf7fe7800f89c87825e2556d66474869845e97ad9c2b36f347c43539","impliedFormat":1},{"version":"af48e58339188d5737b608d41411a9c054685413d8ae88b8c1d0d9bfabdf6e7e","impliedFormat":1},{"version":"616775f16134fa9d01fc677ad3f76e68c051a056c22ab552c64cc281a9686790","impliedFormat":1},{"version":"65c24a8baa2cca1de069a0ba9fba82a173690f52d7e2d0f1f7542d59d5eb4db0","impliedFormat":1},{"version":"f9fe6af238339a0e5f7563acee3178f51db37f32a2e7c09f85273098cee7ec49","impliedFormat":1},{"version":"1de8c302fd35220d8f29dea378a4ae45199dc8ff83ca9923aca1400f2b28848a","impliedFormat":1},{"version":"77e71242e71ebf8528c5802993697878f0533db8f2299b4d36aa015bae08a79c","impliedFormat":1},{"version":"98a787be42bd92f8c2a37d7df5f13e5992da0d967fab794adbb7ee18370f9849","impliedFormat":1},{"version":"332248ee37cca52903572e66c11bef755ccc6e235835e63d3c3e60ddda3e9b93","impliedFormat":1},{"version":"94e8cc88ae2ef3d920bb3bdc369f48436db123aa2dc07f683309ad8c9968a1e1","impliedFormat":1},{"version":"4545c1a1ceca170d5d83452dd7c4994644c35cf676a671412601689d9a62da35","impliedFormat":1},{"version":"320f4091e33548b554d2214ce5fc31c96631b513dffa806e2e3a60766c8c49d9","impliedFormat":1},{"version":"a2d648d333cf67b9aeac5d81a1a379d563a8ffa91ddd61c6179f68de724260ff","impliedFormat":1},{"version":"d90d5f524de38889d1e1dbc2aeef00060d779f8688c02766ddb9ca195e4a713d","impliedFormat":1},{"version":"07ed3ddab975995eea41b22f3010506fb9f5fb301d04820b07d7a1aee5477d7c","impliedFormat":1},{"version":"969d8b0965849f4bae7cab0ba90bd1e1220e95999c2c6f01117fa7500901c017","impliedFormat":1},{"version":"6ec840ee5e2bc103f557fe38b1d585ee250540468713d7634ee066de372bf332","impliedFormat":1},{"version":"b0309e1eda99a9e76f87c18992d9c3689b0938266242835dd4611f2b69efe456","impliedFormat":1},{"version":"47699512e6d8bebf7be488182427189f999affe3addc1c87c882d36b7f2d0b0e","impliedFormat":1},{"version":"6ceb10ca57943be87ff9debe978f4ab73593c0c85ee802c051a93fc96aaf7a20","impliedFormat":1},{"version":"1de3ffe0cc28a9fe2ac761ece075826836b5a02f340b412510a59ba1d41a505a","impliedFormat":1},{"version":"e46d6cc08d243d8d0d83986f609d830991f00450fb234f5b2f861648c42dc0d8","impliedFormat":1},{"version":"1c0a98de1323051010ce5b958ad47bc1c007f7921973123c999300e2b7b0ecc0","impliedFormat":1},{"version":"ff863d17c6c659440f7c5c536e4db7762d8c2565547b2608f36b798a743606ca","impliedFormat":1},{"version":"5412ad0043cd60d1f1406fc12cb4fb987e9a734decbdd4db6f6acf71791e36fe","impliedFormat":1},{"version":"ad036a85efcd9e5b4f7dd5c1a7362c8478f9a3b6c3554654ca24a29aa850a9c5","impliedFormat":1},{"version":"fedebeae32c5cdd1a85b4e0504a01996e4a8adf3dfa72876920d3dd6e42978e7","impliedFormat":1},{"version":"e297c0a524edee7677939122f90027bfbe5f2698939d9a85728e5044b39c7124","impliedFormat":1},{"version":"cdf21eee8007e339b1b9945abf4a7b44930b1d695cc528459e68a3adc39a622e","impliedFormat":1},{"version":"bc9ee0192f056b3d5527bcd78dc3f9e527a9ba2bdc0a2c296fbc9027147df4b2","impliedFormat":1},{"version":"b62381cae176db34f003cc6172ee8f3e0122014889d66391aa73698105cf4934","impliedFormat":1},{"version":"1d9c0a9a6df4e8f29dc84c25c5aa0bb1da5456ebede7a03e03df08bb8b27bae6","impliedFormat":1},{"version":"84380af21da938a567c65ef95aefb5354f676368ee1a1cbb4cae81604a4c7d17","impliedFormat":1},{"version":"1af3e1f2a5d1332e136f8b0b95c0e6c0a02aaabd5092b36b64f3042a03debf28","impliedFormat":1},{"version":"30d8da250766efa99490fc02801047c2c6d72dd0da1bba6581c7e80d1d8842a4","impliedFormat":1},{"version":"03566202f5553bd2d9de22dfab0c61aa163cabb64f0223c08431fb3fc8f70280","impliedFormat":1},{"version":"41eb514d9ce0a6e87957f08a4b7af70d93f87637f37dee706e2d92a6601c25a9","impliedFormat":1},{"version":"e7765aa8bcb74a38b3230d212b4547686eb9796621ffb4367a104451c3f9614f","impliedFormat":1},{"version":"1de80059b8078ea5749941c9f863aa970b4735bdbb003be4925c853a8b6b4450","impliedFormat":1},{"version":"1d079c37fa53e3c21ed3fa214a27507bda9991f2a41458705b19ed8c2b61173d","impliedFormat":1},{"version":"5bf5c7a44e779790d1eb54c234b668b15e34affa95e78eada73e5757f61ed76a","impliedFormat":1},{"version":"5835a6e0d7cd2738e56b671af0e561e7c1b4fb77751383672f4b009f4e161d70","impliedFormat":1},{"version":"4b7f74b772140395e7af67c4841be1ab867c11b3b82a51b1aeb692822b76c872","impliedFormat":1},{"version":"7bd01f0f28cd3aeb2046274d85208e245965f6f2948edf4f7b2057bcf9f22ccc","impliedFormat":99},{"version":"d2f2cf2b8cc92bea913cda4a076e0f790b23a21e84f989d12f0116a7fe3906e0","impliedFormat":99},{"version":"6de125ea94866c736c6d58d68eb15272cf7d1020a5b459fea1c660027eca9a90","affectsGlobalScope":true,"impliedFormat":1},{"version":"f5b20bc288ee49989c95b20847fc93b96bf61cc0845598897a6a53a967dd7d07","affectsGlobalScope":true,"impliedFormat":1},{"version":"064ac1c2ac4b2867c2ceaa74bbdce0cb6a4c16e7c31a6497097159c18f74aa7c","impliedFormat":1},{"version":"3dc14e1ab45e497e5d5e4295271d54ff689aeae00b4277979fdd10fa563540ae","impliedFormat":1},{"version":"d3b315763d91265d6b0e7e7fa93cfdb8a80ce7cdd2d9f55ba0f37a22db00bdb8","impliedFormat":1},{"version":"b789bf89eb19c777ed1e956dbad0925ca795701552d22e68fd130a032008b9f9","impliedFormat":1},{"version":"6872c81195a840fd6fc75b79c719a38c5533f1cd4cd85b62bddbc1d6debb99eb","affectsGlobalScope":true},"7ad303e40d4fddf44f156129e397511953a71481c5cfd86b1862649aaaf240cc",{"version":"51954e948be6a5b728fcfaf561f12331b4f54f068934c77adfc8f70eea17d285","impliedFormat":1},{"version":"18443cbae1d44789ab133e1e4e443796bbe2d9c7eeb469747b239677915d0ae9","impliedFormat":99},{"version":"ea979cd7b2700d8fd993b68f3bc04ebe1b53d242161af9f71860889ea32e4b9a","impliedFormat":99},{"version":"59e3b57a4d02faf2c6aea0de70996bfc3702a18d8f44cc13ed3f236ccdafacbe","impliedFormat":99},{"version":"9843392e560eefdf08144e38d0e70ea2b90c797172296c9e2f4869ae3ba2f3a6","impliedFormat":1},{"version":"afa439dede536b98cb783a6b7de3323527ea322ac045b9e912608546a6841c2f","impliedFormat":1},{"version":"f76b84b19f2e3aa6ef73803fcc7bebe5493a995064ea70df755f4f2ed238c54b","impliedFormat":1},{"version":"12d85e4f25ac4a346e98674caf4d52bcc56f73463b96063f9aacec19c5419c86","impliedFormat":1},{"version":"bbcbe915f896a017dcaf1fdd768d5cc5e9e2f822daea447bcdbfee487f370fb3","impliedFormat":1},{"version":"2a7e70bc064928e693c23ad77dbe060bf7812a8af84e711d7d6d34b399dbee50","impliedFormat":1},{"version":"3cd3a1e6f9a2036ea79036918f21bf89ebb89d0def59b7571391ab1ed412d9fe","impliedFormat":1},{"version":"1a1712dd24c6cbb3254b07a3250a7bd77f31e607356c569f3960d78d0ad20bbd","impliedFormat":1},{"version":"c91daaca570db8a03d31c77196b2e01b35693590ece13482c4f85be939ce76ea","impliedFormat":1},{"version":"6aec0b89b25e1faa3bf6e067f9f1ca71599168b23a99c48141d8623ed87f02ac","impliedFormat":1},{"version":"7e9a24acbc01ea32ca80e338d241cf669f741486f0dd279e81e41fb7a192ada4","impliedFormat":1},{"version":"81d0223904815685a724af1ae54b3e0329db4d1d7a6bf0e787858ac1b0dd7b8c","impliedFormat":1},{"version":"4509d2d20cbe91cb54f2e8cb232d5d01d3e1df2fe972a41dea271d82ad4492eb","impliedFormat":1},{"version":"ed7f9fab9ad99979b645d923a98468b1a179fd6ca051d19a850439f51b0c6684","impliedFormat":1},{"version":"c756f5145bede917e4ab310cbc8d0df442d2b988cd0a745f8e1417cbc37f270f","impliedFormat":1},{"version":"8446182a95757078db726832549397899c29b76e34ccc228236d8342005ae1f1","impliedFormat":1},{"version":"794fad35390a726ddaf668c59941b002f7e61a499e3d9c49836132fe1b52f455","impliedFormat":1},{"version":"b2f34a9440e9cef2abc6cf43666b976582bf049079bc006de791611e1b7e3309","impliedFormat":1},{"version":"4c3de13ab59859ac1d6370bbf49a94b01dc68dbb6f9dedd41806ef11f0a9c9f3","impliedFormat":1},{"version":"3a71195dbc5a5414cf018f4edc866b5bf1908400f63d6cd08d9e1ec8bd492267","impliedFormat":1},{"version":"4e37b36edac010e0568e927f7638932edd81b15489ddf91e23f83c0a38f8a473","impliedFormat":1},{"version":"1eb8dcc435f659245d281eeb7c0013e977c5dea7726eb1cd0f2762cb6b69865d","impliedFormat":1},{"version":"478a72f2b2dadbc6e965e12a195efbae0867e4239003af46a74c0b76b6ebae63","impliedFormat":1},{"version":"2302c16c88162466a8b39dcb0a3ad8f64939a2d168071d696712756eb9860ca7","impliedFormat":1},{"version":"49c4de8b2585ec4c6f988e86407763a6a27c6380bc6301b83b3c1cb50a47735b","impliedFormat":1},{"version":"2c43fa4fa182a37fb75421ff1868cabadafc80bcb81c989d7fb294a651777be1","impliedFormat":1},{"version":"16f79e55ec46513c2c40fcdb84ab4012ce033356510c71418d24495719d45ee6","impliedFormat":1},{"version":"31aa25b14ab2de5da2fd8435b3a4ef962374eaf486011b853254b72db7ee47e8","impliedFormat":1},{"version":"2d672acfe22cd47b6f469b73c77fc94cfe3bee9124f183fca3aca4746b72b736","impliedFormat":1},{"version":"14ce76a634f46c3990fa5f0bffd035ac6ba7da2da342c4c8b8787408bac142d6","impliedFormat":1},{"version":"57a0a90c481ea1e0566bcefef00b933b42bc8cb3263c933ec69c7e2366add27a","impliedFormat":1},{"version":"8dcd1207abf6fec34ac3b553b5bcc254834744af6ff9e069e6590a4afac5ebf2","impliedFormat":1},{"version":"0c7fa517d40cd546cdfb7db31c82a07d507d84cfb111e99df1821e6e3c75f11c","impliedFormat":1},{"version":"9e66faf83c89b403c7c1a93f54c9bb16f16890a38f36304da2bc1992ad4e5e6a","impliedFormat":1},{"version":"fa1c72ed2d9c5687692e7cc20d5a1436a7b73daaa9ee7d99e29357d9a0364e18","impliedFormat":1},{"version":"b4803c4918c3170d9e39d3bc6a068b9edd74a7805248e97a6f9df1f97bdcbe71","impliedFormat":1},{"version":"0496a121f3e0ea84e336010aa602766da2438c29f7b9fd991638d32eb7e349de","impliedFormat":1},{"version":"4ef7931671c5dc62b4054f4d0d6e4132efe97722db595bb51cb94f5156e60201","impliedFormat":1},{"version":"8c5d6070c48ce892cbef9cb47b7b165704e5606281bf6dd6a6b70f12931aea32","impliedFormat":1},{"version":"66a70925b633678be8e71a5fcfec45a4061907f0457746f4dcacfdad5487efce","impliedFormat":1},{"version":"bff6f2b37ee98d677f04a4f544106bd4ef52844b21d31a88a30f9eb562f106be","impliedFormat":1},{"version":"fb241b2adce4d731ca590e701cd7e1ef701ce1b87a0549cdf5fbbe9d8c7ec7ae","impliedFormat":1},{"version":"e8f663e8f4eba60da79aa16ec884497958737da84f3808a0f139a3ce58685a93","impliedFormat":1},{"version":"fa55f3f35b52d678f4ac4c0d323a4ab06f47ede91a58e9fefbc8c0dbe3c8ca8a","impliedFormat":1},{"version":"96ce988b5333c1da87be28ec6db8f440f1d9c8eb3937afbda7a7eade91840737","impliedFormat":1},{"version":"517a9653984586436cf7977ceb8520ebd219dde8213a0f20e7addb9b2f435149","impliedFormat":1},{"version":"8fb2863673d7d1452b0807f96db3c14ff7bc0f8a01bb26429891f1b101f943f0","impliedFormat":1},{"version":"dbd5918261ed5bfd441e7b014ced1a7ddd84315da8ffec60143518451c7391e2","impliedFormat":1},{"version":"f6a69ac4d4c1a5b64e2b2b18294063402d279b4c7ae34741ee0ca3e639dd85ce","impliedFormat":1},{"version":"6efce4ffdccf339b2996ec2e66ae558e13d331afba382ae61d9334ba1fffe857","impliedFormat":1},{"version":"bb0239bdb7d21a2d5da651ff8878677d184d5092621d70c360ee0c89bdb45518","impliedFormat":1},{"version":"83c63f1089bcaece483dc58698cda8ee85cf161e123ba66f08d113b85a1047b5","impliedFormat":1},{"version":"8b1f749d44337e404e48b4cd216e39457d608c3dc52859d75a3543c7aca20b17","impliedFormat":1},{"version":"a2f4d3e8d1b0117e4321292da757cb757d4245ed13a8335831bf5840fe780deb","impliedFormat":1},{"version":"5d6fbddc9d276a9d1c68621f1f83e92cb8f26e8aa8e27fb4bb07de5771aaa5a0","impliedFormat":1},{"version":"27ef8d48801afda22caa4fb3d9e9e0404873cbe4e340cbce29a13b91652de61d","impliedFormat":1},{"version":"41581d5bf739259a08ae93b4ba6d7e87a7e20d44e20dbd3193530d8e58301579","impliedFormat":1},{"version":"28a4b6f1a3b2e44ea795aaeb23b80e9b62f8e6e49ce5e47aa9ed539f841a6a16","impliedFormat":1},{"version":"78765fe47c7dea88fc335a7f9e9a5ecc685458bce63afc39e1c3809dd6038989","impliedFormat":1},"0f59fa600b100add12af5514473f299ee2633478b4c15c02b595aad7ad567f77",{"version":"ebf3f14a8159ec5aa2fbf567e6070c248e86a46d69d9967bda179190094dbd4f","impliedFormat":1},{"version":"848cc30eec9c37fb03aa8ae16484be642c743f7293848de168b90baf2d69cfe0","impliedFormat":1},{"version":"4be49a9f9476155c8d0b3b2eab0006e4fe045938c98023049f408c27ef22d273","impliedFormat":1},{"version":"cb9f54e126176d643451c9f80c48f2c1561a32ca54d049352902aac0c99a35d7","impliedFormat":1},{"version":"64f916a733a1a5a554b7e1797a6dae778b9b3238b92cb6855dfca2aa60485843","impliedFormat":1},{"version":"bc9a11927ced39797acd3fa50bee8163685417d846800abbdbdec42824986108","impliedFormat":99},{"version":"890bdcec61a6fe8e39e35a1a9e4e0cad8c99b371646077bed13724862c4ab711","impliedFormat":1},{"version":"96e460809db1bd0848376a25a2932125abb237e1969bac14151dbd04ef7d7c9a","impliedFormat":1},{"version":"b3e571e9f098c30db463d30d16d395ad8dd2457ee6e8d1561e2e1527bc2b6ce0","impliedFormat":1},{"version":"6c22b196bc65ea4879393815aa51982cbd5b24d1180b4519fb24fc794fba3713","impliedFormat":1},{"version":"a7661d2413b60a722b7d7ff8e52dd3efad86600553eba1c88c990a0b2c11870b","impliedFormat":99},"aabdebabc1050cc52d12c1797a9c8872e382c85bbf61ebf0f9ad7f9f83a9f77c","d563fe842d8340505563675a08f65c848ca7e0d87aa2fc95bbdbc2fdc038e728",{"version":"9cda22a4a3f3f9de5d6ca3729e98a902b991cf49b82b645ee0cf1f2bd762ef07","signature":"f2b39241b9bf4fc60cfd6f579e361dea2a9d7021b731b567a4c2f356515c2ebf"},{"version":"1f0d9a0d781761ad4b44c152b798cb4298dd30c46230d64c1236fb99bf09ed17","impliedFormat":1},{"version":"7630db1395a4a84af7ccd2daddfb9f8a08e3465a68fb349c9e263724ed1dcdc5","impliedFormat":1},{"version":"7dca3135b21d584c49eb10926a90b64376fe4258cc55359826710c1194c0e133","impliedFormat":1},{"version":"7ff2749e187cf60121a21404d078b899a0c0c3642e41df3ad81bde7fd5acd9c2","impliedFormat":1},{"version":"5b9fc41636b167b6939f4359992ed14c237b8bdaee5fafa9a8de5b054f4f3907","impliedFormat":1},{"version":"28ed66404de9d88e755300d0299656c8f2bb6d4442f152877e1d2a3739353a99","impliedFormat":1},{"version":"4f59b76dba3619636ab9cf9756cbf424a5fbd23100fbd82648627c4fc046ce9b","impliedFormat":1},{"version":"5a88f1430b70aa69af418c27a31c4ee17fc23cc4e486742247040d74f260ce47","impliedFormat":1},{"version":"3beb7f15fa32b201fc81bc067b223cdf6e221f4820dc0acfde4333e902cabf8f","impliedFormat":1},{"version":"a5384c277edeeb51b0368f73e95b4232962a6722d4cdb94c8e9c560f77b35e2a","impliedFormat":1},"02892ea1f6a0205ff5bbda8e4da233e079af3b7d2aeee348d718de6bf2724e3e","f80e25ba0cad709c2020cc55e3203fddf871523d80dc1f1ffaed69a5b245691c",{"version":"71a7fd17f76c9f36af4007071745bc63ed62a65b75ba01b7f8853b51d9f02c54","signature":"3853a42fe11f152d91ebdca2e6f3d0a87a23860d95c88d1d074be9a438654d1e"},"4c39f605675827cd1bf2ee987f5cfb45263e4861c36452981e7977d5d49b5d72",{"version":"42a7a6afca7ee3ec111ad04324e6c3cce359cd29b6d1f7e296d8e48ed5a0e032","impliedFormat":1},{"version":"ffa3969c7181e45a8be90e0b7c7c8b7a25897902263206abcae9b6f9026d31fe","impliedFormat":1},{"version":"f1e7d51340c2cca60e7966436231d2fe44878b9ee3e4b1e3f07da9257d80429d","impliedFormat":1},{"version":"0f57a1b8a9b3be87e8f0632f8e099e347f3b2f18bc8c95aa3a261c7b24ff914f","impliedFormat":1},{"version":"b12362d2140d0b23e5c82a32e236ddd284670dee6a292b6c4281590f39283558","impliedFormat":1},{"version":"31741b377adc3430399a81424b53275e12e3c60a7c016085c1e6ea956d7d0225","impliedFormat":1},{"version":"e6280500a6633c9b38e602b00f7dfb7376ebd7903d76369520ec44297cbacc43","impliedFormat":1},{"version":"edbc71a92723584210dfc8caaf923c475a1aa799c707e99bb5e77b3d85e97de0","impliedFormat":1},{"version":"fc81262d457cd283e979293a561f3b03ca1384d8f368bfaed2dc9c0fb644b371","impliedFormat":1},{"version":"62182e8cf34e1e96d081036ac83f67c2b4f88ce0a689acb21d4f1b1a91ce6037","impliedFormat":1},{"version":"33cb8e5b0fb34dbfb71c8d407446859eadbb383d658048914612c30e5e91f2ca","impliedFormat":1},{"version":"e9f4836a802b9f0d70c5d593776508bc2fb22c6cc4149eede06ade102264c59f","impliedFormat":1},{"version":"e7c2f1cdcce2baa8490eabbbb8d62caebf0aa227404104702d69021c69037bc7","impliedFormat":1},{"version":"cf9c843491bc75b441a7b844375b485e8f669663cac40ccb9bbe78b0071e37e0","impliedFormat":1},{"version":"ad548e7facb6e2121a5a77195b6787e2d4b523fa311cce4af574f377aa81a1e5","impliedFormat":1},{"version":"7527edae9ba041c7d079950652a7f388aad252d7f3148effb95c444d91ff3d08","impliedFormat":1},{"version":"d295d3bb3f2ef8cfab66a97a694368e5e65f9030d4b73998e8090895b8e79bff","impliedFormat":1},{"version":"45be440c48dcb76f1be8549cf8117b581ef3059c3f7623cb46101ad07f6da69e","impliedFormat":1},{"version":"454d449cdbc0ac43dcc6311cf395f57387755d5dff12a73dee62e97d507d012c","impliedFormat":1},{"version":"7af606112825ab9b1c0cefdf585a07cf6e6a83b245a8712a39cce5e6f37acff9","impliedFormat":1},{"version":"1358b2a2b3075463f1eab3289d4c1d78d7b4ab425dcc9dd70c09d22c5627b36d","impliedFormat":1},{"version":"07b5ce75200a33767332744ded92fa0bd29b1db2aeccbf947e11d884cccb58c2","impliedFormat":1},{"version":"5099265d24eb34694ddfb5a1aa32f082ca2a355650de5cf577577004a32b8996","impliedFormat":1},{"version":"5e35a2a3f0b62ee763fd1d1f13cdec015ea10fb1ed7a670989b1ba49b37ad287","impliedFormat":1},{"version":"b3b5aca751100320745c8bfd826202aed7d753d336448ce2265b9470dfa8a298","impliedFormat":1},{"version":"5fa35c6051059d5ed57cbda5479b593cec15d5405229542042bd583c1e680fb4","impliedFormat":1},{"version":"7df3932c1b8816845e1774538c4e921e196d396b3419e2e18bc973079b4064a3","impliedFormat":1},{"version":"c8a7131a27d7892f009ab03d78dc113582f819c429af2064280bec83c2e7c599","impliedFormat":1},{"version":"19629032a378771a07e93c0ab8253b92cb83e786446f1c0aed01d8f9b96a3fb6","impliedFormat":1},{"version":"fd4b51f120103d53cc03eea9d98d6a1c7e6c07f04847c0658ec925ceeb7667aa","impliedFormat":1},{"version":"53bacb19d6714c3ea41bebf01a34d35468a0ac0c9331d2ffdc411ce452444a2f","impliedFormat":1},{"version":"e2ce339ecc8f65810eda93bb801eb9278f616b653f5974135908df2c30acc5ae","impliedFormat":1},{"version":"234058398306e26bc917e6efba8fb26c9d9f2cfdfbaa17abfcb11138847de081","impliedFormat":1},{"version":"b3ff9aff54c18834bce9690184e69fd44fd5d57273a98a47fbf518b68cc4ec60","impliedFormat":1},{"version":"e6cfcf171b5f7ec0cb620eee4669739ad2711597d0ff7fdb79298dfc1118e66a","impliedFormat":1},{"version":"3dc40ead9c5ac3f164af434069561d6c660e64f77c71ab6ad405c5edc0724a94","impliedFormat":1},{"version":"d5fb34e3200ce13445c603012c0dfbd116317f8d5fef294e11f49d00a859a3d0","impliedFormat":1},{"version":"58fc843cdfd37a8b1ae2cbf3d6d3718d41cdafcbbf17e228bd6a7762a7235bf0","impliedFormat":1},{"version":"a4d0945318f81b27529abcae16d65612decf4164021a0d4d2ec19fbfcbaf1555","impliedFormat":1},{"version":"fbe57f37a07a627af9ae5922c86132677e58689427cc748866a549ef3862f859","impliedFormat":1},{"version":"8df750d51d498be760d538ac9818c7aebea597f21d4937a65fb2ebedd8a976e7","impliedFormat":1},{"version":"5b9c5efb469020fd6a8c6cb8c4b378ef3dc46ad97938ac900882f1d5f237bc91","impliedFormat":1},{"version":"83dc862cd9b7b1a929bcc03e9bbc8690cebc7e29b1edfa263f6fd11b737f19df","impliedFormat":1},{"version":"fffacebbcc213081096e101e64402c9fb772c5b4b36ad5e3d675e8d487c9e8af","impliedFormat":1},{"version":"1b243b5a51dff2bf70b7a6ce368fe7ff845c300027404b5a41a87ce5490cdad0","impliedFormat":1},{"version":"dfb119c12d7d177eb47b98c011677ca852dff82ddbe40ea571e31e04d2b84278","impliedFormat":1},{"version":"e0b50044596bf7b246a9ad7b804cc5ab521f02e89460a017981384895a468f23","impliedFormat":1},{"version":"b303a99933b69d9d6589ac24f215e5d987933782244251a10e62534f08852d94","impliedFormat":1},{"version":"e052b679185d44460040d5ce3d703d503e5f7108cd4e9d057323f307c6c0e42e","impliedFormat":1},{"version":"ddb79ad4350198a188ad3230d2646b4c67467941ddf4022ed01e4511a56d2cd9","impliedFormat":1},{"version":"8b3de2f727cfd97055765350c2e4d50ea322cabb517ff7aa3fa0ad74aab4826e","impliedFormat":1},{"version":"b3e584a57553f573aa01b34bf0d08c4dfefb2b9ede471c70d85207131f0f742f","impliedFormat":1},{"version":"23a24f7efe3c9186a1b05cd9a64a300818dd0716ffbd522d27178ec13dc1f620","impliedFormat":1},{"version":"6849f3dd56770a08b9783d61e3ba6e2d0ba82850a20ae97e1bdcaeb231d2f7fc","impliedFormat":1},{"version":"6fb23beb59f1f5c8dc97bfc012d5edac81ffca1c1b83a91381b4e130e7ce24f3","impliedFormat":1},{"version":"bc759b587b3e7213fc658fe78dbaf7b0e7c0a85f37626823b4bbef063759c406","impliedFormat":1},{"version":"04ed59801192608de22461e38b9f2e300953f1d6d6c05332f19e78e668d6a843","impliedFormat":1},{"version":"bf5cfc96bacabfe71962c32755df63ac499f732571368db3bdd7e144336c50f7","impliedFormat":1},{"version":"4c10770eca2ae9c1d5c97dad5c715b0c65def8699066231851a69fa58aaab3bf","impliedFormat":1},{"version":"c7e7d48913bfa205453911f699307e7ce630deb3c3e68326377bc2ba20abb1f9","impliedFormat":1},{"version":"4b78505d4f7ba7a80b24dae9b9808c2ec3ecb6171af03a4b86a7a0855d7a80c1","impliedFormat":1},{"version":"d09d8ac8da326eb4cf708d3a3937266180fe28e91c3a26e47218425b2ec1851d","impliedFormat":1},{"version":"50c0c2b5e76e48e1168355e3622ca22e939c09867e3deb9b7a260d5f4e8d890c","impliedFormat":1},{"version":"66491ea35e30cc8c11169e5580aef31e30fdf20b39bc22e0847c2c7994e2071b","impliedFormat":1},{"version":"35680fb7f25a165e31e93ea22d106220db4450b1270a135b73f731b66b3d4539","impliedFormat":1},{"version":"5865007a5331be0842d8f0aace163deda0a0672e95389fe6f87b61988478a626","impliedFormat":1},{"version":"dddc865f251a4993b9e23494a9ae0fb58997e0941b1ec774490a272d5a0b29bd","impliedFormat":1},{"version":"76d1f106ef20648708a7d410326b8ad90fc6f7d4cdf0e262edd6bd150676151b","impliedFormat":1},{"version":"6e974c9f7e02b1f1b7c9538619fe25d9d23e4eb5df3102f62f3bb0cb3d735d1a","impliedFormat":1},{"version":"18f3835257e2f87f8dc995c566217c5434d9bc14a6d18e7ca0e2afbfc2f1eca8","impliedFormat":1},{"version":"69055f4f0b1b2df9f0ca89231075c0578975518543100582dd37adb956ad6135","impliedFormat":1},{"version":"c3f85a0f71b64d78e7dfb27a12d10b0cd621745f40752b8e9fa61a7099d4290e","impliedFormat":1},{"version":"0b4b2424b5d19bbac7e7ad9366419746fff0f70001c1867b04440d0031b26991","impliedFormat":1},{"version":"e6d999c047721b80fc44a025370dbc02022390bfcf3c1e05cd200c53720c3f16","impliedFormat":1},{"version":"4fd695c068c325f2eb6effd7a2ed607d04f4ed24b1f7cc006b8325b3eb5bd595","impliedFormat":1},{"version":"c18fb9b8d4a7f41ae537512368ec9028d50b17e33e26c99f864912824b6e8c30","impliedFormat":1},{"version":"2b214fb1c919b0483175967f9cf0809e0ac595a7be41ba5566be27ce3d66cf86","impliedFormat":1},{"version":"ff8ece28a240cb8a29342a8c54efdaf124f93301081afa047bd1e7f6ec2a79e3","impliedFormat":1},{"version":"9b923be7ef4337bbddbd1713b13cf81da9a955034bdf657bb9e60a8fc9b20ac5","affectsGlobalScope":true,"impliedFormat":1},{"version":"5bb4522fdac27724f825e327b74e3d71c0351313e70c43b758d12c874fc6ec47","impliedFormat":1},{"version":"64a7f49024a5aabcd8a3232cf2d01174dd8b9973e0b2c2b02cb2c3198949b4e5","impliedFormat":1},{"version":"1689a23b108df69ec5b59c366f4e83ced6b62a10fd05565a30799bdd32aaa0c6","impliedFormat":1},{"version":"a4e38fa16e2e94027f1d43456da407a743f8b94279e8c149339a8b7fb24196b5","impliedFormat":1},{"version":"bc105ca4ccc20645078af2b6b7bfb9efd710559c517402d35601553e744c445f","impliedFormat":1},{"version":"4e0a428b9c465114c655d9b25aec9d0c5e0396d9f00f15ea5eacebd5fbe7db7e","impliedFormat":1},{"version":"aa33137ed9f66851c7aaaac54dd2bf9e7cd3f023ee468c4d7c7d6e1f0b08546f","impliedFormat":1},{"version":"9b2d18639443b2cbd8582a2e7aac67eb4eedd32afcda12aef857649e8580dde9","impliedFormat":1},{"version":"8819d222f4840ffd941df916ac59607bdb4ad625aa927741c41fd07b9c513773","impliedFormat":1},{"version":"2e659e87cebb4d7fc2d876711e06461a62b8b256caaa1873bfd2418dbc3ffc4e","impliedFormat":1},{"version":"42a7a6afca7ee3ec111ad04324e6c3cce359cd29b6d1f7e296d8e48ed5a0e032","impliedFormat":1},{"version":"ffa3969c7181e45a8be90e0b7c7c8b7a25897902263206abcae9b6f9026d31fe","impliedFormat":1},{"version":"9b97925334f1a23273f2c42060eb2263d2129debeadb6660f8037d7eef7d6102","impliedFormat":1},{"version":"0f57a1b8a9b3be87e8f0632f8e099e347f3b2f18bc8c95aa3a261c7b24ff914f","impliedFormat":1},{"version":"b12362d2140d0b23e5c82a32e236ddd284670dee6a292b6c4281590f39283558","impliedFormat":1},{"version":"31741b377adc3430399a81424b53275e12e3c60a7c016085c1e6ea956d7d0225","impliedFormat":1},{"version":"85bde8ce4eceaa1f1ecc39b61bcc6f7ac3352fb85d67868c6b9a3502c5398b48","impliedFormat":1},{"version":"edbc71a92723584210dfc8caaf923c475a1aa799c707e99bb5e77b3d85e97de0","impliedFormat":1},{"version":"fc81262d457cd283e979293a561f3b03ca1384d8f368bfaed2dc9c0fb644b371","impliedFormat":1},{"version":"62182e8cf34e1e96d081036ac83f67c2b4f88ce0a689acb21d4f1b1a91ce6037","impliedFormat":1},{"version":"33cb8e5b0fb34dbfb71c8d407446859eadbb383d658048914612c30e5e91f2ca","impliedFormat":1},{"version":"e9f4836a802b9f0d70c5d593776508bc2fb22c6cc4149eede06ade102264c59f","impliedFormat":1},{"version":"e7c2f1cdcce2baa8490eabbbb8d62caebf0aa227404104702d69021c69037bc7","impliedFormat":1},{"version":"cf9c843491bc75b441a7b844375b485e8f669663cac40ccb9bbe78b0071e37e0","impliedFormat":1},{"version":"ad548e7facb6e2121a5a77195b6787e2d4b523fa311cce4af574f377aa81a1e5","impliedFormat":1},{"version":"5aaef9d80abb0dca758de3d5a95a0ad7a9de30868121373cd80261e83211858f","impliedFormat":1},{"version":"37c7961117708394f64361ade31a41f96cef7f2a6606300821c72438dd4abda3","impliedFormat":1},{"version":"f5a0ca672513d5a3e303b36801e4573bb17ae002da225c28c1723eeee0f97145","affectsGlobalScope":true,"impliedFormat":1},{"version":"3d9189f26f01d4e36d3fb380810ef5999992235282e3c293da77d1d8aed09d9f","impliedFormat":1},{"version":"d9bf522aa42728ab077c4675515f5c2d1b739cb37a07d2903f3a0227219fd58f","impliedFormat":1},{"version":"62693dc662774a9bdf2b21a9d5a4bb53c917dbf09d489ed989da13249a2574c1","impliedFormat":1},{"version":"da3178b1125d3bda35018fc373d0c644d782c429394dd443325c64c5be628ea7","impliedFormat":1},{"version":"248bc91a7dba92c21b4c183ce58e61f9d7641375299950be9e6b1a683403db9c","impliedFormat":1},{"version":"e10d87b996a47c8d64e4d4afbf3d2e06e51040c7902b9e2c78ca626a89e411b2","impliedFormat":1},{"version":"23ad17ebea1a618642ca324f9e571a3dcda1618c74fcc3cff9177c139f2cb318","impliedFormat":1},{"version":"4481f372dc6f3baabff8d8888dcf3b8a679c1119074a8a0f476eb0048871a110","impliedFormat":1},{"version":"aada27e2f8c60c46836deb7dd7041a49f6bbcfe8bee1cf026bcbd77bf2adea0f","impliedFormat":1},{"version":"26aefc11ba133fb21afa2ccfcac5374c2f42049e02d19ac0b54261bcfc7a4720","impliedFormat":1},{"version":"8c4126047218298c9a088c5736a61db73d743fd0fb183c0972a30c8ee5ba0a63","impliedFormat":1},{"version":"345858a8b2f43e7e62f35819e3bfeb10f0a6357963d30dec52304e51f83de1e8","impliedFormat":1},{"version":"06c6c1e2f4974f7264865ece59c84f125d7ea901228b2550254ec5f359531bd6","impliedFormat":1},{"version":"38c281bcd891035eb6067ff9904d2767fc1b661e1fc7a04783ebadd38a1de239","impliedFormat":1},{"version":"9c781e58c87aece01975c68f698b1813e1b456f0e30b1f8720d66df800f3d516","impliedFormat":1},{"version":"85b8fe67be43393f7fa309eb403ec2b6cf23efedff9a49951d16effd223d615d","impliedFormat":1},{"version":"d852bf1c22540e1adecb875bededcc9710108a6110b64ce4eb3140b919ca5720","impliedFormat":1},{"version":"e25ab0225a0aa7367478e912216c3788a92e13422545062c4d31c7e5c25fe101","impliedFormat":1},{"version":"e75ea52404b8cb181079a3e5585864846d5d2cc803f0a1408ddbc7fb78b89bdf","impliedFormat":1},{"version":"b60b5b9e90916976d38fa74e6f67c66cdbac7459309a304a16775fb2de734943","impliedFormat":1},{"version":"f93d9bafc915b98c5a2e474f7bf453e9fd1586dab2643d1e81a17498af47e234","impliedFormat":1},{"version":"e4a7ebe0d90c2d7c55106fb0192d921eca41e15e39f6f459a7079826073e055b","impliedFormat":1},{"version":"06de729317a7d30346909768082c2c9e32727e41e4a81e82c239def018b23150","impliedFormat":1},"fe2c71e6c7d0f90a37dec10395268848955aef8dee740eb77828087742e10f63","4e01a615acda248e6ed13ca1806c98391626e0531437c0dfb907e34d7d2342fc","484dab152f3f5948007382aca2f4e2475239ff48a3d4a4a34e033bc947c1f015","c70cf15cb95d5e10970a088e4a32b6b104c8e7d721fc9be8689ba8904b918634","1b02b26e058378dfb4b3e14a47cac6faa0dcb944a442c02730d6f823d7409d22","8912020f31837f9dfa8e155acd5e2dd6457da47b8e7aeb8e0ee79ec4d94a1884","4ac5bae0b249028892448e08b955226566e9ea6a7c080d6f809f0fbc68348d41","514ee7b95a871770f5eb1b161f0f7a5cfdc9b609d173ffa9dc7b6d0a874d73bb","92edfc216001486590ab4293cf9e919694b3b53ae379c4c43b373a1529d9ac94","d54f14aea2c4f38e67d9f721505efc52fd81a1e162baa2a7a030dfa50dde05a7","8665497264f7cc3329fabf2df9cc70ee61005aa7417bc31fd5b0bb0b2f32c7f4","07108baca78041816ccb81a1fd25a4f8aef893046e379f76bf818fa217fa2d52","554db58f3c2b3d729f9a505f0c5a4eedb824d2643b225aea74eb784f2e0acea0","89f66fa007b4109cc16c0ad3d610c6a52c3f8f5005ce0acf2604b2f293a98039","fd200bc9939e1192c2e861c94b8184577e4a9106eed6219446eb21988e18f2cd","606d6016e00ac314931553c6d89655efa8779a50aa2e8b28a4180a99f1d87a12","b9ed5a8b160e2cb2fdd583855041c8e7ce63f3aef9f2ff8964cdd07ca80b7e13","ec960f7186011535be014746be04bb1695b8755bba3950db0f9acaae173c1e8b","b47136266073063cd0af8434c1a6dbfa7afa407c8ef9911e235396b9ba2e35a9","052c83521556dcb433e002db671896ad59358dfaee0e847ce4ae10a44bdc1a5c",{"version":"ad548e7facb6e2121a5a77195b6787e2d4b523fa311cce4af574f377aa81a1e5","impliedFormat":1},{"version":"4ac4d56bea0883286747f1aa9b3b23d39de1bcc5821902b530e8f08361243708","impliedFormat":1},{"version":"ea11135ac78c154114b9658a467274918046a06146af52baa686f3224bec870b","impliedFormat":1},{"version":"5c4ed9b6e28a9a2187c8e111ffa385dbd76509c643ac32bd9a9293755b107f2c","impliedFormat":1},{"version":"24eec9ded2f478c7dfcee1b79a650e469a43573865bc0aa64bcf659aa69ab419","impliedFormat":1},{"version":"687c5e49d82a18656a8c960847903d4e8e1cca8c1e817bc0566e997aa0b6c4b2","impliedFormat":1},{"version":"efd0a218052da30cc69f16b1484dbba6c3ad8901b18fb152dbb2296401c0c674","impliedFormat":1},{"version":"ad548e7facb6e2121a5a77195b6787e2d4b523fa311cce4af574f377aa81a1e5","impliedFormat":1},{"version":"7cff7f902ceea855751cf29c4469a1bb549a44898e1b932b5fe41c736dca2b22","impliedFormat":1},{"version":"7f8700a8ab44c97d64e2c812ff30156d7ead06e65deff11f4d6771e5bb91c7fb","impliedFormat":1},{"version":"65a5c68cfd4ad206b6fa2f2fc154e6fbfb084a722317fbb34b9463b1f0a223af","impliedFormat":1},{"version":"f9baa39f45d501f7233fc29321c14ebf023cc3d2b4094995941c388ee42ab9e3","impliedFormat":1},{"version":"1d3548abe65d50ea96691212ca1271ad2167ca5c9670eb5e40f0e57b21acdb20","impliedFormat":1},{"version":"ad548e7facb6e2121a5a77195b6787e2d4b523fa311cce4af574f377aa81a1e5","impliedFormat":1},{"version":"93fc22742e67217bf8a24d0af2492c6e3bd48db7ed5ae174d1ab0523c199430f","impliedFormat":1},{"version":"f0d02e581df1a34dbb71b8791ac4e20374d3b70779bfa892a8b7b8cfbafe32a5","impliedFormat":1},{"version":"7527edae9ba041c7d079950652a7f388aad252d7f3148effb95c444d91ff3d08","impliedFormat":1},{"version":"d295d3bb3f2ef8cfab66a97a694368e5e65f9030d4b73998e8090895b8e79bff","impliedFormat":1},{"version":"9166610af16e2586d614e3e22f8784d490a43cc030fdef124c6feae56c4a8f89","impliedFormat":1},{"version":"454d449cdbc0ac43dcc6311cf395f57387755d5dff12a73dee62e97d507d012c","impliedFormat":1},{"version":"7af606112825ab9b1c0cefdf585a07cf6e6a83b245a8712a39cce5e6f37acff9","impliedFormat":1},{"version":"5099265d24eb34694ddfb5a1aa32f082ca2a355650de5cf577577004a32b8996","impliedFormat":1},{"version":"8c64f6b2b7f51e435be7e159370ef2a6ed343059bba7fe895c7cc1bbea508383","impliedFormat":1},{"version":"4e0a428b9c465114c655d9b25aec9d0c5e0396d9f00f15ea5eacebd5fbe7db7e","impliedFormat":1},{"version":"aa33137ed9f66851c7aaaac54dd2bf9e7cd3f023ee468c4d7c7d6e1f0b08546f","impliedFormat":1},{"version":"9b2d18639443b2cbd8582a2e7aac67eb4eedd32afcda12aef857649e8580dde9","impliedFormat":1},{"version":"8819d222f4840ffd941df916ac59607bdb4ad625aa927741c41fd07b9c513773","impliedFormat":1},{"version":"2e659e87cebb4d7fc2d876711e06461a62b8b256caaa1873bfd2418dbc3ffc4e","impliedFormat":1},{"version":"9c5174d9445a8918be17d643204460afe2676cc72a81029865f7fb654014fbc4","impliedFormat":1},{"version":"9674641088b658c86fdc0de3df76fa53e9f67eeb0edc323cf1fc24238304f74d","impliedFormat":1},{"version":"ef547f87482c2f7ec3794f17c25e89f5eb487905005d549c7ca23450d319322e","impliedFormat":1},{"version":"b2fd1028a98aeaa762514f37e24b4df8c7be73e34270484c6f192757bcc1898d","impliedFormat":1},{"version":"8c2453bbd79b7184c9e74b74bd3feb6377529bdf408cb2b740a5998c3b6c9577","impliedFormat":1},{"version":"a07b06e7f7d862f5923a989a4c3da9b1b2ff038d7c4dcc5eedff525e260cfdd2","impliedFormat":1},{"version":"ce886be097e46ba91bbde17587e37286411a42d53e0df0323531773bcac5a948","impliedFormat":1},{"version":"75e80e69dc3522050e21f0625458ca4b3d38476c0d3b26c531fbfe56dc7067e6","impliedFormat":1},{"version":"8415c07976fb8ae1bdae8956100d0766d507134c17af37974f992f6c92843b17","impliedFormat":1},{"version":"7af606112825ab9b1c0cefdf585a07cf6e6a83b245a8712a39cce5e6f37acff9","impliedFormat":1},{"version":"5099265d24eb34694ddfb5a1aa32f082ca2a355650de5cf577577004a32b8996","impliedFormat":1},{"version":"1e53f2acc312979de7d5942b6ddf6067b2e37df59fb7b26c5548936ea3570b3d","impliedFormat":1},{"version":"e26611f896d20f6c3951bb62037c8d51e5fd9cac57ad3f2d464b5c588a1726e6","impliedFormat":1},{"version":"cd96c2b54b35c881134cd317b4eb153c75b2ef98530bf6640f6fb134dbe26bcd","impliedFormat":1},{"version":"73a0ee6395819b063df4b148211985f2e1442945c1a057204cf4cf6281760dc3","affectsGlobalScope":true,"impliedFormat":1},{"version":"d05d8c67116dceafc62e691c47ac89f8f10cf7313cd1b2fb4fe801c2bf1bb1a7","impliedFormat":1},{"version":"3c5bb5207df7095882400323d692957e90ec17323ccff5fd5f29a1ecf3b165d0","impliedFormat":1},{"version":"112dc31db3c5f45551532c2f0ddd2b55c98762c3cb5fd113f7c255825e6e04b2","impliedFormat":1},{"version":"f684f2969931de8fb9a5164f8c8f51aaea4025f4eede98406a17642a605c2842","impliedFormat":1},{"version":"c868f50837eedd81fa9f61bd42de6665f74e7eb7a459135c6a14ac33ddc86798","impliedFormat":1},"5081ab0cf55d7d6d43e9142fd76e25ce81d75966443a54673dfe64b4b3434450",{"version":"04c0273d37084cc00b4a51cdcf88926b6c772ebf6dda2310502f03b6311c62e1","impliedFormat":1},{"version":"3c6a3574a2d4318e23bb109fc1993b04077eea26a4530826d5d0e93abf4b2fb6","impliedFormat":1},{"version":"a542ef329e9c9d1457f7a53aadb62f76994644304da0e29d4a2611db14aa9e32","impliedFormat":1},{"version":"c73a5d2b7e507750952aaac4f49fe38129e08de012763a488706f279d90acd8a","impliedFormat":1},{"version":"0a6b4d69980118f75cbc9f123a1524e570c53427a95628e57920f5d804c7e265","impliedFormat":1},{"version":"ad548e7facb6e2121a5a77195b6787e2d4b523fa311cce4af574f377aa81a1e5","impliedFormat":1},{"version":"37940090929b52f2146c3f99d5e7f7a81fcbd753e803283a8eb9dc1b992a9d6b","impliedFormat":1},{"version":"852e4f16cbbb777546b715458896c577fc61bb14d18cd1e20d300f78ad03bb7d","impliedFormat":1},{"version":"880a40e60d585d4ee5b4b85d73f18841925f5d7da2aab708f179452b361282e7","impliedFormat":1},{"version":"8be3cbac6894227f5bbc1844ca5c7a9b6e731ee74d9f621cfa8b10e486983028","impliedFormat":1},{"version":"314d376df93649a3e0eb760ed3b35334734aca676b1ba2e4260a13850e87c0e1","impliedFormat":1},{"version":"454d449cdbc0ac43dcc6311cf395f57387755d5dff12a73dee62e97d507d012c","impliedFormat":1},{"version":"ad548e7facb6e2121a5a77195b6787e2d4b523fa311cce4af574f377aa81a1e5","impliedFormat":1},{"version":"2bebb30c6d2836c25b97fa2e25ca49a95cc409812293f9e8ad059bcb5b8e5aaa","impliedFormat":1},{"version":"dc842602684e5cc75179b1e5d8c42442cb8d36634ae905063c2650ad10d1b6df","impliedFormat":1},{"version":"957f5bd6c88d7b54ca24c7da719036c7b053b1f9e07baed302f7fec286d3ff09","impliedFormat":1},{"version":"58bafd6a8fe0a139e948aafdf235e71ba5938374b99e41dd2e8560edb7755456","impliedFormat":1},{"version":"b36ea55e46b334ce0c6c684b3b00825b2811453622ae0e5eeb21cfc30f4c07e9","impliedFormat":1},{"version":"4930854ba82076b4102d36d61e2c5ddfcec1a1a91aa1259ce1e001384d849534","impliedFormat":1},{"version":"7af606112825ab9b1c0cefdf585a07cf6e6a83b245a8712a39cce5e6f37acff9","impliedFormat":1},{"version":"07b5ce75200a33767332744ded92fa0bd29b1db2aeccbf947e11d884cccb58c2","impliedFormat":1},{"version":"f09a2a07e5e0f1a38bb5a3e17217134238ebf7f5b10b55833790759cd127e511","impliedFormat":1},{"version":"c53c3cab56910e99897946810e58552d1629b6be6897312bb029aa0fc2c0f2d7","impliedFormat":1},{"version":"5099265d24eb34694ddfb5a1aa32f082ca2a355650de5cf577577004a32b8996","impliedFormat":1},{"version":"f5f57eb93deb0d02882ad3905c7ea6fcac1e648f6ec7eebbc9feef74c59bcbdf","impliedFormat":1},{"version":"048a195485ba6ce1d7ca2663c72bf3903af382417403fc42ed1854fe00fa0bcd","impliedFormat":1},{"version":"bb0945e73aaf16ffc529a290338fdeb793e978cc0bd6da40842254140a6d1acc","impliedFormat":1},{"version":"b75affc4ce9f0a07a352b7cb0a9fc62e22e79826cf3811a496c727fd7883a87c","impliedFormat":1},{"version":"8a87733945d52c0d2a9ed3b9ce970ae1cc028258c81ed5b0726ba9360b5abb0e","impliedFormat":1},{"version":"272ef1b4f9536b2b7c4a2a0b90ef7c8253350441781e415a14cae1630fe92cca","impliedFormat":1},{"version":"156790cdb362896fcd209006370f9a7c0f9565b7a0e0f0adb4e3dc3978879dc7","impliedFormat":1},{"version":"e2e563db7735168190239d4d1e0c22bace8177ab91b2331893f4f6e71353b8a6","impliedFormat":1},{"version":"008de0fff7238fda376a4d199eee76d4ca05147a74a2a5e96b01138f8813cf33","impliedFormat":1},{"version":"0e69e374bfc50e4a49c18ea125546cbac0a6af3c416e0909cad1f977f41e3e6e","impliedFormat":1},{"version":"9927153390e3a2f10eb2a81e2bdeec6ba053b7f333d80e23bda1491594de0506","impliedFormat":1},{"version":"340dd749f515eac71f90d2fd9f1bde8fb88d26ca957a80e6fb77646b058ef72d","impliedFormat":1},{"version":"8e4581a411c3bb42e900126d96c92b907d1de3fa7f0e7a25faec7544b519421e","impliedFormat":1},{"version":"adc9aa77552127083caf26022df72c439cd24f6aca6ec0b5c1b433f992d621f4","impliedFormat":1},{"version":"3a8bceac7be7de81f25a50821a691d6b379089170ffd6449dfc13e8f2546d91d","impliedFormat":1},{"version":"2d81f63262074c4039148669fab020c3864244c133bd99797c6bb34866e189f0","impliedFormat":1},{"version":"63dc8618c2be66becbd38ae59658fc830e040c5f56b44b778a7d120dab338e8f","impliedFormat":1},{"version":"52b9bb401e713639e055c020517927723c7f47cba0f63cefe501a108641be92f","impliedFormat":1},{"version":"cdf08dea54f3e36c9d6683216031c831002c3a917a1a23a8915713f05894444e","impliedFormat":1},{"version":"2f141efc951bdfb3a3d688f2addbd8b89cd710c2b400cfaab137857cfb0c9f4d","impliedFormat":1},{"version":"7a4fc1f118fcddf7864559f52ff761d60b931812c88d11b358420b7857d7f699","impliedFormat":1},{"version":"ae0b8b614a8852c3573eaa9e0d55a51f17035f2a29b96bf5ddb54f3f6c7b22a8","impliedFormat":1},{"version":"78df11bc66bc0503065618804cdcede9620d58cd14fd0d5528eafc81890ae3dd","impliedFormat":1},{"version":"bc15787889c0d796794cf90b7d506a79c945cbee55e811fd539e5c572f395faa","impliedFormat":1},{"version":"e90598f83d30b105937f0cff06ad984eb7e315b0eeecab6a60da3ccbb6bd5b85","impliedFormat":1},{"version":"acd539f7e8a7ddcd9f4a84c50618d3436698b4d9b66d3ac6051175753a0a7e74","impliedFormat":1},{"version":"24cac27e28cfcfa5274ffb4bc086621ddbf2915b7d17194b17f67adea7e5fcdb","impliedFormat":1},{"version":"a4f9879dcd67f9ff73a6840e2438e86773a62a1c04db0ca79bd14cc9a973b8b6","impliedFormat":1},{"version":"acd539f7e8a7ddcd9f4a84c50618d3436698b4d9b66d3ac6051175753a0a7e74","impliedFormat":1},{"version":"3fd1c3b66ce327cdb1deaf36b3c7262c52564857f67a44dc83d022b9160bc358","impliedFormat":1},{"version":"f0d02e581df1a34dbb71b8791ac4e20374d3b70779bfa892a8b7b8cfbafe32a5","impliedFormat":1},{"version":"83db5add102d0fdb8e757ba305db9ab3c1ce778e9e530bcec4b10081f7b6ec2c","impliedFormat":1},{"version":"acd539f7e8a7ddcd9f4a84c50618d3436698b4d9b66d3ac6051175753a0a7e74","impliedFormat":1},{"version":"ab726593ed14a7d87d8fc939d4dc4725062096639243078c40ccbbbfc9e79acd","impliedFormat":1},{"version":"6c5485da911906f2b117a0caff46ea168a6cad3aa5164297855f130606691dc5","impliedFormat":1},{"version":"becdbb9057684fea0b6a6b55678223a66cbd7e922910dd3bac162608a81cadb0","impliedFormat":1},{"version":"6c5485da911906f2b117a0caff46ea168a6cad3aa5164297855f130606691dc5","impliedFormat":1},{"version":"dfa1332c5081beeab9124895ab0107a057426b42d09a80836d4897f3f15afb20","impliedFormat":1},{"version":"b2a754f577802601611077adae1919a8732754212f93faa48b6576b1b01900cf","impliedFormat":1},{"version":"b992befc91b2accaa9ce9b7e6e1c77705fb0b02bcd58d205835513680c2bacd2","impliedFormat":1},{"version":"42a7a6afca7ee3ec111ad04324e6c3cce359cd29b6d1f7e296d8e48ed5a0e032","impliedFormat":1},{"version":"ffa3969c7181e45a8be90e0b7c7c8b7a25897902263206abcae9b6f9026d31fe","impliedFormat":1},{"version":"9b97925334f1a23273f2c42060eb2263d2129debeadb6660f8037d7eef7d6102","impliedFormat":1},{"version":"0f57a1b8a9b3be87e8f0632f8e099e347f3b2f18bc8c95aa3a261c7b24ff914f","impliedFormat":1},{"version":"b12362d2140d0b23e5c82a32e236ddd284670dee6a292b6c4281590f39283558","impliedFormat":1},{"version":"31741b377adc3430399a81424b53275e12e3c60a7c016085c1e6ea956d7d0225","impliedFormat":1},{"version":"e6280500a6633c9b38e602b00f7dfb7376ebd7903d76369520ec44297cbacc43","impliedFormat":1},{"version":"edbc71a92723584210dfc8caaf923c475a1aa799c707e99bb5e77b3d85e97de0","impliedFormat":1},{"version":"fc81262d457cd283e979293a561f3b03ca1384d8f368bfaed2dc9c0fb644b371","impliedFormat":1},{"version":"62182e8cf34e1e96d081036ac83f67c2b4f88ce0a689acb21d4f1b1a91ce6037","impliedFormat":1},{"version":"33cb8e5b0fb34dbfb71c8d407446859eadbb383d658048914612c30e5e91f2ca","impliedFormat":1},{"version":"e9f4836a802b9f0d70c5d593776508bc2fb22c6cc4149eede06ade102264c59f","impliedFormat":1},{"version":"e7c2f1cdcce2baa8490eabbbb8d62caebf0aa227404104702d69021c69037bc7","impliedFormat":1},{"version":"cf9c843491bc75b441a7b844375b485e8f669663cac40ccb9bbe78b0071e37e0","impliedFormat":1},{"version":"ad548e7facb6e2121a5a77195b6787e2d4b523fa311cce4af574f377aa81a1e5","impliedFormat":1},{"version":"9ac40e68a6c5a59afa6c732c451319f1df4871a2b9796a811121a8230fdc835b","impliedFormat":1},{"version":"bd7d66ff7cd39f63b06bcb5f6947b0a62a950a79e8e40407ba8fdd126d9e9c86","impliedFormat":1},{"version":"4e964140adcec3a24264d8ff9bcd3e5e2fdb9cfd419915c7852e1b63ce2d7510","impliedFormat":1},{"version":"d29179044de4b739aa17eb85d03eceb57f3ccdb4aeb0e1d811143a7fec6b07c5","impliedFormat":1},{"version":"1d14e0cb73d0b02dc325042ccdd62008669a5c6fb39181d5ad013856bd8a62f3","impliedFormat":1},{"version":"d367925959f1f6bcfd9029165124c32cbe4d6752a72fe86a9566cbcdef591052","impliedFormat":1},{"version":"3cee1def5702d1d07ec77799a785df11cfd045e577dd35b1f63e9b622cca9df5","impliedFormat":1},{"version":"b78bc6585e4533e3a06caacd36019d9d60578fa9aeb69ae4d280e8f31534f749","impliedFormat":1},{"version":"12ba3c2a248145d6f7ece5e1f7b28bb3cac654d766939d41736016bd11ce92c3","impliedFormat":1},{"version":"cc7cc335a8102b450d2d8cef3c799b1078c7a27a9983ebeaf6c0ddbcb5d37a6d","impliedFormat":1},{"version":"59f27799b0841e285b324a9588f541bf3990aabcd328b4e72e5f8e5ae69df353","impliedFormat":1},{"version":"0291b1ff134617d7439e9e3f9608512eb7b526af1e5d0af5d04dc25d40a0e231","impliedFormat":1},{"version":"af11f6c810c0aec398850f717b4401ba1d49002bd2a7981860325d4e7a365f47","impliedFormat":1},{"version":"eaf2353c1c016b2429d1bd6bed67b8550d48a532561c8f759fdf162dae1a7dc8","impliedFormat":1},{"version":"9bee492cc1c5c1839f45eb216831d776127fe33dc4a72206c332e6497127ab44","impliedFormat":1},{"version":"0e59d39b887ee4f4abf3e6832a0d4d51c77c1fc722aaa42d38a6859c2641c374","impliedFormat":1},{"version":"6c80ea0b48a1adf91e3029c0801395f8befd09aead5e4acaa339e05b2cc46ff7","impliedFormat":1},{"version":"61fa0198cb49e8f163c49d7f4975c9296547ffb29c4782c1960141228cd5fb14","impliedFormat":1},{"version":"edb8c62a4d6fe7f110e4bddbde409a5694431eac042234cc8cb36e356ad0d651","impliedFormat":1},{"version":"a7b2af9c421e25097c38ba24518640c2495998ed62a9727c1a4d7af538c575a1","impliedFormat":1},{"version":"ab6f76767a165c2a69705dc6eab1e47fa841e06678dfc8250f469fb51c00f801","impliedFormat":1},{"version":"8af6519fe35796756fb81c5fe0ff6bc7240bf9804f35cb31d06f58d3491ee0f4","impliedFormat":1},{"version":"7749615bb48f4455aae505e392fc9c444865a53bb96296edc6ebe3473f953950","impliedFormat":1},{"version":"526ecbc643b8b7f4d1614c6831e4c4dd484edb2d80fe11f38bb16cf677bbb415","impliedFormat":1},{"version":"f01229be613acd13643abc3bf4ba191094ece7e1f341de6d9bb27e06f9ebdf78","impliedFormat":1},{"version":"7e64927b2f9941752bc7ca63210ac3888d2b1e4c92c2f8904d6ec4f059eb994a","impliedFormat":1},{"version":"1fbdfc4735bce7d86d131f4138fb843537f25b861b659da943176c5418474239","impliedFormat":1},{"version":"a63cf38c9fcd2a07945cd1c64177949ef0a822ed3f1f4fcfd8e118aefacf3e0d","impliedFormat":1},{"version":"01f8a3ae09ef4cac66e149673523bce95d6b67d06abbb1bf5afd134d6fc31521","impliedFormat":1},"b5d8cdf105a82b753d7c6cdba51e83e3f344db56d1d28b5634b7137b9becfefb","7c16411d21f0bd38097e3b672a6f9cfb071155d112be66f338cf359a2d67d5e5",{"version":"b3d9afe3fb4c469730666bcf944a4427deed99059b1414a0e8152a8743322a52","impliedFormat":1},{"version":"ad548e7facb6e2121a5a77195b6787e2d4b523fa311cce4af574f377aa81a1e5","impliedFormat":1},{"version":"82237ea80272a1560bc5f27225c050a710285aa8b02806629af7a076eceafca3","impliedFormat":1},{"version":"5107b531af10758ee9810ac39605e3e45581cf2dfc6bdbc9045776a3e7bacbf5","impliedFormat":1},{"version":"22740c1cd9146fb00875ec1386f019716359be477bdb2d4d349e0dbab6748bc0","impliedFormat":1},{"version":"453eb154fc694bce16cf06d52e4b5df4cf4e8639d56b7a0a865cbf6fec230437","impliedFormat":1},{"version":"5099265d24eb34694ddfb5a1aa32f082ca2a355650de5cf577577004a32b8996","impliedFormat":1},{"version":"07b5ce75200a33767332744ded92fa0bd29b1db2aeccbf947e11d884cccb58c2","impliedFormat":1},{"version":"ebacf1295b5043a4fb41f216ab2a31278445ea63a8656dfa52a7947238a4a883","impliedFormat":1},{"version":"ffc4d1e4409a83091bc7ecee7c7565d8716bd826692fef8ad1021c16a6cc44ea","impliedFormat":1},{"version":"27a64b0ec99ba7a4785727dd7d697f4e04a1a9d85fe09a1fc0529891df2d29b5","impliedFormat":1},{"version":"a308fbfc6782175c09a860605c8f6895b288753b04523861ff89707570031638","impliedFormat":1},{"version":"3d756f252d4160032aa5244d46ca0beb5877dab81111e9be41b62d6605b55c84","impliedFormat":1},{"version":"c1db5dbe990939c911f3e7b38148aa3ebf6b6615fec7f9ea0986c0e72d3b0ae5","impliedFormat":1},{"version":"8f8947fd73d1f57de375a4bd5ec9b1c426d95a068b63dd7f858582e53f99abb9","impliedFormat":1},{"version":"248bc91a7dba92c21b4c183ce58e61f9d7641375299950be9e6b1a683403db9c","impliedFormat":1},{"version":"8a8a10553e26c96bdf1963f65d7d22f47fe309b7ae0a7e6cf1a4aa21acd8529b","impliedFormat":1},{"version":"279806957b8bccba302cfa37fc5b5d5b837b2bf026d3f14ddb5716a9f6358093","impliedFormat":1},{"version":"f1b369588ebce9cf67e91689c2c36415a1026accdff1ac49a68f3df67e5250cc","impliedFormat":1},{"version":"47163302c8d413a29ca8a3aef6d215c57cfc23e42c30e63d4ea8b7c9fd981ba8","impliedFormat":1},{"version":"8f0a1cef0dab107582093243d57573d05dfa712b2273435b4d52e331ef4d198b","impliedFormat":1},{"version":"bb50a5c7c1de6de023600337e5e7971b7419a728e562f29727c4001ed7e46ef4","impliedFormat":1},{"version":"5ebe263857a2a1aa7a5c6c9b515a046d65671512363d75ccb9ab280a53de1d90","impliedFormat":1},{"version":"ad548e7facb6e2121a5a77195b6787e2d4b523fa311cce4af574f377aa81a1e5","impliedFormat":1},{"version":"93fc22742e67217bf8a24d0af2492c6e3bd48db7ed5ae174d1ab0523c199430f","impliedFormat":1},{"version":"f0d02e581df1a34dbb71b8791ac4e20374d3b70779bfa892a8b7b8cfbafe32a5","impliedFormat":1},{"version":"7527edae9ba041c7d079950652a7f388aad252d7f3148effb95c444d91ff3d08","impliedFormat":1},{"version":"d295d3bb3f2ef8cfab66a97a694368e5e65f9030d4b73998e8090895b8e79bff","impliedFormat":1},{"version":"45be440c48dcb76f1be8549cf8117b581ef3059c3f7623cb46101ad07f6da69e","impliedFormat":1},{"version":"454d449cdbc0ac43dcc6311cf395f57387755d5dff12a73dee62e97d507d012c","impliedFormat":1},{"version":"7af606112825ab9b1c0cefdf585a07cf6e6a83b245a8712a39cce5e6f37acff9","impliedFormat":1},{"version":"5099265d24eb34694ddfb5a1aa32f082ca2a355650de5cf577577004a32b8996","impliedFormat":1},{"version":"bc105ca4ccc20645078af2b6b7bfb9efd710559c517402d35601553e744c445f","impliedFormat":1},{"version":"4e0a428b9c465114c655d9b25aec9d0c5e0396d9f00f15ea5eacebd5fbe7db7e","impliedFormat":1},{"version":"aa33137ed9f66851c7aaaac54dd2bf9e7cd3f023ee468c4d7c7d6e1f0b08546f","impliedFormat":1},{"version":"9b2d18639443b2cbd8582a2e7aac67eb4eedd32afcda12aef857649e8580dde9","impliedFormat":1},{"version":"8819d222f4840ffd941df916ac59607bdb4ad625aa927741c41fd07b9c513773","impliedFormat":1},{"version":"2e659e87cebb4d7fc2d876711e06461a62b8b256caaa1873bfd2418dbc3ffc4e","impliedFormat":1},{"version":"9c5174d9445a8918be17d643204460afe2676cc72a81029865f7fb654014fbc4","impliedFormat":1},{"version":"9674641088b658c86fdc0de3df76fa53e9f67eeb0edc323cf1fc24238304f74d","impliedFormat":1},{"version":"ef547f87482c2f7ec3794f17c25e89f5eb487905005d549c7ca23450d319322e","impliedFormat":1},{"version":"b2fd1028a98aeaa762514f37e24b4df8c7be73e34270484c6f192757bcc1898d","impliedFormat":1},{"version":"8c2453bbd79b7184c9e74b74bd3feb6377529bdf408cb2b740a5998c3b6c9577","impliedFormat":1},{"version":"a07b06e7f7d862f5923a989a4c3da9b1b2ff038d7c4dcc5eedff525e260cfdd2","impliedFormat":1},{"version":"ce886be097e46ba91bbde17587e37286411a42d53e0df0323531773bcac5a948","impliedFormat":1},{"version":"75e80e69dc3522050e21f0625458ca4b3d38476c0d3b26c531fbfe56dc7067e6","impliedFormat":1},{"version":"098ff9c2dfb667cb246d175fbdeb48e3a6db40d7a12dda025fe6a3dd40101429","impliedFormat":1},{"version":"47c64ccf4cb14a4aa8ed3c887821805bcfc037b393f345f35fb45af3daf68100","impliedFormat":1},{"version":"9922160d60ab5c43ed65dfa446b12f2f7db795be8ee0690c7802b2e254b08e46","impliedFormat":1},{"version":"1883943486b5d273dd2b0b2c055a24850ad0a46f1223ed8b6af5dbdc16758561","impliedFormat":1},{"version":"79c164aa4f8a8418df7717206ea52508f72743224a6b9c705f10724c6dbb5548","impliedFormat":1},{"version":"caa2f926a71f9c5ef3debf83a7394486a989da4137567bdc5f1245fd2b27c183","impliedFormat":1},{"version":"a4cc6642dbac0940ba3d598e7dfa725966e62e2fccaffb0cc4c3500282cb02fb","impliedFormat":1},{"version":"8645296e05213c756446da531f1c636e25321042de5146a053d7b7f131962bc2","impliedFormat":1},{"version":"502cf56784c536d8ae77460a6cdfa2109b5174b76362cfd2af44be1276defde3","impliedFormat":1},{"version":"79b15f48d0a5bb5bc8f6c6d24e85a2436d9fb2d821f96df20a0f14f22d26af04","impliedFormat":1},{"version":"4d7a84192199fcca1d034c52ba04afaaf1846e5d1757d051a8df153b9f8060ee","impliedFormat":1},{"version":"a4571ad82d9be612b057631489b82bf21c9ba2c62a54a95fbf54084d74c91a84","impliedFormat":1},"ef0c4f36320d52926407c8c0520f394fe2e718c5ff54ccaa66c1fd7ac28cef54","f442f06eed98cae4059c44f04509c64e21cd9ddc1a0628b5f38a07ef7bbbc9aa",{"version":"ad548e7facb6e2121a5a77195b6787e2d4b523fa311cce4af574f377aa81a1e5","impliedFormat":1},{"version":"37e84f3af202cdeb5b77b0f6118979533a0b4031bb2219d61f074b559828e0d6","impliedFormat":1},{"version":"ab726593ed14a7d87d8fc939d4dc4725062096639243078c40ccbbbfc9e79acd","impliedFormat":1},{"version":"7dbcfd27bc61f487d04f3853ffa48e36c1d9df603672a643b5764d66ab7ad5a0","impliedFormat":1},{"version":"75e80e69dc3522050e21f0625458ca4b3d38476c0d3b26c531fbfe56dc7067e6","impliedFormat":1},{"version":"b3d76176fae623c1065c63809fb4ccf192db09e8c077bcd4ca2fc989531079e0","impliedFormat":1},{"version":"afeaa8ec55d16ae5a7afac418d3ef6f5d4e105c4da15cb2ebc12cb3c59354217","impliedFormat":1},{"version":"dd5bc6a52f8c1f44edf4e39af7318c187afc0427d26c673a77f6c5da036a59d7","impliedFormat":1},{"version":"c46c0c8d495e9efc7292b5cee631315ad64a1e53d801e2e4062b5842f62669e1","impliedFormat":1},{"version":"eb39f303c77ff2c07dd67c1492cf99af2f7918ab7a54444d0bbafd32c495946d","impliedFormat":1},{"version":"454d449cdbc0ac43dcc6311cf395f57387755d5dff12a73dee62e97d507d012c","impliedFormat":1},{"version":"2bebb30c6d2836c25b97fa2e25ca49a95cc409812293f9e8ad059bcb5b8e5aaa","impliedFormat":1},{"version":"dc842602684e5cc75179b1e5d8c42442cb8d36634ae905063c2650ad10d1b6df","impliedFormat":1},{"version":"957f5bd6c88d7b54ca24c7da719036c7b053b1f9e07baed302f7fec286d3ff09","impliedFormat":1},{"version":"58bafd6a8fe0a139e948aafdf235e71ba5938374b99e41dd2e8560edb7755456","impliedFormat":1},{"version":"1c7ae013506830e742494592ada692a47f02a0645f714c94351794d805d19522","impliedFormat":1},{"version":"a9cdbb550ad24d0ad0df00f2488d0761d8786107dc7f06a63dfff6bf9a387a90","impliedFormat":1},{"version":"bbecd17fc99ee91639d788ff40d686324f38b2c1c6bf87eb7e72fed2a4fac4e2","impliedFormat":1},{"version":"8f7396f48c661d0863ab8ed227cd13f66c26dc0cbc7affeea7a73ece8d8c1d73","impliedFormat":1},{"version":"7af606112825ab9b1c0cefdf585a07cf6e6a83b245a8712a39cce5e6f37acff9","impliedFormat":1},{"version":"07b5ce75200a33767332744ded92fa0bd29b1db2aeccbf947e11d884cccb58c2","impliedFormat":1},{"version":"ad548e7facb6e2121a5a77195b6787e2d4b523fa311cce4af574f377aa81a1e5","impliedFormat":1},{"version":"c53c3cab56910e99897946810e58552d1629b6be6897312bb029aa0fc2c0f2d7","impliedFormat":1},{"version":"5099265d24eb34694ddfb5a1aa32f082ca2a355650de5cf577577004a32b8996","impliedFormat":1},{"version":"75e80e69dc3522050e21f0625458ca4b3d38476c0d3b26c531fbfe56dc7067e6","impliedFormat":1},{"version":"f5f57eb93deb0d02882ad3905c7ea6fcac1e648f6ec7eebbc9feef74c59bcbdf","impliedFormat":1},{"version":"048a195485ba6ce1d7ca2663c72bf3903af382417403fc42ed1854fe00fa0bcd","impliedFormat":1},{"version":"bb0945e73aaf16ffc529a290338fdeb793e978cc0bd6da40842254140a6d1acc","impliedFormat":1},{"version":"b75affc4ce9f0a07a352b7cb0a9fc62e22e79826cf3811a496c727fd7883a87c","impliedFormat":1},{"version":"8a87733945d52c0d2a9ed3b9ce970ae1cc028258c81ed5b0726ba9360b5abb0e","impliedFormat":1},{"version":"272ef1b4f9536b2b7c4a2a0b90ef7c8253350441781e415a14cae1630fe92cca","impliedFormat":1},{"version":"156790cdb362896fcd209006370f9a7c0f9565b7a0e0f0adb4e3dc3978879dc7","impliedFormat":1},{"version":"e2e563db7735168190239d4d1e0c22bace8177ab91b2331893f4f6e71353b8a6","impliedFormat":1},{"version":"ad548e7facb6e2121a5a77195b6787e2d4b523fa311cce4af574f377aa81a1e5","impliedFormat":1},{"version":"adc9aa77552127083caf26022df72c439cd24f6aca6ec0b5c1b433f992d621f4","impliedFormat":1},{"version":"3a8bceac7be7de81f25a50821a691d6b379089170ffd6449dfc13e8f2546d91d","impliedFormat":1},{"version":"2d81f63262074c4039148669fab020c3864244c133bd99797c6bb34866e189f0","impliedFormat":1},{"version":"63dc8618c2be66becbd38ae59658fc830e040c5f56b44b778a7d120dab338e8f","impliedFormat":1},{"version":"52b9bb401e713639e055c020517927723c7f47cba0f63cefe501a108641be92f","impliedFormat":1},{"version":"7387baa213a017c1497d9f27ed8ebe8e2c8a2128f9a08987938870d3e62715f7","impliedFormat":1},{"version":"6defdc10186b1f237520553ec43f0f6ab602bf178af60ed6ec121b64dfad3165","impliedFormat":1},{"version":"79dee20f7a368571fb1625eb7c9fd1a93d07d85e8cbf6720387c767e34feeaa7","impliedFormat":1},{"version":"6744a2208ec5beba57993116086e40b0b990f8e9ff5a2ad2f72048c9516bcdb4","impliedFormat":1},{"version":"5c4ed9b6e28a9a2187c8e111ffa385dbd76509c643ac32bd9a9293755b107f2c","impliedFormat":1},{"version":"24eec9ded2f478c7dfcee1b79a650e469a43573865bc0aa64bcf659aa69ab419","impliedFormat":1},{"version":"687c5e49d82a18656a8c960847903d4e8e1cca8c1e817bc0566e997aa0b6c4b2","impliedFormat":1},{"version":"efd0a218052da30cc69f16b1484dbba6c3ad8901b18fb152dbb2296401c0c674","impliedFormat":1},{"version":"7cff7f902ceea855751cf29c4469a1bb549a44898e1b932b5fe41c736dca2b22","impliedFormat":1},{"version":"7f8700a8ab44c97d64e2c812ff30156d7ead06e65deff11f4d6771e5bb91c7fb","impliedFormat":1},{"version":"cb21ff3729a0e2543f0263bce513a02d71493156f7d941dd350611c4fbe280d1","impliedFormat":1},{"version":"f7e9bc00423f82207b117d5bae14c69ffc3055cb6a2c763884c6017991c4c4bc","impliedFormat":1},{"version":"0ad450d4818f72889d195d73d723b371bca1857516389e665d5c89cee509fb3f","impliedFormat":1},{"version":"f7cc6a5991d4599202e463170ad91270ba70ebf06f35d59a7ca448a04ffb5536","signature":"23ef6f5e8506d0213f594c91331364d98032c16dc226ed98ef342fe2dda7c748"},"98d226254e7a190dbadc470c46836ad29e5c6e29d5010b00d706b431ccc8aaa4","ded0cc1a4a01440bceebfbe9a45d8a17499302bd509241c222121d06e26b512d",{"version":"b00bdf9700c1dddd7d43b7cd8eead2359802e819a28508533dc3200374d65c63","signature":"ec3fe927719c9e5d79175649367d898e795d0970420da1198a5c2f25a98663d2"},"ab1c32e669dcf04afeb7618fe7c8ca0297e910217af34dcfcb739e0d9defb159","7c6e35a15a01d7364272ad283194429779bb13733a11b91505b180a79d750763",{"version":"d30e67059f5c545c5f8f0cc328a36d2e03b8c4a091b4301bc1d6afb2b1491a3a","impliedFormat":1},{"version":"a356d9a0ba90d10ec6c0fa33386c0b0e2843fd6f0a49513c44f7809926ac25ff","impliedFormat":1},{"version":"c27f6293397e2ea1131b49a4d3a6f9bca9c8023b9d1ddef0f677c61386fa1728","impliedFormat":1},{"version":"7801552e6061ac1bca0e501aaa8c5cf7a505369e7bcb94dcd0ae39b2ef3396c5","signature":"4862a7e84c90c468cbf99ecad159c1c665d4442e8877d5ab605e2d5e73cc9164"},{"version":"2fb7664d693fff5538799736e7ba14806bcb59d3da01282e7a46eed0ca2ccf28","impliedFormat":1},{"version":"2fb7664d693fff5538799736e7ba14806bcb59d3da01282e7a46eed0ca2ccf28","impliedFormat":1},{"version":"71abc213c1526405c4255b770c0ad236782831eb766463c61bf0017caf21ab84","impliedFormat":1},{"version":"6b1b24b38be79c8c03926f551c1f8fd823609ef6d6d28efe883a67a5c5a53313","impliedFormat":1},{"version":"2cf16ac871b86d06c96769190aeeaacc526c42a55506231465dce5a725b4234f","impliedFormat":1},{"version":"ad548e7facb6e2121a5a77195b6787e2d4b523fa311cce4af574f377aa81a1e5","impliedFormat":1},{"version":"1487f7f63e7e523194cda57c8f160cbe85edd82d6e0120b249254e80b9166977","impliedFormat":1},{"version":"4e47a5885ec9b4e2839842f10cf0ed5415afeb3de3812bae892c0717429a106b","impliedFormat":1},{"version":"99e1d7e8d0563f7f326a664dd59b0ba1ddb0bae6524b33565722973bc143596f","impliedFormat":1},{"version":"e3628eb951cffb3f968a6753c10aa750560067e6cf5c712f6891d76e5b907dad","impliedFormat":1},{"version":"209fb7cd9bd845a55f7fcf357055c60616ca321f0189617eeae36c59f3ea4783","impliedFormat":1},{"version":"554850fa6d1e99e993db216c5a4059126ee19cbe0493445c4b05837adce4acb2","impliedFormat":1},{"version":"f60f47644f301f17304460d1306603550148c4be66d6952a0fe9652e9f1e5e36","impliedFormat":1},{"version":"99b31e4feffbf0aa5229dff521f341347118439ae54df77b2e3f247416424c52","impliedFormat":1},{"version":"2fb7664d693fff5538799736e7ba14806bcb59d3da01282e7a46eed0ca2ccf28","impliedFormat":1},{"version":"86b422a183d50de6121fcbca4efcbd2fa51b9df29752ed0c853fb016946fa9f2","impliedFormat":1},{"version":"ad548e7facb6e2121a5a77195b6787e2d4b523fa311cce4af574f377aa81a1e5","impliedFormat":1},{"version":"a4d7d8bea8914c991c5b851f6b115c97d622319fc29844896ff4ef3511f6adde","impliedFormat":1},{"version":"4ac4d56bea0883286747f1aa9b3b23d39de1bcc5821902b530e8f08361243708","impliedFormat":1},{"version":"231e9919b7344498fd01afa33c319431b553c352b06c2b91ea4ad725aa16d50c","impliedFormat":1},{"version":"fbf195a7850590e0bf004f03d01cd7e1096733f25cb44f9d123847ceec721327","impliedFormat":1},{"version":"7ed2bf2acbc9170c91936fcccd03a74bdcf276575765a264fede35d6c66430dd","impliedFormat":1},{"version":"b96bfe833c4bbc6e4e690b13712e3cf170ac789fda618c707ea8b17781f54451","impliedFormat":1},{"version":"af53b1fe0928927fb71a0d93253468a7b0058b42655f47261fbc748c6b4eb011","impliedFormat":1},{"version":"ee0040057583aa47eef8a2fdc04a039f65bfb1c6fcf61368c9996dba6030a996","impliedFormat":1},{"version":"762c4fbd36bd10bb5cee2fe37db4bf37f03e3aed0f5512677de3e08488aa840c","impliedFormat":1},{"version":"129f1ea1e5c52af6ac78ec92952581a93a383757aa966631492db0fa35a16965","impliedFormat":1},{"version":"e2e563db7735168190239d4d1e0c22bace8177ab91b2331893f4f6e71353b8a6","impliedFormat":1},{"version":"8c64f6b2b7f51e435be7e159370ef2a6ed343059bba7fe895c7cc1bbea508383","impliedFormat":1},{"version":"ad548e7facb6e2121a5a77195b6787e2d4b523fa311cce4af574f377aa81a1e5","impliedFormat":1},{"version":"0becae75d7268285462c4545a180122eca5bc4f58e61ab4f4d59c8f6d1a89482","impliedFormat":1},{"version":"519738d5c1d552b1f440cfac360f48c98d7906cc531d033d19616cf1e4fb68fe","impliedFormat":1},{"version":"0f6badc263cf8fc8aee8b95b67b70135f08191fff8bcab0af43b4e154c55958f","impliedFormat":1},{"version":"edc03ac1ed81a45b0571ae66d0aa5260bf2f92a93527b97642018385d556b1ec","impliedFormat":1},{"version":"161849d5ef498c224bde5e3820a41bd0383c82bdc41264cb6a88c30445bcc993","impliedFormat":1},{"version":"c30b424f9373b75c0d00b23a72228be68a3ae32e3b090eb36b70ec7acb03f122","impliedFormat":1},{"version":"995b55c705ca2d0b276c41d082cd73a2ed9a2bcfd88575ed895803139d3e2a4a","impliedFormat":1},{"version":"1cc9213cde6f9dc3a7401356c5aae1574af0a88caccc7a94227962a82622a33e","impliedFormat":1},{"version":"126c84b38fb99188436b4c61e4cc5d8008247f687f9ddb5517358f2128c938d6","impliedFormat":99},{"version":"1f3952b74b8c766a2e602a0ba2db19d3d872d00bab4e01746c6b7229c585086c","impliedFormat":99},"a59e274aec33527e3e3adad299bc6e3d059b97546ef1bad38c5b321a1c611b60",{"version":"ca0d06d9ce5e44e6adf052226d38f2cd7b72f394c9c13d7f56d4f6555dfb1754","signature":"38991078c1656716d6c28139eec79d15c8600b196c1d7bd30ab1d73632ee4307"},"9cce9e7a7b56f721230aa68be086e0b363667d576541c3563dc8b156d491d7ad",{"version":"64dbbf5acbd33b3843c7b97ceba1264da1a4e8513e8edd73cba2d23896340d12","impliedFormat":1},{"version":"a3adedfceeddf1968fd3f25756c93fc76282c66ca50018fad852871129fea18f","impliedFormat":1},{"version":"8b80b3445c0cae9ddc0e4a5062405ae139a3eeec0ab7d74e0fe28b0d30294f20","impliedFormat":1},{"version":"d8e153f23bf09a250331f67e17d6ee98945fbb2122981dd2b58d3c7f9b7f3dd5","impliedFormat":1},{"version":"2ab3aaa79597ca08186602a7ee9d65a5d7e1b1f9ad6b3f59c99d90b0eb1a6bdf","impliedFormat":1},{"version":"be0dab7484158f0b44ef70997edc7143f6103375b5bf714f936f0f73054b70e3","impliedFormat":1},{"version":"19f5f2cf6c675a9eb6256f322a987039dc10e2aab87926d90dd6dfb29e6caa5c","impliedFormat":1},{"version":"43e71d80e5448dbd0a5e079181b36680f9590a249a4e9f3d7cf031ebb4fc006e","impliedFormat":1},{"version":"098bb7742b325dfb7844d5e34972f20cbf718dd3ccaa1b23ac35f7473ba9a402","impliedFormat":1},{"version":"c626183c0313836382036f2d3dc2115bd686db5209b9c7ddc574905dbf87c778","impliedFormat":1},{"version":"284f462aeda25ea28c42b31314e1276086020a124ba8861eafb39aff652b05ce","impliedFormat":1},{"version":"b1bde55bc31a7028da6f4dd62404b4720c5221e75ca6584f982dc4f3fce42bd3","impliedFormat":1},"044c4ade8f210679f7f7944f68f7dcf7bd5aed9f7807763d5b7d81cfd2613742",{"version":"6c05d0fcee91437571513c404e62396ee798ff37a2d8bef2104accdc79deb9c0","impliedFormat":1},"d34f06e044e1610aa210445a8b319baeb8cece3010fcc07cb9b1cf00a0747dd6","bd21ea86bb5783d5f119a2d8df1cf412f0877c5a3c4c0d4c458689c2ff015322",{"version":"a0185db1bc40b5fdd464c3c06f7705065706ead39a02360e362a7a909f35cbca","signature":"cde8c57cf796fc88faa8ed92f02bb868c64100eb22c6bcf935487bd8eeb1ed08"},"e974c948a40252d3275b1647d8f352048fbb076fc7b723630c1a7711b11db7ae","ee7ea98a46a114a335e6040a8a465b28df5b8ce5f81fa9e9e3573d7d391a63f9","9d50b7c111d79034835a2470c55452b48db73f903f111ba437f3ddc78d904299","d1986184a09a52db8228cb2bb2a61a8c05c9354e5b93cec8e2628d8579c892d7","0331c5f625b9a166864027fd40d1e8068056f7b35d1a2fa59c4bc8d343d636a2",{"version":"151ff381ef9ff8da2da9b9663ebf657eac35c4c9a19183420c05728f31a6761d","impliedFormat":1},{"version":"f3d8c757e148ad968f0d98697987db363070abada5f503da3c06aefd9d4248c1","impliedFormat":1},{"version":"96d14f21b7652903852eef49379d04dbda28c16ed36468f8c9fa08f7c14c9538","impliedFormat":1},{"version":"c42ecf894650dde0dec9e98d2a7852793d50208e2906cb9d17981672c7928986","impliedFormat":1}],"root":[545,546,610,[622,624],[635,638],[769,788],837,946,947,1006,1007,[1060,1065],1069,[1110,1112],1125,[1127,1134]],"options":{"allowJs":true,"esModuleInterop":true,"jsx":4,"module":99,"skipLibCheck":true,"strict":false,"target":4},"referencedMap":[[1133,1],[545,2],[1134,3],[1112,4],[1128,5],[1131,6],[1132,7],[1129,8],[1127,9],[837,10],[1125,11],[946,12],[624,10],[1006,13],[1130,14],[947,15],[1062,16],[635,17],[1060,18],[1061,19],[636,20],[637,21],[1063,22],[1069,23],[1007,24],[1064,25],[1065,26],[769,27],[638,28],[770,29],[1111,30],[1110,31],[610,32],[622,33],[771,28],[772,28],[546,34],[700,35],[662,2],[663,2],[664,2],[665,2],[666,2],[667,2],[668,2],[669,2],[670,2],[671,2],[672,2],[677,36],[678,37],[679,36],[680,36],[681,2],[683,37],[684,36],[685,36],[686,36],[687,36],[688,36],[689,37],[690,37],[691,36],[692,36],[693,37],[694,37],[695,36],[696,36],[682,36],[697,2],[698,2],[707,35],[706,35],[701,2],[708,38],[674,2],[702,2],[703,39],[704,39],[676,40],[675,41],[705,42],[699,2],[713,43],[716,44],[715,43],[714,45],[712,46],[709,2],[711,47],[710,48],[817,49],[818,49],[819,50],[824,51],[822,2],[820,2],[821,52],[803,53],[823,2],[807,54],[808,55],[805,53],[806,56],[815,2],[816,57],[813,58],[814,59],[812,2],[811,60],[810,61],[809,62],[802,63],[1058,64],[1059,65],[1057,66],[1055,67],[1054,67],[1052,68],[1056,69],[1053,70],[1051,71],[1046,72],[1044,73],[1045,73],[1043,74],[1041,75],[1042,76],[1118,77],[1116,77],[1117,28],[1114,78],[1119,79],[1115,80],[1113,81],[797,82],[795,82],[793,83],[798,84],[794,85],[792,71],[796,63],[1090,86],[1095,87],[1092,88],[1096,89],[1094,90],[1089,91],[1091,92],[1093,92],[1084,2],[1088,62],[1086,63],[767,93],[765,94],[764,93],[766,93],[763,94],[768,95],[762,96],[750,62],[732,97],[735,2],[731,53],[728,98],[734,99],[742,63],[729,98],[741,2],[738,98],[740,2],[739,2],[737,98],[733,98],[730,53],[736,100],[921,101],[920,101],[922,102],[901,103],[923,104],[919,105],[900,106],[906,107],[909,2],[905,108],[902,98],[908,109],[916,75],[903,98],[915,2],[912,98],[914,2],[913,2],[911,98],[907,98],[904,108],[910,110],[800,111],[801,112],[799,113],[1081,114],[1076,115],[1082,116],[1078,117],[1083,118],[1080,119],[1077,120],[1079,121],[1071,2],[1075,63],[1103,122],[1104,123],[1106,124],[1107,125],[1100,126],[1102,127],[1105,128],[1097,129],[1070,2],[1098,60],[1099,63],[853,130],[854,131],[852,132],[851,53],[849,55],[850,63],[873,133],[872,28],[871,134],[874,135],[870,136],[867,137],[869,129],[866,138],[868,139],[865,140],[864,137],[862,141],[863,142],[861,61],[858,143],[857,62],[951,144],[952,145],[953,146],[950,76],[949,75],[879,147],[877,148],[878,148],[876,149],[1124,150],[1123,28],[1122,151],[1121,152],[1013,153],[1023,154],[1024,155],[1015,156],[1017,157],[1014,158],[1016,159],[1012,160],[1021,161],[1022,162],[1020,163],[1019,108],[1018,164],[1008,75],[844,165],[855,166],[856,167],[846,168],[848,169],[845,170],[847,171],[843,63],[966,172],[960,93],[958,138],[965,173],[961,93],[959,174],[957,175],[956,176],[954,61],[955,143],[886,177],[885,93],[884,178],[882,179],[883,180],[881,181],[1038,182],[1040,183],[1037,184],[1039,185],[1036,140],[1035,182],[1033,186],[1034,187],[1032,160],[1030,188],[1031,189],[1028,190],[1027,76],[1029,75],[755,98],[757,2],[756,191],[758,98],[759,192],[751,98],[753,2],[754,193],[761,194],[752,98],[760,2],[749,195],[748,196],[743,193],[1050,197],[1049,198],[1048,199],[927,2],[928,2],[934,2],[936,2],[931,2],[932,2],[933,2],[929,2],[938,98],[937,2],[930,2],[935,2],[926,2],[939,200],[656,201],[657,202],[654,191],[655,203],[726,2],[727,204],[724,205],[725,206],[723,2],[940,207],[941,208],[942,208],[943,208],[944,208],[945,209],[925,210],[924,211],[996,212],[997,213],[995,214],[994,215],[986,216],[987,216],[988,217],[993,160],[991,2],[989,2],[990,218],[972,108],[992,2],[984,2],[985,219],[982,220],[983,221],[981,2],[976,222],[977,164],[974,108],[975,223],[980,224],[979,189],[973,76],[978,76],[971,75],[602,2],[604,225],[603,226],[601,2],[567,227],[590,227],[586,227],[551,227],[562,227],[585,227],[555,227],[587,227],[552,227],[563,227],[561,227],[558,227],[588,227],[589,228],[577,227],[591,227],[556,227],[571,228],[592,227],[572,227],[569,227],[570,227],[578,227],[553,227],[582,228],[573,227],[574,227],[593,227],[565,227],[559,227],[568,227],[564,227],[583,227],[581,227],[580,227],[584,227],[560,227],[576,227],[557,227],[575,227],[579,227],[594,227],[566,227],[554,228],[607,229],[609,230],[606,229],[605,226],[595,2],[600,227],[599,231],[608,227],[598,2],[596,227],[597,2],[830,232],[829,233],[828,234],[827,61],[826,62],[791,235],[790,62],[789,63],[1047,2],[962,2],[964,236],[963,62],[880,2],[720,2],[718,237],[721,2],[719,2],[392,2],[1087,238],[1101,239],[860,240],[897,241],[895,242],[896,193],[894,191],[722,243],[1011,244],[1010,242],[842,245],[661,246],[899,247],[970,248],[1085,249],[918,250],[804,193],[1026,251],[1074,252],[917,193],[891,253],[890,191],[967,242],[841,254],[660,255],[839,191],[893,256],[892,193],[969,257],[840,242],[889,191],[659,193],[1072,258],[898,193],[1025,191],[1073,259],[859,260],[948,193],[887,191],[1120,193],[1009,193],[838,260],[658,193],[643,261],[646,2],[642,191],[639,98],[645,262],[653,263],[640,98],[652,2],[649,98],[651,2],[650,2],[648,98],[644,98],[641,191],[647,264],[888,265],[968,193],[875,193],[825,260],[1135,2],[1066,2],[1136,2],[1137,2],[1068,266],[1067,267],[153,268],[154,268],[155,269],[94,270],[156,271],[157,272],[158,273],[92,2],[159,274],[160,275],[161,276],[162,277],[163,278],[164,279],[165,279],[166,280],[167,281],[168,282],[169,283],[95,2],[93,2],[170,284],[171,285],[172,286],[212,287],[173,288],[174,289],[175,288],[176,290],[177,291],[178,292],[179,293],[180,293],[181,293],[182,294],[183,295],[184,296],[185,297],[186,298],[187,299],[188,299],[189,300],[190,2],[191,2],[192,301],[193,302],[194,301],[195,303],[196,304],[197,305],[198,306],[199,307],[200,308],[201,309],[202,310],[203,311],[204,312],[205,313],[206,314],[207,315],[208,316],[209,317],[96,288],[97,2],[98,318],[99,319],[100,2],[101,320],[102,2],[144,321],[145,322],[146,323],[147,323],[148,324],[149,2],[150,271],[151,325],[152,322],[210,326],[211,327],[1138,2],[213,328],[475,2],[214,329],[83,2],[85,330],[474,98],[244,98],[998,2],[1002,331],[1000,332],[1003,333],[1004,334],[1001,2],[999,335],[1005,336],[84,2],[833,337],[832,338],[831,2],[834,339],[835,340],[836,341],[673,2],[1109,342],[1108,2],[746,343],[747,344],[616,345],[615,346],[614,347],[611,2],[612,348],[613,349],[717,350],[745,351],[744,2],[1126,98],[497,352],[502,1],[509,353],[492,354],[248,2],[256,355],[396,356],[399,357],[371,2],[384,358],[391,359],[273,2],[373,2],[254,2],[370,360],[416,361],[255,2],[246,362],[398,363],[400,364],[401,365],[472,366],[365,367],[318,368],[378,369],[379,370],[377,371],[376,2],[372,372],[397,373],[257,374],[442,2],[443,375],[284,376],[258,377],[285,376],[321,376],[224,376],[394,378],[393,2],[383,379],[487,2],[233,2],[508,380],[450,381],[451,382],[447,383],[526,2],[348,2],[452,19],[448,384],[531,385],[530,386],[525,2],[299,2],[351,387],[350,2],[524,388],[449,98],[304,389],[311,390],[313,391],[303,2],[308,392],[310,393],[312,394],[307,395],[305,2],[309,396],[527,2],[523,2],[529,397],[528,2],[302,398],[518,399],[521,400],[292,401],[291,402],[290,403],[534,98],[289,404],[278,2],[536,2],[537,98],[538,405],[216,2],[380,406],[381,407],[382,408],[220,2],[385,2],[240,409],[215,2],[464,98],[222,410],[463,411],[462,412],[453,2],[454,2],[461,2],[456,2],[459,413],[455,2],[457,414],[460,415],[458,414],[253,2],[250,2],[251,376],[405,2],[410,416],[411,417],[409,418],[407,419],[408,420],[403,2],[470,19],[245,19],[496,421],[503,422],[507,423],[339,424],[338,2],[333,2],[483,425],[491,426],[366,427],[367,428],[445,429],[355,2],[468,430],[343,98],[360,431],[471,432],[356,2],[359,433],[357,2],[469,434],[466,435],[465,2],[467,2],[363,2],[441,436],[228,437],[341,438],[345,439],[361,440],[364,441],[353,442],[346,443],[490,444],[419,445],[337,446],[225,447],[489,448],[221,449],[412,450],[404,2],[413,451],[430,452],[402,2],[429,453],[91,2],[424,454],[249,2],[444,455],[420,2],[234,2],[236,2],[375,2],[428,456],[252,2],[276,457],[362,458],[282,459],[342,2],[427,2],[406,2],[432,460],[433,461],[374,2],[435,462],[437,463],[436,464],[386,2],[426,447],[439,465],[336,466],[425,467],[431,468],[261,2],[265,2],[264,2],[263,2],[268,2],[262,2],[271,2],[270,2],[267,2],[266,2],[269,2],[272,469],[260,2],[328,470],[327,2],[332,471],[329,472],[331,473],[334,471],[330,472],[241,474],[320,475],[486,476],[484,2],[513,477],[515,478],[479,479],[514,480],[229,481],[226,481],[259,2],[243,482],[242,483],[238,484],[239,485],[247,486],[275,486],[286,486],[322,487],[287,487],[231,488],[230,2],[326,489],[325,490],[324,491],[323,492],[232,493],[473,494],[274,495],[478,496],[446,497],[476,498],[477,498],[369,499],[368,500],[349,501],[335,502],[317,503],[319,504],[316,505],[438,506],[340,2],[501,2],[237,507],[440,508],[485,509],[347,2],[277,510],[354,511],[352,512],[279,513],[414,514],[480,2],[280,515],[415,515],[499,2],[498,2],[500,2],[482,2],[481,2],[417,516],[344,2],[314,517],[235,518],[293,2],[219,519],[281,2],[505,98],[218,2],[517,520],[301,98],[511,19],[300,521],[494,522],[298,520],[223,2],[519,523],[296,98],[297,98],[288,2],[217,2],[295,524],[294,525],[283,526],[358,297],[418,297],[434,2],[422,527],[421,2],[306,398],[227,2],[315,98],[488,409],[495,528],[86,98],[89,529],[90,530],[87,98],[88,2],[395,319],[390,531],[389,2],[388,532],[387,2],[493,533],[504,534],[506,535],[510,536],[512,537],[516,538],[544,539],[520,539],[543,540],[522,541],[532,542],[533,543],[535,544],[539,545],[542,409],[541,2],[540,546],[634,547],[629,548],[627,549],[630,548],[628,550],[626,551],[633,552],[631,2],[625,550],[632,553],[618,554],[617,2],[621,555],[620,556],[619,346],[423,557],[547,2],[548,558],[550,559],[549,560],[81,2],[82,2],[13,2],[14,2],[16,2],[15,2],[2,2],[17,2],[18,2],[19,2],[20,2],[21,2],[22,2],[23,2],[24,2],[3,2],[25,2],[26,2],[4,2],[27,2],[31,2],[28,2],[29,2],[30,2],[32,2],[33,2],[34,2],[5,2],[35,2],[36,2],[37,2],[38,2],[6,2],[42,2],[39,2],[40,2],[41,2],[43,2],[7,2],[44,2],[49,2],[50,2],[45,2],[46,2],[47,2],[48,2],[8,2],[54,2],[51,2],[52,2],[53,2],[55,2],[9,2],[56,2],[57,2],[58,2],[60,2],[59,2],[61,2],[62,2],[10,2],[63,2],[64,2],[65,2],[11,2],[66,2],[67,2],[68,2],[69,2],[70,2],[1,2],[71,2],[72,2],[12,2],[76,2],[74,2],[79,2],[78,2],[73,2],[77,2],[75,2],[80,2],[120,561],[132,562],[118,563],[133,564],[142,565],[109,566],[110,567],[108,568],[141,546],[136,569],[140,570],[112,571],[129,572],[111,573],[139,574],[106,575],[107,569],[113,576],[114,2],[119,577],[117,576],[104,578],[143,579],[134,580],[123,581],[122,576],[124,582],[127,583],[121,584],[125,585],[137,546],[115,586],[116,587],[128,588],[105,564],[131,589],[130,576],[126,590],[135,2],[103,2],[138,591],[774,592],[775,592],[776,592],[777,592],[778,592],[779,592],[780,592],[781,592],[782,592],[773,593],[783,592],[784,592],[785,592],[786,592],[787,592],[788,592],[623,19]],"affectedFilesPendingEmit":[1134,1112,1128,1131,1132,1129,1127,837,1125,946,624,1006,1130,947,1062,635,1060,1061,636,637,1063,1069,1007,1064,1065,769,638,770,1111,1110,610,622,771,772,774,775,776,777,778,779,780,781,782,773,783,784,785,786,787,788,623],"version":"5.9.3"} \ No newline at end of file diff --git a/ui/types/temporal.ts b/ui/types/temporal.ts new file mode 100644 index 00000000..d2c17b06 --- /dev/null +++ b/ui/types/temporal.ts @@ -0,0 +1,50 @@ +/* + * Copyright 2025 SUPSI + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +export type TemporalMode = 'current' | 'as_of' | 'from_to' + +export interface TemporalState { + mode: TemporalMode + asOf: string | null + fromTo: [string, string] | null +} + +export interface CommitItem { + id: number + author: string + message: string + date: string + actionType: 'CREATE' | 'UPDATE' | 'DELETE' + affectedEntities: string[] +} + +export interface ThingTemporal { + '@iot.id': number + name: string + description: string + properties?: Record + systemTimeValidity?: string +} + +export interface DatastreamTemporal { + '@iot.id': number + name: string + description: string + observationType: string + phenomenonTime?: string + observedArea?: unknown + systemTimeValidity?: string +}